趙玉榮 方 策
基于ZigBee的井下機(jī)車(chē)監(jiān)控系統(tǒng)設(shè)計(jì)
趙玉榮 方 策
針對(duì)井下的特殊環(huán)境,文章設(shè)計(jì)了一種基于ZigBee技術(shù)的井下機(jī)車(chē)監(jiān)控系統(tǒng),通過(guò)設(shè)計(jì)參考節(jié)點(diǎn)、移動(dòng)節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)來(lái)構(gòu)建井下的無(wú)線(xiàn)傳感網(wǎng)絡(luò)。根據(jù)節(jié)點(diǎn)具體的實(shí)際需求和設(shè)計(jì)特點(diǎn),對(duì)節(jié)點(diǎn)的功能進(jìn)行軟件設(shè)計(jì)。
系統(tǒng)結(jié)構(gòu)簡(jiǎn)介
整個(gè)機(jī)車(chē)運(yùn)輸監(jiān)控系統(tǒng)分為井下和井上兩部分,井下部分主要是放置在機(jī)車(chē)上或軌道上的各節(jié)點(diǎn)組成的無(wú)線(xiàn)傳感網(wǎng)絡(luò),包括移動(dòng)節(jié)點(diǎn)、參考節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)。井下運(yùn)行的機(jī)車(chē)上都安裝有移動(dòng)節(jié)點(diǎn)模塊,可以實(shí)時(shí)跟蹤顯示機(jī)車(chē)的位置信息 ;參考節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)都固定安裝在巷道內(nèi),比如事故多發(fā)區(qū),軌道的進(jìn)出口、工作人員密集區(qū)和拐彎處。井上的監(jiān)控機(jī)房裝有界面化軟件的主機(jī),通過(guò)串口線(xiàn)將上位機(jī)和協(xié)調(diào)器連接起來(lái),以此來(lái)接收井下的信息數(shù)據(jù)實(shí)現(xiàn)監(jiān)控。
協(xié)調(diào)器節(jié)點(diǎn)的硬件結(jié)構(gòu)
協(xié)調(diào)器節(jié)點(diǎn)主要負(fù)責(zé)整個(gè)無(wú)線(xiàn)網(wǎng)絡(luò)的建立與維護(hù),同時(shí)將收集到的數(shù)據(jù)信息反饋給上位機(jī)它是整個(gè)ZigBee網(wǎng)絡(luò)的控制中心。
其中LPC2103是支持實(shí)時(shí)仿真的ARM7TDMI-S CPU,并自帶16kB 和32kB嵌入的高速Flash存儲(chǔ)器,LPC2103包含兩個(gè)UART串行接口、2個(gè)I2C 總線(xiàn)和SPI到SSP總線(xiàn),配合片內(nèi)的存儲(chǔ)器一起使用,實(shí)現(xiàn)通信網(wǎng)關(guān)和協(xié)議轉(zhuǎn)換。協(xié)調(diào)器節(jié)點(diǎn)的結(jié)構(gòu)如圖1所示。
參考節(jié)點(diǎn)硬件設(shè)計(jì)
參考節(jié)點(diǎn)是由CC3430芯片和一些外圍元器件組成,參考節(jié)點(diǎn)硬件結(jié)構(gòu)如圖2所示。
電路設(shè)計(jì)過(guò)程中為了方便用戶(hù)攜帶安裝,盡量減小節(jié)點(diǎn)體積,除了必要的時(shí)鐘和程序燒寫(xiě)接口、調(diào)試接口,就沒(méi)有設(shè)計(jì)其他的元器件。具體硬件有:
(1)32MHz系統(tǒng)主時(shí)鐘。采用貼片晶體,晶體只有引腳1和引腳3有效,分別通過(guò)電容再各自連接到CC2430芯片的引腳21、引腳29;
(2)CC2430片上系統(tǒng)。利用較低的成本就可以建立強(qiáng)大的網(wǎng)絡(luò)節(jié)點(diǎn),性能穩(wěn)定,用戶(hù)可以根據(jù)實(shí)際需要來(lái)選擇芯片;
(3)大功率的參考節(jié)點(diǎn)主要是附加了射頻前端CC2591,通過(guò)提高無(wú)線(xiàn)通信部分的發(fā)射功率,提高信號(hào)強(qiáng)度來(lái)改善接收靈敏度,并擴(kuò)大了通信距離。
移動(dòng)節(jié)點(diǎn)硬件設(shè)計(jì)
移動(dòng)節(jié)點(diǎn)的硬件結(jié)構(gòu)與參考節(jié)點(diǎn)大致相同,因?yàn)橐苿?dòng)節(jié)點(diǎn)的位置是不斷更新的,為了能及時(shí)更新位置,其內(nèi)部采用自帶定位引擎功能的CC2431芯片。通過(guò)接收參考節(jié)的RSSI值,來(lái)定位計(jì)算自身的位置坐標(biāo),而其他結(jié)構(gòu)相同。
圖1 協(xié)調(diào)器節(jié)點(diǎn)的結(jié)構(gòu)圖
圖2 參考節(jié)點(diǎn)硬件結(jié)構(gòu)圖
參考節(jié)點(diǎn)的軟件設(shè)計(jì)
為了移動(dòng)節(jié)點(diǎn)能夠更好定位位置坐標(biāo),參考節(jié)點(diǎn)會(huì)向其提供位置信息的參考數(shù)據(jù)包,包括參考節(jié)點(diǎn)自身的坐標(biāo)信息和接收信號(hào)強(qiáng)度RSSI均值。首先對(duì)參考節(jié)點(diǎn)進(jìn)行初始化設(shè)置,包括設(shè)置寄存器、初始化數(shù)據(jù)變量以及引腳的定義等。首次加入網(wǎng)絡(luò)時(shí),協(xié)調(diào)器節(jié)點(diǎn)需要對(duì)參考節(jié)點(diǎn)的配置位置坐標(biāo),并將坐標(biāo)值寫(xiě)入存儲(chǔ)器,如果參考節(jié)點(diǎn)已經(jīng)連接到網(wǎng)絡(luò),協(xié)調(diào)器節(jié)點(diǎn)會(huì)直接讀取存儲(chǔ)器內(nèi)的坐標(biāo)值。
初始化后,參考節(jié)點(diǎn)會(huì)反復(fù)確認(rèn)是否有移動(dòng)節(jié)點(diǎn)向其發(fā)送XY?RSSI請(qǐng)求消息(串ID 0x0012),確認(rèn)請(qǐng)求后回復(fù)(串ID 0x0011),并優(yōu)化計(jì)算所收集到的RSSI 值得到其均值。移動(dòng)節(jié)點(diǎn)將接收到的坐標(biāo)值和RSSI均值作為參數(shù)來(lái)計(jì)算本身的位置RSSI信息。除了應(yīng)答移動(dòng)節(jié)點(diǎn)的請(qǐng)求,參考節(jié)點(diǎn)還要反復(fù)檢測(cè)是否接收到來(lái)自上層節(jié)點(diǎn)的配置命令。如果有,參考節(jié)點(diǎn)就對(duì)(串ID 0x0012)進(jìn)行判斷分析,并將數(shù)據(jù)包中的坐標(biāo)信息寫(xiě)入Flash存儲(chǔ)器。
移動(dòng)節(jié)點(diǎn)軟件設(shè)計(jì)
為了更新移動(dòng)節(jié)點(diǎn)的坐標(biāo)(X,Y),移動(dòng)節(jié)點(diǎn)需要向參考節(jié)點(diǎn)廣播位置更新請(qǐng)求(串ID 0x0012),收到Blast 信息廣播后,參考節(jié)點(diǎn)會(huì)對(duì)接收到的RSSI值進(jìn)行加權(quán)計(jì)算,并回復(fù)其位置坐標(biāo)及RSSI平均值。移動(dòng)節(jié)點(diǎn)再根據(jù)參考節(jié)點(diǎn)發(fā)送來(lái)的坐標(biāo)值,收集其數(shù)據(jù)和RSSI值,并按從小到大的順序排列;通過(guò)計(jì)算參考節(jié)點(diǎn)坐標(biāo)值的偏移量,將參考節(jié)點(diǎn)的實(shí)際坐標(biāo)值 (X,Y)轉(zhuǎn)換成定位運(yùn)算所需要的邏輯坐標(biāo);獲得邏輯坐標(biāo)后,系統(tǒng)根據(jù)定位算法進(jìn)行定位運(yùn)算,并將結(jié)果轉(zhuǎn)換成實(shí)際坐標(biāo)值。
移動(dòng)節(jié)點(diǎn)完成自己坐標(biāo)的定位運(yùn)算后,首先向定位網(wǎng)絡(luò)監(jiān)控管理設(shè)備發(fā)送請(qǐng)求信息,并將自身計(jì)算出的坐標(biāo)值(X,Y)上傳給網(wǎng)絡(luò)。移動(dòng)節(jié)點(diǎn)參考相鄰參考節(jié)點(diǎn)所發(fā)來(lái)的數(shù)據(jù)信息來(lái)獲得它們的位置坐標(biāo)和RSSI值,再將坐標(biāo)和相應(yīng)參數(shù)(,)An代入具體的計(jì)算公式得出自己的位置坐標(biāo)(X’,Y’),并發(fā)送給協(xié)調(diào)器節(jié)點(diǎn),上傳給井上的上位機(jī)。
協(xié)調(diào)器節(jié)點(diǎn)的軟件設(shè)計(jì)
協(xié)調(diào)器節(jié)點(diǎn)初始化設(shè)置后,為了確定網(wǎng)絡(luò)的連接會(huì)反復(fù)的檢測(cè)是否有來(lái)自上位機(jī)的控制命令,直到確定收到上位機(jī)的控制命令。協(xié)調(diào)器節(jié)點(diǎn)在收到控制命令后,首先向各個(gè)參考節(jié)點(diǎn)廣播位置請(qǐng)求信息;同時(shí)反復(fù)確認(rèn)是否有來(lái)自其他節(jié)點(diǎn)的請(qǐng)求信號(hào),如果有就將數(shù)據(jù)通過(guò)串口發(fā)送到上位機(jī),協(xié)調(diào)器節(jié)點(diǎn)的工作就完成了。
首先對(duì)參考節(jié)點(diǎn)進(jìn)行上電復(fù)位,并設(shè)置了5個(gè)參考節(jié)點(diǎn),再將移動(dòng)節(jié)點(diǎn)依次放置臨近參考節(jié)點(diǎn)的位置,不斷調(diào)節(jié)移動(dòng)節(jié)點(diǎn)的A值和N值,來(lái)提高節(jié)點(diǎn)的定位精度。多次實(shí)驗(yàn)后確定A值的理想范圍是46~49,N值的理想范圍是15~25。
設(shè)置完成后,如果不斷地改變移動(dòng)節(jié)點(diǎn)的位置,移動(dòng)節(jié)點(diǎn)坐標(biāo)會(huì)不停的變化,為了測(cè)試定位進(jìn)精度的準(zhǔn)確性,系統(tǒng)把監(jiān)控界面上顯示的坐標(biāo)和實(shí)際坐標(biāo)值進(jìn)行比較,并對(duì)其作出誤差分析。從表中可以看出當(dāng)N值為16、A值為39.00時(shí)的誤差分析。系統(tǒng)布置的參考節(jié)點(diǎn)比較密集,每15米放置一個(gè),可以看出誤差在1.7m左右。誤差分析如表1所示。
表1 誤差分析
通過(guò)上述的實(shí)驗(yàn)驗(yàn)證,實(shí)際坐標(biāo)與監(jiān)測(cè)坐標(biāo)誤差較小,文章設(shè)計(jì)的監(jiān)控系統(tǒng)對(duì)井下機(jī)車(chē)具有一定的定位效果,節(jié)點(diǎn)組成的無(wú)線(xiàn)傳感網(wǎng)絡(luò)性能也與實(shí)際要求相符,具有一定的可行性。
趙玉榮 方 策
安徽新華學(xué)院電子通信工程學(xué)趙玉榮(1987-)女,安徽合肥人,安徽新華學(xué)院電子通信工程學(xué)院助教。
趙玉榮(1987-)女,安徽合肥人,講師,安徽新華學(xué)院電子通信工程學(xué)院教師。
省級(jí)自然科學(xué)研究項(xiàng)目(KJ2016A305);省級(jí)創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃創(chuàng)新訓(xùn)練項(xiàng)目(AH201412216004)
10.3969/j.issn.1001-8972.2016.09.022