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