参考节点是一个位于已知位置的静态节点,这个节点知道自己的位置并可以将其位置通过发送数据包通知其他节点。盲节点从参考节点处接收数据包信号,获得参考节点位置坐标及相应的RSSI值并将其送入定位引擎,然后可以读出由定位引擎计算得到的自身位置。由参考节点发送给盲节点的数据包至少包含参考节点的坐标参数水平位置X和竖直位置Y,而RSSI值可由接收节点计算获得。
一般来说参考节点越多越好,要得到一个可靠的定位坐标至少需要3个参考节点。如果参考节点太少,节点间影响会很大,得到的位置信息就不精确,误差大。对于CC2431,要得到好的定位精度,需要8个参考节点;如果得不到8个节点,则应该使用尽可能多的节点。CC2431的无线定位引擎可以处理最高达64 m的X、Y值。
为了收集计算得到的数据和与无线节点网络交互,特定的控制系统是必需的。一个典型的控制单元是一台计算机,然而一个PC没有一个嵌入的无线接收器,因此接收器需要从外部接入,还需要一个ZigBee网关。ZigBee网关的作用就是将无线网络连接到控制终端,所有位置计算都由盲节点来实现,所以控制终端不需要具备任何位置计算功能。它的唯一目的是让用户和无线网络进行交互,比如获得盲节点的位置信息。
3.2 CC2431芯片简介
CC2431是TI公司推出的带硬件定位引擎的片上系统(SoC)解决方案,能满足低功耗ZigBee/IEEE 802.15.4无线传感器网络的应用需要。CC2431的定位引擎基于RSSI技术,根据接收信号强度与已知参考节点位置准确计算出有关节点位置,然后将位置信息发送给接收端。
CC2431由2.4 GHz直接序列扩频(DSSS)射频收发器核心和增强型工业标准的8位8051微控制器组成,是带有128 KB闪存的8051内核ZigBee无线单片机,并带有定位跟踪引擎。CC2431的设计结合了8 KB的RAM及强大的外围模块,并且有3种不同的版本,它们是根据不同的闪存空间32 KB、64 KB和128 KB来优化复杂度与成本的组合。CC2431的尺寸只有7 mm×7 mm的48脚封装,采用具有内嵌闪存的0.18 μm CMOS标准技术。针对协议栈、网络和应用软件执行时对MCU处理能力的要求,CC2431包含一个增强型工业标准的8位8051微控制器内核,运行的时钟频率为32 MHz。CC2431还包含一个DMA控制器,它能够被用于减轻8051微控制器内核对数据搬移的操作,因此提高了芯片整体的性能。
系统基本硬件连接电路如图3所示。连接50 Ω单极天线的部分由电感和电容构成,其中的电感L1、L2还为芯片内部的低噪声放大器和功放提供直流偏置。也可采用一个无需阻抗匹配电路的折叠式偶极子PCB天线。图3中,XTAL1为一个等效串联电阻(ESR)<60 Ω的32 MHz晶振,R1为其建立精确的偏置电路,C1、C2是去耦电容,用于电源滤波,向电压调节器提供稳定的核心电压。
图3中,CC231还提供了良好的接地保护功能,除了48引脚外,其芯片底层提供了AGND接地引脚,可以有效地抑制噪声,减少电磁干扰,保证电路系统稳定工作。
图3 系统基本硬件连接电路
3.3 定位引擎操作流程
图4 定位引擎操作流程
CC2431的硬件定位引擎与软件定位方法相比的优势是: 速度快、精度高,不占用处理器时间。该定位引擎的主要特点如下:定位估计算法需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是用预处理算法进行区域扩展的示意图。
图5 扩展定位区域示意图
该图所示的区域中,在X、Y方向上每隔30 m放置一个参考节点,虚环中间的白色节点为盲节点,其他节点为参考节点。第1步,确定具有最高RSSI值的一个节点并计算一个补偿值,使之“移动”到64 m×64 m范围的中心。由于已知来自此节点的RSSI值,所以到此节点的距离很容易得到;第2步,确定除“最强”节点之外的其他使用节点,所有节点用第1步中的补偿值进行修正;第3步,所有获得值送入定位引擎,读出由其计算得到的位置;最后一步,将补偿值添加到计算得到的位置中,完成这些计算之后,盲节点在网格中的位置就确定了。
结语
CC2431作为一款集成有定位引擎的ZigBee射频收发器,结合其他ZigBee节点构成的无线网络,可以实现3~5 m的定位精度。ZigBee作为一种高性价比、低成本、低功耗、低复杂度的无线通信技术,以其来实现室内无线定位具有良好的应用前景。随着人们生活水准的提高,人们对定位服务有着越来越高的需求,虽然目前已经有多种定位技术,但是在室内定位方面存在一定缺陷和不足。如果将这些定位技术和ZigBee定位技术结合起来,将会实现更加完美和精准的定位服务。