Diamond Point International
 
Diamond Systems Corporation

Diamond Systems Universal Driver

High Level Data Acquisition Library For DSC Cards

Extensive Functionality, Wide Operating System Support

 
Diamond Systems Universal Driver Version
 
  • Extensive functionality
  • High level C interface
  • Support for Windows 95 to XP
  • Embedded NT/XP support
  • Linux support
  • RTLinux support
  • QNX 6, VxWorks support
  • Example programs for boards
  • For Borland, Microsoft & GNU compilers



Datasheet/Manual:

Diamond Systems Athena datasheet in PDF format Manual in PDF format

 

Introduction

Universal Driver is a software toolkit that provides a C language interface capability for Diamond Systems' I/O boards. It is provided free of charge and can be either downloaded or supplied on CD. It supports all the data acquisition features of Diamond Systems products, plus support for the watchdog timers on Diamond Systems CPU boards.

Key features:

  • Multi-board operation:
    • Control up to 16 I/O boards simultaneously, including multiple units of the same board type (varies from CPU to CPU).
  • Internet access for remote monitoring and control:
    • Working together with our DALI embedded web server, your application on one computer can get real-time data from another computer across a TCP/IP network, and it can also control that computer in real time. Up to 16 remote systems can be monitored from one program, each with its own custom configuration of boards. An entire factory can now be controlled from your desktop!
  • Consistent API:
    • The command syntax is consistent from board to board and across operating systems. You can retarget your application for a different board or OS with a minimum of re-engineering.
  • Auto-calibration:
    • Universal Driver provides full support for the advanced autocalibration features of our AT line of analog I/O boards. Calibrate your board as often as you want with simple software commands. Source code is included!
  • User Interrupts:
    • Write your own interrupt routine and have it execute each time your board generates an interrupt. Your own code can run together with or instead of the standard interrupt routines. For example, you can provide real-time FFT calculations on analog data as it is acquired, or you can synchronize your code to run at a programmed interval or in response to an external event.
  • Extensive programming examples:
    • Each board has its own set of example programs for most or all of the applicable functions. The programs are provided both in source code and pre-compiled for each supported operating system. The programs are extensively commented, so you can get familiar with the Universal Driver quickly. In addition, the example programs are provided with project files with all the necessary settings, so you can use it as a starting point and recompile it with a minimum of hassle.
  • Extensive functionality:
    • The Universal Driver includes advanced counting/timing functions such as frequency/period measurement and pulse width modulation on Quartz-MM. It has support for the watchdog timer circuit on our Prometheus CPU board.


We also provide low-level functions to enable read/write operations directly to the board registers for custom applications. This is useful in operating systems like Windows NT, where direct I/O access to hardware is normally prohibited.

Supported Platforms

  • Windows 95 / 98 / NT / NT Embedded / 2000 / XP / XP Embedded
  • Windows CE .NET 4.2 and 5.0
  • Linux 2.2 - 2.6 kernels (any distribution)
  • MS-DOS™ / ROM-DOS™ / FreeDOS
  • RTLinuxPro 2.1 and 2.2
  • QNX 6 Momentics / Neutrino
  • VxWorks 5.5.1 and Tornado 2.2.1

New features in Universal Driver version 5.8

• Improved Linux Support
The new Linux kernel version 2.6 is now supported. A new installation script simplifies compilation of the kernel module required for interrupt operations.

• Diamond Emerald-OPTO and Mercury Board Support
Digital I/O features provided by these boards are supported by DSCUD 5.8.

• New Utility Functions
New utility functions for unit conversion, sample averaging, 32 bit direct I/O, and setting system priority have been added. Here is the list of new function names. See the driver documentation for more information.

dscADCodeToVoltage() - Utility function for converting AD units to voltage based on the AD settings used
dscVoltageToADCode() - Utility function for converting voltage to AD units based on the AD settings used
dscDACodeToVoltage() - Utility function for converting DA units to voltage based on the DA settings used
dscVoltageToDACode() - Utility function for converting voltage to DA units based on the DA settings used
dscInpl() - Board independent direct I/O. Reads a double word from the address
dscOutpl() - Board independent direct I/O. Write a double word to that address
dscSetSystemPriority() - Sets the system priority for the interrupt processing thread
dscADSampleAvg()
dscADScanAvg().

• Bug Fixes and Driver Improvements
A number of bugs have been fixed for this driver release. Below are brief notes on the significant fixes.

Fixed bug in Hercules dscDASetSettings() which reset AD settings.
Fixed bug in Diamond-MM dscADScanInt() under QNX which caused delays in ISR.
Improved Quartz Measure Period function.
Fixed bug in dscCancelOp() under Linux which could result in duplicate data in some cases.
Improved Linux handling of delays caused by slow user interrupt functions
Change to Diamond-MM-32-AT digital I/O behavior for functions dscDMM32DIOOutputByte() and dscDMM32DIOInputByte().
Bug fix for dscCounterSetRate() to not attempt to set the internal clock if internal_clock is false.

Compilers

Compilers Supported by DSCUD

  • For Win32:
    • Microsoft Visual C++ 6.0. Version 5.0 and higher should also be compatible but only version 6.0 is tested
  • For DOS:
    • Borland C++ 3.0 to 5.2. NOTE: Borland C++ Builder is not supported
    • Turbo C 3.0
    • Microsoft Visual C++ 1.5
  • Linux & QNX:
    • GCC 3

Driver Download

Universal Driver 5.91 for DOS
Universal Driver 5.91 for Labview
Universal Driver 5.91 for Linux
Universal Driver 5.91 for QNX6
Universal Driver 5.91 for Win32
Universal Driver 5.91 for RTLinux

Universal Driver 5.91 for WinCE
Universal Driver 5.91 for VB.NET
Universal Driver 5.91 for VB6
Universal Driver 5.91 for VxWorks

 
 
Ordering Details:
Board:

SW-DSCUD Free software/manual CD (for all Diamond Systems cards)

Please add this to your order when ordering Diamond Systems related hardware.

Accessories:  
Further Information:

Want further information or pricing on this product? Either fill out our feedback form or contact us for further information.

 
© 2008 Diamond Point International. All rights reserved.