謝巧玲
(西安文理學(xué)院 陜西 西安 710065)
基于OK6410的無(wú)線傳感器網(wǎng)絡(luò)匯聚節(jié)點(diǎn)設(shè)計(jì)
謝巧玲
(西安文理學(xué)院 陜西 西安710065)
通過(guò)具體實(shí)驗(yàn)分析無(wú)線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)中匯聚節(jié)點(diǎn)的工作方式,并針對(duì)匯聚節(jié)點(diǎn)對(duì)數(shù)據(jù)匯聚、轉(zhuǎn)發(fā)以及控制簇內(nèi)節(jié)點(diǎn)的能耗等特性,提出了一種基于OK6410和CC2530開(kāi)發(fā)板的匯聚節(jié)點(diǎn)設(shè)計(jì)方案,同時(shí)利用Linux實(shí)現(xiàn)節(jié)點(diǎn)的任務(wù)管理和網(wǎng)絡(luò)通信。并結(jié)合監(jiān)測(cè)小范圍環(huán)境質(zhì)量的實(shí)驗(yàn)得出,所設(shè)計(jì)的匯聚節(jié)點(diǎn)穩(wěn)定可靠,且功耗低,待機(jī)時(shí)間長(zhǎng)。
無(wú)線傳感網(wǎng)絡(luò);匯聚節(jié)點(diǎn);OK6410;CC2530;Linux
WSN是由大量的靜止或移動(dòng)的傳感器以自組織和多跳的方式構(gòu)成的無(wú)線網(wǎng)絡(luò),以協(xié)作地感知、采集、處理和傳輸網(wǎng)絡(luò)覆蓋地理區(qū)域內(nèi)被感知對(duì)象的信息,并最終把這些信息發(fā)送給網(wǎng)絡(luò)的所有者[1]。匯聚節(jié)點(diǎn)作為WSN主要的組成部分,主要功能是管理簇內(nèi)節(jié)點(diǎn),監(jiān)控整個(gè)無(wú)線傳感網(wǎng)絡(luò)以及將得到的數(shù)據(jù)發(fā)送到指定地點(diǎn)。匯聚節(jié)點(diǎn)一旦出現(xiàn)故障,整個(gè)網(wǎng)絡(luò)環(huán)境將處于癱瘓狀態(tài)。因此所設(shè)計(jì)匯聚節(jié)點(diǎn)的穩(wěn)定性,持久性便顯得異常的重要。
匯聚節(jié)點(diǎn)是整個(gè)無(wú)線傳感網(wǎng)絡(luò)的樞紐,管理外部環(huán)境中傳感器節(jié)點(diǎn),包括傳感器數(shù)據(jù)的接收、處理以及存儲(chǔ)。同時(shí)負(fù)責(zé)向遠(yuǎn)程服務(wù)器發(fā)送數(shù)據(jù),接收管理節(jié)點(diǎn)的命令等。因此匯聚節(jié)點(diǎn)還有監(jiān)控整個(gè)傳感網(wǎng)絡(luò)的作用。
通過(guò)對(duì)匯聚節(jié)點(diǎn)具體功能的分析,可以總結(jié)出匯聚節(jié)點(diǎn)正常工作所具備有三方面的特點(diǎn):
1)匯聚節(jié)點(diǎn)必須具備一定的控制能力,才能夠管理和監(jiān)測(cè)環(huán)境中無(wú)線傳感器節(jié)點(diǎn)的正常工作。
2)匯聚節(jié)點(diǎn)必須具備一定的數(shù)據(jù)處理、存儲(chǔ)能力,才能夠?qū)⒔邮艿降膫鞲衅鳈z測(cè)數(shù)據(jù)分類管理存儲(chǔ),并進(jìn)行適當(dāng)打包加密處理。
3)匯聚節(jié)點(diǎn)必須具備穩(wěn)定通信能力,同時(shí)需外部提供符合要求的寬帶。以保證匯聚節(jié)點(diǎn)與遠(yuǎn)程服務(wù)器間數(shù)據(jù)交互。
1.1OK6410平臺(tái)介紹
OK6410采用三星的16/32位 RISC微處理器S3C6410(基于ARM1176JZF-S核的用于手持、移動(dòng)等終端設(shè)備的通用處理器)。OK6410開(kāi)發(fā)板集成了多種高端接口,如復(fù)合視頻信號(hào)、攝像頭、USB、SD卡、液晶屏等。這些接口可作為應(yīng)用參考幫助開(kāi)發(fā)者實(shí)現(xiàn)高端產(chǎn)品級(jí)設(shè)計(jì)。其主要結(jié)構(gòu)如下圖:
圖1 處理器接口框架圖
1.2匯聚節(jié)點(diǎn)的硬件設(shè)計(jì)
匯聚節(jié)點(diǎn)硬件框架結(jié)構(gòu)如圖2所示,由OK6410、CC2530、SIM900a模塊組建所需匯聚節(jié)點(diǎn)的整體框架。其中GPRS/ GSM模塊與遠(yuǎn)程服務(wù)器通信,射頻收發(fā)器由低功耗的短距離無(wú)線傳輸模塊組成,本次項(xiàng)目將采用CC2530模塊作為接收傳感器數(shù)據(jù)的模塊。另外,匯聚節(jié)點(diǎn)正常工作需要復(fù)雜的任務(wù)管理和任務(wù)調(diào)度,本次項(xiàng)目采用Linux完成預(yù)定的任務(wù)。
圖2 匯集節(jié)點(diǎn)硬件結(jié)構(gòu)
CC2530是用于2.4GHz IEEE 802.15.4、ZigBee[2]和RF4CE應(yīng)用的片上系統(tǒng)解決方案,集成了高性能、低功耗的8051兼容內(nèi)核,能夠以非常低的成本建立強(qiáng)大的網(wǎng)絡(luò)節(jié)點(diǎn)。CC2530模塊通過(guò)UART0與OK6410核心控制層交互。
GPRS模塊采用SIMCom公司推出的新款緊湊型產(chǎn)品SIM900a,屬于雙頻GSM/GPRS模塊,完全采用SMT封裝形式,具備工業(yè)標(biāo)準(zhǔn)接口,工作頻率為850/900/1800/1900MHz,可低功耗實(shí)現(xiàn)語(yǔ)音、SMS等信息傳輸。項(xiàng)目前期,通過(guò)UART1連接PC調(diào)試匯聚節(jié)點(diǎn)的通信。
根據(jù)上述對(duì)硬件系統(tǒng)設(shè)計(jì)分析,采用GPIO擴(kuò)展自定義的CC2530接口,可用軟件實(shí)現(xiàn)連接WSN中被廣泛使用的MICA以及MICA2節(jié)點(diǎn)[7]。系統(tǒng)本身電源管理模塊復(fù)雜,所以射頻收發(fā)器的電源可以使用獨(dú)立電源。由此分析可以得到系統(tǒng)內(nèi)存映射情況,見(jiàn)表1:
表1 內(nèi)存映射表
2.1軟件功能概述
軟件主體框架如圖3所示。根據(jù)OK6410開(kāi)發(fā)板特性,搭建基于Linux的系統(tǒng)環(huán)境,包括內(nèi)核裁剪,文件系統(tǒng)搭建,驅(qū)動(dòng)模塊移植等等,來(lái)管理整個(gè)網(wǎng)絡(luò)環(huán)境中的硬件設(shè)備和資源的調(diào)度。因?yàn)橐骖檯R聚節(jié)點(diǎn)3個(gè)方面的特性,軟件主體設(shè)計(jì)可分為3個(gè)模塊:如何與傳感器節(jié)點(diǎn)交互、如何處理接收到的數(shù)據(jù)以及如何與遠(yuǎn)程服務(wù)器交互。設(shè)計(jì)方法如下:
圖3 系統(tǒng)軟件結(jié)構(gòu)圖
1)匯聚節(jié)點(diǎn)與傳感器節(jié)點(diǎn)交互:與傳感器節(jié)點(diǎn)的交互以及節(jié)點(diǎn)的監(jiān)控和數(shù)據(jù)的接收,通過(guò)監(jiān)聽(tīng)UART0來(lái)實(shí)現(xiàn)。
2)匯聚節(jié)點(diǎn)與遠(yuǎn)程服務(wù)器交互:與遠(yuǎn)程服務(wù)器的交互任務(wù)主要有打包發(fā)送由傳感器節(jié)點(diǎn)接收來(lái)的數(shù)據(jù),整個(gè)網(wǎng)絡(luò)狀態(tài)的監(jiān)控,網(wǎng)絡(luò)控制命令的接受等。具體框架采用Client/ Server的設(shè)計(jì)模式,以匯聚節(jié)點(diǎn)作為客戶端,遠(yuǎn)程服務(wù)器作為服務(wù)器端,采用TCP/IP通信協(xié)議并借助Socket的方式實(shí)現(xiàn)數(shù)據(jù)的發(fā)送以及網(wǎng)絡(luò)環(huán)境的監(jiān)測(cè)。無(wú)線傳感網(wǎng)絡(luò)的監(jiān)測(cè)采用心跳包的機(jī)制,即如果在指定時(shí)間內(nèi)沒(méi)有收到應(yīng)答信息,則無(wú)線傳感網(wǎng)絡(luò)環(huán)境出現(xiàn)故障,采取重新設(shè)置網(wǎng)絡(luò)環(huán)境同時(shí)切換網(wǎng)絡(luò)連接的方式解決出現(xiàn)的故障。此設(shè)計(jì)方式可利用select()函數(shù)I/O進(jìn)行檢測(cè)來(lái)實(shí)現(xiàn)。
3)匯聚節(jié)點(diǎn)本地?cái)?shù)據(jù)的處理:匯聚節(jié)點(diǎn)對(duì)所接收的數(shù)據(jù)處理主要是打包和存儲(chǔ)[5],如果項(xiàng)目需要還要進(jìn)行必要的加密工作。匯聚節(jié)點(diǎn)數(shù)據(jù)存儲(chǔ)采用輕量級(jí)嵌入式數(shù)據(jù)庫(kù)管理系統(tǒng)SQLite,SQLite是一款開(kāi)源免費(fèi)的低功耗高性能的輕量級(jí)數(shù)據(jù)庫(kù)管理系統(tǒng),提供了豐富的API來(lái)滿足開(kāi)發(fā)者對(duì)不同環(huán)境數(shù)據(jù)庫(kù)設(shè)計(jì)開(kāi)發(fā)的需求。
2.2匯聚節(jié)點(diǎn)應(yīng)用層軟件具體實(shí)現(xiàn)
結(jié)合Linux操作系統(tǒng)的特性,應(yīng)用層軟件設(shè)計(jì)實(shí)施采用多線程編程方法[6],將匯聚節(jié)點(diǎn)的主要功能分別封裝在一個(gè)線程中,即把各個(gè)功能劃分為多個(gè)獨(dú)立的任務(wù),每個(gè)獨(dú)立的線程之間并發(fā)運(yùn)行。利用管道信號(hào)量及全局變量通信,不但能夠使應(yīng)用程序更快的響應(yīng),而且在結(jié)構(gòu)上更加的簡(jiǎn)潔[4]。具體軟件流程如圖4。
圖4 軟件流程圖
本設(shè)計(jì)中匯聚節(jié)點(diǎn)的工作分為:第一步對(duì)匯聚節(jié)點(diǎn)初始化,包括對(duì)傳感器節(jié)點(diǎn)網(wǎng)絡(luò)和GPRS網(wǎng)絡(luò)的初始化設(shè)置,以保證所有網(wǎng)絡(luò)狀態(tài)處于連通狀態(tài);第二步當(dāng)匯聚節(jié)點(diǎn)開(kāi)始工作的時(shí)候,pthread_create()函數(shù)會(huì)創(chuàng)建3個(gè)線程用于后續(xù)工作;第三步利用pthread_join()函數(shù)將當(dāng)前線程掛起,等待線程的結(jié)束。
關(guān)于設(shè)備管理,Linux內(nèi)核將所有設(shè)備看作文件進(jìn)行管理操作,所以當(dāng)監(jiān)聽(tīng)串口狀態(tài)時(shí),利用open()函數(shù)打開(kāi)串口,當(dāng)有數(shù)據(jù)傳來(lái)的時(shí)候,再利用read()、write()函數(shù)對(duì)串口進(jìn)行讀寫(xiě)。
本次項(xiàng)目,后期對(duì)無(wú)線傳感網(wǎng)絡(luò)的維護(hù),在保證網(wǎng)絡(luò)通信的前提下進(jìn)行,不管是對(duì)網(wǎng)絡(luò)的監(jiān)控,命令的手法,還是數(shù)據(jù)的上傳,均采用socket套接字來(lái)實(shí)現(xiàn)[3]。在由匯聚節(jié)點(diǎn)和遠(yuǎn)程服務(wù)器組成的Client/Server工作模式中使用TCP/IP協(xié)議時(shí),匯聚節(jié)點(diǎn)就要使用connect()函數(shù)借助GPRS模塊與遠(yuǎn)程服務(wù)器交互,最后才可以通過(guò)send/sendto和recv/recvfrom函數(shù)實(shí)現(xiàn)客戶端與服務(wù)器數(shù)據(jù)的交互[4]。所以在整個(gè)網(wǎng)絡(luò)的中,可以使用網(wǎng)際控制報(bào)文協(xié)議,即借助ICMP請(qǐng)求和ICMP應(yīng)答功能。其工作流程是先由匯聚節(jié)點(diǎn)定期向遠(yuǎn)程服務(wù)器發(fā)送ICMP請(qǐng)求包,并且在規(guī)定的時(shí)間內(nèi)檢測(cè)是否收到遠(yuǎn)程服務(wù)器發(fā)回的ICMP應(yīng)答包,并依次為依據(jù)判斷網(wǎng)絡(luò)是否連通。
因?yàn)镚PRS模塊SIM900a是一個(gè)獨(dú)立的模塊,其自身具有單獨(dú)的設(shè)計(jì)。本項(xiàng)目中為了方便SIM900a的調(diào)試,將增加一個(gè)TTL轉(zhuǎn)RS232電平的SP3223,通過(guò)串口連接到PC進(jìn)行調(diào)試設(shè)置。在調(diào)試過(guò)程中COM1作為第一個(gè)串口,連接到GPRS模塊之后,其波特率設(shè)置為115200。除了波特率,剩下參數(shù)保留其默認(rèn)值即可。需要注意的是,GPRS的所有設(shè)置信息是保存在其自身附帶的NandFlash中。
另外,將通過(guò)GPRS模塊外接SIM卡的方式來(lái)實(shí)現(xiàn)與遠(yuǎn)程服務(wù)器的數(shù)據(jù)交互任務(wù),并且就交互方式,可選方案有語(yǔ)音通話、短信、GPRS流量三種方式,而根據(jù)項(xiàng)目需求以及具體的情況,本次項(xiàng)目決定采用GPRS流量的方式進(jìn)行數(shù)據(jù)交互。GPRS模塊支持AT指令,通過(guò)AT指令控制調(diào)試GPRS模塊。具體實(shí)現(xiàn)方法是當(dāng)啟動(dòng)SIM900a后,對(duì)串口進(jìn)行初始化,繼而再使用 AT命令設(shè)置GPRS通信類別。其GPRA通信類別信息如下:
A同時(shí)上網(wǎng)、接電話,即同時(shí)支持包交換和電路交換。
B可以上網(wǎng)、接電話,但不能同時(shí)進(jìn)行,即雖然也支持包交換和電路交換,但不可在同時(shí)進(jìn)行。
CG只能上網(wǎng),無(wú)法打電話,即只支持包交換。
CC只能打電話,無(wú)法上網(wǎng),即只支持電路交換。
這4種類別的功能級(jí)別依次遞減,要注意的是SIMCom系列GPRS模塊暫時(shí)不支持通信模式A。所以本項(xiàng)目采用B設(shè)置類型??紤]到傳感器節(jié)點(diǎn)將會(huì)有大量的數(shù)據(jù)傳送到匯聚節(jié)點(diǎn),所以緩沖區(qū)容量將設(shè)置為1024Byte,OK6410與GPRS模塊之間通過(guò)UART1通信。
本次項(xiàng)目針對(duì)無(wú)線傳感網(wǎng)絡(luò)層次結(jié)構(gòu)的特點(diǎn),提出了一種基于S3C6410的嵌入式Linux平臺(tái)匯聚節(jié)點(diǎn)的設(shè)計(jì)方案,并組建帶有溫濕度、PM2.5等傳感器的網(wǎng)絡(luò)中進(jìn)行測(cè)試評(píng)估,通過(guò)對(duì)實(shí)驗(yàn)數(shù)據(jù)的綜合分析表名,測(cè)試網(wǎng)絡(luò)具有穩(wěn)定性高,功耗低,功能完善的優(yōu)點(diǎn),可擴(kuò)展性好,研究?jī)r(jià)值高。在大部分無(wú)線傳感網(wǎng)絡(luò)的部署中可以借鑒使用。
[1]Karim Yaghmour.構(gòu)建嵌入式Linux系統(tǒng)[M].北京:中國(guó)電力出版社,2011.
[2]劉長(zhǎng)榮,姜仲秋.基于Zigbee技術(shù)的農(nóng)業(yè)物聯(lián)網(wǎng)匯聚節(jié)點(diǎn)設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,29(2):1671-7597.
[3]甘從輝,鄭國(guó)強(qiáng),唐盛禹.無(wú)線傳感網(wǎng)絡(luò)的拓?fù)淇刂蒲芯浚跩].計(jì)算機(jī)應(yīng)用研究,2009,26(9):1001-3695.
[4]W.Richard Stevens,Stephen A.Rago.UNIX環(huán)境高級(jí)編程[M].第3版.北京:人民郵電出版社,2014.
[5]馬玉芳,陳建華,郝楊滿.基于匯聚節(jié)點(diǎn)移動(dòng)的能量均衡路由協(xié)議的研究.計(jì)算機(jī)應(yīng)用研究,2013,49(14):77-80.
[6]劉士興,孟召晶,石波,等.基于嵌入式Linux的無(wú)線傳感器網(wǎng)絡(luò)匯聚節(jié)點(diǎn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,31(1):1003-5060.
[7]王文光,謝武軍,劉士興.無(wú)線傳感器網(wǎng)絡(luò)概述[J].計(jì)算機(jī)應(yīng)用研究,2010,33(9):1416-1419.
Design of wireless sensor network the sink node based on OK6410
XIE Qiao-ling
(Xi'an University of Arts and Science,Xi'an 710065,China)
Through the analysis of wireless sensor network specific experiment(Wireless Sensor Network,WSN)in the node working mode,and according to the sink node for data gathering,transmitting and controlling of the cluster nodes energy consumption and other characteristics,puts forward a design scheme of OK6410 node and the CC2530 development board based on the exchange,and use Linux to realize the task node management and network communication.Combined with the monitoring of environmental quality of the small scale experiment,the sink node design is stable and reliable,low power consumption,long standby time.
wireless sensor network;sink node;OK6410;CC2530;Linux
TN92;TP393
A
1674-6236(2016)06-0159-03
2015-05-19稿件編號(hào):201505166
西安市科技計(jì)劃項(xiàng)目(CXY1531WL39)
謝巧玲(1979—),女,陜西安康人,碩士,講師。研究方向:軟件開(kāi)發(fā)、嵌入式系統(tǒng)。