RB8506 SIFU
[Reference Manual]


Detailed Description

Purpose

Provide digital inputs and outputs.

Description

Module RB8506, SIFU variant, is a digital input-output interface. It has four level-sensitive inputs, four negative-edge-sensitive inputs, four level outputs and four outputs that can be pulsed as a group.

There is also a provision to check if any of both the negative-edge-sensitive inputs and the level-sensitive inputs have changed state since it was last checked.

Inputs and outputs are available in TTL and in CMOS: TTL or CMOS can be selected with a switch on the front, two inputs or two outputs at the time. A LED indicates if TLL (red) or CMOS (green) is selected.

The SIFU module consists of a PIA parallel interface (see RB8506 Parallel Interface) and a Sense Interrupt Flag Unit (SIFU) board.

The module's front-panel looks as follows.

 +-------------------------------------------------+
 |             I/O CONTROLLER BOX                  |
 |                      Input                      |
 |         5    puls   4      1   level   0        |
 |               C                  A              |
 |        (O)   (X)   (O)    (O)   (X)   (O)       |
 |  M                                              |
 |  O      o   o   o   o      o   o   o   o        |
 |  N      7           6      3           2        |
 |  O            D                  B              |
 |  C     (O)   (X)   (O)    (O)   (X)   (O)       |
 |  H                                              |
 |  R      H   G    F   E    D   C    B   A  CMOS  |
 |  O      %   %    %   %    %   %    %   %        |
 |  M                                        TTL   |
 |  A                                              |
 |  T     (O)   (X)   (O)    (O)   (X)   (O)       |
 |  O            G                  E              |
 |  R      5           4      1           0        |
 |         o   o   o   o      o   o   o   o        |
 |  C      7           6      3           2        |
 |  A                                              |
 |  B     (O)   (X)   (O)    (O)   (X)   (O)       |
 |  L            H                  F              |
 |  E      7    puls   6      3   level   2        |
 |                      Output                     |
 |                                                 |
 |   RULBUS                                        |
 +-------------------------------------------------+

 (O) BNC connector  ·  (X) red-green LED  · o mini plug  ·  % switch

The table below indicates which lines are pulse or level inputs-ouputs.

  line | kind of input-output
 ------+----------------------
    0  |  ]
    1  |  ] level
    2  |  ]
    3  |  ]
       |
    4  |  ]
    5  |  ] negative pulse
    6  |  ]           note 1
    7  |  ]

Note 1: contrary to what the hardware documentation states, I think that the pulse inputs are sensitive to a high-low transition.

Configuration

The RB8506 SIFU module has no properties that are configured at production time.

Default configuration

rb8506_sifu "name"
{
   address = 0x94
}

When the Rulbus configuration file is read, the SIFU is initialized as follows:

Usage

There are functions to read all inputs at a time or to read each input line individually. Further there are functions to check if any line has changed since the last time it was checked. Ouputs may be read or written all at once or each output may be read or written individually. Four pulse outputs can be pulsed at one time.

int32 handle;
int32 flag;

rb8506_sifu_open( &handle, "sifu" );

rb8506_sifu_isChangedInputLine( handle, &flag );

if ( flag )
{
   int32 data;

   rb8506_sifu_getInputPortData ( handle, &data );
   rb8506_sifu_setOutputPortData( handle,  data );
}

rb8506_sifu_close( handle );


Open and close

EXPORT int32 RDL_API rb8506_sifu_open (int32 *pHandle, CCstr name)
 open a sifu.
EXPORT int32 RDL_API rb8506_sifu_close (int32 handle)
 close a sifu.

Data input

EXPORT int32 RDL_API rb8506_sifu_getInputPortData (int32 handle, int32 *pData)
 get the input port data; also clears input flip-flops.
EXPORT int32 RDL_API rb8506_sifu_isChangedInputLine (int32 handle, int32 *pFlag)
 true if the level of one or more input lines have changed; clears input-has-changed flag; see also rb8506_sifu_tstInputLineLevel().
EXPORT int32 RDL_API rb8506_sifu_tstInputLineLevel (int32 handle, int32 line, int32 *pLevel)
 get the level of the specified input line; clears input-has-changed flag, retains state of input flip-flops; see also rb8506_sifu_isChangedInputLine().
EXPORT int32 RDL_API rb8506_sifu_getInputLineLevel (int32 handle, int32 line, int32 *pLevel)
 get the level of the specified input line; clears input flip-flops.

Data ouput

EXPORT int32 RDL_API rb8506_sifu_getOutputPortData (int32 handle, int32 *pData)
 get the output port data.
EXPORT int32 RDL_API rb8506_sifu_setOutputPortData (int32 handle, int32 data)
 set the output port data.
EXPORT int32 RDL_API rb8506_sifu_getOutputLineLevel (int32 handle, int32 line, int32 *pLevel)
 get the line level of the specified output line.
EXPORT int32 RDL_API rb8506_sifu_setOutputLineLevel (int32 handle, int32 line, int32 level)
 set or clear specified output line.

Pulse control

EXPORT int32 RDL_API rb8506_sifu_isEnabledPulseOutputs (int32 handle, int32 *pFlag)
 true if the pulse outputs are enabled.
EXPORT int32 RDL_API rb8506_sifu_enablePulseOutputs (int32 handle, int32 flag)
 enable or disable pulse outputs.


Generated on Wed Apr 6 08:59:21 2005 for Rulbus Device Library for Microsoft Windows by doxygen 1.4.0