Kithara Driver Collection

Funktions­bibliothek für hardware­nahe Pro­gram­mierung
und Treiber­entwicklung

Kithara Driver Collection stellt alle wesentlichen Funktionsmechanismen für hardwarenahe Programmierung und die Entwicklung von Treibern für Geräte und Hardware-Baugruppen bereit.

Mit einem umfassenden, aber 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.

Über I/O-Ports, physischen Speicher und Handler zur Reaktion auf Hardware-Interrupts lässt sich prinzipiell jede Hardware im PC ansprechen, soweit die Zugriffsdetails bekannt sind. Dabei werden zur hardwarenahen Programmierung alle bekannten Bustypen unterstützt: ISA, PCI, PCIe sowie PCMCIA, CardBus und ExpressCard sind einige Beispiele. Auch USB-Geräte lassen sich programmieren. Ebenso finden Sie Funktionen für Timer, Tastaturbehandlung und serielle Kommunikation über UART-Ports in diesem umfassenden Produkt.

Die Beliebtheit von Kithara Driver Collection zeigt, dass viele Nutzer vor allem das breite Anwendungsspektrum dieser Funktionsbibliothek zu schätzen wissen, da sich mit ihr bereits umfangreiche, hardwarenahe Projekte realisieren lassen. Eine individuelle Zusammenstellung der Funktionsmodule sowie Echtzeitfähigkeit erhalten Sie mit Kithara RealTime Suite.

Einige Eckdaten

  • Direkter Zugriff auf alle I/O-Register des PCs (8 Bit, 16 Bit und 32 Bit)
  • Direkter Zugriff auf physischen Speicher
  • Leistungsfähige Mechanismen zur Interrupt-Programmierung
  • Kommunikation mit USB-Geräten über USB 1.1, USB 2.0, USB 3.0 und USB 3.1
  • Generischer WDM-Treiber für Plug-&-Play-Installation enthalten
  • Bereitstellung eines Windows-Programmier-Interfaces für Gerätekommunikation
  • Abfangen von Systemereignissen (Fail-Safe-Handler)
  • Behandlung von PS/2-Tastaturereignissen
  • Serielle UART-Kommunikation in Echtzeit
  • Hochgenaue Ermittlung der Systemzeit und Kurzzeitverzögerungen
  • Unlimitierte Weitergabe der Runtime-Dateien
  • Nutzung der Kernel-Ebene unterstützt C/C++ oder Delphi (Win32 native)

Kithara Driver Collection 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 …

System Module

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

Weitere Informationen …

Hardware-Zugriff

IoPort Module

  • Zugriff auf alle I/O-Register des PCs aus Anwendung oder DLL
  • Ermittlung der PCI-Konfigurationsdaten und Ressourcen-Daten

Weitere Informationen …

Memory Module

  • Zugriff auf externen physischen Speicher (Dual-Port-RAM)
  • Bereitstellung von PC-Speicher für externe Hardware (DMA-Speicher)

Weitere Informationen …

Interrupt Module

  • Behandlung von Hardware-Interrupts auf der Anwendungs- oder Kernel-Ebene
  • Nutzung der Betriebssystem-Mechanismen zur Interrupt-Behandlung
  • Bei Vorliegen des RealTime Modules auch Echtzeit-Interrupts an PCI- oder PCIe-Hardware

Weitere Informationen …

Kommunikation

Serial/UART Module

  • Serielle Kommunikation in Echtzeit durch spezielle Hardware-Treiber auf UART-16550-kompatibler Hardware
  • Signal- und Handshake-Leitungen direkt ansteuerbar
  • Handler für alle Schnittstellen-Ereignisse in Echtzeit
  • Alternatives API für alle Windows-gestützten COM-Ports ohne Echtzeit mitgeliefert

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 …

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 …

Timer

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 …

Timer Module

  • Einfache Timer in Millisekundenauflösung auf Basis von Windows-Mechanismen (keine Echtzeit)

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.