張正華,殷有燁,湯 旭
(揚(yáng)州大學(xué)信息工程學(xué)院,江蘇揚(yáng)州225000)
自然環(huán)境與人類生產(chǎn)生活密切相關(guān),對于環(huán)境中一些重要參數(shù)的及時獲取,可以有效地幫助人們解決實(shí)際生產(chǎn)生活中所遇到的問題。近年來物聯(lián)網(wǎng)技術(shù)日新月異。人們可以借助于物聯(lián)網(wǎng)的技術(shù)及時準(zhǔn)確地獲取自己想要的環(huán)境數(shù)據(jù)。以基于ZigBee的無線傳感器網(wǎng)絡(luò)技術(shù)是目前比較流行的一種近程通信技術(shù)手段[1]。在環(huán)境監(jiān)測應(yīng)用中,通過其自組網(wǎng)和多跳技術(shù)的方式[2],能夠滿足普通環(huán)境下終端監(jiān)測節(jié)點(diǎn)傳回?cái)?shù)據(jù)的要求。然而為了使得環(huán)境監(jiān)測系統(tǒng)適用于更為復(fù)雜的野外環(huán)境,可以考慮通過多種無線通信的方式(比如GPRS、Wi-Fi以及藍(lán)牙等技術(shù))實(shí)現(xiàn)數(shù)據(jù)的有效傳輸,從而要求環(huán)境監(jiān)測系統(tǒng)中的網(wǎng)關(guān)能夠?qū)Χ喾N傳輸協(xié)議下所傳輸?shù)男畔⑦M(jìn)行解析,數(shù)據(jù)格式轉(zhuǎn)換,實(shí)現(xiàn)網(wǎng)關(guān)能夠廣泛接入多種通信技術(shù)。這也是目前物聯(lián)網(wǎng)網(wǎng)關(guān)研究熱點(diǎn)之一,其應(yīng)用前景較為廣闊。
一個完整的物聯(lián)網(wǎng)環(huán)境監(jiān)測系統(tǒng),一般是由3大部分組成:無線傳感器網(wǎng)絡(luò)(WSN)、網(wǎng)關(guān)和后臺監(jiān)控中心。在文中選取TI公司的片上系統(tǒng)CC2430芯片和SHT11的溫濕度傳感器,通過I2C總線將其構(gòu)建成環(huán)境監(jiān)測系統(tǒng)中的終端節(jié)點(diǎn)。終端的傳感器節(jié)點(diǎn)分布在所要監(jiān)測的環(huán)境區(qū)域內(nèi),同時能夠正確地采集監(jiān)測范圍內(nèi)的溫度和濕度信息,并且各個節(jié)點(diǎn)能在監(jiān)測范圍內(nèi)以自組網(wǎng)的方式構(gòu)建網(wǎng)絡(luò),然后以多跳技術(shù)方式將數(shù)據(jù)傳輸至網(wǎng)關(guān)部分。網(wǎng)關(guān)部分對接收到的數(shù)據(jù)進(jìn)行一系列的重新打包處理,最后選擇通過Wi-Fi的傳輸方式上傳至監(jiān)控中心。對于整體系統(tǒng)只做了個簡要概述,主要針對網(wǎng)關(guān)系統(tǒng)進(jìn)行了研究。
三星公司的基于ARM9架構(gòu)的S3C2440[3]微處理器是一款高性能、低功耗的16/32位的RISC處理器[4]。這款微處理器主頻高達(dá)400MHz,擁有完整的系統(tǒng)外圍設(shè)備,省去了系統(tǒng)額外配置器件的需要,降低了成本。此外,這款微處理器可以擴(kuò)展豐富的外部資源,如外部存儲器、串口和網(wǎng)口等,這就為以后所設(shè)計(jì)系統(tǒng)的升級開發(fā)打下了基礎(chǔ)。
設(shè)計(jì)選用的是基于S3C2440的Micro2440一個雙層電路核心板。這款核心板其實(shí)是個最小系統(tǒng),包括了最基本的電源電路(5V供電)、復(fù)位電路和JTAG口等。核心板板上引出了各種常見接口,多余的I/O口則通過插針引出,方便了網(wǎng)關(guān)系統(tǒng)的設(shè)計(jì),網(wǎng)關(guān)硬件框圖如圖1所示。
圖1 網(wǎng)關(guān)硬件框圖
Linux操作系統(tǒng)其源碼公開,內(nèi)核精悍,運(yùn)行穩(wěn)定,所需資源少,支持硬件數(shù)量龐大。而且各種硬件驅(qū)動程序源代碼都可以得到,為用戶帶來很大方便。選擇移植Linux操作系統(tǒng)也為網(wǎng)關(guān)實(shí)現(xiàn)廣泛接入帶來很大方便。對于操作系統(tǒng)的移植主要包括了Bootloader移植[5]、Linux系統(tǒng)移植、根文件系統(tǒng)制作和各個模塊驅(qū)動程序?qū)崿F(xiàn)[6]。
網(wǎng)關(guān)中的組建網(wǎng)絡(luò)及應(yīng)用程序設(shè)計(jì)主要有3個步驟:首先是網(wǎng)絡(luò)初始化,由網(wǎng)關(guān)中的協(xié)調(diào)器節(jié)點(diǎn)建網(wǎng),然后是子節(jié)點(diǎn)加入網(wǎng)絡(luò),最后是讀取子節(jié)點(diǎn)上的數(shù)據(jù),轉(zhuǎn)換并發(fā)送[7]。圖2和圖3是網(wǎng)關(guān)的具體程序設(shè)計(jì)流程。
圖2 網(wǎng)絡(luò)初始化
圖3 網(wǎng)關(guān)APP工作流程
在上述中監(jiān)測系統(tǒng)是以ZigBee這一固定設(shè)備構(gòu)建的無線傳感器網(wǎng)絡(luò)作為接入對象的,通過測試證明在環(huán)湖景點(diǎn)這樣普通環(huán)境下是可行的。但是在更為復(fù)雜環(huán)境下,需要多種通信設(shè)備的接入,這就提出了網(wǎng)關(guān)廣泛接入的要求。在本文中構(gòu)建了一種新型的網(wǎng)關(guān)功能層次模型。該模型分別由協(xié)議適配層、統(tǒng)一信息格式轉(zhuǎn)換層和標(biāo)準(zhǔn)信息構(gòu)成層組成,如圖4所示。
圖4 網(wǎng)關(guān)功能層次模型圖
各個層的功能明確,協(xié)議適配層負(fù)責(zé)解析出數(shù)據(jù),格式轉(zhuǎn)換和標(biāo)準(zhǔn)信息層主要負(fù)責(zé)對數(shù)據(jù)重新打包處理。這其中協(xié)議適配層是實(shí)現(xiàn)廣泛接入機(jī)制的關(guān)鍵,在這一層中主要實(shí)現(xiàn)的是將各個不同設(shè)備構(gòu)建的異構(gòu)網(wǎng)絡(luò)上傳的信息進(jìn)行解析,獲得有效數(shù)據(jù),由于不同感知網(wǎng)絡(luò)存在著明顯不同,所以要使用同一種模式進(jìn)行適配是不可行的。本文中提出一種模塊可加載的方法,通過靈活添加不同的硬件設(shè)備以及相應(yīng)的驅(qū)動程序軟件,來實(shí)現(xiàn)不同網(wǎng)絡(luò)在該適配層進(jìn)行統(tǒng)一配置[8]。
該模型硬件構(gòu)成和操作系統(tǒng)都是以文中前面所述框架為基礎(chǔ)的,要實(shí)現(xiàn)廣泛接入機(jī)制主要是在APP應(yīng)用程序上結(jié)合Linux共享庫文件(.so文件)來實(shí)現(xiàn)動態(tài)加載的。首先需要編譯一個共享函數(shù)庫文件(.so文件)。應(yīng)用程序里只需一個“指向”位置,程序本身不再包含函數(shù)代碼,然后將應(yīng)用程序編譯成可執(zhí)行文件[9],并裝載到網(wǎng)關(guān)系統(tǒng)的內(nèi)存中執(zhí)行,當(dāng)可執(zhí)行文件需要用到共享函數(shù)庫機(jī)制時,函數(shù)引用才會被解析并產(chǎn)生對共享庫的調(diào)用[10],共享庫才會被加載到內(nèi)存中執(zhí)行。APP的可執(zhí)行文件中具有指向共享函數(shù)庫的指針,是擁有指向功能,因此在接入不同的近程通信設(shè)備時只需升級共享函數(shù)庫,APP的可執(zhí)行文件無需重新編譯變動,就可以實(shí)現(xiàn)對升級后的共享庫文件的調(diào)用,從而實(shí)現(xiàn)了網(wǎng)關(guān)系統(tǒng)的廣泛接入機(jī)制。圖5就是一個動態(tài)鏈接加載實(shí)現(xiàn)框圖。
圖5 動態(tài)鏈接加載框圖
網(wǎng)關(guān)能夠很好地接收以ZigBee構(gòu)建的無線傳感器網(wǎng)絡(luò)上傳的數(shù)據(jù),并對數(shù)據(jù)進(jìn)行重新打包處理后上傳至服務(wù)器,最后通過設(shè)計(jì)的數(shù)據(jù)支撐軟件服務(wù)界面顯示出來,如圖6所示。
圖6 測試圖
圖7所示的是環(huán)湖景點(diǎn)環(huán)境監(jiān)測系統(tǒng)實(shí)驗(yàn)結(jié)果平面圖。
圖7 環(huán)湖景點(diǎn)平面圖
由上述2幅實(shí)驗(yàn)圖可見基于ZigBee構(gòu)建的環(huán)湖景點(diǎn)的環(huán)境監(jiān)測系統(tǒng)是成功的,所以網(wǎng)關(guān)的設(shè)計(jì)也是合理的,網(wǎng)關(guān)能夠很好地接入ZigBee設(shè)備,并接受處理ZigBee傳輸?shù)臏貪穸葦?shù)據(jù)。因此在這設(shè)計(jì)合理的網(wǎng)關(guān)系統(tǒng)上進(jìn)行一次延伸,給出的廣泛接入機(jī)制的實(shí)現(xiàn)方法是可行的。
在以ZigBee作為無線數(shù)據(jù)傳輸設(shè)備接入網(wǎng)關(guān)的物聯(lián)網(wǎng)環(huán)境監(jiān)測系統(tǒng)的實(shí)驗(yàn)基礎(chǔ)上,提出一種物聯(lián)網(wǎng)環(huán)境監(jiān)測中的網(wǎng)關(guān)廣泛接入機(jī)制的研究實(shí)現(xiàn)方法。該方法可以靈活方便地使得環(huán)境監(jiān)測中的網(wǎng)關(guān)接入不同的通信設(shè)備,從而拓展了物聯(lián)網(wǎng)技術(shù)在環(huán)境監(jiān)測中的應(yīng)用,同時也是針對物聯(lián)網(wǎng)網(wǎng)關(guān)進(jìn)行標(biāo)準(zhǔn)化工作以及實(shí)現(xiàn)各種通信技術(shù)標(biāo)準(zhǔn)的互聯(lián)互通奠定了基礎(chǔ)。
[1]章偉聰,梁越,俞新武.基于CC2430的溫室智能無線傳感器節(jié)點(diǎn)設(shè)計(jì)[J].農(nóng)機(jī)化研究,2011,6(6):159-162.
[2]張演飛.基于CC2430的ZigBee組網(wǎng)技術(shù)[J].物聯(lián)網(wǎng)技術(shù),2011,3(6):65-67.
[3]魏亞楠,吳伯農(nóng).基于S3C2440家庭網(wǎng)關(guān)設(shè)計(jì)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2012,21(6):244-248.
[4]張金金,高軍偉,張明超.基于S3C2440的無線傳感器網(wǎng)絡(luò)匯聚節(jié)點(diǎn)設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2012,25(9):1-2.
[5]文全剛.嵌入式Linux操作系統(tǒng)原理與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2011.
[6]王永鋒,楊育,顧永明.基于S3C2440和Linux的溫濕度測控系統(tǒng)設(shè)計(jì)[J].現(xiàn)代科學(xué)儀器,2011,12(6):37-40.
[7]潘云寬.基于ZigBee的無線傳感網(wǎng)絡(luò)環(huán)境監(jiān)測系統(tǒng)研究[D].南京:南京理工大學(xué),2010.
[8]孟勇濤.基于嵌入式系統(tǒng)的物聯(lián)網(wǎng)網(wǎng)關(guān)研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2012.
[9]Neil Matthew,Richard Stones.Linux程序設(shè)計(jì)[M].陳健,宋健健 譯.北京:人民郵電出版社,2010.
[10]鳥哥.鳥哥的Linux私房菜[M].北京:人民郵電出版社,2010.