Embedded – UART-Based Communication Protocols

The following is an introduction to common communication protocols based on the UART bus:

1. Modbus Protocol (RTU Mode)

Introduction:Modbus is a widely used master-slave communication protocol in industrial control, divided into RTU (Remote Terminal Unit) and ASCII modes, with RTU mode being the most commonly used version of UART.

Features:

Binary Transmission:Data is packed in binary form, providing high transmission efficiency (compared to ASCII mode).

Frame Structure:Includes slave address, function code, data area, and CRC checksum.

Checksum Method:Uses CRC-16 checksum to ensure data integrity.

Application Scenarios:Communication between industrial devices (such as PLC, sensors, and frequency converters).

Example

Frame Format:[Slave Address][Function Code][Data Area][CRC Checksum]

For example:01 03 00 00 00 02 C4 0B (Read data from slave 1 for registers 0-1)

2. Modbus Protocol (ASCII Mode)

Introduction:Another mode of Modbus, where data is transmitted in ASCII character form.

Features:

Text Transmission:High readability, but lower transmission efficiency (each byte needs to be converted to two ASCII characters).

Checksum Method:Uses LRC (Longitudinal Redundancy Check).

Application Scenarios:Early Modbus devices or scenarios requiring direct data visibility.

Example

Frame Format:[:][Slave Address][Function Code][Data Area][LRC Checksum][CR][LF]

For example::010300000002840A

3. UART Custom Protocol

Introduction:A dedicated protocol designed by developers based on requirements, commonly found in embedded systems or IoT devices.

Features:

High Flexibility:Customizable frame header, data length, and checksum method.

Typical Structure:

[Frame Header][Device Address][Data Length][Data Area][Checksum][Frame Tail]

Checksum Method:Checksum by sum, CRC checksum, or XOR checksum.

Application Scenarios:Smart home devices, sensor modules, private communication systems.

Example

Frame Format:0xFF 0x01 0x02 0xAB 0xCD 0x12 0xFF (Custom protocol example)

4. IRDA (Infrared Data Association Protocol)

Introduction:A short-range communication protocol based on infrared transmission, commonly using UART interfaces at the physical layer.

Features:

Half-Duplex:Short communication distance (usually <1 meter), requires direct alignment.

Rate:Supports 9600bps to 4Mbps.

Application Scenarios:Early mobile phones, remote controls, data synchronization devices.

5. Bluetooth SPP (Serial Port Profile)

Introduction:Bluetooth’s serial communication protocol, simulating serial communication through UART.

Features:

Wireless:Realizes wireless extension of UART, with a communication distance of about 10 meters.

Transparent Transmission:User layer can be seen as a normal serial port, without concern for Bluetooth protocol details.

Application Scenarios:Communication between Bluetooth modules and mobile phones, PCs.

6. Other Common Protocols

ZigBee:Low-power wireless communication protocol, with some modules supporting UART transparent transmission.

LoRa:Long-range low-power communication, with some terminal devices interacting with gateways via UART.

Custom Protocols:Such as Huawei’s HiLink, Tuya Smart, and other IoT platform proprietary protocols.

Considerations for Protocol Selection

1.Data Volume and RateModbus RTU is suitable for industrial low-speed scenarios, while custom protocols can optimize high-speed transmission.

2.CompatibilityModbus is an industry standard, suitable for cross-device communication.

3.Security:Proprietary protocols can add encryption mechanisms (such as AES), enhancing security.

4.Development Cost:Using mature protocols can reduce development cycles, while custom protocols require more debugging resources.

Choose the appropriate protocol based on specific needs, or design a dedicated protocol based on UART to balance functionality and efficiency.

Leave a Comment