UART串口通信协议详解

简介: UART串口通信协议详解

UART:通信异步收发器,串行、异步通信总线,两条数据线(收发),全双工(可以同时接收和发送)。


一、UART帧格式(UART协议)

单片机和PC之间的通信,为保证数据可靠性,双方必须遵守UART协议


空闲位:空闲状态时为高电平(1),代表无数据传输

起始位:低电平,通信开始(从空闲位(1)–>起始位(0)的变化代表通信开始)。

数据位:5-8位数据(先发低位,后发高位)。例如:发送数据为0x55(01010101),则发送的数据为(10101010)

校验位:校验数据的正确性(奇偶校验),数据位计算1的个数若为奇数为奇校验,若为偶数为偶校验。(可有可无)

停止位:1/1.5/2位(高电平),数据结束的标志。

空闲位: 高电平,代表无数据传输


注:串行通信不允许连续发送,每次只能发送一个字节数据(8位),为了防止累积误差的出现。UART是异步通信,收发双方时钟不同步,而其他通信协议如SPI、I2C等是同步通信。


二、UART存在的问题

1、电气接口不统一,UART只是对信号的时序进行了定义,但是没有定义接口的电气特性,没有规定不同器件连接时连接器的标准。不同处理器所使用的电平不一样,所以不同处理器使用UART通信时不能直接连接。

2、抗干扰能力差

因为串口使用的是TTL电平(高低电平用0和1表示)

3、通信距离极短

由于抗干扰能力差所以通信距离短。

相关文章
|
6月前
|
监控 数据处理
基于STC89C52RC单片机的MODBUS RTU协议从机的实现
基于STC89C52RC单片机的MODBUS RTU协议从机的实现
130 0
|
芯片
STM32使用HAL库实现RS485通讯(全双工串口)
STM32使用HAL库实现RS485通讯(全双工串口)
1095 0
|
6月前
|
Linux 芯片
STM32使用HAL库实现modbus的简单通讯
STM32使用HAL库实现modbus的简单通讯
314 0
|
Linux 定位技术 芯片
|
传感器
STM32通过IIC协议控制MPU6050
根据B站UP主“江科大自动化协”的教程总结
121 0
|
存储 芯片 异构计算
|
芯片
IIC协议解析
IIC协议解析
186 0