16550 UART
Encyclopedia
The 16550 UART is an integrated circuit
Integrated circuit
An integrated circuit or monolithic integrated circuit is an electronic circuit manufactured by the patterned diffusion of trace elements into the surface of a thin substrate of semiconductor material...

 designed for implementing the interface for serial communications
Serial communications
In telecommunication and computer science, serial communication is the process of sending data one bit at a time, sequentially, over a communication channel or computer bus. This is in contrast to parallel communication, where several bits are sent as a whole, on a link with several parallel channels...

. It is frequently used to implement the serial port
Serial port
In computing, a serial port is a serial communication physical interface through which information transfers in or out one bit at a time...

 for IBM PC
IBM PC
The IBM Personal Computer, commonly known as the IBM PC, is the original version and progenitor of the IBM PC compatible hardware platform. It is IBM model number 5150, and was introduced on August 12, 1981...

 compatible personal computer
Personal computer
A personal computer is any general-purpose computer whose size, capabilities, and original sales price make it useful for individuals, and which is intended to be operated directly by an end-user with no intervening computer operator...

s, where it is often connected to an RS-232
RS-232
In telecommunications, RS-232 is the traditional name for a series of standards for serial binary single-ended data and control signals connecting between a DTE and a DCE . It is commonly used in computer serial ports...

 interface for modems, serial mice, printers, and similar peripherals.

The part was originally made by National Semiconductor
National Semiconductor
National Semiconductor was an American semiconductor manufacturer, that specialized in analog devices and subsystems,formerly headquartered in Santa Clara, California, USA. The products of National Semiconductor included power management circuits, display drivers, audio and operational amplifiers,...

. Similarly numbered devices, with varying levels of compatibility with the original National Semiconductor part, are made by other manufacturers. A UART function that is register-compatible with the 16550 is usually a feature of multifunction I/O cards for IBM PC-compatible computers, and may be integrated on the motherboard of other compatible computers.

Replacement of the factory-installed 8250 UART was a common upgrade for owners of IBM PC, XT, and compatible computers when high-speed modems became available. At speeds higher than 9600 baud, owners discovered that the serial ports of the computers were not able to handle a continuous flow of data without losing characters. Exchange of the 8250 (having only a one-byte received data buffer) with a 16550, and occasionally patching or setting system software to be aware of the FIFO feature of the new chip, improved the reliability and stability of high-speed connections.

Main features of the 16550 include:
  • The ability to convert data from serial to parallel, and from parallel to serial, using shift register
    Shift register
    In digital circuits, a shift register is a cascade of flip flops, sharing the same clock, which has the output of any one but the last flip-flop connected to the "data" input of the next one in the chain, resulting in a circuit that shifts by one position the one-dimensional "bit array" stored in...

    s.
  • An on-chip bit rate (baud rate) generator to control transmit and receive data rate.
  • Handshake lines for control of an external modem
    Modem
    A modem is a device that modulates an analog carrier signal to encode digital information, and also demodulates such a carrier signal to decode the transmitted information. The goal is to produce a signal that can be transmitted easily and decoded to reproduce the original digital data...

    , controllable by software.
  • An interrupt
    Interrupt
    In computing, an interrupt is an asynchronous signal indicating the need for attention or a synchronous event in software indicating the need for a change in execution....

     function to the host microprocessor
    Microprocessor
    A microprocessor incorporates the functions of a computer's central processing unit on a single integrated circuit, or at most a few integrated circuits. It is a multipurpose, programmable device that accepts digital data as input, processes it according to instructions stored in its memory, and...

    .
  • An on-chip FIFO
    FIFO
    FIFO is an acronym for First In, First Out, an abstraction related to ways of organizing and manipulation of data relative to time and prioritization...

     buffer
    Buffer (computer science)
    In computer science, a buffer is a region of a physical memory storage used to temporarily hold data while it is being moved from one place to another. Typically, the data is stored in a buffer as it is retrieved from an input device or just before it is sent to an output device...

     for both incoming and outgoing data; this gives the host system more time to respond to an interrupt generated by the UART, without loss of data.


Both the hardware
Hardware
Hardware is a general term for equipment such as keys, locks, hinges, latches, handles, wire, chains, plumbing supplies, tools, utensils, cutlery and machine parts. Household hardware is typically sold in hardware stores....

 and software interface of the 16550 are backward compatible with the earlier 8250 UART and 16450 UART. The current version (since 1995) by National Semiconductor is called the 16550D.

The 16550 FIFO

One drawback of the earlier 8250 UARTs and 16450 UARTs was that interrupts were generated for each byte received. This generated high rates of interrupts as transfer speeds increased. More critically, with only a 1-byte buffer there is a genuine risk that a received byte will be overwritten if interrupt service delays occur. To overcome these shortcomings, the 16550 series UARTs incorporated a 16-byte FIFO
FIFO
FIFO is an acronym for First In, First Out, an abstraction related to ways of organizing and manipulation of data relative to time and prioritization...

 with a programmable interrupt trigger of 1, 4, 8, or 14 bytes.

Unfortunately, the original 16550 had a bug that prevented this FIFO
FIFO
FIFO is an acronym for First In, First Out, an abstraction related to ways of organizing and manipulation of data relative to time and prioritization...

 from being used. National Semiconductor later released the 16550A which corrected this issue. Not all manufacturers adopted this nomenclature, however, continuing to refer to the fixed chip as a 16550.

The 16550 also incorporates a transmit FIFO
FIFO
FIFO is an acronym for First In, First Out, an abstraction related to ways of organizing and manipulation of data relative to time and prioritization...

, though this feature is less critical as delays in interrupt service would only result in sub-optimum transmission speeds and not actual data loss.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK