無線傳感器網(wǎng)絡(luò)數(shù)據(jù)中轉(zhuǎn)器的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:介紹了無線傳感器網(wǎng)絡(luò)數(shù)據(jù)中轉(zhuǎn)器的工作原理和重要作用,提出了一種以32位ARM處理器LPC2148為核心的數(shù)據(jù)中轉(zhuǎn)器的設(shè)計(jì)方案,詳細(xì)介紹了教據(jù)中轉(zhuǎn)器的軟件設(shè)計(jì)、通信協(xié)議設(shè)計(jì)以及GPRS通信方式。該設(shè)計(jì)方案實(shí)時(shí)性強(qiáng),穩(wěn)定可靠。
關(guān)鍵詞:無線傳感器網(wǎng)絡(luò);數(shù)據(jù)中轉(zhuǎn)器;GPRS通信;ARM LPC2148
0 引言
無線傳感器網(wǎng)絡(luò)是一種全新的信息獲取平臺(tái),它可借助于多樣傳感器來實(shí)時(shí)監(jiān)測和收集網(wǎng)絡(luò)分布區(qū)域內(nèi)各種目標(biāo)對象的狀態(tài)信息,因而具有廣闊的應(yīng)用前景。本文所討論的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)中轉(zhuǎn)器就是為實(shí)現(xiàn)遠(yuǎn)程上位機(jī)對目標(biāo)區(qū)域內(nèi)的各種環(huán)境參數(shù)的實(shí)時(shí)監(jiān)控而設(shè)汁的,它在整個(gè)系統(tǒng)中可實(shí)現(xiàn)無線傳感器采集數(shù)據(jù)的上傳和遠(yuǎn)程上位機(jī)控制命令的下達(dá),對整個(gè)無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)的穩(wěn)定應(yīng)用起著承上啟下的作用。
1 無線傳感器網(wǎng)絡(luò)的組成及工作原理
無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)的總體結(jié)構(gòu)方案如圖1所示。該系統(tǒng)由無線傳感器網(wǎng)絡(luò),數(shù)據(jù)中轉(zhuǎn)器,GPRS無線傳輸和上位機(jī)服務(wù)器等4部分組成。無線傳感器網(wǎng)絡(luò)(一個(gè)網(wǎng)絡(luò)一般可包含128個(gè)采集節(jié)點(diǎn))負(fù)責(zé)采集監(jiān)測環(huán)境的有關(guān)數(shù)據(jù),包括監(jiān)測環(huán)境參數(shù)(空氣濕度,降雨量和土壤溫度等)和無線傳感器網(wǎng)絡(luò)數(shù)據(jù)(采集節(jié)點(diǎn)路由表、采集節(jié)點(diǎn)鄰居表以及采集節(jié)點(diǎn)狀態(tài)表),并通過ZigBee網(wǎng)絡(luò)(監(jiān)測區(qū)域內(nèi)的短距離通信)發(fā)送給數(shù)據(jù)中轉(zhuǎn)器保存。當(dāng)存儲(chǔ)的數(shù)據(jù)達(dá)到規(guī)定的數(shù)量以后,便可通過GPRS網(wǎng)絡(luò)(監(jiān)測區(qū)域與服務(wù)器問的遠(yuǎn)距離通信網(wǎng)絡(luò))傳輸給上位機(jī)服務(wù)器,這樣可以減少數(shù)據(jù)中轉(zhuǎn)器與上位機(jī)的通信次數(shù),降低系統(tǒng)的功耗。七位機(jī)服務(wù)器則可通過GPRS網(wǎng)絡(luò)發(fā)送控制命令給數(shù)據(jù)中轉(zhuǎn)器,進(jìn)而轉(zhuǎn)發(fā)給無線傳感器,用以控制傳感器采集數(shù)據(jù)的類型、數(shù)據(jù)采集間隔、數(shù)據(jù)上傳間隔、網(wǎng)絡(luò)數(shù)據(jù)上傳類型等,以使無線傳感器能按照用戶所希望的方式來工作。
2 數(shù)據(jù)中轉(zhuǎn)器的組成及工作原理
本文所討論的數(shù)據(jù)中轉(zhuǎn)器的硬件結(jié)構(gòu)如圖2所示。數(shù)據(jù)中轉(zhuǎn)器以ARM處理器為核心構(gòu)建而成,由雙鋰電池供電,通過匯聚節(jié)點(diǎn)和GPRS模塊分別與無線傳感器網(wǎng)絡(luò)和上位機(jī)通信。ARM處理器選用32位嵌入式處理器LPC2148,該處理器內(nèi)置寬范圍的串行通信接口,并擁有40 KB的片內(nèi)靜態(tài)RAM和512 KB的片內(nèi)Flash程序存儲(chǔ)器,能完全滿足系統(tǒng)的應(yīng)用要求。GPRS模塊選用SIM公司的SIM300C,其內(nèi)部整合了TPC/IP協(xié)議,下載/上傳速度分別可達(dá)85.5/42.8 kB/s。匯聚節(jié)點(diǎn)主要由基于ZigBee協(xié)議的射頻芯片CC2531來組成。數(shù)據(jù)中轉(zhuǎn)器在整個(gè)數(shù)據(jù)采集系統(tǒng)中可起到一個(gè)承上啟下的作用,它可通過匯聚節(jié)點(diǎn)存儲(chǔ)和轉(zhuǎn)發(fā)無線傳感器網(wǎng)絡(luò)上傳的采集數(shù)據(jù)和網(wǎng)絡(luò)信息,并通過GPRS模塊接收和轉(zhuǎn)發(fā)上位機(jī)下達(dá)的控制命令。ARM處理器LPC2148通過串口uart0與匯聚節(jié)點(diǎn)進(jìn)行通信,而通過串口uart1與GPRS模塊通信,同時(shí)通過串口SPI0將需要存儲(chǔ)的大量采集數(shù)據(jù)存入內(nèi)存容量為2 GB的SD卡中。
3 數(shù)據(jù)中轉(zhuǎn)器的設(shè)計(jì)
數(shù)據(jù)中轉(zhuǎn)器的應(yīng)用程序開發(fā)可采用ARM Developer Suite V1.2開發(fā)環(huán)境。在該開發(fā)環(huán)境中,可完成程序的編輯與調(diào)試。編程語言以C語言為主,并可嵌入ARM匯編語言,系統(tǒng)平臺(tái)采用μC/OS-Ⅱ嵌入式實(shí)時(shí)操作系統(tǒng),以保障開發(fā)程序能夠可靠穩(wěn)定的運(yùn)行。
3.1 數(shù)據(jù)中轉(zhuǎn)器的工作流程
本文所討論的數(shù)據(jù)中轉(zhuǎn)器和無線傳感器都具備休眠功能,這樣可以有效的降低系統(tǒng)功耗。無線傳感器平時(shí)處于休眠狀態(tài),當(dāng)需要采集數(shù)據(jù)和上傳數(shù)據(jù)時(shí),再自動(dòng)醒來聯(lián)網(wǎng)并喚醒數(shù)據(jù)中轉(zhuǎn)器。數(shù)據(jù)中轉(zhuǎn)器被喚醒后,便可接收無線傳感器網(wǎng)絡(luò)的上傳數(shù)據(jù),并存儲(chǔ)在SD卡中,然后判斷無線傳感器網(wǎng)絡(luò)上傳數(shù)據(jù)次數(shù)N(N的初始值為0),如果N小于10,數(shù)據(jù)中轉(zhuǎn)器將通知無線傳感器休眠,同時(shí)自己也進(jìn)入休眠狀態(tài)。如果N等于10,數(shù)據(jù)中轉(zhuǎn)器將啟動(dòng)GPRS模塊,再將SD卡內(nèi)的大量數(shù)據(jù)上傳給上位機(jī),在供用戶存儲(chǔ)顯示使用之后,上位機(jī)將下達(dá)新的數(shù)據(jù)采集控制命令,以控制無線傳感器采集數(shù)據(jù)的類型、數(shù)據(jù)采集間隔、數(shù)據(jù)上傳間隔、網(wǎng)絡(luò)數(shù)據(jù)上傳的類型等給數(shù)據(jù)中轉(zhuǎn)器,數(shù)據(jù)中轉(zhuǎn)器將新的數(shù)據(jù)采集控制命令轉(zhuǎn)達(dá)給尢線傳感器后便進(jìn)入休眠狀態(tài),無線傳感器在更新采集參數(shù)后,也進(jìn)入休眠狀態(tài)。整個(gè)無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)就這樣周而復(fù)始的工作,圖3所示為其系統(tǒng)軟件工作流程圖。
3.2 數(shù)據(jù)通信協(xié)議
無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)中各個(gè)模塊之間的通信需要制定明確的數(shù)據(jù)通信協(xié)議。數(shù)據(jù)通信協(xié)議可以保證數(shù)據(jù)安全正確的收發(fā),便于系統(tǒng)中各個(gè)模塊對數(shù)據(jù)的接收、解析和存儲(chǔ)管理。該系統(tǒng)通信協(xié)議的數(shù)據(jù)幀格式如表1所列。
表1中:SOP為起始標(biāo)志符,可用一個(gè)字節(jié)來表示數(shù)據(jù)幀的起始,將這個(gè)字節(jié)定義為0x7E;CMD表示命令I(lǐng)D,用一個(gè)字節(jié)的數(shù)據(jù)來標(biāo)識(shí)命令消息;LEN表示DATA的長度.也用一個(gè)字節(jié)來指示DATA位的數(shù)據(jù)長度;DATA為具體要發(fā)送的數(shù)據(jù);FCS是校驗(yàn)位,這里的校驗(yàn)使用異或校驗(yàn)來校驗(yàn)CMD、LEN、DATA中的所有數(shù)據(jù);STOP為結(jié)束標(biāo)志符,用一個(gè)字節(jié)來表示數(shù)據(jù)幀的結(jié)束,一般將這個(gè)字節(jié)定義為0xAA。
當(dāng)無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)的各個(gè)模塊接收到數(shù)據(jù)后,都是通過判別CMD來對數(shù)據(jù)幀的類型進(jìn)行解析。數(shù)據(jù)幀的CMD有如下五種類型:其中,0X02為無線傳感器向數(shù)據(jù)中轉(zhuǎn)器上傳采集數(shù)據(jù)的命令;0X03為數(shù)據(jù)中轉(zhuǎn)器告知無線傳感器休眠的命令;0X04為數(shù)據(jù)中轉(zhuǎn)器向上位機(jī)服務(wù)器上傳采集數(shù)據(jù)的命令;0X05為上位機(jī)服務(wù)器向數(shù)據(jù)中轉(zhuǎn)器下達(dá)數(shù)據(jù)采集控制的命令;0X06為數(shù)據(jù)中轉(zhuǎn)器向無線傳感器轉(zhuǎn)達(dá)數(shù)據(jù)采集控制的命令。
系統(tǒng)中各個(gè)模塊之間按以上制定的數(shù)據(jù)幀格式進(jìn)行通信,可以極大地排除雜亂信號(hào)的干擾,簡化系的軟件設(shè)計(jì),從而達(dá)到數(shù)據(jù)傳輸?shù)陌踩院涂煽啃浴?br />
3.3 基于AT指令的GPRS通信
GPRS模塊SIM300C作為一個(gè)功能獨(dú)立而且完善的模塊,可以通過外接SIM手機(jī)卡實(shí)現(xiàn)與遠(yuǎn)端上位機(jī)的連接和通信,ARM芯片LPC2148則利用AT指令以GPRS流量的方式發(fā)送數(shù)據(jù)給上位機(jī)。ARM發(fā)送的AT指令都是以字節(jié)為單位,回車符代表指令的結(jié)束,模塊接收到回車符后開始執(zhí)行指令。模塊執(zhí)行指令后的一切返回值(無論是指令執(zhí)行后的OK,還是ERROR)都是以不可打印字符“0D0A”開始和結(jié)束。LPC2148與GPRS模塊之間可通過UART1通信。本系統(tǒng)使用表2所列指令來實(shí)現(xiàn)與遠(yuǎn)程上位機(jī)服務(wù)器的數(shù)據(jù)傳輸。
表2中第一條AT指令可使得GPRS模塊附著到GPRS網(wǎng)絡(luò);第二條AT指令為GPRS模塊聯(lián)網(wǎng)而設(shè)置的上下文環(huán)境;第三條AT指令用于激活GPRS網(wǎng)絡(luò)的上下文環(huán)境,并獲取網(wǎng)絡(luò)IP;第四條AT指令用于建立TCP連接。由于本設(shè)計(jì)中的數(shù)據(jù)中轉(zhuǎn)器需與遠(yuǎn)程上位機(jī)相互通信,因而必須建立TCP連接,這樣,首先GPRS模塊會(huì)返同一個(gè)對此條指令認(rèn)可的確認(rèn)消息“OK”,之后,如若TCP網(wǎng)絡(luò)連接建立成功則會(huì)返回“CONNECT OK\r”,表示物理通道已經(jīng)成功建立,之后便可調(diào)用最后一條指令與遠(yuǎn)端上位機(jī)進(jìn)行數(shù)據(jù)通信。
4 結(jié)語
無線傳感器網(wǎng)絡(luò)數(shù)據(jù)中轉(zhuǎn)器在很大程度上可以解決無線傳感器網(wǎng)絡(luò)與上位機(jī)服務(wù)器之間的遠(yuǎn)程通信問題,并能有效地降低整個(gè)系統(tǒng)的功耗。經(jīng)過試驗(yàn)表明,上述設(shè)計(jì)方案具有穩(wěn)定可靠,數(shù)據(jù)傳輸準(zhǔn)確等優(yōu)點(diǎn),能夠滿足無線傳感器網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)在長期無人值守的情況下監(jiān)測某一區(qū)域環(huán)境信息的要求。