SµMMIT FAMILY - 64
ing. The third word in the descriptor block identifies the cur-
rent address (i.e., last accessed address plus one). The circular
buffer wraps to the top address after completing a message that
results in CA16 being greater than or equal to BA16. If CA16
increments past BA16 during intra-message processing, the
SµMMIT will access memory (read or write) address locations
past BA16. Delimit all circular buffer boundaries with at least
34 address locations.
Each subaddress and mode code, both transmit and receive,
has a unique circular buffer assignment. The SµMMIT
decodes the command word T/R bit, subaddress/mode field,
and word count/mode code field to select a unique descriptor
block which contains TA16, CA16, and BA16.
For receive messages, the SµMMIT stores the message infor-
mation word into address location CA16, the time-tag word
into CA16+ 116, and the data into the next “N16” locations
starting at address CA16+216. For each transmit command, the
SµMMIT stores the message information word into address
location CA16 and time-tag word into location CA16+ 116.
Retrieval of data for transmission starts at address location
CA16 + 216. When entering multiple transmit command data
packets into the circular buffer, delimit each data packet with
two reserved memory locations. The SµMMIT enters the mes-
sage information word and time-tag word into the delimiting
memory locations.
5.3.3 Mode Number 2
Circular Buffer 2, enhanced SµMMIT operation, the user pro-
grams Control Register bit 7 to 1 and bit 8 to 1. The SµMMIT
separates message data and message information into unique
circular buffers. The separation of data from message informa-
tion simplifies the software that loads and unloads data from
the buffers. Each subaddress and mode code, both transmit and
receive, has a unique pair of circular buffers. The SµMMIT
decodes the command word T/R bit, subaddress/mode field,
and word count/mode code field to select a unique descriptor
block which contains TA16, CA16, and Message Information
Buffer (MIB).
Control the wrap-around of both the data and message circular
by specifying the number of messages before wrap-around
occurs. The second word entered into the descriptor block
determines the top of the data buffer (TA16). The third word in
the descriptor block identifies the current position (CA16) in
the buffer (i.e., last accessed address plus one). The fourth
word in the descriptor block identifies the MIB’s starting loca-
tion and current position. The MIB contains Time-Tag and
Message Information words for each message transacted on
the bus. The data buffer and message information word buffer
wrap around after processing a pre-determined number of
messages. Each subaddress and mode code, both transmit and
receive, has a unique data buffer and MIB assignment.
5.4 Ping-Pong Handshake
The Enhanced SµMMIT provides a software handshake which
indicates the enable and disable of buffer ping-pong operation.
During remote terminal operation, the SµMMIT asynchronous
ping-pongs between two subaddress or mode code data buff-
ers. To perform buffer service, the application software must
freeze the remote terminal’s access to a single buffer. The
SµMMIT’s ping-pong enable/disable handshake allows the
application software to asynchronously freeze (i.e., disable
ping-pong operation) the remote terminal to a single buffer.
5.5 Circular Buffer Mode #1
To implement Circular Buffer 1’s architecture, the four word
descriptor block and Control Register are different than in the
mode #0. Bits 15 through 8 of the Control Word are don’t care.
The second word of the descriptor block defines the buffer’s
starting or top address (TA16). The TA pointer remains static
during message processing. The fourth entry into the descrip-
tor block identifies the buffer’s bottom address (i.e., BA16)
and also remains static during message processing. The third
descriptor block word represents the current address (i.e.,
CA16) in the buffer and is dynamic. If the SµMMIT observes
no message error conditions, the CA16 pointer updates at the
end of message processing. The application software reads the
dynamic CA16 pointer to determine the current bottom of the
buffer.
First, a review of receive message processing. The SµMMIT
begins all message processing by reading a unique descriptor
block after reception and validation of a subaddress or mode
code command word. The SµMMIT internally increments the
CA16 pointer to store the receive data word(s). After message
processing completes, the SµMMIT stores the message infor-
mation word and time-tag word into the circular buffer preced-
ing the message data. At the end of message processing, the
SµMMIT updates CA16 (if no errors detected). For CA16
larger than BA16 storage of the next message begins at the
address location pointed to by the TA16 pointer, and CA16 is
made equal to TA16. If CA16 is less than BA16 , CA16 points to
the next available memory location in the buffer (i.e., CA16 +
1).
For transmit commands, the SµMMIT begins transmission of
data from memory location CA16 + 216. Reserve the first two
locations for the message information word and time-tag
word. After message processing completes, the SµMMIT
enters the message information word and time-tag word into
the circular buffer. At the end of message processing, the
SµMMIT updates CA16 (if no errors detected). For CA16