《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 微波|射頻 > 設(shè)計(jì)應(yīng)用 > 基于ZigBee的分體式便攜導(dǎo)航系統(tǒng)設(shè)計(jì)
基于ZigBee的分體式便攜導(dǎo)航系統(tǒng)設(shè)計(jì)
2015年電子技術(shù)應(yīng)用第6期
劉思慶,張 晞,王 娜
北京航空航天大學(xué) 儀器科學(xué)與光電工程學(xué)院,北京100191
摘要: 為了使便攜式導(dǎo)航系統(tǒng)穿戴方便、工作可靠,設(shè)計(jì)了一種基于ZigBee技術(shù)的分體式便攜導(dǎo)航系統(tǒng)。系統(tǒng)由傳感器無(wú)線(xiàn)發(fā)送終端和手持無(wú)線(xiàn)接收終端兩部分組成,發(fā)送終端采集微慣性測(cè)量單元(MIMU)數(shù)據(jù)并通過(guò)無(wú)線(xiàn)傳輸給接收終端。與其他個(gè)人導(dǎo)航系統(tǒng)相比,系統(tǒng)具有體積小、重量輕、功耗低、成本低和便于攜帶等優(yōu)點(diǎn),傳感器數(shù)據(jù)通過(guò)無(wú)線(xiàn)傳輸不需要硬件連接,并且采用了DMA控制器實(shí)現(xiàn)串口數(shù)據(jù)收發(fā),極大地提高了MCU利用效率。經(jīng)過(guò)測(cè)試系統(tǒng)能夠穩(wěn)定可靠地實(shí)現(xiàn)導(dǎo)航數(shù)據(jù)無(wú)線(xiàn)傳輸和導(dǎo)航功能。
中圖分類(lèi)號(hào): TN967
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2015)06-0062-04
Design of split-type portable navigation system based on ZigBee
Liu Siqing,Zhang Xi,Wang Na
School of Instrumentation & Opto-electronics Engineering,Beihang University,Beijing 100191,China
Abstract: In order to make the Portable Navigation System(PNS) convenient for wearing and work reliably, we design a split-type PNS based on ZigBee technology. The system is composed of sensor wireless transmission terminal and handheld wireless receiving terminal, the sending terminal acquires the datas of MEMS inertial measurement unit(MIMU) data, and transmits the data to the receiving terminal through wireless. Compared with the other PNS, this system has the advantages of small volume, light weight, low power consumption, low cost and convenient carrying etc., and the sensor data transmission by wireless does not require hardware connection. Using DMA control to realize serial data transceiver, improves the efficiency of utilization of MCU greatly. After testing, this system can transmit the navigation data by wireless and realize the navigation function stably and reliably.
Key words : portable navigation system;ZigBee;MIMU;DMA

    

0 引言

    隨著科技的進(jìn)步和人們生活水平的提高,便攜式導(dǎo)航系統(tǒng)在人們的生活中已經(jīng)得到了廣泛的應(yīng)用。采用MIMU/GPS組合導(dǎo)航系統(tǒng)在一定程度上可以實(shí)現(xiàn)個(gè)人導(dǎo)航系統(tǒng)不受GPS信號(hào)限制的全區(qū)域?qū)Ш降倪B續(xù)性和可靠性[1]。而便攜式導(dǎo)航設(shè)備往往穿戴于人身上,若傳感器是以硬件有線(xiàn)連接方式進(jìn)行數(shù)據(jù)傳輸,會(huì)使設(shè)備穿戴不便,且會(huì)妨礙捕捉對(duì)象的正常運(yùn)動(dòng)過(guò)程。ZigBee技術(shù)是一種短距離、低成本、低功耗、低復(fù)雜度的無(wú)線(xiàn)通信技術(shù),它擁有強(qiáng)大的網(wǎng)絡(luò)功能,并且網(wǎng)絡(luò)數(shù)據(jù)傳輸穩(wěn)定、可靠[2]?;谏鲜霈F(xiàn)狀,本導(dǎo)航系統(tǒng)使用GPS和MEMS組合導(dǎo)航,并采用全無(wú)線(xiàn)的通信方式,使本系統(tǒng)在穿戴時(shí)方便可靠,對(duì)捕捉對(duì)象運(yùn)動(dòng)無(wú)束縛作用。

