Aus RN-Wissen.de
Version vom 11. Januar 2009, 22:14 Uhr von Carbolo (Diskussion | Beiträge) (USB-Host Bausteine)

Wechseln zu: Navigation, Suche
Rasenmaehroboter fuer schwierige und grosse Gaerten im Test

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...

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)

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
    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:

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 einen 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

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


LiFePO4 Speicher Test