基于北斗導(dǎo)航芯片和ZigBee的無線終端設(shè)計(jì)
北斗衛(wèi)星導(dǎo)航系統(tǒng)(BeiDou Navigation Satellite System,BDS)是中國正在實(shí)施的自主研發(fā)、獨(dú)立運(yùn)行的全球衛(wèi)星導(dǎo)航系統(tǒng)。北斗衛(wèi)星導(dǎo)航系統(tǒng)致力于向全球用戶提供高質(zhì)量的定位、導(dǎo)航和授時(shí)服務(wù),包括向全球免費(fèi)提供定位、測(cè)速和授時(shí)服務(wù)。目前,北斗衛(wèi)星系統(tǒng)的建設(shè)正按計(jì)劃穩(wěn)步推進(jìn),目前已成功發(fā)射了16顆北斗導(dǎo)航衛(wèi)星,服務(wù)范圍覆蓋了亞太地區(qū)。
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)是由大量的靜止或移動(dòng)的傳感器以自組織和多跳的方式構(gòu)成的無線網(wǎng)絡(luò),以協(xié)作地感知、采集、處理和傳輸網(wǎng)絡(luò)覆蓋地理區(qū)域內(nèi)被感知對(duì)象的信息,并最終把這些信息發(fā)送給網(wǎng)絡(luò)的所有者。在無線傳感網(wǎng)技術(shù)中,最為符合低功耗、低成本、高可靠性要求的當(dāng)屬ZigBee技術(shù)。ZigBee技術(shù)是一種工作在全球、美國和歐洲3個(gè)頻段上的無線通信技術(shù),基于無線通信協(xié)議。它具有低功耗、低成本、低復(fù)雜度、自動(dòng)組網(wǎng)的特點(diǎn),主要適合于短距離無線通信、組網(wǎng)、自動(dòng)控制和遠(yuǎn)程控制等領(lǐng)域,并可以嵌入至各種設(shè)備中。
這兩種熱門技術(shù)特點(diǎn)鮮明,如果將它們結(jié)合,即把定位導(dǎo)航技術(shù)與短距離組網(wǎng)技術(shù)結(jié)合,就可以實(shí)現(xiàn)更廣泛和更復(fù)雜的應(yīng)用,滿足對(duì)于不同規(guī)模和要求的檢測(cè)、定位、導(dǎo)航等各項(xiàng)需求,方便數(shù)據(jù)傳輸,彌補(bǔ)現(xiàn)有技術(shù)產(chǎn)品的空白。
1創(chuàng)新功能
1.1精確定位
ZigBee節(jié)點(diǎn)廣泛應(yīng)用于野外環(huán)境勘測(cè)、智能交通監(jiān)控等領(lǐng)域,單純的ZigBee節(jié)點(diǎn)采集的數(shù)據(jù)是一維數(shù)據(jù),孤立的數(shù)據(jù)不利于分析與決策。如果將采集地的位置信息也一起獲取,就可以把采集到的環(huán)境信息與位置信息相結(jié)合,在匯總、分析時(shí)繪制成一個(gè)二維的數(shù)據(jù)地圖,更將直觀地了解信息的分布狀況;而如果再加上精確的時(shí)間,就組成了三維的數(shù)據(jù)體,這樣的數(shù)據(jù)更加綜合、全面。
1.2間接定位
衛(wèi)星定位通常要求在有天空視野的室外,因而在室內(nèi)就定位困難。利用ZigBee的間接定位,當(dāng)周圍已經(jīng)存在了包含定位設(shè)備的ZigBee網(wǎng)絡(luò)時(shí),就可以接入ZigBee網(wǎng)絡(luò)實(shí)現(xiàn)間接定位。相當(dāng)于在這個(gè)區(qū)域內(nèi)任意可接入網(wǎng)絡(luò)的地點(diǎn)提供了實(shí)時(shí)間接定位的服務(wù),任何設(shè)備都可以透過ZigBee網(wǎng)絡(luò)獲取自己當(dāng)前的位置信息,這樣不僅降低了定位服務(wù)的成本,也擴(kuò)大了定位的應(yīng)用范圍。
1.3網(wǎng)絡(luò)授時(shí)
ZigBee網(wǎng)絡(luò)雖然具備低成本、低功耗、高可靠性的優(yōu)勢(shì),但是考慮到網(wǎng)絡(luò)延時(shí)和較低的數(shù)據(jù)傳輸速率,因此在系統(tǒng)實(shí)時(shí)性方面不盡如人意。當(dāng)ZigBee網(wǎng)絡(luò)面對(duì)的是某種對(duì)實(shí)時(shí)性要求較高的應(yīng)用時(shí),勢(shì)必會(huì)因?yàn)檩^大的時(shí)延,影響數(shù)據(jù)的精確性。如果采用從北斗衛(wèi)星導(dǎo)航系統(tǒng)獲取的精確時(shí)間,然后對(duì)全網(wǎng)所有節(jié)點(diǎn)校時(shí),那么節(jié)點(diǎn)的同步性就得到了提高,從而提高系統(tǒng)的響應(yīng)速度。
1.4數(shù)據(jù)通信
北斗衛(wèi)星導(dǎo)航系統(tǒng)雖然可以提供精確的時(shí)間和位置信息,但是卻沒有信息的傳遞能力,ZigBee網(wǎng)絡(luò)就為這種信息組織提供了一種簡便的方式。通過把北斗定位的數(shù)據(jù)架設(shè)于ZigBee網(wǎng)絡(luò)之中,就可以讓位置信息傳遞起來。
2北斗+ZigBee終端的系統(tǒng)設(shè)計(jì)
2.1結(jié)構(gòu)體系
北斗導(dǎo)航系統(tǒng)與ZigBee網(wǎng)絡(luò)結(jié)構(gòu)體系如圖1所示,主要由ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)和北斗導(dǎo)航節(jié)點(diǎn)組成。傳感網(wǎng)子網(wǎng)內(nèi)一般由一個(gè)主節(jié)點(diǎn)和多個(gè)節(jié)點(diǎn)組成。主節(jié)點(diǎn)主要負(fù)責(zé)ZigBee網(wǎng)絡(luò)的組網(wǎng)和網(wǎng)內(nèi)設(shè)備的管理,同時(shí)與北斗定位導(dǎo)航模塊通信。
圖1北斗-ZigBee網(wǎng)絡(luò)結(jié)構(gòu)示意圖
2.2硬件設(shè)計(jì)
在ZigBee節(jié)點(diǎn)的設(shè)計(jì)上,選用Freescale公司針對(duì)ZigBee技術(shù)推出的MC13213芯片。該芯片是完整的單芯片解決方案,其內(nèi)部集成了HCS 08 MCU和遵循IEEE802.15.4標(biāo)準(zhǔn)的第二代無線射頻收發(fā)器,也稱為Modem.MC13213能夠以非常低的總材料成本建立強(qiáng)大的網(wǎng)絡(luò)節(jié)點(diǎn)。其特點(diǎn)是速度快,片內(nèi)資源豐富。其硬件框圖如圖2所示。
圖2終端硬件功能框圖
北斗定位導(dǎo)航模塊以芯星通公司的UM220芯片為核心設(shè)計(jì)。UM220是針對(duì)車輛監(jiān)控、氣象探測(cè)和電信電力授時(shí)等應(yīng)用而推出的北斗/GPS雙系統(tǒng)模塊。單芯片支持北斗BD2/GPS功能,無需外接CPU即可直接輸出NMEA數(shù)據(jù),支持UART、SPI、1PPS、I2C等多種接口。引腳連接如圖3所示,本設(shè)計(jì)通過TXD3、RXD3分別與MC13213的PTE1(TXD1)、PTE0(RXD1)相連,實(shí)現(xiàn)數(shù)據(jù)通信。
圖3 UM220與MC13213連接圖
2.3軟件設(shè)計(jì)
ZigBee是基于IEEE 802.15.4標(biāo)準(zhǔn)的低功耗個(gè)域網(wǎng)協(xié)議。根據(jù)這個(gè)協(xié)議規(guī)定的技術(shù),是一種短距離、低功耗的無線通信技術(shù)。ZigBee設(shè)備包括IEEE 802.15.4(該標(biāo)準(zhǔn)定義了RF射頻以及與相鄰設(shè)備之間的通信)的PHY和MAC層,以及ZigBee堆棧層——網(wǎng)絡(luò)層(NWK)、應(yīng)用層和安全服務(wù)提供層。
由于受無線傳輸功耗的限制,傳輸有效距離在100 m以內(nèi),因此對(duì)于在區(qū)域范圍內(nèi)的覆蓋就需要通過內(nèi)置的ZigBee協(xié)議棧實(shí)現(xiàn)自動(dòng)組網(wǎng)和路徑計(jì)算功能。在終端設(shè)計(jì)中,數(shù)據(jù)傳輸?shù)某休d媒介是ZigBee網(wǎng)絡(luò),不管是精確定位的坐標(biāo)信息,還是間接定位的偵測(cè)信息,亦或是時(shí)間同步的數(shù)據(jù),都依賴于ZigBee所提供的數(shù)據(jù)服務(wù)進(jìn)行傳輸。
精確定位的功能依賴于北斗導(dǎo)航定位所獲得的精確坐標(biāo)。UM220模塊提供北斗的定位信息。UM220輸出數(shù)據(jù)采用ASCII碼,按照NMEA-0183格式進(jìn)行異步串行通信,因此通過將其通過串口與MC13213相連,設(shè)定每秒輸出一次定位信息,通過MC13213內(nèi)置的單片機(jī)處理定位信息。UM 220輸出語句有$BDGGA、$BDGSA、$BDGSV、$BDRMC等。其中$BDGGA定位數(shù)據(jù)語句是最為常用的語句,因此我們選用它作為定位信息的輸出語句。
$BDGGA語句包括17個(gè)字段:語句標(biāo)識(shí)頭,世界時(shí)間,緯度,緯度半球,經(jīng)度,經(jīng)度半球,定位質(zhì)量指示,使用衛(wèi)星數(shù)量,水平精確度,海拔高度,高度單位,大地水準(zhǔn)面高度,高度單位,差分GPS數(shù)據(jù)期限,差分參考基站標(biāo)號(hào),校驗(yàn)和結(jié)束標(biāo)記(用回車符和換行符),分別用14個(gè)逗號(hào)進(jìn)行分隔。由此便獲得了經(jīng)、緯度和海拔高度的精確信息。這些信息將存儲(chǔ)在MC13213的內(nèi)存中,不僅實(shí)現(xiàn)節(jié)點(diǎn)的精確定位,作為自己的位置信息,也為其他節(jié)點(diǎn)的間接定位提供參考信息。
間接定位常用的算法有兩種:基于距離的定位算法、與距離無關(guān)的定位算法。距離無關(guān)的定位算法的優(yōu)點(diǎn)是,對(duì)節(jié)點(diǎn)的硬件結(jié)構(gòu)要求較低;缺點(diǎn)是定位精度不高,難以滿足室內(nèi)定位的精度要求?;诰嚯x的定位則是通過測(cè)量節(jié)點(diǎn)間點(diǎn)到點(diǎn)的距離或角度信息,再使用一定的計(jì)算方法計(jì)算節(jié)點(diǎn)位置。常用的測(cè)距技術(shù)有RSSI、TOA、TDOA和AOA等。由于ZigBee無線通信模塊可以直接提供RSSI值,因此本設(shè)計(jì)使用RSSI信息來實(shí)現(xiàn)定位功能。
利用RSSI測(cè)量距離,需要建立距離與RSSI的模型。由于經(jīng)驗(yàn)?zāi)P驮趯?shí)際定位前,需要先模擬測(cè)試環(huán)境,建立該環(huán)境中各個(gè)距離上的位置和信號(hào)強(qiáng)度關(guān)系的離線數(shù)據(jù)庫,操作起來較為繁瑣,數(shù)據(jù)庫也不適合單片機(jī)的應(yīng)用,因此這里采用理論模型,用無線電傳播路徑損耗模型進(jìn)行計(jì)算。
自由空間無線電傳播路徑損耗模型公式如下:
Loss = 32.44 + 10klog10d + 10klog10f (1)
式中,d為接收點(diǎn)距信源的距離,單位為km;f為頻率,單位為MHz;k為路徑衰減因子。
實(shí)際應(yīng)用環(huán)境中,由于存在多徑、繞射、障礙物等各種影響岡素,因此還要對(duì)模型進(jìn)行改進(jìn)。這里采用一種對(duì)數(shù)一常態(tài)分布模型,其計(jì)算公式為:
式中,Xσ是平均值為0的高斯分布隨機(jī)變數(shù),取其標(biāo)準(zhǔn)差范圍為4~10;k的取值范圍為2~5.取d=1,代入式(1)可得Loss,即PL(d0)的值。由此得到未知節(jié)點(diǎn)接收錨節(jié)點(diǎn)信號(hào)時(shí)的信號(hào)強(qiáng)度公式如下:
RSSI =發(fā)射功率+天線增益-路徑損耗(PL(d))
假設(shè)移動(dòng)節(jié)點(diǎn)0接收到n(n≥3)個(gè)固定節(jié)點(diǎn)發(fā)送的信號(hào),從接收到的n個(gè)信號(hào)中選取接收信號(hào)最強(qiáng)的3個(gè)固定節(jié)點(diǎn)作為信標(biāo)節(jié)點(diǎn)A、B、C.利用RSSI測(cè)距方法,測(cè)量到的距離分別為dA、dB、dC,此時(shí)就可以根據(jù)dA、dB、dC采用圖4所示的三邊測(cè)量法確定位置。如果不相交于一點(diǎn),則可以根據(jù)質(zhì)心法來實(shí)現(xiàn)。
圖4三邊測(cè)量法
理論上,雖然獲取3個(gè)已定位節(jié)點(diǎn)的信息就可以確定一個(gè)未知節(jié)點(diǎn)的位置,但是實(shí)際情況會(huì)因?yàn)楦蓴_而出現(xiàn)偏差。例如,當(dāng)兩個(gè)射頻之間出現(xiàn)意外遮擋物時(shí),接收信號(hào)會(huì)降低30 dBm.為了修正異常,提高定位結(jié)果的精確性,間接定位需要盡可能多的已定位節(jié)點(diǎn)的RSSI值,進(jìn)行相關(guān)的定位計(jì)算,那么當(dāng)采用大量的節(jié)點(diǎn)后,RSSI的值將趨于穩(wěn)定,這時(shí)就可以得出更加精確的定位結(jié)果。
ZigBee全網(wǎng)的時(shí)間同步使用FTSP算法實(shí)現(xiàn)。它通過發(fā)送一條報(bào)文并在發(fā)送和接收兩端分別打下時(shí)間戳來實(shí)現(xiàn)一對(duì)一或者一對(duì)多的時(shí)間同步。FTSP算法提供多跳的時(shí)間同步,由網(wǎng)絡(luò)的根節(jié)點(diǎn)維護(hù)一個(gè)全局時(shí)鐘,其他的所有節(jié)點(diǎn)都同步到根節(jié)點(diǎn),由此將全網(wǎng)中的所有節(jié)點(diǎn)時(shí)間同步。
FTSP算法的實(shí)現(xiàn)步驟如下:
①發(fā)射同步(sync)字節(jié),計(jì)算時(shí)間戳t,計(jì)算方法為當(dāng)前的時(shí)間減去消息數(shù)據(jù)部分的發(fā)射時(shí)間,消息數(shù)據(jù)部分的發(fā)射時(shí)間,可以通過數(shù)據(jù)長度和發(fā)射速率得出。發(fā)射時(shí)間戳t.
②接收數(shù)據(jù)包,記錄sync字節(jié)最后到達(dá)的時(shí)間tr,計(jì)算位偏移(bit offset)。在收到完整消息后,計(jì)算位偏移產(chǎn)生的時(shí)間延遲tb,計(jì)算方法為計(jì)算位偏移和接收速率。
③接收節(jié)點(diǎn)計(jì)算與發(fā)送節(jié)點(diǎn)之間的時(shí)鐘偏移量off-set,然后調(diào)節(jié)本地時(shí)鐘與發(fā)送節(jié)點(diǎn)的時(shí)鐘同步。
3性能測(cè)試
3.1定位誤差測(cè)試
間接定位的實(shí)際測(cè)試中,共部署了23個(gè)傳感節(jié)點(diǎn),其中使用北斗直接定位的有11個(gè),沒有提供北斗定位而使用ZigBee定位的有12個(gè)。節(jié)點(diǎn)隨機(jī)分布,節(jié)點(diǎn)間設(shè)置了10~20 m不等的距離,然后進(jìn)行了10次間接定位的實(shí)驗(yàn)。通過統(tǒng)計(jì)數(shù)據(jù),分析與實(shí)際測(cè)量值的誤差,結(jié)果如圖5所示。
圖5間接定位誤差分布
綜合計(jì)算,10次實(shí)驗(yàn)的平均定位誤差為1.7 m.考慮到平均14 m的節(jié)點(diǎn)間距離,定位誤差較小,符合應(yīng)用要求。
3.2時(shí)間同步誤差測(cè)試
在時(shí)間同步的仿真中,依然采用間接定位測(cè)試中的節(jié)點(diǎn)。23個(gè)節(jié)點(diǎn)位置隨機(jī)分布,時(shí)間同步周期為5 s,在原有ZigBee協(xié)議中增加了部分模塊的功能,包括MAC層的時(shí)間戳。在實(shí)驗(yàn)中,分別記錄了FTSP在網(wǎng)絡(luò)中節(jié)點(diǎn)間單跳和多跳的平均同步誤差,測(cè)試次數(shù)為10次,實(shí)驗(yàn)結(jié)果如圖6所示。
圖6間接定位誤差分布
根據(jù)實(shí)驗(yàn)結(jié)果,兩個(gè)節(jié)點(diǎn)單跳FTSP平均誤差為2.12μs;但是到7跳的時(shí)候,兩個(gè)節(jié)點(diǎn)的平均誤差,F(xiàn)TSP為11.97μs,結(jié)果表明,F(xiàn)TSP算法在多跳網(wǎng)絡(luò)中的同步誤差精度較高,曲線平滑,符合要求,可以達(dá)到提升ZigBee網(wǎng)絡(luò)時(shí)間同步準(zhǔn)確性的目的。
結(jié)語
利用Freescale的ZigBee通信模塊MC13213與和芯星通UM220定位導(dǎo)航芯片組合搭建的硬件和軟件平臺(tái),把北斗衛(wèi)星定位系統(tǒng)的定位信息和授時(shí)功能與ZigBee系統(tǒng)相結(jié)合;利用精確的定位和授時(shí)數(shù)據(jù)改進(jìn)ZigBee協(xié)議棧的性能,增強(qiáng)其節(jié)點(diǎn)的功能,實(shí)現(xiàn)了精確定位、間接定位和全網(wǎng)時(shí)間同步的改進(jìn)。通過ZigBee網(wǎng)絡(luò)傳輸性能的優(yōu)勢(shì),彌補(bǔ)了單一北斗導(dǎo)航數(shù)據(jù)缺乏流動(dòng)性和數(shù)據(jù)形態(tài)孤立的不足。經(jīng)測(cè)試,設(shè)計(jì)終端性能穩(wěn)定,效果良好,達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo)。
評(píng)論