pci-toolkit

Kithara »PCI Toolkit«

Funktionsbibliothek für PCI-Treiberentwicklung

Das »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.

Das »PCI Toolkit« stellt Funktionen für verzögerungsfreie Zugriffe auf die I/O-Register und den 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. Das »PCI Toolkit« stellt einen generischen Treiber bereit, über den Systemprogrammierer direkt PCI/PCIe-Hardware-Ressourcen ansteuern können.

  • 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&Play-Installation enthalten
  • Unlimitierte Weitergabe der Runtime-Dateien
  • Nutzung der Kernel-Ebene unterstützt C/C++ oder Delphi (Win32 native)
  • Das »PCI Toolkit« löst das frühere »Hardware Toolkit« ab

Weitere Information siehe »Driver Collection«.

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

Das »PCI Toolkit« 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...

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...

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.