Universal Asynchronous Receiver Transmitter
A UART converts between parallel data and asynchronous serial data. To transmit a byte, a UART receives the 8 bits corresponding to that byte via its parallel interface. The UART then transmits a start bit, the 8 bits of data, and a stop bit out the serial output. To receive a byte, the UART first uses the received start bit to synchronize to the incoming data. Then the 8 data bits are collected, and once the stop bit is verified the byte is transferred out the parallel interface.
In early PCs, the 8250 or 16450 UART was used. Later on the 16550A was used instead as it provides a 16-level FIFO buffer to ease the requirements on the serial driver.
Many microcontrollers include a built-in UART. The Atmel AVR series, Microchip's PIC series, the Intel 8051 and the Motorola HC11 all include a UART on-chip. These UARTs are usually similar to the 8250 type in early PCs in that they do not provide hardware buffering (FIFO).
A UART may be extended to support synchronous serial communication. In this case it is properly known as a USART (Universal Synchronous/Asynchronous Receiver Transmitter) but it is often still refered to as a UART.