uart协议_通俗易懂的UART协议帧格式

推荐阅读:

串口、COM口、UART、TTL、USB、RS-232、RS-485、I2C、SPI、CAN、1-WIRE

看下面这个图,大家已经知道今天的主角是UART,我们通常说的串口,UART包含TTL电平和RS-232电平两种,嵌入式系统里面,单片机的串口一般都是TTL电平。

0472ec7d23c30a2604a24202f0b2fe76.png

今天的内容关于UART的帧格式,比较简单,玩过单片机的小伙伴应该都知道。

UART的英文全称是:Universal Asynchronous Receiver/Transmitter,意为通用异步收发传输器。

UART因为有两根线数据线TX和RX,可以以全双工的形式进行发送和接收数据,同一时刻,两条链路的发送器和接收器可以同时传输数据。

39f1e669eab446430c75c4fee5f32fae.gif

区别于全双工的,还有另一种,是半双工,因为只有一根数据线,所以数据传输是这样。

3fe4d4b18461b0c0c3895f74c673a308.gif

或者是下面这样,同一时刻,只有一条链路在传输数据。

d07a407e4a87de8d444d085f1ca8d32d.gif

除了双工形式,还有一种是半工,只有发送器到接收器这一个链路。

b97b1fc29b810a5135cbe65b1f3d6981.gif

说完了UART的工作模式,下面进入主题——UART帧格式,也可以称之为UART协议,单片机与PC之间的通信,为了保证数据通信的可靠性,双方都必须遵从UART协议。

d3aa46caa6336ffce01cd68dae06fa0d.png

UART数据帧格式

其中各位的含义如下:

  • 起始位:发送1位逻辑0(低电平),开始传输数据。

  • 数据位:可以是5~8位的数据,先发低位,再发高位,一般常见的就是8位(1个字节),其他的如7位的ASCII码。

  • 校验位:奇偶校验,将数据位加上校验位,1的位数为偶数(偶校验),1的位数4为奇数(奇校验)。

  • 停止位:停止位是数据传输结束的标志,可以是1/1.5/2位的逻辑1(高电平)。

  • 空闲位:空闲时数据线为高电平状态,代表无数据传输。

如果我们传输数据0X33(00110011),那么对应的波形就是如下这样,因为是LSB在前,所以8位数据依次是11001100

e49055ddf8f82e870ebf6957ed66e76c.png

发送0X33数据帧格式

如果再发其他数据,再依次循环这个过程即可。

UART是异步传输,以1个字符为传输单位,传输2个字符之间的时间间隔,比如传输0X33后再传输0X35,这两者时间间隔是未知的。

但是同一字符内相邻位间的时间间隔是确定的,比如0X33低两位的1和1之间的时间间隔是确定的,这涉及到UART传输速率的概念——波特率

波特率的单位是bps,全称是bit per second,意为每秒钟传输的bit数量。

波特率9600bps,代表每秒钟传输bit的数量为9600,那么传输1bit数据的时间就是1/9600=104us,波特率115200bps,代表传输1bit数据的时间是8us。

两个串口之间是如何发送和接受数据呢?

首先,UART1以9600波特率发送0X33 ,先在数据线上放1个104us脉宽的低电平(起始位),然后是连续2个104us脉宽的高电平(2bit逻辑1),依次类推。 其次,UART2以9600波特率接收0X33 ,通过数这些数据的脉宽,来确认数据。

为了确保数据传输的正确性,减少误差,一般UART1和UART2之间的波特率差别小于10%,一次最多只能传输1个字节(8bit),也有效减小了累计误差。

今天的文章内容到这里就结束了,希望对你有帮助,我们下一期见。

如果觉得我的文章还不错,帮忙三连支持点赞/在看/转发。 往期精选: 电荷泵负压输出电路,这么简单,我还能不会? 基础知识 | 压敏电阻原理、参数、选型 强烈推荐 | 稳压二极管原理,参数和动态电阻特性 近况,我的博客,我的公众号 关于LDO的内容,看这一篇就够了 Tina-TI——小巧好用又高效的原理图仿真软件 ESD保护器件分类「TVS、压敏电阻、MLCC、ESD抑制器」 手把手教 | 三极管稳压电路仿真分析 不知道大家有没有注意到,我最近有几篇文章的素材,都是来自交流群,为了方便读者之间的交流学习,我建立了自己的技术交流群,有兴趣的可以加下方我的微信,我会拉进群。

6e6b1573e83d3bdd7803c76542267b00.png

—— The End —— d1a39c4ae3c5429637a2170b664ab55d.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值