Title: USB
1USB Universal Serial Bus
- Geschichte, Technik, Kommunikation
2Inhalt
- Zur Geschichte
- Veröffentlichung der Spezifikationen
- USB 2.0
- USB und IEEE-1394
- USB On-the-go
- Minimalanforderungen
- Komponenten
- Topologie
- Aufgaben des Hosts
- Grundzüge des Transfers
- Enumeration Geräteerkennung
- Wie kommuniziert der Host?
- Hubs
31 Geschichte
- Zuvor waren neue Schnittstellen meist das Werk
einzelner Unternehmen, z.B. HP-Schnittstellen-Bus
(GPIB), und stehen somit unter deren
ausschließlicher Kontrolle. - Daher sind neuere Schnittstellen meist Ergebnis
einer Kooperation. - In einigen Fällen fördern Organisationen wie IEEE
oder TIA Entwicklungs-Komitees. - In anderen Fällen gründen die Entwickler eines
neuen Standards eine Organisation zur Freigabe
und Betreuung.Dieser Zugang wurde beim USB
gewählt. - Urheberrecht für USB 1.1 liegt bei Compaq, Intel,
Microsoft, NEC.
41.1 Veröffentlichung der Spezifikationen
- Release 1.0 im Januar 1996
- Release 1.1 im September 1998 behob Probleme von
1.0 und fügte einen Transfertyp hinzu,
Interrupt-OUT - Release 2.0 April 2000 mit integrierter
High-Speed-Option - Im Dezember 2000 wurden Korrekturen
veröffentlicht und ein neuer Mini-B-Anschluss
definiert
51.2 USB 2.0
- Ein großer Schritt in der Entwicklung war Version
2.0, die in der Hauptsache sehr viel schnellere
Übertragungen verspricht. - Ursprüngliche Erwartungen von 20facher Erhöhung
- Test zeigten dass eine 40fache Steigerung möglich
war - Übertragungsraten von 480Mbit/s machen USB
wesentlich attraktiver für Peripheriegeräte wie
Drucker, Scanner, Festplatten und
Videoanwendungen.
61.3 Der USB und der IEEE-1394
IEEE-1394 oder FireWire ist eine Realisierung
von Apple mit ahnlichen Ansätzen. Für viele
Geräte eignen sich auch beide Schnittstellen.
- USB eignet sich besonders für Peripheriegeräte
mit niedriger bis mittlerer Geschwindigkeit, wie
Tastaturen, Drucker, Scanner, externe Laufwerke - Bei USB steuert ein einzelner Host die
Kommunikation mit vielen Geräten - Den kompliziertesten Teil der Kommunikation
übernimmt der Host, so dass die Elektronik der
Peripheriegeräte relativ einfach und preiswert
sein kann.
- FireWire eignet sich am besten für Video und
schnelle Verbindungen - Nutzt ein Peer-to-Peer-Modell, Geräte können
direkt miteinander oder mit mehreren Empfängern
kommunizieren - FireWire ist somit flexibler, wobei aber die
Elektronik der Peripheriegeräte komplizierter und
teurer ist.
71.4 USB On-the-go
- Ermöglicht direkte Kommunikation ohne Host
- Eines der Endgeräte übernimmt eingeschränkte
Host-Funktionalität - Spezifikation vom 18. Dezember 2001
- Anzahl der unterstützenden Geräte steigt
- Geräte müssen dem Standard entsprechen, auch ohne
spezielle Treiber als externes Laufwerk erkannt
zu werden. - Z.B. Fotos von der Digicam direkt am Drucker
ausdrucken
82 Minimalanforderungen
- Hardwareunterstützung USB-Host-Controller mit
Stammhub, Ports - Durch Unterstützung der Hersteller besitzt
ziemlich jeder neuere PC einen Host-Controller
und min. 2 Anschlüsse. - PC 2001 System Design Guide von Microsoft
schreibt zwei USB-Ports vor - Softwareunterstützung Betriebssystem mit
USB-Funktionen - Entwicklung eines USB-Geräts fällt wesentlich
leichter, wenn Windows 98 oder höher
vorausgesetzt wird - Von Windows 95 zu Windows 98 wurde die
USB-Unterstützung stark verbessert, und sie
können nicht die gleichen Gerätetreiber nutzen. - Bei Windows NT keine USB-Unterstützung, es müsste
mit Produkten von Drittanbietern individuelle
Gerätetreiber entwickelt werden.
93 Komponenten
- Der Host ist ein Computer, der zwei Komponenten
enthält, die zusammenarbeiten - Host-Controller
- Formatiert die Daten zur Übertragung auf dem Bus
- Übersetzt empfangene Daten für das Betriebssystem
- Übernimmt Funktionen der Kommunikationsverwaltung
- Stammhub (Root Hub)
- Besitzt Steckverbinder zum Anschluss von Geräten
- Erkennt gemeinsam mit Controller Anschließen und
Trennen von Geräten - Führt Anforderungen des Host-Controllers aus
- Datenübertragung zw. Host-Controller und Geräten
104 Topologie
115 Aufgaben des Hosts
Anwendungsprogramme brauchen sich nicht um
Einzelheiten der Kommunikation zu kümmern. Sie
greifen dafür auf Standard-Betriebssystemfunktione
n zurück.
- Erkennen von Geräten
- Verwaltung des Datenflusses
- Fehlerüberprüfung
- Stromversorgung
- Datenaustausch mit Peripheriegeräten
125.1 Erkennung von Geräten
- Beim Einschalten melden die Hubs angeschlossene
Geräte. - Enumeration Host ordnet Geräten Adressen zu und
fordert Informationen an - Im laufenden Betrieb erfährt der Host vom
Anschließen oder Trennen eines Geräts. - Abgeklemmte Komponente wird aus der Liste der für
Anwendungen verfügbaren Geräte entfernt.
135.2 Verwaltung des Datenflusses
- Wollen mehrere Peripheriegeräte senden, wird die
verfügbare Zeit in Frames und Microframes
unterteilt. - Datenfluss wird in Frames zu einer Millisekunde
unterteilt - Jede Übertragung erhält Teile eines Frames oder
Microframes.
145.3 Fehlerüberprüfung
- Der Host fügt den übertragenen Daten
Fehlerprüfbits an. - Stimmt die Prüfsumme nicht überein, wird Empfang
nicht bestätigt sodass die Daten erneut gesendet
werden - Auch andere Indikatoren möglich
- Host informiert den Treiber
155.4 Stromversorgung
- Kabel enthält neben zwei Signalleitungen eine
5V- und Masseleitungen - Host arbeitet mit Gerät zusammen um Strom zu
sparen - Pro Bussegment max. 500mA
- Ports einiger batteriebetriebener PCs und Hubs
unterstützen nur max. 100mA, doch Windows
unterstützt keine Hosts mit herabgesetzter
Leistungsabgabe
165.5 Datenaustausch mit Peripheriegeräten
- Gerätetreiber können regelmäßige Kommunikation
mit dem Peripheriegerät fordern - Ansonsten kommuniziert der Host nur bei
Anforderung durch Softwarekomponenten - Probleme werden der entsprechenden Anwendung
vermittelt.
176 Grundzüge des Transfers
- Ein 1.x-Host unterstützt Low- und Full-Speed
- Ein 2.0-Host zusätzlich High-Speed
- 1.x-Hubs wandeln Geschwindigkeit nicht um,
sondern leitet nur weiter und ändert die
Flankenrate entsprechend - 2.0-Hubs müssen High-Speed umwandeln können, und
beherrschen Funktionen zur effizienten Nutzung
der Buszeit - Intelligenz führt zur Kompatibilität mit
1.x-Hardware
18Je nach Verwendungszweck gibt es zwei Kategorien
der USB-Kommunikation
- Anfangskonfiguration
- Konfigurationsabfragen Host lernt das Gerät
kennen und bereitet es für Datenaustausch vor. - Findet während der Enumeration statt
- Anwendungskommunikation
- Austausch zwischen Anwendungen und enumerierten
Geräten - Transfers, über die die eigentlichen
Gerätefunktionen ausgeführt werden
19Jeder Transfer besteht aus Transaktionen. Jede
Transaktion besteht aus Paketen mit Informationen.
- Alle Übertragungen finden zwischen Endpunkten
statt. - Host enthält ebenfalls Puffer für empfangene oder
sendebereite Daten, aber keine Endpunkte, er ist
Ausgangspunkt - Vor Transfer wird eine Pipe eingerichtet,
Verbindung zwischen Endpunkt und der
Host-Controller-Software - Der Host stellt die Kanäle vor der Enumeration
her. - Alle Geräte verfügen für Setup-Transaktionen über
eine Standard-Control-Pipe, die den Endpunkt 0
benutzt.
207 Enumeration - Geräteerkennung
- Es ist Aufgabe des Hubs, zu erkennen wenn Geräte
angeschlossen oder entfernt werden. - Ereignisse werden über Interrupt-IN-Kanal dem
Host gemeldet - Beim Booten des Systems fragt der Host seinen
Stammhub nach Geräten und Hubs ab, danach
periodisch - Wenn neues Gerät vorhanden, sendet er
Anforderungen an den Hub, dieser stellt Pipe her - Gerät wird enumeriert durch Control-Transfers mit
Standard-USB-Anforderungen an Endpunkt 0. - Erfolgreich, wenn Rückgabe der geforderten
Informationen und Ausführung geforderter Aktionen - Am Ende wird ein Eintrag im Gerätemanager
hinzugefügt.
21Schritte der Enumeration
- Der Anwender verbindet ein Gerät mit einem
USB-Port. - Der Hub erkennt das Gerät.
- Der Host erfährt vom neuen Gerät.
- Low-Speed- oder ein Full-Speed-Gerät?
- Der Hub setzt das Gerät zurück.
- Unterstützt Full-Speed-Gerät den
High-Speed-Modus? - Der Hub stellt einen Signalpfad zwischen Gerät
und Bus her. - Der Host ermittelt die maximale Paketgröße des
Standardkanals. - Der Host ordnet eine Adresse zu.
- Der Host ermittelt die Fähigkeiten des Geräts
- Der Host ordnet einen Gerätetreiber zu und lädt
ihn. - Der Gerätetreiber des Hosts wählt eine
Konfiguration aus.
228 Wie kommuniziert der Host?
- Gerätetreiber Softwarekomponente, die
Anwendungen den Zugriff auf Hardwarekomponenten
ermöglicht - Einige Gerätetreiber sind Klassentreiber, die
eine Kommunikation mit ähnlichen Geräten
ermöglichen - Datenkapselung GT benötigen keine Einzelheiten
über physische Verbindung, Signale, Protokolle - Zugriff des Anwendungscodes auf Geräte über deren
Name oder Funktion - Art der Schnittstelle für Anwendungen irrelevant,
da Anwendungscode derselbe bleiben kann, wenn
Hardware-Details auf niedriger Ebene geregelt
werden
238.1 Das Win32-Treibermodell (WDM)
- USB-Gerätetreiber für Windows müssen dem von
Microsoft definierten Win32-Treibermodell
entsprechen - Low-Level-Treiber
- Kommunizieren mit dem Betriebssystem auf
niedriger Ebene, wo ihnen mehr Rechte zustehen - Kann Zugriffe auf Geräte erlauben oder verweigern
- Fähig zu DMA-Transfers und Reaktion auf Interrupts
249 Hubs
- Jeder Hub besitzt einen upstream- und mindestens
einen downstream-Port - meist 2, 4 oder 7 - Externe Hubs bestehen aus zwei Hauptkomponenten
- Hub-RepeaterWeiterleitung des USB-Verkehrs
zwischen Stammhub des Hosts oder einem anderen
upstream-Hub und angeschlossenen (aktivierten)
Geräten - Hub-ControllerKommunikation zwischen Host und
Hub-Repeater - 2.0-Hubs besitzen zusätzlich Transaktionswandler
und interne Routig-Logik zur Kommunikation mit
Low- und Full-Speed-Geräten an einem
High-Speed-Bus
25- Danke für ihre Aufmerksamkeit!