1 便攜式導(dǎo)航系統(tǒng)方案設(shè)計(jì)

    基于微慣性及GPS組合的便攜式導(dǎo)航系統(tǒng)主要由無(wú)線(xiàn)發(fā)送終端和手持無(wú)線(xiàn)接收終端兩部分構(gòu)成。無(wú)線(xiàn)發(fā)送終端通常穿戴于人體的某個(gè)部位,如鞋上、腿上或腰上等,實(shí)現(xiàn)微慣性傳感器數(shù)據(jù)采集,并通過(guò)無(wú)線(xiàn)通信的方式將數(shù)據(jù)發(fā)送到便攜式手持無(wú)線(xiàn)接收終端;手持無(wú)線(xiàn)接收終端主要實(shí)現(xiàn)接收無(wú)線(xiàn)慣性傳感器數(shù)據(jù)和采集GPS信息,并將所有數(shù)據(jù)傳輸給手持終端的導(dǎo)航計(jì)算機(jī)進(jìn)行導(dǎo)航解算,并將解算的導(dǎo)航信息顯示在LCD液晶屏幕上。便攜式導(dǎo)航系統(tǒng)示意圖如圖1所示。

ck3-t1.gif

    系統(tǒng)主要由微慣性測(cè)量單元、導(dǎo)航計(jì)算機(jī)、GPS接收機(jī)、電源穩(wěn)壓電路、LCD液晶屏等構(gòu)成。根據(jù)MIMU/GPS組合便攜式導(dǎo)航系統(tǒng)對(duì)導(dǎo)航計(jì)算機(jī)體積、功耗、運(yùn)算能力、接口等各方面需求,以DSP+MCU架構(gòu)實(shí)現(xiàn)導(dǎo)航計(jì)算機(jī)的設(shè)計(jì)。其中DSP主要完成導(dǎo)航算法和系統(tǒng)控制的主處理器,專(zhuān)注于導(dǎo)航數(shù)據(jù)的實(shí)時(shí)解算;另一個(gè)為基于無(wú)線(xiàn)通信技術(shù)的微控制器MCU負(fù)責(zé)完成對(duì)外的數(shù)據(jù)接口電路及無(wú)線(xiàn)通信部分,導(dǎo)航器件包括一個(gè)集成三軸陀螺儀、三軸加速度計(jì)和三軸磁強(qiáng)計(jì)的微慣性測(cè)量傳感器以及GPS接收機(jī)。

    系統(tǒng)選用的器件均為性?xún)r(jià)比高、可靠性強(qiáng)、技術(shù)發(fā)展成熟的器件,因此系統(tǒng)具有工作壽命長(zhǎng)、功耗低、體積小、便于攜帶等優(yōu)點(diǎn),應(yīng)用前景廣闊。

2 系統(tǒng)硬件設(shè)計(jì)

2.1 數(shù)據(jù)采集發(fā)送終端

    如圖2所示,數(shù)據(jù)采集發(fā)送終端主要由微慣性測(cè)量單元ADIS16405、ZigBee無(wú)線(xiàn)通信模塊CC2530、電源穩(wěn)壓電路等構(gòu)成,實(shí)現(xiàn)MEMS傳感器數(shù)據(jù)采集,并可將數(shù)據(jù)通過(guò)無(wú)線(xiàn)或UART協(xié)議傳輸給外部設(shè)備(PC機(jī)等)。MEMS微慣性傳感器選用ADIS16405慣性傳感器,ADIS16405傳感器是一個(gè)完整的慣性傳感系統(tǒng),它包括一個(gè)三軸陀螺儀、一個(gè)三軸加速度計(jì)和一個(gè)三軸磁強(qiáng)計(jì)[3]。CC2530微控制器通過(guò)SPI接口與MEMS微慣性測(cè)量傳感電路之間進(jìn)行雙向通信,一方面通過(guò) SPI 接口對(duì)慣性測(cè)量模塊相應(yīng)寄存器進(jìn)行配置;另一方面讀取MEMS微慣性測(cè)量傳感器中的數(shù)據(jù)。在兩者通信中,CC2530作為主機(jī),ADIS16405為從機(jī)。

