謝巧玲
(西安文理學院 陜西 西安 710065)
基于OK6410的無線傳感器網絡匯聚節點設計
謝巧玲
(西安文理學院 陜西 西安710065)
通過具體實驗分析無線傳感器網絡(Wireless Sensor Network,WSN)中匯聚節點的工作方式,并針對匯聚節點對數據匯聚、轉發以及控制簇內節點的能耗等特性,提出了一種基于OK6410和CC2530開發板的匯聚節點設計方案,同時利用Linux實現節點的任務管理和網絡通信。并結合監測小范圍環境質量的實驗得出,所設計的匯聚節點穩定可靠,且功耗低,待機時間長。
無線傳感網絡;匯聚節點;OK6410;CC2530;Linux
WSN是由大量的靜止或移動的傳感器以自組織和多跳的方式構成的無線網絡,以協作地感知、采集、處理和傳輸網絡覆蓋地理區域內被感知對象的信息,并最終把這些信息發送給網絡的所有者[1]。匯聚節點作為WSN主要的組成部分,主要功能是管理簇內節點,監控整個無線傳感網絡以及將得到的數據發送到指定地點。匯聚節點一旦出現故障,整個網絡環境將處于癱瘓狀態。因此所設計匯聚節點的穩定性,持久性便顯得異常的重要。
匯聚節點是整個無線傳感網絡的樞紐,管理外部環境中傳感器節點,包括傳感器數據的接收、處理以及存儲。同時負責向遠程服務器發送數據,接收管理節點的命令等。因此匯聚節點還有監控整個傳感網絡的作用。
通過對匯聚節點具體功能的分析,可以總結出匯聚節點正常工作所具備有三方面的特點:
1)匯聚節點必須具備一定的控制能力,才能夠管理和監測環境中無線傳感器節點的正常工作。
2)匯聚節點必須具備一定的數據處理、存儲能力,才能夠將接受到的傳感器檢測數據分類管理存儲,并進行適當打包加密處理。
3)匯聚節點必須具備穩定通信能力,同時需外部提供符合要求的寬帶。以保證匯聚節點與遠程服務器間數據交互。
1.1OK6410平臺介紹
OK6410采用三星的16/32位 RISC微處理器S3C6410(基于ARM1176JZF-S核的用于手持、移動等終端設備的通用處理器)。OK6410開發板集成了多種高端接口,如復合視頻信號、攝像頭、USB、SD卡、液晶屏等。這些接口可作為應用參考幫助開發者實現高端產品級設計。其主要結構如下圖:

圖1 處理器接口框架圖
1.2匯聚節點的硬件設計
匯聚節點硬件框架結構如圖2所示,由OK6410、CC2530、SIM900a模塊組建所需匯聚節點的整體框架。其中GPRS/ GSM模塊與遠程服務器通信,射頻收發器由低功耗的短距離無線傳輸模塊組成,本次項目將采用CC2530模塊作為接收傳感器數據的模塊。另外,匯聚節點正常工作需要復雜的任務管理和任務調度,本次項目采用Linux完成預定的任務。

圖2 匯集節點硬件結構
CC2530是用于2.4GHz IEEE 802.15.4、ZigBee[2]和RF4CE應用的片上系統解決方案,集成了高性能、低功耗的8051兼容內核,能夠以非常低的成本建立強大的網絡節點。CC2530模塊通過UART0與OK6410核心控制層交互。
GPRS模塊采用SIMCom公司推出的新款緊湊型產品SIM900a,屬于雙頻GSM/GPRS模塊,完全采用SMT封裝形式,具備工業標準接口,工作頻率為850/900/1800/1900MHz,可低功耗實現語音、SMS等信息傳輸。項目前期,通過UART1連接PC調試匯聚節點的通信。
根據上述對硬件系統設計分析,采用GPIO擴展自定義的CC2530接口,可用軟件實現連接WSN中被廣泛使用的MICA以及MICA2節點[7]。系統本身電源管理模塊復雜,所以射頻收發器的電源可以使用獨立電源。由此分析可以得到系統內存映射情況,見表1:

表1 內存映射表
2.1軟件功能概述
軟件主體框架如圖3所示。根據OK6410開發板特性,搭建基于Linux的系統環境,包括內核裁剪,文件系統搭建,驅動模塊移植等等,來管理整個網絡環境中的硬件設備和資源的調度。因為要兼顧匯聚節點3個方面的特性,軟件主體設計可分為3個模塊:如何與傳感器節點交互、如何處理接收到的數據以及如何與遠程服務器交互。設計方法如下:

圖3 系統軟件結構圖
1)匯聚節點與傳感器節點交互:與傳感器節點的交互以及節點的監控和數據的接收,通過監聽UART0來實現。
2)匯聚節點與遠程服務器交互:與遠程服務器的交互任務主要有打包發送由傳感器節點接收來的數據,整個網絡狀態的監控,網絡控制命令的接受等。具體框架采用Client/ Server的設計模式,以匯聚節點作為客戶端,遠程服務器作為服務器端,采用TCP/IP通信協議并借助Socket的方式實現數據的發送以及網絡環境的監測。無線傳感網絡的監測采用心跳包的機制,即如果在指定時間內沒有收到應答信息,則無線傳感網絡環境出現故障,采取重新設置網絡環境同時切換網絡連接的方式解決出現的故障。此設計方式可利用select()函數I/O進行檢測來實現。
3)匯聚節點本地數據的處理:匯聚節點對所接收的數據處理主要是打包和存儲[5],如果項目需要還要進行必要的加密工作。匯聚節點數據存儲采用輕量級嵌入式數據庫管理系統SQLite,SQLite是一款開源免費的低功耗高性能的輕量級數據庫管理系統,提供了豐富的API來滿足開發者對不同環境數據庫設計開發的需求。
2.2匯聚節點應用層軟件具體實現
結合Linux操作系統的特性,應用層軟件設計實施采用多線程編程方法[6],將匯聚節點的主要功能分別封裝在一個線程中,即把各個功能劃分為多個獨立的任務,每個獨立的線程之間并發運行。利用管道信號量及全局變量通信,不但能夠使應用程序更快的響應,而且在結構上更加的簡潔[4]。具體軟件流程如圖4。

