×
工业控制 > 工业自动化 > 详情

无线传感器网络用于监测系统中的定位算法

发布时间:2024-05-05 发布时间:
|

摘要:从硬件设计入手,介绍了自主设计的以片上系统(SOC)STM32W108为核心的WSN节点,在此基础上采用了一种基于RSSI的加权质心定位算法实现了节点的自定位。该算法将RSSI测距和质心定位算法相结合,用测得的RSSI值作为质心定位的加权因子,合理体现了不同锚节点对定位未知节点的约束力。通过测试证明,该定位方法在较少的通信开销情况下具有较高的定位精度,且易于实现。
关键词:无线传感器网络接收信号强度指示节点定位加权质心定位

无线传感器网络主要用于监测系统,大多数情况下,监测到的数据必须结合实际的位置信息才有价值,这些位置信息主要包括事件发生的位置和WSN节点的位置,节点的位置是定位事件发生位置的基础。获取节点位置信息最直接的方法是采用人工部署或GPS定位,但是对于大规模的无线传感器网络,由于成本的制约和应用条件的限制,以上两种方法实现起来都不理想。因此有必要采取相应的定位算法措施来解决目前大多数应用场合对位置信息的需求。
依据是否需要通过测量节点的距离信息把定位方法分为两类:基于测距(rang—based)和不基于测距(rang—free)。前者是利用测量得到的距离或角度信息来进行位置计算,主要有TOA、TDOA、AOA和RSSI;后者是利用节点的连通性和多跳路由信息交换等方法来估计节点间的距离或角度,并完成位置估计,主要有DV—Hop、质心算法等。两类定位算法各有优点,相比之下,基于距离的定位算法测量精度较高但是需要额外的硬件,不基于距离的定位算法对硬件要求较低但是定位误差较大。本设计在自主设计的节点硬件基础上,采用了将RSSI测距和质心定位方法结合起来,实现了节点的自定位,避免了使用单一定位方法的不足,提高了定位精度。

1 WSN节点硬件设计
1.1 节点设计方案的确定
WSN节点设汁有两种方式:一种是NCP(network eoprocessor)——核心处理器和Zigbee网络处理器分开,另一种是SOC(system on chip) ——使用包含无线射频功能的核心处理器。传统的设计大部分采用了NCP的方式,这种方式的优势在于应用程序和Zigbee协议间可以分开设计,核心处理器的选择很灵活,可以是8位的单片机,也可以是运行嵌入式操作系统的高级ARM,但是由于需要两个处理器,就意味着增加了成本,且增加了节点的功耗,对于电池供电的无线传感器网络来说,增大了功耗就使得整的网络的寿命减少。而SOC的方式,大大减小了功耗和成本,且随着芯片工艺的进步,SOC内部的资源已经不再是限制其使用的瓶颈。故本设计采用了SOC的方式,选用了意法半导体最新推出的射频SOC—STM32W108。
1.2 STM32W108简介
STM32W108是意法半导体推出的一款WSN专SOC。该芯片采用32位ARM Cortex—M3内核,具有较强的处理能力,内部集成了符合IEEE80 2.15.4标准的2.4 GHz射频收发器,且芯片内部带有功率放大器,最大输出功率可达7 dB,芯片内部同化了Zigbee 2007 Pro协议栈,用户根据ST官网提供的API函数就可实现Zigbee网络节点间数据的收发。
1.3 节点硬件设计
实际设计中,选用了由上海沁科公司基于STM32W108生产的Zigbee模块——EMZ3018A,该模块采用了类似邮票孔的焊盘,可以很方便的焊接在PCB板上。围绕着该模块实现了外围电路的设计,主要包括:电源模块、SD卡存储模块、蓝牙模块、接口扩展模块,下面分别进行详细介绍:
(1)电源模块
由于STM32W108的工作电压要求是2.1~3.6 V,而SD卡和蓝牙模块要求是33 V供电,故选择了3.3 V输出的低压差线性稳压芯片SP620 1-3.3,它的输出电流能达到200 mA,满足节点正常工作的需要,而且仅需要300 mV的压差,3.6 V的锂电池即可满足要求。电源电路如图1所示。

本文引用地址:/zixunimg/eepwimg/www.eepw.com.cn/article/159474.htm


(2)存储模块
考虑到节点在后期的实际监测中需要存储大量的数据,一般的存储芯片容量较小且价格较高,故本设计选用了大容量的存储设备SD卡,而且SD卡支持FAT32文件系统,存储的数据可以直接在PC上渎取,实际应用中方便人工现场取数。同时SD卡支持SPI接口,操作方便。电路如图2所示。


(3)蓝牙模块
蓝牙模块只在中心节点上安装,主要是为网关与中心节点通信服务的。本设计选用的是BMX蓝牙模块,其操作很方便,通过串口和STM32 W108连接,网关通过蓝牙配对成功后即可实现和中心节点的数据透传。蓝牙模块电路如图3所示。


(4)接口扩展模块
考虑到节点的体积和实际应用中的不同需求因而选用不同的传感器,故将I2C接口、SPI接口、和STM32W108的内部12位AD的6路接口引出来,做成插针封装。使用时,在PCB上焊接双排插针母座,然后根据需要单独做出传感器板插接到节点上,即可实现大部分传感器的采集。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
哪些是人工智能应用最多的场景?