CD2231 Intel Corporation, CD2231 Datasheet - Page 55
Manufacturer Part Number
CD2231 Intelligent Two-channel Lan And Wan Communications Controller
Intelligent Two-Channel LAN and WAN Communications Controller — CD2231
The Append mode reduces the CPU overhead required to provide asynchronous terminal echoing
functionality; this is also necessary for any similar application that involves an unpredictable
datastream. Buffer A can be set into Append mode by the ATBSTS register. This buffer can then
be used for the echoed data, while Buffer B is used for all other output data. The append buffer
allows data transmission to start from a buffer before all data is available for transmission. For
example, terminal echoing requires that each character is echoed (or translated and echoed) before
the complete line is typed.
To operate in Append mode, the ATBADR and ATBCNT are set as normal (the ATBCNT can be
zero), and the 2231own and Append bits are set in the ATBSTS. When any data is available for
transmission, it is placed in the RAM buffer by the CPU, and the total buffer byte count is updated
in the ATBCNT. The CD2231 can now scan the ATBCNT register for any changes; if new data is
found, it is read from the buffer and transmitted.
When no more data is found in the append buffer, the CD2231 scans Buffer B for ownership. If
Buffer B is owned by the CD2231, the data in that buffer is transmitted uninterrupted; at the end of
the transmission, Buffer A count continues to be scanned for new data.
For correct operation of this feature, the ATBCNT register should be updated with a word-write
operation. If only byte access is possible, the value should not exceed 256 bytes. This mode allows
multiple transfers to be performed through a single buffer; it saves CPU overhead by either
processing multiple buffers or in handling interrupts with every character.
Line retransmission becomes as simple as ‘stepping back’ in the buffer and resending. To terminate
Append mode, a command can be given by the STCR to cause the Buffer A to be terminated when
all current data has been sent.
Transmit Bus Errors
When a transmit bus error interrupt is generated, the TISR and ATBSTS/BTBSTS registers
indicate a bus error status. The current transfer address is available in the TCBADR[0–3] registers,
and the bus error occurred on the last transfer that started at this address. This means the actual
error address can be up to 16 bytes further in the buffer.
Following a bus error condition, the CPU can either discontinue the current buffer or retry from the
start of the last transfer. To discontinue the current buffer, the TermBuff bit should be set when
TEOIR is written to at the end of the interrupt. In Synchronous mode, the frame is still in progress
and needs to be aborted by the STCR (Special Transmit Command register).
To retry the frame, the CPU should set the 2231own bit in the ATBSTS/BTBSTS register, and not
set the TermBuff bit when writing to TEOIR at the end of the interrupt. This causes the last transfer
to be retried; should a bus error occur again, the above procedure is repeated. The CPU should
check to ensure that a bad location is not continually retried.
Receive Buffer Interrupts
When a receive buffer is complete, the CD2231 generates an end-of-frame receive exception
interrupt. It provides the CPU with RISR status and information on which buffer is complete.
When a receive error occurs, the device stops DMA at the point of error and generates a bus error
receive exception interrupt. RISR indicates the cause of the exception, and RCBADR provides the
next location in the receive buffer.