RoboterNetz.de Foren-Übersicht               
 RN-Wissen Home  -  Community Home  -  Alle Artikel -  Mitglieder -  Moderatoren  -  Bilderliste  -  Letzte Änderungen
 Kategorien  -  Beliebte Seiten  -  Sackgassenartikel  -  Artikel ohne Kategorie  -  Neue Artikel  -  Anmelden

USB

aus RN-Wissen, der freien Wissensdatenbank

USB-Logo
Universal Serial Bus – Der USB-Bus (eigentlich sollte man ja US-Bus sagen) erfreut sich immer mehr steigender Beliebtheit.

Seine wirklich universelle Einsetzbarkeit fĂŒhrte mittlerweile sogar so weit, dass bisherige Standardschnittstellen in neuen PCs oder Notebooks immer mehr verdrĂ€ngt werden, ja sogar ganz an den GerĂ€ten verschwanden.

Grund, auch einen Artikel fĂŒr diese Schnittstelle zu schreiben. ZunĂ€chst beschrĂ€nke ich mich auf die allgemene Definition. Im Anhang unter "Weblinks" ist sogar ein Link zu meinem fertigen Projekt eines USB-Adapters, welcher gerade fĂŒr das Roboternetz zugeschitten ist.

Weitere Projekte sind bereits gedanklich am entstehen, z.B. ein USB-ISP Programmer, aber ich bitte um Geduld...

Inhaltsverzeichnis

USB-Standards

USB 1.1

  • LowSpeed 1,5 MBit/s fĂŒr GerĂ€te mit niedriger Bandbreite
z.B. Maus und Tastatur
  • FullSpeed 12 MBit/s fĂŒr GerĂ€te mit mittlerer Bandbreite
z.B. Modem, LAN, Audio
  • integrierte Stromversorgung bis 500mA je Port, ohne Anmeldung am Host sind höchstens 100 mA vorgesehen
  • Hot-Plug fĂ€hig: d.h. GerĂ€te können bei laufendem Betrieb angeschlossen werden.
  • Durch USB-Hubs und entsprechende Kaskadierung können bis zu 127 GerĂ€te angeschlossen werden.
  • Energiemanagement unterstĂŒtzt Suspend und Resume (Stand-By)
  • Protokolle zur Fehlererkennung und Fehlerbehandlung
  • synchrone und asynchrone Übertragungsarten
  • maximale KabellĂ€nge ca. 5 Meter

USB 2.0

  • HighSpeed 480 MBit/s fĂŒr GerĂ€te mit Hoher Bandbreite
z.B. fĂŒr Video, externe Festplatten und CD-Brenner
  • Stecker und Programmierung von USB 2.0 entsprechen dem von USB 1.1

USB AnschlĂŒsse

USB-A

Der USB-A Anschluss wird (meist) an PCs oder USB-Hubs verwendet (Host). Es können mehrere GerÀte (Devices) angeschlossen werden.

USB-B

Der USB-B Anschluss wird (meist) fĂŒr EndgerĂ€te verwendet, es können/sollen keine weiteren GerĂ€te (Devices) angeschlossen werden.

USB mini-B

Der USB mini-B bzw. USB-B mini wird wie der "normale" USB-B Anschluß verwendet. Verwendung vor allem bei KleingerĂ€ten, bei denen aus PlatzgrĂŒnden keine "normale" Buchse Platz findet.


USB (Einbau-) Buchsen


USB-A Buchse

USB Buchse Typ A

Risszeichnung


USB-B Buchse

USB Buchse Typ B

Risszeichnung


USB mini-B Buchse

USB Buchse Typ mini B

Risszeichnung


USB Pinout

USB Pinout
Pin Name Signal
1 VCC (+5V DC max. 500mA/Port)
2 D- (Data minus)
3 D+ (Data plus)
4 GND (Masse)

Anschluss von Mikrocontrollern und GerÀten (Interface-ICs und Module)

