Driver
empowering communication

About Hilscher's device drivers

Products based on the netX communication controllers such as Hilscher's PC cards and embedded modules require device drivers to fully function on different operating systems. As a one-stop-shop for industrial communciation, Hilscher offers such drivers for all common industrial operating sytems, such as:

  • Windows
  • Linux
  • VxWorks
  • INtime
  • IntervalZero
  • QNX
  • WinAC

All Hilscher drivers have a standard user interface (CIFX-API) and are based on a C toolkit also usable for independent device driver development. The drivers are responsible for administering the communication components, including loading firmware and configuration files. The user interface contains all of the functions needed to initialize, parametrize, exchange I/0 data and aquire status information.

Depending on the operating system, the user interface is contained in a DLL or library. As far as possible, the drivers are supporting existing bus connections like PCI, PCle and dual-port memory (DPM) connections.

  • Standard application interface
  • Standard code base (C toolkit)
  • Independent of fieldbus or Industrial Ethernet system
  • Number of supported devices limited only by operating system

This reduces development efforts as well as time-to-market and thereby risks for users of netX communciation controllers and products based on it, such as cifX PC cards and embedded modules.

The logos of the OS Windows, Linux, VxWorks, INtime, IntervalZero, QNX, WinAC on a angular shape in light grey. Below that is aslightly darker angular shape with icons for PC cards, embedded modules and network controller in it. The background is colorful in red and blue.

The device driver for linux, is splitted in a kernel module (free of charge) and a user space library (chargeable). The kernel module is based on the generic uio module and is responsible for cifX hardware detection and preparation to allow mapping the device memory (DPM) to user space.

The User space driver libcifX is a user mode driver providing the whole device specific functionality. The user space library offers the same API as the cifX driver API for Windows.

A diagram schematically showing the function of the Linux device driver for cifX PC cards, embedded modules and netX network controller.

The device driver for QNX is available as a static library or a shared object, which is built around Hilscher's driver C-toolkit.

Any application which needs to access a cifX device can use the device specific functions provided by this driver library.

A diagram schematically showing the function of the QNX device driver for cifX PC cards, embedded modules and netX network controller.

The cifX Device Driver for VxWorks offers access to the Hilscher netX based hardware (e.g. CIFX 50, comX) with the same functional API as the cifX device driver for Windows and offers transparent access to the different devices.

It is available as a library built around the cifX Toolkit. Any application which needs to access a cifX device can use the device specific functions provided by this driver library.

A diagram schematically showing the function of the VxWorks device driver for cifX PC cards, embedded modules and netX network controller.

The cifX Device Driver for Windows is a kernel-mode driver that runs in Ring 0 of the operating system and supports the Windows plug-and play mechanisms. PCI and PCIe components are supported and can be combined arbitrarily using an unlimited number of components.

The cifX Device Driver for Windows Embedded Compact is a stream driver, running in the kernel of the operating system. Access to the driver functions is offered by a driver API DLL (cifXCEDLL).

The DLL covers the device IO control calls used to communicate with the driver and offers the same CIFX API like on the Windows desktop operating systems.

The driver’s function interface is fieldbus system independent and includes functions for the recognition of installed hardware, reading system information, initializing and parametrizing field bus systems, exchanging cyclical and acyclical data and reading status information, as well as time-monitoring and watchdog function.

The logo of Windwos in dark blue on top. Under it is the logo of Windwos Embedded Compact in light blue.

The cifX Device Driver for INtime offers access to the Hilscher netX based hardware (e.g. CIFX 50) with the same functional API as the cifX device driver for Windows. It is also possible to use the cifX INtime driver from normal Windows environment or from inside the INtime real-time kernel.

The cifX INtime driver runs inside the Real-Time extension in a separate address space. A special version of the cifX Application Interface DLL (cifX32DLL.dll) is provided with the INtime driver to allow Windows applications the accesses to the INtime driver from the Windows User Space.

A diagram schematically showing the function of the INtime device driver for cifX PC cards, embedded modules and netX network controller.

Accessing the cifX INtime Driver from Windows (none real-time)

A diagram schematically showing the function of the INtime device driver for cifX PC cards, embedded modules and netX network controller.

Accessing the cifX INtime Driver from INtime (real-time)

The cifX Device Driver for IntervalZero RTX® is available as a dynamic library built around the cifX Toolkit. Any application which needs to access a cifX device can use the device specific functions provided by this driver library.

The driver offers access to the Hilscher netX based hardware with the same functional API as the cifX device driver for Windows® and offers transparent access to the different devices.
User processes on RTX till version 2012 gain access to the cifX driver functions by using the LoadLibrary() and GetProcAddress() calls (explicit library load). As RTX64 provides its own image loader, the driver library can also be loaded implicitly here.

A diagram schematically showing the function of the IntervalZero device driver for cifX PC cards, embedded modules and netX network controller.

The cifX Device Driver for WinAC is an extension DLL (CCX) for the Siemens SIMATIC WinAC RTX 2010 SP1 system and allows the Siemens SIMATIC WinAC system to access Hilscher cifX based communication hardware form the SPS cycle.

Driver functions are accessed from STEP7 / TIA via FBs / Cs. At least two functions are needed to exchange I/O data during the program cycle and the I/O data are mapped into data blocks of the STEP7 program (one DB for input and one DB for output data).

C-Toolkit for own driver development

The cifX toolkit consists of C-source and header files allowing abstract access to the dual-port memory (DPM) defined by Hilscher and offered by cifX, comX and netX devices. It contains all of the user interface functions as well as the generic access functions needed to use the Hilscher DPM.

  • ANSI-C source code
  • Operating-system-dependent functions in a separate C module
  • Support of little-endian/big-endian
  • Trace output integrated in the source

The C toolkit, and therefore the basis of the drivers code, is designed in such a way that an unlimited number of communication components can be used simultaneously. However, the specific characteristics of each operating system must be taken into account.

A technical graphic divided in two major sections. The left section is titled "Implementation" and shows user functions, OS specific functions and interrupt handling. The right section is titled cifX/netX C-toolkit and contains buttons for toolkit API, cifX API, device handling, API implementation and cifX/netX hardware access functions. There are several red arrows pointing to different parts of the graphic.
Related links
Three PC cards on a colorful background. One has a red PCB while the other two are green. One has an AIFX detached network interface connected to it.

cifX PC cards are the easiest and fastest way to integrate PC-based devices into an automated environment. Based on our netX communication controllers, you get access to all protocols – in any form factor for any application.

Four different embedded modules from Hilscher on a colorful background. The devices are slightly mirrored on the bottom.

Embedded modules from Hilscher are the ideal solution for integrating a fieldbus or Real-Time Ethernet interface into a compact automation device. They allow field devices such as drives or controllers to be quickly and easily integrated into automated systems.

The netX multiprotocol processors bring industrial communication to your machines and devices. Whether master or slave applications, legacy fieldbuses, fast Industrial Ethernet or IIoT data traffic - with highly integrated netX SoCs you rely on solutions from the market leader.

A photo of the male and female customer support phone operator with different internationality
Customer Center / Sales: Hilscher India Pvt. Ltd.

You've got questions? We've got the answers!