1引 言
无线跟踪系统的关键就是如何定位。目前比较成熟的无线定位技术当属GPS,然而这种技术无法在楼宇中使用,因此需要寻找一种新的定位方式来达到我们的目标。这里选择了基于接收信号强度(RSSI)的带信标定位技术。大多数射频芯片都可以得到RSSI,但综合整体性能,我们采用了Chipon推出的一款低功耗2.4 GHz全球免许可费用频段的射频芯片CC2500。他体积小,操作简单,采用3线制SPI。与MCU通信,并能够在每次接收到信号后自动产生RSSI,方便上层完成定位。
2 CC2500芯片介绍
2.1 整体性能
他的主要特性有:
(1)体积小,外围电路简单。CC22500只有20引脚,4×4 mmQLP封装。相对于其他射频芯片的封装,这种封装在手工焊接上要容易一些。
(2)灵敏度高,功耗低,速率可调。CC2500与常用的几款2.4 GHz射频芯片的比较如表1所示。表中未注明速率的数据是在数据传输速率250 kb/s下得到的。
(3)CC2500硬件支持包数据处理,数据接收时,有缓冲,信息同步字自动检测,地址检测,信息长度分析和CRC校验等功能,支持前向纠错,内部集成温度传感器。
2.2 WOR功能
为了节约电能,射频芯片通常采用休眠模式。芯片在休眠时势必会丢失信息,CC22500的WOR(Wakeup-on-Radio)功能能很好地避免这点。WOR功能保证芯片在深度睡眠时周期性地苏醒,探听周围是否有信号,这个过程不需要CPU的中断,如果有数据包成功接收,芯片可通过引脚输出中断通知MCU读取。在使用WOR功能时,片上的RC时钟作为WOR时钟。溢出的周期时间可由编程确定。
2.3 RSSI和LQI功能
RSSI反映接收信号强度,LQI反映信号的连接质量,两者都可以通过读取芯片的寄存器得到。LQI虽然能够判断连接质量,但会因调制方式的不同而不同。
RSSI是判断两个节点距离的很好的参数。在从RSSI寄存器中读到数值后我们需要进行一系列转化,才能得到接收强度值。首先判断RSSI寄存器中的值RSSI dec是否大于128,如果成立,则:
如果小于128,则:
其中RSSI offset按照数据传输速率的不同而改变,其取值可参照文献[1]。
2.4 CCA功能
CCA(Clear Channel Assessment)能够指示当前信道是否处于空闲状态。其作用与CSMA相似。当芯片要转入发送模式时,会首先检查信道,只有当信道为空闲时,才进入发送模式,否则停留在原模式或由编程设定进入其他模式。有3种情况可触发CCA功能:
(1)在RSSI低于门限值时;
(2)当接收到一个数据包时;
(3)以上两者都具备。
2.5 发射功率表
CC2500的功率表是用来在每次发送时设置发送功率的,其中最多可以存放8字节的功率值,默认情况下,每次在发送时,从最低位功率值开始读取,每次读取一个字节。当读取到最后一个字节的时候,自动回到第一个字节。如果有需要,可编程设置不从第一个字节开始读取,以实现发射功率可调。
3 跟踪算法
3.1 定位算法
所谓的跟踪轨迹其实就是若干次定位结果按时间顺序的集合。所以如何定位非常重要。目前常用的定位技术如基于准确测距的定位方法、质心算法等在空旷的环境中能够比较准确地完成定位,但在建筑物内部则相对效果较差。试验表明基于上述方法进行定位轨迹将是跳跃的,而非连续的。在建筑物内进行定位,有一个好处就是身处其中的待定位目标在活动空间上有一定约束,比如人在走廊中行走时,只能向前或者向后,左右两边都是墙壁,无法行走,这样实际上他的轨迹是遵循一定规律的。所以可以综合楼宇内部的位置信息进行定位。
考虑以上应用要求和环境,我们借鉴了文献[2]中的RADAR系统,采用基于RSSI技术的室内定位系统,但在测试方法上进行了改进,不利用基站定位,而是采用信标定位。
在系统中存在两种节点:一种是位置完全已知的信标节点;一种是位置待测的目标节点。经测试,我们本次基于CC2500硬件的节点在楼宇中的极限传输距离在60 m左右(PCB板射频部分走线影响最大传输距离),所以为准确起见,使用信标之间的间隔在20 m,在两个位置中间有墙壁或障碍物时,则一定要放置两个信标,不遵守上述规律。当然,信标数量越多,定位相对就更加准确。目标节点周期性地发出信号,信标接收到目标节点的信号后得到信号强度值RSSI,根据强度值推算目标节点的位置,然后把定位信息发往基站,完成定位工作。
楼宇内定位算法通常有基于信号传输的经验模型和基于信号传播的理论模型两种。后一种的准确性受建筑物材料的影响较大,最后还要进行大量的试验修正,所以我们采用信号传播的经验模型。首先放置好信标。并给定其坐标。设两个信标之间的距离的一半为D(m),如果两个信标之间有障碍物,则将信标到障碍物之间的距离定义为D。利用目标节点在距离D内移动,得到各点位置的RSSI,建立各个点上的位置和信号强度关系的离散数据表(x,y,RSSI)。同时要注意保证目标节点在每一点的时候都会有信标节点进行定位。可见系统的定位精度:
其中(x1,y1,RSSI1),(x2,y2,RSSI2)为离散数据表中两个相邻数据。
定位时,信标查表进行定位,当目标节点信号小于表中最小的门限RSSI时,直接舍弃,会有其他信标对其定位。
3.2 分簇路由算法
信标在得到目标节点的位置之后,需要将位置信息发往基站,由基站进入监控软件系统。在楼宇中信标的数量非常多,如果不选择一种良好的路由算法,那么很容易造成信息的丢失和误码率升高。我们采用分簇路由算法,这种拓扑有利于分布式算法的应用,适合大规模网络,簇头节点担负数据融合的任务,可使整个网络的数据传输量大大减轻,在使用电池供电的场合,其还可以显著延长整个网络的生存周期。
所有信标结点都固定划分成若干个簇,每一个簇选择一个簇头节点,在选择簇头节点的时候,要注意选择处于偏僻位置的信标节点,这种信标定位的工作相对较少,不容易在定位和传输中产生冲突。分簇主要以地理位置为准,每个簇的节点数不需要相同,这样有利于避免数据发往基站时产生冲突。簇头节点负责为簇内的所有信标节点分配时槽,每个信标节点在自己规定的时间发送定位信息给簇头节点。簇头节点接到所有簇内节点的信息后进行综合,总结成一帧数据发送给基站。在这帧中,所有信标的定位时间差被忽略,当作是同一个时间的定位信息。
如采用2s定位一次,有一个包含5个节点的簇,簇头节点为每个节点分配的时槽可以为300 ms。以250 kb/s为传输速率的CC2500在这个时槽内完全可以完成定位和数据传输工作。这样可以留给簇头节点约800 ms的时间进行数据融合和数据传输。信标节点数据融合的过程见图1。
数据上传到基站后,基站通过网口上传到电脑的监控软件。监控软件采用图形化方式将节点的位置示意出来,如图2所示。
4 结 语
试验表明CC2500在系统中能够很好地完成定位工作,但这种定位方式比较简单,不够精确,其准确程度主要依赖于系统组成之前的RSSI数据表准确程度,由于整个测量过程带有相当大的随机性和主观因素,所以通常不能达到理想的程度。如何降低这种主观因素以及如何减少前期工作量,还需要进一步的探索。