Die USB Schnittstelle Was ist an ihr besonders gut?

Ähnliche Dokumente
5. Digitale Schnittstellen und Vernetzung im Überblick

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

s.beat DAP-10X White Paper USB Stromversorgung am Apple Macintosh und deren Auswirkung

Handbuch PCI Treiber-Installation

USB Stack - Design der Systemschnittstelle. Franz Hirschbeck AKBP II, WS 2003/04

Allgemeine USB Kabel Installation und Troubleshooting

tensiolink USB Konverter INFIELD 7

USB. Autor Valentin Lätt Datum Thema USB Version V 1.0

Stepperfocuser 2.0 mit Bootloader

Tutorial about how to use USBView.exe and Connection Optimization for VNWA.

Zunächst empfehlen wir Ihnen die bestehenden Daten Ihres Gerätes auf USB oder im internen Speicher des Gerätes zu sichern.

Installationsanleitung für das Touch Display: S170E1-01 LCD A170E1-T3 ChiMei - egalaxy

Schnellstart. MX510 ohne mdex Dienstleistung

VIA USB 2.0. Version 1.0

ICS-Addin. Benutzerhandbuch. Version: 1.0

Mit lebenslanger StarTech.com-Garantie sowie lebenslanger kostenloser technischer Unterstützung.

Datensicherung. Beschreibung der Datensicherung

NEC USB 2.0. Version 1.0

USB 2.0 PCI-Karte mit NEC CHIPSATZ

M a i l C r e d i t. \\Burt\user\Soutschek\FP\Technik\Frankiermaschinen\00_PC Software\MailCredit\Anleitung MailCredit Installation.

FrontDoor/Monitor mehr sehen von FrontDoor

Anleitung zur Nutzung des SharePort Utility

Adressen der BA Leipzig

PicKit 3. Programmierung mit dem USB-Programmer PICkit3 (Microchip) AB

Handbuch USB Treiber-Installation

GeoPilot (Android) die App

Für Windows 7 Stand:

Befehlssatz zum High Speed Interface-88-USB (HSI-88-USB) (ab Firmware 0.71) (Version 1.2)

Schnittstellen des Computers

serielle Schnittstelle/USB-Schnittstelle für das Velbus-System

Bedienungs- & Installationsanleitung COMMPACT / COMMPACT Audio V2.0

Installationsanleitung. Hardlock Internal PCI Hardlock Server Internal PCI

Tutorial -

EasyWk DAS Schwimmwettkampfprogramm

USB Signalverstärker XL

Dokumentation IBIS Monitor

Anleitung zur Durchführung des Firmware-Updates. HomePilot 1 via Upgrade-USB-Stick

GMM WLAN-Transmitter

Eigene Dokumente, Fotos, Bilder etc. sichern

KidTime Order. Seite 1

Windows7 32/64bit Installationsanleitung der ROBO-PRO-Software

Hier ist die Anleitung zum Flashen des MTK GPS auf der APM 2.0. Prinzipiell funktioniert es auch auf der APM 2.5 und APM 1.

Guide DynDNS und Portforwarding

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

icloud nicht neu, aber doch irgendwie anders

Anlegen eines DLRG Accounts

Handbuch USB-Isolator

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

LPT1 Anschluss mit PCMCIA Karte

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Anleitung über den Umgang mit Schildern

Inhaltsverzeichnis

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

zur WinIBW Version 2.3

HorstBox (DVA-G3342SD) Anleitung zur Einrichtung der Telefonie

Installationsanleitung für das KKL bzw. AGV4000 Interface

Verwendung des IDS Backup Systems unter Windows 2000

ONE Technologies AluDISC 3.0

ANYWHERE Zugriff von externen Arbeitsplätzen

Mediumwechsel - VR-NetWorld Software

oder ein Account einer teilnehmenden Einrichtung also

Bedienungsanleitung. FAST SMS Set mit MacOS betreiben MAC

Nutzung von GiS BasePac 8 im Netzwerk

Druck von bzw. Scan auf USB-Stick

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

Tipps und Tricks zur Installation von Java-basierten Programmen auf Handys

Stadtwerke Hammelburg GmbH Geschäftsbereich HAB-Net

Updatehinweise für die Version forma 5.5.5

Anleitung zur Installation des Printservers

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

USB. Susanne Grein Hochschule RheinMain Fachseminar 2009

Die nachfolgende Anleitung zeigt die Vorgehensweise unter Microsoft Windows Vista.

Benutzeranleitung Superadmin Tool

METTLER TOLEDO USB-Option Installation der Treiber unter Windows XP

EASYINSTALLER Ⅲ SuSE Linux Installation

16/24 Port Desktop & Rack-mountable Gigabit Ethernet Switch

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

PRESENTEC C-TRACK FÜR BLACKBERRY 8800 & BLACKBERRY CURVE 8310 FUNKTIONSBESCHREIBUNG

Installation OMNIKEY 3121 USB

Die Installation von D-Link WLAN Karten unter Windows Vista

Kurzeinweisung. WinFoto Plus

Rechnernetzwerke. Rechnernetze sind Verbünde von einzelnen Computern, die Daten auf elektronischem Weg miteinander austauschen können.

