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