陳樂庚,洪志鵬,崔更申
(桂林電子科技大學電子工程與自動化學院,廣西桂林541004)
嵌入式物聯網智能網關的設計與實現*
陳樂庚,洪志鵬,崔更申
(桂林電子科技大學電子工程與自動化學院,廣西桂林541004)
物聯網網關發揮著連接傳統信息網絡與感知網絡的重要作用,針對目前人們研究的物聯網網關功能單一和應用場景固定的不足,本設計提出了一種嵌入式智能網關的實現方案。該網關硬件上集成了多種協議的數據收發模塊,在軟件的控制下能夠實現不同類型感知網絡的同時接入,可應用于多種場合;另外網關設計了Web網頁服務功能,遠程終端通過互聯網能夠查詢出感知網絡里各節點設備的狀態,也可以對這些設備發出控制信令實現遠程控制等功能。此外,設計中就物聯網網關的安全問題提出了用戶登錄和密匙驗證的機制,保障物聯網網關的安全通信。
物聯網 網關 嵌入式 多協議通信 遠程控制 安全通信
物聯網(Internet of Things,IOT)是一種通過感應器、全球定位系統等傳感設備,把世界上任何物品聯入到互聯網中,使人與物,物與物之間能進行無障礙的信息通信,從而實現智能化的控制、查詢、定位、配置等功能的網絡。物聯網的出現,為現代化的工業生產,農業生產,環境監測[1],日常住行提供了新的模式,有效降低勞動成本,提高經濟效益,方便人們的生活。
物聯網網絡架構可分為三層,分別是應用層、傳輸層和感知層[2]。處于感知層中的感知對象,一般都從屬于某個傳感網絡之中,物理位置上會存在于各個地方。同時互聯網即傳輸層通信網絡與傳感網的傳輸協議并不相同,不同的傳感網之間的協議也會有較大的差別,這些差異使傳感網的各感知對象不能直接聯入互聯網,他們需要一個能夠屏蔽這些
差異的設備,而這正是物聯網網關。
物聯網的廣泛應用也使得物聯網網關將會存在于各行各業之中,可將它用于工業生產中作為工業控制網關,用于環境監測中作為環境監測網關,用于房屋居室中作為智能家居網關[3]。物聯網網關是物聯網中連接傳輸層通信網絡和感知層傳感網的核心設備,實現把傳感網節點采集到的數據進行匯聚存儲、數據格式轉換、數據加密傳輸等多種功能。
目前部分智能傳感器設計在一定程度上借助互聯網或無線蜂窩網,把小范圍內的傳感網信息通過匯聚節點接入互聯網,這實際上完成的就是物聯網網關的基本功能。作為感知層與傳輸層的紐帶,物聯網網關需要滿足以下功能需求[4]:
1)數據匯聚功能:物聯網網關能夠作為匯聚節點,接收傳感網各子節點傳來的數據。
2)數據存儲功能:物聯網網關對接收到的數據能夠臨時或永久性的存儲。
3)數據傳輸功能:物聯網網關不僅向下能作為匯聚節點與傳感網節點通信,還需要有通過傳輸層網絡與遠程數據應用平臺交互的能力。
4)協議適配功能:物聯網網關是一個多協議的轉換裝置,能夠處理各類傳感網的數據協議。通過物聯網網關,遠程應用平臺有效的屏蔽各傳感網的異構性,與傳感網節點實現互聯互通。
5)設備管理功能:傳感網的節點數量眾多,分布廣泛,不便于直接對節點終端進行管理,因此需要通過物聯網網關實現節點設備的狀態查詢、監控、配置等的功能。
6)安全防護功能:通過網絡遠程與物聯網網關建立通信需要先對用戶身份進行驗證和授權;支持數據加密等安全措施。
網關總體結構設計如圖1所示。各類協議的傳感網節點與物聯網網關間有專門的數據通道,網關可以接收傳感網節點的上報數據,同時可以向這些節點傳輸控制終端發送來的狀態查詢和控制命令。網關內部分為兩部分,一部分是傳感網服務器,負責接收、處理和存儲傳感網傳來的數據,向傳感網節點設備發送控制信令,同時接收Web服務器或客戶端軟件平臺發出的數據請求或其他命令,提供請求數據等;網關另一部分是Web服務器部分,為互聯網遠程終端或應用平臺對物聯網網關的訪問提供良好的交互界面,該界面用Web網頁實現,避免了遠程智能終端下載安裝客戶端軟件的繁瑣步驟。通過互聯網訪問網關Web界面,可對物聯網的傳感網節點進行狀態查詢和控制等操作。

