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 1
Beispiel: Befehl Taktzyklen LOOP: IN A,(10) 2 LD (IX),A 5 INC IX 2 DEC B 2 JNZ LOOP 5 Gesamt: 16 bei einer Taktfrequenz von 10 MHz Ausführungszeit pro Schleifendurchlauf: 16 / 10 MHz = 1,6 µsec 2
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) 3
Befehlsverarbeitung in einer Pipeline: Beispiel fünfstufige Pipeline Takt 1 Takt 2 Takt 3 Takt 4 Takt 5 Takt 6 Takt 7... Befehl 1 Befehl holen Befehl dekodieren Operanden holen Befehl ausführen Ergebnis speichern Befehl 2 Befehl holen Befehl dekodieren Operanden holen Befehl ausführen Ergebnis speichern Befehl 3 Befehl holen Befehl dekodieren Operanden holen Befehl ausführen Ergebnis speichern... 4
Beispiel superskalare Pipeline bei High-End-Prozessorkernen Befehl holen Befehl dekodieren Befehlsfenster Zuordnungseinheit Operanden holen Operanden holen Befehl ausführen Befehl ausführen Rückordnungseinheit Ergebnis speichern 5
Speicherhierarchie bei High-End- Prozessorkernen First - Level- Cache Prozessorkern Daten Register Code 2 kbyte 0,5-0,1 ns 8-64 kbyte < 1 ns Secondary- Level-Cache 0,25-1 Mbyte 2-10 ns Third - Level - Cache 10-100 Mbyte 20-30 ns Hauptspeicher > 1GByte 50 ns virtuelle Speicherverwaltung Festplatte 50-500 GByte 10-20 ms 6
Sprungspekulation: Beispiel Ein-Bit- und Zwei-Bit-Prädiktor taken predict taken (0) taken not taken predict not taken (1) not taken a) Ein Bit-Präditkor taken taken taken predict strongly taken (00) predict weakly taken (01) predict weakly not taken (10) predict strongly not taken (11) taken not taken not taken not taken not taken b) Zwei Bit-Präditkor 7
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 LD A,(2000) 5 1+4 1+4 1+4 1 1+4 INC B 3 1 1 1 1 1 SUB A,B 3 1+1 1+1 1+1 1+1 1+1 JZ 10000 4 1+3 1 7 1 7 Gesamt 15 12 9 15 5 15 8
Zur Einsparung von Speicher Gesamtadressraum 64 KBytes bei einfachen Mikrocontrollern: Verkürzte Adressierung zur Verkürzung der Befehle Teiladressraum 1 KByte BBBBBBBB AAAAAAAA AAAAAAAA BBBBBBAA AAAAAAAA Befehlscode 16 Bit Adresse Befehlscode 10 Bit Adresse 3 Byte Befehl 2 Byte Befehl, kurze Adresse 9
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 10
2.5.2 Ein-/Ausgabeeinheiten Bindeglied des Mikrocontrollers zur Umwelt analog/digital seriell/parallel Übertragungsraten Übertragungsformate Übertragungsaufwand... 11
2.5.2.1 Anbindung an den Prozessorkern EA-Adressraum 0 parallele EA serielle EA DA-Wandler Speicheradressraum 0 Speicher Speicher- und EA- Adressraum 0 Speicher max. EA-Adresse max. Speicheradresse Isolierte Adressierung max. Speicheradresse parallele EA serielle EA DA-Wandler Gemeinsame Adressierung 12
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 13
Adressraumbedarf unterschiedlich komplexer EA-Einheiten Adressraum Adresse m parallele EA-Einheit 1 Datenkanal Adressen n n+1 n+2 Datenkanal Steuerkanal Statuskanal }serielle EA-Einheit 1 14
Physikalische Anbindung durch Adressdecoder interner Adressbus Mikrocontroller AS Adressdecoder MIO Prozessorkern RW Select 1 Select 2... Select n interner Datenbus Ein-/Ausgabeeinheit 1 Ein-/Ausgabeeinheit 2... Ein-/Ausgabeeinheit n 15
Zur Anpassung unterschiedlicher Datenübertragungsraten von Prozessorkern und EA-Einheiten : Synchronisation Von Seiten der EA-Einheit: Software-Synchronisation Hardware-Synchronisation 16
Software-Synchronisation: Beispiel XON/XOFF vom/zum Prozessorkern Adressbus Ausgabedaten Datenbus Eingabedaten Ein-/Ausgabeeinheit Peripherie- Gerät Steuerbus Ausgabedaten (von E/A-Einheit) Daten Daten Daten Daten Daten Daten Daten Daten Eingabedaten (vom Gerät) XOFF XON 17
Hardware-Synchronisation: Beispiel RTS/CTS vom/zum Prozessorkern Adressbus Ausgabedaten Datenbus RTS Ein-/Ausgabeeinheit Peripherie- Gerät Steuerbus CTS RTS (von E/A-Einheit) CTS (vom Gerät) RTS: request to send CTS: clear to send Ausgabedaten (von E/A-Einheit) 18
Von Seiten des Prozessorkerns: Auswertung mit Polling oder Interrupt Programm Polling Unterbrechung, Freigabe Programm Unterbrechungen Programmschleife: Abfrage des Statuskanals, Warten in der Schleife bis zur Freigabe Unterbrechung, Freigabe Unterbrechungsbehandlung, Datenübertragung durchführen Datenübertragung durchführen Unterbrechungsbehandlung, Datenübertragung durchführen 19
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 20
Einfache parallele Eingabeeinheit: Adressbus AS MIO Adressdecoder Select Daten von einem externen Gerät CS OE Treiber zum Prozessorkern RW & Datenbus 21
Einfache parallele Ausgabeeinheit: Adressbus AS MIO Adressdecoder Select Daten zu einem externen Gerät CS OE Treiber vom Prozessorkern 1 D0... D7 RW & Datenbus 22
Einfache bidirektionale Einheit: Adressbus AS MIO Adressdecoder Select Daten von/zu einem externen Gerät OE DIR Treiber vom/zum Prozessorkern D0... D7 RW Datenbus 23
2.5.2.3 Digitale serielle Ein-/Ausgabeeinheiten (serielle IO-Ports) Grundprinzip: parallele Daten parallele Daten Ausgaberegister Eingaberegister Schieberegister serielle Daten Schieberegister Takterzeugung Sender Takterzeugung Empfänger 24
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 25
Asynchrone Übertragung Nach jedem übertragenen Zeichen wird synchronisiert Daten 0 1 2... n-2 n-1 P 1 0 Startbit Datenbits Parität Stoppbit(s) Sendetakt Empfangstakt Synchronisation 26
=> 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) 27
Synchrone Übertragung Rahmensynchronisation Zeichen Zeichen Zeichen Zeichen Zeichen Zeichen Zeichen SYNC SYNC STX Daten... Daten ETX BCC a. Zeichenorientierte Übertragung, Zeichen z.b. im 8-Bit-ASCII-Code m Bits n Bits o Bits p Bits q Bits r Bits Flag Adresse Steuerfeld Daten FCS Flag b. Bitorientierte Übertragung z.b. HDLC Höhere Übertragungsgeschwindigkeit, höhere Anforderungen an den Takt 28
Komponentenaufbau Adressbus Select 1 AS Select 2 Senderegister Schieberegister Adressdecoder MIO Select 3 Select 4 RW Sendesteuerung serielle Sendeleitung Handshake (optional) vom/zum Prozessorkern Statusregister Steuerregister Empfangssteuerung Handshake (optional) Empfangsregister Schieberegister serielle Empfangsleitung Datenbus 29
Verbindungstechniken Serielle Punkt-zu-Punkt-Verbindung (Peer to Peer) Sendeleitung Empfangsleitung Partner 1 Empfangsleitung Sendeleitung Partner 2 30
Verbindungsbusse Beispiel: SPI (Serial Peripheral Interface, Motorola) serieller Sende-/Empfangs-Bus MISO MOSI MISO MOSI MISO MOSI Partner 1 Partner 2 Partner n 0 SS SCK 0 SS SCK 1 Sende-/Empfangstakt SS SCK als Master programmiert als Slave programmiert, nicht selektiert Andere serielle Busse: RS485, USB,... als Slave programmiert, selektiert 31
Serielle Datencodierungen Takt Manchester Binärziffer 0 1 0 1 1 1 0 0 NRZ V High V Low FM MFM T D T D T D T D T D T D T D T D V High V Low V High V Low V High V Low 32
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 33
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 34
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. 35
2.5.2.4 Analoge Ein-/Ausgabeeinheiten Adressbus AS MIO RW Adressdecoder Select 1 Select 2 Digital/Analog- Wandler (n Bit) analoges Ausgabesignal vom/zum Prozessorkern n-bit-digitalwert Analog/Digital- Wandler (n Bit) analoges Eingabesignal Datenbus zur Verarbeitung durch den Prozessorkern müssen analoge in digitale Signale gewandelt werden 36
Wandlungsfunktion: bei n Bit Auflösung => Aufteilung in 2 n Schritte U U max U LSB = (U max U min ) / 2 n Digital/Analog-Wandlung U = (Z U LSB ) + U min U LSB Analog/Digital-Wandlung U min 1 Z = (U U min ) / U LSB 0 2 n -1 Z 37
Beispiel: U max = 5 V, U min = 0 V, 12-Bit-Wandlung => U LSB = 1,221 mv Wichtigste Kriterien für die Auswahl eines Wandlers Auflösung (n Bit) Spannungsbereich (U min - U max ) Wandlungszeit Wandlungsfehler 38
Digital/Analog-Wandlung I ref = U ref /R U ref U ref /2 U ref /4 U ref /8 R R R U ref = 2R 2R 2R 2R 2R z 3 z 2 z 1 z 0 0 1 0 1 0 1 0 1 Blindschiene Ausgangsschiene R/2R-Widerstandsnetzwerk - R I k I k R - ca. 0V + U 39
Funktion des Wandlers: I k = z 3 (U ref / 2R) + z 2 (U ref / 4R) + z 1 (U ref / 8R) + z 0 (U ref / 16R) Für den Operationsverstärker gilt näherungsweise: U = -R I k Daraus folgt: U = - (z 3 (U ref / 2) + z 2 (U ref / 4) + z 1 (U ref / 8) + z 0 (U ref / 16)) = - (z 3 2 3 + z 2 2 2 + z 1 2 1 + z 0 2 0 ) U ref / 2 4 = - Z U ref / 2 4 oder für n Bit: U = - Z U ref / 2 n 40
Statische Wandlungsfehler: Fehler Fehler Nichtlinearität a) Nullpunktfehler b) Vollausschlagsfehler c) Nichtlinearität 41
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: I k (0111) > I k (1000) 42
Dynamische Fehler: Glitches durch Wettläufe im Umschaltzeitpunkt, z.b. bei 0111 1111 1000 Abhilfe: Abtast-/Halteglied (Sample and Hold) Verstärkungsfaktor 1 U e + - S C Verstärkungsfaktor 1 + - U a 43
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 44
Beispiel: das Wägeverfahren U Abtast-/ Halteglied + - Komparator U g (Z) U? Zeitsteuerung U g (Z) Digital/ Analog- Wandler Z Z Z U ref = wandelt n Bits in n Schritten 45
Ablauf: sukzessive Aproximation U g (Z) U g (11111111) U Wandlerfunktion: Z = 11001011 Z = 2 n U / U ref = U / U LSB z 7 z 6 z 5 z 4 z 3 z 2 z 1 z 0 1 1 0 0 1 0 1 1 1 2 3 4 5 6 7 8 Schritt 46
Statische Fehler: Quantisierungsrauschen systematischer Fehler, bedingt durch die begrenzte Auflösung U U LSB Z + ½ U LSB Quantisierungsfehler - ½ U LSB => Abweichung des treppenförmigen vom tatsächlichen stufenlosen Analogsignal 47
Durch die Gleichverteilung des Eingangssignals gehorcht die Abweichung statistischen Gesetzen => Rauschen Rauschamplitude: Ueff U LSB = 12 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 48
Dynamische Fehler 2.5. Mikrocontroller-Komponenten 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 U LSB macht bereits das niederwertigste Bit unbrauchbar Abhilfe: Abtast-/Halteglied Takt-Jitter (Aperturfehler) Schwankung der Taktrate bei periodischer Abtastung analoger Signalverläufe 49