Kithara USB Toolkit

Funktions­bibliothek für USB-­Treiber­entwicklung

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)

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 7, 8 und 10 (32- und 64-Bit), Server 2008 R2 sowie Embedded-Varianten
  • Unterstützung von PIC- und APIC-Hardware, NUMA-Multiprozessor-PCs, Hyperthreading, Dual-/Quad-Core etc.
  • Funktionen für: Öffnen des Treibers, Ausführung von Echtzeit-Code auf der Kernel-Ebene, Echtzeit-Speicherverwaltung, Device-Handling, Versionskontrolle, Debug-Hilfen, Systeminformationen
  • Anwendungs-Threads, Events, Callbacks, Shared Memory, Daten- und Message-Pipes, schnelle Mutex-Objekte

Weitere Informationen …

Clock Module

  • Ermittlung der Systemzeit in verschiedenen, auch anwenderspezifischen Zeitformaten, Auflösung bis ca. 0,1 μs
  • Hochgenaue Kurzzeitverzögerungen
  • Langzeitsynchronisation bei Systemuhren, Synchronisation mit EtherCAT Distributed Clocks (DC) und IEEE 1588

Weitere Informationen …

Kommunikation

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 …

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 …


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 (32- und 64-Bit, bei 64-Bit nur im Dedicated Mode)
  • Windows 8 und 8.1 (32- und 64-Bit, bei 64-Bit nur im Dedicated Mode)
  • Windows Server 2012 (64 Bit, nur im Dedicated Mode)
  • Windows 7 (32- und 64-Bit) und Windows Embedded Standard 7
  • Windows 2008 R2 (64 Bit)

Hardware

Die Software läuft auf folgender Hardware:

  • CPU: AMD (ab Athlon) oder Intel (ab Pentium 2), 32- oder 64-Bit
  • Single- oder Multi-Core, Hyperthreading, Normalversion bis 8 logische CPU-Kerne (erweiterte Version derzeit bis 32 logische CPU-Kerne, darüber auf Anfrage)
  • ACPI erforderlich (Advanced Control and Power Interface), APIC erforderlich (Advanced Programmable Interrupt Controller)
  • der PC muss PAE (Page Address Extension) unterstützen
  • bei Gigabit-Ethernet bis 10 GBit/s: Controller von Intel und RealTek fast durchgängig unterstützt, auf Anfrage

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 2005/08/10/12/13/15)
  • 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 2005/08/10/12/13/15)

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® ist ein registriertes Warenzeichen der EtherCAT Technology Group.
CANopen® ist ein registriertes Warenzeichen des CAN in Automation e. V.
GigE Vision® ist ein registriertes Warenzeichen der Automated Imaging Association.