USB-Treiberprogrammierung
Entwickeln Sie Ihren eigenen USB-Treiber
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)
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 die folgenden Betriebssysteme: Windows 10 und 11 (32 und 64 Bit) sowie Windows Server 2016, 2019 und 2022, jeweils mit Dedicated Mode
-
Unterstützung von Mehrkernprozessoren, Hyperthreading 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 bis einschließlich USB 3.1 ü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 und 11 (32 und 64 Bit), Dedicated Mode
-
Windows Server 2016, 2019 und 2022, Dedicated Mode
Hardware
Die Software läuft auf folgender Hardware:
-
CPU: AMD (ab Athlon) oder Intel (ab Pentium 2), 32 oder 64 Bit
-
Dual- oder Multi-Core; mit Multi-Core optional Hyperthreading verwendbar, derzeit bis 48 logische CPUs, darüber auf Anfrage
-
ACPI erforderlich (Advanced Control and Power Interface)
-
der PC muss PAE (Page Address Extension) unterstützen
-
Gigabit-Ethernet bis 200 GBit/s: Fast alle Controller von Intel und RealTek werden unterstützt
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#.
EtherCAT® und Safety over EtherCAT® sind eingetragene Marken und patentierte Technologien, lizenziert durch die
Beckhoff Automation GmbH, Deutschland.
CANopen® ist ein registriertes Warenzeichen des
CAN in Automation e. V.
GigE Vision® ist ein registriertes Warenzeichen der
Automated Imaging Association.
USB3 Vision® ist ein registriertes Warenzeichen der
Automated Imaging Association.