Although modular digitizers can be considered computer hardware they require suitable firmware and software in order to be integrated into the host computer system. Digitizers use embedded software and require device drivers, maintenance software and operational applications to control, view and transfer the digitizer's data. Software can be supplied or it can be custom developed, this application note provides an overview of the software required to support modular digitizers.
A device driver is the most basic software requirement, it is normally supplied by the digitizer manufacturer. The device driver is a type of computer software which allows interaction with hardware devices. It interfaces to the operating system and software applications. The driver constitutes an interface for communications, commands and data transfer. None of the modern operating systems will let you access hardware without a dedicated low level kernel driver! For Windows 64 bit OS it is even necessary to have a dedicated kernel driver that is signed by an authorized company. Figure 1 shows a conceptual block diagram for the device driver supplied by Spectrum Instrumentation for support of all of its digitizers:
The drivers offer a common and fast application peripheral interface (API) for using all of the digitizer's hardware features. Note that the driver API is the same for all supported operating systems. In this case 32 or 64 bit versions of both Windows and Linux. Based on this driver the user can write their own programs using commonly used programming languages. The same driver also supports Spectrum's own operating software SBench 6, as well as the most commonly used third party analysis and control programs such as LabVIEW and MATLAB.
Note that the same core driver operates with multiple types of digitizers, supporting multiple operating systems, programming languages, and third party applications. It's an ideal to aspire to when selecting a digitizer as it provides great flexibility in measurement operations.
Most of the larger digitizer suppliers offer some form of operating software to control the digitizer and allow viewing and transferring data. As mentioned above Spectrum provides SBench 6 which is a data acquisition, control, and analysis program. An example of its functionality is shown in Figure 2. It enables control of all the digitizer's functions, acquires and displays data, performs measurements on acquired data, and manages data transfers. In this example we have an acquired ultrasound burst, its Fast Fourier Transform (FFT) and measurements of amplitude, burst duration and frequency.
Analysis functions include the FFT, averaging, filtering, and histograms. Measurements can be made with cursors or with built-in measurement parameters. In this example the cursors measure the pulse burst duration and measurement parameters are used to measure frequency, maximum, minimum, and peak to peak amplitude.
Multiple display formats are supported allowing data to be displayed singly, or having related waveforms plotted on the same axes. Data can also be cross plotted using an X-Y format.
Operating software of this type makes it easy to verify that the digitizer is working correctly. It allows verification of functional setups and acquisition modes. Once verified they can be transferred into the desired programming environment.
This software is also invaluable as a console for reviewing previously acquired data to verify data, make additional measurements or perform further analysis.
Control and Maintenance Software
The Spectrum Control Center is a powerful software tool which is delivered with the digitizer hardware and combines all hardware maintenance functions. It operates under Windows or Linux as a stand-alone application. It provides the following functions:
Hardware configuration - the control center shows detailed information about the Spectrum hardware including the type of card, serial number, the production and calibration date, firmware versions and all features of the hardware.
Installation of demo cards - The control center can install a simulated demo card, including simulated data generation, allowing all software to be tested including SBench and applications and drivers for third-party products like LabVIEW.
Debug logging - The digitizer card, driver and firmware version, all command sequences and other information can be logged to an ASCII file which can then be used for product support.
Option Software licenses - Licenses for SBench 6 upgrades as well as optional firmware features of the M2i/M3i/M4i digitizers (not requiring hardware modifications) can be installed in the fields.
Firmware upgrade - Upgrade the embedded firmware in the digitizer with enhanced functionality and bug fixes.
Calibration - The card control center also provides an easy way to access the automatic card calibration routines of the Spectrum digitizer cards.
Memory test - The on-board memory of the Spectrum cards is tested with randomized data for proper functionality. Any read or write errors are documented.
Transfer speed test - Measures the bus transfer speed of an installed Spectrum card in the specific system. This gives you a performance index of the system and shows which sustained data rates can be reached for different buffer settings.
Continuous memory - The continuous memory speeds up the transfer rate (up to 30%) by reserving a continuous memory buffer for data transfer at system start.
Discovery function - The discovery function helps find and identify the Spectrum LXI instruments like digitizerNETBOX available to your computer on the network. It will also locate Spectrum card products installed with Spectrum Remote Servers anywhere on the network.
Figure 3 shows the user interface for the Spectrum Control Center
Third Party Software Support
Many digitizer users prefer to use the tools available with third party analysis and control program applications. This can be because of a good personal knowledge of the tool or because it offers a special capability. Most digitizer manufacturers support these programs in a variety of ways. Spectrum provides extensive support for the most common third party programs, including LabVIEW, LabWIndows/CVI, and MATLAB.
LabVIEW, from National Instruments, is the most common graphical programming language for measurement applications and is very well supported by digitizer hardware by means of a dedicated LabVIEW driver. The driver combines different digitizer functions into functional blocks and makes them available within LabVIEW. The LabVIEW driver package consists of several different libraries and some open example virtual instruments (Vi's) showing the use of the driver. Besides these libraries all driver functions can also be directly called.
Figure 4 shows an example that gives you the chance to use the analog channels of the digitizer card as a simple oscilloscope. It shows the virtual front panel of an oscilloscope that allows single acquisition or multiple acquisitions of data on up to four channels.
All clock settings, trigger modes and sources and all input channel settings can be setup and changed in the interface. The example works all acquisitions cards with up to 4 channels independent of the analog resolution and the maximum sampling speed of the digitizer. All examples are delivered with open and editable diagrams allowing the programmer to use it as a base for their own programming or as an example to better understand how the LabView driver works.
The user interface was created with the intent to allow a fast start up with basic functions and provides a useful tools for LabVIEW users using a digitizer for the first time.
LabWindows/CVI (CVI stands for C for Virtual Instrumentation) is a C programming environment for test and measurement developed by National Instruments. LabWindows/CVI uses the same libraries and data acquisition modules as their better known LabVIEW product, and is highly compatible with it.
MATLAB, a math analysis application from The Mathworks is supported under both the Windows and Linux versions. All features of the hardware can be accessed. The MATLAB driver provides access the Spectrum library and a number of examples in MATLAB's m-language requiring only the base version of MATLAB. The interface also offers an easy way to use the Spectrum cards with Mathworks Simulink, simulation tool.
In addition to these common software applications an IVI driver is available which supports the IVI class drivers, IVI digitizer and IVI scope. The IVI driver allow users to access instruments of one function class with a common software interface independent of the manufacturer of the hardware. This makes it possible to use software, based on an IVI instrument driver, with many of the different digitizers or scopes available on the market.
Each if these third party drivers is accompanied by copious examples and is described in detail in its own manual.
Support for Custom Programs
Drivers for digitizers should also support commonly used programming languages. As shown in Figure 1 text based programming languages like C, C++, C#, J#, Visual Basic, Python, and Delphi are supported by the digitizer driver. Figure 5 The programming of the Spectrum digitizer boards is totally software register based. All software registers are described in the form shown in the figure.
The digitizer user manuals provide detailed descriptions of all the necessary commands for controlling the card and returning data to the computer. Commands are software register based as described in Figure 5.
Multiple examples in each language are provided to reduce the learning curve for inexperienced digitizer users.
Custom programming offers the greatest flexibility in operating the digitizer especially in a system environment where multiple instruments and signal sources are involved.
Software examples for a particular programming language will give you a head start. With some additional work having a simple to learn, easy to integrate, yet powerful API will allow easy access to the hardware with other programming languages. Again it's worth asking your supplier if they can help. They may have professional software engineers that can just add a starting example for your preferred programming language for free.
Modular digitizers require software in order to be useful. Spectrum provides all the software and software tools to facilitate the use of their instruments. Device drivers, matched to the users operating system and application software is a must. Software support also includes basic operation and control functionality to verify correct operation immediately. They also support the users choice of third party or custom programming applications.
LabVIEW, LabWindows/CVI, and DASYLab are trademarks/registered trademarks of National Instruments Corporation. MATLAB is a trademark/registered trademark of The Mathworks, Inc. VEE is a trademark/registered trademark of Agilent/Keysight