一、 串口
UART(通用异步收发传输)是一种通信协议,而RS232(串行通信接口)是一种物理接口标准。UART 是一种用于在计算机和外部设备之间传输数据的协议,而 RS232是一种用于在计算机和外部设备之间建立物理连接的标准接口。还有RS485,RS422物理接口标准。
二、串口调试
在使用串口进行数据采集的的时候,需要进行串口的参数配置:
一、串口号:连接电脑的端口。
二、波特率:( uart中认为波特率就是比特率)
1.波特率为9600表示的是串口每秒钟可以传输9600bit,每传输1bit所需时间:
1s /9600bit=1000000(us)/9600(bit)=1000/9.6=104.1667us
2.波特率为19200每传输1bit所需时间:
1s/19200bit=1000000(us)/19200(bit)=1000/19.2=52.0833us
3.波特率115200每传输1bit所需时间:
1s/115200bit=1000000(us)/115200(bit)=1000/115.2=8.6806us
三、数据位:决定了通信过程中传输的有效数据位数,数据位通常有5,6,7 ,8 bit。
四、校验位:因为在通信过程中易受到外部干扰而导致数据出现偏差,所以在有效数据之后增加了校验位来解决这个问题。
None无校验:没有校验位
奇校验:要求有效数据和校验位中“1”的个数为奇数
偶校验:要求有效数据和校验位中“1”的个数为偶数
0校验:是校验位始终为0,在收到报文后,检测校验位是否为0
1校验:校验位始终为1,在收到报文后,检测校验位是否为1
五、停止位:停止位是一帧数据结束的标志,可以是1bit,1.5bit,2bit。
报文格式: 起始位(1bit)+ 数据位(5~8bit)+ 奇偶校验位(1bit)+ 停止位(1~1.5bit)
三、波形分析
示波器配置:直流耦合、单次采集、下降沿触发
串口配置:9600、8、even、one
起始位1bit:报文为0
数据位8bit:报文为10010001
校验位1bit:报文为1
结束位1bit:报文为0
一帧数据为:0 10010001 10 数据从地位向高位发送(LSB~MSB) 所以10010001应该倒着读取: 10001001 = 0X89
波特率设置为9600,表示每个格子代表104.1667us 。一共10bit,发一次数据时间为:104.1667us x 10 = 1041.661us.
串口串口配置:9600、8、odd、one
起始位1bit:报文为0
数据位8bit:报文为10010001
校验位1bit:报文为0
结束位1bit:报文为0
一帧数据为:0 10010001 00 数据从地位向高位发送(LSB~MSB) 所以10010001应该倒着读取: 10001001 = 0X89
波特率设置为9600,表示每个格子代表104.1667us 。一共10bit,发一次数据时间为:104.1667us x 10 = 1041.661us.
四、总结
通过抓取串口波形,对串口的报文格式有了进一步了解,串口报文格式为:起始位(1bit)+ 数据位(5~8bit)+ 奇偶校验位(1bit)+ 停止位(1~1.5bit)在发送完成一组报文后,会自动产生1bit 的空闲位,以便进行下一组数据的传输。