Converting the received serial bit stream into parallel data for transmission
over the PC’s internal data bus
On the PC, the data coming and being sent through a serial port is interpreted and
translated by the UART, which examines incoming data for the correct values in the start
and stop bits and verifies the parity bit, if parity is in use. It also encodes outgoing data
with start and stop bits and applies the parity bit, if needed.
There is a UART chi pin every serial communications device. It is the UART that con-
trols the data speed that a serial port or device is able to support. Table 19-3 lists the
UART chips, by their identity numbers, which have been used in PCs, modems, and
other serial devices over the years. Most modern PCs use the 16550 UART chip, which
supports serial data transmissions with speeds up to 115,200 bits per second (bps) or as it
is more commonly stated, 115.2 Kilobits per second (Kbps).
The buffer size of a UART is directly related to its actual data speeds. UART buffer
sizes are tied to the MS-DOS requirement that an interrupt process not last longer than
one millisecond. The buffer size reflects how many bits the UART can transfer during
each one millisecond interrupt plus the number of bits the UART can receive before send-
ing what it already is holding in the buffer. UART buffers operate on a first-in-first-out or
FIFO (pronounced “fi-foe”), which means it sends out the bits that came in first and
places later arriving bits at the back of the buffer.
The buffer size of the UART also helps to prevent a condition called UART overrun.
This condition occurs when a UART is unable to process and send the bits that just came
in fast enough to prevent them being clobbered by the next set of bits to arrive. Most PC
modems have at least a 16-bit buffer to prevent UART overrun. Older UARTS can ran-
domly lose characters because data arrives too fast for it to process the bits already in the
buffer. However, this is really not a problem unless you are trying to use a UART older
than a 16550.
Chapter 19: Ports and Connectors^487
Chip Buffer Size (bytes) Maximum Speed (bps)
8250 1 19,200
16450 1 38,400
16550 16 115,200
16650 32 430,800
16750 64 921,600
16850 128 1.5Kbps
16950 128 1.5Kbps
Table 19-3. UART Chip Characteristics