APP下载

基于CC2530的室内定位系统设计与实现

2015-05-11陶兴鹏

湖北工业大学学报 2015年1期
关键词:下位上位定位

曾 论, 张 铮, 陶兴鹏, 王 婵

(湖北工业大学机械工程学院, 湖北 武汉 430068)



基于CC2530的室内定位系统设计与实现

曾 论, 张 铮, 陶兴鹏, 王 婵

(湖北工业大学机械工程学院, 湖北 武汉 430068)

为了解决当前室内定位系统精确度低、可靠性差的缺点,设计并实现了一种基于无线传感器网络的室内定位系统。系统硬件以CC2530为主控芯片,在节点自主定位基础上增加了上位机辅助定位模式,在该模式下调用可降低环境变化对定位精度产生干扰的加权质心定位算法。在本定位系统上也可以随时修改上位机定位算法,方便以后作进一步地改进。经测试表明:本系统运行稳定,易于维护,定位精度较其他定位平台大大提高。

ZigBee; CC2530; 室内定位; 定位算法

随着数据业务的快速增加和物联网技术的发展,对目标进行检测、定位、跟踪和导航要求日益增高。在环境复杂的室内(如机场大厅、工厂、展厅、仓储、地下车场)等常需要确定设施与物品在室内的位置,还有许多如地下矿井安全、大型结构件的吊装、移动机器人作业与路径控制、复杂机械监控、城市智能交通等领域不仅需要对移动目标进行定位和跟踪,有时还需对其姿态调整和路径导航,所以急切需要开发低成本、高可靠性的室内定位系统。相比于其他无线传感器网络通信技术,ZigBee技术低功耗,低成本、高容量、高安全性的特点[1]非常适合于多点数据通信搭建室内定位平台。本文提出在下位机上统一选用TI出产的CC2530,正是该技术的一款成熟解决方案。

1 系统整体结构及定位原理

1.1 系统整体结构

ZigBee网络有星状、树状和网状3种拓扑结构[2]。网状结构具有强大的功能,可以通过“多跳”的方式通信。网络还具备自组织、自愈功能,结构也最复杂;星型网络具有简洁和低功耗点特点,使用简单,性价比高。本文系统采用ZigBee网络中的网状拓扑结构,运行在Z-stack2007协议栈上,协调器负责建立网络和维持系统运转,参考节点和待定位节点都由路由节点充当,三者之间两两可通信。待定位节点可以收集一跳范围内所有参考节点的信息,以供计算自身位置。也可以将参考节点信息通过协调器转发到上位机,让上位机辅助计算定位。系统结构图如图1所示。

图1 系统结构示意图

1.2 定位原理

系统以基于RSSI(信号接收强度)的测距技术[3]为基础。该技术主要使用的是RF信号,首先测得待定位节点接收到不同参考节点的信号功率,连同各个参考节点发射时的信号功率,两者之间的差的绝对值为传播损耗,然后利用信号传播衰减模型,将传播损耗转化为距离。RSSI理论值

RSSI=-(10n×lg(d)+A)

(1)

式中:d是通信距离,A代表距离为1 m时的接收信号强度,n代表信号传播常量,通常取值范围在2.2~4之间。

在室内情况下,分别测出不同距离(距离已知)两个节点之间的RSSI值,根据RSSI-d曲线可以拟合求解A、n值。 那么就可以根据未知距离下测得的RSSI求得参考节点与待定位节点之间的距离d。在二维平面内,如果有3个(及3个以上)的参考节点B1(x1,y1)、B2(x2,y2)、B3(x3,y3),根据三边定位算法[4],由欧拉公式得:

(2)

由式(2)可以计算得到待定位节点P(x,y)的坐标为:

(3)

2 硬件设计

系统中的无线传输模块由德州仪器(TI)公司提供的CC2530芯片组成。CC2530是TI为了实现嵌入式ZigBee而设计的片上系统,使用的8051CPU是一个单周期的兼容内核。它有三种不同的访问总线,其中包括中断控制器、内存仲裁器、8 KB SRAM、最高256 KB 闪存、两个8位定时器、2个支持多种串行通信协议的USART、21个可编程通用I/O引脚[5]。ZigBee模块电路如图2所示。

