DATUM 9310 TIME CODE TRANSLATOR / CONCURRENT COMPUTER EF12M

 

INTERFACE MODULE

 

USER'S GUIDE

 

NUWC, DIVISION KEYPORT, CODE 51

 

SEPTEMBER 1993

 

 

SECTION I

 

 

OVERVIEW

 

This module is a wire wrap board developed at NUWC, DIVISION KEYPORT. The board provides a means to transfer time data from up to two Datum model 9310 time code translators into a Concurrent Computer Series 6600 processor via a Concurrent Computer EF12M module installed in the Series 6600's STD+ bus (see figure 1.0). The board is designed to operate using the Concurrent DACP processor and associated data acquisition library subroutines. The interface board is build around a 74193 binary counter chip. The counter performs three functions:

 

1) Commands the Datum 9310 to transmit each time word in sequence.

2) Relieves software from performing function 1, increasing system performance.

3) Allows the DACP to operate on data transfers containing on even number of buffer elements.

 

 

 

 

DATUM 9310 - EF12M  / INTERFACE CABLING DIAGRAM

 

FIGURE 1.O

 


 

 

THEORY OF OPERATION

 

Refer to the schematic of the interface board in section IV for this discussion.

Ref: 9310.c

 

During a data transfer from the Datum 9310 TCR to the EF12M the following sequences occur:

 

The EF12M performs an outbound transfer writing two words to the interface. The first word resets the Datum internal handshake logic and the second word loads the interface counter with the first TCR command. Only the first 5 bits of each word are used. The first 4 bits form a valid TCR command. The 5th bit (DATA OUT 4) is used to select one of the two TCR ports available on the interface. Along with the data word, The EF12M operates the outbound handshake line OVALID. This line is used to signal an external device that the EF12M has valid data to send it. In this case, OVALID is made into a 500 ns pulse and delayed 500 ns via the two 74121 one shots U14 and U15. This is done to insure the EF12M outbound data has had sufficient time to set up and load into the counter at U17. The four LSB's along with OVALID is presented to the Datum 9310 as DATN00 - RESET and STROBE respectively. The Datum 9310 provides no acknowledgment of the STROBE input. OVALID is inverted and delayed 1000 ns via the one shot U13 and presented back to the EF12M as IACK in order to terminate the outbound transfer. The gate at U24 insures that either an EF12M outbound handshake or a count word from the 74193 will cause the STROBE to be generated. Upon receipt of STROBE, the Datum 9310 decodes the 4 LSB's from the interface. If they are a valid TCR command for one of the three Datum 9310 time words, the Datum 9310 freezes the current time and translates the requested time word into a 16 bit word. This process takes 3 us for the Datum 9310 to complete. The Datum 9310 outputs the time word and raises DFLG to signal that it has a word to send.

 

The EF12M performs an inbound transfer reading four words from the interface. The EF12M waits for IVALID whose source is selected via the data selector at U18. Upon receipt of IVALID, the EF12M reads the 16 bit word from the interface via data selectors U19 - U22. After reading the time word, the EF12M activates OACK to signal it has accepted the word. This acknowledgment is used to increment the counter at U17 to create the TCR command for the next time word and to generate a STROBE for it. OACK also pulses the Datum 9310 DATRCVD line to signal that the EF12M has read the time word. This causes the Datum 9310 to clear DFLG (and hence IVALID).

 

After the fourth EF12M read, the counter at U17 rolls over (count equals zero). This value is strobed into the Datum 9310 and causes it to release the words in its internal buffer and resume acquiring time.

This completes one Datum 9310 to EF12M time data transfer via the interface.

 


 

PROGRAMMER'S REFERENCE

 

It is anticipated that the interface board will be controlled via the Series 6600's DACP and associated data acquisition library subroutines vice direct STD bus address manipulation of the EF12M's hardware registers. Allowing the DACP to manage EF12M transfers will provide greater efficiency should the interface be incorporated with other STD devices later on as part of a total data acquisition system.

 

In order to use the interface with EF12M subroutines from the DACP data acquisition library, certain preliminary steps must be accomplished.

 

Include the DACP data acquisition header files in the program's preamble. For C programs the header files are: /usr/include/mr.h. FORTRAN programmers should include libmrdefs.f, mrerrs.f, errors.f and fortdefs.f all found in /usr/include.

 

Open the EF12M DACP device drivers and assign path numbers to them using MROPEN. The EF12M device drivers are /dev/dacp0/pdi0 and /dev/dacp0/pdo0 for the EF12M input and EF12M output ports respectively.

 

Establish buffers for the EF12M to use for reading and writing. The buffers must be long word aligned, that is they must end on a 32 bit boundary. This is a DACP requirement. Suggested method for aligning the buffers on a 32 bit boundary is to include the buffers as structure members and then use the subroutine call MRBUFID to perform the alignment. For example:

 

int pathno, buflen = 8;

union  {integer*2 buffer(buflen/2)

unsigned short array[buflen/2]

int dummy;

} buffer;

 

mrbufid( pathno, buffer.array, buflen ); call mrbufid(pathno,buffer,buflen)

 

WHERE: buflen is the number of buffer elements * 2.

 

Release the buffers from the align operation using MRBUFREL.

 

Load the first output buffer element with HEX 8 (HEX 18 if transfering from interface port B).Load the second output buffer element with HEX 4 (HEX 14 if transfering from interface port B).These values initialize the interface and the selected Datum 9310.

 

Establish operating modes for the EF12M input and output ports.

 

The interface board expects the OVALID signal to be high when the data coming from the EF12M is valid and will pulse IACK low when the data has been accepted. Use MRPEOMOD( pathno,0,1,0,1 ) to set the proper outbound handshaking modes.

 

The interface will provide a low on the IVALID line to initiate an EF12M inbound transfer and expects a high on the OACK line when the EF12M has accepted the data.Use MRPEIMOD( pathno,0,0,1,1,1,-1,-1 ) to establish the proper inbound handshaking modes.

 


 

PROGRAMMER'S REFERENCE continued....

 

 

Start the transfer by writing HEX 8 and HEX 4 to the interface.If transfering from port B, write HEX 18 and HEX 14 to the interface. Use MRPDXOUT to accomplish this.

 

Wait for the outbound transfer to complete by using MREVWT.

The outbound should end within 150 us.

 

Read four words from the interface. Use MRPDXIN to transfer the words from the interface. The first word read will be zero and is meaningless and only purpose is to cause the DACP software to transfer an even number of words.. The next three words will be time words 1, 2 and 3 from the Datum 9310.

 

Check for inbound transfer completion by using MREVCK.MREVWT fails for any time out value during an inbound transfer. See loop after MRPDXIN in example program. The program sets up its own event wait loop using MREVCK. This approach appears to be working. The problem with inbound MREVWT has not been resolved.

 

Close the DACP devices by issuing MRCLOSE.

 

The proceeding steps illustrates a basic sequence to perform one Datum 9310 time transfer via the

interface.  It does not perform any error trapping or recovery.

 

Section III contains the source for an example program that demostrates these steps. The program,

TCRDEMO and the source file TCRDEMO.C, are located in /usr/martin.