Product data
Typical I/O hardware supported by MDIS device drivers:
■ Binary and analog I/O
■ Instrumentation modules
■ Motion controllers
■ Fieldbus controllers (CAN, Profibus etc.)
■ Other specialized hardware like watchdogs,
hardware monitors, etc.
And this hardware is typically located on:
■ M-Module mezzanines
■ PC-MIP and PMC mezzanines
■ Other PCI hardware
■ Components on CPU boards
■ FPGAs on CPU and I/O boards
MDIS drivers can be used for all the types of hardware listed above,
because in these cases the driver function can be presented to the
application using the MDIS standard API. There are some device
types, like network and disk I/O, where the MDIS API cannot be used
because the operating system already supports this kind of device.
For these devices, you still need to develop a specific driver for each
operating system.
MDIS-API – the Application Programming Interface
The MDIS-API is a function interface for the user defining the
function calls to access an MDIS driver. The API is the same on all
operating systems, being a simple interface written in ANSI C. Under
Windows it is accessible via DLL callable from C/C++, Delphi and
Visual Basic. The API consists of eight basic functions that originate
from UNIX and OS_9 calls to control a device (open, close):
■ M_open open path to device
■ M_read read a single value from current channel
■ M_write write a single value to current channel
■ M_getblock read multiple values (data block) from device
■ M_setblock write multiple values (data block) to device
■ M_getstat get parameter from device
■ M_setstat set parameter of device
■ M_close close path to device
These status calls are provided for starting specific actions and setting
or querying parameters, making it possible to access functions spe-
cific to a device driver as well as the standardized MDIS functions.
MDIS driver module structure
The MDIS concept is based on three functional parts:
■ The low-level driver for handling the device hardware
■ The board handler for handling the base board hardware
■ The MDIS/BBIS Kernels, which generally manage the
device/board initialization and deinitialization sequences and
route the API calls to the appropriate low-level driver and
board handler calls.
The MDIS4 distribution concept
The MDIS4 System Package.
To run and/or compile MDIS4 drivers, you need the MDIS4 system
package for your operating system.
Each MDIS4 system package contains:
■ MDIS4 libraries required by the low-level drivers, including
documentation
■ MDIS4 libraries required by applications
■ All BBIS handlers supported by this operating system
■ The MDIS4 user guide
■ A low-level driver installation tool, if necessary
■ One or more example BBIS handlers in source code
■ Tools to access the MDIS-API and to view debug messages
(if necessary)
The MDIS4 Low-Level Driver Package.
A low-level driver package exists for each hardware supported by
MDIS4.
This package contains:
■ The low-level driver source code including a generic makefile
■ Example descriptors
■ Example programs and tools
■ HTML and ASCII-text documentation
■ Some packages also include an API library to access the driver
more easily.
Licensing
MDIS System Packages: Linux and VxWorks system packages are
distributed in source code under the GNU General Public License.
Windows, RTX and OS-9 system packages are delivered in object
code only. They can be used for free, but are subject to MEN's
general licensing conditions. All MDIS system packages are free of
charge.
MDIS, the MEN Driver Interface System, is a framework to develop device drivers for almost any kind of I/O hardware. MDIS is
independent of the architecture, platform and bus system. The driver source code is interchangable between operating systems.
A properly written driver runs on all operating systems supported by MDIS. Operating systems currently supported are Linux and
RTAI, Windows (NT, 2000, XP, Embedded), QNX, RTX, VxWorks and OS-9.
MDIS4 is the fourth major revision of MDIS and is the first revision that offers full platform independence.
120
Software
MEN Software
MDIS4 – MEN Driver Interface System