圖1 系統總體結構Fig.1 Overall system architecture
為實現上述物聯網網關的基本功能,需要先構建一個嵌入式的最小系統,在此系統上運行嵌入式操作系統作為實現上層功能的基礎,然后擴展出各通信協議對應的硬件通信模塊,實現網關與互聯網和傳感網的數據信息交互。
在本智能網關的設計中,采用AT91SAM9X35微處理器,DDRAM、時鐘電路、NANDFLASH構建核心最小系統處理電路,其中AT91SAM9X35是基于ARM926EJ-STM的微處理器,內部集成了UART控制器,Can控制器,以太網適配器和RS485等控制器的功能,具有較好的處理能力。在外圍電路中,擴展接入了各協議的數據收發芯片,從而在微處理器的控制下進行各類信號的傳輸工作。設計中采用DM9161A芯片實現以太網數據通信,通過串口接入CC2430模塊,實現Zigbee通信,通過TJA1050收發芯片和ADM2483收發芯片分別實現Can和RS485的數據通信。硬件結構如圖2所示。

圖2 硬件結構Fig.2 Hardware structure
網關系統軟件除了協調硬件實現數據的收發功能外,還要實現數據的解析和處理,轉發和存儲,遠程交互和安全訪問控制等功能。為了更好的分塊實現這些功能,本設計將網關分為Web服務器部分和傳感網服務器部分,這兩大部分都屬于應用層軟件的范疇,建立在嵌入式Linux操作系統之上。
3.1 操作系統層軟件
選用嵌入式Linux系統,其特點是代碼開放,性能優異,軟件易于移植。將Linux操作系統移植到網關硬件電路的關鍵步驟,就是對各硬件設備的驅動進行相應的移植[5]。物聯網網關中用到的設備驅動主要有以太網驅動,串口驅動以及Can和485總線驅動等,這些驅動程序為上層應用軟件對硬件收發器的控制提供了良好的支持。嵌入式Linux下開發的應用程序可以比較容易的移植到運行Linux的其他嵌入式系統中,這非常利于物聯網網關設備的推廣。
3.2 應用層軟件
(1)Web服務器
Web服務器部分實現網關與上層傳輸網絡的通信,為遠程應用終端監控傳感網節點設備提供良好的交互界面。互聯網遠程終端通過Web網頁可以查詢傳感網節點設備的狀態信息,對該節點發出控制命令,也可以通過Web網頁查看設備列表并管理設備。程序流程如圖3所示,接收終端通過瀏覽器發來的8080端口請求,該請求通過TCP協議傳輸,調用CGI模塊,該模塊進程是Web服務器的子進程,通過環境變量獲取瀏覽器請求中的相關信息,然后與傳感網服務器通信,獲取相應數據,再將結果處理成HTML網頁格式的數據發回給瀏覽器。在CGI模塊中,設置了用戶登陸認證模塊,該模塊使得只有網關認可的用戶才有資格對傳感網的結點設備進行查詢和控制操作,從而提高了網關的安全性。

圖3 Web服務器程序流程Fig.3 Program flowchartofWeb server
(2)傳感網服務器
傳感網服務器是實現網關與傳感網通信功能的部分,各傳感網網絡的數據在此處匯聚。其結構如圖4所示,數據傳輸功能由多線程程序實現,一個線程負責一種傳輸協議。Web服務器或專門編寫的客戶端程序可以通過TCP協議與傳感網服務器通信,通信端口設為8088端口。傳感網服務器在接收到命令請求后,會將接收的命令先放入命令緩沖池排隊等待處理,命令緩沖池中命令的存入和提取處理通過生產消費者原理模型實現。傳感網節點上傳的數據存儲在設備信息表的數據數組中,供其它程序調取處理。

圖4 傳感網服務器結構Fig.4 Server architecture of sensor network
傳感網服務器的程序流程如圖5所示,開始初始化數據庫服務,獲得傳感網的各設備信息,初始化命令緩沖池,準備接收命令,初始化各服務線程,準備與傳感網和Web服務器的通信,然后一方面與傳感網傳輸數據,一方面等待互聯網終端通過Web服務器或客戶端發來的命令請求。一旦檢測到命令進入命令緩沖池,則開始執行相應的命令請求,完成后
提取或等待下一條命令。

圖5 傳感網服務器程序流程Fig.5 Program flowchart of sensor network server
3.3 數據包格式
為方便物聯網網關處理接收到的傳感網數據,對傳感網的數據包內容格式做如下規定,自定義數據格式如圖6所示。

