應(yīng)用

技術(shù)

物聯(lián)網(wǎng)世界 >> 解決方案 >> 物聯(lián)網(wǎng)方案
企業(yè)注冊(cè)個(gè)人注冊(cè)登錄

基于ZigBee的城市公交車(chē)定位系統(tǒng)設(shè)計(jì)

  引言 

  城市現(xiàn)代化建設(shè)中,公交交通工具的管理和調(diào)度是其很重要的一個(gè)方面。管理中心可以隨時(shí)通過(guò)路況和乘客的需求調(diào)度車(chē)輛;另外一方面,通過(guò)公交站臺(tái)的顯示器,通告給乘客等待中的車(chē)輛離站還有多遠(yuǎn)距離,這樣在堵車(chē)的情況下可以讓乘客自己選擇出行方式。本文設(shè)計(jì)一個(gè)基于ZigBee 無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的定位系統(tǒng),本系統(tǒng)中,公交車(chē)被視為定位節(jié)點(diǎn),在城市道路沿線(xiàn)廣布參考節(jié)點(diǎn),通過(guò)參考節(jié)點(diǎn)計(jì)算出定位節(jié)點(diǎn),在把定位信息上報(bào)給網(wǎng)關(guān),通過(guò)網(wǎng)關(guān)傳至主干網(wǎng)絡(luò),最后傳至控制中心。

  1 無(wú)線(xiàn)定位系統(tǒng)的網(wǎng)絡(luò)原理和實(shí)現(xiàn)

  該網(wǎng)絡(luò)定位的原理如圖1 所示,從圖中可以看出,該網(wǎng)絡(luò)定位幾乎全部可以采用無(wú)線(xiàn)傳輸,這樣可以解決道路布線(xiàn)困難,且節(jié)約大量的硬件成本。

圖1 定位系統(tǒng)原理

 ?、僦鳈C(jī):管理中心的計(jì)算機(jī),在計(jì)算機(jī)上配備相關(guān)界面化軟件,便于觀(guān)察各條公交線(xiàn)路的公交車(chē)位置情況,這樣也便于管理和調(diào)度。

 ?、诰W(wǎng)關(guān):采用CC2430 設(shè)計(jì),能夠組建一個(gè)ZigBee 網(wǎng)絡(luò),在每個(gè)區(qū)域中,即每條公交線(xiàn)路上,網(wǎng)關(guān)充當(dāng)協(xié)調(diào)器的角色,把定位節(jié)點(diǎn),即各輛公交車(chē)位置信息上報(bào)給管理中心。

  ③參考節(jié)點(diǎn):參考節(jié)點(diǎn)也采用CC2430 設(shè)計(jì),在網(wǎng)絡(luò)中充當(dāng)路由器角色,在本系統(tǒng)定位過(guò)程中布置在公交線(xiàn)路上,由用戶(hù)指定固定坐標(biāo),并為定為節(jié)點(diǎn)提供該坐標(biāo)和RSSI 平均值。另外,參考節(jié)點(diǎn)還可以擴(kuò)展,通過(guò)視頻功能,可以獲取路況信息,進(jìn)一步為管理中心提供數(shù)據(jù)。

 ?、芏ㄎ还?jié)點(diǎn):定位節(jié)點(diǎn)采用CC2431 設(shè)計(jì),其內(nèi)部具有定位引擎,能夠根據(jù)參考節(jié)點(diǎn)提供的固定坐標(biāo)和RSSI 平均值計(jì)算出自身的精確坐標(biāo)位置,并把該坐標(biāo)協(xié)同定為節(jié)點(diǎn)標(biāo)識(shí)號(hào)發(fā)送給網(wǎng)關(guān)。

  2 系統(tǒng)各節(jié)點(diǎn)具體設(shè)計(jì)

  2.1 定位節(jié)點(diǎn)

  定位節(jié)點(diǎn)采用CC2431 設(shè)計(jì),利用內(nèi)部引擎計(jì)算自身的位置,然后傳至網(wǎng)關(guān)。其設(shè)計(jì)原理如圖2 所示。從圖可以看出,僅僅采用CC2431 和加上外部必要的無(wú)線(xiàn)器件,沒(méi)有其它外設(shè),一方面簡(jiǎn)化設(shè)計(jì),另一方面利于節(jié)省能源。

