桂健 蔡聲鎮 謝燕輝
摘 要: 為解決異構測控網絡的以太網接入問題,以ARM9處理器S3C2440A和多個功能模塊組成硬件平臺,在移植嵌入式操作系統Linux和嵌入式數據庫SQLite3的基礎上,設計了多線程網關服務程序,實現了兼容無線數傳、通用串口、WiFi等通信方式的以太網接入。測試結果表明:該網關具有成本低,兼容性強,使用方便等特點。
關鍵詞: 嵌入式操作系統; 網關; ARM9; Linux; SQLite3
中圖分類號: TN911?34; TP27 文獻標識碼: A 文章編號: 1004?373X(2014)11?0007?04
Abstract: In order to solve the problem of Ethernet access in heterogeneous measurement and control network, by taking ARM9 processor S3C2440A and several functional modules to form the hardware platform, a multithread service program for gateway was designed, and Ethernet access compatible with the multiple communication modes such as WSN, universal serial port and WIFI was realized based on transplantion of the embedded operation system Linux and embedded database SQLite3. The test results show that this gateway has the characteristics of low cost, strong compatibility and convenient application.
Keywords: embedded operation system; gateway; ARM9; Linux; SQLite3
0 引 言
在大型分布式測控或監測(以下簡稱測控)系統中,通常需要根據工程的實際需求,由若干個局部測控網絡(以下簡稱測控網絡)構成,每個測控網絡分布區域內的現場終端經網關通過Internet與測控中心服務器通信,實現整個系統的集中監測與控制。其中各個測控網絡采用的通信技術,往往需要根據實際工程環境、具體的測控對象和運行成本擇優確定,有時甚至需要在一個測控網絡中采用多種通信方式才能滿足用戶需求,因此,兼容多種通信方式的網關成為大型測控系統的關鍵技術之一。本文結合面向集群應用的可再生能源應用工程(如風力發電場、太陽能路燈、集群應用的太陽能中央熱水器等)監測與管理系統的實際需求,設計兼容多種通信方式的嵌入式智能網關,實現現場測控終端延伸網絡與接入網絡的協議轉換以及局域與廣域的互聯,以適應不同測控環境對網關的兼容性需求。
1 嵌入式網關系統設計
網關是整個測控網絡中最大的數據匯聚點,用于實現不同網絡之間的無縫融合。網關通過多種通信方式采集工程現場測控終端傳輸回來的數據,并對數據進行必要的解析、重組和存儲后,通過以太網上傳至高端服務器。本文的嵌入式網關的結構如圖1所示,其中選用ARM9微處理器S3C2440A和外部存儲器NandFLASH,是為了滿足網關的數據處理能力和存儲容量需求[1]。考慮到測控現場通信條件和環境條件的多樣性,在網關與現場測控網絡節點和網關與高端服務器之間,均設計了有線和無線兩種通信接口,前者是圖1中的串口通信模塊和無線數傳模塊,后者是圖1中的以太網模塊和GPRS模塊,這樣用戶可根據需求靈活選擇通信方式,達到降低構建通信網絡的復雜度和施工成本的目的。現場操作應用移動終端通過WiFi與網關交互,使網關在測控現場的安裝位置幾乎不受限制,結合網關的無線通信接口,對于構建無線數傳網絡更具靈活性。
2 嵌入式網關軟件設計
2.1 嵌入式操作系統移植
Linux是一種性能優良、源碼公開的操作系統,具備現代Unix系統所具備的全部特征,其中包括真正的多任務、虛擬內存、共享庫、需求裝載、內存管理以及支持TCP/IP網絡等,被廣泛應用于現代嵌入式系統[2]。
一般的Linux系統包括內核、文件系統、用戶應用程序和Bootloader等,其中Bootloader是內核加載程序,用于將設備初始化和建立存儲空間的映射機制[3]。本文使用Uboot作為引導程序,系統啟動后把NandFLASH上的操作系統加載到SDRAM中運行,對Uboot啟動程序進行修改并進行交叉編譯生成u?boot.bin文件,以適應系統的硬件環境;內核移植使用Linux?2.6.30版本進行配置和裁剪,驅動程序采用模塊加載的方式,更利于控制內核的大小,再交叉編譯成uImage文件;文件系統采用yaffs2,首先下載busybox,配置后進行交叉編譯,安裝到本地一個文件夾,將需要用到的C庫動態鏈接文件拷貝到該文件夾下的lib文件夾,然后使用mkyaffs2image工具制作成yaffs2格式映像文件。最后,將生成好的Uboot、內核、文件系統映像文件按照預先設好的分區地址燒寫到NandFLASH里,即完成了嵌入式操作系統的移植。
2.2 多線程服務程序
網關主程序是基于多線程的服務器程序設計的。Linux下的線程可以看作是輕量級的進程,相比于多進程服務器,多線程的服務器有很多優點[4]。程序初始化后首先創建關鍵子線程并分別處理不同的任務,最后進入定時器程序,通過定時控制不同任務的標識位,以達到控制子線程運行周期的目的,軟件架構如圖2所示。
網關多線程服務程序主要由串口服務線程、網絡通信服務線程和數據同步服務線程構成,其中串口服務線程負責與測控網絡節點的串口通信,包括接收數據和下發命令;網絡通信線程通過socket編程實現移動終端與嵌入式網關的網絡通信,對移動終端發出的數據庫操作命令進行解析與數據的返回;數據同步線程實現了現場數據同遠程高端服務器的數據同步功能,網關通過實時和定時兩種方式將嵌入式數據庫里的最新數據和未同步的歷史數據上傳到高端服務器,供因特網用戶瀏覽。
2.3 兼容多種通信方式的方法
由圖1可知,網關在測控系統中處于承上啟下的地位,是數據傳輸的中樞節點,需要具備分別與現場測控終端和高端服務器的有線和無線通信功能,同時支持基于移動終端的人機交互功能。上述涉及的通信方式均有成熟的技術支持,下面結合面向集群應用的太陽能熱水工程控制與管理系統,重點討論如何實現多種通信方式的控制與管理方法。
2.3.1 網關與測控網絡節點間的通信
在面向集群應用的太陽能熱水工程控制和管理系統中,企業端服務器通過分布在各個工程現場的網關對每一個太陽能中央熱水器進行測控與管理。其中每個網關通過現場測控網絡(含有線和無線)與各個網絡節點(這里是太陽能中央熱水器)進行通信。
任何設備間的數據通信都必須在物理鏈路上建立邏輯連接,網關的物理鏈路包括串行口和以太網接口等,相應的邏輯連接就是串行通信協議和TCP/IP協議等;在邏輯鏈路的基礎上,各種設備再定義自己的應用層協議。網關數據的協議轉換是基于各個服務子線程對嵌入式數據庫內數據進行協議幀封裝與解析的操作,各個網絡節點數據封裝成測控網絡數據傳輸通信協議數據幀格式后通過現場測控網絡傳輸至網關,網關對數據進行解析處理后將傳感網絡數據(如溫度、水位等)存入數據庫SQLite中,實現網關對測控網絡通信協議的兼容,測控網絡數據傳輸通信協議數據幀格式如表1所示[5]。當用戶進行實時查詢或網關定時上傳數據操作時,數據同步服務線程從嵌入式數據庫中取出數據,對數據進行重新封裝,為數據添加TCP頭和IP頭,構造TCP/IP協議幀格式,再通過以太網傳輸至高端服務器,從而實現網關對以太網數據傳輸協議的兼容,接收以太網數據和上傳數據過程中TCP/IP協議幀解析與封裝流程圖如圖3所示。
2.3.2 網關與高端服務器間的通信
高端服務器通過Internet(含有線和無線)與每個網關通信,實現控制指令的下傳和現場終端數據的匯聚。其中網關與高端服務器間的通信可視為兩者之間的數據同步過程,即實現各個網關內的測控數據分別與高端服務器的相應數據一致。在現有的數據同步技術中,DCOM,CORBA或數據庫自帶的同步程序,都要求兩端為同構數據庫,而且都受到防火墻的限制,無法使用特定端口進行通信;即使采用Socket通信技術也同樣受防火墻限制[6]。本文采用基于XML和HTTP的Web Service數據同步技術,它融合了DCOM,CORBA 和Web等技術的優點,既具有較強的數據處理能力,同時又是一種與語言、平臺和對象無關的模型,而且大多數企業都會開放用于HTTP的80端口,因此不受防火墻的限制[7]。由高端服務器提供數據同步Web 服務,網關通過gSOAP軟件調用Web服務[8],實現網關和高端服務器數據庫的數據同步。
2.3.3 網關與移動終端間的通信
網關使用移動終端進行現場數據的配置和查詢,為了便于用戶操作,網關通過WiFi連接的方式與移動終端通信,使用socket編程實現網關與移動終端間的通信功能。網關與移動終端間的通信數據采用JSON格式對數據進行組包再送入信道。JSON作為一種輕量級的數據傳輸格式,易于閱讀和編碼,且它是JavaScript規范的子集,能被支持JavaScript瀏覽器的移動終端所解析,這些特性使JSON成為理想的數據交換語言,使網絡傳輸更有效率[9]。
3 系統測試
3.1 測試環境
為了測試網關的功能和在不同環境下的性能,分別把網關安裝在實驗室和工程現場兩種環境進行測試。實驗室環境良好,便于布線,網關可以安裝在任意房間,通過有線方式進行通信。工程現場環境較差,不便于布線,網關采用無線方式進行通信。
3.2 測試方法
實驗室環境有線方式:使用RS 485總線進行數據采集與存儲,使用網線直連以太網接口接入Internet進行數據上傳與同步;工程現場環境無線方式:使用無線數傳模塊與測控網絡節點通信,使用GPRS接入Internet與高端服務器通信。分別測試網關與測控網絡節點距離約為50 m時通過高端服務器向網關每發送2 000個數據包的丟包數和平均延時。
3.3 測試數據
3.3.1 功能測試數據
將嵌入式網關接入工程現場進行測試,網關存儲用戶的配置數據和底層采集系統上傳過來的監測數據,定時上傳至企業端服務器。通過高端服務器數據庫可以查看當前所有正常運行系統同步上來的數據,如圖4所示,同時通過串口工具登陸網關系統也可以查詢當前數據,如圖5所示。高端服務器數據庫和網關內數據庫數據相同,為同一時間數據,網關實現了同步數據的功能。
3.3.2 性能測試數據
為驗證嵌入式網關在測控系統里的實時性能,對網關在不同環境下兩種通信方式的兩個指標進行比較:實驗室環境有線方式和工程現場環境無線方式的丟包數和平均延時[10]。測試結果如圖6,圖7所示。
3.4 測試結果分析
圖6中,橫坐標值依次代表10次實驗,每次實驗接收數據2 000條。縱坐標代表丟包數,單位是個。可看出每2 000個數據包無線方式平均丟包率為0.7‰,有線方式丟包率為0;圖7中無線方式平均延時在9 ms上下浮動,有線方式平均延時在6.5 ms上下;兩種方式的丟包率和平均延時都符合應用要求。由比較也可看出有線方式比無線方式的實時性能有明顯優勢,但無線方式安裝方便,便于施工。兩種方式各有自己的優勢,在實際工程應用中可根據需要進行選擇。
4 結 語
本文介紹了一種嵌入式網絡網關軟件部分的設計與實現方法,使用多種通信方式實現工程現場數據采集和同步上傳的功能,解決了實際工程中不同通信網絡間的融合問題。經現場測試,該嵌入式網關響應速度快,運行良好,經過適當的修改和完善,可用于智能家居、工業控制等領域,具有很好的應用推廣價值。
參考文獻
[1] 萬書芹,魏斌,陳子逢,等.一種無線傳感網網關的設計[J].電子與封裝,2012,12(4):38?41.
[2] 楊宗德,呂光宏,劉雍.Linux高級程序設計[M].3版.北京:人民郵電出版社,2012.
[3] 杜廷龍,李國朋,謝青松.基于嵌入式Linux的無線網關設計[J].電腦知識與技術,2011,31(7):7613?7614.
[4] 劉仕筠,盛志偉,黃健.Linux環境并發服務器設計技術研究[J].成都信息工程學院學報,2006,21(5):630?634.
[5] 林霞.集群型太陽能熱水工程集控與管理系統的設計[D].福州:福建師范大學,2011.
[6] 徐國華,馮哲.基于Web Service 的異構數據庫簡易同步系統設計[J].商場現代化,2006(27):129?130.
[7] 丁國峰.基于80端口的內外網數據通信[J].計算機應用與軟件,2009,26(5):192?194.
[8] 李永,俞輝.基于Embedded Linux的gSOAP的移植和裁剪[J]. 微型電腦應用,2011,27(1):40?43.
[9] 高靜,段會川.JSON數據傳輸效率研究[J].計算機工程與設計,2011,32(7):2267?2270.
[10] 孫紅兵,陳沫,蔡一兵,等.IPv4/IPv6轉換網關性能測試方法研究[J].計算機工程,2006,32(24):93?95.
網關多線程服務程序主要由串口服務線程、網絡通信服務線程和數據同步服務線程構成,其中串口服務線程負責與測控網絡節點的串口通信,包括接收數據和下發命令;網絡通信線程通過socket編程實現移動終端與嵌入式網關的網絡通信,對移動終端發出的數據庫操作命令進行解析與數據的返回;數據同步線程實現了現場數據同遠程高端服務器的數據同步功能,網關通過實時和定時兩種方式將嵌入式數據庫里的最新數據和未同步的歷史數據上傳到高端服務器,供因特網用戶瀏覽。
2.3 兼容多種通信方式的方法
由圖1可知,網關在測控系統中處于承上啟下的地位,是數據傳輸的中樞節點,需要具備分別與現場測控終端和高端服務器的有線和無線通信功能,同時支持基于移動終端的人機交互功能。上述涉及的通信方式均有成熟的技術支持,下面結合面向集群應用的太陽能熱水工程控制與管理系統,重點討論如何實現多種通信方式的控制與管理方法。
2.3.1 網關與測控網絡節點間的通信
在面向集群應用的太陽能熱水工程控制和管理系統中,企業端服務器通過分布在各個工程現場的網關對每一個太陽能中央熱水器進行測控與管理。其中每個網關通過現場測控網絡(含有線和無線)與各個網絡節點(這里是太陽能中央熱水器)進行通信。
任何設備間的數據通信都必須在物理鏈路上建立邏輯連接,網關的物理鏈路包括串行口和以太網接口等,相應的邏輯連接就是串行通信協議和TCP/IP協議等;在邏輯鏈路的基礎上,各種設備再定義自己的應用層協議。網關數據的協議轉換是基于各個服務子線程對嵌入式數據庫內數據進行協議幀封裝與解析的操作,各個網絡節點數據封裝成測控網絡數據傳輸通信協議數據幀格式后通過現場測控網絡傳輸至網關,網關對數據進行解析處理后將傳感網絡數據(如溫度、水位等)存入數據庫SQLite中,實現網關對測控網絡通信協議的兼容,測控網絡數據傳輸通信協議數據幀格式如表1所示[5]。當用戶進行實時查詢或網關定時上傳數據操作時,數據同步服務線程從嵌入式數據庫中取出數據,對數據進行重新封裝,為數據添加TCP頭和IP頭,構造TCP/IP協議幀格式,再通過以太網傳輸至高端服務器,從而實現網關對以太網數據傳輸協議的兼容,接收以太網數據和上傳數據過程中TCP/IP協議幀解析與封裝流程圖如圖3所示。
2.3.2 網關與高端服務器間的通信
高端服務器通過Internet(含有線和無線)與每個網關通信,實現控制指令的下傳和現場終端數據的匯聚。其中網關與高端服務器間的通信可視為兩者之間的數據同步過程,即實現各個網關內的測控數據分別與高端服務器的相應數據一致。在現有的數據同步技術中,DCOM,CORBA或數據庫自帶的同步程序,都要求兩端為同構數據庫,而且都受到防火墻的限制,無法使用特定端口進行通信;即使采用Socket通信技術也同樣受防火墻限制[6]。本文采用基于XML和HTTP的Web Service數據同步技術,它融合了DCOM,CORBA 和Web等技術的優點,既具有較強的數據處理能力,同時又是一種與語言、平臺和對象無關的模型,而且大多數企業都會開放用于HTTP的80端口,因此不受防火墻的限制[7]。由高端服務器提供數據同步Web 服務,網關通過gSOAP軟件調用Web服務[8],實現網關和高端服務器數據庫的數據同步。
2.3.3 網關與移動終端間的通信
網關使用移動終端進行現場數據的配置和查詢,為了便于用戶操作,網關通過WiFi連接的方式與移動終端通信,使用socket編程實現網關與移動終端間的通信功能。網關與移動終端間的通信數據采用JSON格式對數據進行組包再送入信道。JSON作為一種輕量級的數據傳輸格式,易于閱讀和編碼,且它是JavaScript規范的子集,能被支持JavaScript瀏覽器的移動終端所解析,這些特性使JSON成為理想的數據交換語言,使網絡傳輸更有效率[9]。
3 系統測試
3.1 測試環境
為了測試網關的功能和在不同環境下的性能,分別把網關安裝在實驗室和工程現場兩種環境進行測試。實驗室環境良好,便于布線,網關可以安裝在任意房間,通過有線方式進行通信。工程現場環境較差,不便于布線,網關采用無線方式進行通信。
3.2 測試方法
實驗室環境有線方式:使用RS 485總線進行數據采集與存儲,使用網線直連以太網接口接入Internet進行數據上傳與同步;工程現場環境無線方式:使用無線數傳模塊與測控網絡節點通信,使用GPRS接入Internet與高端服務器通信。分別測試網關與測控網絡節點距離約為50 m時通過高端服務器向網關每發送2 000個數據包的丟包數和平均延時。
3.3 測試數據
3.3.1 功能測試數據
將嵌入式網關接入工程現場進行測試,網關存儲用戶的配置數據和底層采集系統上傳過來的監測數據,定時上傳至企業端服務器。通過高端服務器數據庫可以查看當前所有正常運行系統同步上來的數據,如圖4所示,同時通過串口工具登陸網關系統也可以查詢當前數據,如圖5所示。高端服務器數據庫和網關內數據庫數據相同,為同一時間數據,網關實現了同步數據的功能。
3.3.2 性能測試數據
為驗證嵌入式網關在測控系統里的實時性能,對網關在不同環境下兩種通信方式的兩個指標進行比較:實驗室環境有線方式和工程現場環境無線方式的丟包數和平均延時[10]。測試結果如圖6,圖7所示。
3.4 測試結果分析
圖6中,橫坐標值依次代表10次實驗,每次實驗接收數據2 000條。縱坐標代表丟包數,單位是個。可看出每2 000個數據包無線方式平均丟包率為0.7‰,有線方式丟包率為0;圖7中無線方式平均延時在9 ms上下浮動,有線方式平均延時在6.5 ms上下;兩種方式的丟包率和平均延時都符合應用要求。由比較也可看出有線方式比無線方式的實時性能有明顯優勢,但無線方式安裝方便,便于施工。兩種方式各有自己的優勢,在實際工程應用中可根據需要進行選擇。
4 結 語
本文介紹了一種嵌入式網絡網關軟件部分的設計與實現方法,使用多種通信方式實現工程現場數據采集和同步上傳的功能,解決了實際工程中不同通信網絡間的融合問題。經現場測試,該嵌入式網關響應速度快,運行良好,經過適當的修改和完善,可用于智能家居、工業控制等領域,具有很好的應用推廣價值。
參考文獻
[1] 萬書芹,魏斌,陳子逢,等.一種無線傳感網網關的設計[J].電子與封裝,2012,12(4):38?41.
[2] 楊宗德,呂光宏,劉雍.Linux高級程序設計[M].3版.北京:人民郵電出版社,2012.
[3] 杜廷龍,李國朋,謝青松.基于嵌入式Linux的無線網關設計[J].電腦知識與技術,2011,31(7):7613?7614.
[4] 劉仕筠,盛志偉,黃健.Linux環境并發服務器設計技術研究[J].成都信息工程學院學報,2006,21(5):630?634.
[5] 林霞.集群型太陽能熱水工程集控與管理系統的設計[D].福州:福建師范大學,2011.
[6] 徐國華,馮哲.基于Web Service 的異構數據庫簡易同步系統設計[J].商場現代化,2006(27):129?130.
[7] 丁國峰.基于80端口的內外網數據通信[J].計算機應用與軟件,2009,26(5):192?194.
[8] 李永,俞輝.基于Embedded Linux的gSOAP的移植和裁剪[J]. 微型電腦應用,2011,27(1):40?43.
[9] 高靜,段會川.JSON數據傳輸效率研究[J].計算機工程與設計,2011,32(7):2267?2270.
[10] 孫紅兵,陳沫,蔡一兵,等.IPv4/IPv6轉換網關性能測試方法研究[J].計算機工程,2006,32(24):93?95.
網關多線程服務程序主要由串口服務線程、網絡通信服務線程和數據同步服務線程構成,其中串口服務線程負責與測控網絡節點的串口通信,包括接收數據和下發命令;網絡通信線程通過socket編程實現移動終端與嵌入式網關的網絡通信,對移動終端發出的數據庫操作命令進行解析與數據的返回;數據同步線程實現了現場數據同遠程高端服務器的數據同步功能,網關通過實時和定時兩種方式將嵌入式數據庫里的最新數據和未同步的歷史數據上傳到高端服務器,供因特網用戶瀏覽。
2.3 兼容多種通信方式的方法
由圖1可知,網關在測控系統中處于承上啟下的地位,是數據傳輸的中樞節點,需要具備分別與現場測控終端和高端服務器的有線和無線通信功能,同時支持基于移動終端的人機交互功能。上述涉及的通信方式均有成熟的技術支持,下面結合面向集群應用的太陽能熱水工程控制與管理系統,重點討論如何實現多種通信方式的控制與管理方法。
2.3.1 網關與測控網絡節點間的通信
在面向集群應用的太陽能熱水工程控制和管理系統中,企業端服務器通過分布在各個工程現場的網關對每一個太陽能中央熱水器進行測控與管理。其中每個網關通過現場測控網絡(含有線和無線)與各個網絡節點(這里是太陽能中央熱水器)進行通信。
任何設備間的數據通信都必須在物理鏈路上建立邏輯連接,網關的物理鏈路包括串行口和以太網接口等,相應的邏輯連接就是串行通信協議和TCP/IP協議等;在邏輯鏈路的基礎上,各種設備再定義自己的應用層協議。網關數據的協議轉換是基于各個服務子線程對嵌入式數據庫內數據進行協議幀封裝與解析的操作,各個網絡節點數據封裝成測控網絡數據傳輸通信協議數據幀格式后通過現場測控網絡傳輸至網關,網關對數據進行解析處理后將傳感網絡數據(如溫度、水位等)存入數據庫SQLite中,實現網關對測控網絡通信協議的兼容,測控網絡數據傳輸通信協議數據幀格式如表1所示[5]。當用戶進行實時查詢或網關定時上傳數據操作時,數據同步服務線程從嵌入式數據庫中取出數據,對數據進行重新封裝,為數據添加TCP頭和IP頭,構造TCP/IP協議幀格式,再通過以太網傳輸至高端服務器,從而實現網關對以太網數據傳輸協議的兼容,接收以太網數據和上傳數據過程中TCP/IP協議幀解析與封裝流程圖如圖3所示。
2.3.2 網關與高端服務器間的通信
高端服務器通過Internet(含有線和無線)與每個網關通信,實現控制指令的下傳和現場終端數據的匯聚。其中網關與高端服務器間的通信可視為兩者之間的數據同步過程,即實現各個網關內的測控數據分別與高端服務器的相應數據一致。在現有的數據同步技術中,DCOM,CORBA或數據庫自帶的同步程序,都要求兩端為同構數據庫,而且都受到防火墻的限制,無法使用特定端口進行通信;即使采用Socket通信技術也同樣受防火墻限制[6]。本文采用基于XML和HTTP的Web Service數據同步技術,它融合了DCOM,CORBA 和Web等技術的優點,既具有較強的數據處理能力,同時又是一種與語言、平臺和對象無關的模型,而且大多數企業都會開放用于HTTP的80端口,因此不受防火墻的限制[7]。由高端服務器提供數據同步Web 服務,網關通過gSOAP軟件調用Web服務[8],實現網關和高端服務器數據庫的數據同步。
2.3.3 網關與移動終端間的通信
網關使用移動終端進行現場數據的配置和查詢,為了便于用戶操作,網關通過WiFi連接的方式與移動終端通信,使用socket編程實現網關與移動終端間的通信功能。網關與移動終端間的通信數據采用JSON格式對數據進行組包再送入信道。JSON作為一種輕量級的數據傳輸格式,易于閱讀和編碼,且它是JavaScript規范的子集,能被支持JavaScript瀏覽器的移動終端所解析,這些特性使JSON成為理想的數據交換語言,使網絡傳輸更有效率[9]。
3 系統測試
3.1 測試環境
為了測試網關的功能和在不同環境下的性能,分別把網關安裝在實驗室和工程現場兩種環境進行測試。實驗室環境良好,便于布線,網關可以安裝在任意房間,通過有線方式進行通信。工程現場環境較差,不便于布線,網關采用無線方式進行通信。
3.2 測試方法
實驗室環境有線方式:使用RS 485總線進行數據采集與存儲,使用網線直連以太網接口接入Internet進行數據上傳與同步;工程現場環境無線方式:使用無線數傳模塊與測控網絡節點通信,使用GPRS接入Internet與高端服務器通信。分別測試網關與測控網絡節點距離約為50 m時通過高端服務器向網關每發送2 000個數據包的丟包數和平均延時。
3.3 測試數據
3.3.1 功能測試數據
將嵌入式網關接入工程現場進行測試,網關存儲用戶的配置數據和底層采集系統上傳過來的監測數據,定時上傳至企業端服務器。通過高端服務器數據庫可以查看當前所有正常運行系統同步上來的數據,如圖4所示,同時通過串口工具登陸網關系統也可以查詢當前數據,如圖5所示。高端服務器數據庫和網關內數據庫數據相同,為同一時間數據,網關實現了同步數據的功能。
3.3.2 性能測試數據
為驗證嵌入式網關在測控系統里的實時性能,對網關在不同環境下兩種通信方式的兩個指標進行比較:實驗室環境有線方式和工程現場環境無線方式的丟包數和平均延時[10]。測試結果如圖6,圖7所示。
3.4 測試結果分析
圖6中,橫坐標值依次代表10次實驗,每次實驗接收數據2 000條。縱坐標代表丟包數,單位是個。可看出每2 000個數據包無線方式平均丟包率為0.7‰,有線方式丟包率為0;圖7中無線方式平均延時在9 ms上下浮動,有線方式平均延時在6.5 ms上下;兩種方式的丟包率和平均延時都符合應用要求。由比較也可看出有線方式比無線方式的實時性能有明顯優勢,但無線方式安裝方便,便于施工。兩種方式各有自己的優勢,在實際工程應用中可根據需要進行選擇。
4 結 語
本文介紹了一種嵌入式網絡網關軟件部分的設計與實現方法,使用多種通信方式實現工程現場數據采集和同步上傳的功能,解決了實際工程中不同通信網絡間的融合問題。經現場測試,該嵌入式網關響應速度快,運行良好,經過適當的修改和完善,可用于智能家居、工業控制等領域,具有很好的應用推廣價值。
參考文獻
[1] 萬書芹,魏斌,陳子逢,等.一種無線傳感網網關的設計[J].電子與封裝,2012,12(4):38?41.
[2] 楊宗德,呂光宏,劉雍.Linux高級程序設計[M].3版.北京:人民郵電出版社,2012.
[3] 杜廷龍,李國朋,謝青松.基于嵌入式Linux的無線網關設計[J].電腦知識與技術,2011,31(7):7613?7614.
[4] 劉仕筠,盛志偉,黃健.Linux環境并發服務器設計技術研究[J].成都信息工程學院學報,2006,21(5):630?634.
[5] 林霞.集群型太陽能熱水工程集控與管理系統的設計[D].福州:福建師范大學,2011.
[6] 徐國華,馮哲.基于Web Service 的異構數據庫簡易同步系統設計[J].商場現代化,2006(27):129?130.
[7] 丁國峰.基于80端口的內外網數據通信[J].計算機應用與軟件,2009,26(5):192?194.
[8] 李永,俞輝.基于Embedded Linux的gSOAP的移植和裁剪[J]. 微型電腦應用,2011,27(1):40?43.
[9] 高靜,段會川.JSON數據傳輸效率研究[J].計算機工程與設計,2011,32(7):2267?2270.
[10] 孫紅兵,陳沫,蔡一兵,等.IPv4/IPv6轉換網關性能測試方法研究[J].計算機工程,2006,32(24):93?95.