最常见的嵌入式通信协议—— UART | 深入数据帧格式
创作时间:
作者:
@小白创作中心
最常见的嵌入式通信协议—— UART | 深入数据帧格式
引用
CSDN
1.
https://m.blog.csdn.net/joker520522/article/details/142465151
UART
UART(通用异步收发器,Universal Asynchronous Receiver/Transmitter)是一种串行、异步、全双工的通信协议,在嵌入式领域应用非常广泛。
硬件接线
- 通信双方TX、RX交叉连接
- 通信双方共地
数据帧格式
- 启动位:占1个位长,保持逻辑0电平
- 有效数据位:可选5、6、7、8、9个位长(通常是8bit),LSB在前,MSB在后,即最低有效位在前
- 校验位:1位,可选是否有,常见的是奇偶校验位
- 停止位:可选1、1.5、2个位长,保持逻辑1电平,停止位不仅仅表示传输的结束,也是在提供计算机校正时钟同步的机会,适用于停止位的位数越多,不同时钟的容忍程度越大
- 空闲位:总线空闲时默认逻辑1电平
波特率
波特率和比特率的定义
- 比特率:每秒钟传输的比特数,单位 bit/s,bps
- 波特率:每秒钟传输的码元数,单位 symbol/s,Baud
波特率和比特率之间的关系
举一个生活化的例子,如果把通信系统类比到公共交通运输系统,那么比特的概念就是运输的最小单位——人,而码元可以类比为出租车、公交车、火车等等不同的交通运输车辆。波特率可以理解为单位时间内的发车数量,比特率可以理解为单位时间内运输的出行人数。
比特率 = 波特率 * log2M,M 表示每个码元承载的信息量( M 也可以认为是进制数)。
二进制系统中,每个码元都存在2种状态,所以波特率数值上等于比特率。
波特率的作用
在串口通信中,发送端和接收端需要规定好一个相同的波特率,才能保证通信正常。在描述波特率的作用时,我比较喜欢用打羽毛球来进行比喻。发送端是发球的人,接收端是接球的人,而波特率就是两个打球的人挥拍的频率,如果这两个人的节奏一致,羽毛球就可以很长时间不落地。而如果有快有慢,甲的球刚刚发出去,乙的球拍已经挥完放下了,就很容易出现丢球的情况。
8N1 表示的是什么意思?
8N1:8 表示的是数据位8位,N 表示的是无校验位,1 表示的是1位停止位
除了最常见的 8N1 之外,还有:
- 7E1:7个数据位,偶校验位,1个停止位
- 8O2:8个数据位,奇校验位,2个停止位
UART 通信分析实践
UART在波特率为9600、数据帧格式为默认 8-N-1 的情况下:
发送"Hello, World!",请写出数据帧。
- "Hello,World!"一共有12个字节,所以一共需要发送12个UART数据帧。
- 根据ASCII码,将字节转成二进制表示:
字符 | ASCII码 | 二进制 |
|---|---|---|
H | 72 | 01001000 |
e | 101 | 01100101 |
l | 108 | 01101100 |
l | 108 | 01101100 |
o | 111 | 01101111 |
, | 44 | 00101100 |
W | 87 | 01010111 |
o | 111 | 01101111 |
r | 114 | 01110010 |
l | 108 | 01101100 |
d | 100 | 01100100 |
! | 33 | 00100001 |
- 串口通信的数据位通常是 LSB 先发送,这意味着在传输字符的时候,二进制表示的 ASCII 码是从右向左发送的。
字符 | 二进制 | LSB 开始发送 |
|---|---|---|
H | 01001000 | 00010010 |
e | 01100101 | 10100110 |
l | 01101100 | 00110110 |
l | 01101100 | 00110110 |
o | 01101111 | 11110110 |
, | 00101100 | 00110101 |
W | 01010111 | 11101010 |
o | 01101111 | 11110110 |
r | 01110010 | 01000111 |
l | 01101100 | 00110110 |
d | 01100100 | 00100110 |
! | 00100001 | 10000010 |
- 数据格式默认8-N-1,所以开始位1位,结束位1位,无校验位。S 代表起始位,E 代表停止位:
字符 | 发送的数据帧格式 |
|---|---|
H | S 00010010 E |
e | S 10100110 E |
l | S 00110110 E |
l | S 00110110 E |
o | S 11110110 E |
, | S 00110101 E |
W | S 11101010 E |
o | S 11110110 E |
r | S 01000111 E |
l | S 00110110 E |
d | S 00100110 E |
! | S 10000010 E |
每秒传输多少个有效字节?每秒传输多少个有效比特?
- 1 byte = 8 bit,但是 UART 协议中包含开始位和结束位,所以每秒钟传输的字节数 = 9600/10 = 960
- 根据计算出的每秒钟传输的字节数,每秒钟传输的比特数是 960*8 = 7680
Review
- UART属于哪种类型的通信方式?
- 请绘制出UART通信的硬件接线图。
- 波特率和比特率之间的区别是什么?
- UART在波特率为9600、数据帧格式为默认8-N-1的情况下,发送"Hi",请写出数据帧。(“H” 的 ASCII 值为72, “i” 的 ASCII 值 为105)
- UART在波特率为9600、数据帧格式为 7-E-1 的情况下,每秒传输多少个有效字节?每秒传输多少个有效比特?
参考:
- 超简单的一种通信,2分钟搞懂,串口通讯的工作原理!- B站 - 爱上半导体
- 一文搞懂比特率和波特率 - 知乎 - 奔跑的
- 串口通信8N1 - CSDN - modi000
- UART串口协议详解 - 知乎 - 曾小庆
热门推荐
疥疮是什么?初期症状有哪些?疥螨怕什么?
电动两轮车分类与限速方式解析,老司机带你了解汽车知识
《哪吒2》票房破60亿!朋友圈文案大揭秘
暑期防触电指南:保护孩子安全
触电悲剧频发!如何筑牢儿童用电安全防线?
蓝莓花青素含量是种植蓝莓的18倍!揭秘蓝莓的护眼功效
内蒙、北京、新疆各大品牌奶皮子酸奶全面测评:酸度、甜度、浓稠度全解析
厦门眼科中心推荐:实用护眼攻略
职场护眼全攻略:从环境到饮食的科学解决方案
结膜炎:你的眼睛红了多久?
小鸭的健康饮食大揭秘!
中国银行天津分行:用金融创新优化养老金收益
远离金钱困境,从健康生活开始
中国十大灵芝产地:从长白山到武夷山,揭秘灵芝的故乡
灵芝种植技术全解析:从菌种选择到后期处理
建立紧急基金:你的财务安全感爆棚!
双十一理财攻略:避开陷阱,理性消费
平安春运 交警同行 | 聚焦“重点群体”精准宣教 筑牢交通安全“生命线”
智慧交通在城市交通管理中的应用研究分析
五味杂陈:网红食材里的酸甜苦辣咸
舌尖上的中国:掌握五味调和,秒变大厨!
俗语“女婿莫上坟,上坟辱先人”,为何女婿不能上坟?缘由是啥?
孔子礼仪:传统与现代的桥梁
"女婿不上岳父坟":传统习俗在现代的变迁
拼多多双十一再掀社交电商新玩法:10亿红包+无套路补贴引爆消费热情
四种实用的生板栗剥皮方法,轻松享受美味
大沽口炮台:一座见证中国近代史的海防要塞
天津大沽口炮台遗址:历史沧桑中的英雄记忆
天津大沽口炮台:历史与现代的碰撞
非特殊化妆品备案要求