趙興利,苑光明,張小俊,朱志輝
(1.河北工業大學機械工程學院,天津300130;2.河北工業大學校園建設與管理處,天津300130)
面向空間智能化的嵌入式網關服務器系統設計
趙興利1,苑光明1,張小俊1,朱志輝2
(1.河北工業大學機械工程學院,天津300130;2.河北工業大學校園建設與管理處,天津300130)
為了滿足車間、倉儲等不同空間需要不同傳感網絡的個性化需求,以物聯網為基礎設計了一套通用性強、可裁剪、可移植的空間智能化網關服務器系統.系統實現了CAN總線、RS485總線、WIFI、藍牙、ZIGBEE等多種傳感網絡與傳統通信網絡之間協議轉換.系統采用LAMP架構設計了嵌入式服務器,實現了在局域網內通過智能設備訪問本地服務器,查看傳感節點狀態和控制執行節點的功能;在廣域網內通過3G遠程通信技術實現異地監測傳感節點的最新狀態.
嵌入式;網關;服務器;異構網絡;LAMP架構
空間智能化系統是將傳感節點和執行節點通過總線技術或無線傳感技術連接到嵌入式網關服務器,嵌入式網關服務器對接入系統的設備節點集中的或遠程的監測、控制或事務處理,來保證空間的協調與安全.嵌入式網關服務器作為空間智能化系統信息交互、處理和存儲的中心,在系統中占據核心地位.嵌入式網關服務器一方面具有網關的作用實現異構網絡間通信,另一方面為用戶提供訪問服務[1].與通用的以太網網關不同,嵌入式物聯網網關需要支持傳統通信網絡與傳感網絡之間的數據交互.目前,物聯網網關的廠商都根據自身條件設計和生產支持某一種或幾種傳感網絡的產品,缺乏通用性,行業內沒有明確的標準進行規范.文獻[2]基于ZIGBEE和3G技術設計了倉儲管理預警網關系統,實現了貨物出入庫記錄及倉儲環境測量和遠傳,但是傳感網絡類型單一,通用性差;文獻[3]基于嵌入式Linux設計的多協議網關支持WIFI、藍牙兩種無線傳感網絡,但是藍牙模塊傳輸距離短,WIFI模塊功耗很大,在電磁干擾強的場所信號無線傳輸易受干擾;文獻[4]對ZIGBEE傳感網絡的軟硬件、網關協議轉換、上位機監控界面進行設計,實現了礦井瓦斯監測預警,但是沒有實現多傳感網絡協議轉換;文獻[5]基于ZIGBEE、以太網、WIFI技術,利用STM32和CC2530設計了嵌入式網關,實現了數據采集和節點控制,但是該測控子系統智能性有待改進.
針對礦井、倉儲等工業環境存在地理環境多種多樣、監測指標種類繁多等問題,僅支持一種或少數幾種傳感網絡的嵌入式網關已無法滿足多種工業空間的監控預警要求.系統設計了支持RS485總線、CAN總線、ZIGBEE、藍牙、WIFI五種應用最廣泛的傳感網絡和3G遠程通信技術的嵌入式網關服務器系統.系統支持定制,傳感網絡可裁剪、可擴展、通用性更強.
嵌入式網關服務器主處理器采用ARM Cortex A7內核的處理器.該處理器具有高達1.4 G主頻、1 G內存、4 G flash、最大擴展32 GSD card可以平穩的運行嵌入式網關服務器系統[6].
CAN總線通過SPI0與主控制器通信,采用MCP2515接口芯片與主控制器相連,完全支持CAN V2.0技術規范,通訊速率高達1 Mb/s.RS485總線通過UART0接口與主控制器通信.RS485為半雙工模式.RS485采用SN75LBC184接口芯片與主控制器相連,該芯片能承受高達8kV的靜電放電沖擊,可防止在使用或焊接時受到靜電的沖擊損壞.藍牙通過UART1與主控制器通信,接口芯片選擇TI的CC2540.該芯片為加強版51內核內置256 K存儲器,超寬工作電壓(2~3.6 V),超低功耗.ZIGBEE通過UART2與主控制器通信,接口芯片采用TI的CC2530.WIFI通過SDIO接口與主控制器通信,接口芯片采用RT5931模塊.3 G模塊選用中興物聯MF210模塊,該模塊與主處理器通過USB2.0接口通信.MF210與主處理器通信時,虛擬成3個ttyUSB口,供系統調試、遠程傳輸、SIM通信.
嵌入式服務器是嵌入式網關服務器系統中負責為用戶提供訪問服務的軟件組合.嵌入式服務器采用性能優良的LAMP經典架構開發,即Linux+Apache+MYSQL+PHP組合.如圖1所示為嵌入式網關服務器軟件架構圖.嵌入式服務器前端界面采用html5+css3的響應式網頁開發技術,使界面可以根據用戶設備屏幕的大小自動調整界面尺寸.服務器后臺程序采用PHP開發,用于響應前端界面請求和連接網關應用程序.嵌入式服務器前端界面與后臺程序之間采用AJAX服務通信.AJAX服務是異步數據傳輸機制.本文在AJAX服務的Servlet Library中設置有效的設備地址、模式類型、傳感節點狀態信息、執行節點狀態信息四個模塊,通過HTTP請求實時推送最新信息至前端界面.用戶操作某一模塊時,前端界面可以對這些模塊進行局部刷新,從而避免了頁面整體加載造成的卡頓和消耗過多流量,提高了頁面的刷新速度和減少用戶訪問的數據流量.