Drahtlosnetzwerke automatisch konfigurieren mit WCN (Windows Connect Now) unter Windows Vista

DWA-140: Betrieb unter Mac OS X Über dieses Dokument. Vorbereitungen. Laden der Treiber aus dem Internet - 1 -

Lerndokumentation Netzteil / PSU

PC-Software für Verbundwaage

Easy-Monitoring Universelle Sensor Kommunikations und Monitoring Plattform

Die Leuchtdiode Power / DSL beginnt nach einigen Sekunden zu blinken und signalisiert damit die Betriebsbereitschaft der FRITZ!Box.

PCE-USM RS USB Logger

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Inbetriebnahme einer Fritzbox-Fon an einem DSLmobil Anschluss Konfiguration einer PPPOE-Einwahl (DSLmobil per Funk)

Dokumentenkontrolle Matthias Wohlgemuth Telefon Erstellt am

Installationsanleitung

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Aufruf der Weboberflache des HPM- Warmepumpenmanagers aus dem Internet TIPPS

ANLEITUNG. Firmware Flash. Seite 1 von 7

Übertragung von MoData2 Dateien mit dem mobilen Gerätecenter unter Windows 7

Transkript:

Die USB Schnittstelle Was ist an ihr besonders gut? von Thomas Wagner E Mail: twagn002@stud.informatik.fh wiesbaden.de Fachseminar WS 2009/10 bei Prof. Dr. Linn Hochschule RheinMain Bachelor Allgemeine Informatik

1 Inhaltsverzeichnis Einleitung...2 Die Peripherie des IBM Standard PCs...3 Schnittstellen des PCs...3 I/O im PC...3 Kommunikation am Beispiel des Parallelports...3 Interrupt Behandlung...4 Die USB Paradigmen...5 Vorteile für den Endanwender...5 Vorteile für den Treiberprogrammierer...5 Kommunikation über den Universal Serial Bus...6 Der USB Host Controller...6 Topologie eines USB Baumes...6 Geräteklassen...7 Device Deskriptoren...7 Transfer...8 Verteilung der Daten über den Hub...9 Die Teilung des Bus...9 Die Technik von Hot Plug...10 Spezifikationen der USB Versionen...11 USB 1.x...11 USB 2.0...11 USB 3.0...12 USB On the go...12 Wireless USB...12 Ausblick...12 Literaturverzeichnis...13 Abbildungsverzeichnis...13

2 Die USB Schnittstelle Einleitung Die Leistung moderner PCs wächst von Jahr zu Jahr. Mit der Leistung wachsen auch die Angebote an Peripheriegeräten. War früher nur ein Drucker am PC angeschlossen, sind es heute viele Multimediageräte und externe Festplatten, die eine extrem schnelle Kommunikation und viele Ressourcen erfordern. Als IBM 1981 den PC Standard einführte, konnte dies natürlich keiner ahnen. Die Kommunikation über die PC Schnittstellen war sehr hardwarenah und von Geräte zu Gerät höchst unterschiedlich. Dazu kamen dicke und unhandliche Kabel. Das Anschließen mehrerer Geräte war dementsprechend kompliziert. 1996 veröffentlichte Intel die erste Version des USB Standards. Mit Hilfe von dünnen und flexiblen Kabeln sowie eines einheitlichen Anschlusses, sollte der Umgang mit Peripherie für den Endbenutzer vereinfacht werden. Aber auch die Programmierer der Gerätetreiber sollten es durch ein einheitliches und klar definiertes Kommunikationsmodell einfacher haben. Diese Ausarbeitung behandelt die grundlegende Idee und das technische Konzept der USB Schnittstelle. Der einfache Umgang mit USB Geräten und die Zukunftssicherheit der Schnittstelle wird erläutert. Nicht nur aus diesen Gründen ist die USB Schnittstelle heute nicht mehr wegzudenken. Sie hat mittlerweile viele der anderen externen PC Schnittstellen ersetzt. Die USB Schnittstelle ist eben besonders gut.