圖4 軟件流程圖
本設計中匯聚節點的工作分為:第一步對匯聚節點初始化,包括對傳感器節點網絡和GPRS網絡的初始化設置,以保證所有網絡狀態處于連通狀態;第二步當匯聚節點開始工作的時候,pthread_create()函數會創建3個線程用于后續工作;第三步利用pthread_join()函數將當前線程掛起,等待線程的結束。
關于設備管理,Linux內核將所有設備看作文件進行管理操作,所以當監聽串口狀態時,利用open()函數打開串口,當有數據傳來的時候,再利用read()、write()函數對串口進行讀寫。
本次項目,后期對無線傳感網絡的維護,在保證網絡通信的前提下進行,不管是對網絡的監控,命令的手法,還是數據的上傳,均采用socket套接字來實現[3]。在由匯聚節點和遠程服務器組成的Client/Server工作模式中使用TCP/IP協議時,匯聚節點就要使用connect()函數借助GPRS模塊與遠程服務器交互,最后才可以通過send/sendto和recv/recvfrom函數實現客戶端與服務器數據的交互[4]。所以在整個網絡的中,可以使用網際控制報文協議,即借助ICMP請求和ICMP應答功能。其工作流程是先由匯聚節點定期向遠程服務器發送ICMP請求包,并且在規定的時間內檢測是否收到遠程服務器發回的ICMP應答包,并依次為依據判斷網絡是否連通。
因為GPRS模塊SIM900a是一個獨立的模塊,其自身具有單獨的設計。本項目中為了方便SIM900a的調試,將增加一個TTL轉RS232電平的SP3223,通過串口連接到PC進行調試設置。在調試過程中COM1作為第一個串口,連接到GPRS模塊之后,其波特率設置為115200。除了波特率,剩下參數保留其默認值即可。需要注意的是,GPRS的所有設置信息是保存在其自身附帶的NandFlash中。
另外,將通過GPRS模塊外接SIM卡的方式來實現與遠程服務器的數據交互任務,并且就交互方式,可選方案有語音通話、短信、GPRS流量三種方式,而根據項目需求以及具體的情況,本次項目決定采用GPRS流量的方式進行數據交互。GPRS模塊支持AT指令,通過AT指令控制調試GPRS模塊。具體實現方法是當啟動SIM900a后,對串口進行初始化,繼而再使用 AT命令設置GPRS通信類別。其GPRA通信類別信息如下:
A同時上網、接電話,即同時支持包交換和電路交換。
B可以上網、接電話,但不能同時進行,即雖然也支持包交換和電路交換,但不可在同時進行。
CG只能上網,無法打電話,即只支持包交換。
CC只能打電話,無法上網,即只支持電路交換。
這4種類別的功能級別依次遞減,要注意的是SIMCom系列GPRS模塊暫時不支持通信模式A。所以本項目采用B設置類型。考慮到傳感器節點將會有大量的數據傳送到匯聚節點,所以緩沖區容量將設置為1024Byte,OK6410與GPRS模塊之間通過UART1通信。
本次項目針對無線傳感網絡層次結構的特點,提出了一種基于S3C6410的嵌入式Linux平臺匯聚節點的設計方案,并組建帶有溫濕度、PM2.5等傳感器的網絡中進行測試評估,通過對實驗數據的綜合分析表名,測試網絡具有穩定性高,功耗低,功能完善的優點,可擴展性好,研究價值高。在大部分無線傳感網絡的部署中可以借鑒使用。
[1]Karim Yaghmour.構建嵌入式Linux系統[M].北京:中國電力出版社,2011.
[2]劉長榮,姜仲秋.基于Zigbee技術的農業物聯網匯聚節點設計[J].計算機工程與設計,2012,29(2):1671-7597.
[3]甘從輝,鄭國強,唐盛禹.無線傳感網絡的拓撲控制研究[J].計算機應用研究,2009,26(9):1001-3695.
[4]W.Richard Stevens,Stephen A.Rago.UNIX環境高級編程[M].第3版.北京:人民郵電出版社,2014.
[5]馬玉芳,陳建華,郝楊滿.基于匯聚節點移動的能量均衡路由協議的研究.計算機應用研究,2013,49(14):77-80.
[6]劉士興,孟召晶,石波,等.基于嵌入式Linux的無線傳感器網絡匯聚節點[J].計算機工程與設計,2012,31(1):1003-5060.
[7]王文光,謝武軍,劉士興.無線傳感器網絡概述[J].計算機應用研究,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稿件編號:201505166
西安市科技計劃項目(CXY1531WL39)
謝巧玲(1979—),女,陜西安康人,碩士,講師。研究方向:軟件開發、嵌入式系統。