隨著物聯網技術的飛速發(fā)展,將傳統的Internet與新型的無線傳感器網絡整合的趨勢越來越明顯,嵌入式服務網關既是無線傳感器網絡的協調器網關,又是遠程WEB 的服務器,它實現兩個不同協議的網絡之間的通信。同時也是將無線傳感器網絡接入Internet,從而實現物聯網概念的關鍵設備。物聯網服務網關在未來的物聯網時代將會扮演非常重要的角色,它將成為連接物聯網感知層網絡與傳統通信網絡的紐帶。物聯網網關可實現感知網絡和基礎網絡以及不同類型的感知網絡之間的協議轉換,既可以實現廣域互聯,也可以實現局域互聯。并且具有廣泛的感知網接入、通信協議轉換和強大的系統管理等特點[1]。利用嵌入式系統設計的服務網關可以有效降低成本,利用家庭智能化的普及。
1 系統總體結構設計
系統的總體結構如圖1 所示。在遠端的移動智能終端或電腦通過Internet 訪問到無線傳感器網絡,而嵌入式WEB 服務器提供了交互式的頁面訪問。如果訪問數據量大或者需要對數據有統計、分析及處理,那么需要建立網頁服務器和數據庫服務器 [2]。在物聯網框架下的智能家居是一個復雜的系統,需要多人合作完成,如Internet 數據庫服務器的設計、建立感知層網絡。文中重點介紹服務網關的設計,包括嵌入式WEB、近程終端、WSN 協調器3個部分所組成的一體化終端。它是兩個異構網之間的橋梁,起著重要的銜接作用[3]。
圖1 系統總體框
2 系統硬件設計
本設計中智能家居系統的硬件由3 部分組成:服務網關、終端節(jié)點和路由節(jié)點。
(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)終端節(jié)點與路由節(jié)點
傳感器節(jié)點是組成傳感網的最基本單元,主要有射頻通信模塊和傳感器數據采集模塊組成。終端
節(jié)點與路由節(jié)點的硬件一樣,不同之處主要表現在軟件上。
終端節(jié)點硬件圖如圖3 所示。根據CC2430 的特點,它是一款集Zigbee 協議棧、RF 射頻模塊以
及增強型51 核于一身的SOPC,可以滿足對數字或模擬傳感器模塊收集的數據處理及在WSN 中的通傳輸任務。
圖3 終端節(jié)點硬件框
3 系統軟件設計
系統軟件分為運行于ARM 上的服務網關軟件和運行于CC2430 模塊上的WSN 網關軟件??紤]到服務網關軟件的總體設計的復雜程度以及層次性模塊化的設計理念,系統采用嵌入式操作系統uCOS-II 作為系統資源的管理,對系統功能任務化。服務網關軟件總體設計框圖如圖4 所示。
圖4 服務網關總體設計框
3.1 服務網關軟件層次結構
服務網關軟件層次結構分為:底層驅動層,系統層,應用層。
(1)底層驅動層
底層驅動層包括FWLib 和BSP。FWLib 是ST公司為了對其ARM 的支持而推出的驅動支持軟件,
提供系統初始化函數,對中斷和操作系統的支持,存儲器分配以及所有片內外設的驅動,從而方便軟件的開發(fā)。此外,用戶還應開發(fā)針對應用的板級支持包(BSP),在本系統中BSP 的內容主要是應用開發(fā)板相關的硬件驅動。
(2)系統層
系統層包括了操作系統和中間件軟件LwIP,操作系統是對軟硬件資源的管理,其他各部分軟件都
要以操作系統為中心。操作系統移植的過程中,主要任務是改寫針對處理器和編譯器相關的部分,向上為應用任務提供支持,向下連接驅動程序來實現對硬件的操作[4]。LwIP 是一個針對嵌入式系統的TCP/IP 協議棧,本程序包含其基本功能:TCP、IP、UDP、ICMP。LwIP 的操作系統模擬層提供了向操作系統移植的方便,因其包括了任務間通信的機制:信號量、消息郵箱。
(3)應用層
本設計根據模塊化和功能獨立性原則,將所有的應用程序分成7 個應用任務,分別是引領全局的
根任務,與輸入輸出有關的按鍵任務和LCD 顯示任務,與嵌入式WEB 相關的TCP 發(fā)送任務和TCP 超時重傳任務,與WSN 協調器相關的串口數據發(fā)送任務和Zigbee 控制命令任務。
3.2 軟件設計流程
軟件設計流程分為服務網關根任務軟件設計流程和WSN 網關軟件設計流程。
(1)服務網關根任務軟件設計流程
操作系統環(huán)境中,每個任務都是無限循環(huán)的相對獨立的功能模塊,通常都會有一個根任務,它應
該被設定該系統的核心功能業(yè)務。如圖5 為根任務程序流圖,首先板級初始化是對硬件的抽象和封裝,為應用程序提供更友好的接口。然后創(chuàng)建其余6 個應用任務,創(chuàng)建格式與創(chuàng)建開始任務類似。最后程序進入WEB 服務主循環(huán)程序,為了讓別的優(yōu)先級低的任務能夠執(zhí)行,必須調用任務掛起函數。
圖5 根任務流程
(2)WSN 網關軟件設計流程
WSN 網關也叫WSN 協調器,它是整個傳感器網絡的總控制中心和數據采集的匯聚點,無線傳感
器節(jié)點分布在其覆蓋范圍內[5]。傳感網網關的軟件流圖如圖6 所示。程序開始建立Zigbee 網絡,此時網絡中沒有其他節(jié)點。然后進入無線監(jiān)控程序,查找是否有請求加入網絡的信號產生,若有新節(jié)點信號申請則根據信號類型添加入網并分配網絡號,若不是新節(jié)點,則判定節(jié)點傳輸的數據有效性,有效則接收并發(fā)送到ARM 網關,否則丟棄。
網關軟件流程
4 結語
文中系統地討論了物聯網服務網關這一項基于物聯網應用的關鍵性技術[6-7],結合家庭自動化進行應用設計。在硬件方面,按照嵌入式板級硬件設計流程,設計并實現了一種基于ARM 處理器的低成本網關硬件。軟件設計上采用自頂向下和分層的設計方法,結合網關硬件,利用嵌入式操作系統uCOS-II 和協議棧LwIP,搭建了一個應用開發(fā)平臺,為應用軟件的開發(fā)提供了良好的軟件環(huán)境。