500 likes | 679 Views
2.5. Mikrocontroller-Komponenten. 2.5.1 Prozessorkerne Einfache RISC- oder CISC Prozessorkerne Benötigen wenig Fläche Verhalten und Eigenschaften sind wohl bekannt. Im Low-Cost-Bereich oft einfache 8-Bit-Kerne ohne Pipeline => einfacher Aufbau
E N D
2.5. Mikrocontroller-Komponenten 2.5.1 Prozessorkerne • Einfache RISC- oder CISC Prozessorkerne • Benötigen wenig Fläche • Verhalten und Eigenschaften sind wohl bekannt • Im Low-Cost-Bereich oft einfache 8-Bit-Kerne ohne Pipeline => einfacher Aufbau => sehr einfache zeitliche Vorhersagbarkeit
2.5. Mikrocontroller-Komponenten Beispiel:
2.5. Mikrocontroller-Komponenten Je komplexer ein Prozessorkern, desto schwerer wird die Vorhersage des Zeitverhaltens • Pipeline => Pipeline-Konflikte • Cache => Cache Misses • Spekulation => Fehlspekulation In Echtzeitsystemen interessiert die Worst Case Execution Time (WCET) Aufwändige Analysen sind erforderlich (und nicht immer möglich)
2.5. Mikrocontroller-Komponenten Befehlsverarbeitung in einer Pipeline: Beispiel fünfstufige Pipeline Takt 1 Takt 2 Takt 3 Takt 4 Takt 5 Takt 6 Takt 7 ... Befehl dekodieren Befehl holen Operanden holen Befehl ausführen Ergebnis speichern Befehl 1 Operanden holen Befehl ausführen Ergebnis speichern Befehl holen Befehl dekodieren Befehl 2 Befehl dekodieren Operanden holen Befehl ausführen Ergebnis speichern Befehl holen Befehl 3 . . .
2.5. Mikrocontroller-Komponenten Beispiel superskalare Pipeline bei High-End-Prozessorkernen Operanden holen Befehl ausführen Befehl holen Befehl dekodieren Ergebnis speichern Befehlsfenster Zuordnungseinheit Rückordnungseinheit Operanden holen Befehl ausführen
Festplatte 2.5. Mikrocontroller-Komponenten Speicherhierarchie bei High-End- Prozessorkernen Prozessor- kern 2 kByte 0,5 - 0,1 ns Register First - Level- Cache 8 - 64 kByte < 1 ns Daten Code Secondary- Level-Cache 0,25 - 1 Mbyte 2 - 10 ns 10 - 100 Mbyte 20 - 30 ns Third - Level - Cache > 1GByte 50 ns Hauptspeicher virtuelle Speicherverwaltung 50 - 500 GByte 10 - 20 ms
2.5. Mikrocontroller-Komponenten Sprungspekulation: Beispiel Ein-Bit- und Zwei-Bit-Prädiktor taken predict not taken (1) predict taken (0) not taken taken not taken a) Ein–Bit-Präditkor taken taken taken predict weakly not taken (10) predict strongly taken (00) predict weakly taken (01) predict strongly not taken (11) not taken not taken not taken taken not taken b) Zwei–Bit-Präditkor
2.5. Mikrocontroller-Komponenten Resultierende Echtzeitproblematik bei High-End- Prozessorkernen mit diesen Techniken Best- und Worst-Case Ausführungszeiten verschiedener Mikroarchitekturen Programm Benötigte Anzahl Taktzyklen Keine Pipeline Einfache Pipeline Pipeline, Spekulation Pipeline, Cache, Spekulation Best=Worst Best Worst Best Worst Best=Worst 1+4 1+4 1+4 1 1+4 5 LD A,(2000) INC B 1 1 1 1 1 3 SUB A,B 1+1 1+1 1+1 1+1 1+1 3 JZ 10000 1+3 1 7 1 7 4 12 9 15 5 15 Gesamt 15
2.5. Mikrocontroller-Komponenten Zur Einsparung von Speicher bei einfachen Mikrocontrollern: Verkürzte Adressierung zur Verkürzung der Befehle
2.5. Mikrocontroller-Komponenten Zusätzlich: • kurze Befehlscodes für die am häufigsten benutzten Befehle • längere Befehlscodes für seltene Befehle Besonders bei einfachen Mikrocontrollern ist Speicher meist eine knappe Ressource und muss optimal genutzt werden Der Prozessorkern kann dies durch die genannten Maßnahmen unterstützen
2.5. Mikrocontroller-Komponenten 2.5.2 Ein-/Ausgabeeinheiten Bindeglied des Mikrocontrollers zur Umwelt • analog/digital • seriell/parallel • Übertragungsraten • Übertragungsformate • Übertragungsaufwand ...
2.5. Mikrocontroller-Komponenten 2.5.2.1 Anbindung an den Prozessorkern
2.5. Mikrocontroller-Komponenten Vorteile „isolierte Adressierung“: • klare Trennung von Speicher- und Ein-/Ausgabezugriffen • Speicheradressraum wird nicht durch EA-Einheiten reduziert • schmälere Ein-/Ausgabeadressen Vorteile „gemeinsame Adressierung“: • Homogenität • keine speziellen Befehle zur Ein-/Ausgabe erforderlich • Alle Speicher-Adressierungsarten können auch zur Ein-/Ausgabe benutzt werden
2.5. Mikrocontroller-Komponenten Adressraumbedarf unterschiedlich komplexer EA-Einheiten
2.5. Mikrocontroller-Komponenten Physikalische Anbindung durch Adressdecoder
2.5. Mikrocontroller-Komponenten Zur Anpassung unterschiedlicher Datenübertragungsraten von Prozessorkern und EA-Einheiten : Synchronisation Von Seiten der EA-Einheit: • Software-Synchronisation • Hardware-Synchronisation
2.5. Mikrocontroller-Komponenten Software-Synchronisation: Beispiel XON/XOFF
2.5. Mikrocontroller-Komponenten Hardware-Synchronisation: Beispiel RTS/CTS
2.5. Mikrocontroller-Komponenten Von Seiten des Prozessorkerns: Auswertung mit Polling oder Interrupt
2.5. Mikrocontroller-Komponenten 2.5.2.2 Digitale parallele Ein-/Ausgabeeinheiten(parallele IO-Ports) Charakteristika: • Anzahl parallel übertragener Bits (meist Zweierpotenz) • Ein-/Ausgaberichtung • Übertragungsgeschwindigkeit Der meist hohen Übertragungsgeschwindigkeit steht ein großer Bedarf an Anschlüssen gegenüber => meist teilen sich die parallelen EA-Einheiten eines Mikrocontrollers die Anschlüsse mit anderen Komponenten
2.5. Mikrocontroller-Komponenten Einfache parallele Eingabeeinheit:
2.5. Mikrocontroller-Komponenten Einfache parallele Ausgabeeinheit:
2.5. Mikrocontroller-Komponenten Einfache bidirektionale Einheit:
2.5. Mikrocontroller-Komponenten 2.5.2.3 Digitale serielle Ein-/Ausgabeeinheiten(serielle IO-Ports) Grundprinzip:
2.5. Mikrocontroller-Komponenten Wichtige Begriffe: • Schrittgeschwindigkeit (Schritttakt) Anzahl übertragener Informationen / Sekunde (Baud, Baudrate) • Übertragungsgeschwindigkeit Anzahl übertragener Bits / Sekunde Übertragungsgeschw. = Schrittgeschw. * Übertragungsbreite oder allgemeiner: Übertragungsgeschw. = Schrittgeschw. * ld(Anzahl Übertragungszustände) Bei bitserieller Übertragung: Schrittgeschwindigkeit = Übertragungsgeschwindigkeit
2.5. Mikrocontroller-Komponenten Asynchrone Übertragung Nach jedem übertragenen Zeichen wird synchronisiert
2.5. Mikrocontroller-Komponenten => Zeichensynchronisation • keine hohen Anforderungen an die Taktgenauigkeit • Sende und Empfangstakt dürfen sich um maximal 1/2 Tarktperiode pro Zeichen verschieben • durch häufige Synchronisation geringe Datenraten Vereinbarung zwischen Sender und Empfänger: • Schrittgeschwindigkeit (z.B. 4800, 9600, 19200, ... Baud) • Anzahl der Datenbits pro Zeichen (5 – 8) • Parität (gerade oder ungerade) • Anzahl der Stoppbits (üblicherweise 1, 1,5 oder 2)
2.5. Mikrocontroller-Komponenten Synchrone Übertragung Rahmensynchronisation Höhere Übertragungsgeschwindigkeit, höhere Anforderungen an den Takt
2.5. Mikrocontroller-Komponenten Komponentenaufbau
2.5. Mikrocontroller-Komponenten Verbindungstechniken Serielle Punkt-zu-Punkt-Verbindung (Peer to Peer)
2.5. Mikrocontroller-Komponenten Verbindungsbusse Beispiel: SPI (Serial Peripheral Interface, Motorola) Andere serielle Busse: RS485, USB, ...
2.5. Mikrocontroller-Komponenten Serielle Datencodierungen
2.5. Mikrocontroller-Komponenten • NRZ (Non Return to Zero) Einfach, leichter Verlust der Taktsynchronität bei aufeinanderfolgenden Einsen oder Nullen => wird hauptsächlich bei asynchroner Übertragung genutzt • FM (Frequency Modulation) Takterhaltende Codierung, Voranstellen eines Taktbits 0 1 0 1 1 1 0 0 Daten 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 FM T D T D T D T D T D T D T D T D
2.5. Mikrocontroller-Komponenten • MFM (Modified Frequency Modulation) Halbiert den Aufwand von FM durch bedingtes Voranstellen eines Taktbits. Taktbit nur, wenn aktuelles und voriges Datenbit beide nicht 1 0 1 0 1 1 1 0 0 Daten 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 0 MFM T D T D T D T D T D T D T D T D
2.5. Mikrocontroller-Komponenten • Manchester Biphase Wird z.B. bei Ethernet benutzt Signalpegel wechselt grundsätzlich bei jeder Taktflanke Stimmt der resultierende Wert nicht mit dem Bitwert überein: => zweiter Wechsel 0 1 0 1 1 1 0 0 Daten 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 Manch.
2.5. Mikrocontroller-Komponenten 2.5.2.4 Analoge Ein-/Ausgabeeinheiten zur Verarbeitung durch den Prozessorkern müssen analoge in digitale Signale gewandelt werden
2.5. Mikrocontroller-Komponenten Wandlungsfunktion: bei n Bit Auflösung => Aufteilung in 2n Schritte ULSB = (Umax – Umin) / 2n Digital/Analog-Wandlung U = (Z ULSB) + Umin Analog/Digital-Wandlung Z = (U – Umin) / ULSB
2.5. Mikrocontroller-Komponenten Beispiel: Umax = 5 V, Umin = 0 V, 12-Bit-Wandlung => ULSB = 1,221 mV Wichtigste Kriterien für die Auswahl eines Wandlers • Auflösung (n Bit) • Spannungsbereich (Umin - Umax) • Wandlungszeit • Wandlungsfehler
2.5. Mikrocontroller-Komponenten Digital/Analog-Wandlung R/2R-Widerstandsnetzwerk
2.5. Mikrocontroller-Komponenten Funktion des Wandlers: Ik = z3 (Uref/ 2R) + z2 (Uref / 4R) + z1 (Uref / 8R) + z0 (Uref / 16R) Für den Operationsverstärker gilt näherungsweise: U = -RIk Daraus folgt: U = - (z3 (Uref / 2) + z2 (Uref / 4) + z1 (Uref/ 8) + z0 (Uref / 16)) = - (z3 23 + z2 22 + z121 + z020) Uref / 24 = - ZUref / 24 oder für n Bit: U = - ZUref / 2n
2.5. Mikrocontroller-Komponenten Statische Wandlungsfehler:
2.5. Mikrocontroller-Komponenten • Nullpunktfehler durch Addition einer Konstanten (auf analoger oder digitaler Seite) behebbar • Vollausschlagfehler durch Multiplikation mit einer Konstanten behebbar • Nichtlinearität ist nicht korrigierbar und reduziert die verfügbare Auflösung Besonders schwerwiegend: Monotoniefehler Ausgabe eines niedrigeren Wertes trotz Erhöhung des Eingangswertes Entsteht z.B. im R/2R Netzwerk, wenn durch Widerstandstoleranzen: Ik(0111) > Ik(1000)
2.5. Mikrocontroller-Komponenten Dynamische Fehler: Glitches durch Wettläufe im Umschaltzeitpunkt, z.B. bei 0111 1111 1000 Abhilfe: Abtast-/Halteglied (Sample and Hold)
2.5. Mikrocontroller-Komponenten Analog/Digital-Wandlung Prinzipielle Wandlungsverfahren: • Parallelverfahren sehr schnell, hoher HW-Aufwand • Wägeverfahren mittel schnell, mittlerer HW-Aufwand • Zählverfahren (Dual Slope) langsam, geringer HW-Aufwand, störunempfindlich
2.5. Mikrocontroller-Komponenten Beispiel: das Wägeverfahren wandelt n Bits in n Schritten
2.5. Mikrocontroller-Komponenten Ablauf: sukzessive Aproximation Wandlerfunktion: Z = 2nU / Uref = U / ULSB
2.5. Mikrocontroller-Komponenten Statische Fehler: Quantisierungsrauschen systematischer Fehler, bedingt durch die begrenzte Auflösung => Abweichung des treppenförmigen vom tatsächlichen stufenlosen Analogsignal
2.5. Mikrocontroller-Komponenten Durch die Gleichverteilung des Eingangssignals gehorcht die Abweichung statistischen Gesetzen => Rauschen Rauschamplitude: Faustformel für das Signal/Rauschverhältnis in Dezibel: SR 1.8 dB + n 6 dB Beispiele: 8 Bit Auflösung 49.8dB 12 Bit Auflösung 73.8dB 16 Bit Auflösung 97.8dB
2.5. Mikrocontroller-Komponenten Dynamische Fehler • Amplitudenänderung des Eingangssignals über die Wandlungszeit besonders kritisch beim Wägeverfahren, da hier die empfindlichen niederwertigen Bits zuletzt gewandelt werden Eine Schwankung um mehr als 1/2 ULSB macht bereits das niederwertigste Bit unbrauchbar Abhilfe: Abtast-/Halteglied • Takt-Jitter (Aperturfehler) Schwankung der Taktrate bei periodischer Abtastung analoger Signalverläufe