Die Peripherie des IBM Standard PCs 3 Die Peripherie des IBM Standard PCs Schnittstellen des PCs Noch in den 90er Jahren des vergangenen Jahrhunderts hatte der typische PC bei Auslieferung einen Parallelport und zwei RS232 Anschlüsse (serielle Schnittstelle). Teilweise waren zusätzlich noch PS/2 Schnittstellen für Tastatur und Maus vorhanden, so dass die RS232 Anschlüsse nicht durch diese belegt wurden und z. B. für Modems benutzt werden konnten. Das grundlegende Konzept glich aber dem der PCs aus den 80er Jahren. Die angeschlossenen Geräte wurden beim Start des Betriebssystem erkannt und die passenden Treiber geladen. Das Einstecken im laufenden Betrieb war meist nicht möglich. Besonders ärgerlich war dies, wenn man das Anschließen von Tastatur oder Maus vergaß. Dies zwang den Nutzer zum Neustart des Betriebssystems. Geräte wie Modems wurden bei der Treiberinstallation fest einer Schnittstelle zugeordnet. Wurden die Anschlüsse verwechselt, konnte es zu unvorhersagbarem Verhalten der Geräte kommen. Die Kabel führten viele Adern. Daher waren sie dick und unflexibel. Das Verbinden mit dem PC wurde mit wachsender Anzahl der angeschlossenen Geräte immer schwerer. I/O im PC Für den Zugriff auf Geräte verfügt der PC über einen bestimmten I/O Adressbereich. Dieser Bereich hat nichts mit den klassischen Speicher (RAM) zu tun. Das I/O System wird nicht nur von externen Schnittstellen benutzt. Auch Laufwerke und PCI und ISA Karten greifen darauf zurück. Dabei können viele I/O Geräte nicht den gesamten Adressbereich nutzen. Je mehr I/O Geräte existieren, desto höher war die Wahrscheinlichkeit, dass ein unlösbarer Konflikt auftrat. Selbst wenn der Konflikt lösbar war, war die Lösung oft mühselig, wenn z. B. der I/O Bereich per Jumper konfiguriert werden musste. Kommunikation am Beispiel des Parallelports Die Kommunikation über die klassischen IBM PC Schnittstellen erfolgt sehr hardwarenah. Beim Parallelport heißt das: Ist ein Bit gesetzt, liegt am dazugehörigen Pin Spannung an. Softwareseitig wird der Parallelport durch drei 8 Bit große Ports im I/O Adressbereich angesprochen: Daten Port, Status Port und Control Port. Dem Treiberprogrammierer stehen dabei zwei Makros zur Verfügung, um von den Ports zu lesen oder um auf ihnen zu schreiben. Um Daten über den Parallelport z. B. an einen Drucker zu senden wird typischerweise ein Byte auf dem Datenport geschrieben ([KAI00]). Am Drucker liegt jetzt an den 8 dazugehörigen Pins Spannung an. Um eine falsche Interpretation des Signals zu vermeiden, wenn z. B. bei einer Leitung das Senden minimal länger als bei den Abbildung 1: Kommunikationsschema des Parallelports

4 Die USB Schnittstelle übrigen Leitungen dauert, wird das sogenannte Strobe Bit auf dem Control Port gesetzt. Dies signalisiert dem Drucker, dass er jetzt den Datenport auslesen darf. Ist der Drucker mit der Verarbeitung fertig, signalisiert er dies dem PC mit dem Acknowlege Bit auf dem Status Port. Der Treiber muss das Bit überprüfen. Dies kann z. B. aktiv in einer Schleife geschehen oder aber per Interrupt behandelt werden. Bevor das nächste Byte gesendet wird, muss das Strobe Bit wieder gelöscht werden. Das Setzen und Löschen einzelner Bits ist alles andere als trivial, da auf den Ports noch andere Bits gesetzt sein können. Schreibt man z. B. ein Byte auf den Control Port, in dem ausschließlich das Strobe Bit gesetzt ist, hätte dies zur Folge, dass alle anderen Control Bits deaktiviert würden. Zunächst muss also der Port ausgelesen werden. Das Ergebnis muss mit dem Strobe Bit verodert werden. Nun kann auf den Control Port geschrieben werden. Für das Löschen des Strobe Bit, muss ein Byte mit gesetzten Strobe Bit invertiert werden. Der Inhalt des Control Ports wird damit verundet. Interrupt-Behandlung X86 kompatible Prozessoren verfügen über einen Interrupt Eingang. An dem Eingang ist der PIC (Programmable Interrupt Controller) angeschlossen. Dieser besitzt wiederum 8 Pins, die mit den Interrupt Leitungen der I/O Geräte verbunden sind. Da diese 8 Leitungen schnell belegt sind, ist in der Regel mit Pin 2 des PICs ein weiterer PIC verbunden, so dass insgesamt 15 Interrupt Pins zur Verfügung stehen. Dies ist aber in modernen PCs immer noch nicht genug. Gegebenenfalls müssen sich mehrere Geräte einen Interrupt Pin teilen. Man spricht dabei von Shared Interrupts ([MSD00]). Abbildung 2: Interrupt Controller und CPU Hat ein Gerät Kommunikationsbedarf, sendet es ein Signal auf den Interrupt Pin. Der Prozessor unterbricht das aktuelle Programm und behandelt den Interrupt. In der Regel wird der zuständige Gerätetreiber angesteuert. Sollten Shared Interrupts verwendet werden, müssen zunächst alle Geräte, die mit dem betreffenden Pin verbunden sind, abgefragt werden, ob sie den Interrupt ausgelöst haben. Erst dann kann der entsprechende Treiber aufgerufen werden.

