# Research
> Welche Möglichkeiten der Beschaltung sind beim SPI-Bus möglich und wie wirkt sich die Clock darauf aus?
1. Als SPI-Bus bezeichnet man ein serielles Bussystem, das dazu verwendet wird, um digitale Schaltungen nach dem Master-Slave-Prinzip zu verbinden. Wie die folgende Abb. skizziert benötigt man für pro Slave drei Leitungen. Eine Taktleitung, die sogenannte **S**ystem**cl**oc**k** und jeweils eine Leitung vom Master zum Slave (MOSI; Master Output, Slave Input) und umgekehrt (MISO; Master Input, Slave Output). Sollen mehr als ein Slave angeschlossen werden, wird eine zusätzliche Leitung benötigt; die **C**hip **s**elect-Leitung. Über diese Leitung regelt der Master, welcher Slave gerade angesprochen wird. Diese Leitung ist low-aktive [5], das heißt, dass der Slave gerade angesprochen wird, bei dem die Spannung gerade "0" ist. Dann darf er seine MISO betreiben, andernfalls darf er dass nicht, da es ansonst zu Kollisionen mit anderen Slaves kommen kann. Was die Datenübertragunsrate angeht sind bei SPI theoretisch keine Grenzen gesetzt. Viele Implementierungen gehen jedoch über $10 Mbits^{-1}$ [6].

> Welche Vorteile ergeben sich bei der Verwendung eines Kommunikationsbusses?
2. Folgende Vorteile ergeben sich bei der Verwendung eines Kommunikationsbusses: [9]
* digitales Übertragungsverfahren ermöglicht die Erkennung und Korrektur von Übertragungsfehlern
* Busteilnehmer können relativ einfach entfernt und ausgetauscht werden
* geringe Anzahl von Datenleitungen
* Art, Umfang und Richtung der zu übertragenden Daten spielt keine Rolle
> Welche Möglichkeiten der Beschaltung sind beim SPI-Bus möglich und wie wirkt sich die Clock darauf aus?
3. Der SPI-Bus bietet folgende 4 Modi:
| Mode | CPOL | CPHA |
| -------- | -------- | -------- |
| 0 | 0 | 0 |
| 1 | 0 | 1 |
| 2 | 1 | 0 |
| 3 | 1 | 1 |
*CPOL* steht hier für "Clock Polarity"
*CPHA* steht hier für "Clock Phase"
Da unser EmbDev-Basiswissen mit nach oben beschränktem Wachstum verglichen werden kann, hier ein Zitat, welche die Funktion der Modi gut beschreibt [8].
> Bei einer Phasenlage CPHA = 0 und einer Taktpolarität CPOL = 0 findet eine Datenübernahme bei steigender Taktflanke und CS = 0 statt; entsprechend bei CPOL = 1 mit fallender Taktflanke. Bei CPHA = 1 verhält es sich genau umgekehrt. [...]
> Wie werden zeitkritische Anwendungen (real-time) eingeteilt?
4. Real-Time-Anwendungen (Echtzeitsysteme) lassen sich in **weiche** und **harte** Systeme einteilen: [1]
+ harte Systeme:
Überschreitung eines Zeitlimits → gravierende Folgen
(zB Flugzeuge, Autos, etc.)
+ weiche Systeme:
toleranter, wenn ein Zeitlimit überschritten wird
meist "nur" Verschlechterung der Qualität
(zB Multimedia-Bereich)
> Wie kommt ein Watchdog bei zeitkritischen Anwendungen zum Einsatz?
5. Ein Watchdog wird verwendet, um eine bestimmte Anwendung nach einer gegebenen Zeit ("Timer") zurückzusetzen, falls diese bis zum Ablauf des Timers nicht reagiert. [3]
> Wie kann man Interrupts priorisieren?
6. Die Priorisierung von Interrupts kann man mit dem *Interrupt-Prioritäts-Register* vornehmen. Es stehen drei verschiedene Prioritätsstufen zur Verüfugung (1, 2, 3). [4]
> Was sind Real-Time Operating-Systems (RTOS) und wie kann man diese auf Mikrokontrollern einsetzen?
7. Nach DIN 44300 (*Informationsverarbeitung*) handelt es sich bei eine **RTOS** um eine System, das dauerhaft zum Vearbeiten anfallender Daten bereit ist. [1, 2]
Die Anforderungen für RTOS sind folgende:
+ Multithreading
+ Multitasking
+ Synchronisation
+ vorhersagbares Verzögerungsverhalten
## Quellen
[1] “RTOS (real time operating system) :: Echtzeitbetriebssystem :: ITWissen.info.” https://www.itwissen.info/RTOS-real-time-operating-system-Echtzeitbetriebssystem.html (accessed Feb. 23, 2021).
[2] “Was ist eine Real-time Application?” https://www.dev-insider.de/was-ist-eine-real-time-application-a-791615/ (accessed Feb. 23, 2021).
[3] “Watchdog – Mikrocontroller.net.” https://www.mikrocontroller.net/articles/Watchdog (accessed Feb. 23, 2021).
[4] “>Interrupt Prioritäten einstellen - Microcontroller.” http://www.mikrocontroller-programmierung.de/interrupt-prioritaeten-einstellen.php (accessed Feb. 23, 2021).
[5] "Logikpegel" https://www.elektronik-kompendium.de/sites/dig/0205171.htm (accessed Mar. 03, 2021)
[6] "Introduction to I2C and SPI protocols" https://www.byteparadigm.com/applications/introduction-to-i2c-and-spi-protocols/#:~:text=\%E2\%80\%93\%20Throughput\%20\%2F\%20Speed\%3A&text=SPI\%20is\%20full\%2Dduplex\%3B\%20I\%C2\%B2C,buffers\%2C\%20not\%20always\%20easily\%20available. (accessed Mar. 03, 2021)
[7] "Serial Peripheral Interface" https://www.mikrocontroller.net/articles/Serial_Peripheral_Interface#SPI-Modi (accessed Mar. 03, 2021)
[8] "SPI - Serial Peripheral Interface" https://www.rahner-edu.de/grundlagen/signale-richtig-verstehen/spi-besser-verstehen-1/ (accessed, Mar. 03, 2021)
[9]: "Vorteile von Bussystemen" http://kfz-aufgaben.de/can/Vorteile-von-Bussystemen.423.0.html (accessed Mar. 17, 2021).