UART相关知识总结 | 您所在的位置:网站首页 › uart传输数据 › UART相关知识总结 |
UART/USART相关知识总结
Ⅰ、简介(1)UART的传输速率(2)UART与USART的区别(3)硬件接线注意
Ⅱ、波特率Ⅲ、数据帧(1)空闲位(2)起始位(3)数据位(4)奇偶检验位(5)停止位
Ⅳ、总结
推荐一篇博文,文章对UART协议的解析非常棒!: https://blog.csdn.net/update7/article/details/112852158 Ⅰ、简介 UART ==> 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)UART是一个全双工的通信协议。 (1)UART的传输速率(以下速率描述内容摘自https://blog.csdn.net/ss343fd/article/details/54880037) RS232:传输速率一般不超过20Kbps,速率低,抗干扰能力差,RS-232C能传输的最大距离不超过15m(50英尺)。 RS422:定义了一种平衡通信接口,将传输速率提高到10Mbps,传输距离延长到4000英尺(速率低于100Kbps时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。 RS485:增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。最高传输速率10Mbps,抗干扰能力强,可以传距离1.5km。 平衡双绞线的长度与传输速率成反比,在100Kbps速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般100米长双绞线最大传输速率仅为1Mbps。 (2)UART与USART的区别USART ⇒ USART:(Universal Synchronous/Asynchronous Receiver/Transmitter USART在通信线上,一般有四根管理数据发收的线,分别是TX、RX、CTS、RTS。 USART支持同步模式发收,可以做数据流控。就是通过CTS、RTS两根线进行流控管理。 UART ⇒ 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),仅支持异步发送。 (3)硬件接线注意 UART需要TX与RX相接,才可以进行数据通信。传统的TX、RX、GND接法,两个设备需要共地(GND) Ⅱ、波特率关于UART两个基本的概念:波特率、数据帧需要了解。 波特率:单位为bps,意为 bit per second,即是每秒传送的bit的数量。串口常见的波特率为9600,14400,57600、115200等。 以9600为例,意思为1秒传输了9600bit,那么传输1bit所用的时间为:1 /9600 ≈ 104us。这里计算出来的时间到底有何作用呢,可以理解为特定波特率下,UART的逻辑电平保持的时间长度,比如9600波特率下,发送bit 1,需要维持逻辑高电平104us,发送bit 0,则需要维持低电平104us。下文将会结合时序图进行分析。 Ⅲ、数据帧数据帧:UART的帧数据结构通常为,起始位(1bit)、数据位(5-8bit)、奇偶校验位(1bit 可选)、停止位(1/1.5/2 bit),一般UART不需要奇偶校验,发送8bit数据情况下,UART的一帧数据长度为10bit 这里放一张UART帧数据的图示。(该图从参考博文中引用) 空闲位为1,表示逻辑高电平,当UART处于空闲状态时,一直保持高电平,发送数据结束时,最后恢复为高电平,即逻辑电平为1。 (2)起始位起始位为0,表示逻辑低电平,占用1bit,当状态由空闲(高电平)->起始位(低电平),表示准备开始发送UART数据。这里就涉及到波特率的问题了,若想在9600波特率下表示起始位,则需要维持低电平时间至少104us左右。 数据位一般为5-8bit,最常用的多为7bit、8bit,7bit可以传输一个ASCII码。8bit刚好是1字节数据。 当起始位开始后,逻辑高电平表示bit 1,逻辑低电平表示bit 0,9600波特率下,电平时间同样需要维持至少104us左右。需要注意的是UART发送数据是采用LSB格式,即低位先发出。图中发送0x33,那么对应的数据格式的二进制为 1100 1100. (4)奇偶检验位一般情况,可以不使用奇偶检验。即是加入奇偶校验位,只能判断数据传输出错并丢弃数据帧,但不可以像TCP协议一样触发重传机制。 奇偶检验分为奇校验、偶校验。关于奇偶校验的理解,可以参考文章:https://zhuanlan.zhihu.com/p/29693940 文章中奇偶校验的理解非常易懂: 奇校验:保持除起始位外,数据中1的个数位奇数。如发送数据0x33(1100 1100),1100 1100中1的个数为4,奇校验为了保持1的总数为奇数,校验位需要再补一个1,从而使数据位与校验位1的总个数为5,为奇数。 (PS:下文两张奇偶校验图示从上述参考博文引入) 停止位为逻辑高电平,表示一帧数据已经传输结束。9600波特率下,高电平至少维持104us。停止位有1、1.5、2bit。以这里的理解为高电平保持的时间,即分别是1 x 104us、1.5 x 104us、2 x 104us。 若想连续发送多帧UART数据,则每一帧数据都需要重复上述的过程,直至所有的数据帧发送完毕。 Ⅳ、总结需要了解波特率的定义,bit per second,每秒发送的bit数,通过该概念可以算出电平维持时间,1秒/波特率 传输数据过程,为LSB,低位数据先发。逻辑高电平表示数据bit 1, 逻辑低电平表示数据bit 0. 空闲位,为高电平。 启动位,为低电平, 启动过程相当于从高电平(空闲位)切换至低电平,表示启动。 数据传输位数,5-8bit。 奇偶校验,非必要。 表示需要维持数据位中1的数量,奇数/偶数。 通过校验位来补全1的数量,为奇数或者偶数。 停止位有1、1.5、2bit,一般为1bit。 接线需要TX、RX反接,需要共GND。 数据帧格式 空闲位 + 起始位 + 5-8bit数据位 + 奇偶(可选) + 1/1.5/2bit的停止位 |
CopyRight 2018-2019 实验室设备网 版权所有 |