简介
uart通讯协议,是一种成本低、容易使用、通信线路简单,可实现两个设备的互相通信的协议;是一种全双工,设备点对点通信的协议。下面从硬件电路、电平标准和串口参数等方面来了解uart通信协议。
硬件电路
硬件电路非常简单,双向传输数据有两根通信线(发送端TX和接收端RX),主机和从机的TX与RX要交叉连接,主机的TX接从机的RX。当只需单向传输数据时,可以只接一根通信线。当两台设备的电平标准不一致时,需要加电平转换芯片。
电平标准
这里的电平标准是指数据1和数据0的表达方式,是传输线中人为规定的电压与数据的对应关系,串口常用的电平标准有以下三种:
- TTL电平:+3.3V或+5V表示1,0V表示0。
- RS232电平:[-3,-15]V表示1,[+3,+15]V表示0,抗静电干扰较强,多用在大型机器上。
- RS485电平:两线压差[+2,+6]V表示1,[-2,-6]V表示0(差分信号),抗干扰能力非常强,通信距离可以达到上千米。
数据帧
参数
波特率:
串口通信的速率,表示每秒可以发送的位数。比如设置波特率为115200,那么表示每秒可以发送115200个bit。
起始位
标志一个数据帧的开始,固定为低电平,空闲时是高电平
数据位
数据帧的有效载荷,1为高电平,0为低电平,低位先行,数据先发送低位。
校验位
用于数据验证,判断传输期间是否有数据受干扰发生改变,根据数据位计算得来。可以设置为奇校验 或偶校验。
设备接收到UART 传输的数据帧后,将统计数值为 1 的位,检查总数是偶数还是奇数。如果校验位设置为偶校验,则数据帧中的1或逻辑高位总计应为偶数。如果校验位设置为奇校验,则数据帧中的1 或逻辑高位总计应为奇数。
当校验位与数据匹配时,UART 认为传输未出错。如果校验位设置为偶校验 ,而数据中1的总和为奇数,或校验位设置为奇校验,而总和为偶数,则UART 认为数据帧中的位已改变。
停止位
用于数据帧间隔,固定为高电平