無(wú)線傳感器網(wǎng)絡(luò)用于監(jiān)測(cè)系統(tǒng)中的定位算法
摘要:從硬件設(shè)計(jì)入手,介紹了自主設(shè)計(jì)的以片上系統(tǒng)(SOC)STM32W108為核心的WSN節(jié)點(diǎn),在此基礎(chǔ)上采用了一種基于RSSI的加權(quán)質(zhì)心定位算法實(shí)現(xiàn)了節(jié)點(diǎn)的自定位。該算法將RSSI測(cè)距和質(zhì)心定位算法相結(jié)合,用測(cè)得的RSSI值作為質(zhì)心定位的加權(quán)因子,合理體現(xiàn)了不同錨節(jié)點(diǎn)對(duì)定位未知節(jié)點(diǎn)的約束力。通過(guò)測(cè)試證明,該定位方法在較少的通信開(kāi)銷(xiāo)情況下具有較高的定位精度,且易于實(shí)現(xiàn)。
關(guān)鍵詞:無(wú)線傳感器網(wǎng)絡(luò);接收信號(hào)強(qiáng)度指示;節(jié)點(diǎn)定位;加權(quán)質(zhì)心定位
無(wú)線傳感器網(wǎng)絡(luò)主要用于監(jiān)測(cè)系統(tǒng),大多數(shù)情況下,監(jiān)測(cè)到的數(shù)據(jù)必須結(jié)合實(shí)際的位置信息才有價(jià)值,這些位置信息主要包括事件發(fā)生的位置和WSN節(jié)點(diǎn)的位置,節(jié)點(diǎn)的位置是定位事件發(fā)生位置的基礎(chǔ)。獲取節(jié)點(diǎn)位置信息最直接的方法是采用人工部署或GPS定位,但是對(duì)于大規(guī)模的無(wú)線傳感器網(wǎng)絡(luò),由于成本的制約和應(yīng)用條件的限制,以上兩種方法實(shí)現(xiàn)起來(lái)都不理想。因此有必要采取相應(yīng)的定位算法措施來(lái)解決目前大多數(shù)應(yīng)用場(chǎng)合對(duì)位置信息的需求。
依據(jù)是否需要通過(guò)測(cè)量節(jié)點(diǎn)的距離信息把定位方法分為兩類(lèi):基于測(cè)距(rang—based)和不基于測(cè)距(rang—free)。前者是利用測(cè)量得到的距離或角度信息來(lái)進(jìn)行位置計(jì)算,主要有TOA、TDOA、AOA和RSSI;后者是利用節(jié)點(diǎn)的連通性和多跳路由信息交換等方法來(lái)估計(jì)節(jié)點(diǎn)間的距離或角度,并完成位置估計(jì),主要有DV—Hop、質(zhì)心算法等。兩類(lèi)定位算法各有優(yōu)點(diǎn),相比之下,基于距離的定位算法測(cè)量精度較高但是需要額外的硬件,不基于距離的定位算法對(duì)硬件要求較低但是定位誤差較大。本設(shè)計(jì)在自主設(shè)計(jì)的節(jié)點(diǎn)硬件基礎(chǔ)上,采用了將RSSI測(cè)距和質(zhì)心定位方法結(jié)合起來(lái),實(shí)現(xiàn)了節(jié)點(diǎn)的自定位,避免了使用單一定位方法的不足,提高了定位精度。
1 WSN節(jié)點(diǎn)硬件設(shè)計(jì)
1.1 節(jié)點(diǎn)設(shè)計(jì)方案的確定
WSN節(jié)點(diǎn)設(shè)汁有兩種方式:一種是NCP(network eoprocessor)——核心處理器和Zigbee網(wǎng)絡(luò)處理器分開(kāi),另一種是SOC(system on chip) ——使用包含無(wú)線射頻功能的核心處理器。傳統(tǒng)的設(shè)計(jì)大部分采用了NCP的方式,這種方式的優(yōu)勢(shì)在于應(yīng)用程序和Zigbee協(xié)議間可以分開(kāi)設(shè)計(jì),核心處理器的選擇很靈活,可以是8位的單片機(jī),也可以是運(yùn)行嵌入式操作系統(tǒng)的高級(jí)ARM,但是由于需要兩個(gè)處理器,就意味著增加了成本,且增加了節(jié)點(diǎn)的功耗,對(duì)于電池供電的無(wú)線傳感器網(wǎng)絡(luò)來(lái)說(shuō),增大了功耗就使得整的網(wǎng)絡(luò)的壽命減少。而SOC的方式,大大減小了功耗和成本,且隨著芯片工藝的進(jìn)步,SOC內(nèi)部的資源已經(jīng)不再是限制其使用的瓶頸。故本設(shè)計(jì)采用了SOC的方式,選用了意法半導(dǎo)體最新推出的射頻SOC—STM32W108。
1.2 STM32W108簡(jiǎn)介
STM32W108是意法半導(dǎo)體推出的一款WSN專(zhuān)SOC。該芯片采用32位ARM Cortex—M3內(nèi)核,具有較強(qiáng)的處理能力,內(nèi)部集成了符合IEEE80 2.15.4標(biāo)準(zhǔn)的2.4 GHz射頻收發(fā)器,且芯片內(nèi)部帶有功率放大器,最大輸出功率可達(dá)7 dB,芯片內(nèi)部同化了Zigbee 2007 Pro協(xié)議棧,用戶根據(jù)ST官網(wǎng)提供的API函數(shù)就可實(shí)現(xiàn)Zigbee網(wǎng)絡(luò)節(jié)點(diǎn)間數(shù)據(jù)的收發(fā)。
1.3 節(jié)點(diǎn)硬件設(shè)計(jì)
實(shí)際設(shè)計(jì)中,選用了由上海沁科公司基于STM32W108生產(chǎn)的Zigbee模塊——EMZ3018A,該模塊采用了類(lèi)似郵票孔的焊盤(pán),可以很方便的焊接在PCB板上。圍繞著該模塊實(shí)現(xiàn)了外圍電路的設(shè)計(jì),主要包括:電源模塊、SD卡存儲(chǔ)模塊、藍(lán)牙模塊、接口擴(kuò)展模塊,下面分別進(jìn)行詳細(xì)介紹:
(1)電源模塊
由于STM32W108的工作電壓要求是2.1~3.6 V,而SD卡和藍(lán)牙模塊要求是33 V供電,故選擇了3.3 V輸出的低壓差線性穩(wěn)壓芯片SP620 1-3.3,它的輸出電流能達(dá)到200 mA,滿足節(jié)點(diǎn)正常工作的需要,而且僅需要300 mV的壓差,3.6 V的鋰電池即可滿足要求。電源電路如圖1所示。
(2)存儲(chǔ)模塊
考慮到節(jié)點(diǎn)在后期的實(shí)際監(jiān)測(cè)中需要存儲(chǔ)大量的數(shù)據(jù),一般的存儲(chǔ)芯片容量較小且價(jià)格較高,故本設(shè)計(jì)選用了大容量的存儲(chǔ)設(shè)備SD卡,而且SD卡支持FAT32文件系統(tǒng),存儲(chǔ)的數(shù)據(jù)可以直接在PC上瀆取,實(shí)際應(yīng)用中方便人工現(xiàn)場(chǎng)取數(shù)。同時(shí)SD卡支持SPI接口,操作方便。電路如圖2所示。
(3)藍(lán)牙模塊
藍(lán)牙模塊只在中心節(jié)點(diǎn)上安裝,主要是為網(wǎng)關(guān)與中心節(jié)點(diǎn)通信服務(wù)的。本設(shè)計(jì)選用的是BMX藍(lán)牙模塊,其操作很方便,通過(guò)串口和STM32 W108連接,網(wǎng)關(guān)通過(guò)藍(lán)牙配對(duì)成功后即可實(shí)現(xiàn)和中心節(jié)點(diǎn)的數(shù)據(jù)透?jìng)?。藍(lán)牙模塊電路如圖3所示。
(4)接口擴(kuò)展模塊
考慮到節(jié)點(diǎn)的體積和實(shí)際應(yīng)用中的不同需求因而選用不同的傳感器,故將I2C接口、SPI接口、和STM32W108的內(nèi)部12位AD的6路接口引出來(lái),做成插針?lè)庋b。使用時(shí),在PCB上焊接雙排插針母座,然后根據(jù)需要單獨(dú)做出傳感器板插接到節(jié)點(diǎn)上,即可實(shí)現(xiàn)大部分傳感器的采集。
評(píng)論