国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

兼容多種通信方式的智能網(wǎng)關(guān)軟件設(shè)計

2014-07-18 17:37:25桂健蔡聲鎮(zhèn)謝燕輝
現(xiàn)代電子技術(shù) 2014年11期
關(guān)鍵詞:嵌入式操作系統(tǒng)網(wǎng)關(guān)

桂健 蔡聲鎮(zhèn) 謝燕輝

摘 要: 為解決異構(gòu)測控網(wǎng)絡(luò)的以太網(wǎng)接入問題,以ARM9處理器S3C2440A和多個功能模塊組成硬件平臺,在移植嵌入式操作系統(tǒng)Linux和嵌入式數(shù)據(jù)庫SQLite3的基礎(chǔ)上,設(shè)計了多線程網(wǎng)關(guān)服務(wù)程序,實現(xiàn)了兼容無線數(shù)傳、通用串口、WiFi等通信方式的以太網(wǎng)接入。測試結(jié)果表明:該網(wǎng)關(guān)具有成本低,兼容性強,使用方便等特點。

關(guān)鍵詞: 嵌入式操作系統(tǒng); 網(wǎng)關(guān); ARM9; Linux; SQLite3

中圖分類號: TN911?34; TP27 文獻(xiàn)標(biāo)識碼: 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 引 言

在大型分布式測控或監(jiān)測(以下簡稱測控)系統(tǒng)中,通常需要根據(jù)工程的實際需求,由若干個局部測控網(wǎng)絡(luò)(以下簡稱測控網(wǎng)絡(luò))構(gòu)成,每個測控網(wǎng)絡(luò)分布區(qū)域內(nèi)的現(xiàn)場終端經(jīng)網(wǎng)關(guān)通過Internet與測控中心服務(wù)器通信,實現(xiàn)整個系統(tǒng)的集中監(jiān)測與控制。其中各個測控網(wǎng)絡(luò)采用的通信技術(shù),往往需要根據(jù)實際工程環(huán)境、具體的測控對象和運行成本擇優(yōu)確定,有時甚至需要在一個測控網(wǎng)絡(luò)中采用多種通信方式才能滿足用戶需求,因此,兼容多種通信方式的網(wǎng)關(guān)成為大型測控系統(tǒng)的關(guān)鍵技術(shù)之一。本文結(jié)合面向集群應(yīng)用的可再生能源應(yīng)用工程(如風(fēng)力發(fā)電場、太陽能路燈、集群應(yīng)用的太陽能中央熱水器等)監(jiān)測與管理系統(tǒng)的實際需求,設(shè)計兼容多種通信方式的嵌入式智能網(wǎng)關(guān),實現(xiàn)現(xiàn)場測控終端延伸網(wǎng)絡(luò)與接入網(wǎng)絡(luò)的協(xié)議轉(zhuǎn)換以及局域與廣域的互聯(lián),以適應(yīng)不同測控環(huán)境對網(wǎng)關(guān)的兼容性需求。

1 嵌入式網(wǎng)關(guān)系統(tǒng)設(shè)計

網(wǎng)關(guān)是整個測控網(wǎng)絡(luò)中最大的數(shù)據(jù)匯聚點,用于實現(xiàn)不同網(wǎng)絡(luò)之間的無縫融合。網(wǎng)關(guān)通過多種通信方式采集工程現(xiàn)場測控終端傳輸回來的數(shù)據(jù),并對數(shù)據(jù)進(jìn)行必要的解析、重組和存儲后,通過以太網(wǎng)上傳至高端服務(wù)器。本文的嵌入式網(wǎng)關(guān)的結(jié)構(gòu)如圖1所示,其中選用ARM9微處理器S3C2440A和外部存儲器NandFLASH,是為了滿足網(wǎng)關(guān)的數(shù)據(jù)處理能力和存儲容量需求[1]??紤]到測控現(xiàn)場通信條件和環(huán)境條件的多樣性,在網(wǎng)關(guān)與現(xiàn)場測控網(wǎng)絡(luò)節(jié)點和網(wǎng)關(guān)與高端服務(wù)器之間,均設(shè)計了有線和無線兩種通信接口,前者是圖1中的串口通信模塊和無線數(shù)傳模塊,后者是圖1中的以太網(wǎng)模塊和GPRS模塊,這樣用戶可根據(jù)需求靈活選擇通信方式,達(dá)到降低構(gòu)建通信網(wǎng)絡(luò)的復(fù)雜度和施工成本的目的?,F(xiàn)場操作應(yīng)用移動終端通過WiFi與網(wǎng)關(guān)交互,使網(wǎng)關(guān)在測控現(xiàn)場的安裝位置幾乎不受限制,結(jié)合網(wǎng)關(guān)的無線通信接口,對于構(gòu)建無線數(shù)傳網(wǎng)絡(luò)更具靈活性。

2 嵌入式網(wǎng)關(guān)軟件設(shè)計

2.1 嵌入式操作系統(tǒng)移植

Linux是一種性能優(yōu)良、源碼公開的操作系統(tǒng),具備現(xiàn)代Unix系統(tǒng)所具備的全部特征,其中包括真正的多任務(wù)、虛擬內(nèi)存、共享庫、需求裝載、內(nèi)存管理以及支持TCP/IP網(wǎng)絡(luò)等,被廣泛應(yīng)用于現(xiàn)代嵌入式系統(tǒng)[2]。

一般的Linux系統(tǒng)包括內(nèi)核、文件系統(tǒng)、用戶應(yīng)用程序和Bootloader等,其中Bootloader是內(nèi)核加載程序,用于將設(shè)備初始化和建立存儲空間的映射機制[3]。本文使用Uboot作為引導(dǎo)程序,系統(tǒng)啟動后把NandFLASH上的操作系統(tǒng)加載到SDRAM中運行,對Uboot啟動程序進(jìn)行修改并進(jìn)行交叉編譯生成u?boot.bin文件,以適應(yīng)系統(tǒng)的硬件環(huán)境;內(nèi)核移植使用Linux?2.6.30版本進(jìn)行配置和裁剪,驅(qū)動程序采用模塊加載的方式,更利于控制內(nèi)核的大小,再交叉編譯成uImage文件;文件系統(tǒng)采用yaffs2,首先下載busybox,配置后進(jìn)行交叉編譯,安裝到本地一個文件夾,將需要用到的C庫動態(tài)鏈接文件拷貝到該文件夾下的lib文件夾,然后使用mkyaffs2image工具制作成yaffs2格式映像文件。最后,將生成好的Uboot、內(nèi)核、文件系統(tǒng)映像文件按照預(yù)先設(shè)好的分區(qū)地址燒寫到NandFLASH里,即完成了嵌入式操作系統(tǒng)的移植。

