你真的了解串口吗(示波器串口波形分析)

摘要:
串行端口是最常用的外围设备,串行端口基本上是SCM的标准配置。串行通信只需要3条线路,即RX、TX和GND。这个参数最好是8,因为如果这个值是其他值,当您传输ASCII值时,一般解析会有问题。可以是1位、1.5位、2位逻辑1的数据位表示2。串行端口中的波特率(2位速率)uart可以被视为1位速率,即每秒传输的位。

串口是最常用的外设了,串口基本都是单片机的标配。串口通信只需要3条线组成,分别为RX、TX、GND。下面将重点分析串口数据帧组成。

一、    串口通信帧

你真的了解串口吗(示波器串口波形分析)第1张

 串口通信帧数据如此,每帧由空闲位、起始位、数据位、校验位、停止位组成

传输的数据是低位在前高位在后

l  空闲:

串口TX或RX数据线上没有传输任何数据时,则该线处于为空闲状态。空闲是TX和RX都是处于高电平。

l  起始位:

标识数据起始,由一个逻辑0(低电平)的数据位表示。

l  数据位:

可以选择的值有5,6,7,8这四个值,可以传输多个值为0或者1的bit位。这个参数最好为8,因为如果此值为其他的值时当你传输的是ASCII值时一般解析肯定会出问题。理由很简单,一个ASCII字符值为8位,如果一帧的数据位为7,那么还有一位就是不确定的值,这样就会出错。

l  校验位:

保证数据传输的可靠性

数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。就比如传输“A”(01000001)为例。

1、当为奇数校验:”A”字符的8个bit位中有两个1,那么奇偶校验位为1才能满足1的个数为奇数(奇校验)。

2、当为偶数校验:”A”字符的8个bit位中有两个1,那么奇偶校验位为0才能满足1的个数为偶数(偶校验)。

此位还可以去除,即不需要奇偶校验位。

校验位一般都是硬件处理的,如STM32。但是51的校验位是需要字节集手动处理,设置为9位数据位即可收到校验值。

校验可选设置:

无校验 (no parity):数据包不包含校验位

奇校验 (odd parity):如果字符数据位中"1"的数目是偶数,校验位为"1",如果"1"的数目是奇数,校验位应为"0"。保证数据位+校验位的“1”为奇数

偶校验 (even parity):如果字符数据位中"1"的数目是偶数,则校验位应为"0",如果是奇数则为"1"。保证数据位+校验位的“1”为偶数

mark parity:校验位始终为1

space parity:校验位始终为0

l  停止位:

它是一帧数据的结束标志。可以是1bit、1.5bit、2bit个逻辑1的的数据位表示

二、    串口波特率(比特率)

uart中的波特率就可以认为是比特率,即每秒传输的位数(bit)。

一般选波特率都会有9600,19200,115200等选项。

波特率其实意思就是每秒传输这么多个比特位数(bit)。

波特率是串口传输速率的关键作用参数,9600bps就是每秒传输9600bit(位)的意思,也就相当于:1/9600=1.041666666666667e-4秒为每个bit的传输时间

三、    抓波形(8-1-NONE)

串口发送数据

发送的配置:8位数据位、1位停止位、无校验位

发送的数据:0x55 = 0101 0101

你真的了解串口吗(示波器串口波形分析)第2张

波形查看

你真的了解串口吗(示波器串口波形分析)第3张

 0和11为空闲电平(高电平)

1为起始位(一个数据大小的低电平)

 2、3、4、5、6、7、8、9组成8位数据,为10101010,但是数据是低位在前,所以真是的数据位01010101

10为停止位,高电平,可以选择一个1、1.5、2个数据大小的时间

四、    抓波形(8-1-EVEN)

串口发送数据

发送的配置:8位数据位、1位停止位、偶校验(数据+校验的1为偶数)

发送的数据:0x55 = 0101 0101

你真的了解串口吗(示波器串口波形分析)第4张

波形查看

你真的了解串口吗(示波器串口波形分析)第5张