圖1 嵌入式網關服務器軟件架構Fig.1 Software chart of gateway server
2.1 嵌入式網關應用程序設計
網關應用程序作為傳感網絡與傳統通信網絡信息交互的紐帶,具有對數據解析、處理、傳輸等作用.本文采用多線程機制控制數據的上傳、下行和智能控制.多線程機制采用多任務并發運行的方式,可以有效提升系統CPU的利用率.表1所示為網關應用程序多線程機制.

表1 網關應用程序多線程機制Tab.1 Multithreading of gateway application
2.1.1 Socket_client線程設計
采用Socket_client線程主要用于遠程監測傳感信息.廣域網環境下數據傳輸,對傳輸安全性較高,因此采用TCP/IP傳輸方式.TCP/IP通過“三次握手”機制可以大大提高數據傳輸的安全性和完整性[7-8].Socket連接成功后,server程序產生一個新的子進程來維持與該客戶端的信息交互.嵌入式網關上運行的Client程序向云服務器上的Server循環發送心跳包,來驗證連接是否有效.當接收到傳感節點發來的狀態信息后,Client將傳感信息打包發送給云服務器,方便用戶遠程查看系統的最新狀態.如圖2所示為Socket客戶端流程圖.

圖2 Socket客戶端軟件流程圖Fig2Software chart of socket client
2.1.2 Receive_data_from_node線程設計
Receive_data_from_node線程的作用是同時監聽5路傳感網絡,并將采集的信息解析存入MYSQL數據庫,供用戶在遠程或局域網內查看.其中,監聽傳感網絡上傳信息方式為I/O復用技術中的EPOLL機制,如圖3所示,構建了EPOLL監聽五路傳感網絡的系統模型.使用EPOLL提供的API函數為五路傳感網絡建立句柄,并將建立的句柄拷貝進內核空間,然后使用EPOLL_CTL()為各個傳感網絡的句柄建立回調函數,當傳感設備就緒后,會喚醒等待隊列的等待進程,等待進程會調用該回調函數將已就緒的設備句柄加入就緒鏈表,EPOLL只對已經就緒的設備句柄進行輪詢讀操作,然后將讀取的傳感信息發送至用戶空間,提高CPU利用率.

