一文看懂,用示波器查看串口UART的波形,什么是数据位、起始位、奇偶校验位
先介绍一些概念。
起始位:先发出一个逻辑”0”的信号,表示传输数据的开始。
校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。就比如传输“A”(01000001)为例。 (字符‘A’的二进制是 0100 0001)
- 当为奇数校验:”A”字符的8个bit位中有两个1,那么奇偶校验位为1才能满足1的个数为奇数(奇校验)。
- 当为偶数校验:”A”字符的8个bit位中有两个1,那么奇偶校验位为0才能满足1的个数为偶数(偶校验)。
此位还可以去除,即不需要奇偶校验位。
停止位:它是一帧数据的结束标志。可以是1bit、1.5bit、2bit的空闲电平。可能大家会觉得很奇怪,怎么会有1.5位~没错,确实有的。所以我在生产此uart信号时用两个波形点来表示一个bit。这个可以不必深究。。。
空闲位:没有数据传输时线路上的电平状态。为逻辑1。
传输方向:即数据是从高位(MSB)开始传输还是从低位(LSB)开始传输。比如传输“A”(字符‘A’的二进制是 0100 0001)
如果是MSB那么就是0100 0001(如图-2),如果是LSB那么就是10000010
uart传输数据的顺序就是:刚开始传输一个起始位——传输数据位——校验位(可不需要此位)——停止位。
这样一帧的数据就传输完了。接下来
噢迈嘎: 图片看不了
徐少2020: 原文请移步在此:http://bbs.elecfans.com/jishu_1113146_1_4.html
wv112406: 要找到开始,自己定义通信头啊,保证数据中不会出现,这样就没问题了。读取到通信头就开始析数据
EthanYhunt: 怎么找到0呢
柒月_7: 每一帧数据会有间隔的,找到有规律的高电平间隔就可以了,间隔后第一个低电平即开始位