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
- 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-B Buchse
USB mini-B Buchse
USB Pinout
Pin Name Signal 1 VCC (+5V DC max. 500mA/Port) 2 D- (Data minus) 3 D+ (Data plus) 4 GND (Masse)
USB Interface-Bausteine (ICs)
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 ein 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 der 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, einfacher Anschluss an alle PC's und Laptops, usw.) nutzen.
Die bekanntesten USB-Seriell Wandlerchips sind folgende:
- FTDI FT232BL Ist schon etwas veraltet, und wurde durch das FT232R ersetzt.
- FTDI FT232RL 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:
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! Ein nagelneuer VNC1L-Chip hat KEINE aufgespielte Firmware (!!), und muss erst über die serielle Schnittstelle programmiert werden. Dazu gibt es eine Anleitung bei FTDI, allerdings benötigt man dafür ein FT232-Baustein (siehe oben) und die Handshakeleitungen RTS und CTS. Die Programmierung über ein USB-Stick funktioniert nur, wenn auf der VNC1L bereits ein funktionsfähiger Firmware installiert ist!
Siehe auch
Weblinks
- Buch zum FT232,245 und 2232, diverse preiswerte USB-Module, HV-Programmer etc.
- Projekt im Roboternetz: Protobed - USB zu RS232 (V24) – Interface
- Hardware Bastelkiste
- Elektronik Kompentium (ElKo)
- PDF Datenblatt von FTDI zum FT232BL (USB-seriell)]
- PDF Datenblatt von FTDI zum FT232RL (USB-seriell)
- PDF Datenblatt von FTDI zum FT245RL (USB-parallel)
Darwin.nuernberg 11:27, 21. Apr 2006 (CEST)