Über ..

 


Kontakt

 


Impressum

 

 
  Startseite

 

-----------
  Angebote
  -----------
  Projekte

Projekt 10/01

  -----------
  Produkte
   
   
   
   
   
   
   

System-Software zur USB-Kommunikation zwischen einem Atom-PC und einem CortexM3-Controller

6 Monate, Hannover/D
 

Bei einer neuen Generation von Ticket-Automaten soll die Kommunikation zwischen dem zentralen PC und den Controllern der Komponenten (Münzverarbeitung, Drucker, Netzteil, ...) über USB erfolgen.

Auf der Controller-Platine kommt als Prozessor ein ARM Cortex-M3 zum Einsatz. Für diesen Controller wurde ein Mini-Betriebssystem entwickelt, das preemptives Multitasking unterstützt. Bei der USB-Kommunikation über mehrere Bulk- und Interrupt-Endpunkte können eintreffende und zu sendende Nachrichten gepuffert werden. Für die zahlreichen Peripherie-Baugruppen können Interrupt-Handler installiert werden. Außerdem erlaubt der Systemkern den Wechsel in einen Update-Modus, in dem das System selbst sowie die Applikationen aktualisiert werden können. Weitere Systemdienste dienen der Abfrage der Systemzeit oder der Beeinflussung des Task-Schedulers, um z.B. zeitkritische Codesequenzen ohne Unterbrechung abarbeiten zu können. Als Entwicklungs-Umgebung wurde Eclipse verwendet, Compiler, Linker etc. stammen aus der GNU-Toolchain.

Auf PC-Seite wurde ein USB-Client-Treiber entwickelt. Unter Verwendung des Kernel-Mode-Driver-Frameworks (KMDF) aus dem WDK Version 7.1 wurde der Treiber als WDF-Treiber implementiert, der sowohl die 32- als auch die 64-Bit-Windows-Plattformen ab Windows XP unterstützt. Zur automatischen Abfrage der Interrupt-Endpoints werden im Treiber Continuous-Reader verwendet. Als einheitliche Programmier-Schnittstelle für die Windows-Applikationen wurde eine DLL entwickelt, die sich der Dienste des USB-Client-Treibers bedient. Die DLL enthält außerdem eine Überwachung von Plug&Play-Ereignissen. Auf diese Weise wird eine Liste der angeschlossenen USB-Geräte immer aktualisiert, wenn neue Geräte angeschlossen werden oder wenn USB-Geräte vom PC entfernt werden.

Mehrere C++-Beispiel-Applikationen sowohl auf Controller- als auch auf PC-Seite veranschaulichen die Nutzung der System-Software zur USB-Kommunikation.