基于VB6.0的串行通信中的错误预防方法
1 引言
随着计算机技术特别是单片机技术的发展,通信在诸多领域得到了广泛的应用,技术人员可以通过计算机的串口来获取设备的各种数据,然后利用计算机强大的运算和分析处理功能进行处理,再根据处理的结果发送数据来控制设备。通常通信的型式可以分为两种,即并行通信(parallel communication)和串行通信(serial communication)。就通信速度来看,并行通信一次的传输量为8个位(1个字节),而串行通信一次只传输1个位(也就是一个标准电位状态),很明显,并行通信的传输速度要快得多。但就传输的安全性来说,由于并行通信在传输过程中更容易产生电压衰减和信号间相互串音干扰等问题而使得传输的数据发生 错误,相对而言,串行通信一次只传输处理的数据电压只有一个标准电位,因此不容易把数据丢失。
不论是采用哪种通信方式,在数据的传输过程中,数据都有可能受到干扰而使得原来的数据信号发生扭曲,此时的接收到的数据当然是错误的,为了检测数据在发送过程中发生的错误,发送与接受必须对数据进行进一步的确认工作。最简单的方式就是使用校验码(checksum),其次是使用crc(cyclic redundancy check code,循环冗余校验码)。
2 串行通信
2.1 通信步骤
通常情况下,串行通信过程就是交换字符串的数据过程,而数据的交换必须有一定的格式。通信的双方才能根据一定的数据格式针对所传输的数据进行解析,以工业上最常用的plc为例,计算机与plc进行通信时,任何厂牌的机器均会定义通信协议,所谓的通信协议就是服务器端与客户端的通信语言及定义。每一次计算机与设备的数据交换都会有3个步骤,
(1) 设备要求发送数据时,计算机会发送一组字符串过去
通常该字符串的第一个字符就是前导码,设备根据前导码辨认是否应该读取该字符串、该字符属于哪一个命令集,以及用什么格式去解读该字符串等。前导码不会是一般的字符,通常是一些不可见字符(位于ascii码的前30个)或很少被使用的符号字符,这是因为避免数据字符与前导码一样而发生错误判断。在前导码之后是后站号,通常是以两个字符代表,单纯以rs-232连接的单一设备也许不需要站号的设置,不过如果以rs-485进行网络连接,就需要用站号来辨别命 令是属于哪一个设备。站号之后就是要设备解读的命令或数据。
(2) 当设备收到要求字符串,并经过判断确定后,便会送出计算机所要求的数据
同 样,数据被送出时会在数据之前加上前导码与站号,计算机也以此前导码与站号判别数据来自何处。
相关文章
- 2024-04-09减小一独立压力控制型无级变速器压力波动的研究
- 2024-10-12结合工程力学教学谈如何培养学生创新意识和实践能力
- 2023-08-08微控数显调节仪表应用中的干扰分析与抑制
- 2024-11-20GNU工具开发基于ARM嵌入式系统的方法
- 2022-05-12基于多任务嵌入式应用的MP3实时解码系统设计
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。