ck3-t2.gif

    由于CC2530本身帶有射頻的功能,對(duì)于此種小功率網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)不需要外加額外的射頻芯片,只需加一些簡(jiǎn)單電路即可實(shí)現(xiàn)射頻功能。但是在設(shè)計(jì)節(jié)點(diǎn)時(shí),對(duì)于發(fā)射功率會(huì)有一定的要求,當(dāng)傳輸距離較遠(yuǎn)的時(shí)候需要加上功放芯片。因?yàn)樵撏饨与娐返纳漕l部分使用了單極子的不平衡天線(xiàn),所以要用一個(gè)巴倫電路來(lái)優(yōu)化性能,可以采用低成本的分立電容和電感來(lái)實(shí)現(xiàn)[4]

2.2 數(shù)據(jù)處理接收終端

    如圖3所示,數(shù)據(jù)處理接收終端主要由ZigBee無(wú)線(xiàn)通信模塊CC2530、導(dǎo)航計(jì)算機(jī)、GPS接收機(jī)、電源穩(wěn)壓電路、LCD液晶屏幕等構(gòu)成。系統(tǒng)以DSP+MCU架構(gòu)實(shí)現(xiàn)導(dǎo)航計(jì)算機(jī)的設(shè)計(jì),其中DSP主要完成導(dǎo)航數(shù)據(jù)的實(shí)時(shí)解算,另一個(gè)基于ZigBee技術(shù)的微控制器MCU負(fù)責(zé)完成對(duì)外部無(wú)線(xiàn)通信數(shù)據(jù)和GPS數(shù)據(jù)接收。導(dǎo)航結(jié)果參數(shù)通過(guò)液晶屏幕顯示。

ck3-t3.gif

    系統(tǒng)選用TI公司C6000系列的浮點(diǎn)DSP TMS320C6727B作為導(dǎo)航解算的主處理器,由C6727組成的最小系統(tǒng)主要包括其基礎(chǔ)配置和存儲(chǔ)器電路兩部分,其中基礎(chǔ)配置主要由時(shí)鐘模塊、復(fù)位電路、調(diào)試接口電路等組成。

3 系統(tǒng)軟件設(shè)計(jì)

3.1 數(shù)據(jù)采集發(fā)送終端軟件設(shè)計(jì)

    系統(tǒng)采用型號(hào)為CC2530的MCU,配置定時(shí)器10 ms中斷,以100 Hz的采樣頻率通過(guò)SPI總線(xiàn)讀取MEMS傳感器原始數(shù)據(jù),并應(yīng)用ZigBee協(xié)議,將傳感器數(shù)據(jù)傳輸?shù)綗o(wú)線(xiàn)接收終端。其軟件流程如圖4所示。

ck3-t4.gif

3.1.1 MIMU傳感器數(shù)據(jù)采集

    MEMS微慣性測(cè)量模塊配置為SPI通信的從機(jī)模式,時(shí)鐘由主機(jī)CC2530提供。SPI 通信雙方靠主機(jī)提供的同步時(shí)鐘協(xié)調(diào)各自的收/發(fā)操作,其雙方是否可以通信取決于時(shí)鐘模式是否匹配。ADIS16405的SPI模塊在時(shí)鐘上升沿接收數(shù)據(jù),在時(shí)鐘下降沿發(fā)送數(shù)據(jù),因此要求主機(jī)CC2530在時(shí)鐘空閑時(shí)期要處于低電平狀態(tài)。

    在圖5中,SCLK表示SPI 的時(shí)鐘,DIN表示SPI接收數(shù)據(jù),DOUT表示SPI發(fā)送數(shù)據(jù)。慣性測(cè)量模塊的SPI在SCLK為高電平時(shí)有效,在SCLK上升沿時(shí)刻接收數(shù)據(jù),在SCLK下降沿發(fā)送數(shù)據(jù)。

ck3-t5.gif

3.1.2 MIMU數(shù)據(jù)無(wú)線(xiàn)發(fā)送軟件設(shè)計(jì)

    在組網(wǎng)步驟中,本文使用Basic RF。Basic RF由TI公司提供,它包含了IEEE 802.15.4標(biāo)準(zhǔn)的數(shù)據(jù)包的收發(fā)功能[7]。Basic RF為雙向無(wú)線(xiàn)通信提供了一個(gè)簡(jiǎn)單的協(xié)議,通過(guò)這個(gè)協(xié)議能夠進(jìn)行數(shù)據(jù)的發(fā)送和接收。

    Basic RF的發(fā)送為:

    (1)創(chuàng)建一個(gè)buffer,把payload放入其中。Payload最大為103 B。

    (2)調(diào)用basicRfSendPacket()函數(shù)發(fā)送,并查看其返回值。uint8 basicRfSendPacket(uint16 destAddr, uint8* pPayload, uint8 length)函數(shù)功能是給目的短地址發(fā)送指定長(zhǎng)度的數(shù)據(jù),發(fā)送成功剛返回SUCCESS,失敗則返回FAILED。其中destAddr為目的短地址,pPayload是指向發(fā)送緩沖區(qū)的指針,length為發(fā)送數(shù)據(jù)長(zhǎng)度。

