串口数据哥格式(串口通信的工作原理)


串口概念

简单理解,串口就是单片机(MCU)与相关芯片串行通信的接口,所谓串行,就是数据每位按顺序进行传输。

相关概念

空闲位:MCU和外设如果不进行数据传输时,数据线发送空闲位,空闲位为高电平

起始位:MCU和外设如果要传输数据,首先要发送起始位为低电平有效,一个bit位

数据位:MCU和外设数据传输时,有效的数据位数有效位数:5/6/7/8,一般选择8bit

奇偶校验位:用来指示数据传输是否发生异常,有效位数为一位

校验方式有三种:

奇校验(odd)、偶校验(even)、不校验(none)

停止位:MCU和外设如果要停止数据传输,只需发送停止位即可

有效位数为1位或者2位,高电平有效

波特率:MCU和外设数据传输时的速率

工作模式

单工:MCU和外设数据传输时,只能朝一个方向进行

半双工:MCU和外设数据传输时,可以双向,但是同一时刻只能朝一个方向

全双工:MCU和外设数据传输时,可以同时双向进行

此时此刻需要2根数据线!一根用于发送数据TX,一根用于接收数据RX,一般UART采用全双工。

举例说明

MCU(单片机)给BT(蓝牙模块)发送0x95(10010101)数据并且数据校验采用奇校验,发送过程如下:

发送端:

1.MCU将0x95发送给BT

2.MCU计算0x95中1的个数(4个1,4为偶数)

3.由于1的个数是4偶数,而现在采用奇校验所以校验位应该补1(4+1=5奇数)所以MCU最后向BT发送校验位的值为1

接收端:

1.BT首先将0x95接收到

2.BT计算0x95中1的个数为4(偶数)

3.BT再次接收CPU发送的校验位1

4.BT进行匹配,BT发现数据中1的个数为偶数,并且CPU发送的校验位为1所以BT认为CPU发送的数据没有异常(如果采用不校验,CPU和外设无需发送校验位)

上面例子时序图分析

MCU向BlueTooth发送0x95数据为例,UART的工作参数为:

波特率:115200, 数据位8 停止位1 奇校验

0x95对应的二进制10010101,传输从低位开始

串口数据传输过程分析
二维码

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 394062665@qq.com 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论
客服