《CC2431的无线定位引擎及其应用改良.docx》由会员分享,可在线阅读,更多相关《CC2431的无线定位引擎及其应用改良.docx(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、CC2431的无线定位引擎及其应用改良zhangting导语:CC2431是TI公司推出的带硬件定位引擎的片上系统SoC解决方案,能知足低功耗ZigBeeIEEE802.15.4无线传感器网络的应用需要。CC2431是TI公司推出的带硬件定位引擎的片上系统SoC解决方案,能知足低功耗ZigBeeIEEE802.15.4无线传感器网络的应用需要。CC2431定位引擎基于RS-SIReceivedSignalStrengthIndicator,接收信号强度指示技术,根据接收信号强度与已知参考节点位置准确计算出有关节点位置,然后将位置信息发送给接收端。相比于集中型定位系统,RSSI功能降低了网络流量
2、与通讯延迟,在典型应用中可实现35m定位精度和0.25m的分辨率。本文在简述基于RSSI定位技术的根底上,具体介绍CC2431无线定位引擎的功能、特点及使用方法,并且针对CC2431无线定位引擎定位范围小和只能进展二维定位的缺乏之处给出了改良方法。1、RSSI定位技术RSSI是指节点接收到的无线信号强度大小。在基于接收信号强度指示RSSI的定位中,已知发射节点的发射信号强度,接收节点根据接收到信号的强度计算出信号的传播损耗,利用理论和经历模型将传输损耗转化为间隔,再利用已有的算法计算出节点的位置。该技术硬件要求较低、算法相对简单,在实验室环境中表现出良好特性;但由于环境因素变化的原因,在实际应
3、用中往往还需要进展改良。2、CC2431无线定位引擎CC2431无线定位引擎基于RSSI技术,定位系统由参考节点和盲节点组成。参考节点是一个位于已知位置的静态节点,这个节点知道自己的位置并可以将其位置通过发送数据包通知其他节点。盲节点从参考节点处接收数据包信号,获得参考节点位置坐标及相应的RSSI值并将其送人定位引擎,然后可以读出由定位引擎计算得到的自身位置。由参考节点发送给盲节点的数据包至少包含参考节点的坐标参数程度位置X和竖直位置Y,而RSSI值可由接收节点计算获得。2.1定位引擎定位引擎的使用非常简单,只要将所需参数写入定位引擎,等待定位引擎计算完毕就可以直接读出计算结果。所需参数如表1
4、所列。2.2RSSI参数当CC2431接收到一个数据包后会自动将RSSI值添加到该数据包中。RSSI值为数据包接收在开场的8个周期中的平均值,用1个字节表示。当一个数据包从CC2431的FIFO中读出时,倒数第二个字节包含RSSI值,这个值在接收到实际数据包的8个符号后测量得到,也可在数据包接收的同时获得。此时RSSI将反映当时接收信号的强度,而不一定是接收到的数据的信号强度,进而增加了大量节点同时使用信道时RSSI值出错的可能性。CC2431包含一个RSSI存放器,此存放器保存与上述一样的值,但它并不锁定,因此存放器值不能用于进一步的计算。只有与接收到的数据相关的被锁定的RSSI值才能以为是
5、接收数据时获得的正确RSSI测量值。RSSI的理论值可以由式1表示:RSSI=-10nlgd+A1其中,射频参数A和n用于描绘网络操纵环境。在全向形式下,射频参数A被定义为用dBm表示的距发射端1m处接收到的信号强度绝对值。如信号强度为-40dBm,那么参数A被定为40。定位引擎的期望参数A为30.050.0,精度为0.5。参数A用无符号定点数值给出,最低位为小数位,而其余各位为整数位。A的一个典型值为40.0。射频参数n被定义为途径损失指数,它指出了信号能量随着到收发器间隔的增加而衰减的速率。衰减与d-n成比例,这里d是发射器和接收器之间的间隔。实际写入定位引擎的参数n是一个通过查表得到的整
6、数索引值n_index,如表2所列。例如,通过测量得到n=2.98,查表得到最接近的有效值为3.00,相应的索引值是13。因此,整数13作为参数n写入定位引擎中。参数n以0,31之间的整数索引写入定位引擎,索引用整数表示。如n=7写入为000000111,n的典型值是13。2.3参考节点数目一般来讲参考节点越多越好,要得到一个可靠的定位坐标至少需要3个参考节点。假如参考节点太少,节点间影响会很大。一个错误的RSSI值能明显改变所得的位置坐标,错误的RSSI值在此即为不合适理论值的RSSI值,可能由于多路信号或者信号被墙壁阻挡等造成。另外,假如盲节点位于参考节点网格外部,很可能结果与实际使用位置
7、差异很大,因此不应该跟踪位于网格之外的目的。2.4定位算法首先,定位操纵应该使用“最优参考节点,即使用具有最高RSSI值的8个参考节点。其他节点都应放弃。假如得不到8个节点,那么应该使用尽可能多的节点。可用于软件操纵的算法很多,例如在图1所示的区域中,在X、Y方向上每隔30m放置一个参考节点,图中白色节点为盲节点,其他节点为参考节点。第1步,确定具有最高RSSI值的一个节点并计算一个补偿值,使之“挪动到64m64m范围的中心。由于已知来自此节点的RSSI值,所以到此节点的间隔很轻易得到。第2步,确定除“最强节点之外的其他使用节点,即图中黑色节点。所有节点用第1步中的补偿值进展修正。第3步,所有
8、获得值送人定位引擎最终读出结果位置。最后一步,将补偿值添加到计算位置中。完成这些计算之后,盲节点在全局网格中的位置就确定了。2.5软件操纵在定位引擎运行之前,必须使能定位引擎存放器LO-CENG的第4位LOCENG.EN。当要停顿定位引擎运行时,应往LOCENG.EN写入0关断引擎的时钟信号,进而降低CC2431的功耗。对定位引擎的操纵,主要就是对与定位引擎有关的存放器的操纵。定位引擎运行时需要输入38个参考坐标。参考坐标是以m为单位的,它表示各个参考节点的位置,其数值位于063.75,最高精度为0.25m,以最低2位为小数局部,剩余6位为整数局部。参考坐标存放于RF存放器REFCOORD中。
9、在写入REFCOORD之前,存放器LOCENG的第1位LOCENG.REFLD必须写入1,用于指示一组参考坐标将要被写入。一旦坐标写入经过开场LO-CENG.REFLD=1,8对坐标必须一次性写入。当定位引擎使用少于8个参考坐标时,要将未用的参考坐标写入0.0。RSSI值在-40dBm,-95dBm之间,精度为0.5dBm,写入值中应去掉负号。如RSSI的值为-50.35dB,写入到定位引擎为50.5。留意,未用的参考坐标必须用0.0作为RSSI值写入。假如仅有局部参数写入,定位引擎将不能正确工作。所有的测量参数应写入RF存放器MEASPARM中。在写入MEASPARM之前,存放器LOCENG
10、的第2位LOCENG.PARLD必须写入1,表示一组测量参数将被写入。一旦参数写入开场LOCENG.PARLD=1,所有10个参数必须一次性全部写入。测量参数必须按照A,n,rssi0,rssi1,rssi7顺序写入MEASIARM存放器,任何未使用的位必须写0。10个参数全部写完之后,LOCENG.PARLD必须写入0。参数坐标和测量参数写入之后,通过把存放器LOCENG第0位LOCENG.RUN写入1启动定位估计计算。通常,LOCENG.RUN被置1后的1200个系统周期之后,LOCENG的第3位LOCENG.DONE被置1。此时,估计坐标可从LOCX和LOCY存放器读出。定位引擎不产生任
11、何中断恳求。在新的结果被计算出来或者下一次重新启动之前,估计坐标值在LOCX和LOCY中保持有效。下面给出一个简单的定位引擎操纵函数:定位引擎操纵流程如图所示。3、存在问题及改良CC2431的无线定位引擎在应用中存在两个问题。首先,定位引擎可以处理最高达64m的X、Y值,对实际应用来讲这个区域太小,因此扩展区域非常必要。这可以通过简单的软件预处理算法得到,例如每个节点用2个字节的X、Y代表。由于精度为0.25m,进而最大范围为16384m214=16384。其次,定位引擎得到的只是二维坐标,怎样区分不同的程度面,就只能通过软件方法处理。例如,可以首先确定最近的参考节点并读出此节点的程度值。这个程度值被假定为盲节点所在的层,之后盲节点要保证只有同层节点被输入到定位引擎当中。程度层用一个字节Z来表示,那么可以区分256个不同的层。CC2431是一款针对无线传感器网络ZigBeeIEEE802.15.4的片上系统SoC解决方案,其具备的硬件定位引擎具有硬件设备要求低、定位精度高的特点,很好地知足了需求。本文在具体讨论了定位引擎操纵原理、使用方法的根底上,给出了可行的应用扩展方法。可以预见,CC2431的无线定位引擎将在无线网络定位方面具有更加优异的表现。0
限制150内