# universal asynchronous receiver/transmitter

> computer hardware device

**Wikidata**: [Q280409](https://www.wikidata.org/wiki/Q280409)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter)  
**Source**: https://4ort.xyz/entity/universal-asynchronous-receiver-transmitter

## Summary
A **universal asynchronous receiver/transmitter (UART)** is a computer hardware device that facilitates asynchronous serial communication between a computer and external peripherals. It converts parallel data from the computer into serial form for transmission and vice versa, enabling data exchange with devices like modems, printers, and sensors.

## Key Facts
- **Classification**: Subclass of *integrated circuit* and *chipset*, managing data flow between processors, memory, and peripherals.
- **Aliases**: Also known as **UART**, **USART** (Universal Synchronous/Asynchronous Receiver/Transmitter), or **Universal Asynchronous Receiver Transmitter**.
- **Parent/Related Chips**:
  - **16550 UART**: A widely used integrated circuit serial port implementation.
  - **8250 UART**: An earlier integrated circuit UART design.
  - **Intel 8251**: A specific UART model by Intel.
- **Integration**: Found in modern system-on-chips (SoCs) like the **I.MX UART** module.
- **Wikidata Presence**: 30 sitelinks, including Wikipedia entries in multiple languages (English, German, Spanish, etc.).
- **Schematic Available**: Block diagram available [here](https://commons.wikimedia.org/wiki/Special:FilePath/UART_block_diagram.svg).

## FAQs
### Q: What does a UART do?
A: A UART converts parallel data (used by a computer’s processor) into serial data for transmission over a communication line and vice versa, enabling asynchronous communication with peripherals like sensors or modems.

### Q: What’s the difference between UART and USART?
A: **UART** handles only asynchronous communication, while **USART** (Universal Synchronous/Asynchronous Receiver/Transmitter) supports both synchronous and asynchronous modes. Some UARTs are labeled as USARTs if they include synchronous capabilities.

### Q: Where are UARTs commonly used?
A: UARTs are used in embedded systems, microcontrollers, and PCs for serial communication with devices such as GPS modules, Bluetooth adapters, and industrial machinery.

### Q: What are some well-known UART models?
A: Notable models include the **Intel 8251**, **8250 UART**, and **16550 UART**, with the latter being a standard for PC serial ports.

### Q: Is UART still relevant today?
A: Yes, UARTs remain widely used in embedded systems, IoT devices, and legacy hardware due to their simplicity, low power consumption, and reliability for short-distance communication.

## Why It Matters
The universal asynchronous receiver/transmitter (UART) is a foundational component in digital communication, bridging the gap between a computer’s parallel processing and the serial data formats required by many peripherals. Before USB and other high-speed interfaces dominated, UARTs were the backbone of serial communication in PCs and embedded systems, enabling connections to modems, printers, and early networking devices. Even today, UARTs are critical in microcontroller-based projects (e.g., Arduino, Raspberry Pi) and industrial applications where simplicity and low overhead are prioritized. Their asynchronous nature—allowing devices to communicate without a shared clock signal—makes them robust for noisy environments and long-distance transmissions. By standardizing serial communication, UARTs have played a key role in the evolution of computer hardware and automation.

## Notable For
- **Pioneering Serial Communication**: One of the earliest and most enduring standards for asynchronous serial data transfer.
- **Widespread Adoption**: Integrated into countless microcontrollers, PCs, and embedded systems since the 1970s.
- **Flexibility**: Supports variable baud rates and data formats (e.g., start/stop bits, parity), adapting to diverse device requirements.
- **Legacy and Modern Use**: Remains relevant in both retro computing (e.g., RS-232 ports) and modern IoT/embedded designs.
- **Open Standard**: Non-proprietary design, leading to broad compatibility across manufacturers (e.g., Intel, Motorola, NXP).

## Body
### Overview
A **universal asynchronous receiver/transmitter (UART)** is a hardware device that enables asynchronous serial communication. It acts as an intermediary between a computer’s parallel bus and serial communication lines, converting data formats bidirectionally.

### Core Functionality
- **Parallel-to-Serial Conversion**: Takes byte-wide parallel data from a CPU/memory and transmits it bit-by-bit over a serial line.
- **Serial-to-Parallel Conversion**: Reassembles incoming serial bits into bytes for the receiving system.
- **Asynchronous Operation**: Uses start/stop bits to synchronize transmission without a shared clock signal, allowing flexible timing between devices.

### Key Components
- **Transmitter**: Handles outgoing data, adding start/stop bits and optional parity bits for error checking.
- **Receiver**: Samples incoming serial data, strips synchronization bits, and reassembles bytes.
- **Baud Rate Generator**: Controls the speed of communication (e.g., 9600, 115200 bits per second).
- **Data Buffers**: Temporary storage (e.g., FIFOs in the **16550 UART**) to handle speed mismatches between the CPU and serial line.

### Historical Models
- **Intel 8251**: An early programmable UART introduced in the 1970s, used in early microcomputer systems.
- **8250 UART**: Developed by National Semiconductor, became the standard for IBM PC serial ports.
- **16550 UART**: An enhanced version with a 16-byte FIFO buffer, reducing CPU overhead and improving performance.

### Modern Implementations
- **Embedded Systems**: UART modules are integrated into SoCs like NXP’s **I.MX** series, used in automotive, industrial, and consumer electronics.
- **Microcontrollers**: Devices like Arduino and ESP32 include hardware UARTs for debugging (e.g., `Serial.print()`) and peripheral communication.
- **Industrial Applications**: Used in RS-232/RS-485 interfaces for machinery control and sensor networks.

### Technical Specifications
- **Data Format**: Configurable for 5–8 data bits, 1–2 stop bits, and optional parity (odd/even).
- **Baud Rates**: Typically ranges from 300 bps to 115200 bps (higher rates possible in some implementations).
- **Voltage Levels**: Often TTL/CMOS (0V–5V) or RS-232 (±12V) depending on the interface standard.
- **Flow Control**: Supports hardware (RTS/CTS) or software (XON/XOFF) flow control to manage data transmission rates.

### Advantages
- **Simplicity**: Minimal wiring (often just TX, RX, and ground) and no clock signal required.
- **Low Power**: Ideal for battery-operated devices.
- **Reliability**: Asynchronous communication is resilient to minor timing discrepancies.

### Limitations
- **Speed**: Slower than synchronous protocols (e.g., SPI, I2C) due to overhead from start/stop bits.
- **Distance**: Typically limited to a few meters without additional circuitry (e.g., RS-485 extenders).
- **No Built-in Error Correction**: Relies on parity bits or higher-layer protocols for error handling.

## Schema Markup
```json
{
  "@context": "https://schema.org",
  "@type": "Thing",
  "name": "Universal asynchronous receiver/transmitter",
  "description": "A computer hardware device that enables asynchronous serial communication between a computer and peripherals.",
  "url": "https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter",
  "sameAs": [
    "https://www.wikidata.org/wiki/Q15330",
    "https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter"
  ],
  "additionalType": [
    "https://www.wikidata.org/wiki/Q15330",
    "IntegratedCircuit",
    "Chipset"
  ],
  "alternateName": ["UART", "USART", "Universal Asynchronous Receiver Transmitter"]
}

## References

1. [Source](https://lingualibre.fr/wiki/Q15330)
2. Freebase Data Dumps. 2013