Communication plays a significant role in transferring information from one end to another end (source to destination). In this digital landscape where most of the day-to-day tasks are completed through portable devices, communicating the data effectively by utilizing conventional resources is a crucial task. Moreover, with the existence of myriad modes of communication devices and embedded platforms in a single architecture, transferring data without any disturbance or noise in the signal is a time-consuming process.
Notably, in a wireless medium such as mobile, telephone, and computers revolving around a microcontroller, enabling security and removing the barrier between transmitter and receiver in terms of latency, granularity, and overhead in real-time is inevitable. To overcome these challenges, numerous researchers have stepped in with a unique data transmission device that empowers users to transfer their data in an efficient manner. In this article, Universal Asynchronous Receiver and transmitter (UART) are discussed along with its features, functionalities, applications, and future scope.
Introduction to UART
The Universal Asynchronous Receiver/Transmitter, acronymed as UART, is an intergrated circuit in a computer or an microcontroller used for serial communication. A microcontroller might have one or two pheripherals of UART integrated into it. A typical UART module is operated on the basis of the logic level of the control signal and setting up a similar baud rate on both transmitter and receiver end. Individual data bits are converted in the form of logic high, low, and stop bits to initiate data transmission. The generic features of UART are as follows,
1). Universal Accepted: The speed, data size, and velocity can be configured easily to ascertain the requirements of the clients and follows the same protocol around the world.
2). Short Distance Transmission: UART is frequently used in short-range transmission. In wired communication, the distance can be configured in terms of baud rate.
Max. Length of Cable (Feet)
The relationship between the transmission distance and speed in UART is proportional to each other. Shorter distance results in a faster data transfer rate. The transmission distance can vary from few inches to meters on the basis of desired speed, noise generated due to external source, and quality of the external device.
3). Low-Cost Protocol: The non-requirement of a clock signal and single wire utilization to transmit data keeps the hardware simple, which in turn makes it cost-efficient compared to other data transfer modules.
Basic Block Diagram of UART
The generic block diagram of UART comprises two components namely transmitter and receiver, as shown in Fig. 1.
In UART, possibilities to exchange data between the transmitter and receiver can be divided into three modes, namely simplex, half-duplex systems and full-duplex system. Whether UART functions as a half-duplex or full duplex systems it depends on the processor in which it integrated. Some microcontrollers support half-duplex and some support full duplex systems. Almost most of the latest microcontrolers support full duplex systems.
Simplex Systems: In this type of communication, the data bits are transmitted only from a single end (i.e., source device).
Half Duplex Systems: Data transmission can be achieved from either direction, but only one user can transmit data at a time. Since the hardware structure shares the same data bus and control buffer, users are allowed to either receive or transmit data at that particular instant.
Full Duplex Systems: Data transmission can happen in either direction, both the devices which are communicating through this system can receive and transmitt data at the same time and they also have individual data buffers for Tx and Rx.
The development of a UART module is simple in nature. It requires only two signal pins, namely Transmission (Txd) and Reciever (Rxd). Serial to parallel converter will be placed at the input transmission end and parallel to serial communication at the output to convert signals to the desired voltage level and enhance the speed during low distance transmission. The detailed description of the architecture is explained in the following stages.
As shown in Fig. 2, the transmitter section is further categorized into three stages namely
1). Transmitter holding register: This block holds the control of outgoing information and from the UART buffer signal before processing to the next step.
2). Transmitter shift register: Once the data is processed from holding register, this block shifts the data by moving bits from left to right or vice versa until the final bit is transmitted or received. It also converts the input strings from parallel to serial data combinations and transfers the data in the form of bit by bit operation.
3). Control Logic: As the name suggests, it controls the data flow between transmitter and receiver, and avoids sending blank/error data during transmission.
Similarly, the receiver block encompasses receive hold register, shift register, and control logic. The functionality is similar to that of the transmitter block, where the collected data is initially processed through a receiver shift register to convert into parallel mode. The receiver holding the converter dispatches the data to the user. Control logic is used to initiate read and write operations.
UART Data Communication Framework
In most of the communication devices such as computers and microcontroller, the data transfer is achieved without the requirement of a clock signal to the receiver-leveraging UART techniques. Prior to data transmission, both the sender and receiver have to accept with the timing parameters by configuring the same baud rate and synchronizing the settings.
UART Serial Interface
Two types of signals, namely Txd and Rxd, are used to complete data transmission. Txd signifies the transmission side, which is the output signal from UART. Rxd represents the receiver end and acts as an input signal for UART. The start bit is used to notify the receiver about transferring a bit of data and forcing the receiver clock to synchronize with transmitter clock frequency. Initially, the transmitter will be at idle state, driving data lines to logic high. Individual data bits are transferred in a sequence with the least significant bit at the higher-order to the most significant bit at a lower order of the data line.
The transmission rate should maintain an equal time sequence. When all the data bits are accepted from the receiver end, it evaluates parity bit and rises end stop bit. During these processes, the signal can result in framing error if there is no stop bit or variations in the timing sequences. In this condition, irrespective of received bits, UART neglect start, stop, and parity signal and awaits to receive the new transmitted data bits. Transmission signal enters idle conditions during the absence of input data set.
In UART, the input data packet is considered as a combination of four basic components namely
1). Start Bit: High to low-level voltage change represents the start of data transmission
2). Input Data: Data stored in the form of bits
3). Parity Bit: It is used to evaluate the fault in received data
4). Stop Bit: Terminates data transfer
Applications of UART Communication
- Achieving communication amongst distant computers around 900 meters.
- Transferring data through PC serial port.
- Baud rate generation for numerous applications that helps to determine the speed of data transmission.
- Microcontroller to implement wireless data communication.
- Bluetooth and GPS modules.
Advantages and Limitations of UART Communication
- Only two communication signals are sufficient to achieve data transmission.
- Non-requirement of clock and timing signals.
- Parity bits to ensure integrated error validation.
Limitations (Disadvantages) of UART Communication
- Limited amount of input data frame.
- Both parties should follow similar data transfer settings.
- The data transfer rate is minimal compared to parallel communication.
- Several masters and slave methodologies are not supported.
Please refer to these links for
In general, UART is a fundamental communication protocol used to transfer short-range data in a simple, cost-effective, and efficient manner. There is also a related protocol that can also communicate synchronously which is known as USART. However, with the evolution of technologies, most of the serial communication channels are redefined and restructured to innovative state-of-art wireless data conveyer strategies that can transfer data with less latency, minimal power consumption, and higher throughput.