鐘 科,陳向東
(西南交通大學 信息科學與技術學院,四川 成都 610031)
隨著物聯網技術的飛速發展,將傳統的Internet與新型的無線傳感器網絡整合的趨勢越來越明顯,嵌入式服務網關既是無線傳感器網絡的協調器網關,又是遠程 WEB的服務器,它實現兩個不同協議的網絡之間的通信。同時也是將無線傳感器網絡接入Internet,從而實現物聯網概念的關鍵設備。
物聯網服務網關在未來的物聯網時代將會扮演非常重要的角色,它將成為連接物聯網感知層網絡與傳統通信網絡的紐帶。物聯網網關可實現感知網絡和基礎網絡以及不同類型的感知網絡之間的協議轉換,既可以實現廣域互聯,也可以實現局域互聯。并且具有廣泛的感知網接入、通信協議轉換和強大的系統管理等特點[1]。利用嵌入式系統設計的服務網關可以有效降低成本,利用家庭智能化的普及。
系統的總體結構如圖1所示。在遠端的移動智能終端或電腦通過Internet訪問到無線傳感器網絡,而嵌入式 WEB服務器提供了交互式的頁面訪問。如果訪問數據量大或者需要對數據有統計、分析及處理,那么需要建立網頁服務器和數據庫服務器[2]。
在物聯網框架下的智能家居是一個復雜的系統,需要多人合作完成,如Internet數據庫服務器的設計、建立感知層網絡。文中重點介紹服務網關的設計,包括嵌入式WEB、近程終端、WSN協調器3個部分所組成的一體化終端。它是兩個異構網之間的橋梁,起著重要的銜接作用[3]。

圖1 系統總體框
本設計中智能家居系統的硬件由3部分組成:服務網關、終端節點和路由節點。
(1)服務網關
服務網關硬件框圖如圖2所示。由ARM主控制器、Zigbee模塊、以太網PHY、TFT-LCD液晶觸摸屏、及最小系統模塊5部分組成。

圖2 服務網關硬件框
主控制器采用基于 ARM(Cotex-M3)核的STM32F107互聯型微控制器。它擁有64K SRAM、256K FLASH、以太網MAC等豐富的存儲器及外設資源。Zigbee模塊是由TI公司的CC2430作為主控芯片,在服務網關中它是 WSN的協調器,通過USART實現與主控制器之間的數據通信。以太網模塊采用以太網的物理層芯片DM9161A,通過RMII與主控制器相連接,其50M時鐘由ARM的MCO提供。液晶觸摸屏通過I/O接口與ARM相連,實現人機對話。
(2)終端節點與路由節點
傳感器節點是組成傳感網的最基本單元,主要有射頻通信模塊和傳感器數據采集模塊組成。終端節點與路由節點的硬件一樣,不同之處主要表現在軟件上。
終端節點硬件圖如圖3所示。根據CC2430的特點,它是一款集 Zigbee協議棧、RF射頻模塊以及增強型51核于一身的SOPC,可以滿足對數字或模擬傳感器模塊收集的數據處理及在 WSN中的通信傳輸任務。

圖3 終端節點硬件框
系統軟件分為運行于 ARM 上的服務網關軟件和運行于CC2430模塊上的WSN網關軟件。
考慮到服務網關軟件的總體設計的復雜程度以及層次性模塊化的設計理念,系統采用嵌入式操作系統uCOS-II作為系統資源的管理,對系統功能任務化。
服務網關軟件總體設計框圖如圖4所示。