图2 ZigBee通信模块射频电路

每个节点在芯片外围加上射频天线模块、阻抗匹配模块、供电模块即可工作。另外,各个节点都加了LED灯,用来显示组建网络、加入网络等情况。

图3 终端节点示意图

3 下位机软件设计

3.1 协调器功能流程

协调器上电后,先进行硬件电路的初始化,然后按照编译时给定的参数,选择合适的信道、合适的网络号建立ZigBee无线网络,通过上位机命令发送配置参考节点和待定位节点信息,控制通信方式,也可以接收各个节点的数据,然后上传到上位机。

图4 协调器流程图

3.2 参考节点功能流程

参考节点加入网络后,根据接收到的数据形式,主要可分为四种功能:将上位机发送配置信息写入到参考节点flash、读取配置信息经协调器发送到上位机、多次搜集RSSI、将滤波后的RSSI和自身坐标发送至待定位节点(图5)。

图5 参考节点流程

3.3 待定位节点功能流程

待定位节点主要功能流程与参考节点相似,包括节点信息配置、读取和接收RSSI,不同之处在于待定位节点会向参考节点发送位置请求,参考节点将自身坐标和RSSI值发送到待定位节点后,待定位节点就可以利用这些信息计算自身的坐标位置(图6)。

图6 待定位节点流程

3.4 下位机定位算法

质心算法[6]是无需测距的简单定位算法,对于n个固定参考节点B1(x1,y1)、B2(x2,y2)、B3(x3,y3),…,Bn(xn,yn)组成的定位区域内,采用质心定位算法计算待定位节点P(x,y)的估计坐标:

(7)

(8)

在协议栈上完成待定位节点的定位算法嵌入,定位算法C程序如下:

void locationCalculatePosition( LocRefNode_t *ref, LocDevCfg_t *node )