圖3 網關中間層EPOLL模型Fig.3 EPOLL module of gateway server
2.2 Linux內核與驅動移植
Linux是一個可定制的開源的操作系統,通過配置內核的支持選項可以根據自己的需要,選擇內核支持的驅動.內核的移植首先在宿主機上搭建Linux開發環境,安裝ARM-Linux交叉編譯鏈.通過make menuconfig配置內核,然后將交叉編譯后得到的內核鏡像移植到目標機(嵌入式網關服務器).本文將各通信接口的將驅動程序編譯后移植到Linux系統中.
CAN總線驅動程序移植:首先是安裝和交叉編譯CAN總線調試工具iproute2;將編譯得到IP命令復制到目標板的/usr/sbin下面將原有的IP命令替換掉.通過新得到的IP命令配置CAN總線驅動:設置波特率ip link set can0 type can bitrate 125000;設置重啟時間ip link set can0 type can restart-ms 100.ZIGBEE、藍牙、RS485總線都是通過UART口與內核通信,UART作為Linux的1個字符設備,在/dev目錄下有與其對應的文件,統稱為/dev/ttyS*.WIFI驅動移植步驟:將Makefile文件中的cpu架構修改為IXP架構;修改/MODULE/include/os/rt_drv.h文件的BULKAGGRE_SIZE值來設置DMA的大小;交叉編譯,得到驅動程序:Insmod rt5931ap.ko;Insmod rtnet5931ap.ko;Insmod 5931ap.ko.按順序加載.
3G模塊驅動移植是:向Linux內核添加3G模塊接口驅動,使內核支持“USB driver for GSM and CDMA modems”;交叉編譯并重新燒寫內核;交叉編譯工作源代碼最終得到可執行文件pppd和chat;將可執行文件掛載到系統,配置DNS腳本文件即可.
2.3 網間通信設計
嵌入式網關的作用是實現傳統通信網絡與多種傳感網絡之間有效通信,需要設計通用性強的通信協議用于網間通信.各傳感網絡與網關應用程序之間通信是:各個傳感節點將傳感信息以通用通信協議的格式編碼放入數據包,發送至傳感網絡控制器.如圖4所示為數據包組成.

圖4 通用通信協議數據包組成Fig.4 Communication protocol packet composition
傳感網絡控制器將傳感信息從數據包解析出來,通過UART或USB口發送至網關應用程序.網關應用程序給每種傳感網絡定義了句柄,網關應用程序通過EPOLL機制同時監聽5路傳感網絡的句柄.當EPOLL監聽到有消息到來時,網關應用程序將消息按照通用通信格式解析,然后將解析出來的傳感信息存儲到已定義好的通用協議結構體中.
服務器與網關應用程序通信:網關應用程序將傳感信息通過SQL命令存入MYSQL數據庫,PHP后臺程序通過MYSQL庫函數將數據取出,通過AJAX將傳感信息更新于服務器前端界面.
當用戶要控制傳感網絡中執行節點時:在局域網內網關應用程序與服務器后臺程序之間建立一條消息隊列,實現了用戶的控制命令可以下發至網關應用程序.在廣域網內,嵌入式網關應用程序與服務器之間遵循TCP/IP協議通過socket套接字進行通信.網關應用程序中的Socket_client線程負責與遠程服務器的Socket服務端通信,然后將接收到的消息解析處理后,發送至Send_command_to_node線程.
1)網關協議轉換的正確性測試:數據的傳輸情況打印在日志Pcduino_uart.log中,如圖5所示.本文以ZIGBEE傳感網絡連接的DHT11傳感器入網上傳溫濕度信息為例,測試協議轉換的正確性.節點入網命令字cmd_type為1;本節點為ZIGBEE網絡連接的溫濕度傳感器,節點類型包括接口類型和設備類型,接口類型為字節的高3位010,設備類型為字節的低5位為00110,十進制為70;設備ID是一類設備內部的設備的地址,從1開始編址的;時間戳用于標記數據到達網關的時間,方便后期進行大數據分析和處理;數據:溫濕度數據共4個字節,前2個字節是溫度17.32℃,后2個字節是濕度65.47%.

圖5 DHT11入網數據包協議轉換測試Fig.5 Network packet protocol conversion test of DHT11
2)網關服務器的反應時間測試:單獨測試網關反應時間是網關串口函數定時讀取固定字符串,并將字符串解析處理后存入遠程數據庫或本地數據庫,然后更新于web界面上所用的時間.連接智能設備的網關服務器反應時間是傳感節點定時發送固定字符串至嵌入式網關,解析后存入數據庫并更新于web界面所測定的時間.如圖6所示為測試結果:

