USB-Treiberprogrammierung

Entwickeln Sie Ihren eigenen USB-Treiber

Kithara USB Toolkit

Kithara USB Toolkit stellt alle wesentlichen Funktionsmechanismen für die Entwicklung von Treibern für USB-Geräte bereit. Mit einem einfach anwendbaren API können Sie von der gewohnten Programmierumgebung aus auf Hardware-Komponenten zugreifen, als wenn Sie mit hohem Aufwand einen echten Gerätetreiber entwickeln würden.

Kithara USB Toolkit ist ein Werkzeug, mit dem Sie komfortabel USB-Treiber für Windows entwickeln oder fremde USB Hardware ansprechen können, ohne sich in die aufwendige Kernel-Programmierung einarbeiten zu müssen. Die gesamte Entwicklung erfolgt aus Ihrer gewohnten Programmierumgebung heraus, es werden die Programmiersprachen C, C++, Delphi und C# direkt unterstützt. Kithara USB Toolkit stellt einen generischen Treiber bereit, über den Systemprogrammierer direkt mit den USB-Geräten kommunizieren können.

Weitere Information siehe Kithara Driver Collection. Eine individuelle Zusammenstellung der Funktionsmodule sowie Echtzeitfähigkeit erhalten Sie mit Kithara RealTime Suite.

Einige Eckdaten

  • Kommunikation mit USB-Geräten über USB 1.1, USB 2.0, USB 3.0 und USB 3.1 von der Anwendungs- oder Kernel-Ebene aus
  • Unterstützt Geräte mit mehreren Interfaces und Konfigurationen
  • Reaktion auf alle Plug-and-Play- und Power-Management-Ereignisse sowie auf eintreffende Daten direkt auf Kernel-Ebene möglich
  • Sende- und Empfangsroutinen können direkt aus dem Echtzeitkontext aufgerufen werden
  • Beliebige Gerätenamen, beispielsweise für virtuelle Schnittstellen
  • Generischer WDM-Treiber für Plug-and-Play-Installation enthalten
  • Unlimitierte Weitergabe der Runtime-Dateien
  • Nutzung der Kernel-Ebene unterstützt C, C++ oder Delphi (Win32 native)
USB in Echtzeit

Module

Kithara USB Toolkit enthält folgende Module, wobei eventuell genannte Echtzeitfähigkeit nur gegeben ist, wenn das Modul Teil von Kithara RealTime Suite ist.

Basisfunktionen

Base/Kernel Module

  • Unterstützt Windows sowie Windows Server (nur 64-Bit-Betriebssystem), jeweils mit Dedicated Mode
  • Unterstützung von Mehrkernprozessoren, Hyper-Threading und NUMA-Multiprozessor-PCs
  • Funktionen für: Öffnen des Treibers, Ausführung von Echtzeit-Code auf der Kernel-Ebene, Echtzeit-Speicherverwaltung, Device-Handling, Versionskontrolle, Debug-Hilfen, Systeminformationen
  • Echtzeit-Tasks, Events, Callbacks, Shared Memory, Daten- und Message-Pipes, schnelle Mutex-Objekte

Weitere Informationen …

System Module

  • Abfangen von Systemereignissen wie Schutzverletzungen und Systemabstürzen auf der Kernel-Ebene (zum Beispiel FailSafe-Handler/„BlueScreen-Handler“)

Weitere Informationen …

Kommunikation

USB Driver Module

  • Ansprechen von USB-Geräten über Windows-Treiberstack
  • Low-, Full-, High-Speed
  • Control-, Bulk-, Interrupt- und Isochron-Transfer
  • Reaktion auf alle Plug-and-Play- und Power-Management-Ereignisse

Weitere Informationen …

Device Module

  • Bereitstellung eines Windows-Programmier-Interfaces für Gerätekommunikation (ReadFile, WriteFile, DeviceIoControl)
  • Beliebige Gerätenamen, zum Beispiel für virtuelle COM-Ports

Weitere Informationen …



Plattformen

Echtzeitfähigkeit wird nur auf der Kernel-Ebene erzielt. Dazu wird eine Programmiersprache und -umgebung benötigt, die nativen Maschinencode erzeugt, wie etwa C, C++, Delphi und andere. Dennoch unterstützt Kithara RealTime Suite verschiedene Plattformen, beispielsweise auch die .NET-Umgebung. Die Lösung besteht darin, den zeitkritischen Code in eine DLL zu verlagern, die mit den Funktionen von Kithara RealTime Suite direkt auf die Kernel-Ebene geladen wird und dadurch in den Echtzeit-Kontext gelangt. Sofort verwendbare Programmgerüste für die genannten Plattformen befinden sich in jeder Software-Lieferung.


Systemvoraussetzungen

Kithara RealTime Suite unterstützt eine breite Palette von Hardware- und Software-Kombinationen. Bei Fragen hierzu kontaktieren Sie uns bitte!

Betriebssystem

Die Software unterstützt folgende Betriebssysteme:

  • Windows 10 (nur 64-Bit-Version)
  • Windows 11
  • Windows Server 2019 (nur 64-Bit-Version)
  • Windows Server 2025

Hardware

Die Software läuft auf folgender Hardware:

  • CPU: x64-CPU (Intel, AMD)
  • Multi-Core; optional Hyper-Threading verwendbar, derzeit bis 48 logische CPUs, darüber auf Anfrage
  • ACPI erforderlich (Advanced Control and Power Interface)
  • zur Kompatibilität von Kommunikationsschnittstellen siehe z.B. hier.

Compiler

Sofort verwendbare Programmgerüste für folgende Programmiersprachen/Compiler sind Teil der Software-Lieferung (auch weitere Programmiersprachen können auf Anfrage unterstützt werden):

  • Visual Studio 20xx C++ mit MFC-Oberfläche (mitgelieferte Projektdateien: VS 2010/12/13/15/17/19/22)
  • C++Builder (Embarcadero, ehem. Borland) mit VCL-Oberfläche
  • Delphi (Embarcadero, ehem. Borland) mit VCL-Oberfläche
  • Visual Studio 20xx C# mit WPF-Oberfläche (inkl. C++-DLL für Echtzeit-Ausführung, mitgelieferte Projektdateien: VS 2010/12/13/15/17/19/22)

Für die Code-Ausführung im Echtzeitkontext ist im Prinzip jeder Compiler verwendbar, der eine DLL mit nativem Maschinencode erzeugen kann. Die Windows-Anwendung kann jedoch auch mit anderen Programmiersprachen erzeugt werden, zum Beispiel mit C#.