陳樂庚,洪志鵬,崔更申
(桂林電子科技大學電子工程與自動化學院,廣西桂林541004)
嵌入式物聯(lián)網智能網關的設計與實現(xiàn)*
陳樂庚,洪志鵬,崔更申
(桂林電子科技大學電子工程與自動化學院,廣西桂林541004)
物聯(lián)網網關發(fā)揮著連接傳統(tǒng)信息網絡與感知網絡的重要作用,針對目前人們研究的物聯(lián)網網關功能單一和應用場景固定的不足,本設計提出了一種嵌入式智能網關的實現(xiàn)方案。該網關硬件上集成了多種協(xié)議的數(shù)據(jù)收發(fā)模塊,在軟件的控制下能夠實現(xiàn)不同類型感知網絡的同時接入,可應用于多種場合;另外網關設計了Web網頁服務功能,遠程終端通過互聯(lián)網能夠查詢出感知網絡里各節(jié)點設備的狀態(tài),也可以對這些設備發(fā)出控制信令實現(xiàn)遠程控制等功能。此外,設計中就物聯(lián)網網關的安全問題提出了用戶登錄和密匙驗證的機制,保障物聯(lián)網網關的安全通信。
物聯(lián)網 網關 嵌入式 多協(xié)議通信 遠程控制 安全通信
物聯(lián)網(Internet of Things,IOT)是一種通過感應器、全球定位系統(tǒng)等傳感設備,把世界上任何物品聯(lián)入到互聯(lián)網中,使人與物,物與物之間能進行無障礙的信息通信,從而實現(xiàn)智能化的控制、查詢、定位、配置等功能的網絡。物聯(lián)網的出現(xiàn),為現(xiàn)代化的工業(yè)生產,農業(yè)生產,環(huán)境監(jiān)測[1],日常住行提供了新的模式,有效降低勞動成本,提高經濟效益,方便人們的生活。
物聯(lián)網網絡架構可分為三層,分別是應用層、傳輸層和感知層[2]。處于感知層中的感知對象,一般都從屬于某個傳感網絡之中,物理位置上會存在于各個地方。同時互聯(lián)網即傳輸層通信網絡與傳感網的傳輸協(xié)議并不相同,不同的傳感網之間的協(xié)議也會有較大的差別,這些差異使傳感網的各感知對象不能直接聯(lián)入互聯(lián)網,他們需要一個能夠屏蔽這些
差異的設備,而這正是物聯(lián)網網關。
物聯(lián)網的廣泛應用也使得物聯(lián)網網關將會存在于各行各業(yè)之中,可將它用于工業(yè)生產中作為工業(yè)控制網關,用于環(huán)境監(jiān)測中作為環(huán)境監(jiān)測網關,用于房屋居室中作為智能家居網關[3]。物聯(lián)網網關是物聯(lián)網中連接傳輸層通信網絡和感知層傳感網的核心設備,實現(xiàn)把傳感網節(jié)點采集到的數(shù)據(jù)進行匯聚存儲、數(shù)據(jù)格式轉換、數(shù)據(jù)加密傳輸?shù)榷喾N功能。
目前部分智能傳感器設計在一定程度上借助互聯(lián)網或無線蜂窩網,把小范圍內的傳感網信息通過匯聚節(jié)點接入互聯(lián)網,這實際上完成的就是物聯(lián)網網關的基本功能。作為感知層與傳輸層的紐帶,物聯(lián)網網關需要滿足以下功能需求[4]:
1)數(shù)據(jù)匯聚功能:物聯(lián)網網關能夠作為匯聚節(jié)點,接收傳感網各子節(jié)點傳來的數(shù)據(jù)。
2)數(shù)據(jù)存儲功能:物聯(lián)網網關對接收到的數(shù)據(jù)能夠臨時或永久性的存儲。
3)數(shù)據(jù)傳輸功能:物聯(lián)網網關不僅向下能作為匯聚節(jié)點與傳感網節(jié)點通信,還需要有通過傳輸層網絡與遠程數(shù)據(jù)應用平臺交互的能力。
4)協(xié)議適配功能:物聯(lián)網網關是一個多協(xié)議的轉換裝置,能夠處理各類傳感網的數(shù)據(jù)協(xié)議。通過物聯(lián)網網關,遠程應用平臺有效的屏蔽各傳感網的異構性,與傳感網節(jié)點實現(xiàn)互聯(lián)互通。
5)設備管理功能:傳感網的節(jié)點數(shù)量眾多,分布廣泛,不便于直接對節(jié)點終端進行管理,因此需要通過物聯(lián)網網關實現(xiàn)節(jié)點設備的狀態(tài)查詢、監(jiān)控、配置等的功能。
6)安全防護功能:通過網絡遠程與物聯(lián)網網關建立通信需要先對用戶身份進行驗證和授權;支持數(shù)據(jù)加密等安全措施。
網關總體結構設計如圖1所示。各類協(xié)議的傳感網節(jié)點與物聯(lián)網網關間有專門的數(shù)據(jù)通道,網關可以接收傳感網節(jié)點的上報數(shù)據(jù),同時可以向這些節(jié)點傳輸控制終端發(fā)送來的狀態(tài)查詢和控制命令。網關內部分為兩部分,一部分是傳感網服務器,負責接收、處理和存儲傳感網傳來的數(shù)據(jù),向傳感網節(jié)點設備發(fā)送控制信令,同時接收Web服務器或客戶端軟件平臺發(fā)出的數(shù)據(jù)請求或其他命令,提供請求數(shù)據(jù)等;網關另一部分是Web服務器部分,為互聯(lián)網遠程終端或應用平臺對物聯(lián)網網關的訪問提供良好的交互界面,該界面用Web網頁實現(xiàn),避免了遠程智能終端下載安裝客戶端軟件的繁瑣步驟。通過互聯(lián)網訪問網關Web界面,可對物聯(lián)網的傳感網節(jié)點進行狀態(tài)查詢和控制等操作。
圖1 系統(tǒng)總體結構Fig.1 Overall system architecture
為實現(xiàn)上述物聯(lián)網網關的基本功能,需要先構建一個嵌入式的最小系統(tǒng),在此系統(tǒng)上運行嵌入式操作系統(tǒng)作為實現(xiàn)上層功能的基礎,然后擴展出各通信協(xié)議對應的硬件通信模塊,實現(xiàn)網關與互聯(lián)網和傳感網的數(shù)據(jù)信息交互。
在本智能網關的設計中,采用AT91SAM9X35微處理器,DDRAM、時鐘電路、NANDFLASH構建核心最小系統(tǒng)處理電路,其中AT91SAM9X35是基于ARM926EJ-STM的微處理器,內部集成了UART控制器,Can控制器,以太網適配器和RS485等控制器的功能,具有較好的處理能力。在外圍電路中,擴展接入了各協(xié)議的數(shù)據(jù)收發(fā)芯片,從而在微處理器的控制下進行各類信號的傳輸工作。設計中采用DM9161A芯片實現(xiàn)以太網數(shù)據(jù)通信,通過串口接入CC2430模塊,實現(xiàn)Zigbee通信,通過TJA1050收發(fā)芯片和ADM2483收發(fā)芯片分別實現(xiàn)Can和RS485的數(shù)據(jù)通信。硬件結構如圖2所示。
圖2 硬件結構Fig.2 Hardware structure
網關系統(tǒng)軟件除了協(xié)調硬件實現(xiàn)數(shù)據(jù)的收發(fā)功能外,還要實現(xiàn)數(shù)據(jù)的解析和處理,轉發(fā)和存儲,遠程交互和安全訪問控制等功能。為了更好的分塊實現(xiàn)這些功能,本設計將網關分為Web服務器部分和傳感網服務器部分,這兩大部分都屬于應用層軟件的范疇,建立在嵌入式Linux操作系統(tǒng)之上。
3.1 操作系統(tǒng)層軟件
選用嵌入式Linux系統(tǒng),其特點是代碼開放,性能優(yōu)異,軟件易于移植。將Linux操作系統(tǒng)移植到網關硬件電路的關鍵步驟,就是對各硬件設備的驅動進行相應的移植[5]。物聯(lián)網網關中用到的設備驅動主要有以太網驅動,串口驅動以及Can和485總線驅動等,這些驅動程序為上層應用軟件對硬件收發(fā)器的控制提供了良好的支持。嵌入式Linux下開發(fā)的應用程序可以比較容易的移植到運行Linux的其他嵌入式系統(tǒng)中,這非常利于物聯(lián)網網關設備的推廣。
3.2 應用層軟件
(1)Web服務器
Web服務器部分實現(xiàn)網關與上層傳輸網絡的通信,為遠程應用終端監(jiān)控傳感網節(jié)點設備提供良好的交互界面?;ヂ?lián)網遠程終端通過Web網頁可以查詢傳感網節(jié)點設備的狀態(tài)信息,對該節(jié)點發(fā)出控制命令,也可以通過Web網頁查看設備列表并管理設備。程序流程如圖3所示,接收終端通過瀏覽器發(fā)來的8080端口請求,該請求通過TCP協(xié)議傳輸,調用CGI模塊,該模塊進程是Web服務器的子進程,通過環(huán)境變量獲取瀏覽器請求中的相關信息,然后與傳感網服務器通信,獲取相應數(shù)據(jù),再將結果處理成HTML網頁格式的數(shù)據(jù)發(fā)回給瀏覽器。在CGI模塊中,設置了用戶登陸認證模塊,該模塊使得只有網關認可的用戶才有資格對傳感網的結點設備進行查詢和控制操作,從而提高了網關的安全性。
圖3 Web服務器程序流程Fig.3 Program flowchartofWeb server
(2)傳感網服務器
傳感網服務器是實現(xiàn)網關與傳感網通信功能的部分,各傳感網網絡的數(shù)據(jù)在此處匯聚。其結構如圖4所示,數(shù)據(jù)傳輸功能由多線程程序實現(xiàn),一個線程負責一種傳輸協(xié)議。Web服務器或專門編寫的客戶端程序可以通過TCP協(xié)議與傳感網服務器通信,通信端口設為8088端口。傳感網服務器在接收到命令請求后,會將接收的命令先放入命令緩沖池排隊等待處理,命令緩沖池中命令的存入和提取處理通過生產消費者原理模型實現(xiàn)。傳感網節(jié)點上傳的數(shù)據(jù)存儲在設備信息表的數(shù)據(jù)數(shù)組中,供其它程序調取處理。
圖4 傳感網服務器結構Fig.4 Server architecture of sensor network
傳感網服務器的程序流程如圖5所示,開始初始化數(shù)據(jù)庫服務,獲得傳感網的各設備信息,初始化命令緩沖池,準備接收命令,初始化各服務線程,準備與傳感網和Web服務器的通信,然后一方面與傳感網傳輸數(shù)據(jù),一方面等待互聯(lián)網終端通過Web服務器或客戶端發(fā)來的命令請求。一旦檢測到命令進入命令緩沖池,則開始執(zhí)行相應的命令請求,完成后
提取或等待下一條命令。
圖5 傳感網服務器程序流程Fig.5 Program flowchart of sensor network server
3.3 數(shù)據(jù)包格式
為方便物聯(lián)網網關處理接收到的傳感網數(shù)據(jù),對傳感網的數(shù)據(jù)包內容格式做如下規(guī)定,自定義數(shù)據(jù)格式如圖6所示。
圖6 自定義傳感網數(shù)據(jù)格式Fig.6 Data format of self-defined sensor network
在自定義的數(shù)據(jù)格式中,傳感網節(jié)點的地址占用2字節(jié),標識節(jié)點在傳感網中的地址;設備地址占1字節(jié),標識處于該傳感網節(jié)點上的某個設備的地址;數(shù)據(jù)(信令)長度占1字節(jié),標識發(fā)送的有效數(shù)據(jù)長度;數(shù)據(jù)占16字節(jié),用于存儲發(fā)送的數(shù)據(jù)或信令。例如發(fā)送數(shù)據(jù)包的傳感網設備在地址為0x1001的傳感網節(jié)點處,并且是該結點的2號設備,地址為0x02,發(fā)送了兩個字節(jié)的數(shù)據(jù)0x01, 0x01,那么數(shù)據(jù)長度為0x02,因此該數(shù)據(jù)包發(fā)送的是: 0x1001020201010000000000000000000000000000,數(shù)據(jù)部分只有前兩字節(jié)的0101有效,后面的字節(jié)無效,只是補滿16字節(jié)的數(shù)據(jù)長度,方便其他程序的接收處理。
3.4 安全防護措施
Web服務器部分設置了用戶認證模塊,可有效的防止非法用戶通過物聯(lián)網網關對傳感網節(jié)點的操作。傳感網服務器工作中會接收Web服務器或客戶端軟件的命令,為防止他人非法向傳感網服務器發(fā)送命令請求,特別設置安全密匙KEY機制,Web服務器和客戶端軟件內設置了與傳感網服務器相同的KEY信息,每次命令的收發(fā)都要驗證KEY值,驗證失敗時傳感網服務器將拒絕接受命令,從而在高效數(shù)據(jù)通信的同時也保證了網關的安全性。
文中采用AT91SAM9X35等芯片模塊設計了簡易實用、價格低廉的嵌入式物聯(lián)網智能網關,功能上實現(xiàn)了物聯(lián)網三層結構中感知層與傳輸層的紐帶作用[6]。向上與互聯(lián)網即傳輸層網絡實現(xiàn)TCP協(xié)議的可靠通信,并通過Web頁面提供了傳感網設備查詢、控制的良好界面,向下滿足了與傳感網的多協(xié)議通信需求。隨著物聯(lián)網的發(fā)展,這種低成本的嵌入式物聯(lián)網網關有望得到推廣,從而實現(xiàn)生活中人與人,人與物以及物與物之間隨時隨地的交流。
[1] 張洋洋,趙建平,徐娟娟.基于物聯(lián)網技術的水文監(jiān)測系統(tǒng)研究[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] 鄭樹泉,韓元杰,張泉.物聯(lián)網架構與應用[J].軟件產業(yè)與工程,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] 鐘科,陳向東.基于物聯(lián)網的智能家居服務網關的設計[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] 趙炳弟.物聯(lián)網m2m網關剖析[J].電信技術,2013, (12):73-76.
ZHAO Bing-di,Internet of Things m2m gateway analysis [J].Telecommunications Technology.2013,(12):73-76.
[5] 王森,何建忠.基于linux系統(tǒng)的字符設備驅動研究與設計[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] 劉強,崔莉,陳海明.物聯(lián)網關鍵技術與應用[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—),男,副教授/高級工程師,主要研究方向為工業(yè)智能控制,計算機控制;
CHEN Le-geng(1963-),male,associate professor/senior engineer,maily working at industrial intelligent control and computer control.
洪志鵬(1988—),男,碩士,主要研究方向為物聯(lián)網網關;
HONG Zhi-peng(1988-),male,M.Sci., maily working at industrial intelligent control and IoT gateway.
崔更申(1970—),男,碩士,副教授,主要研究方向為嵌入式系統(tǒng)及應用,物聯(lián)網,計算機視覺。
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)