Fact-checked by Grok 2 weeks ago

Universal asynchronous receiver-transmitter

A Universal Asynchronous Receiver-Transmitter (UART) is a and peripheral that enables asynchronous between devices, converting from a or computer into format for and reversing the process for received . It operates without a shared , instead using start and stop bits to frame each data packet and a pre-agreed rate to synchronize the sender and receiver, ensuring reliable point-to-point or multi-drop communication. This design allows for full-duplex operation over two wires (transmit and receive lines), making it suitable for short-distance connections in embedded systems. The UART was developed in the early , initially to address the need for interfacing teletypes with early computers such as the by converting parallel signals to ones for efficient data handling. Iconic implementations, like the WD1402A introduced in 1971, became foundational in personal computers and became part of the IEEE Spectrum's Chip Hall of Fame for their role in enabling widespread I/O. Over decades, UART standards evolved from early asynchronous designs to include features like buffers for reducing CPU overhead, with modern variants supporting baud rates up to several megabits per second while maintaining . Key features of UART include configurable frame formats with 5 to 8 data bits, optional even/odd for detection, and 1 or 2 stop bits, often implemented with flow control (e.g., ) to manage data flow and prevent overruns. It supports interrupt-driven or polled operation modes, and in advanced peripherals, integrated FIFOs (up to 16 bytes or more) buffer data to handle varying transmission speeds without stalling the processor. These attributes contribute to its low complexity and cost-effectiveness, requiring minimal pins and no external clock line, though it is limited to relatively low speeds compared to synchronous protocols like or I2C. UART finds extensive applications in and microcontroller-based systems for tasks such as via consoles, interfacing with peripherals like GPS receivers, modules, and sensors, and connecting to legacy equipment using standards like or RS-485. In devices, it serves as a bridge for modules and human-machine interfaces, while in settings, it enables reliable exchange in and systems due to its robustness against simple errors. Its enduring popularity stems from ease of implementation in software and hardware, supporting both full-duplex exchanges and half-duplex modes in multi-device networks.

Fundamentals

Definition and Purpose

The Universal Asynchronous Receiver-Transmitter (UART) is an (IC) or embedded peripheral module designed to handle asynchronous communication between electronic devices, such as microcontrollers and peripherals. It functions by converting parallel from a processor's data bus into a serial bit stream for transmission and, upon , deserializing the incoming serial back into parallel format for processing by the host device. The primary purpose of a UART is to enable efficient, point-to-point exchange in full-duplex over minimal wiring, typically two lines for transmit and receive, facilitating connections between computers, systems, and devices like sensors or modems without requiring additional . This allows processors, which natively handle , to with serial transmission media, such as cables, supporting applications in , control systems, and low-speed logging. Fundamentally, a UART's includes parallel registers interfaced with shift registers to perform (transmitter side) and deserialization (receiver side), forming a diagram of bus connections to lines. Its asynchronous operation distinguishes it from synchronous protocols like SPI by forgoing a continuous shared , instead depending on mutually agreed rates—such as 9600 or 115200 bits per second—for timing , with start and stop bits delimiting each to maintain alignment.

Key Characteristics

UART employs several key configurable parameters to adapt to diverse communication needs. The data word length, which represents the of each transmitted frame, is typically adjustable from 5 to 9 bits, though 7 or 8 bits are the most prevalent configurations for standard applications. Parity settings offer options such as none, even, odd, mark, or space, allowing the inclusion of an optional bit to detect single-bit errors in the data stream. Additionally, the number of stop bits can be set to 1, 1.5, or 2, providing flexibility in frame termination to accommodate varying tolerances between transmitter and . Baud rate, defining the transmission speed in bits per second, spans a wide range in UART systems, with common values from 300 bps to 115,200 bps suitable for legacy and general-purpose uses. Modern UART variants, integrated into high-performance microcontrollers, extend this capability to rates exceeding 1 Mbps, and up to 5 Mbps in some implementations. A defining feature of UART is its support for full-duplex communication, facilitated by independent and RX lines that permit simultaneous data transmission and reception without interference. For error detection, UART relies on built-in parity checking as its primary mechanism, offering rudimentary validation of across each frame, though it does not incorporate more robust methods like for multi-bit error correction. The protocol's inherent simplicity contributes to its widespread adoption, requiring only a minimal pin count—typically just TX and RX for basic operation, with optional RTS and CTS pins for hardware flow control—while eliminating the need for an external through asynchronous timing derived from embedded start and stop bits.

Operation

Data Framing

In UART communication, the data frame defines the structure of each transmitted packet to ensure reliable asynchronous transfer without a shared . A typical frame begins with a start bit, which is a logic low (0) signal that indicates the onset of data transmission and allows the receiver to detect the beginning of the frame through . This start bit synchronizes the receiver's internal timing, enabling it to sample subsequent bits at the agreed baud rate without prior clock alignment. Following the start bit, the frame includes 5 to 8 data bits, transmitted least significant bit (LSB) first, which carry the actual information. An optional may follow the data bits to provide basic error detection by checking the evenness or oddness of the data; if even is selected, the bit is set to make the total number of 1s even, and vice versa for odd . The frame concludes with 1 or 2 stop bits, which are logic high (1) signals that mark the end of the transmission and return the line to its idle state of continuous logic 1. The most common frame format is , consisting of 8 data bits, no , and 1 stop bit, widely used in applications like console interfaces due to its balance of efficiency and simplicity. Prior to transmission, the communication line remains in an idle state at logic 1, ensuring the start bit's falling edge is clearly detectable. A key potential issue in data framing is the framing error, which occurs when a baud rate mismatch between transmitter and causes the stop bit to be sampled incorrectly, often resulting in an unexpected ; this error is detected by verifying that the stop bit(s) are at the expected logic 1.

Transmission Process

The transmission process in a UART begins when parallel data from the host is written to the transmit holding (THR). If the transmit (TSR) is empty, the THR data is immediately transferred to the TSR, emptying the THR and setting the transmit holding empty (THRE) flag in the line status (LSR). This transfer triggers an to the host if THRE interrupts are enabled, allowing the to load the next byte into the THR without waiting for the current transmission to complete. Once loaded into the TSR, the data undergoes for output on the TX line, which is held idle at a logic high level when not transmitting. The process appends a start bit (logic low) to the beginning of the , transitioning the TX line from high to low to signal the . This is followed by the data bits—typically 5 to 8 bits, starting with the least significant bit (LSB)—shifted out serially from the TSR at precise intervals determined by the baud rate clock. If is enabled, a is inserted after the data bits to provide checking, calculated based on the configured parity mode (odd, even, mark, or space). The concludes with one or more stop bits (logic high), restoring the TX line to its idle state and marking the end of the transmission. The operates as a parallel-in, serial-out , clocked by the baud rate generator to ensure each bit duration matches the configured baud rate. During , the TSR remains dedicated to the current byte until all bits, including start, , , and stop, are output, preventing new from interrupting the process. In UARTs with buffers, multiple bytes can be queued in a transmit before shifting into the TSR, enhancing throughput by reducing overhead. Hardware flow control, such as , integrates into the transmission to manage data flow and prevent receiver overrun. The transmitter monitors the CTS signal from the receiver; if CTS is deasserted (low), the UART pauses after completing the current byte, holding subsequent bytes in the THR or until CTS is reasserted. This ensures reliable communication in bidirectional links where receiver buffer capacity varies. A typical timing for UART illustrates the bit sequence over time, with the horizontal axis representing rate intervals:
  • Idle: TX high (logic 1).
  • Start bit: TX low (logic 0) for one interval.
  • Data bits: 8 bits shifted LSB first, each held for one interval (e.g., 01010101 for byte 0x55).
  • (if enabled): One interval, e.g., 1 for even .
  • Stop bits: One or two intervals at high (logic 1).
This sequence totals 10 intervals for an frame (8 data bits, no , 1 stop bit).

Reception Process