Die USB Paradigmen 5 Die USB-Paradigmen 1996 Veröffentlichte Intel den USB Standard. Die USB Schnittstelle sollte die alten PC Schnittstellen komplett ersetzen. Die Kommunikation sollte unabhängig vom I/O System und dem Interrupt Controller sein. Der USB Standard orientierte sich nicht am aktuellen Stand der Technik. Er beschrieb viel mehr ein zukunftfähiges und plattformunabhängiges Kommunikationsmodell, das immer an den Stand der Technik angepasst werden konnte. Durch die klar definierten Hardwareelemente wurden individuelle Umsetzungen einzelner Hersteller vermieden, so dass der USB Einsatz sehr kostengünstig ist. Alte Geräte sind durch die Abwärtskompatibilität auch mit moderneren USB Controllern betreibbar. ([KEL00]) Mittlerweile kümmert sich Intel nicht mehr alleine um den USB Standard. Das USB Implementers Forum hat diese Aufgabe übernommen. Neben Intel selbst gehören dem USB IF bekannte Firmen wie HP, Microsoft und NEC an. Vorteile für den Endanwender Statt der vielen verschiedenen Anschlüsse gibt es nur noch einen einzigen einheitlichen Verbindungstyp. Die USB Kabel sind zudem sehr dünn und die Stecker klein. Dies vereinfacht das Anschließen vieler Geräte. Im Gegensatz zu den klassischen PC Anschlüssen ist die gewählte Buchse egal, denn den USB Geräten wird dynamisch eine Adresse vergeben. Diese wird mit dem entsprechenden Treiber verknüpft. Der Benutzer muss sich also nicht um die Anordnung der Geräte kümmern, wenn diese z. B. nach einer Reparatur neu angeschlossen werden müssen. USB Geräte können im laufenden Betrieb eingesteckt werden (Hot Plug Verfahren). Sie werden automatisch erkannt (Autodetection) und mit dem entsprechenden Treiber verknüpft. Sollte ein USB Nutzer vergessen haben, seine Tastatur anzuschließen, ist das kein Problem mehr. Dank Hot Plug kann er sie nachträglich einstecken und per Autodetection ist sie umgehend einsatzbereit. Ferner bietet USB auch eine Stromversorgung. Dabei stehen 2 Modi zur Verfügung: der Low Power Modus mit 100 ma und der Hi Power Modus mit 500 ma. Viele USB Geräte kommen daher ohne ein zusätzliches Netzteil aus. Die Firma Canon bietet sogar einen Scanner an, der nur über das USB Kabel mit Strom versorgt wird. Vorteile für den Treiberprogrammierer Durch die klaren Standards ist das Programmieren der Gerätetreiber einfach. Der Kommunikationsweg ist festgelegt und wird vom USB Host Controller und den dazugehörigen Treibern verwaltet. Dem Entwickler steht damit ein komplettes Framework zur Verfügung. Er muss sich nicht darum kümmern, wie die Daten hardwaretechnisch gesendet werden, sondern nur darum, dass sie gesendet werden. Der Rest wird vom Framework übernommen. Die Daten werden nicht im I/O Adressbereich des PCs abgelegt. Bei USB erfolgt die Gerätekommunikation per Memory Mapped I/O. Im Treiber selbst ist der Speicherbereich definiert, über den die Kommunikation erfolgt. Auf die Daten kann also direkt zugegriffen werden.

6 Die USB Schnittstelle Kommunikation über den Universal-Serial-Bus Der USB-Host-Controller Der Host Controller ist meist im PCI Chipsatz des PCs integriert. In älteren Modellen kann er auch in Form einer PCI Karte vorhanden sein. Er ist für das Initialisieren und Deinitialisieren der USB Geräte sowie für die Kommunikation mit den Geräten zuständig. Der Host Controller steuert auch deren Stromversorgung ([KEL01]). Die Initialisierung neuer Geräte erfolgt, wenn diese mit dem PC verbunden werden oder bereits verbundene Geräte eingeschaltet werden. Ein neu angeschlossenes Gerät hat immer die Adresse 0. Damit später genau an dieses Gerät Daten geschickt werden können, bekommt es während der Enummeration Phase eine eindeutige 7 Bit Adresse zugewiesen. Mit 7 Bit können 128 Adressen repräsentiert werden. Die Adresse 0 darf nur für die Konfiguration neuer Geräte benutzt werden, also können insgesamt 127 Geräte von einem Controller verwaltet werden. Nach der Enummeration wird der entsprechende Gerätetreiber geladen und mit der Geräteadresse verknüpft. Bei der Deinitalisierung der Geräte muss unterschieden werden, ob diese Hostseitig oder Geräteseitig geschieht. Klickt z. B. der Benutzer auf USB Stick entfernen, während eine Datei auf den Stick geschrieben wird (Hostseitige Deinitalisierung), muss der Deinitalisierungsvorgang solange blockieren, bis die Datei komplett übertragen ist. Wird der Stick einfach vom USB Anschluss entfernt (Geräteseitige Deinitalisierung), muss eine Fehlermeldung ( Datei konnte nicht übertragen werden! ) ausgegeben werden. Nach der Deintialisierung muss der entsprechende Gerätetreiber entfernt und die Geräteadresse wieder frei gegeben werden. Jedes USB Gerät bekommt eine garantierte Stromversorgung von 100 ma. Möchte ein Gerät in den High Power Modus (500 ma) wechseln, muss es dies beim Host Controller anmelden. Dieser überprüft ob genügend Strom verfügbar ist. Ist dies der Fall, bekommt das entsprechende Gerät ein Signal und darf in den High Power Modus wechseln. Topologie eines USB-Baumes Die Schnittstellen am PC Gehäuse gehören zum USB Root Hub, der direkt mit dem Host Controller verbunden ist. An dem USB Root Hub sind die USB Geräte angeschlossen. Diese kann man in zwei Gruppen unterteilen. Endgeräte nennt man Function. Verteiler heißen Hubs. An einen Hub können wiederum mehrere USB Geräte angeschlossen werden. Sie sind eine Art Mehrfachsteckdose für den Universal Serial Bus. Es gibt auch Komibigeräte, die sowohl Function als auch Hub sind. Die Topologie eines USB Baumes entspricht einer kaskadierenden Sternstruktur (Tired Star). Es gibt nur einen Weg zum Host Controller (Upstream Richtung). Der Weg zu den Functions gabelt sich an jedem Hub (Downstream Richtung). Um eine bestimmte Übertragungsgeschwindigkeit zu garantieren, beschränkt der USB Standard die Topologie auf 4 Ebenen. Das Signal darf auf seinem Weg zur Function demnach höchstens 3 Hubs passieren ([KEL01]).