圖4 服務網關總體設計框
服務網關軟件層次結構分為:底層驅動層,系統層,應用層。
(1)底層驅動層
底層驅動層包括FWLib和BSP。FWLib是ST公司為了對其ARM的支持而推出的驅動支持軟件,提供系統初始化函數,對中斷和操作系統的支持,存儲器分配以及所有片內外設的驅動,從而方便軟件的開發。此外,用戶還應開發針對應用的板級支持包(BSP),在本系統中 BSP的內容主要是應用開發板相關的硬件驅動。
(2)系統層
系統層包括了操作系統和中間件軟件LwIP,操作系統是對軟硬件資源的管理,其他各部分軟件都要以操作系統為中心。操作系統移植的過程中,主要任務是改寫針對處理器和編譯器相關的部分,向上為應用任務提供支持,向下連接驅動程序來實現對硬件的操作[4]。LwIP是一個針對嵌入式系統的TCP/IP協議棧,本程序包含其基本功能:TCP、IP、UDP、ICMP。LwIP的操作系統模擬層提供了向操作系統移植的方便,因其包括了任務間通信的機制:信號量、消息郵箱。
(3)應用層
本設計根據模塊化和功能獨立性原則,將所有的應用程序分成7個應用任務,分別是引領全局的根任務,與輸入輸出有關的按鍵任務和LCD顯示任務,與嵌入式WEB相關的TCP發送任務和TCP超時重傳任務,與 WSN協調器相關的串口數據發送任務和Zigbee控制命令任務。
軟件設計流程分為服務網關根任務軟件設計流程和WSN網關軟件設計流程。
(1)服務網關根任務軟件設計流程
操作系統環境中,每個任務都是無限循環的相對獨立的功能模塊,通常都會有一個根任務,它應該被設定該系統的核心功能業務。
如圖5為根任務程序流圖,首先板級初始化是對硬件的抽象和封裝,為應用程序提供更友好的接口。然后創建其余6個應用任務,創建格式與創建開始任務類似。最后程序進入 WEB服務主循環程序,為了讓別的優先級低的任務能夠執行,必須調用任務掛起函數。

圖5 根任務流程
(2)WSN網關軟件設計流程
WSN網關也叫WSN協調器,它是整個傳感器網絡的總控制中心和數據采集的匯聚點,無線傳感器節點分布在其覆蓋范圍內[5]。
傳感網網關的軟件流圖如圖6所示。程序開始建立Zigbee網絡,此時網絡中沒有其他節點。然后進入無線監控程序,查找是否有請求加入網絡的信號產生,若有新節點信號申請則根據信號類型添加入網并分配網絡號,若不是新節點,則判定節點傳輸的數據有效性,有效則接收并發送到ARM網關,否則丟棄。

圖6 WSN網關軟件流程
文中系統地討論了物聯網服務網關這一項基于物聯網應用的關鍵性技術[6-7],結合家庭自動化進行應用設計。在硬件方面,按照嵌入式板級硬件設計流程,設計并實現了一種基于 ARM 處理器的低成本網關硬件。軟件設計上采用自頂向下和分層的設計方法,結合網關硬件,利用嵌入式操作系統uCOS-II和協議棧LwIP,搭建了一個應用開發平臺,為應用軟件的開發提供了良好的軟件環境。
[1] 羅俊海,周應賓,鄧霄博.物聯網網關系統設計[J].電信科學,2011(02):105-106.
[2] 鄭娟毅. 基于 ZigBee 技術的家庭 WSN 及遠程控制研究.電視技術[J].2010(04):67-69.
[3] 劉勝,陳向東,穆虹,等.結合 Zigbee和紅外技術的病房監護系統設計[J].通信技術,2011,43(06):107-109.
[4] LABROSSE J J. 嵌入式實時操作系統uCOS-II[M]. 邵貝貝譯.北京:北京航空航天大學出版社,2003:283-289.
[5] 茍爭旭,周淵平.基于 GSM 和 ZigBee 的遠程無線數據采集系統[J].通信技術,2011,43(08):71-73.
[6] 馮彩紅.一種物聯網的安全應用——信息裝備智慧倉庫設計[J]. 信息安全與通信保密,2011(07):92-94.
[7] 郭莉,嚴波,沈延.物聯網安全系統架構研究[J].信息安全與通信保密,2010(12):73-75.