USB zu seriell Bausteine (USB-UART Wandler)

Diese Bausteine werden fĂŒr die Kommunikation zwischen PC und Mikrocontroller genommen. Dabei ist es ziemlich egal, welcher Mikrocontroller eingesetzt wird, funktionieren tut alles solange ein Hardware UART (RS232-Schnittstelle) an Bord ist. Software-UART sollte auch gehen, allerdings mit niedrigeren Übertragungsraten.

USB zu seriell Bausteine werden am USB-Bus als "Device" angeschlossen und stellen damit ein EndgerÀt dar. Man kann damit keine anderen USB-EndgerÀte (Drucker, Festplatte, Speicherstick, Kamera, etc.) ansteuern, dazu braucht man einen USB-Host (siehe weiter unten)!

Die Firma FTDI bietet relativ preisgĂŒnstige Bausteine (etwa 5€ pro StĂŒck), fĂŒr den USB an. Diese Bausteine ermöglichen die Kommunikation zwischen PC und Mikrocontroller, indem der physikalisch vorhandene USB-Bus "ausgeblendet" wird und statt dessen eine wesentlich einfachere UART-Kommunikation stattfindet. Dazu wird am PC ein virtueller COM-Port installiert (macht WinXP beim anstecken automatisch) und der Mikrocontroller wird auf die Leitungen RXD/TXD des Wandlerchips angeschlossen. Am PC kann man nun mit einem Terminalprogramm(z.B. HTerm) das virtuelle COM-Port öffnen, und Daten oder Steuerkommandos verschicken. Der Mikrocontroller bekommt diese Daten dann auf die RS232- Schnittstelle (UART), und kann auch zurĂŒckantworten. Weder d. Terminalprogramm noch der Mikrocontroller merken, dass die Kommunikation eigentlich ĂŒber USB lĂ€uft. (Was auch gut ist, denn das USB-Protokoll ist ziemlich komplex). Trotzdem kann man die Vorteile von USB (z.B. stabile 5V-Spannungsversorgung bis max 500mA, einfacher Anschluss an alle PC's und Laptops, usw.) nutzen.

Die bekanntesten USB-Seriell Wandlerchips sind folgende:

  • FTDI FT232BL
    FT232BL im TQFP GehÀuse
    Ist schon etwas veraltet, und wurde durch das FT232R ersetzt.
  • FTDI FT232RL
    FT232RL im SSOP GehÀuse
    Ist zur Zeit aktuell, aber sehr schlecht zu löten, da die PinabstĂ€nde nur 0.65mm (SSOP28-GehĂ€use) betragen. Mit etwas Übung geht es, aber nach Möglichkeit sollte man fertige Module nehmen. Ein Datenblatt findet sich hier
  • SiLabs CP210x

Entsprechende Treiber werden von FTDI kostenfrei zur VerfĂŒgung gestellt. Somit kann man sich rein auf die Schaltungsentwicklung konzentieren.

USB-Host Bausteine

USB-Hosts werden fĂŒr den Anschluss von USB-EndgerĂ€ten (Devices) wie

  • externe Festplatten,USB-Sticks
  • Kameras,Webcams,Handys
  • Jostick
  • Drucker
  • Tastatur,Maus
  • WLAN-Stick
  • usw.

an Mikrocontroller verwendet. Dabei muss der Host neben der Spannungsversorgung (5V) auch die Abwicklung des USB-Protokolls beherrschen. Das ist nicht ganz einfach, deshalb gibt es fertige ICs (wie z.B. den VNC1L von FTDI), die diese FunktionalitĂ€t bereits enthalten. Leider hat der VNC1L ein GehĂ€use mit 0.5mm Pinabstand, das sich kaum noch mit der Hand löten lĂ€sst und bei zuviel Hitze auch mal den Geist aufgibt. Ziemlich blöd bei einem Preis von 14,65€ pro IC (Reichelt). Besser ist es ein fertiges Modul zu nehmen, wobei diese auch nicht wirklich gĂŒnstig sind, aber immerhin fertig gelötet, getestet und mit Firmware:

Die Ansteuerung der Module erfolgt mit SPI, UART (RS232) oder beim VDIP1 auch im Parallel-Modus. UART lĂ€sst sich am einfachsten programmieren, deshalb sollte man es auch nehmen. Im VNC1L ist ein Firmware enthalten, das einfach ĂŒber UART gesendete Buchstabenkombinationen ("Befehle") angesprochen wird. FĂŒr die Ansteuerung von Festplatten (oder USB-Sticks) sind ziemlich viele Befehle bereits vorhanden (Ordner und Dateien anlegen/löschen/öffnen/schliessen/usw.) und im (englischen) Datenblatt auch gut beschrieben: download. Eine grobe Beschreibung auf Deutsch findet sich auch ab Seite 7 im Datenblatt des Z-USB.

Achtet darauf, dass die Firmware beim Kauf schon aufgespielt ist (dies ist beim VDIP1 und Z-USB definitiv der Fall, beim ST 100 vermutlich auch. Bei mir war auf dem VDIP1 eine veraltete Firmware, der Z-USB hatte eine aktuelle).

Ein nagelneuer VNC1L-Chip hat KEINE aufgespielte Firmware (!!), und muss erst ĂŒber die serielle Schnittstelle (inkl. Handshake-Leitungen) programmiert werden. Dazu gibt es eine Anleitung bei FTDI, allerdings benötigt man dafĂŒr einen FT232-Baustein (siehe oben) und die Leitungen RTS und CTS. Die Programmierung ĂŒber ein USB-Stick funktioniert nur, wenn auf der VNC1L bereits ein funktionsfĂ€higer Firmware installiert ist!

Persönliche Erfahrungen

Zuerst habe ich mir vor etwa 2 Jahren ein VDIP1 von FTDI gekauft, da ich am meinem Quadrokopter gerne ein paar Daten loggen wollte. Es funktionierte auf Anhieb, einfach ein FT232-Wandlerbaustein (USB <--> UART) angeklemmt, und mit HTerm konnte man sofort kommunizieren. Es unterstĂŒtzt sogar die parallele Ansteuerung, was ich allerdings nie getestet habe, da es doch ziemlich viele freie Pins des Atmega verbraucht. Als Nachteil hat sich herausgestellt, dass die dĂŒnnen Beinchen sich schnell verbiegen und bei mehrfachen an- und abstecken gerne mal brechen. NatĂŒrlich genau dann, wenn man es gerade nicht reparieren kann :-)

