众所周知,无线通讯时,因周围电磁环境,其通讯信号难免会受到干扰。ZigBee无线网络协议在设计时已经充分
考虑了各种抗干扰手段,这些抗干扰手段也通过了国际IEEE的认可,并颁布了相关标准,但无线通讯信号会受干扰是
一个不争的事实。
今天我们要讨论的主题是无线信号受干扰时如何确保我们的刷卡数据不丢失和不受干扰。使用过无线网络的读者
会有这种感受:从网络内一台电脑复制大型文件到另一台电脑(它们之间通过无线网络连接),其传输速度不是恒定
的,当有信号干扰时,其速度会突然很慢,但干扰信号消失时,其传输速度恢复;但传输的文件不会损坏,这是因为
有通讯协议。
我们的通讯协议将要传输的数据打包成一个一个的数据帧,通讯数据帧包括了帧号、帧头、帧长度、帧数据校验
等部分组成。其通讯步骤如下:
1、电脑首先发出查询指令给该机,该机收到电脑的查询指令后,会将该机当前的数据情况应答给电脑。应答内容包括
:机号、型号、未采集数据天数、微采集数据日期、未采集数据数量、未采集数据将分成的通讯帧数量等。
2、当电脑收到机器的应答帧,并检查完毕校验位后,就已知该机器数据记录情况;然后电脑发出收集数据命令。
3、当机器收到收集数据命令后,会将要传输的数据打包、编号,然后逐个数据帧传输给电脑。
4、电脑在接收到最后一个帧号(因之前已经知道该机器本次传输的帧数量)后,开始逐个校验本次接收的全部数据帧
,然后将校验失败的数据帧丢失,将数据完好的数据帧按编号排序整理。
5、电脑整理完毕后,如果发现所接收的数据帧的编号不完整,如本次共接收100个帧,经校验后10、23、58号帧数据
受干扰,电脑将发“重传指定帧号”命令。
6、机器接收到“重传指定帧号”命令后,将指定的数据帧:10、23、58号帧重新传输给电脑。
7、重复第5、6部直道所有的数据帧全部正确地传输完毕。
8、电脑发出“标记已传输数据”命令,机器在接收到此命令后,自动将刚才已经正确传输给电脑的刷卡记录作上“已
传输”标记。有“已传输”标记的数据下次收集新数据时将不会再次传输给电脑。
从上面的通讯过程我们假设在机器传输100条刷卡数据给电脑时受到了无线信号干扰,导致了其中的10、23、58
号帧被破坏,电脑在校对数据时要求将10、23、58号帧重新传输,如果再次被干扰,电脑还将要求重新传输受干扰的
帧,直到全部准确接收为止。
上述传输过程与我们使用无线网络传输文件的原理是相同的,当无线网络信号收到干扰时,其被干扰的仅是某个
通讯帧,或多个通讯帧,但我们的通讯协议会检查出受干扰的通讯帧,然后自动重传受干扰的数据帧,直到全部正确
为止。这样在无线网络信号受干扰时,仅产生了数据重传而不是数 据丢失。在通讯干扰严重的时候,我们仅能感觉到
通讯速度慢了,而不是数据丢失了或被破坏了。