示波器与串口数据格式

来源:互联网 发布:暗黑三挂机软件 编辑:程序博客网 时间:2024/04/28 05:54
  • 波特率

这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时, 我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为 14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是 GPIB设备的通信。

  • 数据位

这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和 8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本 (标准ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取, 术语“包”指任何通信的情况。

  • 停止位

用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一 个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止 位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

  • 奇偶校验位

在串口通信中一种简单的检错方式。有四种检错方 式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻 辑高位。

例如,采用偶校验的方式,如果数据是011,那么校验位为0,保证逻辑高的位数是偶数个(也就是有偶数个1);如果数据是001,那么校验位为1,这样就保证了1的个数是偶数个。

又如,采用奇校验的方式,如果数据是011,那么校验位为1,这样就有3个逻辑高位;如果数据是001,那么校验位为0,整体保持逻辑高位个数为奇数个。

高位和低位并不真正地检查数据,简单地将校验位置为逻辑高或者逻辑低,这样收设备通过检验一个位的状态,就能够判断是否有噪声干扰了通信或者传输和接收数据是否不同步。

  • 示波器观察数据
          设置(波特率:9600 bit/s 校验:偶校验 数据位:8位 停止位:1位)

一、单个字符传输的格式如下:

(1).有奇偶校验
启始位
1
2
3
4
5
6
7
8
奇偶位
停止位
(2).无奇偶校验
启始位
1
2
3
4
5
6
7
8
停止位
停止位
图1. 位顺序
二、例子1
发送数据0×01,用示波器测试的数据如下:
                                                                         图2. 示波器测试图1
启始位为0 ; 在示波器中,8位数据位从左至右 为 1000 0000  ;校验位为1(偶检验,要确保逻辑高位个数为偶数个,故校验位置1);停止位为1;
实际的数据为:0000 0001 ,即 0×01
三、例子2
连续发送数据0×02,0×11,0×20,用示波器测试数据如下:
                                                                          图3. 示波器测试图2
如图:
第一个数据:
从左到右,第1位启始位为0。
中间蓝色的8位为数据:0100 0000。
实际的数据为:0000 0010,即0×02。
校验位为1(偶校验,确保逻辑高位个数为偶数)。
停止位为1。
第二个数据:
从左到右,第1位启始位为0。
中间蓝色的8位为数据:1000 1000。
实际的数据为:0001 0001,即0×11.
校验位为0(已经有偶数个逻辑高位,故该位置0)。

停止位为1。

第三个数据:
从左到右,第1位启始位为0。
中间蓝色的8位为数据:00000100。
实际的数据为:0010 0000,即0×20.
校验位为0(偶校验,确保逻辑高位个数为偶数)。

停止位为1。

参考资料:

1.《读懂示波器中的串口通讯数据》

2.《解析串口通讯数据格式》


原创粉丝点击