The reception process in a UART begins with continuous monitoring of the receive (RX) line, which idles high. Upon detecting a falling edge—indicating the potential start of a start bit—the receiver initiates synchronization by confirming the low state through multiple samples. This detection triggers the baud rate generator or a sampling timer, often employing oversampling at 16 times the baud rate to enhance noise immunity and precisely locate the bit center; for instance, the start bit is typically resampled three times (at 8/16, 12/16, and 16/16 of the bit period) to validate it as low before proceeding. Subsequent bits are then sampled at regular intervals corresponding to the baud rate, again using the oversampling clock to vote on the bit value (e.g., majority of 16 samples in the bit window determines 0 or 1). These serial bits are shifted into a receiver shift register (RSR), starting with the least significant bit (LSB) first, in alignment with the standard UART convention where data is transmitted LSB-first. The shift register accumulates the data bits (typically 5 to 8), optional parity bit, and stop bits to form a complete parallel word; once the frame is fully received, the contents are transferred from the RSR to the receiver buffer register (RBR) for CPU access. Validation occurs concurrently during reception to ensure . The receiver calculates the (even or odd, if enabled) by counting the number of 1s in the and bits, comparing it against the expected value; a mismatch sets a error flag in the . Stop bits are verified to be high at the 's end—if not, a framing error is flagged, indicating potential baud rate mismatch or . Errors are reported via dedicated bits in the line (LSR), allowing to handle issues like retransmission. The format, consisting of start bit, , optional , and stop bits, guides this validation process. Received data is moved from the RBR to a holding or buffer if available, preventing loss during high-throughput scenarios. If new data arrives while the RBR is occupied (i.e., previous data unread by the CPU), an overrun error is flagged in the , signaling potential . Buffer management typically supports interrupt-driven or polled reading, with the RBR acting as the primary for extracting validated bytes. Break detection handles special conditions where the RX line remains low for an extended period, exceeding the duration of a full character frame (e.g., longer than start bit plus data plus stop bits). This is interpreted as a break signal, often used for or error reset; upon detection, a is set in the , and the may discard partial data or notify the system without assembling a byte. The exact threshold varies but is typically one full bit time beyond the stop bits.

Hardware Implementation

Transmitter Components

The transmitter section of a UART comprises key hardware blocks that facilitate the parallel-to-serial of for outbound communication. Central to this is the transmit holding register (THR), a that serves as the primary interface for the host processor to load parallel bytes into the UART. The THR operates as a first-in-first-out () input in designs supporting buffering, allowing multiple bytes to be queued before transmission begins, which mitigates CPU overhead in high-throughput scenarios. Once the THR receives data, the transmit shift register (TSR) takes over for . The TSR loads data from the THR when it becomes empty, appending a start bit at the beginning, optional , and one or more stop bits at the end to form the complete . This , typically 8 to 11 bits wide depending on configuration, shifts out bits serially on the TX line synchronized to the rate clock, ensuring asynchronous compatibility with the . Control logic orchestrates the overall transmission flow, including baud timing generation via a programmable divider that derives the bit clock from a reference oscillator. This logic employs state machines and counters to manage assembly, bit shifting, and handshaking signals. Status bits such as transmit holding register empty (THRE) indicate when the THR is ready for new , while transmit empty (TEMT) signals that both THR and TSR are vacant, confirming completion. For , a generator is integrated, often implemented using a tree of XOR gates to compute even or odd over the data bits. The is inserted into the frame if enabled via configuration registers, with the XOR-based logic ensuring efficient computation in hardware. sources from the transmitter include THRE for availability and transmission complete for end-of-frame notification, allowing efficient CPU polling or . Modern UART implementations incorporate power-saving features, such as low-power modes that halt the baud clock and disable shift logic when the transmitter is idle, reducing energy consumption in battery-powered or embedded systems. These modes are typically activated via control registers, resuming operation upon new data writes to the THR.

Receiver Components

The UART receiver comprises several key hardware components designed to capture, deserialize, and validate incoming serial data from the RX line. Central to this is the start bit detector, typically implemented as an edge-triggered flip-flop that monitors for a falling edge (transition from high to low) on the RX input, signaling the beginning of a data frame. Upon detection, it synchronizes the receiver to initiate the sampling process. The receive shift register (RSR) serves as the core deserialization unit, a serial-in-parallel-out that serially shifts in the start bit, data bits, optional , and stop bit(s) from the line. It is typically 9 to 11 bits wide to accommodate standard frame formats, loading the assembled parallel data into the receive buffer register (RBR) once the frame is complete. The RBR acts as a temporary holding area for the received byte, accessible by the host processor via the data bus, preventing data loss during transfer from the RSR. Sampling of the RX line occurs via a baud rate clock divider that generates an clock, commonly 16 times the nominal baud rate, to center bit sampling and improve timing accuracy despite . Bits are sampled at the midpoint—typically the 8th or 16th oversample point (e.g., 7/16 or 8/16 of the bit period)—to minimize errors from misalignment. A digital filter, often a majority-vote or debounce , processes the oversampled RX signal to reject glitches shorter than a configurable (e.g., 3-5 samples), ensuring reliable start bit detection and data integrity. Error detection logic integrates directly with the RSR and RBR. The parity checker is a dedicated or XOR tree that computes the (even or odd) of the received data bits and compares it against the received , setting a flag if mismatched. The framing error detector monitors the stop bit(s) position; if the RX line is not high at the expected stop bit time, it indicates a framing error due to baud rate mismatch or . An overrun detector checks if new data arrives in the RSR before the previous byte is transferred to the RBR, flagging data loss in non-FIFO modes. Additionally, a break detector identifies a prolonged low state on (longer than a full frame), often used for line . In advanced UART implementations, a FIFO buffer expands the RBR into a multi-level (e.g., 16 or 64 bytes deep) to handle bursty data reception without immediate CPU intervention, reducing overhead. Each FIFO entry may include attached error flags (, framing, overrun, break) alongside the 8 data bits for per-byte status. The captures receiver state through dedicated bits, such as the receive data ready flag (RDRF or RXRDY), which asserts when valid data is available in the RBR or FIFO. Error flags for , framing, overrun, and break conditions are also latched here, enabling generation if enabled, and can trigger receiver reset or discard mechanisms. These components collectively ensure robust asynchronous reception by isolating hardware faults from the data path.

Clocking and Baud Rate Generation

The baud rate in a UART is generated using a programmable -based that derives the timing signal from the clock, typically producing a clock that is 16 times the desired rate to enable during reception for improved noise immunity and . The value is calculated as \text{divisor} = \frac{\text{clock [frequency](/page/Frequency)}}{16 \times \text{baud rate}}, allowing the to divide the input clock down to the required bit timing. This 16x divides each bit period into 16 finer intervals, with sampling typically occurring at the middle of the bit (8th interval) to minimize errors from timing variations. Clock sources for the UART baud generator can be an internal RC oscillator, which offers simplicity but lower accuracy due to temperature and voltage sensitivity, or an external , which provides higher and essential for reliable high-speed communication. The is programmed through dedicated registers, such as the Divisor Latch Low (DLL) and Divisor Latch High (DLM), which together form a 16-bit value to set the division ratio from the clock source. Synchronization between transmitter and relies on matching rates within tight tolerance limits, typically ±2% to ±5% mismatch, to prevent cumulative bit errors over a frame; exceeding this can cause the to sample bits incorrectly, leading to framing errors. Clock , or short-term variations in the clock period, exacerbates these issues by introducing additional timing uncertainty, potentially shifting the sampling point and increasing bit error rates, particularly in longer frames or noisy environments. To achieve precise baud rates that are not integer multiples of the clock frequency, modern UARTs employ fractional baud rate generation techniques, such as fractional dividers that modulate the integer divisor with a sub-divisor fraction (e.g., adding increments of 1/16th of a bit time) or methods to approximate non-integer divisions. These approaches improve accuracy for arbitrary clock sources, reducing error below 1% in many cases. For power efficiency, UARTs incorporate mechanisms that disable the generator and associated clocks when the interface is , preventing unnecessary toggling and reducing dynamic power consumption by up to 30% in low-activity scenarios without affecting functionality upon reactivation.