圖2 定位節(jié)點(diǎn)設(shè)計(jì)原理

  定位節(jié)點(diǎn)通過(guò)接受定位區(qū)域內(nèi)所有參考節(jié)點(diǎn)的RSSI 值后,經(jīng)過(guò)定位算法來(lái)計(jì)算其坐標(biāo)值。定位節(jié)點(diǎn)包含以下功能:

 ?、偌尤刖W(wǎng)絡(luò),無(wú)線(xiàn)收發(fā)數(shù)據(jù)功能。

 ?、诳刂茀⒖脊?jié)點(diǎn)多次收集與定位節(jié)點(diǎn)通信時(shí)信號(hào)強(qiáng)度值的功能。

 ?、劭刂茀⒖脊?jié)點(diǎn)計(jì)算多次手機(jī)定位節(jié)點(diǎn)信號(hào)強(qiáng)度值的平均值并發(fā)送給定為節(jié)點(diǎn)功能。

 ?、苣鼙粎f(xié)調(diào)器空中動(dòng)態(tài)配置標(biāo)準(zhǔn)參數(shù)的功能。

 ?、莸酎c(diǎn)后標(biāo)準(zhǔn)參數(shù)信息不丟失的功能。

 ?、抻?jì)算,發(fā)送XY 坐標(biāo)。

  ⑦發(fā)送定位節(jié)點(diǎn)編號(hào)的功能。

  定位節(jié)點(diǎn)的基本功能包含了無(wú)線(xiàn)收發(fā)數(shù)據(jù)的功能,控制參考節(jié)點(diǎn)多次收集和定位節(jié)點(diǎn)通信時(shí)的信號(hào)強(qiáng)度值,并且控制參考節(jié)點(diǎn)計(jì)算多次收集定位節(jié)點(diǎn)信號(hào)強(qiáng)度值的平均值并發(fā)送給定位節(jié)點(diǎn)。定位節(jié)點(diǎn)還要接受網(wǎng)關(guān)進(jìn)行空中動(dòng)態(tài)配置標(biāo)準(zhǔn)參數(shù),并且保證掉電后標(biāo)準(zhǔn)參數(shù)信息不會(huì)丟失。

  定位節(jié)點(diǎn)上電以后,系統(tǒng)將給與它一個(gè)默認(rèn)的標(biāo)準(zhǔn)參數(shù),包括A 值,N 值,模式,收集等待時(shí)間,自動(dòng)模式下周期,最小參考節(jié)點(diǎn)數(shù)等信息,如果是第一次加入?yún)⒖季W(wǎng)絡(luò),則系統(tǒng)將這些數(shù)據(jù)寫(xiě)入flash;否則如果已存在于網(wǎng)絡(luò)中,就將存放在flash 中的標(biāo)準(zhǔn)參數(shù)讀出。

  2.2 參考節(jié)點(diǎn)

  參考節(jié)點(diǎn)是一種已知的靜態(tài)節(jié)點(diǎn),其坐標(biāo)(X,Y)值是固定的,不參與定位計(jì)算,由CC2430 實(shí)現(xiàn)。本設(shè)計(jì)過(guò)程中一個(gè)區(qū)域采用8 個(gè)參考節(jié)點(diǎn)組成。

  參考節(jié)點(diǎn)必須正確的配置在定位區(qū)域中的位置。它的任務(wù)是提供一個(gè)包含自己位置X,Y 坐標(biāo)和RSSI 平均值[7 的信息包給定位節(jié)點(diǎn)。

  在參考節(jié)點(diǎn)部分共有4 個(gè)輸入串ID,分別是RSSI 請(qǐng)求,參考節(jié)點(diǎn)配置,參考節(jié)點(diǎn)的請(qǐng)求配置,多次收集RSSI 平均值。參考節(jié)點(diǎn)收集到信息后。根據(jù)串ID 對(duì)信息進(jìn)行處理,并實(shí)現(xiàn)相應(yīng)的功能。

  參考節(jié)點(diǎn)在上電以后,如果是第一次加入定位網(wǎng)絡(luò),那么系統(tǒng)講給與它一個(gè)默認(rèn)的X,Y 值,并將數(shù)據(jù)寫(xiě)入flash;否則如果已經(jīng)存在于網(wǎng)絡(luò)中,則首先要將flash 中的X,Y 坐標(biāo)值讀出,已確定自己的位置。

  2.3 網(wǎng)關(guān)的功能及設(shè)計(jì)

  網(wǎng)關(guān)應(yīng)具有以下功能:

 ?、俳⒕W(wǎng)絡(luò),無(wú)線(xiàn)收發(fā)數(shù)據(jù)的功能。

  ②利用串口和計(jì)算機(jī)通信的功能。

 ?、塾?jì)算校驗(yàn)的功能。

 ?、芡ㄟ^(guò)液晶顯示器顯示參考節(jié)點(diǎn)和定位節(jié)點(diǎn)坐標(biāo)網(wǎng)絡(luò)地址的功能。

 ?、蒉D(zhuǎn)發(fā)計(jì)算機(jī)數(shù)據(jù)配置和請(qǐng)求配置參考節(jié)點(diǎn)和定位節(jié)點(diǎn)的功能。

 ?、揶D(zhuǎn)發(fā)計(jì)算機(jī)數(shù)據(jù)請(qǐng)求定位節(jié)點(diǎn)坐標(biāo)的功能。

  網(wǎng)關(guān)節(jié)點(diǎn)模塊選擇CC2430,它是系統(tǒng)中至關(guān)重要的模塊。首先,網(wǎng)關(guān)要接收由監(jiān)控軟件提供的各個(gè)參考節(jié)點(diǎn)和定位節(jié)點(diǎn)的配置數(shù)據(jù),并根據(jù)不同的方式發(fā)送給相應(yīng)的節(jié)點(diǎn);其次還要接收個(gè)節(jié)點(diǎn)的反饋數(shù)據(jù),判斷數(shù)據(jù)的有效性,并傳輸給監(jiān)控中心。

  整個(gè)定位系統(tǒng)通過(guò)串命令控制整個(gè)流程,每1 個(gè)串命令都實(shí)現(xiàn)1 個(gè)相對(duì)應(yīng)的功能。網(wǎng)關(guān)是一個(gè)中心控制站,自己涉及的串命令比較少。網(wǎng)關(guān)處理各個(gè)節(jié)點(diǎn)發(fā)送過(guò)來(lái)的有效數(shù)據(jù)進(jìn)行處理。這些數(shù)據(jù)包含了操作系統(tǒng)值,節(jié)點(diǎn)網(wǎng)絡(luò)地址,有效數(shù)據(jù)長(zhǎng)度,串ID,坐標(biāo)數(shù)據(jù)長(zhǎng)度和坐標(biāo)數(shù)據(jù)。這些數(shù)據(jù)被網(wǎng)關(guān)收集之后,首先通過(guò)串口發(fā)送給pc 機(jī),然后對(duì)這些數(shù)據(jù)進(jìn)行數(shù)據(jù)校驗(yàn)。系統(tǒng)中數(shù)據(jù)校驗(yàn)的方法是取出數(shù)據(jù)操作系統(tǒng)值,即第1 位,對(duì)各位數(shù)據(jù)進(jìn)行異或計(jì)算。

  PC 機(jī)通過(guò)串口接收到數(shù)據(jù)之后,首先判斷第1 位是否為操作系統(tǒng)值,然后根據(jù)數(shù)據(jù)長(zhǎng)度分配空間裝載數(shù)據(jù)。在數(shù)據(jù)裝載完成之后,立即對(duì)數(shù)據(jù)進(jìn)行校驗(yàn)。

  3 實(shí)驗(yàn)結(jié)果及數(shù)據(jù)分析

  為模擬公交定位系統(tǒng)的實(shí)現(xiàn),采用了8 塊CC2430 模塊為參考節(jié)點(diǎn),2 塊CC2431 模塊為定位節(jié)點(diǎn),1 個(gè)網(wǎng)絡(luò)擴(kuò)展卡和1 個(gè)CC2430 模塊組成網(wǎng)關(guān),進(jìn)行模擬公交車(chē)定位系統(tǒng),最后將網(wǎng)關(guān)的數(shù)據(jù)通過(guò)串口[11]與計(jì)算機(jī)相連。因?yàn)槎ㄎ幌到y(tǒng)的控制源是控制中心的計(jì)算機(jī),所有的流程都由計(jì)算機(jī)控制。在網(wǎng)關(guān)收到或發(fā)送數(shù)據(jù)的時(shí)候,總會(huì)計(jì)算1 個(gè)校驗(yàn)值驗(yàn)證或做數(shù)據(jù)的最后以一位,所以以下實(shí)驗(yàn)數(shù)據(jù)中數(shù)據(jù)格式由數(shù)據(jù)幀[11]和校驗(yàn)位[12]兩部分組成。

  通過(guò)串口讀到的數(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ù)長(zhǎng)度,為從這以為開(kāi)始一直到校驗(yàn)位的所有數(shù)據(jù)位,B8 3C 表示網(wǎng)絡(luò)地址,低位在前,高位在后,表示的網(wǎng)絡(luò)地址為0x3CB0。15 00 表示串ID 號(hào),地位在前,高位在后,所以串ID 地址為0x0015。后面的是XY 坐標(biāo)上電后的初始地址。

  在定位節(jié)點(diǎn)上電之后,首先把數(shù)據(jù)發(fā)送給網(wǎng)關(guān)。因?yàn)橄到y(tǒng)采用非自動(dòng)模式,所以網(wǎng)關(guān)會(huì)一直等待,直到上位機(jī)需要節(jié)點(diǎn)數(shù)據(jù)時(shí),發(fā)送如表2 所示的一條命令。

