UART
通用串行异步收发器,实际上就是两条数据线,可以实现全双工发送或接收。
- 串行:相较于并行,更省资源,不容易线之间干扰。
- 异步:收发双方时钟基准/波特率不一致,设备通过波特率来化分每1位数据的时间,所以两个设备波特率要尽量一致,串口通信一般最多只支持8位一帧,就是为了防止位数错位积累误差。
UART帧格式
image.png
- URAT可以理解为一种通信数据的一种格式或协议。
- ps:空闲时数据在高电平
- ps:校验位可有可无
- ps:从低位开始发送
UART控制器
- 真正使用过程中,只需要对其内部相关的寄存器进行设置即可,不需要关注底层具体收发格式等细节。
UART存在问题
- 未定义连接器统一接口
- 一般使用处理器电平(TTL电平),不同处理器一般不能直接相连
- 未定义具体的高低电平值
- 抗干扰能力极差
- 通信距离极短
RS232协议
image.png
- UART只是规定了收发数据的格式,RS232相当于在其基础上又规定了一整套行业标准。
- 定义了统一接口,9针引脚,一般只使用RXD,TXD,GND三条线
- 定义信号,规定逻辑1电平为
-5V ~ -15V
,逻辑0为+5V ~ +15V
提高抗干扰能力和距离15m
电平转换
image.png
RS232问题
- 电平高,易损坏电路芯片,与TTL不兼容,增加电路连接
- 通信速度低
- 易共模干扰
- 距离最多15m
RS485协议
image.png
485较UART和232区别
- 超远距离1500m
- 允许多个接收器,不在是点对点传输,可以建立设备网络
- 使用差分信号
-
半双工
image.png - 两线间的电压差为
+2V ~ +6V
表示逻辑1,差为-2V ~ -6V
表示逻辑0,可以有效减少干扰延长距离。电压小可以与TTL兼容,方便电路连接。