WDF CAN
Driver for Windows 10/8/7/Vista/XP
(c) 1997 - 2016 esd electronic system design gmbh
Release Notes
Release notes for the WDF (KMDF) based CAN driver supporting Windows
10/8/7/Vista/XP (32-/64-Bit) and Windows Server
2003/2008/2012 (32-/64-Bit). The driver releases are organized as packages. A package contains the
driver itself, driver related libraries and files for the driver
configuration. The package release
version is loosely coupled with the driver versions of the package but
a complete package may contain drivers with a higher or lower version
number. A summary of which file versions are distributed in which
package and what hardware is supported by a particular driver can be
found at the end of this document.
Technical differences to previous CAN driver versions
For most of the supported CAN hardware, a Windows Driver Model (WDM) based
device driver already exists. The Windows Driver Framework (WDF) supersedes and
complements the WDM with the goal to enhance driver robustness and security by
providing default implementations for common event handling tasks in the
framework. The major revision number of all WDF based driver is 4.x.x whereas
the WDM based drivers are 3.x.x or 2.x.x.
In addition to this fundamental
change of the driver framework the new driver generation is different to its
predecessor in the following technical aspects:
- The internal driver architecture is already prepared to handle the
larger CAN messages (up to 64 bytes) of the CAN FD standard.
- The driver supports power management (standby/hibernate) which is not
supported by the 3.x.x WDM drivers.
- CAN data is handled by a high priority worker thread at passive level
instead of doing the processing in a Deferred Procedure Call (DPC). The
advantage is that the DPC latencies caused by a CAN driver are reduced to a
minimum and the overall system performance on multicore architectures is
improved.
- Windows 2000 is no longer supported as the WDF framework only supports
Windows XP and later.
Supported CAN
hardware
Several
driver support more than one esd CAN device. The
following table gives an overview on how many and which different CAN devices
are supported by a single CAN family device driver. The hardware marked in
red is CAN FD enabled.
Driver Family Name |
C400 |
C402 |
U400 |
VCAN |
Driver Binary (x86/x64) |
c400k.sys
c400ak.sys |
c402k.sys
c402ak.sys |
u400k.sys u400ak.sys |
esdvcank.sys esdvcanak.sys |
Supported
CAN
hardware |
CAN-PCI/400
CPCI-CAN/400
CAN-PCIe/400
PMC-CAN/400 |
CAN-PCIe/402-FD |
CAN-USB/400 |
Virtual CAN
Device Driver (No hardware) |
Revision history
Summarized below are the the improvements, changes
and fixes between different package releases in
reverse chronological order. If a change affects a complete driver family the
family name according to the table above is used to refer to the hardware.
Driver
Package 4.0.3
2016-12-06
- Support
for new devices: CAN-PCIe/402-FD
added to C402 driver family (x86/x64). Classical CAN C402 support removed
for the time being.
- All
drivers/devices: Complete support for the
CAN FD enabled NTCAN-API.
- All
drivers/devices: Fixed driver returns
NTCAN_ERROR_LOM instead of
NTCAN_ERROR_NO_BAUD if no bit rate is configured.
- All
drivers/devices: Driver disables the CAN controller before the system
changes from S0 into a lower power state and does not restore the bit rate
after return to S0 to prevent errors on the CAN bus if the configuration has
changed in the meantime.
- All
drivers/devices: The NTCAN_INFO
structure now contains the number of open handles.
- C400/C402/U400: Fixed situation where an invalid bit
rate is reported.
- C400/C402/U400: Fixed internal error situation which
might cause a hanging process that could not be terminated.
- C400/C402/U400: Fixed possible internal overload
situation in situations of very high bus load.
- VCAN: Device driver now emulates a CAN FD enabled
ESDACC.
- Configuration:
Added support to indicate the triple sampling capability of the CAN
controller for Classical CAN.
Driver
Package 4.0.2
2016-01-26
- Support
for new devices: CAN-PCI/402 and CPCIserial-CAN/402 added to
C402 driver family (x86/x64).
- Support
for new devices: Virtual device
driver ESDVCAN (no hardware) emulating a Classical CAN SJA1000 CAN
controller.
- All
drivers/devices: Support for Windows 10.
- All
drivers/devices: Extended the indication of error situations in the
event log during startup.
- All
drivers/devices: Internal performance improvements.
- All
drivers/devices: Fixed 64-bit version of NTCAN library could not be
used on Windows XP x64 because of a missing symbol.
- C400: Updated ESDACC core
(V 00.61).
- C400/C402: Fixed issues where
timestamps are not be applied correctly to CAN messages and events in error
situations.
- C400/C402: Fixed CAN driver aborted a failed Tx
I/O request if the CAN controller is in error passive state.
- C400: Implicit CAN clock divider
in BTR prescaler removed. This change is handled internally backward
compatible for exiting applications.
- C400: Fixed issues handling bus
error situations.
- C400: Fixed issue with high
speed scheduling configurations.
- U400: Internal message handling
completely rewritten to increase performance and to deal with situations
where messages might get lost due to high DPC latencies caused by other
device drivers.
- U400: Support for a backward
compatible reduction up to 30% of the USB busload (requires FW V00.62) which
in turn leads to a reduced CPU load.
- U400: Fixed wrong tick frequency
in IRIG-B mode after resume from standby/hibernate.
- U400: Fixed several issues after
resume from standby/hibernate.
- U400: Fixed a rare BSOD if the
device is connected to a powered USB hub while the PC is rebooted.
- PMC-CAN/400: Added support for 1
PPS signal.
- Configuration:
Improved UI of device manager settings dialog and the adaption to a
configured UI theme.
- Configuration:
Added tool tips for configuration/settings options.
- Configuration:
Added support for a driver/system settings expert dialog to configure the
thread priority of the CAN message handler, decrease the system tick period
and enable driver trace messages.
- Configuration:
Added support to start the event viewer with a driver specific filtered view
by double-click on a fail reason code.
Driver
Package 4.0.0
2015-06-02
- All
drivers/devices: Initial release as WDF based driver with an identical
functional range as the latest WDM based driver for this CAN hardware.
- All
drivers/devices: Drivers are based on the KMDF framework 1.9 which
requires Windows XP or later to run.
- All
drivers/devices: All drivers support power management (in comparison to
the WDM based V3.x.y CAN drivers).
- All
drivers/devices: The drivers are ready to process CAN messages with up
to 64 bytes for the forthcoming CAN FD support.
- All
drivers/devices: The main internal CAN message processing is performed
(in comparison to the WDM based CAN drivers) on PASSIVE_LEVEL instead on the
standard DPC_LEVEL. This approach reduces the overall system latency
- C400/C402: Initial release.
- C402: The driver requires an ESDACC
firmware of
V00.53 or later.
Package
content
The
following table gives an overview which version of the binaries is
distributed in a driver package.
Package/ File
|
4.0.0 |
4.0.2 |
4.0.3 | Description |
c400k.sys |
4.0.0 |
4.0.2 |
4.0.3 |
C400
driver (32-bit) |
c402k.sys |
4.0.0 |
4.0.2 |
4.0.3 |
C402 driver (32-bit) |
esdvcank.sys |
- |
4.0.2 |
4.0.3 |
ESDVCAN driver (32-bit) |
u400k.sys |
4.0.0 |
4.0.2 |
4.0.3 |
U400 driver (32-bit) |
c400ak.sys |
4.0.0 |
4.0.2 |
4.0.3 |
C400
driver (64-bit) |
c402ak.sys |
4.0.0 |
4.0.2 |
4.0.3 |
C402
driver (64-bit) |
esdvcanak.sys |
- |
4.0.2 |
4.0.3 |
ESDVCAN driver (64-bit) |
u400ak.sys |
4.0.0 |
4.0.2 |
4.0.3 |
U400
driver (64-bit) |
ntcan.dll |
4.8.7 |
4.8.8 |
5.0.1 |
NTCAN library(32-/64-bit) |
canui32.dll |
1.5.0 1.5.1 |
1.6.0 |
1.6.1 |
Property sheet (32-bit) |
calcan32.dll |
2.6.3 |
2.6.3 |
2.6.4 |
CALCAN library
(32-bit) |
canui64.dll |
1.5.0 1.5.1 |
1.6.0 |
1.6.1 |
Property
sheet (64-bit) |
calcan64.dll |
2.6.3 |
2.6.3 |
2.6.4 | CALCAN
library (64-bit) |