Kommunikation über den Universal Serial Bus 7 upstream Abbildung 3: Topologie eines USB Baumes downstream Damit die USB Geräte korrekt verkabelt werden, unterschieden sich die Stecker am Ende eines USB Kabels. In den Downstream Port wird der flacher A Stecker eingeführt und in den Upstream Port der fast quadratische B Stecker. So ist es unmöglich, z. B. aus Versehen eine Schleife zu stecken. Kabel, die nicht dem A/B Typ angehören, verstoßen gegen den USB Standard. Ein USB Konformes Kabel darf eine Länge von fünf Metern nicht überschreiten. Für mobile Endgeräte wie Handys gibt es spezielle Micro Schnittstellen, die ebenfalls in Typ A und Typ B unterteilt sind. Ein USB Kabel hat vier Adern: Plus (rot) und Minus Pol (schwarz) der Stromversorgung. Dazu kommt eine Leitung für das Datensignal (D+, grün) und eine Leitung, die das Datensignal invertiert sendet (D, rot). Geräteklassen Abbildung 4: Stecker eines dem USB Standard entsprechenden Kabels Die Funktion vieler Geräte ist klar definiert. Solche Geräte teilt der USB Standard in USB Klassen ein. Während der Initialisierungsphase wird zunächst überprüft, zu welcher Klasse ein Gerät gehört. Danach wird anhand der Hersteller und Produkt ID überprüft, ob ein spezieller Treiber für das Gerät vorhanden ist. Ist dies nicht der Fall, wird ein Standardtreiber geladen. Der Nutzer hat daher den Vorteil, dass für Geräte wie Tastatur, Maus oder USB Stick kein Treiber installiert werden muss. Der Hersteller hat den Vorteil, dass für ein Gerät, welches sich an die Spezifikationen einer Geräteklasse hält, kein Gerätetreiber entwickelt werden muss ([KEL01]). Device-Deskriptoren Jedes USB Gerät verfügt über Device Descriptor. Dies ist eine Datenstruktur, die vom Host Controller abgefragt wird. Ein Device Descriptor hat eine Hersteller und eine Produkt ID. Dazu kommt noch ein String, der eine kurze Beschreibung enthält. Zu einem Device Descriptor gehört mindestens ein Configuration Descriptor. Für jeden Modus, in dem ein Gerät betrieben werden kann, existiert ein Configuration Descriptor. Kann ein Gerät z. B. sowohl im Low Power, als auch im High Power Modus betrieben werden, muss es dementsprechend zwei Configuration Descriptoren geben. Zu jedem Configuration Descriptor gehört mindestens ein Interface Descriptor.

8 Die USB Schnittstelle Für jede Funktion eines Gerätes muss ein Interface Descriptor zur Verfügung stehen. Multifunktionsgeräte wie z. B. eine Scanner/Drucker Kombination haben pro Funktion einen Interface Descriptor. Zu jedem Interface Descriptor gehört minimum ein Endpoint Descriptor. Endpoint Descriptoren dienen der Kommunikation. Pro Kommunikationskanal existiert ein Endpoint. Ein USB Telefon müsste somit einen Endpoint für den Audioeingang und einen für den Ausgang haben. Eine Sonderrolle stellt Endpoint 0 dar. Er gehört zu keinem Interface Descriptor. Auf ihn wird direkt zugegriffen, wenn das Gerät initial konfiguriert wird oder der Modus gewechselt wird. ([AND01]) Abbildung 5: Descriptoren Transfer Zwischen Host Controller und USB Gerät existieren Kommunikationskanäle. Durch Geräteadresse und Endpoint Nummer werden die zu transferierenden Daten eindeutig einem Kanal zugewiesen. Je nach Art der zu übertragenden Daten wird für einen Kommunikationskanal ein passender Transfer Modus benutzt ([KEL00]). Control Transfer: Dieser Transfer Modus wird für Endpoint 0 benutzt, wenn das Gerät initialisiert wird oder gegebenenfalls seinen Modus wechselt. Interrupt Transfer: USB benutzt Software Interrupts. Das Interrupt Signal wird nicht mehr per PIC an den Prozessor direkt gesendet. Geräte, die Interrupts auslösen können, werden vom Host Controller regelmäßig durch Polling auf das Auftreten eines Interrupts abgefragt. Damit kann ein Interrupt eine maximale Latenz von der Dauer eines Abfrageintervalls haben. Mit dem Interrupt können je nach USB Standard zwischen 8 und 64 Byte an Datenübertragen werden. Diese reicht aus, um eine Mausbewegung oder einen Tastenklick darzustellen, so dass Tastatur und Maus keine zusätzlichen Datentransfers benötigen. Isochronus Transfer: Dieser Transfer Modus wird meist für Audio und Videogeräte verwendet. Ob Webcam oder USB Headset, der Datenstrom muss konstant sein und synchron ablaufen. Die Latenzzeit muss minimal sein, ansonsten wären die Geräte nicht nutzbar. Ist auf dem Bus nicht mehr genügend Bandbreite vorhanden, um Isochronus Daten in der vom Endpoint Descriptor geforderten Menge konstant zu übertragen, wird das Einbinden solcher Geräte vom Host Controller abgelehnt. Bulk Transfer: Dieser Modus hat die niedrigste Priorität und dient zum Übermitteln einfacher Datenströme, die z.b. ein Massenspeichergerät sendet oder empfängt.