{

LocRefNode_t *pRef = ref;

const byte stop = ( ( CHVER == 0x01 ) ? LOC_ENGINE_NODE_CAPACITY_REVB :

LOC_ENGINE_NODE_CAPACITY_REVC);

HalLedSet(HAL_LED_2,HAL_LED_MODE_ON);

uint8 i;

LEIXING temp=0;

LEIXING **c=zeros(BlindNode_count,3); //动态开辟二维数组(3列),每列分别存参节//点的x值,y值和RSSI值

LEIXING G[2][1]={0};

for(i=0;i

{

c[i][0] = pRef->x/4; //x坐标

c[i][1] = pRef->y/4; //y坐标

c[i][2]= fabs(pRef->rssi); //RSSI取绝对值

pRef++;

}

for(i=0;i

{

}

if(temp!=0)

{

G[0][0]=G[0][0]/temp;//待定位节点x坐标

G[1][0]=G[1][0]/temp;//待定位节点y坐标

}

node->x=(byte)(G[0][0]*4);

node->y=(byte)(G[1][0]*4);

HalLedSet(HAL_LED_2,HAL_LED_MODE_OFF);

freep(c,BlindNode_count);

}

4 上位机软件设计

4.1 上位机辅助定位算法

在环境变化小、可通信参考节点数量多的情况下,下位机定位算法精度较高,待定位节点计算自身坐标后可以直接在液晶屏上显示。本系统也在上位机上提供了改进的加权质心定位算法来辅助定位,以适应更加复杂的环境。其基本流程是:待定位节点将接收到各个参考节点的信息并通过协调器转发到上位机,上位机上使用MATLAB编写定位算法,利用接收信息计算待定位节点的坐标,生成动态链接库,提供已计算得出的待定位节点坐标,在上位机软件上显示。

下位机定位算法只考虑待定位节点到参考节点的RSSI,而没有加入其他修正算法,环境变化时误差可能较大,故在上位机辅助定位算法采用改进的加权质心定位算法。该算法中,把待定位节点到各个参考节点的RSSI比值作为每个参考节点对测距影响的权重,就可以保证环境变化时权值变化很小。对于n个固定参考节点B1(x1,y1)、B2(x2,y2)、B3(x3,y3),…,Bn(xn,yn),待定位节点P(x,y)接收到各个参考节点的RSSI值分别为RSSI1,RSSI2,RSSI3,…,RSSIn,定义Rij为待定位节点P接收到Bi、Bj信号接收强度的比值:

(9)

那么,第i个参考节点的权值则为:

(10)

将式(10)代入式(8)当中,则估计坐标可表示为:

(11)

4.2 上位机控制软件

上位机软件用VB制作,通过串口控制协调器通信,也可以调用动态链接库数据显示定位结果。如图7、图8所示,分别为上位机给参考节点和待定位节点配置和获取信息界面。图9则为上位机辅助定位显示待定位节点坐标界面。

图7 参考节点配置

图8 待定位节点配置

图9 定位结果界面

5 实验测试

5.1 标定A、n值

在室内情况下,任取两个可通信节点,节点间距由2 m增大到30 m,分别测得每个间距下100次RSSI并求平均值,根据实验数据得到RSSI-d关系曲线如图10所示。经过拟合后:y=-35.71×lg(x)-54.84,即可得出A=-54.8,n=3.6。

图10 A/n 值拟合曲线图

5.2 定位实验数据

在湖北工业大学数控中心场地测试,将拟合得到的A、n值写入图8所示的“参数A”和“参数N”中,完成100组实验,取其中8组数据对比,表1、表2分别为上、下位机定位算法精度表。经比较,上位机算法精度显著高于下位机算法精度。

表1 上位机定位算法精度表

表2 下位机定位算法精度表

6 结束语

本文以CC2530为核心,设计和搭建了特有上位机辅助定位模式的定位平台。通过实验测试,本系统可以在较开阔场地达到较高的定位精度,可修改或加入不同的上位机定位算法,比较各种定位算法优缺点,并且提供了友好的操作界面,方便进一步的测试和改进。

[1] 李文仲,段朝玉.ZigBee无线网络技术入门与实战[M]. 北京:北京航空航天大学出版社,2007.

[2] 高守玮,吴灿阳.ZigBee技术实践教程[M].北京航空航天大学出社,2009.

[3] 倪 巍,王宗欣. 基于接收信号强度测量的室内定位算法[J].复旦大学学报(自然科学版),2004(43):72-76.

[4] 朱 剑,赵 海,孙佩刚,等. 基于 RSSI 均值的等边三角形定位算法[J].东北大学学报(自然科学版), 2007,28(08):1094.

[5] 王小强,欧阳骏,黄宁淋. ZigBee无线传感器网络设计与实现[M].北京:化学工业出版社,2012.

[6] 章 磊,黄光明. 基于RSSI的无线传感器网络节点定位算法[J]. 计算机工程与设计,2010,31(02):291-294.

[责任编校: 张 众]

Design and Implementation of CC2530-based Indoor Location system

ZENG Lun, ZHANG Zheng,TAO Xingpeng, WANG Chan

(1SchoolofMechanicalEngin.,HubeiUniv.ofTech.,Wuhan430068,China)

In order to solve the problems of low accuracy, low reliability of the current indoor location system, the present study designed and implemented a kind of indoor positioning system based on Wireless Sensor Network. This system taking CC2530 as the main controlling chip, on the basis of node autonomous positioning, it adds a PC-assisted positioning mode, the improved weighted centroid localization algorithm was invoked. This algorithm could decrease the disturbance of environment change on the position precision. On this positioning system, PC localization algorithm can be modified at any time; it is convenient for further improvement. The test shows that the system is stable, easy to maintain, and improve the positioning precision better than other positioning platforms.

ZigBee; CC2530; indoor location; location algorithm

2014-11-26

曾 论(1989-), 男, 湖北汉川人,湖北工业大学硕士研究生,研究方向为嵌入式与智能控制

1003-4684(2015)01-0080-05

TN924

A

猜你喜欢

下位上位定位
《导航定位与授时》征稿简则
Smartrail4.0定位和控制
发射机房监控系统之下位机
特斯拉 风云之老阿姨上位
找准定位 砥砺前行
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
景洪电厂监控系统下位机数据传输网络改造
围观党“下位”,吐槽帝“登基”
青年择业要有准确定位