介绍一种基于 ZigBee 技术的室内定位系统的设计。以 CC2431 无线定位引擎为核心,结合 ZigBee 参考节点的无线室内定位系统,阐述系统的构成和定位引擎的工作原理,讨论系统硬件电路。该定位系统实现了低成本、低功耗、高精度的设计要求。
3~8个参考节点;定位估计以0.5 m为单位;计算节点位置耗时少于40
μs;定位范围为64 m;定位偏差低于3
m;定位引擎采用分布式计算方法,该方法使用已知参考节点的RSSI信息定位。在节点上分布式定位计算可避免集中计算方法带来的大量网络传输与通信延迟问题。定位引擎操作流程[3]如图4所示。
在定位引擎运行之前,必须使能定位引擎寄存器LO2CENG的第4位LOCENG.EN。当要停止定位引擎运行时,应往LOCENG.EN
写入0关断引擎的时钟信号,以降低CC2431的功耗。对定位引擎的操作,主要就是对与定位引擎有关的寄存器的操作。
定位引擎运行时需要输入3~8个参考坐标。参考坐标是以m为单位的,它表示各个参考节点的位置,其数值位于0~63.75,最高精度为0.25
m,以最低2位为小数部分,剩余6位为整数部分。参考坐标存放于RF
寄存器REFCOORD中。在写入REFCOORD之前,寄存器LO2CENG的第1位LOCENG.REFLD
必须写入1,用于指示一组参考坐标将要被写入。一旦坐标写入过程开始(LO2CENG.REFLD=1),8对坐标必须一次性写入。当定位引擎使用少于8个参考坐标时,要将未用的参考坐标写入0.0。
4 定位区域的扩展
定位引擎可以处理最高达64 m的X、Y值,更准确地说是63.75
m,但是这个区域对实际应用来说显得太小,因此扩展区域非常必要。可以通过软件预处理算法来实现。每个节点用2个字节代表X、Y。因为精度为0.25 m,
因此最大范围为16 384 m(214=16 384)。图5是用预处理算法进行区域扩展的示意图。