2.2 多線程服務(wù)程序

網(wǎng)關(guān)主程序是基于多線程的服務(wù)器程序設(shè)計的。Linux下的線程可以看作是輕量級的進(jìn)程,相比于多進(jìn)程服務(wù)器,多線程的服務(wù)器有很多優(yōu)點[4]。程序初始化后首先創(chuàng)建關(guān)鍵子線程并分別處理不同的任務(wù),最后進(jìn)入定時器程序,通過定時控制不同任務(wù)的標(biāo)識位,以達(dá)到控制子線程運行周期的目的,軟件架構(gòu)如圖2所示。

網(wǎng)關(guān)多線程服務(wù)程序主要由串口服務(wù)線程、網(wǎng)絡(luò)通信服務(wù)線程和數(shù)據(jù)同步服務(wù)線程構(gòu)成,其中串口服務(wù)線程負(fù)責(zé)與測控網(wǎng)絡(luò)節(jié)點的串口通信,包括接收數(shù)據(jù)和下發(fā)命令;網(wǎng)絡(luò)通信線程通過socket編程實現(xiàn)移動終端與嵌入式網(wǎng)關(guān)的網(wǎng)絡(luò)通信,對移動終端發(fā)出的數(shù)據(jù)庫操作命令進(jìn)行解析與數(shù)據(jù)的返回;數(shù)據(jù)同步線程實現(xiàn)了現(xiàn)場數(shù)據(jù)同遠(yuǎn)程高端服務(wù)器的數(shù)據(jù)同步功能,網(wǎng)關(guān)通過實時和定時兩種方式將嵌入式數(shù)據(jù)庫里的最新數(shù)據(jù)和未同步的歷史數(shù)據(jù)上傳到高端服務(wù)器,供因特網(wǎng)用戶瀏覽。

2.3 兼容多種通信方式的方法

由圖1可知,網(wǎng)關(guān)在測控系統(tǒng)中處于承上啟下的地位,是數(shù)據(jù)傳輸?shù)闹袠泄?jié)點,需要具備分別與現(xiàn)場測控終端和高端服務(wù)器的有線和無線通信功能,同時支持基于移動終端的人機交互功能。上述涉及的通信方式均有成熟的技術(shù)支持,下面結(jié)合面向集群應(yīng)用的太陽能熱水工程控制與管理系統(tǒng),重點討論如何實現(xiàn)多種通信方式的控制與管理方法。

2.3.1 網(wǎng)關(guān)與測控網(wǎng)絡(luò)節(jié)點間的通信

在面向集群應(yīng)用的太陽能熱水工程控制和管理系統(tǒng)中,企業(yè)端服務(wù)器通過分布在各個工程現(xiàn)場的網(wǎng)關(guān)對每一個太陽能中央熱水器進(jìn)行測控與管理。其中每個網(wǎng)關(guān)通過現(xiàn)場測控網(wǎng)絡(luò)(含有線和無線)與各個網(wǎng)絡(luò)節(jié)點(這里是太陽能中央熱水器)進(jìn)行通信。

任何設(shè)備間的數(shù)據(jù)通信都必須在物理鏈路上建立邏輯連接,網(wǎng)關(guān)的物理鏈路包括串行口和以太網(wǎng)接口等,相應(yīng)的邏輯連接就是串行通信協(xié)議和TCP/IP協(xié)議等;在邏輯鏈路的基礎(chǔ)上,各種設(shè)備再定義自己的應(yīng)用層協(xié)議。網(wǎng)關(guān)數(shù)據(jù)的協(xié)議轉(zhuǎn)換是基于各個服務(wù)子線程對嵌入式數(shù)據(jù)庫內(nèi)數(shù)據(jù)進(jìn)行協(xié)議幀封裝與解析的操作,各個網(wǎng)絡(luò)節(jié)點數(shù)據(jù)封裝成測控網(wǎng)絡(luò)數(shù)據(jù)傳輸通信協(xié)議數(shù)據(jù)幀格式后通過現(xiàn)場測控網(wǎng)絡(luò)傳輸至網(wǎng)關(guān),網(wǎng)關(guān)對數(shù)據(jù)進(jìn)行解析處理后將傳感網(wǎng)絡(luò)數(shù)據(jù)(如溫度、水位等)存入數(shù)據(jù)庫SQLite中,實現(xiàn)網(wǎng)關(guān)對測控網(wǎng)絡(luò)通信協(xié)議的兼容,測控網(wǎng)絡(luò)數(shù)據(jù)傳輸通信協(xié)議數(shù)據(jù)幀格式如表1所示[5]。當(dāng)用戶進(jìn)行實時查詢或網(wǎng)關(guān)定時上傳數(shù)據(jù)操作時,數(shù)據(jù)同步服務(wù)線程從嵌入式數(shù)據(jù)庫中取出數(shù)據(jù),對數(shù)據(jù)進(jìn)行重新封裝,為數(shù)據(jù)添加TCP頭和IP頭,構(gòu)造TCP/IP協(xié)議幀格式,再通過以太網(wǎng)傳輸至高端服務(wù)器,從而實現(xiàn)網(wǎng)關(guān)對以太網(wǎng)數(shù)據(jù)傳輸協(xié)議的兼容,接收以太網(wǎng)數(shù)據(jù)和上傳數(shù)據(jù)過程中TCP/IP協(xié)議幀解析與封裝流程圖如圖3所示。

2.3.2 網(wǎng)關(guān)與高端服務(wù)器間的通信