3.2 數(shù)據(jù)處理接收終端軟件設(shè)計(jì)

    數(shù)據(jù)處理接收終端通過(guò)RF中斷接收無(wú)線(xiàn)慣性傳感器數(shù)據(jù),使用DMA控制器采集GPS串口信息,并將所有數(shù)據(jù)傳輸?shù)綄?dǎo)航計(jì)算機(jī)進(jìn)行導(dǎo)航解算,也可通過(guò)串口通信將數(shù)據(jù)傳輸給上位機(jī)監(jiān)控平臺(tái)。其軟件流程圖如圖6所示。

ck3-t6.gif

3.2.1 無(wú)線(xiàn)接收軟件設(shè)計(jì)

    Basic RF的接收為:

    (1)上層通過(guò)basicRfPacketIsReady()函數(shù)來(lái)檢查是否收到一個(gè)新數(shù)據(jù)包,此函數(shù)功能是檢查模塊是否已經(jīng)可以接收下一個(gè)數(shù)據(jù),如果準(zhǔn)備好則返回 TRUE。

    (2)調(diào)用basicRfReceive()函數(shù),把收到的數(shù)據(jù)復(fù)制到buffer中,此函數(shù)功能是接收來(lái)自Basic RF層的數(shù)據(jù)包,并為所接收的數(shù)據(jù)配緩沖區(qū)。

3.2.2 基于DMA的串口數(shù)據(jù)收發(fā)

    便攜式組合導(dǎo)航系統(tǒng)需要解析出的GPS相應(yīng)參數(shù)主要為速度和位置信息。實(shí)際OEM板輸出的數(shù)據(jù)主要有ASCII碼和二進(jìn)制方式兩種格式。ASCII碼格式比較符合人的閱讀習(xí)慣,而二進(jìn)制方式較適合計(jì)算機(jī)操作。本文選用二進(jìn)制方式進(jìn)行數(shù)據(jù)解析。GPS共輸出180個(gè)字節(jié),頭信息28個(gè)字節(jié),其中同步字符有3個(gè)AA 44 12,根據(jù)3個(gè)連續(xù)同步字符,可以判斷數(shù)據(jù)幀接收開(kāi)始。

    針對(duì)大數(shù)據(jù)量的GPS串口間通信,在常規(guī)的UART串行數(shù)據(jù)通信的基礎(chǔ)上,結(jié)合CC2530微控制器中DMA控制器的作用,實(shí)現(xiàn)DMA控制的UART串口數(shù)據(jù)包收發(fā),可以避免在MCU處理接收RF數(shù)據(jù)過(guò)程中大流量數(shù)據(jù)串口通信中的數(shù)據(jù)丟失,極大地提高串行數(shù)據(jù)通信過(guò)程的MCU獨(dú)立性和MCU利用的效率[5-6]。 

    為了使用DMA通道,必須首先對(duì)DMA通道的源地址、目標(biāo)地址、傳送長(zhǎng)度、觸發(fā)事件等寄存器進(jìn)行配置。當(dāng)DMA通道配置完畢后,在允許任何傳輸發(fā)起之前,必須進(jìn)入工作狀態(tài)。DMA通道通過(guò)將DMA通道工作狀態(tài)寄存器DMAARM中指定位置1,就可以進(jìn)入工作狀態(tài)。一旦DMA通道進(jìn)入工作狀態(tài),當(dāng)配置的DMA觸發(fā)事件發(fā)生時(shí),即可開(kāi)始數(shù)據(jù)傳送。圖7為DMA工作流程圖。

ck3-t7.gif