Nachdem der VDIP1 bei einer Wasserlandung den Geist aufgegeben hat, kam ein Z-USB-Modul von rz-robotics. Es lĂ€sst sich mit FT232 und HTerm genauso einfach in Betrieb nehmen (wen wunderts, es ist auch das gleiche IC drauf), macht aber von der Konstruktion her einen deutlich solideren Eindruck. An den Ecken sind Befestigungsbohrungen, die Beinchen sind viel stabiler aber es ist auch etwas grĂ¶ĂŸer als der VDIP1. Beim Kauf kann man auswĂ€hlen, welchen Montagesatz man gerne haben möchte. Nimmt die verschraubte Variante, damit sitzt das Ding bombenfest. Die Ansteuerung ist exakt das gleiche wie beim VDIP1, der Code hat ohne Änderungen problemlos auch mit der Z-USB funktioniert.

Von der STI 100 kann ich leider nicht berichten, den habe ich bisher nur gesehen, aber nicht getestet.

Siehe auch

Weblinks

Darwin.nuernberg 11:27, 21. Apr 2006 (CEST)

'Persönliche Werkzeuge

RN-MicroFunk
Mini Funkmodul und
Controllerboard
in Einem!
fĂŒr nur 29,80 Euro
robotikhardware.de


Lichtprofi.de
LED Shop
www.lichtprofi.de