高端服務(wù)器通過Internet(含有線和無線)與每個網(wǎng)關(guān)通信,實現(xiàn)控制指令的下傳和現(xiàn)場終端數(shù)據(jù)的匯聚。其中網(wǎng)關(guān)與高端服務(wù)器間的通信可視為兩者之間的數(shù)據(jù)同步過程,即實現(xiàn)各個網(wǎng)關(guān)內(nèi)的測控數(shù)據(jù)分別與高端服務(wù)器的相應(yīng)數(shù)據(jù)一致。在現(xiàn)有的數(shù)據(jù)同步技術(shù)中,DCOM,CORBA或數(shù)據(jù)庫自帶的同步程序,都要求兩端為同構(gòu)數(shù)據(jù)庫,而且都受到防火墻的限制,無法使用特定端口進(jìn)行通信;即使采用Socket通信技術(shù)也同樣受防火墻限制[6]。本文采用基于XML和HTTP的Web Service數(shù)據(jù)同步技術(shù),它融合了DCOM,CORBA 和Web等技術(shù)的優(yōu)點,既具有較強的數(shù)據(jù)處理能力,同時又是一種與語言、平臺和對象無關(guān)的模型,而且大多數(shù)企業(yè)都會開放用于HTTP的80端口,因此不受防火墻的限制[7]。由高端服務(wù)器提供數(shù)據(jù)同步Web 服務(wù),網(wǎng)關(guān)通過gSOAP軟件調(diào)用Web服務(wù)[8],實現(xiàn)網(wǎng)關(guān)和高端服務(wù)器數(shù)據(jù)庫的數(shù)據(jù)同步。

2.3.3 網(wǎng)關(guān)與移動終端間的通信

網(wǎng)關(guān)使用移動終端進(jìn)行現(xiàn)場數(shù)據(jù)的配置和查詢,為了便于用戶操作,網(wǎng)關(guān)通過WiFi連接的方式與移動終端通信,使用socket編程實現(xiàn)網(wǎng)關(guān)與移動終端間的通信功能。網(wǎng)關(guān)與移動終端間的通信數(shù)據(jù)采用JSON格式對數(shù)據(jù)進(jìn)行組包再送入信道。JSON作為一種輕量級的數(shù)據(jù)傳輸格式,易于閱讀和編碼,且它是JavaScript規(guī)范的子集,能被支持JavaScript瀏覽器的移動終端所解析,這些特性使JSON成為理想的數(shù)據(jù)交換語言,使網(wǎng)絡(luò)傳輸更有效率[9]。

3 系統(tǒng)測試

3.1 測試環(huán)境

為了測試網(wǎng)關(guān)的功能和在不同環(huán)境下的性能,分別把網(wǎng)關(guān)安裝在實驗室和工程現(xiàn)場兩種環(huán)境進(jìn)行測試。實驗室環(huán)境良好,便于布線,網(wǎng)關(guān)可以安裝在任意房間,通過有線方式進(jìn)行通信。工程現(xiàn)場環(huán)境較差,不便于布線,網(wǎng)關(guān)采用無線方式進(jìn)行通信。

3.2 測試方法

實驗室環(huán)境有線方式:使用RS 485總線進(jìn)行數(shù)據(jù)采集與存儲,使用網(wǎng)線直連以太網(wǎng)接口接入Internet進(jìn)行數(shù)據(jù)上傳與同步;工程現(xiàn)場環(huán)境無線方式:使用無線數(shù)傳模塊與測控網(wǎng)絡(luò)節(jié)點通信,使用GPRS接入Internet與高端服務(wù)器通信。分別測試網(wǎng)關(guān)與測控網(wǎng)絡(luò)節(jié)點距離約為50 m時通過高端服務(wù)器向網(wǎng)關(guān)每發(fā)送2 000個數(shù)據(jù)包的丟包數(shù)和平均延時。

3.3 測試數(shù)據(jù)

3.3.1 功能測試數(shù)據(jù)

將嵌入式網(wǎng)關(guān)接入工程現(xiàn)場進(jìn)行測試,網(wǎng)關(guān)存儲用戶的配置數(shù)據(jù)和底層采集系統(tǒng)上傳過來的監(jiān)測數(shù)據(jù),定時上傳至企業(yè)端服務(wù)器。通過高端服務(wù)器數(shù)據(jù)庫可以查看當(dāng)前所有正常運行系統(tǒng)同步上來的數(shù)據(jù),如圖4所示,同時通過串口工具登陸網(wǎng)關(guān)系統(tǒng)也可以查詢當(dāng)前數(shù)據(jù),如圖5所示。高端服務(wù)器數(shù)據(jù)庫和網(wǎng)關(guān)內(nèi)數(shù)據(jù)庫數(shù)據(jù)相同,為同一時間數(shù)據(jù),網(wǎng)關(guān)實現(xiàn)了同步數(shù)據(jù)的功能。

3.3.2 性能測試數(shù)據(jù)

為驗證嵌入式網(wǎng)關(guān)在測控系統(tǒng)里的實時性能,對網(wǎng)關(guān)在不同環(huán)境下兩種通信方式的兩個指標(biāo)進(jìn)行比較:實驗室環(huán)境有線方式和工程現(xiàn)場環(huán)境無線方式的丟包數(shù)和平均延時[10]。測試結(jié)果如圖6,圖7所示。

3.4 測試結(jié)果分析

圖6中,橫坐標(biāo)值依次代表10次實驗,每次實驗接收數(shù)據(jù)2 000條??v坐標(biāo)代表丟包數(shù),單位是個??煽闯雒? 000個數(shù)據(jù)包無線方式平均丟包率為0.7‰,有線方式丟包率為0;圖7中無線方式平均延時在9 ms上下浮動,有線方式平均延時在6.5 ms上下;兩種方式的丟包率和平均延時都符合應(yīng)用要求。由比較也可看出有線方式比無線方式的實時性能有明顯優(yōu)勢,但無線方式安裝方便,便于施工。兩種方式各有自己的優(yōu)勢,在實際工程應(yīng)用中可根據(jù)需要進(jìn)行選擇。

4 結(jié) 語

