3. Busse zum Umfeld Busse zum Umfeld von eingebetteten Systemen 3.1 Peripheriebusse 3.2 Feldbusse Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 1 3. Busse zum Umfeld Kommunikation eingebetteter Systeme mit ihrem Umfeld mittels individueller Schnittstellen (wie bisher betrachtet) mittels eines Busses reduziert Leitungsaufwand und Kosten Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 2 3. Busse zum Umfeld Klassifizierung von Bussystemen: • Systembusse verbinden die internen Komponenten eines Mikrorechnersystems, sorgen für eine möglichst schnelle Datenübertragung zwischen Prozessor, Speicher und Ein-/Ausgabeeinheiten • Peripheriebusse Verbindung des Rechnersystems mit peripheren Geräte, Anschluß an den Systembus über eine Steuereinheit • Feldbusse (Prozessbusse) Peripheriebusse mit gesteigerten Anforderungen bezüglich Zeitverhalten, Robustheit, Sicherheit, ..., Anschluss an den Systembus ebenfalls über eine Steuereinheit (z.B.: ProfiBus) Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 3 3.1 Peripheriebusse Peripheriebusse Verbindung periphere Geräte mit dem Rechenkern eines eingebetteten Systems, Anschluß an den Systembus des Rechenkerns über eine Steuereinheit Peripheriebus Rechenkern Speicher Steuereinheit Peripheriebus PeripherieGerät 1 ... PeripherieGerät n Beispiele: USB, SCSI, IDE, ... Systembus Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 4 3.1 Peripheriebusse 3.1.1 USB USB = Universal Serial Bus Ziel: einfache Verbindung vieler peripherer Geräte über einen seriellen Bus Vermeidung des “Steckerdschungels” üblicher serieller Verbindungen Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 5 3.1 Peripheriebusse USB – Architektur: Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 6 3.1 Peripheriebusse Etwas detailliertere Darstellung: Hub: Verteiler, bietet Anschlüsse für einen oder mehrere weitere USB’s Root-Hub: erster Verteiler, üblicherweise der PC Compound Package: Paket aus einem Hub und einigen Devices Device: Endgerät Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 7 3.1 Peripheriebusse Beispiel für ein Compound Package: Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 8 3.1 Peripheriebusse Es existieren zwei verschiedene USB Port Typen: Root (PC) Upstream Port Upstream Port: Port an einem Endgerät oder einem Hub zur Verbindung mit dem übergeordneten Hub Hub Downstream Ports Downstream Port: Port an einem Hub zur Verbindung mit einem untergeordneten Endgerät oder Hub Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Upstream Port Device 9 3.1 Peripheriebusse Physikalisches Übertragungsprotokoll serielle, bitorientierte, synchrone, halbduplex-Datenübertragung mittels 4-Draht Leitung: Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 10 3.1 Peripheriebusse Stecker/Buchse: Typ A Typ B (Downstream Port) (Upstream Port) Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 11 3.1 Peripheriebusse Es existieren drei Übertragungsgeschwindigkeiten: Low Speed = 1,5 MBits/s (USB 1.1) Full Speed = 12 MBits/s (USB 1.1) High Speed = 480 MBits/s (USB 2.0) Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 12 3.1 Peripheriebusse Physikalischen Übertragungsprotokoll: Zwei Signalzustände J und K, die für Full Speed/High Speed und Low Speed Übertragung invers definiert sind: Full Speed/High Speed J: VD+ > VDK: VD+ < VD- Low Speed J: VD+ < VDK: VD+ > VD- Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 13 3.1 Peripheriebusse Zur Datencodierung wird das “Non Return To Zero Inverted” (NRZI) Verfahren verwendet: Gleichbleibender Signalzustand (J J oder K K ) Wechselnder Signalzustand ( J K oder K J) = log. 1 = log. 0 Synchronisation Zu Beginn jeder Informationsübertragung gibt es eine Synchronisationsphase, in der ständig zwischen J und K gewechselt wird Takt für die weitere Übertragung kann ermittelt und synchronisiert werden Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 14 3.1 Peripheriebusse Problem bei NRZI: lange 1 Folgen erzeugen ein konstantes Signal Taktsynchronität gefährdet Abhilfe: Bit Stuffing Nach 6 aufeinanderfolgenden 1-Bits wird zwangsweise ein 0-Bit eingeführt (welches bei der Dekodierung dann ignoriert wird) => erzwungener Pegelwechsel Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 15 3.1 Peripheriebusse Beispiel: Full-Speed/High Speed-Übertragung 0 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 0 16 3.1 Peripheriebusse Beispiel: Low-Speed-Übertragung 0 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 0 17 3.1 Peripheriebusse Unterscheidung Low-Speed/Full-Speed Devices: Durch Pull-upWiderstand an D- bzw D+ (sorgt für die entsprechenden Idle-Pegel, siehe vorige Diagramme) Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 18 3.1 Peripheriebusse Unterscheidung High-Speed Devices: Ein High-Speed Device firmiert zunächst als Full-Speed Device. Unterscheidung beim Start des Datentransfers durch unterschiedliche Sync-Sequenz: Low-Speed/Full-Speed: K J K J K J K K High-Speed: K J K J K J K J … K J K J K J K J K J K J K J K J K K 15 x K J Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 19 3.1 Peripheriebusse Low-Speed, Full-Speed und High-Speed können daher auch gemischt werden: Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 20 3.1 Peripheriebusse Logisches Übertragungsprotokoll Ein USB Device wird durch eine 7-Bit logische Adresse identifiziert Adresse 0 ist reserviert, ebenso benötigt der Root-Hub eine Adresse => 126 Adressen stehen für weitere Devices zur Verfügung Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 21 3.1 Peripheriebusse Ein Device kann mehrere “Endpunkte” (= Datenquellen oder – senken) realisieren: Endpunkt 0: bidirektionaler Endpunkt zur Konfiguration, muß in jedem Device vorhanden sein Endpunkte 1 – 15: optionale Daten-Endpunkte für Full-Speed / High-Speed Devices Endpunkte 1 –2: optionale Daten-Endpunkte für Low-Speed Devices Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 22 3.1 Peripheriebusse Logische Sicht eines Devices: Device, Adresse = XXXXXXX (z.B. 0011010) Endpunkt 0: Konfiguration Endpunkt 1: Datenquelle/senke (z.B. Modem) Endpunkt 2: weitere optionale Datenquelle/senke Endpunkt 3: weitere optionale Datenquelle/senke für Full Speed Devices ... ... Endpunkt 15: weitere optionale Datenquelle/senke für Full Speed Devices Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 23 3.1 Peripheriebusse Die Kommunkation zwischen Host und Endpunkten erfolgt über sog. Pipes. Pipes stellen logische Verbindungen dar, für die z.B. Bandbreiten reserviert werden können Die Datenübertragung in Pipes erfolgt in Form von Transaktionen Auf dem USB-Bus werden diese Transaktionen physikalisch innerhalb von Frames (bzw. Mikroframes bei High-Speed Übertragung) übermittelt. Ein Frame (Mikroframe) kann mehrere Transaktionen aufnehmen Frames (Mikroframes) bilden einen Zeitrahmen zur Synchronisation und Bandbreitenreservierung Dauer eines Frames : 1 msec Dauer eines Mikroframes: 1/8 msec Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 24 3.1 Peripheriebusse Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 25 3.1 Peripheriebusse Eine Transaktion besteht aus mehreren Paketen Eine Transaktion am USB-Bus enthält ein Token-Paket, Daten-Pakete und ein Handshake-Paket Token: dieses Paket kennzeichnet den Typ der Transaktion, enthält Device Adresse und Endpunkt Nummer. Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 26 3.1 Peripheriebusse Mögliche Tokens: OUT: Datenübertragung vom Host zum Device IN: Datenübertragung vom Device zum Host SETUP: Übertragung von Konfigurationsdaten SOF: Start of Frame, kennzeichnet den Beginn eines neuen Frames. Alle Frames sind nummeriert Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 27 3.1 Peripheriebusse Daten: diese Pakete enthalten die eigentlichen Daten einer Transaktion Datenpakete besitzen eine Typ, eine Länge, einen Inhalt und ein CRC Feld Mögliche Typen: DATA0: alle ungeraden Datenpakete (Paket Nummer 1, 3, 5, ...) einer Transaktion besitzen diesen Typ DATA1: alle geraden Datenpakete (Paket Nummer 2, 4, 6, ...) einer Transaktion besitzen diesen Typ Beispiel: TOKEN DATA0 DATA1 DATA0 DATA1 ... Ein Datenpaket kann eine Länge zwischen 0 und 1kByte besitzen Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 28 3.1 Peripheriebusse Für High-Speed Übertragungen zusätzliche Daten-Tokens: DATA2 MDATA Sequenz für High-Speed IN-Transfers: DATA0 DATA1 DATA2 DATA0 DATA1 DATA2 … Sequenz für High-Speed OUT-Transfers: DATA0 MDATA DATA1 MDATA MDATA DATA2 … Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 29 3.1 Peripheriebusse Handshake: dieses Paket enthält Informationen über den Datenfluss Mögliche Handshake Informationen: ACK: kennzeichnet den erfolgreichen Datentransfer NACK: kennzeichnet einen fehlgeschlagenen Datentransfer STALL: kennzeichnet einen ernsten Fehler im Device, der eine Host-Interaktion (z.B. Neukonfiguration) erforderlich macht, bevor die Datenübertragung fortgesetzt werden kann Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 30 3.1 Peripheriebusse Die folgenden Diagramme zeigen den Datenfluss einer erfolgreichen IN und OUT Transaktion: Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 31 3.1 Peripheriebusse Beispiel für fehlgeschlagene Transaktionen (NAK): Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 32 3.1 Peripheriebusse Der USB ist ein Master Slave Bus mit genau einem Master, dem Host Alle Bus Transaktionen gehen vom Host aus keine Bus-Arbitrierung erforderlich Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 33 3.1 Peripheriebusse Transfer-Typen am USB: Control-Transfers: kurze, nicht-periodische vom Host initiierte Transfers, meist zur Übertragung von Kommandos oder Status-Information Isochronous-Transfers: periodische, kontinuierliche Kommunikation zwischen Host und Device zur Übertragung zeitkritischer Daten Bulk-Transfers: nichperiodische Übertragung größerer Datenmengen, deren Übertragung nicht zeitkritisch ist Interrupt-Transfers: niederfrequente Ereignisbehandlung mit beschränkter Latenz Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 34 3.1 Peripheriebusse Um Devices die Möglichkeit zu geben, Ereignisse zu melden, können in der Setup-Phase Devices als Interrupt-Devices mit einer Interrupt Periode definiert werden. Der Host garantiert dann eine Abfrage dieser Devices in der gewünschten Periode, bleibt hierbei aber immer der Bus-Master Die übertragenen Dateninhalte sollten hierbei klein gehalten werden (z.B. die x/y Position einer USB Maus) ein Device wird niemals von sich aus am USB aktiv Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 35 3.1 Peripheriebusse USB für eingebettete Systeme: + preiswert + definiertes Zeitverhalten + Energieversorgung (begrenzt) über Bus möglich + elektrisch und logisch robust - mechanisch wenig robust - kein Multimaster - keine „echte“ Ereignisbehandlung Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 36