History and Development

Origins in Early Computing

The Universal Asynchronous Receiver-Transmitter (UART) emerged in the early 1960s as a critical component for serial communication in minicomputers, initially developed to interface with teletypewriters and serial terminals. Gordon Bell, while working at Digital Equipment Corporation (DEC), designed the first UART as part of the input/output subsystem for the PDP-1 minicomputer, introduced in 1960. This implementation occupied an entire circuit board known as a line unit, enabling asynchronous serial data transmission between the computer and external devices like teleprinters, which were common for user interaction in resource-limited environments. The design addressed the need for reliable bit-level serialization and deserialization without requiring a shared clock signal, building on principles of asynchronous communication already used in telegraphy systems. The primary driver for UART development was the demand for efficient serial input/output (I/O) in early systems that lacked sufficient pins or for interfaces, particularly in compact minicomputers where board space and power were constrained. In systems like the series, ports were impractical for long-distance or low-speed peripheral connections, making serial transmission essential for connecting to devices such as keyboards, printers, and early modems. This necessity was amplified by the growth of interactive , where user input via terminals became vital. Concurrently, the for such serial links was standardized by the Electronic Industries Association (EIA) with in 1960, specifying voltage levels, signaling, and connector types to ensure interoperability between (DTE) and (DCE). The UART's role complemented by handling the logical framing and error detection at the level. Early UART-like circuits evolved into custom application-specific integrated circuits (ASICs) for subsequent DEC systems, such as the PDP-8 minicomputer launched in 1965, where they facilitated serial console operations and peripheral attachments. A key milestone came with the commercialization of integrated UART variants; for instance, Western Digital's WD1402A in 1971 marked one of the first single-chip asynchronous receivers/transmitters, paving the way for broader integration. Pure asynchronous UART functionality appeared in these custom designs before more versatile synchronous/asynchronous chips like Intel's 8251 USART, introduced in the mid-1970s to support microprocessors such as the 8080. By the 1970s, UARTs saw widespread adoption in Unix-based systems running on PDP-11 minicomputers, where they enabled console terminals and modem connections for remote access and file transfers via protocols like UUCP, solidifying their role in multi-user environments.

Evolution and Standardization

In the 1980s, a significant advancement in UART design came with the introduction of the 8250, which was integrated into the original PC motherboard in 1981 to facilitate communications with modems and serial printers, marking a in personal computing serial interfaces. This chip provided basic buffering with a single-byte capacity, but it suffered from CPU overhead due to frequent interrupts at higher data rates. To address overrun issues—where incoming data was lost if the processor could not service interrupts quickly enough—the 16550 emerged later in the decade, incorporating 16-byte buffers for both transmit and receive operations, which reduced interrupt frequency and improved performance in PC-compatible systems. During the 1990s and 2000s, UARTs evolved through deeper integration into system-on-chips (SoCs), particularly those based on cores, enabling more compact and efficient designs in devices like mobile processors and network equipment. Speeds increased to support up to 3 Mbps in standard configurations, accommodating faster serial links in and computing peripherals. Additionally, support for (IrDA) protocols was incorporated, allowing UARTs to handle half-duplex infrared serial communications at speeds up to 115.2 kbps, which became common in short-range wireless applications like personal digital assistants. Standardization efforts for the physical layer culminated in the EIA/TIA-232-F specification released in 1997, which specified electrical characteristics, signal timing, and connector interfaces between data terminal equipment (DTE) and data circuit-terminating equipment (DCE) to ensure interoperability in serial binary data interchange; UARTs serve as core components implementing the asynchronous protocol over this interface. This standard influenced subsequent protocols, notably the USB Communications Device Class (CDC) introduced in the early 2000s, where UART functionality is emulated through virtual COM ports, allowing legacy serial applications to operate over USB without hardware modifications. By the 2020s, UART developments have emphasized low-power variants for Internet of Things (IoT) applications, including integration with Bluetooth Low Energy (LE) modules achieving sleep currents as low as 150 nA to extend battery life in sensor networks, alongside automotive enhancements with I2C/SPI-to-UART bridges meeting AEC-Q100 standards for robust vehicle networking in advanced driver-assistance systems (ADAS) and infotainment. As of 2025, the UART market is projected to grow to USD 6.5 billion by 2033, driven by AI integration and low-power FPGA implementations for embedded systems. In automotive systems, UARTs have been enhanced with interfaces to CAN bus transceivers for robust vehicle networking, supporting features like ADAS and infotainment while meeting AEC-Q100 qualification for reliability in harsh environments. For 5G edge devices, UARTs provide essential serial interfaces for configuration and debugging in distributed computing nodes, leveraging high-speed SoC integration to handle low-latency data flows in real-time analytics. Ongoing challenges in UART evolution include improving noise immunity, addressed through differential signaling schemes like , which use balanced twisted-pair lines to reject common-mode interference and enable reliable transmission over distances up to 1200 meters. Software-configurable modes have also advanced, allowing dynamic adjustment of parameters such as baud rate, , and flow control via registers, which enhances flexibility in modern SoCs without requiring hardware reconfiguration.

Variants and Models

Standard UART Integrated Circuits

The Intel 8250, introduced in 1981, served as a foundational universal asynchronous receiver-transmitter (UART) integrated circuit, featuring a single-byte transmit and receive buffer without FIFO capabilities, and supporting baud rates up to 115,200 bps when paired with a suitable clock source such as the common 1.8432 MHz crystal oscillator. This device included eight addressable registers for configuration, including line control, modem control, and interrupt status, accessible via an 8-bit parallel bus interface. The 8250 was widely adopted in early personal computing, notably as the core component of serial ports in the original PC and XT models, where it handled asynchronous communication for peripherals like modems and printers through the system's I/O ports starting at 0x3F8. The Intel 16450, an enhanced iteration of the 8250 released in the mid-1980s, maintained pin-for-pin compatibility while improving internal timing and reliability for higher-speed operations, though it retained the single-byte buffering limitation that could lead to data overrun at rates exceeding 9600 bps on slower processors. Both chips utilized a 40-pin DIP package with key pins including TXD for transmit data, RXD for receive data, RTS/CTS for hardware flow control, and DTR/DSR for modem signaling, alongside interrupt request (INT) and chip select lines for microprocessor integration. Their register maps were identical, comprising receiver buffer, transmitter holding, divisor latch for baud rate, and interrupt identification registers, enabling straightforward software control in assembly or C programs. Building on this foundation, the NS16550, introduced in 1987, added a 16-byte for both transmit and receive operations to mitigate CPU overhead at higher rates, along with enhanced capabilities such as programmable threshold levels for triggers. This upgrade allowed reliable operation up to 115,200 bps or higher on faster systems, positioning it as the for PC serial ports in the PC AT and subsequent compatibles, where it replaced earlier 8250/16450 chips without requiring hardware modifications due to full . The NS16550 retained the same 40-pin layout and register structure as its predecessors, with additional bits to enable/disable the buffers and set triggers at 1, 4, 8, or 14 bytes. Other classic UART implementations from the era included the MC6850 Asynchronous Communications Interface Adapter (ACIA), a 1976 device designed for the family, which supported baud rates from 0 to 19,200 bps via an external clock and featured four registers: transmit , receive , control, and status, with pins for serial I/O, interrupt, and modem control in a 24-pin package. Similarly, the Z8440 Input/Output Controller (SIO), introduced in 1980 for Z80-based systems, provided dual-channel asynchronous operation with programmable , stop bits, and baud rates up to the clock divided by 16, utilizing a 40-pin package with dedicated channel A/B pins, write/read strobes, and a 12-register map per channel for , command, and status handling. These standard UART ICs achieved broad compatibility through pin-compatible replacements and standardized register interfaces, allowing seamless upgrades; for instance, the NS16550 could substitute directly for the 8250 in existing designs, with operating systems like supporting both via the unified 8250 serial driver that exposes devices as /dev/ttyS0 and subsequent ttyS nodes for multi-port configurations. In kernels, this driver handles IRQ sharing and FIFO detection automatically, ensuring legacy software compatibility while optimizing for enhanced features. Despite their enduring influence, standard UART ICs like the 8250 family were inherently limited to single-channel operation without integrated protocol conversion, such as USB bridging, necessitating external components for modern interfaces and restricting them to basic asynchronous serial tasks.

