UART串口通信协议概述

UART是一种通用串行数据总线,用于异步通信。UART能实现双向通信,在嵌入式设计中,常用于主机与辅助设备通信。UART包括RS232、RS449、RS423等接口标准规范和总线标准规范,即UART是异步串行通信口的总称。而RS232等式对应各种异步串行通信口的接口标准和总线标准,它们规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容,实际上是属于通信网络中的物理层(最底层)的概念,与通信协议并没有关系。

UART传输中,相关名词解释如下:

(1)波特率:每秒钟发送的符号数

(2)起始位:先发出一个逻辑0的信号,表示传输数据的开始

(3)数据位:衡量通信中实际数据位的参数。标准的数据位可以是5、7、8位,从最低位开始传输

(4)奇偶校验位:UART发送时,检查发送数据中1的个数,自动在奇偶校验位上添上1或0,用于发送数据的校验

数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。就比如传输“A”(01000001)为例: 
当为奇数校验:”A”字符的8个bit位中有两个1,那么奇偶校验位为1才能满足1的个数为奇数(奇校验);
当为偶数校验:”A”字符的8个bit位中有两个1,那么奇偶校验位为0才能满足1的个数为偶数(偶校验);

(5)停止位:数据结束的标志,可以是1位、1.5位、2位的高电平

(6)空闲位:处于逻辑1的状态,表示当前线路上无数据传输


发送数据过程:空闲状态,线路处于高电平,当收到发送数据指令后,拉低电平一个数据位的时间,接着数据按低位到高位依次发送,数据位发送完毕,接着发送奇偶校验位和停止位,停止位为高电平,一帧数据发送结束;

接收数据过程:空闲状态,线路处于高电平,当检测到线路的下降沿,说明线路有数据传输,按照约定的波特率从低位到高位接收数据,数据接收完毕后接着接收奇偶校验位并比较,看奇偶校验位是否正确,如果正确则通知接收端设备准备接收数据;

由于UART是异步传输,没有同步传输时钟,为了保证传输数据的正确性,UART采用16倍波特率的时钟进行采样,每个数据有16个时钟采样,取中间的采样值,以保证不会滑码或误码。

版权声明:本文为CSDN博主「bleauchat」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/bleauchat/article/details/84979770

推荐阅读