圖6 自定義傳感網數據格式Fig.6 Data format of self-defined sensor network
在自定義的數據格式中,傳感網節點的地址占用2字節,標識節點在傳感網中的地址;設備地址占1字節,標識處于該傳感網節點上的某個設備的地址;數據(信令)長度占1字節,標識發送的有效數據長度;數據占16字節,用于存儲發送的數據或信令。例如發送數據包的傳感網設備在地址為0x1001的傳感網節點處,并且是該結點的2號設備,地址為0x02,發送了兩個字節的數據0x01, 0x01,那么數據長度為0x02,因此該數據包發送的是: 0x1001020201010000000000000000000000000000,數據部分只有前兩字節的0101有效,后面的字節無效,只是補滿16字節的數據長度,方便其他程序的接收處理。
3.4 安全防護措施
Web服務器部分設置了用戶認證模塊,可有效的防止非法用戶通過物聯網網關對傳感網節點的操作。傳感網服務器工作中會接收Web服務器或客戶端軟件的命令,為防止他人非法向傳感網服務器發送命令請求,特別設置安全密匙KEY機制,Web服務器和客戶端軟件內設置了與傳感網服務器相同的KEY信息,每次命令的收發都要驗證KEY值,驗證失敗時傳感網服務器將拒絕接受命令,從而在高效數據通信的同時也保證了網關的安全性。
文中采用AT91SAM9X35等芯片模塊設計了簡易實用、價格低廉的嵌入式物聯網智能網關,功能上實現了物聯網三層結構中感知層與傳輸層的紐帶作用[6]。向上與互聯網即傳輸層網絡實現TCP協議的可靠通信,并通過Web頁面提供了傳感網設備查詢、控制的良好界面,向下滿足了與傳感網的多協議通信需求。隨著物聯網的發展,這種低成本的嵌入式物聯網網關有望得到推廣,從而實現生活中人與人,人與物以及物與物之間隨時隨地的交流。
[1] 張洋洋,趙建平,徐娟娟.基于物聯網技術的水文監測系統研究[J].通信技術,2012,45(04):108-111.
ZHANG Yang-yang,ZHAO Jian-ping,XU Juan-juan. Research of IoT-based Hydrology Monitoring System[J]. Communications Technology.2012,45(04):108-111.
[2] 鄭樹泉,韓元杰,張泉.物聯網架構與應用[J].軟件產業與工程,2010(06):27-30,48.
ZHENG Shu-quan,HAN Yuan-jie,ZHANG Quan.Architecture and Application of the Internet of Things[J].Software Industry and Engineering.2010,1(06):27-30,48.
[3] 鐘科,陳向東.基于物聯網的智能家居服務網關的設計[J].通信技術,2012,45(08):65-67.
ZHONG Ke,CHEN Xiang-dong.Design on Smart Home Service Gateway based on IoT[J].Communications Technology.2012,45(08):65-67.
[4] 趙炳弟.物聯網m2m網關剖析[J].電信技術,2013, (12):73-76.
ZHAO Bing-di,Internet of Things m2m gateway analysis [J].Telecommunications Technology.2013,(12):73-76.
[5] 王森,何建忠.基于linux系統的字符設備驅動研究與設計[J].微計算機信息,2012,28(03):173-175.
WANG Sen,HE Jian-zhong.The Research and Design of The Character Device Driver on Linux[J].Microcomputer Information.2012,28(03):173-175.
[6] 劉強,崔莉,陳海明.物聯網關鍵技術與應用[J].計算機科學,2010,37(06):1-4,10.
LIU Qiang,CUILi,CHEN Hai-ming.Key Technologies and Applications of Internet of Things[J].Computer Science.2010,37(06):1-4,10.

陳樂庚(1963—),男,副教授/高級工程師,主要研究方向為工業智能控制,計算機控制;
CHEN Le-geng(1963-),male,associate professor/senior engineer,maily working at industrial intelligent control and computer control.
洪志鵬(1988—),男,碩士,主要研究方向為物聯網網關;
HONG Zhi-peng(1988-),male,M.Sci., maily working at industrial intelligent control and IoT gateway.
崔更申(1970—),男,碩士,副教授,主要研究方向為嵌入式系統及應用,物聯網,計算機視覺。
CUIGeng-shen(1970-),male,M.Sci.,associate professor,maily working at embedded systems and applications, IoT and computer vision.
Design and Im p lem entation of Embedded Intelligent IoT Gateway
CHEN Le-geng,HONG Zhi-peng,CUIGeng-shen
(School of Electronic Engineering and Automation,Guilin University of Electronic Technology,Guilin Guangxi541004,China)
IoT(Internet of things)gateway plays an important role in connecting traditional information networks and sensor networks,and aming at the single function and fixed application scenario of the existing IoT gateways,an embedded implementation of intelligent IoT gateway is proposed.This gateway hardware integratesmulti-protocol data transceivermodule.It could realize different types of network access at the same time and be applied in various occasions.Meanwhile,aweb service function is also designed in the gateway.Remote terminal can check the status of sensor network devices via the Internet,and also send control signaling to these devices.In addition,aiming at accout of the security problems of IoT gateway,the login and key authentication mechanism in the design is also proposed for the purpose to ensure secure communications.
IOT;gateway;embedded;multi-protocol communication;remote control;secure communication
TP393
A
1002-0802(2014)12-1455-04
10.3969/j.issn.1002-0802.2014.12.022
2014-09-25;
2014-10-25 Received date:2014-09-25;Revised date:2014-10-25
廣西可信軟件重點實驗室項目(No.KX201318)
Foundation Item:Guangxi Key Lab of Trusted Software Project(KX201318)