Kommunikation über den Universal Serial Bus 9 Verteilung der Daten über den Hub Die Daten werden in Downstream Richtung per Broadcast an alle Geräte gesendet. Das heißt, dass ein Hub Daten generell über alle seine Ports weiterleitet. Sind Geräte, die unterschiedliche Geschwindigkeiten zur Kommunikation benutzen, an einen Bus angeschlossen, wird immer die höchst mögliche Geschwindigkeit verwendet. Der Hub fungiert dabei als Filter. Ist an einem High Speed Hub (Datenrate: 480 Mbit/s) ein Low Speed Gerät (Datenrate: 1,5 Mbit/s), wie z. B. Maus oder Tastatur, angeschlossen, so leitet er an dieses auch nur Low Speed Datenpakete weiter. Der Hub hat dafür einen Cache. So kann er mit dem Low Speed Gerät mit 1,5 Mbit/s und mit den restlichen Geräten mit 480 Mbit/s kommunizieren ([AND01]). Da die Daten per Broadcast gesendet werden, kommen sie bei allen Geräten an. Jedes Gerät hat seine eigne Adresse und reagiert nur auf Datenpakete, die an es adressiert sind. Der Host Controller fungiert als Master. Die einzelnen Geräte dürfen nur senden, wenn sie vom Host Controller ein entsprechendes Signal erhalten haben ([KEL00]). Um mit neu angeschlossenen Geräten zu kommunizieren, wird während der Initialisierung die Adresse 0 verwendet. Was geschieht aber beim Booten des PCs? Sind mehrere USB Geräte angeschlossen, würden sie allesamt auf Datenpakete mit der Adresse 0 reagieren. Um dies zu verhindern, muss ein Hub seine Downstream Ports deaktiviert lassen, solange er selbst in der Initialisierungsphase ist. Anschließend bekommt der Hub vom Host Controller das Signal, die Kommunikation aufzunehmen und schaltet einen Port frei. Erst wenn das Gerät an diesem Port die Initialisierungsphase beendet hat, darf der nächste Port freigeschaltet werden. Auf diese Weise wird rekursiv der gesamte USB Baum initialisiert ([KEL00]). Die Teilung des Bus Kommunizieren mehrere Geräte per USB, muss die verfügbare Bandbreite aufgeteilt werden. Benutzerprogramme stellen an einen USB Gerätetreiber eine Anfrage, um mit einem Gerät Daten auszutauschen. Aus der Anfrage wird vom Gerätetreiber ein I/O Paket erstellt. Dieses Paket wird an den Host (Controller )Treiber gesendet. Das I/O Paket wird wiederum in einzelne Transaktionspakete unterteilt. Ein Transaktionspaket besteht neben dem eigentlichen Datenpaket aus einem Token Paket und einem Handshake Paket. Das Token Paket enthält die Adressierung (Geräteadresse und Endpoint Nr.), die Übertragungsart (lesen/schreiben), die Paketgröße und die Übertragungsgeschwindigkeit. Im Falle eines Lesezugriffes wird statt des Datenpaketes ein Signal gesendet, dass angibt, wie viele Bytes das Endgerät an den Host Controller übertragen darf. Das Handshake Paket hat eine Prüfsumme um die korrekte Übertragung des Transaktionspaketes zu gewährleisten. Damit die zeitliche Kontinuität bewahrt wird, sendet der Host Controller jede Millisekunde ein Synchronisationssignal an alle Geräte. Das Zeitfenster zwischen den Synchronisationssignalen wird als Frame bezeichnet. Die zu sendenden Transaktionspakete werden vom einem Scheduler einer Frame zugeordnet. Die Sendereihenfolge wird in Form einer verketteten Liste im Speicher repräsentiert. Höchste Priorität haben die Pakete, die für einen Isochronus Endpoint bestimmt sind. Dann folgen die Interrupt Abfragen. Die übrige Bandbreite wird für Bulk Transfers benutzt. Der Host Controller liest die verkettete Liste aus und sendet die Pakete über den Bus ([AND01]).