Specialized and Modern Variants

Multi-channel UARTs represent an advancement over single-port designs, enabling efficient handling of multiple connections in compact systems such as servers and networking equipment. The Exar ST16C554, a quad UART , provides four independent 16C550-compatible channels with 16-byte transmit and receive FIFOs, supporting rates up to 1.5 Mbps per channel and designed for PCI-based multi-port cards to consolidate multiple legacy interfaces. This configuration reduces board space and power consumption compared to discrete UART chips, making it suitable for applications requiring simultaneous communication with multiple devices like modems or terminals. USB-UART bridges facilitate the integration of traditional protocols into modern USB ecosystems, allowing legacy UART devices to connect seamlessly to computers without native serial ports. The FT232R serves as a single-chip USB 2.0 full-speed (12 Mbps) to , featuring integrated for device customization and supporting baud rates up to 3 Mbps while emulating standard // signals. Similarly, ' CP210x family, such as the CP2102, offers a USB-to-UART bridge with an integrated oscillator and up to 1 Mbps data rates, including GPIO controls for status signals and compliance with USB 2.0 specifications for plug-and-play operation in and designs. In modern microcontrollers, UART peripherals are deeply integrated to enhance performance in resource-constrained environments, often incorporating (DMA) for efficient data handling. ARM Cortex-M based devices, exemplified by ' series, feature multiple USART/UART instances with DMA support to offload CPU interrupts during high-throughput transfers, achieving serial speeds up to 10.5 Mbps depending on the system clock and configuration. These peripherals include hardware flow control, encoding, and multibuffer DMA modes, enabling reliable communication in real-time systems like sensors and motor controls without software polling overhead. Specialized low-power and high-speed UART variants address niche demands in wireless and automotive sectors. The HC-05 module employs a UART interface for serial data over short-range wireless links, operating at 3.3V with default baud rates of 9600 bps (configurable up to 115200 bps) and supporting modes for transparent (Serial Port Profile) connections in mobile and embedded applications. In automotive systems, bus UARTs adapt the protocol for low-cost, single-wire networks, as implemented in Microchip's UART modules that handle LIN 2.x framing with automatic rate detection and generation at speeds up to 20 kbps, reducing wiring complexity in vehicle body electronics like door locks and lighting. For space applications, radiation-hardened UARTs ensure reliability in harsh environments. Emerging variants in 2025 incorporate advanced features for secure and intelligent edge processing. Edge computing platforms from CEVA integrate neural processing units with UART interfaces to enable on-device data filtering and anomaly detection in real-time IoT streams, reducing latency for applications like predictive maintenance. Quantum-safe encryption add-ons, demonstrated by wolfSSL's implementation of post-quantum TLS 1.3 over UART on STM32U5 microcontrollers, integrate hybrid key exchanges (e.g., ML-KEM with ECC) to protect serial communications against quantum threats, supporting baud rates up to 921600 bps in embedded secure boot and firmware update scenarios.

Applications

Communication Interfaces

The Universal Asynchronous Receiver-Transmitter (UART) serves as the foundational protocol for various traditional wired and short-range interfaces, enabling asynchronous exchange between devices. One of the most prominent standards is (also known as EIA-232), which defines a full-duplex, point-to-point for . It employs unbalanced with voltage levels ranging from ±3 V to ±15 V, where a logic 1 (mark) is represented by a negative voltage and a logic 0 (space) by a positive voltage. This standard supports rates up to 20 kbps over distances of approximately 15 meters, making it suitable for applications such as connecting personal computers to modems. For extended range and multi-device connectivity, UART interfaces often utilize and standards, which employ balanced signaling to mitigate noise and support longer cable runs. provides full-duplex communication over twisted-pair lines, allowing a single driver to connect to up to 10 receivers, with capabilities for data rates up to 10 Mbps over 1,200 meters at lower speeds. In contrast, enables half-duplex or full-duplex modes in a multi-drop configuration, supporting up to 32 nodes on a shared bus, and is particularly effective for distances exceeding 1,000 meters at rates up to 100 kbps. These standards enhance reliability in noisy environments compared to RS-232's single-ended approach. At the board level, UART signals are commonly transmitted using TTL or CMOS logic levels for short-distance, direct connections between integrated circuits. TTL levels operate between 0 V (logic 0) and 5 V (logic 1), while modern CMOS implementations typically use 0 V to 3.3 V, offering compatibility with low-power microcontrollers and reducing electromagnetic interference over distances of a few meters or less. These native levels require no additional transceivers for intra-device communication but are limited to short ranges due to their susceptibility to noise. To prevent data overrun and ensure reliable transmission, UART interfaces incorporate flow control mechanisms that regulate the data rate between sender and . flow control utilizes dedicated signals such as RTS (Request to Send) and CTS (Clear to Send), where the asserts CTS to indicate readiness, allowing the transmitter to pause if the buffer is full. , alternatively, embeds control characters within the data stream, using XON (DC1, ASCII 17) to resume transmission and XOFF (DC3, ASCII 19) to halt it, providing a method independent of extra wiring. Physical cabling for UART-based interfaces typically employs standardized connectors like (9-pin ) or DB-25 (25-pin), which facilitate the routing of multiple control and data lines. For direct connections between two (DTE) devices, such as two computers, a cable is used, which cross-connects the transmit and receive lines to emulate a (DCE) intermediary without requiring a .

Embedded Systems and Microcontrollers

In embedded systems, microcontrollers frequently incorporate built-in UART modules as peripherals to facilitate for control and data exchange. The ATmega series from , such as the ATmega328P, includes a Universal Synchronous/Asynchronous Receiver/Transmitter (USART) module with dedicated GPIO pins for transmission (TXD1 on PD1) and reception (RXD1 on PD0), enabling direct interfacing without additional . Similarly, PIC18 family devices feature an Enhanced Universal Synchronous Asynchronous Receiver Transmitter (EUSART) that maps TX and RX to configurable GPIO pins, such as RC6 and RC7 in many models, allowing flexible pin assignment for serial I/O. The microcontroller provides three independent UART controllers, each with signals routable to any GPIO via the GPIO matrix; for instance, UART0 defaults to GPIO1 (TX) and GPIO3 (RX), supporting multiple concurrent serial links in resource-constrained designs. These integrations simplify design by leveraging the microcontroller's internal clock for baud rate generation, as referenced in the clocking section. Configuring UART operation in microcontrollers typically involves writing to specific registers to set parameters like baud rate, parity, data bits, and stop bits, followed by selecting an appropriate data handling mode. In AVR devices like ATmega, the 16-bit UBRR register determines the baud rate by dividing the system clock, while the UCSRC register controls parity (none, even, or odd) and frame format; for example, a 16 MHz clock yields a UBRR value of 103 for 9600 baud. PIC microcontrollers use the SPBRG register for baud rate scaling from the FOSC clock, with the TXSTA and RCSTA registers enabling parity and 8- or 9-bit modes. ESP32 UART configuration occurs via software APIs that set baud rates up to 5 Mbps and parity through registers like UART_CONF0. Data reception and transmission support polling mode, where the CPU repeatedly checks status flags (e.g., UDRE for transmit buffer empty in AVR or TRMT in PIC), interrupt mode for event-driven handling (e.g., RXC interrupt on data arrival), and DMA mode in advanced controllers like ESP32's UHCI, which offloads bulk transfers to minimize CPU overhead. Common applications in embedded systems include serial debugging and sensor interfacing, where UART provides a straightforward for real-time monitoring and . For , functions like can be redirected to UART output, allowing developers to stream variable states, error messages, or log data to a host computer via a ; this is particularly useful during development to trace execution without halting the system. In sensor interfacing, UART connects modules like GPS receivers, as seen with the NEO-6 series, which outputs NMEA sentences at a default 9600 rate—wiring the module's to the microcontroller's GPIO and sharing enables of location data in applications such as . The ecosystem exemplifies this through its library, which abstracts register-level programming into high-level functions like Serial.begin(9600) for initialization and Serial.print() for output, streamlining prototyping on AVR-based boards. Likewise, utilizes the hardware UART on GPIO 14 () and 15 () for console access, configurable via raspi-config to enable shells or custom serial I/O over /dev/serial0. Power efficiency is a key consideration for UART in battery-operated embedded devices, where features like sleep modes and dynamic configuration reduce energy consumption during idle periods. Many microcontrollers support low-power sleep states with UART wake-on-break functionality, where a prolonged low signal (break) on the RX pin triggers an interrupt to exit sleep without constant polling; for instance, PIC devices enable this via the WAKE bit in UxMODE, detecting activity while the core consumes minimal current (e.g., <1 µA in sleep). Variable baud rates further optimize power by lowering the clock divisor for slower rates during low-activity phases, conserving energy in intermittent communication scenarios like remote sensors. In ESP32, deep sleep modes integrate UART-related GPIO wake-ups, allowing the device to resume from ultra-low power states (around 5 µA) upon serial input, balancing responsiveness and battery life in IoT applications.

