Kithara PCI Toolkit
Funktionsbibliothek für PCI-Treiberentwicklung
Kithara PCI Toolkit stellt alle erforderlichen Mechanismen zur schnellen Entwicklung von Hardware-Treibern, insbesondere für PCI/PCIe-Karten, 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.
Über I/O-Ports, physischen Speicher sowie 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.
Kithara PCI Toolkit stellt Funktionen für verzögerungsfreie Zugriffe auf I/O-Register und physischen Speicher der PC-Hardware bereit. Zusätzlich ist auch die Behandlung von Hardware-Interrupts auf der Anwendungs- oder Kernel-Ebene möglich. Außerdem können Sie die PCI-Konfigurationsdaten und Schnittstellen-Ressourcen ermitteln.
Die gesamte Entwicklung erfolgt aus Ihrer gewohnten Programmierumgebung heraus, es werden die Programmiersprachen C, C++, Delphi und C# direkt unterstützt. Kithara PCI Toolkit stellt einen generischen Treiber bereit, über den Systemprogrammierer direkt PCI/PCIe-Hardware-Ressourcen ansteuern können.
Weitere Information siehe
Kithara Driver Collection. 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
-
Mehrere Handler pro IRQ installierbar
-
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 PCI Toolkit löst das frühere „Hardware Toolkit“ ab
Module
Kithara PCI 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 …
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 Tasking Modules auch Echtzeit-Interrupts an PCI- oder PCIe-Hardware
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 …
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.