USB-Mux

Technologien
  • USB 2.0
  • Python 3
  • Linux (Kernel 4.* oder höher)
  • labgrid

Der USB-Mux ist ein Werkzeug zur Unterstützung bei der Entwicklung von Embedded Linux Geräten mit USB. Der USB-Mux hat drei USB-Ports, jeder mit seiner eigenen Aufgabe:

  • Der Host-Port dient zum einen der Steuerung des Mux, über ihn stellt unser Python-basiertes Kontrollwerkzeug die Verbindungen her. Zum anderen kann über ihn auch mit den anderen Ports kommuniziert werden.
  • Der Device-Port dient zum Anschluss von USB-Geräten wir z.B. Speicher-Sticks an den Mux.
  • Über den DUT-Port wird das Device Under Test angebunden, an diesem Port kann das DUT sowohl als USB-Gerät, als auch als USB-Host agieren, was das Testen von USB OTG-Fähigkeiten erlaubt.

Der USB-Mux nutzt analoge schalter und Leistungstransistoren, um Verbindungen zwischen den Ports herzustellen und zu lösen. Das erlaubt beispielsweise automatisierte Arbeitsabläufe bei denen zuerst Daten durch den Host auf einen USB-Stick am Device Port gespielt werden, der anschließend dem DUT zur Verfügung gestellt wird. So kann beispielsweise das Updaten des Systems über USB-Stick automatisiert getestet werden. Ein weiterer Use-Case ist das abwechselnde Verbinden des DUT mit dem Host-Port und dem Device-Port zum Testen der USB-OTG funktionalität.

Bei der Entwicklung der Software stand besonders die Integration in labgrid im Fokus, so dass der USB-Mux sowohl manuellen Remote-Zugriff auf die Entwicklungshardware, also auch die Testautomatisierung ermöglicht.

Ressourcen

Verkauf: Im EMV-Test
Software: https://github.com/linux-automation/usbmuxctl
Handbuch (en): In Arbeit