本文介紹了一種嵌入式網(wǎng)絡(luò)網(wǎng)關(guān)軟件部分的設(shè)計與實現(xiàn)方法,使用多種通信方式實現(xiàn)工程現(xiàn)場數(shù)據(jù)采集和同步上傳的功能,解決了實際工程中不同通信網(wǎng)絡(luò)間的融合問題。經(jīng)現(xiàn)場測試,該嵌入式網(wǎng)關(guān)響應(yīng)速度快,運行良好,經(jīng)過適當(dāng)?shù)男薷暮屯晟?,可用于智能家居、工業(yè)控制等領(lǐng)域,具有很好的應(yīng)用推廣價值。

參考文獻(xiàn)

[1] 萬書芹,魏斌,陳子逢,等.一種無線傳感網(wǎng)網(wǎng)關(guān)的設(shè)計[J].電子與封裝,2012,12(4):38?41.

[2] 楊宗德,呂光宏,劉雍.Linux高級程序設(shè)計[M].3版.北京:人民郵電出版社,2012.

[3] 杜廷龍,李國朋,謝青松.基于嵌入式Linux的無線網(wǎng)關(guān)設(shè)計[J].電腦知識與技術(shù),2011,31(7):7613?7614.

[4] 劉仕筠,盛志偉,黃健.Linux環(huán)境并發(fā)服務(wù)器設(shè)計技術(shù)研究[J].成都信息工程學(xué)院學(xué)報,2006,21(5):630?634.

[5] 林霞.集群型太陽能熱水工程集控與管理系統(tǒng)的設(shè)計[D].福州:福建師范大學(xué),2011.

[6] 徐國華,馮哲.基于Web Service 的異構(gòu)數(shù)據(jù)庫簡易同步系統(tǒng)設(shè)計[J].商場現(xiàn)代化,2006(27):129?130.

[7] 丁國峰.基于80端口的內(nèi)外網(wǎng)數(shù)據(jù)通信[J].計算機應(yīng)用與軟件,2009,26(5):192?194.

[8] 李永,俞輝.基于Embedded Linux的gSOAP的移植和裁剪[J]. 微型電腦應(yīng)用,2011,27(1):40?43.

[9] 高靜,段會川.JSON數(shù)據(jù)傳輸效率研究[J].計算機工程與設(shè)計,2011,32(7):2267?2270.

[10] 孫紅兵,陳沫,蔡一兵,等.IPv4/IPv6轉(zhuǎn)換網(wǎng)關(guān)性能測試方法研究[J].計算機工程,2006,32(24):93?95.

網(wǎng)關(guān)多線程服務(wù)程序主要由串口服務(wù)線程、網(wǎng)絡(luò)通信服務(wù)線程和數(shù)據(jù)同步服務(wù)線程構(gòu)成,其中串口服務(wù)線程負(fù)責(zé)與測控網(wǎng)絡(luò)節(jié)點的串口通信,包括接收數(shù)據(jù)和下發(fā)命令;網(wǎng)絡(luò)通信線程通過socket編程實現(xiàn)移動終端與嵌入式網(wǎng)關(guān)的網(wǎng)絡(luò)通信,對移動終端發(fā)出的數(shù)據(jù)庫操作命令進(jìn)行解析與數(shù)據(jù)的返回;數(shù)據(jù)同步線程實現(xiàn)了現(xiàn)場數(shù)據(jù)同遠(yuǎn)程高端服務(wù)器的數(shù)據(jù)同步功能,網(wǎng)關(guān)通過實時和定時兩種方式將嵌入式數(shù)據(jù)庫里的最新數(shù)據(jù)和未同步的歷史數(shù)據(jù)上傳到高端服務(wù)器,供因特網(wǎng)用戶瀏覽。

2.3 兼容多種通信方式的方法

由圖1可知,網(wǎng)關(guān)在測控系統(tǒng)中處于承上啟下的地位,是數(shù)據(jù)傳輸?shù)闹袠泄?jié)點,需要具備分別與現(xiàn)場測控終端和高端服務(wù)器的有線和無線通信功能,同時支持基于移動終端的人機交互功能。上述涉及的通信方式均有成熟的技術(shù)支持,下面結(jié)合面向集群應(yīng)用的太陽能熱水工程控制與管理系統(tǒng),重點討論如何實現(xiàn)多種通信方式的控制與管理方法。

2.3.1 網(wǎng)關(guān)與測控網(wǎng)絡(luò)節(jié)點間的通信

在面向集群應(yīng)用的太陽能熱水工程控制和管理系統(tǒng)中,企業(yè)端服務(wù)器通過分布在各個工程現(xiàn)場的網(wǎng)關(guān)對每一個太陽能中央熱水器進(jìn)行測控與管理。其中每個網(wǎng)關(guān)通過現(xiàn)場測控網(wǎng)絡(luò)(含有線和無線)與各個網(wǎng)絡(luò)節(jié)點(這里是太陽能中央熱水器)進(jìn)行通信。

任何設(shè)備間的數(shù)據(jù)通信都必須在物理鏈路上建立邏輯連接,網(wǎng)關(guān)的物理鏈路包括串行口和以太網(wǎng)接口等,相應(yīng)的邏輯連接就是串行通信協(xié)議和TCP/IP協(xié)議等;在邏輯鏈路的基礎(chǔ)上,各種設(shè)備再定義自己的應(yīng)用層協(xié)議。網(wǎng)關(guān)數(shù)據(jù)的協(xié)議轉(zhuǎn)換是基于各個服務(wù)子線程對嵌入式數(shù)據(jù)庫內(nèi)數(shù)據(jù)進(jìn)行協(xié)議幀封裝與解析的操作,各個網(wǎng)絡(luò)節(jié)點數(shù)據(jù)封裝成測控網(wǎng)絡(luò)數(shù)據(jù)傳輸通信協(xié)議數(shù)據(jù)幀格式后通過現(xiàn)場測控網(wǎng)絡(luò)傳輸至網(wǎng)關(guān),網(wǎng)關(guān)對數(shù)據(jù)進(jìn)行解析處理后將傳感網(wǎng)絡(luò)數(shù)據(jù)(如溫度、水位等)存入數(shù)據(jù)庫SQLite中,實現(xiàn)網(wǎng)關(guān)對測控網(wǎng)絡(luò)通信協(xié)議的兼容,測控網(wǎng)絡(luò)數(shù)據(jù)傳輸通信協(xié)議數(shù)據(jù)幀格式如表1所示[5]。當(dāng)用戶進(jìn)行實時查詢或網(wǎng)關(guān)定時上傳數(shù)據(jù)操作時,數(shù)據(jù)同步服務(wù)線程從嵌入式數(shù)據(jù)庫中取出數(shù)據(jù),對數(shù)據(jù)進(jìn)行重新封裝,為數(shù)據(jù)添加TCP頭和IP頭,構(gòu)造TCP/IP協(xié)議幀格式,再通過以太網(wǎng)傳輸至高端服務(wù)器,從而實現(xiàn)網(wǎng)關(guān)對以太網(wǎng)數(shù)據(jù)傳輸協(xié)議的兼容,接收以太網(wǎng)數(shù)據(jù)和上傳數(shù)據(jù)過程中TCP/IP協(xié)議幀解析與封裝流程圖如圖3所示。

