视频链接(1~4)
RS232串口硬件调试01---串口理论及报文格式_哔哩哔哩_bilibili
RS232串口硬件调试02---示波器抓取串口波形_哔哩哔哩_bilibili
RS232串口硬件调试03---串口波形解析_哔哩哔哩_bilibili
RS232串口硬件调试04---串口bug如何解决_哔哩哔哩_bilibili
RS232 串口硬件调试
原理参考第4课:RS232接口硬件电路设计
原理参考第73课:console接口硬件电路设计
1、RS232串口理论
UART(通用异步收发传输)是一种通信协议,而RS232(串行通信接口)是一种物理接口标准。UART是一种用于在计算机和外部设备之间传输数据的协议,而RS232是一种用于在计算机和外部设备之间建立物理连接的标准接口。
UART可以使用RS232接口进行通信,但UART也可以使用其他物理接口标准,如RS485。
2、RS232串口调试一般存在的问题
1、串口没打印
2、串口有打印---乱码 or 打印到一半卡死
3、串口调试软件及串口报文格式
3.1、串口调试软件(Uart Assist)
(数据位)
(校验位)
(停止位)
3.2、串口波特率
串口通信的速率用波特率表示,它表示每秒传输二进制数据的位数,单位是bps(位/秒),常用的波特率有9600、19200、38400、115200等。
uart中的波特率就可以认为是比特率,即每秒传输的位数(bit)。波特率就是串口每秒钟可以发送多少bit。115200也就是说一秒钟可以发送115200bit,每个bit持续的时间
1/115200= 8.68μs
3.3、串口报文格式
UART在发送或接收过程中的一帧数据由3或者4部分组成。
起始位(1bit)+ 数据位(5~8bit)+ 奇偶校验位(1bit)+ 停止位(1~2bit)
异步串行通信数据格式图
3.3.1、起始位
起始位标志着一帧数据的开始,由一个逻辑0(低电平)的数据位表示,起始位1 位;
在发送有效数据前,无需配置,会自动产生1bit 逻辑"0"的低电平的起始位,表示串口数据传输开始,之后开始发送有效数据。
3.3.2、数据位
数据位是一帧数据中的有效数据(数据位可选择为5、6、7、8位,传输多个值为0或者1的bit位。
3.3.3、校验位
校验位用于检验数据在传输过程中是否出错。奇偶校验位,因为在通信过程中易受到外部干扰而导致数据出现偏差,所以在有效数据之后增加了校验位来解决这个问题,校验方式需要配置,校验方式有奇校验、偶校验、0校验和1校验。
无校验(NONE):数据包不包含校验位;
奇校验(ODD):保证数据位+校验位的"1"为奇数;
如果字符数据位中"1"的数目是偶数,校验位为"1"; (举例1010 1010 1)
如果字符数据位中"1"的数目是奇数,校验位为"0"。 (举例1010 1011 0)
偶校验 (EVEN):保证数据位+校验位的"1"为偶数;
如果字符数据位中"1"的数目是偶数,则校验位为"0";(举例1010 1010 0)
如果字符数据位中"1"的数目是奇数,则校验位为"1"。(举例1010 1011 1)
mark parity:校验位始终为1
space parity:校验位始终为0
3.3.4、停止位
停止位是一帧数据结束的标志,可以是1bit、1.5bit或者2bit。
3.3.5、空闲位
串口TX或RX数据线上没有传输任何数据时,则该线处于为空闲状态。
空闲位不算是串口报文内的数据, 它是发送完一组报文后,总线会自动将电平拉高,产生1bit 逻辑"1"的空闲位。空闲是TX和RX都是处于高电平。
3.3.6、LSB & MSB
LSB(Least Significant Bit)意为最低有效位;
MSB(Most Significant Bit)意为最高有效位。
4、示波器测试串口波形操作步骤(★)
S1:示波器设置
- 通道设置:打开通道CH1;
2、耦合设置:直流耦合;
3、水平时基和电压调节(实际测量时还需要手动调节)
横轴:水平时基调到ms级;
1μs 2μs 5μs 10μs 20μs 50μs 100μs 200μs 500μs
1ms 2ms 5 ms 10 ms 20 ms 50 ms 100 ms 200 ms 500 ms
1s 2s 5s 10s 20s 50s 100s 200s
纵轴:1V左右;
10mV 20 mV 50 mV 100 mV 200 mV 500 mV
1V 2V 5V 10V 20V 50V
4、触发设置:下降沿触发;单次触发模式;
S2:探头放测试点处,鳄鱼夹接板子GND
S3:板卡上电
S4:串口调试助手发送数据
S5:读取波形图
5、示波器抓取串口波形实战(8位数据位、1位停止位、无校验位)
5.1、例1:发送数据"0x55"
5.1.1、总图(0 1010 1010 1)
|------|-----|-----------|-----|
| 数据分类 | 起始位 | 数据位 | 停止位 |
| 电平 | 0 | 1010 1010 | 1 |
0101 0101 对应的是55
5.2、例2:发送数据"0x3A"
5.2.1、总图
8.68*9=78.12μs
5.2.2、分解图1 (0 0)
5.2.3、分解图2(0 0101)
5.2.4、分解图3(0 0101 1110)
5.2.5、分解图4(0 0101 1100 1)
|------|-----|-----------|-----|
| 数据分类 | 起始位 | 数据位 | 停止位 |
| 电平 | 0 | 0101 1100 | 1 |
0011 1010 对应的是 3A