UART相关知识总结 您所在的位置:网站首页 uart传输数据 UART相关知识总结

UART相关知识总结

2023-11-12 19:50| 来源: 网络整理| 查看: 265

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帧数据的图示。(该图从参考博文中引用) 在这里插入图片描述     图中所发UART数据为0x33 (二进制:0 11001100 1),由于数据是从低位(LSB)开始发送,所以实际上发送的数据为11001100的反序,即00110011 (0x33)。     可以看到数据帧中,0(起始位1bit) 11001100(8bit数据) 1(停止位1bit) 这里省略了奇偶检验位。

(1)空闲位

    空闲位为1,表示逻辑高电平,当UART处于空闲状态时,一直保持高电平,发送数据结束时,最后恢复为高电平,即逻辑电平为1。

(2)起始位

起始位为0,表示逻辑低电平,占用1bit,当状态由空闲(高电平)->起始位(低电平),表示准备开始发送UART数据。这里就涉及到波特率的问题了,若想在9600波特率下表示起始位,则需要维持低电平时间至少104us左右。 在这里插入图片描述

(3)数据位

    数据位一般为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:下文两张奇偶校验图示从上述参考博文引入) 图示从上述参考博文中引入     偶校验:保持除起始位外,数据中1的个数位偶数。同样道理。如发送 0x33 (1100 1100) 。数据位中,1的个数为4,已经是偶数,那么校验位则无需再补充1,填0即可。 图示从上述参考博文引入

(5)停止位

    停止位为逻辑高电平,表示一帧数据已经传输结束。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 实验室设备网 版权所有