2.3.2 網(wǎng)關(guān)與高端服務(wù)器間的通信

高端服務(wù)器通過Internet(含有線和無線)與每個網(wǎng)關(guān)通信,實現(xiàn)控制指令的下傳和現(xiàn)場終端數(shù)據(jù)的匯聚。其中網(wǎng)關(guān)與高端服務(wù)器間的通信可視為兩者之間的數(shù)據(jù)同步過程,即實現(xiàn)各個網(wǎng)關(guān)內(nèi)的測控數(shù)據(jù)分別與高端服務(wù)器的相應(yīng)數(shù)據(jù)一致。在現(xiàn)有的數(shù)據(jù)同步技術(shù)中,DCOM,CORBA或數(shù)據(jù)庫自帶的同步程序,都要求兩端為同構(gòu)數(shù)據(jù)庫,而且都受到防火墻的限制,無法使用特定端口進(jìn)行通信;即使采用Socket通信技術(shù)也同樣受防火墻限制[6]。本文采用基于XML和HTTP的Web Service數(shù)據(jù)同步技術(shù),它融合了DCOM,CORBA 和Web等技術(shù)的優(yōu)點,既具有較強的數(shù)據(jù)處理能力,同時又是一種與語言、平臺和對象無關(guān)的模型,而且大多數(shù)企業(yè)都會開放用于HTTP的80端口,因此不受防火墻的限制[7]。由高端服務(wù)器提供數(shù)據(jù)同步Web 服務(wù),網(wǎng)關(guān)通過gSOAP軟件調(diào)用Web服務(wù)[8],實現(xiàn)網(wǎng)關(guān)和高端服務(wù)器數(shù)據(jù)庫的數(shù)據(jù)同步。

2.3.3 網(wǎng)關(guān)與移動終端間的通信

網(wǎng)關(guān)使用移動終端進(jìn)行現(xiàn)場數(shù)據(jù)的配置和查詢,為了便于用戶操作,網(wǎng)關(guān)通過WiFi連接的方式與移動終端通信,使用socket編程實現(xiàn)網(wǎng)關(guān)與移動終端間的通信功能。網(wǎng)關(guān)與移動終端間的通信數(shù)據(jù)采用JSON格式對數(shù)據(jù)進(jìn)行組包再送入信道。JSON作為一種輕量級的數(shù)據(jù)傳輸格式,易于閱讀和編碼,且它是JavaScript規(guī)范的子集,能被支持JavaScript瀏覽器的移動終端所解析,這些特性使JSON成為理想的數(shù)據(jù)交換語言,使網(wǎng)絡(luò)傳輸更有效率[9]。

3 系統(tǒng)測試

3.1 測試環(huán)境

為了測試網(wǎng)關(guān)的功能和在不同環(huán)境下的性能,分別把網(wǎng)關(guān)安裝在實驗室和工程現(xiàn)場兩種環(huán)境進(jìn)行測試。實驗室環(huán)境良好,便于布線,網(wǎng)關(guān)可以安裝在任意房間,通過有線方式進(jìn)行通信。工程現(xiàn)場環(huán)境較差,不便于布線,網(wǎng)關(guān)采用無線方式進(jìn)行通信。

3.2 測試方法

實驗室環(huán)境有線方式:使用RS 485總線進(jìn)行數(shù)據(jù)采集與存儲,使用網(wǎng)線直連以太網(wǎng)接口接入Internet進(jìn)行數(shù)據(jù)上傳與同步;工程現(xiàn)場環(huán)境無線方式:使用無線數(shù)傳模塊與測控網(wǎng)絡(luò)節(jié)點通信,使用GPRS接入Internet與高端服務(wù)器通信。分別測試網(wǎng)關(guān)與測控網(wǎng)絡(luò)節(jié)點距離約為50 m時通過高端服務(wù)器向網(wǎng)關(guān)每發(fā)送2 000個數(shù)據(jù)包的丟包數(shù)和平均延時。

3.3 測試數(shù)據(jù)

3.3.1 功能測試數(shù)據(jù)

將嵌入式網(wǎng)關(guān)接入工程現(xiàn)場進(jìn)行測試,網(wǎng)關(guān)存儲用戶的配置數(shù)據(jù)和底層采集系統(tǒng)上傳過來的監(jiān)測數(shù)據(jù),定時上傳至企業(yè)端服務(wù)器。通過高端服務(wù)器數(shù)據(jù)庫可以查看當(dāng)前所有正常運行系統(tǒng)同步上來的數(shù)據(jù),如圖4所示,同時通過串口工具登陸網(wǎng)關(guān)系統(tǒng)也可以查詢當(dāng)前數(shù)據(jù),如圖5所示。高端服務(wù)器數(shù)據(jù)庫和網(wǎng)關(guān)內(nèi)數(shù)據(jù)庫數(shù)據(jù)相同,為同一時間數(shù)據(jù),網(wǎng)關(guān)實現(xiàn)了同步數(shù)據(jù)的功能。

3.3.2 性能測試數(shù)據(jù)

為驗證嵌入式網(wǎng)關(guān)在測控系統(tǒng)里的實時性能,對網(wǎng)關(guān)在不同環(huán)境下兩種通信方式的兩個指標(biāo)進(jìn)行比較:實驗室環(huán)境有線方式和工程現(xiàn)場環(huán)境無線方式的丟包數(shù)和平均延時[10]。測試結(jié)果如圖6,圖7所示。