4 測(cè)試與驗(yàn)證

    本系統(tǒng)無(wú)線(xiàn)接收終端接收包含MIMU數(shù)據(jù)的RF信號(hào)并通過(guò)DMA采集GPS信號(hào)。CC2530有一個(gè)內(nèi)置的接收信號(hào)強(qiáng)度指示器(RSSI),可以從寄存器讀出,或自動(dòng)附加到收到的幀[8];同時(shí)在采集MEMS數(shù)據(jù)時(shí),MCU軟件進(jìn)行了幀計(jì)數(shù),每采集一組數(shù)據(jù)便計(jì)數(shù)加1,采集的數(shù)據(jù)可以通過(guò)此信息計(jì)算誤包率,判斷是否有數(shù)據(jù)丟失。

    無(wú)線(xiàn)接收終端將表1所示的信息通過(guò)串口傳輸?shù)缴衔粰C(jī)監(jiān)控平臺(tái),并計(jì)算顯示當(dāng)前的誤包率、RSSI值和接收到數(shù)據(jù)包的個(gè)數(shù)。

ck3-b1.gif

    在圖8所示的實(shí)驗(yàn)結(jié)果中,RECE為接收包的序號(hào),PER為誤包率,RSSI為和傳輸距離等因素相關(guān)的信號(hào)強(qiáng)度值。根據(jù)串口助手顯示的數(shù)據(jù)可以看到誤包率一直為零,這說(shuō)明所設(shè)計(jì)模塊發(fā)送的數(shù)據(jù)包在一定的距離內(nèi)全部被正確接收,無(wú)線(xiàn)通信的過(guò)程中沒(méi)有丟包,實(shí)驗(yàn)證明了系統(tǒng)的可靠性很高。

ck3-t8.gif

    如圖9所示,按矩形路線(xiàn)進(jìn)行了系統(tǒng)導(dǎo)航實(shí)驗(yàn),先向北行進(jìn)大約45 m,再向東按矩形路線(xiàn)回到出發(fā)點(diǎn),導(dǎo)航結(jié)果說(shuō)明系統(tǒng)能夠可靠正常地運(yùn)行。

ck3-t9.gif

    本文設(shè)計(jì)的便攜式導(dǎo)航系統(tǒng)采用型號(hào)為CC2530的ZigBee微控制器以100 Hz的采樣頻率讀取MIMU原始數(shù)據(jù),并以無(wú)線(xiàn)的方式將傳感器數(shù)據(jù)發(fā)送給無(wú)線(xiàn)接收終端。同時(shí)無(wú)線(xiàn)接收終端通過(guò)功能強(qiáng)大的DMA控制器采集GPS串口數(shù)據(jù),實(shí)現(xiàn)DMA控制的串口數(shù)據(jù)收發(fā),避免了MCU處理串口通信大流量數(shù)據(jù)時(shí)數(shù)據(jù)丟失,極大地提高了MCU的利用效率。并根據(jù)誤包率、RSSI值和接收到數(shù)據(jù)包的丟失情況對(duì)本系統(tǒng)的穩(wěn)定性和信號(hào)傳輸質(zhì)量進(jìn)行了評(píng)價(jià),最后通過(guò)行人導(dǎo)航實(shí)驗(yàn)驗(yàn)證了系統(tǒng)的正確性。

參考文獻(xiàn)

[1] 龐晗.基于MEMS慣性器件的徒步個(gè)人導(dǎo)航儀設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱:哈爾濱工程大學(xué),2011.

[2] 王權(quán)平,王莉.ZigBee技術(shù)及其應(yīng)用[J].現(xiàn)代電信科技.2004(1).

[3] 牛妍.基于MEMS的微小型嵌入式航姿系統(tǒng)的實(shí)現(xiàn)[D].南京:南京航空航天大學(xué),2010.

[4] 劉輝,趙麗芬,孫番典,等.基于CC2530的ZigBee射頻收發(fā)模塊設(shè)計(jì)[J].云南民族大學(xué)學(xué)報(bào)(自然科學(xué)版),2012(6).

[5] 楊福廣,李貽斌,尹占芳,等.ARM中基于DMA的高效UART通訊及其應(yīng)用[J].微計(jì)算機(jī)信息,2008(2).

[6] 張為,胡曉楠,王曄.基于DMA控制器的UART串行通信設(shè)計(jì)[J].電子設(shè)計(jì)工程,2012(6).

[7] 王銘明,陳濤,王建立.基于BasicRF的家居環(huán)境監(jiān)測(cè)預(yù)警系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2013(24).

[8] ZigBee Alliance.ZigBee Specification V1.0.2005.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。