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 카드는 PC 기반 장치를 자동화 환경에 통합하는 가장 쉽고 빠른 방법입니다. netX 통신 컨트롤러를 기반으로, 모든 애플리케이션에 대해 모든 폼 팩터에서 모든 프로토콜에 액세스할 수 있습니다.

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

Hilscher의 임베디드 모듈은 필드버스 또는 실시간 이더넷 인터페이스를 소형 자동화 장치에 통합하는 데 이상적인 솔루션입니다. 드라이브 또는 컨트롤러와 같은 필드 장치를 자동화 시스템에 빠르고 쉽게 통합할 수 있습니다.

netX 멀티 프로토콜 프로세서는 기계와 장치에 산업용 통신을 제공합니다. 마스터 또는 슬레이브 애플리케이션, 레거시 필드버스, 고속 산업용 이더넷 또는 IIoT 데이터 트래픽 등 무엇이건, 고도로 통합되는 netX SoC를 사용하면, 마켓 리더가 제공하는 솔루션을 신뢰하게 될 것입니다.

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

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