0和12为空闲电平(高电平)

1为起始位(一个数据大小的低电平)

2、3、4、5、6、7、8、9组成8位数据,为10101010,但是数据是低位在前,所以真是的数据位01010101

10为校验位,因为是偶校验计算方式是数据位+校验位的1为偶数即可

11为停止位,高电平,可以选择一个1、1.5、2个数据大小的时间

五、    抓波形(x-1-NONE)

串口发送数据

发送的配置:(8,7,6,5)位数据位、1位停止位、无检验

发送的数据:0x13 = 0001 0011

你真的了解串口吗(示波器串口波形分析)第6张

8位数据位

你真的了解串口吗(示波器串口波形分析)第7张

7位数据位

你真的了解串口吗(示波器串口波形分析)第8张 

6位数据位

你真的了解串口吗(示波器串口波形分析)第9张

5位数据位

你真的了解串口吗(示波器串口波形分析)第10张

5位数据位,使用奇校验(ODD)

你真的了解串口吗(示波器串口波形分析)第11张

分析:

*  数据的长度会根据奇偶校验位选择及数据位选择动态变化。

*  数据位设置长度小于值本身的长度,将会出现截取现象,将自动截取低位,然后发送

* 校验位只校验真实发送的数据


免责声明:文章转载自《你真的了解串口吗(示波器串口波形分析)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇js FileReader 读取文件解决 SSH方式 每次输入密码问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

AOP+自定义注解实现全局参数校验

AOP+自定义注解实现全局参数校验 在开发过程中,用户传递的数据不一定合法,虽然可以通过前端进行一些校验,但是为了确保程序的安全性,保证数据的合法,在后台进行数据校验也是十分必要的。 后台的参数校验 在controller方法中校验: 后台的参数是通过controller方法获取的,所以最简单的参数校验的方法,就是在controller方法中进行参数校验。...

Arduino库函数中文说明

#define 常量名 常量值% 取模运算符String abc/char abc[n]定义字符串pinMode(pin,mode);用于引脚的初始化mode包括 INPUT/OUTPUT/INPUT_PULLUPArduino 数模转换器有 10位精度,可以将0-5V转换为 0-1023,仅用于analogRead(pin) analogWrite(n)...

DTU的通讯工作模式有哪些

       1、网络透传模式        4G DTU在此工作模式下,用户的串口设备,可以通过本设备发送数据到网络上指定的服务器。设备也可以接受来自服务器的数据,并将信息转发至串口设备。用户不需要关注串口数据与网络数据包之间的数据转换过程,只需通过简单的参数设置,即可实现串口设备与网络服务器之间的数据透明通信。本设备支持两路Socket连接,分别为So...

爬虫结果数据完整性校验

数据完整性分为三个方面: 1、域完整性(列)   限制输入数据的类型,及范围,或者格式,如性别字段必须是“男”或者“女”,不允许其他数据插入,成绩字段只能是0-100的整型数据,email字段的内容必须符合邮箱的正则表达式 2、实体完整性(行)   要求表中的所有行都有一个唯一标识符。这个唯一标识符可能是一列,也可能是几列的组合,称为主键。也就是说,表中的...

【串口通信】labview实现串口通信

labview实现串口通信 学习labview有一段时间了,发现了其中功能的强大和编程的简洁性,高效性 现在初步实现了串口的通信,把其中的体会和实现过程写出来,权当抛砖引玉 其中的串口采用的是Rs-232,D型口,共九跟针,其中能用的就是三跟针脚,2,3,5,一个是发送一个是接受,一个是接地,如果做一个串口线延长线的话,只需连接这三根针脚即可,就是2...

md5sum命令详解

   基础命令学习目录首页 原文链接:https://blog.csdn.net/cbbbc/article/details/48563023 前言 在网络传输、设备之间转存、复制大文件等时,可能会出现传输前后数据不一致的情况。这种情况在网络这种相对更不稳定的环境中,容易出现。那么校验文件的完整性,也是势在必行的。 使用说明 md5sum命令用于生成和校...