test

第13篇 - 数据通讯的编写的一点体会

通讯部分在我们程序编写中是十分重要的一部分与实际的工作环境有很大的关联,需要考虑设备模块之间的先后顺序以及避免一些干扰的存在。结合最近的一段通讯函数的处理,整理出几点可以提高通讯质量的要点。
1、通讯校验
2、通讯间隔
3、通讯解析
4、通讯包长

1、通讯校验

通讯校验可以包含硬件校验和软件校验,可以保证传递数据的有效性。在RS232/RS485/RS422通讯过程中一般可以有奇偶校验位,在传递的过程中增加一个数据位,来验证本次发送数据中0和1的的奇偶性。
软件校验,在收取到的数据是正确的前提下,对数据本身进行运算,来保证我们的数据是正确的,不会由于发送和接收的过程中受到干扰从而影响了数据的正确性。常规的数据校验一般有和校验和CRC校验。和校验一般通过对整个数据求和的方式,并将所求的放到数据包中进行发送。CRC校验是利用数学公式对数据进行移位运算,一般可以利用查表法来处理。

2、通讯间隔

在通常的实际应用中,一般采用半双工的485进行通讯。因此我们在发送数据的时候要考虑到上一次数据的处理时间。两个包间的数据间隔时间需要考虑几个因素。
a、接收端处理数据的速度
b、本次发送对上次发送的缓冲区覆盖问题
C、开启接收数据的时间
如果接收端需要对收到的数据进行一些比较复杂的运算,则发送端在发送数据时应该保留一定的间隔时间。我们在利用缓冲区这种方式发送数据的时候,需要考虑本次发送数据不会对上次发送数据产生冲突,将缓冲区的数据覆盖的问题。也就是上次的数据发送了一半,就开始了下一次数据的发送,从而将2次的发送都破坏了。
接收数据需要一个合理的时间,需要通讯总线在一定的时间内,没有发送数据时,就要变成接收的状态。
3、通讯解析

在数据通讯过程中对数据解析需要一定的耐心,比如数据错位、高低位、数据长度等细节

4、通讯包长

需要设置合理的通讯包长,在通讯环境比较良好的情况下可以将数据包的长度设置的大一点,可以减少一些通讯时间。在环境比较恶劣的情况下,需要减小数据包的长度,从而能够减小收到干扰的次数。
如果干扰的状况类似正弦,每次都是在波峰和波谷的时候产生干扰。数据包的长度小比长度大更容易存活下来,长度大的时候需要的时间更长。因此从表面上可以设置一个最小的数据包,来保证通讯的畅通来观察机器是否在线,也就是人们常说的心跳包。
但是如果需要收到数据的情况,就需要将每个数据包都缩短,才能够有效的避免干扰的情况。当然如果能够把外部的干扰去掉是最好的。

2016年8月20日

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值