What is DIO

Marvin Test Solutions’s DIO is a family of high-speed, programmable, dynamic Digital Input and Output (I/O) boards. These boards perform high-speed automated functional testing, device testing, simulation and data acquisition. The DIO family provides real-time digital pattern capture and generation with 32 channels per card and up to 8 cards or 256 channels per system.

The DIO family uses common software development tools to develop test vector files. The test vector files contain digital patterns sent to or received from the Unit Under Test (UUT).

Development of the vector file may be independent of the hardware with DIOEasy. Vector file verification requires the DIO be installed and properly configured.

Marvin Test Solutions bundles DIOEasy with all DIO products. DIOEasy, Marvin Test Solutions’s vector development and analysis software, allows manual control of the DIO hardware using the built-in DIO Virtual Instrument Panel. The DIO driver permits control of the DIO family from common software development tools such as ATEasy, Visual Basic, C, C++, Pascal and more.

DIOEasy is a 32-bit Windows application not requiring any programming experience or knowledge.

DIO Product Families

The DIO Driver and DIOEasy software control the DIO boards. Effective use of the Driver requires an understanding of how DIO boards are used in a system and board capability.

Marvin Test Solutions offers two families of DIO boards:

     GT25/50-DIO series (See the GT25/50-DIO User Guide)

     GT515x

Common Elements

Both families use a Master DIO board to establish synchronization with the UUT and provide timing signals to the Master and other (Slave) boards. The DIO Master also has a Timing and Control Module. This module mounts on the Master. Signals from the timing module provide control and synchronization to the Master’s IO Module and up to seven Slave IO Modules. Every DIO configuration needs at least one Master board and can control up to 256 digital input or output channels.

Both families support Slave boards extending the number of UUT I/O channels while maintaining the same timing and pattern sequencing. However, the Slave boards must be of the same family as the Master board.

The Driver and DIOEasy application are common to both families.

GT25/50-DIO Series

The GT25/50-DIO has 32 channels of I/O. Direction of GT25/50 channels can be switched dynamically from Input to Output at each vector step (in-groups of 8 channels). The GT25/50 has only TTL levels but can support other levels using GT515x I/O modules mounted on a GT5900 (see below).

GT515x

The GT515x has 8, 16, or 32 channels (programmable width). Each channel can be preprogrammed as Input or as Output although the direction applies to the entire board and cannot be changed dynamically (while the test vector is running). Memory depth of the GT515x increases proportionately as width is reduced (that is 32Mbit per channel with a width of 32 channels, 64Mbit per channel with a width of 16 channels or 128Mbit per channel with a width of 8 channels). The GT515x can use a variety of I/O modules to interface with different UUTs. Those I/O modules expand the ability of the DIO to interface with different voltage levels, higher speed and compare data on the fly to name a few.

The GT5900 is a carrier board for GT515x I/O modules. This board is typically used with the GT25/50 when special I/O modules are required. The GT5900 can carry two I/O modules or one I/O module and a Timing Control module.

Family architectures are different and so are capabilities. Some driver functions are available only to a specific family while others work with both families.

PC Bus Interface

The DIO Driver accesses Master, Slave and carrier boards through the computer’s bus (Figure 2-1). The driver can accommodate up to 16 masters (from either family). All DIO and carrier boards have switches used to assign I/O addresses. Each board must have a unique I/O address. Board addresses are saved in a database through a Driver library function call or the Panel’s “Configure!” button.

DIO Domains

A DIO domain has one Master DIO board and up to 7 Slave DIO boards. The Master, its slaves, carriers and related modules comprise a DIO domain. The figure below shows a domain from two different families on a PC bus.

Two Different DIO Domains on One PC Bus

Two Different DIO Domains on One PC Bus

Domains are internally synchronized and controlled through a Timing cable binding the Master’s Timing module to all domain Slave boards. To synchronize a domain with a UUT, you need to synchronize the Master board’s Timing module.

Masters and slaves within a domain must be members of the same product family. Each Slave adds 32 additional UUT I/O channels. Up to seven slaves can be added to a domain.

Full domain containing eight DIO boards provide up to 256 UUT I/O channels (256 channels wide). Because the driver supports 16 masters, up to 16 domains of mixed types can, in principle, share a PC bus. Realistically, only two DIO domains (16 cards, 512 channels) can exist in an industrial PC due to slot and I/O address limitations. Using Marvin Test Solutions’s GTXI instrument control chassis (which can accommodate up to 52 instruments and has expanded I/O addressing), up to 6 DIO domains (48 boards, 1536 channels) can be used in a single system. The actual limit is subject to slot and possible I/O address availability. Each DIO Master board can serve an independent UUT time source.

A minimum DIO domain contains only a Master DIO board (32 digital channels).

GT515x Architecture and Capabilities

The following are key GT515x characteristics and architecture:

     A GT5150 (Master board) controls the timing of a DIO domain and can be synchronized to a UUT.

     Multiple Master boards are used to synchronize mutually asynchronous UUT elements.

     Each GT5151 (Slave board) adds up to 32 UUT channels. Up to seven slave boards can be added to make a 256-channel domain.

     DIO boards can support different interfaces (that is different voltage levels) by mounting different I/O Modules (see the I/O Modules and Interface User Guide).

     Every GT515x board, whether a Master or Slave, requires an I/O Module daughter card.

     All GT515x channels of a specific board have the same direction. They are either all input or all output. Channel direction for individual boards in a domain can be different. Board direction can only be changed when the card is not running.

     GT515x output channels can be enabled or disabled dynamically in groups of eight. Disabled channels on output boards are in the high impedance state. This is useful for connecting to a user bus. Disabling the output has no effect if the board is set up for input.

     Configuration of board memories can vary within a domain. Program steps (depth) are limited by the board with the smallest step capacity. The user must assure enough memory exists to run the test vector.

     The GT515x’s step (program) capacity (depth) can be traded for channel capacity (width). The default width is 32 channels. Board depth depends on actual memory capacity and can be increased by a factor of two or four. There is a proportionate width reduction.

     Two registers, A and B, hold jump addresses that can be loaded and triggered from the program. Additionally, register A jump addresses can be triggered from external source.

     Triggers can be generated by external events on the Timing module External Event lines. Event and mask registers are used to determine both the triggering event and the masking bits to be ignored. These use the D and T Event and Mask registers.

     External triggering can be initiated on sequential or concurrent events by using both D and T event registers to define events.

     The test sequence (vector) can be paused on external events unconditionally or conditionally. P Event and P Mask registers hold the condition and bits that generate a conditional pause.

     The X Register, which can be loaded through the PC bus, is used to emulate an external event condition under program control for purposes of test program verification.