表2 上位機(jī)數(shù)據(jù)

  從命令的形式可以看出,該命令的發(fā)送形式為短地址形式。發(fā)送該命令以后,只有地址為0x5324 的節(jié)點(diǎn)會(huì)收到該信息。發(fā)送后上位機(jī)收到的數(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é)果可以看出,上位機(jī)正常收到數(shù)據(jù),通過(guò)改變定位節(jié)點(diǎn)在網(wǎng)絡(luò)中的位置,就可以得到一組不同的數(shù)據(jù),在根據(jù)數(shù)據(jù)中特定的信息位可以得到坐標(biāo)結(jié)果。在實(shí)際應(yīng)用系統(tǒng)中,對(duì)應(yīng)的坐標(biāo)位都在地圖上進(jìn)行顯示,可以直觀(guān)的看到各輛公交車(chē)在路線(xiàn)上的位置信息。

  4 結(jié)語(yǔ)

  Zigbee 的無(wú)線(xiàn)定位系統(tǒng)基于無(wú)線(xiàn)單片機(jī)CC2431,利用CC2431 自帶的RSSI 定位引擎,再運(yùn)用無(wú)線(xiàn)自組網(wǎng)進(jìn)行定位并向控制中心傳送定位信息。該系統(tǒng)設(shè)計(jì)簡(jiǎn)單,定位精確度高,設(shè)備成本低廉,適合現(xiàn)代化城市的公交車(chē)系統(tǒng)智能管理。