CN8478/CN8474A/CN8472A/CN8471A
6.0 Basic Operation
Multichannel Synchronous Communications Controller (MUSYCC™)
6.6 Self-Servicing Buffers
6.6 Self-Servicing Buffers
The transmit and receive Buffer Descriptors and Buffer Status Descriptors are
designed to facilitate a mechanism known as “self-servicing buffers.” This
mechanism allows the host to configure MUSYCC to fill a linked list of data
buffers as it receives a complete message through a receive channel, and empty
that same list of data buffers through a transmit channel without any further host
intervention.
The mechanism works as follows:
1. Host initializes linked list of Message Descriptors in shared memory.
2. Host configures receive channel to point to first Message Descriptor.
3. Host configures transmit channel to point to the same Message Descriptor.
4. The OWNER bit field in the Buffer Descriptor in the Message Descriptor
is set to 0. Therefore, for the transmitter, the buffer is owned by the host;
for the receiver, the buffer is owned by MUSYCC.
5. Both receive and transmit channel are activated.
6. As the receiver detects a valid incoming message, it begins filling the first
data buffer from the linked list. The transmitter remains idle, polling the
OWNER bit in the Transmit Buffer Descriptor.
7. As the receiver fills the first buffer, it writes the Receive Buffer Status
Descriptor (and sets OWNER to 1) and moves to the Next Message Pointer
which identifies the next Receive Data Buffer on the linked list.
8. The transmit channel detects the OWNER set to 1 for the first Transmit
Data Buffer, assumes ownership of the buffer, and begins emptying data to
the serial port.
9. Upon detecting the end of a message, the receiver writes the Receive
Buffer Status Descriptor and marks this last buffer as containing the End of
Message and sets the buffer length field, BLEN to indicate the amount of
data received in this last buffer.
10. When the transmitter detects the End of Message marking in the last
buffer, the transmitter sends the final BLEN amount of data out the serial
port and writes the Transmit Buffer Status Descriptor (and sets OWNER
to 0) and moves into the idle state again.
11. Go to step 6 to continue processing the next message.
NOTE: For self-servicing buffers, the host need not write to any descriptors for
receive or transmit operations. MUSYCC writes the Receive Buffer Status
Descriptor, which is subsequently used as the Transmit Buffer Descriptor.
100660E
Conexant
6-51