10 Die USB Schnittstelle Abbildung 6: Transaktionspakete Die Technik von Hot-Plug USB Daten werden auf zwei Leitungen übertragen. Auf einer Leitung wird das eigentliche Signal gesendet (D+). Die zweite Leitung sendet das Datensignal invertiert (D ). Hat D+ einen High Pegel, so hat D einen Low Pegel und umgekehrt. Abbildung 7: Widerstände an den Ports An den Downstream Ports befinden sich an den beiden Datenleitungen jeweils ein 15 kω Pull Down Widerstand. Am Upstream Port einer Function oder eines Hubs befindet sich an einer der Datenleitungen ein 1,5 kω Pull Up Widerstand. Ist kein Gerät angeschlossen so ziehen die 15 kω Pull Down Widerstände die Pegel beider Daten leitungen auf low. Beim Anschließen eines Gerätes wird die Leitung mit dem 1,5 kω Pull Up Wider stand auf high gesetzt, während die andere Leitung auf low bleibt. Hat die invertierte Datenleitung (D ) den High Pegel, so ist dass angeschlossene Gerät ein Low Speed Gerät. Hat D+ den High Pegel handelt es sich um ein schnelleres USB Gerät. ([KEL01])

Spezifikationen der USB Versionen 11 Spezifikationen der USB-Versionen USB 1.x USB Geräte, die der Spezifikationsversion USB 1.0 entsprechen, kommunizieren mit 1,5 Mbit/s und werden als Low Speed Geräte bezeichnet. USB 1.1 Geräte kommunizieren mit 12 Mbit/s und werden als Full Speed Geräte bezeichnet. Bei Low Speed Geräten handelt es sich meist um Tastatur und Maus. Für die Low Speed Übertragung ist in dem Kabel keine spezielle Abschirmung erforderlich, lediglich die Datenleitungen sind miteinander verdrillt. Die Kabel dieser Geräte sind sehr dünn und flexibel und die Kabellänge ist auf drei Meter beschränkt. Damit man nicht aus Versehen ein Full Speed Gerät mit einem Low Speed Kabel verbindet, müssen Low Speed Kabel immer fest mit dem Gerät verbunden sein. Die im Handel erhältlichen USB Kabel sind für den Full Speed Datenverkehr geeignet, da die Leitungen von einer Abschirmung umgeben sind und die Datenleitungen noch einmal zusätzlich abgeschirmt sind. Abbildung 8: Logo zertifizierter USB 1.x Geräte Abbildung 9: Kabel mit und ohne Abschirmung Für USB 1.x existieren zwei Host Controller Typen: der Universal Host Controller (UHC) und der Open Host Controller (OHC). Der OHC erledigt mehr Aufgaben hardwareseitig und arbeitet daher minimal schneller als der UHC. In modernen PCs ist dieser Unterschied nicht spürbar. Embedded Systeme mit äußerst knappen Ressourcen können aber durch die Verwendung eines OHC entlastet werden. ([AND01]/[KEL01]) USB 2.0 Die Full Speed Übertragung mit 12 Mbit/s lief für Geräte mit hohen Datenumsatz sehr langsam ab. Außerdem gab es die Konkurrenzschnittstell FireWire von Apple, die eine Übertragungsrate von 400 Mbit/s aufwies. Im Jahr 2000 wurde dem mit der USB Version 2.0 entgegengesetzt. Die Spezifikation sah eine Übertragungsrate von 480 Mbit/s vor (High Speed). Abbildung 10: Logo zertifizierter USB 2.0 Geräte USB 2.0 Geräte sollten zu USB 1.1 Geräten kompatibel sein. Deshalb geben sich diese Geräte zunächst als Full Speed Geräte aus. In der Initialisierungsphase veranlasst dann der Host Controller den Wechsel in den High Speed Modus. Sollte das Gerät an einen alten Controller angeschlossen sein, so bleibt es im Full Speed Modus. Die High Speed Übertragung erforderte keine speziellen Kabel. Die Full Speed Kabel bieten eine ausreichende Abschirmung, um auch in High Speed zu übertragen. Für USB 2.0 wurde ein neuer Host Controller Typ eingeführt, der Enhanced Host Controller (EHC). Der EHC ist für alle High Speed Transaktionen zuständig. Low und Full Speed Transaktionen werden an einen unterliegenden UHC oder OHC weitergeleitet. ([AND01]/[KEL01])