3.4 測試結(jié)果分析

圖6中,橫坐標(biāo)值依次代表10次實驗,每次實驗接收數(shù)據(jù)2 000條。縱坐標(biāo)代表丟包數(shù),單位是個??煽闯雒? 000個數(shù)據(jù)包無線方式平均丟包率為0.7‰,有線方式丟包率為0;圖7中無線方式平均延時在9 ms上下浮動,有線方式平均延時在6.5 ms上下;兩種方式的丟包率和平均延時都符合應(yīng)用要求。由比較也可看出有線方式比無線方式的實時性能有明顯優(yōu)勢,但無線方式安裝方便,便于施工。兩種方式各有自己的優(yōu)勢,在實際工程應(yīng)用中可根據(jù)需要進(jìn)行選擇。

4 結(jié) 語

本文介紹了一種嵌入式網(wǎng)絡(luò)網(wǎng)關(guān)軟件部分的設(shè)計與實現(xiàn)方法,使用多種通信方式實現(xiàn)工程現(xiàn)場數(shù)據(jù)采集和同步上傳的功能,解決了實際工程中不同通信網(wǎng)絡(luò)間的融合問題。經(jīng)現(xiàn)場測試,該嵌入式網(wǎng)關(guān)響應(yīng)速度快,運行良好,經(jīng)過適當(dāng)?shù)男薷暮屯晟?,可用于智能家居、工業(yè)控制等領(lǐng)域,具有很好的應(yīng)用推廣價值。

參考文獻(xiàn)

[1] 萬書芹,魏斌,陳子逢,等.一種無線傳感網(wǎng)網(wǎng)關(guān)的設(shè)計[J].電子與封裝,2012,12(4):38?41.

[2] 楊宗德,呂光宏,劉雍.Linux高級程序設(shè)計[M].3版.北京:人民郵電出版社,2012.

[3] 杜廷龍,李國朋,謝青松.基于嵌入式Linux的無線網(wǎng)關(guān)設(shè)計[J].電腦知識與技術(shù),2011,31(7):7613?7614.

[4] 劉仕筠,盛志偉,黃健.Linux環(huán)境并發(fā)服務(wù)器設(shè)計技術(shù)研究[J].成都信息工程學(xué)院學(xué)報,2006,21(5):630?634.

[5] 林霞.集群型太陽能熱水工程集控與管理系統(tǒng)的設(shè)計[D].福州:福建師范大學(xué),2011.

[6] 徐國華,馮哲.基于Web Service 的異構(gòu)數(shù)據(jù)庫簡易同步系統(tǒng)設(shè)計[J].商場現(xiàn)代化,2006(27):129?130.

[7] 丁國峰.基于80端口的內(nèi)外網(wǎng)數(shù)據(jù)通信[J].計算機應(yīng)用與軟件,2009,26(5):192?194.

[8] 李永,俞輝.基于Embedded Linux的gSOAP的移植和裁剪[J]. 微型電腦應(yīng)用,2011,27(1):40?43.

[9] 高靜,段會川.JSON數(shù)據(jù)傳輸效率研究[J].計算機工程與設(shè)計,2011,32(7):2267?2270.

[10] 孫紅兵,陳沫,蔡一兵,等.IPv4/IPv6轉(zhuǎn)換網(wǎng)關(guān)性能測試方法研究[J].計算機工程,2006,32(24):93?95.

網(wǎng)關(guān)多線程服務(wù)程序主要由串口服務(wù)線程、網(wǎng)絡(luò)通信服務(wù)線程和數(shù)據(jù)同步服務(wù)線程構(gòu)成,其中串口服務(wù)線程負(fù)責(zé)與測控網(wǎng)絡(luò)節(jié)點的串口通信,包括接收數(shù)據(jù)和下發(fā)命令;網(wǎng)絡(luò)通信線程通過socket編程實現(xiàn)移動終端與嵌入式網(wǎng)關(guān)的網(wǎng)絡(luò)通信,對移動終端發(fā)出的數(shù)據(jù)庫操作命令進(jìn)行解析與數(shù)據(jù)的返回;數(shù)據(jù)同步線程實現(xiàn)了現(xiàn)場數(shù)據(jù)同遠(yuǎn)程高端服務(wù)器的數(shù)據(jù)同步功能,網(wǎng)關(guān)通過實時和定時兩種方式將嵌入式數(shù)據(jù)庫里的最新數(shù)據(jù)和未同步的歷史數(shù)據(jù)上傳到高端服務(wù)器,供因特網(wǎng)用戶瀏覽。

2.3 兼容多種通信方式的方法

由圖1可知,網(wǎng)關(guān)在測控系統(tǒng)中處于承上啟下的地位,是數(shù)據(jù)傳輸?shù)闹袠泄?jié)點,需要具備分別與現(xiàn)場測控終端和高端服務(wù)器的有線和無線通信功能,同時支持基于移動終端的人機交互功能。上述涉及的通信方式均有成熟的技術(shù)支持,下面結(jié)合面向集群應(yīng)用的太陽能熱水工程控制與管理系統(tǒng),重點討論如何實現(xiàn)多種通信方式的控制與管理方法。

2.3.1 網(wǎng)關(guān)與測控網(wǎng)絡(luò)節(jié)點間的通信

在面向集群應(yīng)用的太陽能熱水工程控制和管理系統(tǒng)中,企業(yè)端服務(wù)器通過分布在各個工程現(xiàn)場的網(wǎng)關(guān)對每一個太陽能中央熱水器進(jìn)行測控與管理。其中每個網(wǎng)關(guān)通過現(xiàn)場測控網(wǎng)絡(luò)(含有線和無線)與各個網(wǎng)絡(luò)節(jié)點(這里是太陽能中央熱水器)進(jìn)行通信。

