BIGpedia.com - Universal asynchronous receiver transmitter - Encyclopedia and Dictionary Online
encyclopedia search

Universal asynchronous receiver transmitter

(Redirected from UART)

A UART or universal asynchronous receiver-transmitter is a piece of computer hardware that translates between parallel bits of data and serial bits. A UART is usually an integrated circuit used for serial communications over a computer or peripheral device serial port.


Bits have to be moved from one place to another using wires or some other medium. Over many miles, the expense of the wires becomes large. To reduce the expense, several bits, from five up to several thousand, are sent together on a single wire or optic fiber.

By convention, teletype-style UARTs send a "start" bit, five to eight data bits, least-significant-bit first, an optional "parity" bit, and then a "stop" bit. The start bit is the opposite polarity of the data-line's normal state. The stop-bit is the data-line's normal state, and provides a space before the next character can start. In mechanical teletypes, the "stop" bit was often stretched to two bit times to give the mechanism more time to finish printing a character. The parity bit can either make the number of bits odd, or even, or it can be omitted. Odd parity is more reliable because it assures that there will always be a data transition, and this permits many UARTs to resynchronize.

Standard speeds for UARTs are in changes of the data-line per second, or baud. Standard mechanical teletype rates are 110 and 150 baud. Computers have used from 300 to 56,200 baud. A standard speed for computers is 9,600 baud, which fills a screen with characters in less than a second.

UARTs use several different wiring and voltage standards. "Full duplex" standards permit both stations to send and receive at the same time. "Half duplex" arrangements permit only one station to talk at a time.

The most common, RS-232, uses two wires to send full-duplex. Each wire has plus twelve volts for 0 (space), and minus twelve volts for 1 (mark). RS-232 uses a rather large number of auxiliary lines (data carrier detect, data terminal ready, data set ready, request-to-send, clear-to-send), to signal that a connection is offered or refused. Often these are omitted, and a so-called "RS-232" connection will just have transmit, receive and ground.

Another common standard is RS-422. This is "differential", that is there are two wires, both data, and the difference in their voltage conveys the state of the data. The difference is supposed to be five or minus-five volts. The differential scheme means that electrical noise, when induced equally on both wires, will not corrupt the data. RS-422 is a point-to-point unidirectional transmission system. A multi-point standard using the same differential scheme is called RS-485 which has 2 wires for half-duplex and 4 for full-duplex operation. Some systems use only a single pair of wires for bi-directional communication using transmitters that can allow many transmitters and receivers to share the same pair for sending and receiving. This requires a higher level protocol to avoid collisions. The new DMX512 RDM standard uses this method.

The word "asynchronous" indicates that UARTs recover character timing information from the data stream, using designated "start" and "stop" bits to indicate the framing of each character. In synchronous transmission, the clock data is recovered separately from the data stream and no start/stop bits are used. This improves the efficiency of transmission on suitable channels; more of the bits sent are data. An asynchronous transmission sends nothing over the interconnection when the transmitting device has nothing to send; but a synchronous interface must send "pad" characters to maintain synchronism between the receiver and transmitter. The usual filler is the ASCII "SYN" character. This may be done automatically by the transmitting device.


Some chips have both synchronous and asynchronous modes. These are called USARTs (for "universal synchronous asynchronous receiver-transmitters").

The first UART-like devices were rotating mechanical commutators. These sent 5-bit baudot codes for mechanical teletypewriters, and replaced morse code. Later, ASCII required a seven bit code. When IBM rationalized computers in the early 1960s with 8-bit characters, it became customary to store the ASCII code in 8 bits.

An example of an early 1980s UART was the National Semiconductor 8250. In the 1990s, newer UARTs were developed with on-chip buffers. This allowed higher transmission speed without data loss and without requiring such frequent attention from the computer. For example, the National Semiconductor 16550 has a 16 byte FIFO. Variants include the 16C550, 16C650, 16C750, and 16C850.

Depending on the manufacturer, different terms are used to identify devices that perform the UART functions. Intel called their 8251 device a "Programmable Communication Interface". The term "Serial Communications Interface" (SCI) was first used at Motorola around 1975 to refer to their start-stop asyncronous serial interface device, which others were calling a UART.

Some very low-cost home computers or embedded systems dispensed with a UART and used the CPU to sample the state of a input port or directly manipulate an output port for data transmission. While very CPU-intensive, since the CPU timing was critical, these schemes avoided the purchase of a costly UART chip. The technique was known as a "bit-banging" serial port.



The contents of this article are licensed from Wikipedia.org under the GNU Free Documentation License.
How to see transparent copy

01-04-2007 01:21:04