CD1865
—
Intelligent Eight-Channel Communications Controller
32
Datasheet
Data from the host can be given to the Transmitter FIFO, which is now empty.
A modem signal changes state.
Three separate service request levels are provided to support the following three categories:
5.4.1
Receive Service Requests
The Receive Service Request is unique because it has two subtypes; that is, it is capable of
returning one of the two different vectors during a service request acknowledge cycle. The two
sub-types are
—
‘
Receive Good Data
’
and
‘
Receive Exception
’
. The reason there are two types
within one category of service request is that, while Good Data and Exceptions require different
handling, they are both of equal priority, and need to be serviced in the order they are received. For
example, suppose two good characters are received, then an exception character, and then another
good character is received. There must be a service request for the first 2 bytes of Good Data, then
for the Exception, and then for more Good Data. If Exception Service Request is at a different
level, the exception character is processed either before or after the Good Data, and not in sequence
as it should be. This method also allows the Receive Good Data-handling routine in the host to be
very fast and efficient, since it only has to move
‘
N
’
bytes to a buffer. All special-case conditions
can be put in a separate handler, where they do not slow down normal data transfers.
Exception characters are characters with errors or that match the defined special characters, line
breaks, and certain time-out conditions.
Data must
not
be read from the Receive FIFO or the Receive Status FIFO except when the CD1865
is within the context of a Receive Data Service Request.
5.4.1.1
Receive Good Data
A Receive Good Data Service Request is asserted for any of the following three conditions:
1. RxFIFO threshold reached, and the FIFO contains Good Data.
2. RxFIFO threshold not reached, but the FIFO contains Good Data, and the Receive Data Timer
times-out.
3. RxFIFO threshold not reached, but the FIFO contains Good Data, and the newly arrived data
contains an exception condition.
When any of these conditions occur, the modified service request vector indicates to the host that
the service request is for Good Data. The CD1865 continues to add bytes to the FIFO, and it
increments the Count register for each good byte added, and this allows for optimally efficient use
of the FIFO.
It is not necessary to accept any or all of the Good Data that is available when a Good Data
Interrupt is received. If a host buffer is too full to accept 8 bytes, a smaller number (even 0) can be
read, the service request context left, and the host buffer handled first. The CD1865 again generates
another Good Data Service Request when any of the three conditions listed above are met.
Source
Pin Name
Request Match
Register Name
Receive data
*
Transmit data
*
Modem signal change
*