任何設(shè)備間的數(shù)據(jù)通信都必須在物理鏈路上建立邏輯連接,網(wǎng)關(guān)的物理鏈路包括串行口和以太網(wǎng)接口等,相應(yīng)的邏輯連接就是串行通信協(xié)議和TCP/IP協(xié)議等;在邏輯鏈路的基礎(chǔ)上,各種設(shè)備再定義自己的應(yīng)用層協(xié)議。網(wǎng)關(guān)數(shù)據(jù)的協(xié)議轉(zhuǎn)換是基于各個服務(wù)子線程對嵌入式數(shù)據(jù)庫內(nèi)數(shù)據(jù)進(jìn)行協(xié)議幀封裝與解析的操作,各個網(wǎng)絡(luò)節(jié)點數(shù)據(jù)封裝成測控網(wǎng)絡(luò)數(shù)據(jù)傳輸通信協(xié)議數(shù)據(jù)幀格式后通過現(xiàn)場測控網(wǎng)絡(luò)傳輸至網(wǎng)關(guān),網(wǎng)關(guān)對數(shù)據(jù)進(jìn)行解析處理后將傳感網(wǎng)絡(luò)數(shù)據(jù)(如溫度、水位等)存入數(shù)據(jù)庫SQLite中,實現(xiàn)網(wǎng)關(guān)對測控網(wǎng)絡(luò)通信協(xié)議的兼容,測控網(wǎng)絡(luò)數(shù)據(jù)傳輸通信協(xié)議數(shù)據(jù)幀格式如表1所示[5]。當(dāng)用戶進(jìn)行實時查詢或網(wǎng)關(guān)定時上傳數(shù)據(jù)操作時,數(shù)據(jù)同步服務(wù)線程從嵌入式數(shù)據(jù)庫中取出數(shù)據(jù),對數(shù)據(jù)進(jìn)行重新封裝,為數(shù)據(jù)添加TCP頭和IP頭,構(gòu)造TCP/IP協(xié)議幀格式,再通過以太網(wǎng)傳輸至高端服務(wù)器,從而實現(xiàn)網(wǎng)關(guān)對以太網(wǎng)數(shù)據(jù)傳輸協(xié)議的兼容,接收以太網(wǎng)數(shù)據(jù)和上傳數(shù)據(jù)過程中TCP/IP協(xié)議幀解析與封裝流程圖如圖3所示。

2.3.2 網(wǎng)關(guān)與高端服務(wù)器間的通信

高端服務(wù)器通過Internet(含有線和無線)與每個網(wǎng)關(guān)通信,實現(xiàn)控制指令的下傳和現(xiàn)場終端數(shù)據(jù)的匯聚。其中網(wǎng)關(guān)與高端服務(wù)器間的通信可視為兩者之間的數(shù)據(jù)同步過程,即實現(xiàn)各個網(wǎng)關(guān)內(nèi)的測控數(shù)據(jù)分別與高端服務(wù)器的相應(yīng)數(shù)據(jù)一致。在現(xiàn)有的數(shù)據(jù)同步技術(shù)中,DCOM,CORBA或數(shù)據(jù)庫自帶的同步程序,都要求兩端為同構(gòu)數(shù)據(jù)庫,而且都受到防火墻的限制,無法使用特定端口進(jìn)行通信;即使采用Socket通信技術(shù)也同樣受防火墻限制[6]。本文采用基于XML和HTTP的Web Service數(shù)據(jù)同步技術(shù),它融合了DCOM,CORBA 和Web等技術(shù)的優(yōu)點,既具有較強的數(shù)據(jù)處理能力,同時又是一種與語言、平臺和對象無關(guān)的模型,而且大多數(shù)企業(yè)都會開放用于HTTP的80端口,因此不受防火墻的限制[7]。由高端服務(wù)器提供數(shù)據(jù)同步Web 服務(wù),網(wǎng)關(guān)通過gSOAP軟件調(diào)用Web服務(wù)[8],實現(xiàn)網(wǎng)關(guān)和高端服務(wù)器數(shù)據(jù)庫的數(shù)據(jù)同步。

2.3.3 網(wǎng)關(guān)與移動終端間的通信

網(wǎng)關(guān)使用移動終端進(jìn)行現(xiàn)場數(shù)據(jù)的配置和查詢,為了便于用戶操作,網(wǎng)關(guān)通過WiFi連接的方式與移動終端通信,使用socket編程實現(xiàn)網(wǎng)關(guān)與移動終端間的通信功能。網(wǎng)關(guān)與移動終端間的通信數(shù)據(jù)采用JSON格式對數(shù)據(jù)進(jìn)行組包再送入信道。JSON作為一種輕量級的數(shù)據(jù)傳輸格式,易于閱讀和編碼,且它是JavaScript規(guī)范的子集,能被支持JavaScript瀏覽器的移動終端所解析,這些特性使JSON成為理想的數(shù)據(jù)交換語言,使網(wǎng)絡(luò)傳輸更有效率[9]。

3 系統(tǒng)測試

3.1 測試環(huán)境

為了測試網(wǎng)關(guān)的功能和在不同環(huán)境下的性能,分別把網(wǎng)關(guān)安裝在實驗室和工程現(xiàn)場兩種環(huán)境進(jìn)行測試。實驗室環(huán)境良好,便于布線,網(wǎng)關(guān)可以安裝在任意房間,通過有線方式進(jìn)行通信。工程現(xiàn)場環(huán)境較差,不便于布線,網(wǎng)關(guān)采用無線方式進(jìn)行通信。

3.2 測試方法

實驗室環(huán)境有線方式:使用RS 485總線進(jìn)行數(shù)據(jù)采集與存儲,使用網(wǎng)線直連以太網(wǎng)接口接入Internet進(jìn)行數(shù)據(jù)上傳與同步;工程現(xiàn)場環(huán)境無線方式:使用無線數(shù)傳模塊與測控網(wǎng)絡(luò)節(jié)點通信,使用GPRS接入Internet與高端服務(wù)器通信。分別測試網(wǎng)關(guān)與測控網(wǎng)絡(luò)節(jié)點距離約為50 m時通過高端服務(wù)器向網(wǎng)關(guān)每發(fā)送2 000個數(shù)據(jù)包的丟包數(shù)和平均延時。

3.3 測試數(shù)據(jù)

3.3.1 功能測試數(shù)據(jù)

