图4 CC2431电路图
2.2 系统软件设计
2.2.1 定位系统软件
图5为定位节点、参考节点和网关间的通信流程图。
无线传感器网络定位的应用原理是定位节点(CC2431芯片)将其四周所有的一跳范围内设定的参考节点(CC2430芯片)的RSSI信号强度接受指示值送到协调器进行定位分析(节点之间以数据包的形式通信),定位节点调用自身的算法计算得到其与参考节点之间的距离,再调用最大似然估计算法得到最终定位节点的位置坐标再传输到网关,最后显示在计算机上面[6]。
网关 定位节点 参考节点
图5 定位系统节点流程图
2.2.2 参考节点软件设计
参考节点(在定位系统中由CC2431芯片代替,不参与定位计算)的位置坐标是人为设定的,它的主要功能是向定位节点提供数据包,其中,数据包由高斯滤波之后计算所得接收信号强度值与参考节点的位置坐标值构成。图6为参考节点的流程图。
如图6所示(其中的盲节点即是定位节点),在某一确定的室内环境中,整个系统的定位过程:定位节点发射定位请求与信号强度向参考节点,参考节点向定位节点反过来发射参考节点的坐标信息及其信号强度值,定位节点再将接收到的参考节点的信号强度处理校正之后,再写入定位节点自带的定位引擎中进行定位,定位引擎求出坐标后,通过无线传感网络将求得的坐标信息发送到网关节点,然后将坐标信息由网关节点通过串口RS232发送至终端设备[7]。
图6 参考节点流程图
2.2.3 定位节点软件设计
定位节点即是盲节点可以设定为移动节点,它的移动范围是参考节点所包围的区域,它可以向参考节点发送RSSI的数据包请求信号,然后参考节点将各种所需参量按一定格式打包,发送给它[8]。最后定位节点将数据包发送给协调器(协调器将数据包按照RSSI值的大小排序,从而选择最大的三个,保证信号最强,计算得出的距离值误差最小。)CC2431芯片具有定位分辨率高(0.25m)、定位精度好(3m)和定位时间短(小于40us)的优点。图7所示为定位节点的流程图。
图7 定位节点流程图
2.3 CC2431定位引擎
在上面的ZigBee定位算法中已经提出了基于信号强度进行定位的计算方法。CC2431模块的定位算法也是基于信号强度方法。图8为CC2431芯片上的定位引擎流程图。
图8 CC2431定位引擎流程图
定位计算的步骤。
(1)首先选择64m×64m的定位区域,设置若干个参考节点,一般选择三个到十751个,坐标范围是[0,63]。
(2)然后先将LOCENG寄存器的REFLD位设置初始值1,再把这些坐标位置信息存入到REFCOORD寄存器里面。如果参考节点的坐标没有十751对,那么就将剩下的那些坐标值存为0,而且这些参考节点的信号强度值设为0。将寄存器的LOCENG的REFLD位设为0,待所有的参考节点的位置坐标完全存入引擎。
(3)设置一些参数量,这些参数包括在该定位领域下的RSSI的绝对值A和路径损耗指数n(它是信号功率在信号传输过程中衰减的速率,并且与发射机和接收机两者的距离成正比)。
(4)检查参数是否输入十个,如果不够继续输入,如果有十个,则将寄存器LOCENG的PARLD位置0,将RUN位置1,系统开始进行定位计算。
(5)当LOCENG寄存器的DONE位置1时,表示定位估计计算完成,可以从寄存器LOCENG的LOCX和LOCY位中读取盲节点的位置坐标;如果LOCENG寄存器的DONE位不置1,则延时等待。
(6)寄存器LOCENG的ENG位置0时,表示整个计算结束。 ZigBee室内定位系统的研究与设计+RSSI的算法及MATLAB仿真(4):http://www.751com.cn/zidonghua/lunwen_908.html