Industrial and Emerging Uses

In industrial automation, UART facilitates communication in programmable logic controllers (PLCs) and supervisory control and data acquisition (SCADA) systems, often through RS-485 networks that enable multi-drop configurations for reliable data exchange over distances up to 1,200 meters. These networks leverage UART's asynchronous serial protocol to support protocols like Modbus RTU, allowing PLCs to monitor and control processes in manufacturing environments. For harsh factory conditions, vibration-resistant UART implementations, such as those integrated into embedded displays and radios, ensure operational integrity amid mechanical stresses. In the automotive sector, UART underpins the Local Interconnect Network () bus, a low-cost operating at speeds from 1.2 kbps to 20 kbps for non-critical body electronics like window controls and lighting systems. 's single-wire architecture relies on standard UART hardware in microcontrollers to handle master-slave communication, reducing wiring complexity in vehicles. As of October 2025, advancements include the PI7C9X762Q, an automotive-compliant /SPI-to-dual-channel UART bridge from , supporting data rates up to 33 Mbps for applications in architectures, smart cockpits, advanced driver-assistance systems (ADAS), and , with low-power operation from -40°C to +105°C. Additionally, UART serves as the interface for On-Board Diagnostics II (OBD-II) systems, enabling diagnostic tools to access engine and emission data via serial connections to embedded controllers. UART plays a key role in Internet of Things (IoT) and wireless applications as a bridge between legacy sensors and modern connectivity modules, such as or transceivers controlled via AT commands. For instance, the module uses UART to receive data from microcontrollers and transmit it over networks, enabling cost-effective IoT deployments in smart home devices. In gateways, UART converts inputs from end devices to the mesh protocol, supporting low-power sensor networks for . Emerging uses of UART extend to drones, where it handles telemetry data transmission from flight controllers to ground stations, conveying real-time metrics like GPS position and battery voltage over serial links. In medical devices, UART interfaces ECG monitors with microprocessors for and forwarding, as seen in portable systems that serialize analog-to-digital converted heart signals for or transmission. For space applications, radiation-hardened UARTs in CubeSats provide robust in onboard computers, withstanding total ionizing doses up to 50 krad while interfacing sensors in low-Earth orbit missions. As of 2025, UART integration with networks supports remote sensors by serving as the interface in modules like devices, enabling low-latency from industrial edge nodes over cellular links. In AIoT ecosystems, encrypted UART protocols enhance security for AI-driven analytics, employing and accelerators to protect flows between sensors and edge processors against interception. These advancements align with broader trends toward secure, hybrid connectivity in AIoT, where UART acts as a foundational layer for resilient device-to-cloud communication.

Emulation and Alternatives

Software-Based Emulation

Software-based emulation of a Universal Asynchronous Receiver-Transmitter (UART) involves implementing protocols entirely in software, typically by manipulating (GPIO) pins on a or host system, without relying on dedicated peripherals. This technique, known as bit-banging, requires the to generate and sample data bits at precise intervals to mimic the asynchronous serial timing of a standard UART. The (CPU) toggles the transmit pin high or low for each bit duration and monitors the receive pin for incoming transitions, ensuring through software loops, delays, or hardware timers. In bit-banging implementations, algorithms often employ software shift registers to assemble or disassemble bytes from individual bits. For transmission, the CPU shifts out the least significant bit first after a start bit, followed by data bits, (if used), and stop bits, with timing controlled by calibrated delays or to maintain rate accuracy. Reception typically involves detecting a falling edge on the receive line to initiate sampling, then shifting in bits at the bit period intervals, often using interrupt-driven methods for efficiency to avoid blocking the main program loop. Interrupt-driven approaches leverage peripherals to trigger bit sampling, reducing CPU overhead compared to polling-based loops, though they still demand precise interrupt handling to tolerate clock variations. Libraries and code examples facilitate software UART development on microcontrollers. For instance, Microchip's application note AN2290 provides C code for a bit-banged enhanced UART on 8-bit , supporting baud rates up to 38.4 kbps using timer interrupts for timing. On STM8S and STM8A devices, ' AN2781 offers routines to emulate full UART functionality, including framing error detection and baud rates up to 57.6 kbps with a 24 MHz clock . For host-side applications, Python's pyserial abstracts serial port access but can interface with bit-banged UARTs on platforms like , where GPIO libraries such as pigpio enable software emulation at rates below 9600 bps. These implementations are typically limited to lower baud rates due to the finite instruction cycles per bit required for accurate timing. The primary advantages of software-based UART emulation include flexibility in pin selection and protocol customization, allowing use on devices lacking hardware UARTs, such as low-cost microcontrollers like the ATtiny series. However, it is CPU-intensive, as the processor must dedicate cycles to timing and , potentially reducing system performance for other tasks, and it imposes speed limitations—often below 9600 bps reliably—due to instruction execution times and latency. Jitter in bit timing can also lead to communication errors if not calibrated for the specific hardware clock and voltage conditions. Common use cases encompass prototyping on microcontrollers without built-in UART peripherals, enabling quick development and testing of serial interfaces during early hardware stages. It also supports legacy protocol integration in modern chips that prioritize other peripherals, such as adding a secondary UART channel when hardware resources are exhausted, particularly in resource-constrained embedded systems.

Hardware Emulation Techniques

Hardware emulation techniques for UART involve implementing the protocol in reconfigurable hardware, such as field-programmable gate arrays (FPGAs), to replicate the behavior of dedicated UART integrated circuits without relying on proprietary chips. This approach allows for customizable baud rates, error handling, and integration into larger systems, often using hardware description languages (HDLs) like or to describe the transmitter, receiver, and control logic at the (). A core technique is the use of finite state machines (FSMs) to manage the transmission and reception processes. For the transmitter, an FSM sequences data loading into a parallel-to-serial , generates start and stop bits, and handles optional bits, synchronized by a baud rate clock derived from a counter-based divider on the system clock. The receiver employs an asynchronous oversampling method, typically sampling the input 16 times per bit period to detect edges and recover data, mitigating timing variations in asynchronous communication. These FSMs ensure compliance with UART standards like , while FPGA resources like lookup tables (LUTs) and flip-flops implement the logic efficiently. Advanced variants incorporate microprogrammed controllers for enhanced flexibility, where a control store (implemented as FPGA memory) holds microinstructions that direct data flow and protocol handling, reducing hardwired complexity for multi-channel or high-speed applications. A basic single-channel UART uses few FPGA resources, for example 17-21 slices on a Spartan-3E FPGA, enabling real-time emulation for baud rates up to 115200 . To verify emulation fidelity, techniques include co-simulation with tools like for behavioral matching against reference UART models, followed by on-board testing with configurations or external serial devices. This hardware-in-the-loop approach confirms bit error rates below 10^{-6} in noisy environments, making it suitable for prototyping in systems. Power optimization methods, such as on idle states, further reduce dynamic consumption to under 50 mW on mid-range FPGAs.

