topic_drivercollection

Kithara »Driver Collection«

Funktionsbibliothek für hardwarenahe Programmierung und Treiberentwicklung

Die »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 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 sind einige Beispiele. Auch USB-Geräte lassen sich programmieren. Ebenfalls finden Sie Funktionen für Timer, Tastaturbehandlung und serielle Kommunikation über UART-Ports in diesem umfassenden Produkt!

Die Beliebtheit der »Driver Collection« zeigt, dass eine Vielzahl von Nutzern der Kithara-Produkte vor allem das breite Anwendungsgebiet der gesamten Produktreihe schätzen. Auch wenn dieses Produkt keine Echtzeiteigenschaften bereitstellt, so können doch umfangreiche hardwarenahe Projekte damit realisiert werden.

Hinweis: Eine individuelle Zusammenstellung der Funktionsmodule sowie Echtzeitfähigkeit erhalten Sie in der »RealTime Suite«.

  • 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 und USB 2.0
  • Generischer WDM-Treiber für Plug&Play-Installation enthalten
  • Bereitstellung eines Windows-Programmier-Interfaces für Gerätekommunikation
  • Abfangen von Systemereignissen (FailSafe-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)

Die »Driver Collection« enthält die folgenden Module, wobei eventuell genannte Echtzeitfähigkeit nur gegeben ist, wenn das Modul Teil der »RealTime Suite« ist.

Basisfunktionen

Base Module

  • Unterstützt die folgenden Betriebssysteme: Windows 7/8/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, Device-Handling, Versionskontrolle, Debug-Hilfen, Systeminformationen
  • Anwendungs-Threads, Events, Callbacks, Shared Memory, Daten- und Message-Pipes, schnelle Mutex-Objekte
  • Weitere Informationen...

Kernel Module

  • Ausführung von Echtzeit-Code auf der Kernel-Ebene
  • Echtzeit-Speicherverwaltung, Memory-Kopierfunktionen
  • Nur in Verbindung mit C/C++ oder Delphi
  • Generischer WDM-Treiber für Plug&Play-Installation enthalten
  • Weitere Informationen...

System Module

  • Abfangen von Systemereignissen, z.B. Schutzverletzungen und Systemabstürzen auf der Kernel-Ebene (z.B. 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, z.B. für virtuelle „COM-Ports“
  • Weitere Informationen...

USB 2 Module

  • Ansprechen von USB-Geräten bis einschließlich USB 3.0 über Windows-Treiberstack
  • Control-, Bulk-, Interrupt- und Isochron-Transfer
  • Reaktion auf alle Plug&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 System-Uhren, 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, z.B. C/C++ oder Delphi und andere.

Dennoch unterstützt die »RealTime Suite« verschiedene Plattformen, wie z.B. auch die .NET-Umgebung:

Die Lösung besteht darin, den zeitkritischen Code in eine DLL zu verlagern, die mit den Funktionen der »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

Die Produkte der »RealTime Suite« unterstützen eine breite Palette von Hardware- und Software-Kombinationen:

 

Bei Fragen zur Systemunterstützung 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) + 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, z.B. 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.