UART Transceiver Module Design – 01

Welcome FPGA engineers to join the official WeChat technical group.

UART (Universal Asynchronous Receiver-Transmitter) Transceiver Module Design – 01

Introduction to UART Protocol

UART, as a type of asynchronous serial communication protocol, operates by transmitting data one bit at a time. Each bit has the following meanings:

UART Transceiver Module Design - 01

Idle Bit: When there is no data transmission, the voltage level on the transmission line is high, indicating an idle state.

Start Bit: When data transmission begins, a low voltage of 1 bit width is sent to indicate the start of data transmission, known as the start bit.

Data Bits: The actual data to be sent, which can be between 4 to 10 bits wide. Data is sent starting from the lowest bit outward one bit at a time.

Parity Bit (optional): After the data is sent, a parity bit is sent to verify the correctness of the data transmission.

(Even Parity: The number of 1’s plus this bit should be even

Odd Parity: The number of 1’s plus this bit should be odd)

Stop Bit: A high voltage stop bit is sent at the end.

The width of each UART bit is determined by the baud rate, which is the number of data bits sent per second. Common baud rates include 9600, 19200, 115200, etc.

Overview of Design Example

This design code link: https://pan.baidu.com/s/1VJoSPJRSHYMhmx3rs2t4IA

Extraction code: jsak

Copy this content and open the Baidu Netdisk mobile App for easier operation.

The UART characteristics designed in this example are:

(1) No parity check is supported, hence no parity bit.

(2) Data bit width is fixed at 8 bits, not configurable.

(3) Supports configurable input clock and baud rate.

The schematic is as follows, divided into two main modules: one data receiving control module (Receive_Control) and one data sending control module (Send_Control):

UART Transceiver Module Design - 01

Port Description:

UART Transceiver Module Design - 01

Both the receiving control module and the sending control module have a baud rate clock generation module (BaudRate_set), which is used to divide the circuit input clock (clk) to generate a baud rate clock for data receiving and sending control.

UART Transceiver Module Design - 01

As can be seen, the BaudRate_set module has an enable control signal; the module only operates when the enable signal is high. In the sending control module, the corresponding enable is pulled high only when data is being sent; in the receiving control module, the corresponding enable is pulled high only when data is detected as incoming. This is to reduce power consumption.

UART Transceiver Module Design - 01

Welcome communication engineers and FPGA engineers to follow our public account.

UART Transceiver Module Design - 01

FPGA WeChat Technical Group

We welcome everyone to join the national FPGA WeChat technical group, where a group of engineers passionate about technology can discuss and exchange ideas!

UART Transceiver Module Design - 01

Press and hold to join the national FPGA technical group!

FPGA Technical Group Platform Self-Operated: Xilinx Altera ADI TI ST NXP and other brand’s advantageous distribution agents, we welcome everyone to send us your model list for any needs, we will provide you with the most competitive quotes within the shortest time! Prices will be more than 5% lower than your original suppliers! Welcome to inquire – WeChat: 1051197468 or directly send your needs to the group owner.

Official acknowledgments from FPGA Technical Group brands: Xilinx, Intel (Altera), Microsemi (Actel), Lattice, Vantis, Quicklogic, Lucent, etc.

Leave a Comment