將嵌入式網(wǎng)關(guān)接入工程現(xiàn)場進(jìn)行測試,網(wǎng)關(guān)存儲用戶的配置數(shù)據(jù)和底層采集系統(tǒng)上傳過來的監(jiān)測數(shù)據(jù),定時上傳至企業(yè)端服務(wù)器。通過高端服務(wù)器數(shù)據(jù)庫可以查看當(dāng)前所有正常運行系統(tǒng)同步上來的數(shù)據(jù),如圖4所示,同時通過串口工具登陸網(wǎng)關(guān)系統(tǒng)也可以查詢當(dāng)前數(shù)據(jù),如圖5所示。高端服務(wù)器數(shù)據(jù)庫和網(wǎng)關(guān)內(nèi)數(shù)據(jù)庫數(shù)據(jù)相同,為同一時間數(shù)據(jù),網(wǎng)關(guān)實現(xiàn)了同步數(shù)據(jù)的功能。

3.3.2 性能測試數(shù)據(jù)

為驗證嵌入式網(wǎng)關(guān)在測控系統(tǒng)里的實時性能,對網(wǎng)關(guān)在不同環(huán)境下兩種通信方式的兩個指標(biāo)進(jìn)行比較:實驗室環(huán)境有線方式和工程現(xiàn)場環(huán)境無線方式的丟包數(shù)和平均延時[10]。測試結(jié)果如圖6,圖7所示。

3.4 測試結(jié)果分析

圖6中,橫坐標(biāo)值依次代表10次實驗,每次實驗接收數(shù)據(jù)2 000條。縱坐標(biāo)代表丟包數(shù),單位是個??煽闯雒? 000個數(shù)據(jù)包無線方式平均丟包率為0.7‰,有線方式丟包率為0;圖7中無線方式平均延時在9 ms上下浮動,有線方式平均延時在6.5 ms上下;兩種方式的丟包率和平均延時都符合應(yīng)用要求。由比較也可看出有線方式比無線方式的實時性能有明顯優(yōu)勢,但無線方式安裝方便,便于施工。兩種方式各有自己的優(yōu)勢,在實際工程應(yīng)用中可根據(jù)需要進(jìn)行選擇。

4 結(jié) 語

本文介紹了一種嵌入式網(wǎng)絡(luò)網(wǎng)關(guān)軟件部分的設(shè)計與實現(xiàn)方法,使用多種通信方式實現(xiàn)工程現(xiàn)場數(shù)據(jù)采集和同步上傳的功能,解決了實際工程中不同通信網(wǎng)絡(luò)間的融合問題。經(jīng)現(xiàn)場測試,該嵌入式網(wǎng)關(guān)響應(yīng)速度快,運行良好,經(jīng)過適當(dāng)?shù)男薷暮屯晟?,可用于智能家居、工業(yè)控制等領(lǐng)域,具有很好的應(yīng)用推廣價值。

參考文獻(xiàn)

[1] 萬書芹,魏斌,陳子逢,等.一種無線傳感網(wǎng)網(wǎng)關(guān)的設(shè)計[J].電子與封裝,2012,12(4):38?41.

[2] 楊宗德,呂光宏,劉雍.Linux高級程序設(shè)計[M].3版.北京:人民郵電出版社,2012.

[3] 杜廷龍,李國朋,謝青松.基于嵌入式Linux的無線網(wǎng)關(guān)設(shè)計[J].電腦知識與技術(shù),2011,31(7):7613?7614.

[4] 劉仕筠,盛志偉,黃健.Linux環(huán)境并發(fā)服務(wù)器設(shè)計技術(shù)研究[J].成都信息工程學(xué)院學(xué)報,2006,21(5):630?634.

[5] 林霞.集群型太陽能熱水工程集控與管理系統(tǒng)的設(shè)計[D].福州:福建師范大學(xué),2011.

[6] 徐國華,馮哲.基于Web Service 的異構(gòu)數(shù)據(jù)庫簡易同步系統(tǒng)設(shè)計[J].商場現(xiàn)代化,2006(27):129?130.

[7] 丁國峰.基于80端口的內(nèi)外網(wǎng)數(shù)據(jù)通信[J].計算機應(yīng)用與軟件,2009,26(5):192?194.

[8] 李永,俞輝.基于Embedded Linux的gSOAP的移植和裁剪[J]. 微型電腦應(yīng)用,2011,27(1):40?43.

[9] 高靜,段會川.JSON數(shù)據(jù)傳輸效率研究[J].計算機工程與設(shè)計,2011,32(7):2267?2270.

[10] 孫紅兵,陳沫,蔡一兵,等.IPv4/IPv6轉(zhuǎn)換網(wǎng)關(guān)性能測試方法研究[J].計算機工程,2006,32(24):93?95.

猜你喜歡
嵌入式操作系統(tǒng)網(wǎng)關(guān)
基于改進(jìn)RPS技術(shù)的IPSEC VPN網(wǎng)關(guān)設(shè)計
典型實時嵌入式操作系統(tǒng)應(yīng)用分析
電子測試(2018年23期)2018-12-29 11:11:30
基于嵌入式操作系統(tǒng)的工業(yè)采集板設(shè)計
LTE Small Cell網(wǎng)關(guān)及虛擬網(wǎng)關(guān)技術(shù)研究
移動通信(2015年18期)2015-08-24 07:45:08
應(yīng)對氣候變化需要打通“網(wǎng)關(guān)”
太陽能(2015年7期)2015-04-12 06:49:50
應(yīng)用服務(wù)型人才培養(yǎng)體系下的嵌入式操作系統(tǒng)教學(xué)改革探索
一種實時高效的伺服控制網(wǎng)關(guān)設(shè)計
計算機嵌入式操作系統(tǒng)研究
罗城| 广南县| 日土县| 蕲春县| 大同县| 沐川县| 南木林县| 义马市| 利辛县| 阳东县| 凌源市| 若羌县| 新野县| 达尔| 万安县| 城口县| 大同市| 阿鲁科尔沁旗| 白水县| 永宁县| 朔州市| 田东县| 确山县| 怀化市| 绥芬河市| 荣成市| 郑州市| 浮山县| 本溪| 韶山市| 融水| 林州市| 报价| 海南省| 泗阳县| 华坪县| 九江县| 大竹县| 靖边县| 万山特区| 奇台县|