串口协议简介
UART是一种异步收发器 ,是一种通用串行,异步通信总线,有两条数据线,可以实现全双工发送和接收。
串行通信:计算机与I/O设备之间,同一时刻,只能传输一个bit位的信号。传输数据按顺序依次一bit位接一bit位进行传输,通常数据在一根数据线或一对差分线上传输。
并行通信:计算机与I/O设备之间,通过多条传输线,可以同时传输多个bit位的信号。
波特率:波特率用于描述串口通信时的通信速度,单位是bit,也就是每秒传输bit的数量。
UART帧格式
串口发送数据是先发低位,后发高位
串口的硬件连接如下
TXD:发送数据
RXD:接收数据
RS232协议
由于适用串口通信可能存在一定问题,
- UART只对信号时序进行定义,但没有定义接口的电气特性;
- UART通信一般直接使用处理器的电平,也就是TTL电平,但不同的处理器使用的电平是存在差异的,所以不同处理器使用串口通信时不能直接相连;
- UART没有规定不同期间连接时的连接器标准,不同器件通信连接不方便;
- USART抗干扰差,因为TTL信号抗干扰差,所以通信距离短;
RS232是用于串行通讯的标准,标准规定采用一个标准的连接器,并且对连接器的每个引脚的作用进行规定 ,还对电平进行规定。
- 接口:现在的RS232接口一般只使用RXD,TXD,GND三条线
- 信号:标准规定逻辑1的电平是 -5v到-15v,逻辑0电平是+5v到+15v,传输距离有15m
备注:一般的处理器都是TTL电平,使用串口时一般会在外部添加电平转换电路
RS485协议
RS232存在以下问题,
- 接口电平高,容易损坏接口电路芯片,且需要电平转换电路,成本高
- 通信速度低
- 传输距离短等
RS485的通信网络可以远距离且噪声大的环境下传输有效性信号(1500m),且允许连接多个收发器,具有多站能力,可建立起一个设备网络。
- 信号:差分信号传输,电压差+2v到+6v表示逻辑1,电压差-2v到-6v表示逻辑0
- 接口:接口电平降低,可以和TTL电平兼容,接线方式为总线拓扑结构,由于两条线在发送和接收时都要使用这两条线,所以RS485只能采取半双工的工作方式。
备注:一般的处理器都是TTL电平,使用串口时一般会在外部添加电平转换电路转换成差分信号