基于nRF24LE1的校园警情定位系统设计
中心站和分站的软件实现在整体上有相似之处,稍微区别是当分站确认接收到警报数据包后,便向预定的目标地址(其他分站或者中心站)发送该警报包,而中心站接收到警报数据包后,通过EM310往预定的目标IP地址发送。
本系统通信的数据包类型有应答包和警报包。警报包又分为遥控器直接发出的警报包(称为遥控器警报包)和分站转发的警报包(称为分站警报包),数据包类型标识定义如表1所列。
nRF24LE1数据包发送和接收
在nRF24LE1中,集成了一个功能齐全的2.4GHz收发器核nRF24L01+和一个加强型8051微控制器核。该微控制核和收发器核nRF24L01+是通过其专用的SPI接口进行通信,因此数据包收发是通过SPI读写操作来完成的。
时间间隔调整是靠Delay函数里面的Temp参数的调整来确定的。延时时间大约为Temp值的1/10s。延时参数Temp值等于基数10加上一个小于10的随机数,具体实现如下:
Delay(Temp)实现的延时是以1s为基础加上一个小于1的随机小数,总共有4个1s左右的延时叠加,因此该延时是以4s为基数进行调整的,该参数的配置是根据实验测试并统计B从接收警报包,到转发警报包,再到接收应答包的时间,再适当加上一定余量,权衡得出来的。
每一个设备都把自己认为重要的事情做好,并且又能够互相配合,使得整个系统可靠性和实时性达到一个相对完美的配合。
远程应用服务器操作策略
网络组网方案是数据中心服务器端采用公网固定IP地址,EM310直接通过IP地址访问Internet。其中,最关键两个动作就是EM310连接远程应用服务器操作和EM310往远程应用服务器发送数据包。
4个步骤之间紧密相连,缺一不可。每个AT指令发送出去后,会返回一个字符串,只有确认返同字符串中有“OK”字符,才能认为该AT指令操作成功,才可以进入下一个步骤的操作,否则重新发送该AT指令。这种方法可以获得最高的可靠性,同时也会带来一定风险,程序会一直在循环等待。
考虑到实时性,本文采用的是并不是每个AT指令操作后都等待“OK”字符,而是直接进入第4个步骤,发送警报信息。在该指令发送后,经过适当的延时,然后去判断返回的字符串中是否有“OK”字符,否则才开始从第1个步骤开始。
万一警情信息发送不成功,需要重新连接服务器,即从第1个步骤重新开始。本文采用的并不是每个AT指令操作后都去作等待“OK”字符的动作,而是经过适当延时,直接进入下一个动作。因此必须预先对该延时参数有个估计,同时要保留一定余量。本文通过大量测试,权衡后得到如表4所列的参数。
测试两种情况从按下求助按钮到地图显示的时间:一是分站直接到中心站;二是分站间接到中心站,结果是40~50s。因此,本系统所用的策略保障了一定的实时性和可靠性。