References

  1. [1]
    UART - Analog Devices
    Universal Asynchronous Receiver-Transmitter: An IC that converts parallel data to serial, for transmission; and converts received serial data to parallel data.
  2. [2]
    Analysis of UART Communication Protocol - IEEE Xplore
    Universal Asynchronous Receiver Transmitter (UART) communication protocol is developed for transmitting inputs between computer hardware devices.
  3. [3]
    Universal Asynchronous Receiver and Transmitter (UART) Peripherals
    UART uses two wires for full duplex asynchronous communication between devices. Its simple implementation makes it useful for debugging projects in development.
  4. [4]
    Chip Hall of Fame: Western Digital WD1402A UART - IEEE Spectrum
    Jun 30, 2017 · The UART was invented because of Bell's own need to connect a Teletype to a PDP-1, a task that required converting parallel signals into serial signals.
  5. [5]
    [PDF] Universal Asynchronous Receiver/Transmitter (UART)
    Nov 1, 2010 · 1.1 Purpose of the Peripheral. The Universal Asynchronous Receiver/Transmitter (UART) peripheral is based on the.
  6. [6]
    SCDT007 Product overview | TI.com
    ... (Universal Asynchronous Receiver-Transmitter) protocol is a commonly used standard for data transmission. UART popularity stems from the simplicity, low cost ...
  7. [7]
    Getting started with UART - stm32mcu - ST wiki
    The universal synchronous/asynchronous receiver transmitter (USART/UART) offers a flexible means of full-duplex data exchange with external equipment.
  8. [8]
    UART: A Hardware Communication Protocol Understanding ...
    UART, or universal asynchronous receiver-transmitter, is one of the most used device-to-device communication protocols. This article shows how to use UART as a ...
  9. [9]
    [PDF] Section 17. UART - Microchip Technology
    The UART is a full-duplex, asynchronous communication channel that communicates with peripheral devices and personal computers, using protocols, such as RS-232 ...
  10. [10]
    [PDF] dsPIC33/PIC24 Family Reference Manual, UART
    Aug 20, 2013 · The UART is a full-duplex, asynchronous communication channel that communicates with peripheral devices and personal computers, using protocols ...
  11. [11]
    Understanding UART | Rohde & Schwarz
    UART frames contain start and stop bits, data bits, and an optional parity bit, which will be explained below.What Is Uart? · Timing And Synchronization... · Uart Frame Format<|control11|><|separator|>
  12. [12]
    [PDF] Technical Note TN_111 What is a UART? - FTDI
    Aug 7, 2009 · Parity has many settings, NONE, EVEN, ODD, MARK and SPACE. 2.2.4 Number of Stop Bits. The number of stop bits usually varies between 1, 1.5 and ...
  13. [13]
    Baud Rate - an overview | ScienceDirect Topics
    2. Typical baud rates in serial communication include 300, 1200, 2400, 9600, 14400, 19200, 38400, 57600, and 115200, with 9600 and 115200 being among the most ...
  14. [14]
    MSP430F6736A: Baud Rate of 1Mbps for UART@ XIN is 32Khz
    May 30, 2023 · Yes, the max clock on XIN is 32.768 kHz. However, the maximum UART baud rate on this device is 5 Mbaud, which should be more than enough for ...AM4376: UART with 1Mbps - Processors forum - TI E2EMSP430F5329: Using UART at 1M baud rate - TI E2EMore results from e2e.ti.comMissing: modern variants
  15. [15]
    UART / Universal Asynchronous Receiver-Transmitter - Hilscher
    UART supports full-duplex communication, meaning it can transmit and receive data simultaneously. This is achieved using separate lines for transmission (TX) ...Missing: characteristics parameters
  16. [16]
    UART vs SPI: A Comprehensive Comparison for Embedded Systems
    Apr 26, 2023 · Low pin count: Only two wires (TX and RX) are required for full-duplex communication. Standardization: UART is widely supported across ...
  17. [17]
    UART 101: the blueprint of Serial Communications - PLAY Embedded
    Feb 11, 2024 · One of the defining characteristics of the UART protocol is its ability to transmit data without a dedicated clock line. This feature sets it ...Missing: parameters | Show results with:parameters
  18. [18]
    [PDF] UART for Kinetis MCUs | Training - PDF
    The UART transmitter can accommodate either 8-, 9-, or 10-bit data characters depending on M, PE and M10 bits. Hardware also supports parity, odd or even, and.
  19. [19]
    Serial and UART Tutorial | FreeBSD Documentation Portal
    The Start Bit is used to alert the receiver that a word of data is about to be sent, and to force the clock in the receiver into synchronization with the clock ...Missing: structure composition
  20. [20]
    Serial Communication - SparkFun Learn
    The synchronization bits are two or three special bits transferred with each chunk of data. They are the start bit and the stop bit(s). True to their name, ...Missing: structure | Show results with:structure<|control11|><|separator|>
  21. [21]
    Basics of UART Communication - Circuit Basics
    But if the parity bit is a 0, and the total is odd; or the parity bit is a 1, and the total is even, the UART knows that bits in the data frame have changed.
  22. [22]
    [PDF] USCI UART Module (Chapter Excerpt From MSP430x5xx Family ...
    The USCI module automatically detects framing errors, parity errors, overrun errors, and break conditions when receiving characters. The bits UCFE, UCPE, UCOE, ...
  23. [23]
    [PDF] Hello, and welcome to this presentation of the STM32
    The USART receiver implements different user-configurable oversampling techniques for data recovery by discriminating between valid incoming data and noise.
  24. [24]
    [PDF] TMS320C6452 Universal Asynchronous Receiver/Transmitter (UART
    Mode Definition Register (MDR) ... This document describes the universal asynchronous receiver/transmitter (UART) in the TMS320C6452.
  25. [25]
    [PDF] AN2883: Serial Communication Interface as UART on HCS12 MCUs
    The SCI transmitter and receiver operate independently, although they use the same baud rate generator. The CPU monitors the status of the SCI, writes the ...<|control11|><|separator|>
  26. [26]
    [PDF] SCC2691 Universal asynchronous receiver/transmitter (UART)
    Aug 4, 2006 · The SCC2691 is a single-chip, full-duplex UART with a quadruple buffered receiver, programmable data format, and selectable baud rates.
  27. [27]
    [PDF] PC16550D Universal Asynchronous Receiver/Transmitter with FIFOs²
    The UART is fabricated using National Semiconductor's ad- vanced M2CMOS process. *Can also be reset to 16450 Mode under software control. ²Note: This part is ...
  28. [28]
    [PDF] Core16550 User Guide - Microchip Technology
    During transmission, data is written in parallel into the UART's transmit First-In, First-Out (FIFO) buffer. The data is then serialized for output. When ...
  29. [29]
  30. [30]
    46.5.2.2 Start Detection and Data Sampling - Microchip Online docs
    46.5.2.7 Receiver Digital Filter · 46.5.3 Transmitter · 46.5.4 DMA Support ... The UART receiver detects the start of a received character by sampling the ...
  31. [31]
    Chapter 8: Serial Communication - University of Texas at Austin
    The receive shift register is 10 bits wide, but the FIFO is 12 bits, 8 bits of data and 4 error flags. Again the receive shift register and receive FIFO are ...
  32. [32]
    [PDF] TMS320DM335 Universal Asynchronous Receiver/Transmitter (UART
    Jul 2, 2008 · ... receiver shift register (RSR) and a receiver buffer register (RBR). When UART is in the FIFO mode, RBR is a 16-byte FIFO. The receiver ...
  33. [33]
    PC16552D RECEIVER SAMPLING timing. - Interface forum - TI E2E
    The UART receiver has an internal sampling clock that is 16X the data rate. The sampling clocks allow data to be sampled at the 6/16 to 7/16 point of each bit.”
  34. [34]
    [PDF] Section 21. UART - Microchip Technology
    The Universal Asynchronous Receiver Transmitter (UART) module is one of the serial I/O modules available in the PIC32 family of devices.
  35. [35]
    [PDF] XR16L2552 - MaxLinear
    The Baud Rate Generator divides this 16X clock by any divisor from 1 to 216 -1. The rate table is configured via the DLL and DLM internal register functions.
  36. [36]
    Determining Clock Accuracy Requirements for UART Communications
    Aug 7, 2003 · This application note discusses the timing requirements for the commonly used serial asynchronous communications protocol implemented in UARTs.<|separator|>
  37. [37]
    UART Baud Rate: How Accurate Does It Need to Be?
    Jan 25, 2017 · This article will help you to determine the maximum acceptable difference between the baud rates of a UART transmitter and receiver.
  38. [38]
    UART Receiver Synchronization: Investigating the Maximum ...
    Improvements: Improved expressions may be derived by analyzing the effects of clock jitter, rise and fall times of the signals. Keywords: Sampling, Serial ...
  39. [39]
    27.3.2.2.1 The Fractional Baud Rate Generator
    The baud rate (f BAUD) is generated by dividing the peripheral clock (f CLK_PER) by a division factor decided by the BAUD register. The fractional Baud Rate ...
  40. [40]
    12.2.4.1.1 Fractional Baud Rate Generation–Asynchronous Mode
    Fractional baud rate generation modulates the integer baud rate with the integer baud rate + 1/16 th of a Tbit time (bit transmit time) to yield a time ...
  41. [41]
    [PDF] A Low Power UART Design Based on Asynchronous Techniques
    The sampling and shifting at the shift register occurs at the middle of the ... UART Receiver Block. Transmitter LC block function :: lr↑ → rr↑ & la ...<|separator|>
  42. [42]
    IWRL6432: How to wake up LPDS/Idle Mode by uart? - Sensors forum
    Deep sleep mode is the lowest power mode the device can enter, and it does so by powering down (clock-gating) IP blocks and peripherals, including the UART ...<|control11|><|separator|>
  43. [43]
    Gordon Bell, 1934-2024: Grandmaster of Computer Architecture ...
    Jun 17, 2024 · The UART became the fundamental building block used for serial communications over the next several decades. DEC made between 40 and 50 PDP-1 ...
  44. [44]
    EIA RS 232 Standard - Electronics Notes
    The EIA RS-232 standard, created in 1962, is a successful serial data transmission standard defining electrical characteristics for data transfer between DTE ...
  45. [45]
    Gordon Bell | History of Computer Communications
    For the next six years (1960-1966), Bell made major contributions to the PDP-1, including designing the first UART chip. ... Bell next became one of the founders ...
  46. [46]
    Notes on the History of the DEC PDP-8 - University of Iowa
    These historical notes consist of E-mail from various people who played parts in the development of the PDP-8 family or who were early users.
  47. [47]
    UART: Universal Asynchronous Receiver/Transmitter - GitHub
    Aug 13, 2017 · Western Digital developed this into the first widely available single-chip UART, the WD1402A, around 1971. ... Intel called their 8251 device a “ ...Missing: date | Show results with:date
  48. [48]
    DL11 asynchronous serial line interface - Computer History Wiki
    Sep 27, 2024 · The DL11 asynchronous serial line interface card (M7800) was a UNIBUS peripheral for the PDP-11 series of computers which provided a single asynchronous serial ...Missing: Unix | Show results with:Unix
  49. [49]
    New IC Caps Two Decades of UART Development - Analog Devices
    The new MAX3100 UART offers lower cost, higher speed (to 230kbaud), lower power, lower voltage, IrDA timing, FIFO buffer, and SPI for communications.
  50. [50]
    Serial UART, an in depth tutorial - Lammert Bies
    Therefore, the divisor is stored in two separate bytes, the divisor latch registers DLL and DLM which contain the least, and most significant byte. For error ...
  51. [51]
    [PDF] AM387x Sitara™ARM® Processors datasheet (Rev. D)
    Jan 5, 2016 · ... higher core speeds. Programmability is provided by an ARM Cortex-A8 RISC CPU with Neon extension. The ARM processor lets developers keep ...
  52. [52]
    IrDA SIR operation - Arm Developer
    The IrDA SIR Endec provides functionality which converts between an asynchronous PrimeCell UART data stream and half-duplex serial SIR interface.
  53. [53]
    [PDF] Interface Circuits for TIA/EIA-232-F (Rev. A) - Texas Instruments
    This integrates two serial ports with. FIFO buffers together with a PC parallel port. TIA/EIA-232-F Industry Standard for Data Transmission. The EIA introduced ...
  54. [54]
    5.1 USB CDC Virtual COM Port - Microchip Online docs
    Provides a bridge between the target UART and the USB interface, which provides a CDC Virtual “COM” on USB Host which is a read/write access to a true UART ...
  55. [55]
    [PDF] USB CDC Class as Virtual Serial Port - XMOS
    This application note shows how to create a USB device compliant to the standard USB Communications. Device Class (CDC) on an XMOS multicore microcontroller ...Missing: influence | Show results with:influence
  56. [56]
    Low-Power I2C/SPI-Bus-to-Dual-Channel UART Bridge from Diodes ...
    Oct 8, 2025 · Diodes Incorporated announces the PI7C9X762Q, a high-performance automotive-compliant* I2C/SPI-bus-to-dual-channel UART bridge.Missing: integration | Show results with:integration
  57. [57]
    Power Real-Time Edge Devices with 5G-Enabled Smart Modules
    Jul 17, 2025 · Smart modules improve IoT design with fast, local data use at the edge. They replace complex builds and enhance connectivity with 5G or LTE.Missing: 2020s | Show results with:2020s<|separator|>
  58. [58]
    AN-960: RS-485/RS-422 Circuit Implementation Guide
    Differential transmission increases noise immunity and decreases noise emissions. Multiple drivers and receivers can be connected on the same bus. Wide ...
  59. [59]
    [PDF] uart-8250a.pdf
    The UART-8250A is a Universal Asynchronous Receiver/Transmitter, functioning as a serial data input/output interface, converting between serial and parallel ...
  60. [60]
  61. [61]
    [PDF] IBM PC Technical Reference - Bitsavers.org
    ... 8250 Accessable Registers .................. 2-134. INS 8250 Line Control ... port is provided. The IBM Monochrome Display is a high resolution green ...
  62. [62]
    [PDF] The NS16550A: UART Design and Applications Considerations
    Transmission of a block of 16 bytes occurs when the Tx. FIFO of the NS16550A is empty, the Tx interrupt is enabled and the receiver activates its clear to send ...
  63. [63]
    [PDF] A Comparison of the INS8250, NS16450 and NS16550 ... - UMBC
    The INS8250A and NS16450 have level sensi- tive interrupts as opposed to edge-triggered interrupts. This requires a change in the UART driver software or.Missing: Intel | Show results with:Intel
  64. [64]
    [PDF] MC6850 (1.0 MHz) MC68A50 (1.5 MHz) MC68B50 (2.0 MHz)
    For peripheral or modem operation, three control lines are provided. These lines allow the ACIA to interface directly with the MC6860L. 0-600 bps digital modem.
  65. [65]
    [PDF] Z8440 ZILOG - Silicon Ark
    Page 1. PS018301-0602. Page 2. PS018301-0602. Page 3. PS018301-0602. Page 4. PS018301-0602. Page 5. PS018301-0602. Page 6. PS018301-0602. Page 7 ...
  66. [66]
    [PDF] The product (or products) mentioned in this data sheet are no longer ...
    Each UART has its own 16C550 compatible set of configuration registers, TX and RX FIFOs of 16 bytes, fully programmable transmit and receive FIFO trigger levels ...
  67. [67]
    [PDF] FT232R USB UART IC Datasheet - FTDI
    The FT232R is a USB to serial UART interface with the following advanced features: •. Single chip USB to asynchronous serial data transfer interface.
  68. [68]
    [PDF] CP2102/9 - Silicon Labs
    Single-Chip USB to UART Data Transfer. - Integrated USB transceiver; no ... “CP2102 USB to UART Bridge Controller” (126 characters maximum). CP2109 ...
  69. [69]
    Arduino and HC-05 Bluetooth Module Complete Tutorial
    The HC-05 module is a Bluetooth SPP (Serial Port Protocol) module, which means it communicates with the Arduino via the Serial Communication. You can get ...Overview · Arduino Bluetooth... · Connecting the Smartphone to...Missing: UART | Show results with:UART
  70. [70]
    [PDF] LIN Protocol Support on UART Modules - Microchip Technology
    The Local Interconnect Network (LIN) protocol is an automotive standard that connects devices within vehicles in a simpler and less expensive manner, when CAN ...
  71. [71]
  72. [72]
    [PDF] THE 2025 EDGE AI TECHNOLOGY REPORT | Ceva's IP
    From next-generation. AI hardware designed for low-power, high-performance edge computing to new breakthroughs enabling generative AI to run on-device, the.Missing: UART | Show results with:UART
  73. [73]
    Live Webinar: Post-Quantum TLS 1.3 Over UART - wolfSSL
    Aug 11, 2025 · Learn how to build an app for the STM32-U5 using TLS 1.3 over UART with a hybrid key exchange combining ECC and post-quantum ML-KEM!Missing: encryption add-
  74. [74]
    Fundamentals of RS-232 Serial Communications - Analog Devices
    Mar 29, 2001 · The UART performs the "overhead" tasks necessary for asynchronous serial communication. Asynchronous communication usually requires, for example ...
  75. [75]
  76. [76]
    [PDF] AN0059.0: UART Flow Control - Silicon Labs
    UART hardware flow control (CTS/RTS) is fully supported by the UART driver. However, UART software flow control (XON/XOFF) is partially supported by the ...
  77. [77]
    The RS232 Standard - CAMI Research
    The EIA232 standard includes a common ground reference on Pin 7, and is frequently joined to Pin 1 and a circular shield that surrounds all 25 cable conductors.What is EIA232? · Likely Problems when Using... · Cable Wiring Examples
  78. [78]
    [PDF] Practical SCADA for Industry - s2.SMU
    • Interface from RTU to PLC (RS-232/RS-485). • Privately owned cable. • Switched telephone line. • Analog or digital data links. • The master sites. • The ...
  79. [79]
    [PDF] Proceeigs of - OSTI
    Aug 31, 2020 · UART/RS-232/RS-485/Modbus. The universal asynchronous receiver transmitter. (UART), which is sometimes referred to as transistor-transistor.
  80. [80]
    Revolutionising HMI with Embedded Smart UART TFT Displays
    Special treatment for ESD, vibration resistance, conformal coating, outdoor application protection, etc. COF Structure, COF is the best choice for customers ...
  81. [81]
    [PDF] LIN Protocol and Physical Layer Requirements - Texas Instruments
    The Local Interconnect Network (LIN), ISO17897, is a multipoint, low-cost and easily-implemented communication bus in automobiles. It works as a sub-bus for the ...
  82. [82]
  83. [83]
    OBD II UART Hookup Guide - SparkFun Learn
    Free delivery over $100 30-day returnsThe OBD-II UART allows you to connect your car to a computer, embedded microcontrollers, or single board computers such as the Raspberry Pi or Beaglebone Black.
  84. [84]
    Understanding UART Protocol: Essential for IoT Communication and ...
    Sep 25, 2025 · Each data packet is framed with a start bit (to mark the beginning of a transmission) and one or more stop bits (indicating the end).Missing: composition | Show results with:composition
  85. [85]
    Introduction of OSOYOO Uart WiFi Shield
    Jul 31, 2020 · The OSOYOO Uart WIFI Shield connects Arduino Board to other remote devices through wifi Internet, a perfect IoT tool for Arduino fans.
  86. [86]
    IoT Application of UART WiFi Bluetooth Combination Module - Skylab
    In this article, SKYLAB will take you to understand the IOT application of the low-power serial port WiFi Bluetooth combination module LCS2028 module.Missing: Zigbee | Show results with:Zigbee
  87. [87]
    UARTs and the Console — Dev documentation - ArduPilot
    UARTs in ArduPilot are used for debug, telemetry, GPS, and more. There are 8 UARTs, and the debug console is directed to a terminal on SITL.
  88. [88]
    Portable ECG Monitoring System Design - IEEE Xplore
    ... UART to WIFI converter and the remote data transmission. The portable ECG monitoring system is of great value, which can be put into use only with a little ...Missing: medical | Show results with:medical
  89. [89]
    Designing a rad-hard CubeSat onboard computer
    The goal is to improve the system reliability by ensuring that the electronics operate in a radiation-filled environment while maintaining a modest budget; ...
  90. [90]
    5G RedCap IoT Modules - Cavli Wireless
    It also supports the following USB and UART interfaces - UART x4, USB 2.0 x1, PCM 2 x1,I2C 2 x1, SPI 2 x1, I2S x9, Main ANT x1 and GNSS ANT x1. Hubble ...
  91. [91]
    Protecting UART Communication in IoT Devices - ALLPCB
    Oct 1, 2025 · Overview of securing UART communication in embedded systems using RSA key exchange and AES encryption, hardware crypto acceleration, TRNGs, ...Missing: remote | Show results with:remote
  92. [92]
    Securing UART communication interface in embedded IoT devices
    Aug 6, 2021 · This enables developers to introduce security to embedded IoT devices using encryption standards such as AES, DES, TDES, and RSA and ...Missing: AIoT | Show results with:AIoT
  93. [93]
    [PDF] AN2290 - Bit-Banged Enhanced UART for 8-Bit PIC MCUs
    Bit-banging is a technique used to create a serial I/O communications interface in software instead of using a dedicated hardware peripheral. Data transmission ...
  94. [94]
    [PDF] AN2781 Application note - STMicroelectronics
    Sep 12, 2008 · This application note describes how to emulate the UART behavior and functionality using routines in STM8S microcontrollers.
  95. [95]
    Bit-Banged Async Serial Output And Disciplined Engineering
    Aug 3, 2023 · This uses a technique known as bit-banging, where you toggle a line via software to implement the behavior that's normally built into a hardware ...
  96. [96]
    pySerial 3.4 documentation
    This module encapsulates the access for the serial port. It provides backends for Python running on Windows, OSX, Linux, and BSD (possibly any POSIX compliant ...
  97. [97]
    Bit Banging - The Ganssle Group
    A "bit banger" software UART won't automatically assemble characters for you while the code is off doing something else; if the code isn't listening when a ...<|separator|>
  98. [98]
    Synthesis and Implementation of UART Using VHDL Codes
    This paper presents the hardware implementation of a high speed and efficient UART using FPGA. The UART consists of three main components namely transmitter ...Missing: emulation techniques<|control11|><|separator|>
  99. [99]
    (PDF) Design and FPGA Implementation of UART Using ...
    This paper presents an implementation of Universal Asynchronous Receiver-Transmitter (UART) controller based on Microprogrammed Controller on Field ...
  100. [100]
    UART Serial Port Module – Nandland
    Sep 28, 2023 · The figure below shows how the UART receiver works inside of the FPGA. First a falling edge is detected on the serial data line. This represents ...