摘 要:利用無線傳感器單片機CC2431 和CC2430 設計了一個基于ZigBee 的公交車無線定位系統。傳統的定位都是采用GPS 或者GPRS 的定位。GPS 定位系統設計簡單,可以使用免費的定位衛星資源,但是移動臺到控制中心的數據傳送需要借助其它網絡資源;GPRS 定位是基于移動蜂窩式通信的定位,使用現有的移動網絡,但是帶寬低,不利于突發事件的快速處理。本文設計的Zigbee 的無線定位系統基于無線單片機CC2431,利用CC2431 自帶的RSSI 定位引擎,再運用無線自組網進行定位并向控制中心傳送定位信息。該系統設計簡單,定位精確度高,設備成本低廉,適合現代化城市的公交車系統智能管理。
0 引言
城市現代化建設中,公交交通工具的管理和調度是其很重要的一個方面。管理中心可以隨時通過路況和乘客的需求調度車輛;另外一方面,通過公交站臺的顯示器,通告給乘客等待中的車輛離站還有多遠距離,這樣在堵車的情況下可以讓乘客自己選擇出行方式。本文設計一個基于ZigBee 無線傳感器網絡的定位系統,本系統中,公交車被視為定位節點,在城市道路沿線廣布參考節點,通過參考節點計算出定位節點,在把定位信息上報給網關,通過網關傳至主干網絡,最后傳至控制中心。
1 無線定位系統的網絡原理和實現
該網絡定位的原理如圖1 所示,從圖中可以看出,該網絡定位幾乎全部可以采用無線傳輸,這樣可以解決道路布線困難,且節約大量的硬件成本。
圖1 定位系統原理
①主機:管理中心的計算機,在計算機上配備相關界面化軟件,便于觀察各條公交線路的公交車位置情況,這樣也便于管理和調度。
②網關:采用CC2430 設計,能夠組建一個ZigBee 網絡,在每個區域中,即每條公交線路上,網關充當協調器的角色,把定位節點,即各輛公交車位置信息上報給管理中心。
③參考節點:參考節點也采用CC2430 設計,在網絡中充當路由器角色,在本系統定位過程中布置在公交線路上,由用戶指定固定坐標,并為定為節點提供該坐標和RSSI 平均值。另外,參考節點還可以擴展,通過視頻功能,可以獲取路況信息,進一步為管理中心提供數據。
?、芏ㄎ还濣c:定位節點采用CC2431 設計,其內部具有定位引擎,能夠根據參考節點提供的固定坐標和RSSI 平均值計算出自身的精確坐標位置,并把該坐標協同定為節點標識號發送給網關。
2 系統各節點具體設計
2.1 定位節點
定位節點采用CC2431 設計,利用內部引擎計算自身的位置,然后傳至網關。其設計原理如圖2 所示。從圖可以看出,僅僅采用CC2431 和加上外部必要的無線器件,沒有其它外設,一方面簡化設計,另一方面利于節省能源。
圖2 定位節點設計原理
定位節點通過接受定位區域內所有參考節點的RSSI 值后,經過定位算法來計算其坐標值。定位節點包含以下功能:
?、偌尤刖W絡,無線收發數據功能。
?、诳刂茀⒖脊濣c多次收集與定位節點通信時信號強度值的功能。
?、劭刂茀⒖脊濣c計算多次手機定位節點信號強度值的平均值并發送給定為節點功能。
?、苣鼙粎f調器空中動態配置標準參數的功能。
?、莸酎c后標準參數信息不丟失的功能。
?、抻嬎悖l送XY 坐標。
?、甙l送定位節點編號的功能。
定位節點的基本功能包含了無線收發數據的功能,控制參考節點多次收集和定位節點通信時的信號強度值,并且控制參考節點計算多次收集定位節點信號強度值的平均值并發送給定位節點。定位節點還要接受網關進行空中動態配置標準參數,并且保證掉電后標準參數信息不會丟失。
定位節點上電以后,系統將給與它一個默認的標準參數,包括A 值,N 值,模式,收集等待時間,自動模式下周期,最小參考節點數等信息,如果是第一次加入參考網絡,則系統將這些數據寫入flash;否則如果已存在于網絡中,就將存放在flash 中的標準參數讀出。
2.2 參考節點
參考節點是一種已知的靜態節點,其坐標(X,Y)值是固定的,不參與定位計算,由CC2430 實現。本設計過程中一個區域采用8 個參考節點組成。
參考節點必須正確的配置在定位區域中的位置。它的任務是提供一個包含自己位置X,Y 坐標和RSSI 平均值[7 的信息包給定位節點。
在參考節點部分共有4 個輸入串ID,分別是RSSI 請求,參考節點配置,參考節點的請求配置,多次收集RSSI 平均值。參考節點收集到信息后。根據串ID 對信息進行處理,并實現相應的功能。
參考節點在上電以后,如果是第一次加入定位網絡,那么系統講給與它一個默認的X,Y 值,并將數據寫入flash;否則如果已經存在于網絡中,則首先要將flash 中的X,Y 坐標值讀出,已確定自己的位置。
2.3 網關的功能及設計
網關應具有以下功能:
?、俳⒕W絡,無線收發數據的功能。
?、诶么诤陀嬎銠C通信的功能。
③計算校驗的功能。
?、芡ㄟ^液晶顯示器顯示參考節點和定位節點坐標網絡地址的功能。
?、蒉D發計算機數據配置和請求配置參考節點和定位節點的功能。
⑥轉發計算機數據請求定位節點坐標的功能。
網關節點模塊選擇CC2430,它是系統中至關重要的模塊。首先,網關要接收由監控軟件提供的各個參考節點和定位節點的配置數據,并根據不同的方式發送給相應的節點;其次還要接收個節點的反饋數據,判斷數據的有效性,并傳輸給監控中心。
整個定位系統通過串命令控制整個流程,每1 個串命令都實現1 個相對應的功能。網關是一個中心控制站,自己涉及的串命令比較少。網關處理各個節點發送過來的有效數據進行處理。這些數據包含了操作系統值,節點網絡地址,有效數據長度,串ID,坐標數據長度和坐標數據。這些數據被網關收集之后,首先通過串口發送給pc 機,然后對這些數據進行數據校驗。系統中數據校驗的方法是取出數據操作系統值,即第1 位,對各位數據進行異或計算。
PC 機通過串口接收到數據之后,首先判斷第1 位是否為操作系統值,然后根據數據長度分配空間裝載數據。在數據裝載完成之后,立即對數據進行校驗。
3 實驗結果及數據分析
為模擬公交定位系統的實現,采用了8 塊CC2430 模塊為參考節點,2 塊CC2431 模塊為定位節點,1 個網絡擴展卡和1 個CC2430 模塊組成網關,進行模擬公交車定位系統,最后將網關的數據通過串口[11]與計算機相連。因為定位系統的控制源是控制中心的計算機,所有的流程都由計算機控制。在網關收到或發送數據的時候,總會計算1 個校驗值驗證或做數據的最后以一位,所以以下實驗數據中數據格式由數據幀[11]和校驗位[12]兩部分組成。
通過串口讀到的數據為:02 10 18 0B CB B8 3C D2 1500 08 FF FF FF FF 83。各位數據含義如下:
表1 串口各位數據含義
從表中可以看出,0B 是數據長度,為從這以為開始一直到校驗位的所有數據位,B8 3C 表示網絡地址,低位在前,高位在后,表示的網絡地址為0x3CB0。15 00 表示串ID 號,地位在前,高位在后,所以串ID 地址為0x0015。后面的是XY 坐標上電后的初始地址。
在定位節點上電之后,首先把數據發送給網關。因為系統采用非自動模式,所以網關會一直等待,直到上位機需要節點數據時,發送如表2 所示的一條命令。
表2 上位機數據
從命令的形式可以看出,該命令的發送形式為短地址形式。發送該命令以后,只有地址為0x5324 的節點會收到該信息。發送后上位機收到的數據為:02 10 18 14 CB 32 65D3 14 00 11 00 06 00 1F 00 04 B8 3C 00 00 28 00 28 CF31 32 33 34。
從結果可以看出,上位機正常收到數據,通過改變定位節點在網絡中的位置,就可以得到一組不同的數據,在根據數據中特定的信息位可以得到坐標結果。在實際應用系統中,對應的坐標位都在地圖上進行顯示,可以直觀的看到各輛公交車在路線上的位置信息。
4 結語
Zigbee 的無線定位系統基于無線單片機CC2431,利用CC2431 自帶的RSSI 定位引擎,再運用無線自組網進行定位并向控制中心傳送定位信息。該系統設計簡單,定位精確度高,設備成本低廉,適合現代化城市的公交車系統智能管理。