2分钟搞懂如何计算uart速率
一、前言
1960年代,DEC(Digital Equipment Corp)公司的Gordon Bell采用大约50个分离元件设计了一个电路板,发明了UART。
时至今日,已经60多年,虽然在个人消费类电子产品中,UART已近乎绝迹;但在工业、科研、国防、航空/航天等领域,UART却无处不在。
很多从事多年嵌入式开发的老铁居然还不会根据波特率计算UART的速率,下面彭老师一分钟带你掌握计算方法。
二、uart帧格式
要证明速率的计算,必须搞清楚uart数据帧格式
其中各位的意义如下:
• 起始位:先发出一个逻辑“0”信号,表示传输字符的开始;
• 数据位:可以是5~8位逻辑“0”或“1”,如ASCII码(7位),扩展BCD码(8位),小端传输;
• 校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验) ;
• 停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平【通常为1位】;
• 空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。
例如我们传输数据0X33(00110011),那么对应的波形就是如下这样,因为是LSB在前,所以8位数据依次是11001100。
由上图可得,
-
假设没有奇偶校验位,停止位为1位
要传输1个字节(8个bit)数据,
那么实际硬件上需要传输10位(1个起始位,8个数据位,1个停止位) -
如果有奇偶校验位,停止位为1位
要传输1个字节(8个bit)数据,
那么实际硬件上需要传输11位(1个起始位,8个数据位,1个奇偶校验位,1个停止位)
三、波特率、比特率
1)波特率
UART速率,也称为波特率,
是指数据在串行通信中每秒钟传输的位数(包含起始位、数据位、校验位、停止位)。
比如:115200波特率意思就是在二进制传输条件下每秒传输115200个比特。
2)比特率
比特率也叫信息传输速率,
单位时间传递的平均信息量或比特数(只包含有效的数据位)。
比特率通常以bps(bits per second)表示。
四、速率计算
比特率与波特率计算公式是:
比如没有奇偶校验位,停止位为1位
波特率115200对应的比特率为
比特率 = (115200*8 )/(1个起始位 + 8个数据位 + 0个奇偶校验位 + 1个停止位)=115200*8/10 = 11520*8 b/s
转换为字节
就是11520 B/s,即每秒传输11520个字节(帧)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
2020-09-02 看了这几个C语言例子,你一定和我一样连说5个卧槽,声音一次比一次大