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