电子产业一站式赋能平台

PCB联盟网

搜索
查看: 63|回复: 0
收起左侧

2分钟搞懂如何计算uart速率

[复制链接]

282

主题

282

帖子

2477

积分

三级会员

Rank: 3Rank: 3

积分
2477
发表于 2024-8-18 17:32:00 | 显示全部楼层 |阅读模式
点击左上方蓝色“一口Linux”,选择“设为星标
第一时间看干货文章
?【干货】嵌入式驱动工程师学习路线?【干货】Linux嵌入式知识点-思维导图-免费获取?【就业】一个可以写到简历的基于Linux物联网综合项目?【就业】找工作简历模版

5ysim0e0kr564010795255.gif

5ysim0e0kr564010795255.gif

一、前言 1960年代,DEC(Digital Equipment Corp)公司的Gordon Bell采用大约50个分离元件设计了一个电路板,发明了UART。

4plrjqksaa064010795355.png

4plrjqksaa064010795355.png

时至今日,已经60多年,虽然在个人消费类电子产品中,UART已近乎绝迹;但在工业、科研、国防、航空/航天等领域,UART却无处不在。
很多从事多年嵌入式开发的老铁居然还不会根据波特率计算UART的速率,下面彭老师2分钟带你掌握计算方法。
二、uart帧格式 要证明速率的计算,必须搞清楚uart数据帧格式

wk3ageryqlo64010795455.png

wk3ageryqlo64010795455.png


其中各位的意义如下:
?        起始位:先发出一个逻辑“0”信号,表示传输字符的开始;
?        数据位:可以是5~8位逻辑“0”或“1”,如ASCII码(7位),扩展BCD码(8位),小端传输;
?        校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验) ;
?        停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平【通常为1位】;
?        空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。
例如我们传输数据0X33(00110011),那么对应的波形就是如下这样,因为是LSB在前,所以8位数据依次是11001100

crlc2zcdbgi64010795555.png

crlc2zcdbgi64010795555.png


由上图可得,
  • 假设没有奇偶校验位,停止位为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)表示。
    四、速率计算 比特率与波特率计算公式是:

    lo5aaxmy0ha64010795655.png

    lo5aaxmy0ha64010795655.png
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表