目录
一.概念
一种串行异步收发通信协议,一共有两条数据线。TX,RX。
1.1 串并行
串行指的是数据只能从一条线发送给从机,若要发一个8位的数据,需要发送8次。
并行指的是数据能从多条线同时发送给从机,一次性到位。
1.2同步异步
同步异步简言之就是主从设备有无统一的时钟信号,若主从设备时钟信号相同,则为同步,反正则为异步。
二.波特率
波特率是数据传输速度的度量,以每秒比特数bps表示,两个UART必须以大约相同的波特率运行,在位的时序偏离太远之前,发送和接收UART之间的波特率只能相差10%左右。还必须将两个 UART 配置为传输和接收相同的数据包结构。
三、工作原理
串口允许两个时钟频率不同的设备进行通讯,但要求波特率一致。传输数据之前,UART之间要约定数据的传输速率(即每位所占时间,其倒数成为波特率)、数据的帧格式(即配备相同的数据包结构:有多少个数据位、是否使用校验位、是奇校验还是偶校验、有几位停止位)。
发送数据的过程:空闲状态,线路处于高电平;当收到发送指令之后,拉低线路的一个数据位的时间(如图1中起始位的时间),接着数据按照低位到高位依次发送,数据发送完毕之后,接着发送奇偶校验位和停止位(停止位高电平),一帧数据发送完成。
数据接收过程:空闲状态,线路处于高电平;当检测到线路的下降沿时说明线路有数据传输,按照约定的波特率从低位到高位接收数据,数据接收完毕后,接着接收并比较奇偶校验位是否正确,如果正确则通知后续设备接收数据或存入缓冲。
3.1起始位
UART数据传输线在空闲状态下通常保持在高电平,为了开始传输数据,主机的UART将传输线从高电平拉到低电平,保持一个时钟周期。
3.2数据位
实际的需要传输的数据,通常为5-9位,一般情况从低位开始传输。
3.3奇偶校验位
UART发送时,检查发送数据中1的个数,自动在奇偶校验位上添上1或0,用为发送数据的校验,可分为无校验、奇校验、偶校验、0校验、1校验,奇校验时,1的数目为奇数个则校验位为0;偶校验时,1的数目为偶数个则校验为为0;0校验始终为0;1校验始终为1;
3.4停止位
数据的结束标志,可以是1-2位的高电平。
四、特点
线路简单,成本低,只使用两根电线,一根线发送数据,一根接收数据,传输距离远,但传输速度慢;
不需要时钟信号,发送和接收1bit有固定的宽度,也就说只有等于这个时间宽度时才被认为是1bit;
只要双方设置后,可以改变数据包的结构;
双向通信,异步通信,可以实现全双工传输和接收;
补充:单工:只能从一边到另一边的通信,一开始就定义好哪一边是发送端,哪一边是接收端,不可逆,通道是单向的;半双工:允许数据在两个方向上传输数据,但是在某一时刻,只允许数据在一个方向上传输;全双工:允许数据同时在两个方向上传输。