圖6 網關服務器反應時間測試Fig.6 The response time test of gateway server
如圖6所示,左圖為網關服務器未連接智能設備時的時間響應曲線,更新于遠程web界面的平均響應時間:T1=1.456 s;更新于本地web界面的平均響應時間:T2=0.267 s.右圖為網關服務器外接溫濕度傳感器時的時間響應曲線,更新數據于遠程web界面的平均響應時間:T3=1.873 s;更新數據于本地web界面的平均響應時間:T4=0.684 s.由測試可以得出:網關服務器外接智能設備后反應速度非常靈敏,平均響應時間T≤2 s,可以滿足車間、倉儲上對網關服務器的實時性要求.該網關服務器支持多種通信協議同時進行數據交互,開機和反應速度均比較快,在測試過程及平時使用中性能良好、運行穩定.
3)Web界面中各個監控節點的有效性測試:登錄web服務器操作各個節點是否有效,節點狀態顯示是否正確.該頁面設置了安防監測,火災監測.安防監測中設置了門磁節點,在安防狀態下當門關閉時web界面顯示正常,當門打開時web界面上的門磁節點應立即顯示危險;火災監測中設置了煙霧、火焰、甲烷節點,沒有發生危險時各個節點狀態顯示正常,當發生火災或燃氣泄漏時web界面上相應的節點狀態應立即顯示危險.

圖7 云服務器用戶操作界面Fig.7 Web server user interface
針對物聯網行業缺乏統一的標準規范,而且農業大棚、工業車間、倉儲環境多樣和監測種類繁多,本文設計了通用性強的通信協議結合多線程技術與EPOLL機制實現了多種異構網絡間穩定通信;基于B/S架構,采用AJAX+HTML5+CSS3設計了具有屏幕自適應和局部刷新功能的web監控界面及后臺程序;采用TCP/IP網絡通信和MYSQL開發庫實現了系統的遠程監控,方便用戶隨時隨地監測和控制系統狀態.
[1]張璐,呂昂.一種雙網絡智能家居嵌入式網關/服務器[J].物聯網技術,2015(7):72-75.
[2]劉培學,高穎,金佩芬.基于ZigBee及3G網絡的遠程倉儲管理系統設計[J].測控技術,2015,34(4):16-19.
[3]吳磊,王猛.基于嵌入式Linux的多協議網關設計與實現[J].電腦知識與技術,2016,12(30):30-34.
[4]晏勇,周相兵.基于物聯網礦井瓦斯動態監測與預警系統設計[J].實驗室研究與索,2016,35(1):93-96,105.
[5]李眾,王鵬澄,陸海空,等.基于ZigBee、以太網、WiFi技術的網關設計[J].測控技術,2015,34(3):97-100,104.
[6]消息展訊通信有限公司.展訊發布采用28 nm工藝的高集成度四核智能手機平臺[J].電腦與電信,2014(6):16-17.
[7]顏詩洋.微型嵌入式TCP/IP協議棧開發[J].電子設計工程,2014,22(22):108-110.
[8]吳建軍.關于TCP/IP網絡的安全問題研究[J].科技資訊,2015,13(32):27-27.
[責任編輯田豐 夏紅梅]
System design of intelligent embedded gateway server
ZHAO Xingli1,YUAN Guangming1,ZHANG Xiaojun1,ZHU Zhihui2
(1.School of Mechanical Engineering,Hebei University of Technology,Tianjin 300130,China;2.Campus Construction and Management Office,Hebei University of Technology,Tianjin 300130,China)
To meet the complex and diverse environment in producing department and storage,designed the intelligent gateway server which can be versatile and cut.The system integrated multiple heterogeneous networks such as CAN, RS485,WIFI,BlueTooth,ZIGBEE.The system uses the LAMP architecture to design the embedded server,and realizes the access to the local server through the intelligent device in the local area network,to view the status of the sensing nodes and control the execution nodes.In the wide-area network via Ethernet or 3G remote communication to monitor the latest state of sensing nodes.
embedded;gateway;server;heterogeneous network;LAMP framework
TP277
A
1007-2373(2017)02-0058-05
10.14081/j.cnki.hgdxb.2017.02.011
2017-02-15
天津市科技支撐計劃(14ZCDZGX00811);天津市產學研合作項目(14ZCZDSF00025);天津市863成果轉化項目(13RCHZGX01116,14RCHZGX00862)
趙興利(1990-),男,碩士研究生.通訊作者:苑光明(1967-),男,教授,博士,1642436550@qq.com.