12 Die USB Schnittstelle USB 3.0 Das USB Implementers Forum stellte im November 2008 die Spezifikation von USB 3.0 vor. USB 3.0 Geräte kommunizieren im Super Speed Modus mit 5 Gbit/s, sind aber dennoch abwärtskompatibel zu USB 2.0 und USB 1.1. Seit November 2009 gibt es einige wenige USB 3.0 Geräte zu kaufen. Dass die passenden Controller in den Mainboard Chipsätzen integriert werden, kann sich aber bis 2011 verzögern ([CT09 43]). Möchte man heute Abbildung 11: Logo zertifizierter USB 3.0 Geräte USB 3.0 nutzen, muss der PC mit einem entsprechenden Controllern nachgerüstet werden. Hierfür ist ein freier PCI Express Slot notwendig. Die extrem hohe Datenrate im Super Speed Modus kann nur auf einem neuen Kabeltyp übertragen werden, der fünf zusätzliche Leitungen zur Verfügung stellt. Der Transfer wird in Upstream und in Downstream Richtung getrennt. In jeder Richtung gibt es eine Leitung für das Datensignal und eine Leitung für das invertierte Datensignal. Die fünfte Leitung ist eine zusätzliche Masseleitung. Die Form des Typ A Anschlusses verändert sich nicht. So können USB 3.0 Geräte auch auf alten Controllern und USB 2.0/1.x Geräte an den neuen Controllern benutzt werden ([CT08 22]). Im Super Speed Modus werden ausschließlich die fünf neuen Leitungen benutzt. Die alten Leitungen werden parallel dazu im High Speed Modus betrieben. Obwohl derselbe Anschluss benutzt wird, ist USB 3.0 von USB 2.0/1.x physikalisch vollkommen getrennt. Unter USB 3.0 werden die Transaktionspakete nicht mehr per Broadcast an alle angeschlossenen Geräte gesendet, sondern gezielt per Routing nur an das gewünschte Endgerät weitergeleitet. Hubs werden in zwei Unter Hubs aufgeteilt. Der eine ist für den Super Speed Modus zuständig und setzt die neuen Techniken wie Routing ein, der andere fungiert als herkömmlicher USB 2.0 Hub. USB On-the-go Normalerweise können zwei Functions nicht direkt miteinander kommunizieren. Bei vielen mobilen Multimedia Geräten ist es aber praktisch direkt Daten mit anderen USB Geräten wie z. B. Speichersticks austauschen zu können. USB On the go Geräte können daher gewisse Funktionen des Host Controllers übernehmen und so ohne PC andere USB Geräte nutzen. ([USB IF]) Wireless USB Wireless USB ermöglicht die Kommunikation mit den Functions direkt per Funk. Der Einsatz von Hubs und eine Verkabelung sind nicht mehr notwendig. Geräte, die sich im 3 Meterbereich des Senders befinden, können per High Speed (480 MBit/s) kommunizieren. Im Bereich von bis zu 10 Metern ist eine Kommunikation mit 100 MBit/s möglich. ([USB IF]) Ausblick Abbildung 12: Logos zertifizierter On the go und Wirelless Geräte Für die Zukunft von USB ist es geplant, die elektrischen Datenleitungen durch optische zu ersetzen. ([USB IF])

13 Literaturverzeichnis KAI00: Robert Kaiser, I/O und Treiber, SS 2009 Vorlesung Echtzeitbetriebssysteme MSD00: Microsoft, Shared Interrupts in PCI Device Drivers, 2001, http://www.microsoft.com/whdc/archive/unclintp.mspx KEL00: Hans Joachim Kelm, USB 1.1, 2000 KEL01: Hans Joachim Kelm, USB 2.0, 2001 AND01: Don Anderson, Dave Dzatko, Universal Serial Bus System Architecture, 2001 CT09 43: ciw, Spekulationen über Verzögerungen bei USB 3.0, 2009 KW 43, http://www.heise.de/ct/meldung/spekulationen ueber Verzoegerungen bei USB 3 0 835980.html CT08 22: Benjamin Benz, Pfeilschnell Die dritte USB Generation..., c't 2008 KW 22 USB IF: USB Implementers Forum, Offizielle Webseite, http://www.usb.org/ Abbildungsverzeichnis Abbildung 1: Kommunikationsschema des Parallelports...3 Abbildung 2: Interrupt Controller und CPU...4 Abbildung 3: Topologie eines USB Baumes...7 Abbildung 4: Stecker eines dem USB Standard entsprechenden Kabels...7 Abbildung 5: Descriptoren...8 Abbildung 6: Transaktionspakete...10 Abbildung 7: Widerstände an den Ports...10 Abbildung 8: Logo zertifizierter USB 1.x Geräte...11 Abbildung 9: Kabel mit und ohne Abschirmung...11 Abbildung 10: Logo zertifizierter USB 2.0 Geräte...11 Abbildung 11: Logo zertifizierter USB 3.0 Geräte...12 Abbildung 12: Logos zertifizierter On the go und Wirelless Geräte...12 Quelle Abbildung 4: Simon Eugster, Creative Common 3 Lizenz, http://commons.wikimedia.org/wiki/file:usb.svg Quelle Abbildung 9: Wikipedia, Creative Common 3 Lizenz, http://de.wikipedia.org/w/index.php? title=datei:belegung_usb Kabel.svg Die USB Logos aus den Abbildungen 8, 10, 11 und 12 sind die offiziellen Logos die zertifizierte USB Geräte tragen dürfen. Quelle: http://www.usb.org/ (Webseite des USB Implementers Forums)