NTCAN-Gerätetreiber und CAN-Schnittstellen-Familien
Ein einzelner esd-NTCAN-Gerätetreiber unterstützt aufgrund der technologischen Verwandtschaft in den meisten Fällen mehr als ein CAN-Interface. Aus diesem Grund sind die betriebssystemspezifischen Installations- und Konfigurationsanweisungen eines Gerätetreibers bei esd in der Regel für eine komplette CAN-Interface-Familie vorgesehen. Jedem Gerätetreiber einer CAN-Familie wird eine eindeutige Signatur zugewiesen, die in Protokollnachrichten etc. zur Unterscheidung von Treibern verschiedener CAN-Interface-Familien auf demselben Hostsystem verwendet wird, sowie ein Gerätetreibername, der einer von zwei möglichen Namenskonventionen folgt. Die folgende Darstellung gibt einen Überblick über die von einem CAN-Familien-Treiber abgedeckten CAN-Schnittstellen oder -Karten, die ihnen zugeordneten Signaturen und Gerätetreibernamen.
Die CAN-Interfaces unserer C402-Treiberfamilie überzeugen mit vielen Features. Mehr Informationen finden Sie hier.
Matrix der unterstützten Betriebssysteme der einzelnen Treiberfamilien
Legende
Alle esd-CAN-Gerätetreiber benötigen einen Interrupt. RTX unterstützt die gemeinsame Nutzung von IRQ-Leitungen mit Windows-Geräten nicht. Daher muss die vom Treiber verwendete Interrupt-Leitung für die exklusive Nutzung durch RTX verfügbar sein, kann aber von RTX-Geräten gemeinsam genutzt werden. Um einen exklusiven IRQ zu finden, muss oft Hardware im System verschoben oder andere Windows-Geräte deaktiviert werden.
Für den PCIe-Bus ist die problemloseste Lösung die Verwendung der 402-Familie, da diese CAN-Karten MSI unterstützen, was bedeutet, dass Interrupts niemals gemeinsam genutzt werden und die oben beschriebenen Probleme nicht auftreten.
Für diese Betriebssystem steht aktuell zu dieser Treiberfamilile noch keine Version zur Verfügung. Sollten Sie einen Treiber für diese Treiberfamilie benötigen, kontaktieren Sie bitte unser Sales-Team.
Informationen zu unterstützten Betriebssysteme
Windows
- Windows 11 (64-Bit)
- Windows 10 (32-/64-Bit)
Legacy1:
- Windows 9x/ME3
- Windows NT3
- Windows 20003
- Windows XP (32-/64-Bit)3
- Windows Vista (32-/64-Bit)3
- Windows 7 (32-/64 Bit)2
- Windows 8 / 8.1 (32-/64 Bit)2
1 esd bietet keinen Support und keine Wartung mehr für Betriebssysteme, die gemäß der obigen Tabelle als "Legacy" eingestuft sind.
2 Microsoft hat den Support eingestellt, um die hausinterne Cross-Signierung von Gerätetreibercode zu ermöglichen. Aus diesem Grund ist es esd nicht mehr möglich, neue oder aktualisierte Gerätetreiber für Windows 7, Windows 8 und Windows 8.1 basierte Systeme zu veröffentlichen.
3 Alle Gerätetreiber-Binärdateien sind mit unserem SHA2 (EV) Code Signing-Zertifikat digital signiert und von Microsoft gegensigniert, so dass sie die strengen Treibersignierungsanforderungen für Windows 10 unterstützen. Infolgedessen werden Windows XP und Windows Vista, die keine SHA2-Kernelmodus-Code-Treibersignaturen unterstützen, von neuen Treiberversionen nicht mehr unterstützt.
Treiber für Windows - Unterschiede WDF und WDM
Die CAN-Gerätetreiber für Windows basieren entweder auf dem älteren WDM (Windows Driver Model) oder dem moderneren WDF (Windows Driver Foundation). Das WDM wurde mit Windows 2000 eingeführt und 2006 zum WDF als robuste objektbasierte Schnittstelle für Gerätetreiber auf der Basis von WDM weiterentwickelt. Das WDF besteht aus einem Kernel Mode Driver Framework (KMDF) und einem User Mode Driver Framework (UMDF). Alle WDF-basierten CAN-Gerätetreiber sind KMDF-Treiber.
Das KMDF wird als Bibliothek geliefert, die entweder bereits Teil von Windows ist oder zusammen mit dem dem CAN-Gerätetreiber einmal pro System mit Hilfe eines WDF Co-Installers installiert. Die WDF-basierten CAN Treiber verwenden derzeit die KMDF-Bibliothek Version 1.9, die seit Windows 7 Bestandteil von Windows ist.
Für die meisten der unterstützten CAN-Hardware existiert bereits ein Windows Driver Model (WDM) basierter Gerätetreiber. Das Windows Driver Framework (WDF) ersetzt und ergänzt das WDM mit dem Ziel, die Robustheit und Sicherheit des Treibers zu erhöhen, indem es Standardimplementierungen für allgemeine Ereignisbehandlungsaufgaben im Framework bereitstellt. Die Hauptversionsnummer aller WDF-basierten Treiber ist 4.x.x, während die WDM-basierten Treiber 3.x.x oder 2.x.x sind.
Zusätzlich zu dieser grundlegenden Änderung des Treiber-Frameworks unterscheidet sich die neue Treibergeneration (ab 4.x.x) in folgenden technischen Aspekten von ihren Vorgängern:
- Die interne Treiberarchitektur ist bereits auf die größere Nutzlast (bis zu 64 Byte) des CAN FD Standards vorbereitet.
- Der Treiber unterstützt Power Management (Standby/Hibernation), was von den 3.x.x WDM-Treibern nicht unterstützt wird.
- CAN-Daten werden von einem hochprioren Worker-Thread auf passiver Ebene verarbeitet, anstatt die Verarbeitung in einem Deferred Procedure Call (DPC) durchzuführen. Der Vorteil ist, dass die durch einen CAN-Treiber verursachten DPC-Latenzen auf ein Minimum reduziert werden und die Gesamtsystemleistung auf Multicore-Architekturen verbessert wird.
Hardware IDs für PCI, PCIe, PCIe Mini, CPCI, CPCIserial, PMC und XMC
Eine esd-CAN-Schnittstelle, die an den PCI-, PCIe-, PCIe-Mini-, CPCI-, CPCIserial-, PMC- oder XMC-Bus angeschlossen ist, kann eindeutig durch das ID-Paar für den Hauptchip (Vendor ID und Device ID) und ein herstellerspezifisches ID-Paar für das Gerät (Subsystem Vendor ID und Subsystem ID) identifiziert werden. Jede ID ist 16 Bit lang und die Hersteller- und Subsystem-Hersteller-IDs werden von der PCI SIG zugewiesen.
CAN Interface | Vendor ID | Device ID | Subsystem Vendor ID | Subsystem ID | Class / Subclass |
CAN-PCI/200 | 0x10B5 | 0x9050 | 0x12FE | 0x0004 | 0x06 / 0x80 |
CAN-PCI/266 | 0x10B5 | 0x9056 | 0x12FE | 0x0009 | 0x06 / 0x80 |
CAN-PCIe/200 | 0x10B5 | 0x9056 | 0x12FE | 0x0200 | 0x0C / 0x09 |
CAN-PCI104/200 | 0x10B5 | 0x9030 | 0x12FE | 0x0501 | 0x0C / 0x09 |
CPCI-CAN/200 | 0x10B5 | 0x9030 | 0x12FE | 0x010B | 0x02 / 0x80 |
PMC-CAN/266 | 0x10B5 | 0x9056 | 0x12FE | 0x000E | 0x06 / 0x80 |
CAN-PCI/331 | 0x10B5 | 0x9050 | 0x12FE | 0x0001 | 0x06 / 0x80 |
CPCI-CAN/331 | 0x10B5 | 0x9050 | 0x12FE | 0x0001 | 0x06 / 0x80 |
PMC-CAN/331 | 0x10B5 | 0x9050 | 0x12FE | 0x0001 | 0x06 / 0x80 |
PMC-CAN/331 (3,3 V) | 0x10B5 | 0x9030 | 0x12FE | 0x000C | 0x06 / 0x80 |
CAN-PCI/360 | 0x10E3 | 0x0860 | 0x12FE | 0x0000 | 0x06 / 0x80 |
CPCI-CAN/360 | 0x10E3 | 0x0860 | 0x12FE | 0x0007 | 0x06 / 0x80 |
CAN-PCI/400 | 0x10B5 | 0x9056 | 0x12FE | 0x0200 | 0x0C / 0x09 |
CAN-PCIe/400 | 0x10B5 | 0x9056 | 0x12FE | 0x0201 | 0x0C / 0x09 |
CPCI-CAN/400-2 | 0x10B5 | 0x9056 | 0x12FE | 0x0141 | 0x0C / 0x09 |
CPCI-CAN/400-4 | 0x10B5 | 0x9056 | 0x12FE | 0x0142 | 0x0C / 0x09 |
CPCI-CAN/400-4I | 0x10B5 | 0x9056 | 0x12FE | 0x0143 | 0x0C / 0x09 |
CPCI-CAN/400-2-PXI | 0x10B5 | 0x9056 | 0x12FE | 0x0144 | 0x0C / 0x09 |
CPCI-CAN/400-4-PXI | 0x10B5 | 0x9056 | 0x12FE | 0x0145 | 0x0C / 0x09 |
CPCI-CAN/400-4I-PXI | 0x10B5 | 0x9056 | 0x12FE | 0x0146 | 0x0C / 0x09 |
PMC-CAN/400-4 | 0x10B5 | 0x9056 | 0x12FE | 0x04C2 | 0x0C / 0x09 |
PMC-CAN/400-4I | 0x10B5 | 0x9056 | 0x12FE | 0x04C3 | 0x0C / 0x09 |
CAN-PCIe/402 | 0x12FE | 0x0402 | 0x12FE | 0x0401, 0x0402, 0x0403 | 0x0C / 0x09 |
CAN-PCI/402 | 0x12FE | 0x0402 | 0x12FE | 0x0401, 0x0402, 0x0403 | 0x0C / 0x09 |
CPCI-CAN/402 | 0x12FE | 0x0402 | 0x12FE | 0x0401, 0x0402, 0x0403 | 0x0C / 0x09 |
CPCIserial-CAN/402 | 0x12FE | 0x0402 | 0x12FE | 0x0401, 0x0402, 0x0403 | 0x0C / 0x09 |
CAN-PCIeMini/402 | 0x12FE | 0x0402 | 0x12FE | 0x0401, 0x0402, 0x0403 | 0x0C / 0x09 |
CAN-PCI/402-FD | 0x12FE | 0x0402 | 0x12FE | 0x1402, 0x1403 | 0x0C / 0x09 |
CAN-PCIe/402-FD | 0x12FE | 0x0402 | 0x12FE | 0x1402, 0x1403 | 0x0C / 0x09 |
CAN-PCIeMini/402-FD | 0x12FE | 0x0402 | 0x12FE | 0x1402, 0x1403 | 0x0C / 0x09 |
CPCIserial-CAN/402-FD | 0x12FE | 0x0402 | 0x12FE | 0x1402, 0x1403 | 0x0C / 0x09 |
PMC-CAN/402-FD | 0x12FE | 0x0402 | 0x12FE | 0x1402, 0x1403 | 0x0C / 0x09 |
XMC-CAN/402-FD | 0x12FE | 0x0402 | 0x12FE | 0x1402, 0x1403 | 0x0C / 0x09 |
CAN-M.2/402-2-FD | 0x12FE | 0x0402 | 0x12FE | 0x1402, 0x1403 | 0x0C / 0x09 |
CAN-PCI/405 | 0x1014 | 0x0156 | 0x12FE | 0x0008 | 0x02 / 0x80 |
Hardware IDs für USB CAN Interfaces
Ein an den USB-Bus angeschlossenes esd-CAN-Interface kann durch ein ID-Paar, bestehend aus einer Hersteller-ID und einer herstellerspezifischen Geräte-ID, eindeutig identifiziert werden.
CAN Interface | Vendor ID | Device ID |
CAN-USB/Mini | 0x0AB4 | 0x0001 |
CAN-USB/Micro | 0x0AB4 | 0x0011 |
CAN-USB/2 | 0x0AB4 | 0x0010 |
CAN-USB/3-FD | 0x0AB4 | 0x0014 |
CAN-AIR/2 | 0x0AB4 | 0x0018 |
CAN-CBX-AIR/2 | 0x0AB4 | 0x0019 |
CAN-USB/400 | 0x0AB4 | 0x0400 |
CAN-USB/400-IRIG-B | 0x0AB4 | 0x0401 |
CAN-USB/400-FD | 0x0AB4 | 0x0402 |
CAN-USB/400-FD-IRIG-B | 0x0AB4 | 0x0403 |