Kommunikation µC und PC/Smartphone

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Häufig stellt sich die Frage wie die Kommunikation zwischen Mikrocontroller und Software auf einem PC oder Smartphone am Besten gelöst werden kann. Hier sollen diverse Möglichkeiten aufgelistet werden.

RS232

  • Einfache Umsetzung: siehe z.B. AVR-Tutorial:_UART
  • Neuere PCs besitzen teilweise keine RS232-Schnittstelle mehr (bei Smartphones praktisch überhaupt nicht vorhanden)
  • Es gibt viele RS232<->USB Adapterkabel

USB: CDC-Klasse (virtueller COM-Port)

  • Benötigt USB-Host-fähiges Smartphone (und entsprechende Treiberunterstützung)
  • Unter neueren Windows-Versionen wird für die (erforderliche) *.inf/*.cat eine digitale Signatur benötigt

USB: Custom/Drittanbieter

  • z.B. FTDI [[1]] (erzeugt je nach Treiber virtuellen COM-Port unter Windows, gute Treiberunterstützung)
  • oder Silabs CP210x
  • Benötigt USB-Host-fähiges Smartphone (und entsprechende Treiberunterstützung)
  • (Zukünftige) Treiberunterstützung ist abhängig vom Hersteller

USB: HID

  • Benötigt USB-Host-fähiges Smartphone (und entsprechende Treiberunterstützung)
  • Unter den meisten Betriebssystemen wird kein Treiber benötigt
  • Geschwindigkeit bei USB-FullSpeed auf 64KByte/s begrenzt
  • (kein virtueller COM-Port)

USB: WinUSB

USB: LibUSB

Bluetooth

  • Bluetooth-Module für µC: siehe Bluetooth oder HC-05/HC-06
  • kann nahezu jedes Smartphone
  • Genutzt wird häufig das SPP (Serial Port Profile, erzeugt auf PCs einen virtuellen COM-Port)
  • auf PCs bei SPP-Nutzung keine zusätzlichen Treiber* nötig (*außer für den BT-Adapter des PCs)

LAN/WLAN

  • WLAN wird von jedem halbwegs aktuellen Smartphone unterstützt.
  • Teilweise höherer Resourcenverbrauch auf µC (gegenüber USB/RS232)

LPT/Parallelport

  • keine Smartphone-Unterstützung
  • an neueren PCs häufig nicht mehr vorhanden
  • Adapterkabel auf USB meist nur für Drucker tauglich (ansonsten ggf. Timing-Probleme)

IrDA

  • Recht einfache Umsetzung
  • nahezu keine Unterstützung bei PCs und Smartphones (hauptsächlich bei veralteten Notebooks und Handys vorhanden)

Anmerkungen

Die USB-Lösungen bieten hier den Vorteil eine Stromversorgung gleich mitzuliefern. HID+WinUSB bieten hier den Vorteil, dass Treiber ggf. nicht benötigt werden (es muss sich nicht selbst um digitale Signatur gekümmert werden oder bei Fertiglösungen auf die Treiberunterstützung für spätere Windows-Versionen gehofft werden). Zudem bleibt bei HID+WinUSB dem Endkunden die Konfiguration von Baudraten erspart.

RS232 + USB-Adapterkabel ist auch relativ zukunftssicher, ggf. muss für neuere Windows-Versionen das Adapterkabel durch ein neueres getauscht werden.

Für Kommunikation mit Smartphones bietet sich die Bluetooth-Variante an, da Bluetooth dort weit verbreitet ist und in der Regel APIs bereitstehen (für Android siehe z.B. den 'BluetoothChat' Beispielcode des Android SDKs). USB-Lösungen funktionieren meist nur mit bestimmten Smartphones (siehe z.B. https://github.com/mik3y/usb-serial-for-android/wiki/Compatible-Android-Devices) und erst ab Android 3.1.

LPT und IrDA sind nahezu tot.