Philips Semiconductors User’s Guide
CMOS DUSSC User’s Guide
1994 Mar 21 634
cause the TxFIFO to be flushed. In ASYNC mode, operation
resumes when CTSN is asserted again. In COP and BOP modes,
the transmission of the message is terminated and operation of the
transmitter will not resume until CTSN is asserted and a TSOM or
TSOMP command is invoked. Prior to issuing the command and
re-transmitting the message, the transmitter should be reset, to flush
the TxFIFO.
CTSN ‘asserted/negated’ always refers to the internal CTSN signal
after being sampled by the input sampling circuit (see ICTSR[4]).
After a change-of-state of CTSN is established by the input
sampling circuits (refer to the description of ICTSR[4]), it is sampled
by the Tx controller 1 1/2 bit times before each new character is
serialized out of the Tx shift register. (This is 2 1/2 bits before the
LSB of the new character appears on the TxD pin; there is an
additional 1 bit delay in the transmitter data path due to the data
encoding logic.)
RECEIVER
The receiver data path includes two holding registers, HSRH and
HSRL, an 8-bit character comparison register, CCSR, two
synchronizing flip flops, a receiver shift register, RxSR, the SYN
comparison registers, S1R and S2R, and BISYNC character
comparison logic. The CDUSCC configures this circuitry and
utilizes it according to the mode selected for the channel through the
two mode registers CMR1 and CMR2. For all paths, character data
is assembled according to the character bit count in the RxSR, and
is moved to the RxFIFO with any appended status bits when
assembly is completed. Figure 47 depicts the four data paths
created in the CDUSCC for the various protocols.
Receiver RxFIFO, RxRDY
The receiver converts received serial data on RxD (LSB first) into
parallel data according to the transmission format programmed.
Data is shifted through a synchronizing flip flop and one or more
shift registers, the last of which is the 8-bit receiver shift register
(RxSR). Bits are shifted into the RxSR on the rising edge of each
1X receive clock until the LSB is in RxSR[0]. Hence, the received
character is right justified, with all unused bits in the RxSR cleared
to zero. A receive character length counter generates a character
boundary signal for synchronization of character assembly,
character comparisons, break detection (ASYNC), and RxSR to
RxFIFO transfers (except for BOP residual characters). During
COP and BOP hunt phases, the SYN/FLAG comparison is made
each receive bit time, as are ABORT and IDLE comparisons in BOP
modes.
An internal clock from the BRG, the DPLL or the counter/timer, or an
external 1X or 16X clock may be used as the receiver clock in
ASYNC mode. The BRG or counter/timer should not be used
directly for the receiver clock in synchronous modes, since these
modes require a 1X receive clock that is in phase with the received
data. This clock may come externally from the RTxC or TRxC pins,
or it may be derived internally from the DPLL. Received data is
internally converted to NRZ format for the receiver circuits by using
clock pulses generated by the DPLL.
When a complete character has been assembled in the RxSR, it is
loaded into the receive FIFO with appended status bits. The most
significant data bits of the character are set to zero if the character
length is less than eight bits. In ASYNC and COP modes the user
may select, via RPR[3], whether the data transferred to the FIFO
includes the received parity bit or not. The receiver indicates to the
CPU or DMA controller that it has data in the FIFO by asserting the
channel’s RxRDY status bit (GSR[4] or GSR[0] and, if in DMA
mode, the corresponding receiver DMA request pin.
The RxFIFO consists of sixteen 8-bit holding registers with
appended status bits for character count complete indications (all
protocol modes), character compare indication (ASYNC), EOM
indication (BISYNC/BOP), and parity, framing, CRC errors and other
status bits. Data is loaded into the RxFIFO from the RxSR and
extracted (read) by the CPU or DMA controller via the data bus. A
RxFIFO read creates an empty RxFIFO position for new data from
the RxSR. RxRDY assertion depends on the state of OMR[3]:
1. If OMR[3] is 0 (FIFO not empty), RxRDY is asserted each time a
character is transferred from the receive shift register to the re-
ceive FIFO. If it is not reset by the CPU, RxRDY remains as-
serted until the receive FIFO becomes empty, at which time it is
automatically negated. If it is reset by the CPU, it will remain
negated, regardless of the current state of the receive FIFO, until
a new character is transferred from the RxSR to the RxFIFO.
2. If OMR[3] is 1 (FIFO full), RxRDY is asserted:
a. When a character transfer from the receive shift register
causes RxFIFO to reach threshold levels.
b. When a character with a tagged EOM status bit is loaded into
the FIFO (BISYNC or BOP) regardless of RxFIFO full condition.
c. When the counter/timer is programmed to count received
characters and the character which causes it to reach zero count
is loaded into the FIFO (ICTSR[6]).
d. When the beginning of a break is detected in ASYNC mode
regardless of the RxFIFO full condition.
e. WDT is timed out.
If it is not reset by the CPU, RxRDY remains asserted until the FIFO
becomes empty, at which time it is automatically negated. If it is
reset by the CPU, it will remain negated regardless of the current
state of the receive FIFO, until it is asserted again due to one of the
above conditions. A write operation to GSR register is not
recommended while Rx/Tx are active.
The assertion of RxRDY causes an interrupt to be generated if
IER[4] and the channel’s master interrupt enable (ICR[0]) or ICR[1])
are asserted.
When DMA operation is programmed, the RxRDY status bit is
routed to the DMA control circuitry for use as the channel receiver
DMA request. Assertion of RxRDY results in assertion of
RTxDRQN output.
Several status bits are appended to each character in the RxFIFO.
When the FIFO is read, causing it to be ‘popped’, the status bits
associated with the new character at the top of the RxFIFO are
logically ORed into the RSR. Therefore, the user should read RSR
before reading the RxFIFO in response to RxRDY activation. If
character-by-character status is desired, the RSR should be read
and cleared each time a new character is received. The user may
elect to accumulate status over several characters or over a frame
by clearing RSR at appropriate times. This mode would normally
also be used when operating in DMA mode.
DMA Frame Status Byte: In RxDMA cycle, this status byte can be
loaded into the FIFO following last byte of frame (last byte means
data with EOM status bit set). This byte is updated frame-by-frame
by logical ‘ORing’ of prior status bytes with the present status of the
frame and only used for COP or BOP/BOPL modes while DMA
transfers are in progress. The EOM status (RSR[7]) will not be set
until this byte pops to the top of the FIFO. The DONEN(EOPN) is
asserted while this byte is being read out from RxFIFO.