桂健 蔡聲鎮(zhèn) 謝燕輝
摘 要: 為解決異構(gòu)測(cè)控網(wǎng)絡(luò)的以太網(wǎng)接入問(wèn)題,以ARM9處理器S3C2440A和多個(gè)功能模塊組成硬件平臺(tái),在移植嵌入式操作系統(tǒng)Linux和嵌入式數(shù)據(jù)庫(kù)SQLite3的基礎(chǔ)上,設(shè)計(jì)了多線程網(wǎng)關(guān)服務(wù)程序,實(shí)現(xiàn)了兼容無(wú)線數(shù)傳、通用串口、WiFi等通信方式的以太網(wǎng)接入。測(cè)試結(jié)果表明:該網(wǎng)關(guān)具有成本低,兼容性強(qiáng),使用方便等特點(diǎn)。
關(guān)鍵詞: 嵌入式操作系統(tǒng); 網(wǎng)關(guān); ARM9; Linux; SQLite3
中圖分類號(hào): TN911?34; TP27 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 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 引 言
在大型分布式測(cè)控或監(jiān)測(cè)(以下簡(jiǎn)稱測(cè)控)系統(tǒng)中,通常需要根據(jù)工程的實(shí)際需求,由若干個(gè)局部測(cè)控網(wǎng)絡(luò)(以下簡(jiǎn)稱測(cè)控網(wǎng)絡(luò))構(gòu)成,每個(gè)測(cè)控網(wǎng)絡(luò)分布區(qū)域內(nèi)的現(xiàn)場(chǎng)終端經(jīng)網(wǎng)關(guān)通過(guò)Internet與測(cè)控中心服務(wù)器通信,實(shí)現(xiàn)整個(gè)系統(tǒng)的集中監(jiān)測(cè)與控制。其中各個(gè)測(cè)控網(wǎng)絡(luò)采用的通信技術(shù),往往需要根據(jù)實(shí)際工程環(huán)境、具體的測(cè)控對(duì)象和運(yùn)行成本擇優(yōu)確定,有時(shí)甚至需要在一個(gè)測(cè)控網(wǎng)絡(luò)中采用多種通信方式才能滿足用戶需求,因此,兼容多種通信方式的網(wǎng)關(guān)成為大型測(cè)控系統(tǒng)的關(guān)鍵技術(shù)之一。本文結(jié)合面向集群應(yīng)用的可再生能源應(yīng)用工程(如風(fēng)力發(fā)電場(chǎng)、太陽(yáng)能路燈、集群應(yīng)用的太陽(yáng)能中央熱水器等)監(jiān)測(cè)與管理系統(tǒng)的實(shí)際需求,設(shè)計(jì)兼容多種通信方式的嵌入式智能網(wǎng)關(guān),實(shí)現(xiàn)現(xiàn)場(chǎng)測(cè)控終端延伸網(wǎng)絡(luò)與接入網(wǎng)絡(luò)的協(xié)議轉(zhuǎn)換以及局域與廣域的互聯(lián),以適應(yīng)不同測(cè)控環(huán)境對(duì)網(wǎng)關(guān)的兼容性需求。
1 嵌入式網(wǎng)關(guān)系統(tǒng)設(shè)計(jì)
網(wǎng)關(guān)是整個(gè)測(cè)控網(wǎng)絡(luò)中最大的數(shù)據(jù)匯聚點(diǎn),用于實(shí)現(xiàn)不同網(wǎng)絡(luò)之間的無(wú)縫融合。網(wǎng)關(guān)通過(guò)多種通信方式采集工程現(xiàn)場(chǎng)測(cè)控終端傳輸回來(lái)的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行必要的解析、重組和存儲(chǔ)后,通過(guò)以太網(wǎng)上傳至高端服務(wù)器。本文的嵌入式網(wǎng)關(guān)的結(jié)構(gòu)如圖1所示,其中選用ARM9微處理器S3C2440A和外部存儲(chǔ)器NandFLASH,是為了滿足網(wǎng)關(guān)的數(shù)據(jù)處理能力和存儲(chǔ)容量需求[1]??紤]到測(cè)控現(xiàn)場(chǎng)通信條件和環(huán)境條件的多樣性,在網(wǎng)關(guān)與現(xiàn)場(chǎng)測(cè)控網(wǎng)絡(luò)節(jié)點(diǎn)和網(wǎng)關(guān)與高端服務(wù)器之間,均設(shè)計(jì)了有線和無(wú)線兩種通信接口,前者是圖1中的串口通信模塊和無(wú)線數(shù)傳模塊,后者是圖1中的以太網(wǎng)模塊和GPRS模塊,這樣用戶可根據(jù)需求靈活選擇通信方式,達(dá)到降低構(gòu)建通信網(wǎng)絡(luò)的復(fù)雜度和施工成本的目的?,F(xiàn)場(chǎng)操作應(yīng)用移動(dòng)終端通過(guò)WiFi與網(wǎng)關(guān)交互,使網(wǎng)關(guān)在測(cè)控現(xiàn)場(chǎng)的安裝位置幾乎不受限制,結(jié)合網(wǎng)關(guān)的無(wú)線通信接口,對(duì)于構(gòu)建無(wú)線數(shù)傳網(wǎng)絡(luò)更具靈活性。
2 嵌入式網(wǎng)關(guān)軟件設(shè)計(jì)
2.1 嵌入式操作系統(tǒng)移植
Linux是一種性能優(yōu)良、源碼公開(kāi)的操作系統(tǒng),具備現(xiàn)代Unix系統(tǒng)所具備的全部特征,其中包括真正的多任務(wù)、虛擬內(nèi)存、共享庫(kù)、需求裝載、內(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è)備初始化和建立存儲(chǔ)空間的映射機(jī)制[3]。本文使用Uboot作為引導(dǎo)程序,系統(tǒng)啟動(dòng)后把NandFLASH上的操作系統(tǒng)加載到SDRAM中運(yùn)行,對(duì)Uboot啟動(dòng)程序進(jìn)行修改并進(jìn)行交叉編譯生成u?boot.bin文件,以適應(yīng)系統(tǒng)的硬件環(huán)境;內(nèi)核移植使用Linux?2.6.30版本進(jìn)行配置和裁剪,驅(qū)動(dòng)程序采用模塊加載的方式,更利于控制內(nèi)核的大小,再交叉編譯成uImage文件;文件系統(tǒng)采用yaffs2,首先下載busybox,配置后進(jìn)行交叉編譯,安裝到本地一個(gè)文件夾,將需要用到的C庫(kù)動(dòng)態(tài)鏈接文件拷貝到該文件夾下的lib文件夾,然后使用mkyaffs2image工具制作成yaffs2格式映像文件。最后,將生成好的Uboot、內(nèi)核、文件系統(tǒng)映像文件按照預(yù)先設(shè)好的分區(qū)地址燒寫(xiě)到NandFLASH里,即完成了嵌入式操作系統(tǒng)的移植。
2.2 多線程服務(wù)程序
網(wǎng)關(guān)主程序是基于多線程的服務(wù)器程序設(shè)計(jì)的。Linux下的線程可以看作是輕量級(jí)的進(jìn)程,相比于多進(jìn)程服務(wù)器,多線程的服務(wù)器有很多優(yōu)點(diǎn)[4]。程序初始化后首先創(chuàng)建關(guān)鍵子線程并分別處理不同的任務(wù),最后進(jìn)入定時(shí)器程序,通過(guò)定時(shí)控制不同任務(wù)的標(biāo)識(shí)位,以達(dá)到控制子線程運(yùn)行周期的目的,軟件架構(gòu)如圖2所示。
網(wǎng)關(guān)多線程服務(wù)程序主要由串口服務(wù)線程、網(wǎng)絡(luò)通信服務(wù)線程和數(shù)據(jù)同步服務(wù)線程構(gòu)成,其中串口服務(wù)線程負(fù)責(zé)與測(cè)控網(wǎng)絡(luò)節(jié)點(diǎn)的串口通信,包括接收數(shù)據(jù)和下發(fā)命令;網(wǎng)絡(luò)通信線程通過(guò)socket編程實(shí)現(xiàn)移動(dòng)終端與嵌入式網(wǎng)關(guān)的網(wǎng)絡(luò)通信,對(duì)移動(dòng)終端發(fā)出的數(shù)據(jù)庫(kù)操作命令進(jìn)行解析與數(shù)據(jù)的返回;數(shù)據(jù)同步線程實(shí)現(xiàn)了現(xiàn)場(chǎng)數(shù)據(jù)同遠(yuǎn)程高端服務(wù)器的數(shù)據(jù)同步功能,網(wǎng)關(guān)通過(guò)實(shí)時(shí)和定時(shí)兩種方式將嵌入式數(shù)據(jù)庫(kù)里的最新數(shù)據(jù)和未同步的歷史數(shù)據(jù)上傳到高端服務(wù)器,供因特網(wǎng)用戶瀏覽。
2.3 兼容多種通信方式的方法
由圖1可知,網(wǎng)關(guān)在測(cè)控系統(tǒng)中處于承上啟下的地位,是數(shù)據(jù)傳輸?shù)闹袠泄?jié)點(diǎn),需要具備分別與現(xiàn)場(chǎng)測(cè)控終端和高端服務(wù)器的有線和無(wú)線通信功能,同時(shí)支持基于移動(dòng)終端的人機(jī)交互功能。上述涉及的通信方式均有成熟的技術(shù)支持,下面結(jié)合面向集群應(yīng)用的太陽(yáng)能熱水工程控制與管理系統(tǒng),重點(diǎn)討論如何實(shí)現(xiàn)多種通信方式的控制與管理方法。
2.3.1 網(wǎng)關(guān)與測(cè)控網(wǎng)絡(luò)節(jié)點(diǎn)間的通信
在面向集群應(yīng)用的太陽(yáng)能熱水工程控制和管理系統(tǒng)中,企業(yè)端服務(wù)器通過(guò)分布在各個(gè)工程現(xiàn)場(chǎng)的網(wǎng)關(guān)對(duì)每一個(gè)太陽(yáng)能中央熱水器進(jìn)行測(cè)控與管理。其中每個(gè)網(wǎng)關(guān)通過(guò)現(xiàn)場(chǎng)測(cè)控網(wǎng)絡(luò)(含有線和無(wú)線)與各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)(這里是太陽(yáng)能中央熱水器)進(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)換是基于各個(gè)服務(wù)子線程對(duì)嵌入式數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)進(jìn)行協(xié)議幀封裝與解析的操作,各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)封裝成測(cè)控網(wǎng)絡(luò)數(shù)據(jù)傳輸通信協(xié)議數(shù)據(jù)幀格式后通過(guò)現(xiàn)場(chǎng)測(cè)控網(wǎng)絡(luò)傳輸至網(wǎng)關(guān),網(wǎng)關(guān)對(duì)數(shù)據(jù)進(jìn)行解析處理后將傳感網(wǎng)絡(luò)數(shù)據(jù)(如溫度、水位等)存入數(shù)據(jù)庫(kù)SQLite中,實(shí)現(xiàn)網(wǎng)關(guān)對(duì)測(cè)控網(wǎng)絡(luò)通信協(xié)議的兼容,測(cè)控網(wǎng)絡(luò)數(shù)據(jù)傳輸通信協(xié)議數(shù)據(jù)幀格式如表1所示[5]。當(dāng)用戶進(jìn)行實(shí)時(shí)查詢或網(wǎng)關(guān)定時(shí)上傳數(shù)據(jù)操作時(shí),數(shù)據(jù)同步服務(wù)線程從嵌入式數(shù)據(jù)庫(kù)中取出數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行重新封裝,為數(shù)據(jù)添加TCP頭和IP頭,構(gòu)造TCP/IP協(xié)議幀格式,再通過(guò)以太網(wǎng)傳輸至高端服務(wù)器,從而實(shí)現(xiàn)網(wǎng)關(guān)對(duì)以太網(wǎng)數(shù)據(jù)傳輸協(xié)議的兼容,接收以太網(wǎng)數(shù)據(jù)和上傳數(shù)據(jù)過(guò)程中TCP/IP協(xié)議幀解析與封裝流程圖如圖3所示。
2.3.2 網(wǎng)關(guān)與高端服務(wù)器間的通信
高端服務(wù)器通過(guò)Internet(含有線和無(wú)線)與每個(gè)網(wǎng)關(guān)通信,實(shí)現(xiàn)控制指令的下傳和現(xiàn)場(chǎng)終端數(shù)據(jù)的匯聚。其中網(wǎng)關(guān)與高端服務(wù)器間的通信可視為兩者之間的數(shù)據(jù)同步過(guò)程,即實(shí)現(xiàn)各個(gè)網(wǎng)關(guān)內(nèi)的測(cè)控?cái)?shù)據(jù)分別與高端服務(wù)器的相應(yīng)數(shù)據(jù)一致。在現(xiàn)有的數(shù)據(jù)同步技術(shù)中,DCOM,CORBA或數(shù)據(jù)庫(kù)自帶的同步程序,都要求兩端為同構(gòu)數(shù)據(jù)庫(kù),而且都受到防火墻的限制,無(wú)法使用特定端口進(jìn)行通信;即使采用Socket通信技術(shù)也同樣受防火墻限制[6]。本文采用基于XML和HTTP的Web Service數(shù)據(jù)同步技術(shù),它融合了DCOM,CORBA 和Web等技術(shù)的優(yōu)點(diǎn),既具有較強(qiáng)的數(shù)據(jù)處理能力,同時(shí)又是一種與語(yǔ)言、平臺(tái)和對(duì)象無(wú)關(guān)的模型,而且大多數(shù)企業(yè)都會(huì)開(kāi)放用于HTTP的80端口,因此不受防火墻的限制[7]。由高端服務(wù)器提供數(shù)據(jù)同步Web 服務(wù),網(wǎng)關(guān)通過(guò)gSOAP軟件調(diào)用Web服務(wù)[8],實(shí)現(xiàn)網(wǎng)關(guān)和高端服務(wù)器數(shù)據(jù)庫(kù)的數(shù)據(jù)同步。
2.3.3 網(wǎng)關(guān)與移動(dòng)終端間的通信
網(wǎng)關(guān)使用移動(dòng)終端進(jìn)行現(xiàn)場(chǎng)數(shù)據(jù)的配置和查詢,為了便于用戶操作,網(wǎng)關(guān)通過(guò)WiFi連接的方式與移動(dòng)終端通信,使用socket編程實(shí)現(xiàn)網(wǎng)關(guān)與移動(dòng)終端間的通信功能。網(wǎng)關(guān)與移動(dòng)終端間的通信數(shù)據(jù)采用JSON格式對(duì)數(shù)據(jù)進(jìn)行組包再送入信道。JSON作為一種輕量級(jí)的數(shù)據(jù)傳輸格式,易于閱讀和編碼,且它是JavaScript規(guī)范的子集,能被支持JavaScript瀏覽器的移動(dòng)終端所解析,這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言,使網(wǎng)絡(luò)傳輸更有效率[9]。
3 系統(tǒng)測(cè)試
3.1 測(cè)試環(huán)境
為了測(cè)試網(wǎng)關(guān)的功能和在不同環(huán)境下的性能,分別把網(wǎng)關(guān)安裝在實(shí)驗(yàn)室和工程現(xiàn)場(chǎng)兩種環(huán)境進(jìn)行測(cè)試。實(shí)驗(yàn)室環(huán)境良好,便于布線,網(wǎng)關(guān)可以安裝在任意房間,通過(guò)有線方式進(jìn)行通信。工程現(xiàn)場(chǎng)環(huán)境較差,不便于布線,網(wǎng)關(guān)采用無(wú)線方式進(jìn)行通信。
3.2 測(cè)試方法
實(shí)驗(yàn)室環(huán)境有線方式:使用RS 485總線進(jìn)行數(shù)據(jù)采集與存儲(chǔ),使用網(wǎng)線直連以太網(wǎng)接口接入Internet進(jìn)行數(shù)據(jù)上傳與同步;工程現(xiàn)場(chǎng)環(huán)境無(wú)線方式:使用無(wú)線數(shù)傳模塊與測(cè)控網(wǎng)絡(luò)節(jié)點(diǎn)通信,使用GPRS接入Internet與高端服務(wù)器通信。分別測(cè)試網(wǎng)關(guān)與測(cè)控網(wǎng)絡(luò)節(jié)點(diǎn)距離約為50 m時(shí)通過(guò)高端服務(wù)器向網(wǎng)關(guān)每發(fā)送2 000個(gè)數(shù)據(jù)包的丟包數(shù)和平均延時(shí)。
3.3 測(cè)試數(shù)據(jù)
3.3.1 功能測(cè)試數(shù)據(jù)
將嵌入式網(wǎng)關(guān)接入工程現(xiàn)場(chǎng)進(jìn)行測(cè)試,網(wǎng)關(guān)存儲(chǔ)用戶的配置數(shù)據(jù)和底層采集系統(tǒng)上傳過(guò)來(lái)的監(jiān)測(cè)數(shù)據(jù),定時(shí)上傳至企業(yè)端服務(wù)器。通過(guò)高端服務(wù)器數(shù)據(jù)庫(kù)可以查看當(dāng)前所有正常運(yùn)行系統(tǒng)同步上來(lái)的數(shù)據(jù),如圖4所示,同時(shí)通過(guò)串口工具登陸網(wǎng)關(guān)系統(tǒng)也可以查詢當(dāng)前數(shù)據(jù),如圖5所示。高端服務(wù)器數(shù)據(jù)庫(kù)和網(wǎng)關(guān)內(nèi)數(shù)據(jù)庫(kù)數(shù)據(jù)相同,為同一時(shí)間數(shù)據(jù),網(wǎng)關(guān)實(shí)現(xiàn)了同步數(shù)據(jù)的功能。
3.3.2 性能測(cè)試數(shù)據(jù)
為驗(yàn)證嵌入式網(wǎng)關(guān)在測(cè)控系統(tǒng)里的實(shí)時(shí)性能,對(duì)網(wǎng)關(guān)在不同環(huán)境下兩種通信方式的兩個(gè)指標(biāo)進(jìn)行比較:實(shí)驗(yàn)室環(huán)境有線方式和工程現(xiàn)場(chǎng)環(huán)境無(wú)線方式的丟包數(shù)和平均延時(shí)[10]。測(cè)試結(jié)果如圖6,圖7所示。
3.4 測(cè)試結(jié)果分析
圖6中,橫坐標(biāo)值依次代表10次實(shí)驗(yàn),每次實(shí)驗(yàn)接收數(shù)據(jù)2 000條??v坐標(biāo)代表丟包數(shù),單位是個(gè)。可看出每2 000個(gè)數(shù)據(jù)包無(wú)線方式平均丟包率為0.7‰,有線方式丟包率為0;圖7中無(wú)線方式平均延時(shí)在9 ms上下浮動(dòng),有線方式平均延時(shí)在6.5 ms上下;兩種方式的丟包率和平均延時(shí)都符合應(yīng)用要求。由比較也可看出有線方式比無(wú)線方式的實(shí)時(shí)性能有明顯優(yōu)勢(shì),但無(wú)線方式安裝方便,便于施工。兩種方式各有自己的優(yōu)勢(shì),在實(shí)際工程應(yīng)用中可根據(jù)需要進(jìn)行選擇。
4 結(jié) 語(yǔ)
本文介紹了一種嵌入式網(wǎng)絡(luò)網(wǎng)關(guān)軟件部分的設(shè)計(jì)與實(shí)現(xiàn)方法,使用多種通信方式實(shí)現(xiàn)工程現(xiàn)場(chǎng)數(shù)據(jù)采集和同步上傳的功能,解決了實(shí)際工程中不同通信網(wǎng)絡(luò)間的融合問(wèn)題。經(jīng)現(xiàn)場(chǎng)測(cè)試,該嵌入式網(wǎng)關(guān)響應(yīng)速度快,運(yùn)行良好,經(jīng)過(guò)適當(dāng)?shù)男薷暮屯晟?,可用于智能家居、工業(yè)控制等領(lǐng)域,具有很好的應(yīng)用推廣價(jià)值。
參考文獻(xiàn)
[1] 萬(wàn)書(shū)芹,魏斌,陳子逢,等.一種無(wú)線傳感網(wǎng)網(wǎng)關(guān)的設(shè)計(jì)[J].電子與封裝,2012,12(4):38?41.
[2] 楊宗德,呂光宏,劉雍.Linux高級(jí)程序設(shè)計(jì)[M].3版.北京:人民郵電出版社,2012.
[3] 杜廷龍,李國(guó)朋,謝青松.基于嵌入式Linux的無(wú)線網(wǎng)關(guān)設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2011,31(7):7613?7614.
[4] 劉仕筠,盛志偉,黃健.Linux環(huán)境并發(fā)服務(wù)器設(shè)計(jì)技術(shù)研究[J].成都信息工程學(xué)院學(xué)報(bào),2006,21(5):630?634.
[5] 林霞.集群型太陽(yáng)能熱水工程集控與管理系統(tǒng)的設(shè)計(jì)[D].福州:福建師范大學(xué),2011.
[6] 徐國(guó)華,馮哲.基于Web Service 的異構(gòu)數(shù)據(jù)庫(kù)簡(jiǎn)易同步系統(tǒng)設(shè)計(jì)[J].商場(chǎng)現(xiàn)代化,2006(27):129?130.
[7] 丁國(guó)峰.基于80端口的內(nèi)外網(wǎng)數(shù)據(jù)通信[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(5):192?194.
[8] 李永,俞輝.基于Embedded Linux的gSOAP的移植和裁剪[J]. 微型電腦應(yīng)用,2011,27(1):40?43.
[9] 高靜,段會(huì)川.JSON數(shù)據(jù)傳輸效率研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(7):2267?2270.
[10] 孫紅兵,陳沫,蔡一兵,等.IPv4/IPv6轉(zhuǎn)換網(wǎng)關(guān)性能測(cè)試方法研究[J].計(jì)算機(jī)工程,2006,32(24):93?95.
網(wǎng)關(guān)多線程服務(wù)程序主要由串口服務(wù)線程、網(wǎng)絡(luò)通信服務(wù)線程和數(shù)據(jù)同步服務(wù)線程構(gòu)成,其中串口服務(wù)線程負(fù)責(zé)與測(cè)控網(wǎng)絡(luò)節(jié)點(diǎn)的串口通信,包括接收數(shù)據(jù)和下發(fā)命令;網(wǎng)絡(luò)通信線程通過(guò)socket編程實(shí)現(xiàn)移動(dòng)終端與嵌入式網(wǎng)關(guān)的網(wǎng)絡(luò)通信,對(duì)移動(dòng)終端發(fā)出的數(shù)據(jù)庫(kù)操作命令進(jìn)行解析與數(shù)據(jù)的返回;數(shù)據(jù)同步線程實(shí)現(xiàn)了現(xiàn)場(chǎng)數(shù)據(jù)同遠(yuǎn)程高端服務(wù)器的數(shù)據(jù)同步功能,網(wǎng)關(guān)通過(guò)實(shí)時(shí)和定時(shí)兩種方式將嵌入式數(shù)據(jù)庫(kù)里的最新數(shù)據(jù)和未同步的歷史數(shù)據(jù)上傳到高端服務(wù)器,供因特網(wǎng)用戶瀏覽。
2.3 兼容多種通信方式的方法
由圖1可知,網(wǎng)關(guān)在測(cè)控系統(tǒng)中處于承上啟下的地位,是數(shù)據(jù)傳輸?shù)闹袠泄?jié)點(diǎn),需要具備分別與現(xiàn)場(chǎng)測(cè)控終端和高端服務(wù)器的有線和無(wú)線通信功能,同時(shí)支持基于移動(dòng)終端的人機(jī)交互功能。上述涉及的通信方式均有成熟的技術(shù)支持,下面結(jié)合面向集群應(yīng)用的太陽(yáng)能熱水工程控制與管理系統(tǒng),重點(diǎn)討論如何實(shí)現(xiàn)多種通信方式的控制與管理方法。
2.3.1 網(wǎng)關(guān)與測(cè)控網(wǎng)絡(luò)節(jié)點(diǎn)間的通信
在面向集群應(yīng)用的太陽(yáng)能熱水工程控制和管理系統(tǒng)中,企業(yè)端服務(wù)器通過(guò)分布在各個(gè)工程現(xiàn)場(chǎng)的網(wǎng)關(guān)對(duì)每一個(gè)太陽(yáng)能中央熱水器進(jìn)行測(cè)控與管理。其中每個(gè)網(wǎng)關(guān)通過(guò)現(xiàn)場(chǎng)測(cè)控網(wǎng)絡(luò)(含有線和無(wú)線)與各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)(這里是太陽(yáng)能中央熱水器)進(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)換是基于各個(gè)服務(wù)子線程對(duì)嵌入式數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)進(jìn)行協(xié)議幀封裝與解析的操作,各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)封裝成測(cè)控網(wǎng)絡(luò)數(shù)據(jù)傳輸通信協(xié)議數(shù)據(jù)幀格式后通過(guò)現(xiàn)場(chǎng)測(cè)控網(wǎng)絡(luò)傳輸至網(wǎng)關(guān),網(wǎng)關(guān)對(duì)數(shù)據(jù)進(jìn)行解析處理后將傳感網(wǎng)絡(luò)數(shù)據(jù)(如溫度、水位等)存入數(shù)據(jù)庫(kù)SQLite中,實(shí)現(xiàn)網(wǎng)關(guān)對(duì)測(cè)控網(wǎng)絡(luò)通信協(xié)議的兼容,測(cè)控網(wǎng)絡(luò)數(shù)據(jù)傳輸通信協(xié)議數(shù)據(jù)幀格式如表1所示[5]。當(dāng)用戶進(jìn)行實(shí)時(shí)查詢或網(wǎng)關(guān)定時(shí)上傳數(shù)據(jù)操作時(shí),數(shù)據(jù)同步服務(wù)線程從嵌入式數(shù)據(jù)庫(kù)中取出數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行重新封裝,為數(shù)據(jù)添加TCP頭和IP頭,構(gòu)造TCP/IP協(xié)議幀格式,再通過(guò)以太網(wǎng)傳輸至高端服務(wù)器,從而實(shí)現(xiàn)網(wǎng)關(guān)對(duì)以太網(wǎng)數(shù)據(jù)傳輸協(xié)議的兼容,接收以太網(wǎng)數(shù)據(jù)和上傳數(shù)據(jù)過(guò)程中TCP/IP協(xié)議幀解析與封裝流程圖如圖3所示。
2.3.2 網(wǎng)關(guān)與高端服務(wù)器間的通信
高端服務(wù)器通過(guò)Internet(含有線和無(wú)線)與每個(gè)網(wǎng)關(guān)通信,實(shí)現(xiàn)控制指令的下傳和現(xiàn)場(chǎng)終端數(shù)據(jù)的匯聚。其中網(wǎng)關(guān)與高端服務(wù)器間的通信可視為兩者之間的數(shù)據(jù)同步過(guò)程,即實(shí)現(xiàn)各個(gè)網(wǎng)關(guān)內(nèi)的測(cè)控?cái)?shù)據(jù)分別與高端服務(wù)器的相應(yīng)數(shù)據(jù)一致。在現(xiàn)有的數(shù)據(jù)同步技術(shù)中,DCOM,CORBA或數(shù)據(jù)庫(kù)自帶的同步程序,都要求兩端為同構(gòu)數(shù)據(jù)庫(kù),而且都受到防火墻的限制,無(wú)法使用特定端口進(jìn)行通信;即使采用Socket通信技術(shù)也同樣受防火墻限制[6]。本文采用基于XML和HTTP的Web Service數(shù)據(jù)同步技術(shù),它融合了DCOM,CORBA 和Web等技術(shù)的優(yōu)點(diǎn),既具有較強(qiáng)的數(shù)據(jù)處理能力,同時(shí)又是一種與語(yǔ)言、平臺(tái)和對(duì)象無(wú)關(guān)的模型,而且大多數(shù)企業(yè)都會(huì)開(kāi)放用于HTTP的80端口,因此不受防火墻的限制[7]。由高端服務(wù)器提供數(shù)據(jù)同步Web 服務(wù),網(wǎng)關(guān)通過(guò)gSOAP軟件調(diào)用Web服務(wù)[8],實(shí)現(xiàn)網(wǎng)關(guān)和高端服務(wù)器數(shù)據(jù)庫(kù)的數(shù)據(jù)同步。
2.3.3 網(wǎng)關(guān)與移動(dòng)終端間的通信
網(wǎng)關(guān)使用移動(dòng)終端進(jìn)行現(xiàn)場(chǎng)數(shù)據(jù)的配置和查詢,為了便于用戶操作,網(wǎng)關(guān)通過(guò)WiFi連接的方式與移動(dòng)終端通信,使用socket編程實(shí)現(xiàn)網(wǎng)關(guān)與移動(dòng)終端間的通信功能。網(wǎng)關(guān)與移動(dòng)終端間的通信數(shù)據(jù)采用JSON格式對(duì)數(shù)據(jù)進(jìn)行組包再送入信道。JSON作為一種輕量級(jí)的數(shù)據(jù)傳輸格式,易于閱讀和編碼,且它是JavaScript規(guī)范的子集,能被支持JavaScript瀏覽器的移動(dòng)終端所解析,這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言,使網(wǎng)絡(luò)傳輸更有效率[9]。
3 系統(tǒng)測(cè)試
3.1 測(cè)試環(huán)境
為了測(cè)試網(wǎng)關(guān)的功能和在不同環(huán)境下的性能,分別把網(wǎng)關(guān)安裝在實(shí)驗(yàn)室和工程現(xiàn)場(chǎng)兩種環(huán)境進(jìn)行測(cè)試。實(shí)驗(yàn)室環(huán)境良好,便于布線,網(wǎng)關(guān)可以安裝在任意房間,通過(guò)有線方式進(jìn)行通信。工程現(xiàn)場(chǎng)環(huán)境較差,不便于布線,網(wǎng)關(guān)采用無(wú)線方式進(jìn)行通信。
3.2 測(cè)試方法
實(shí)驗(yàn)室環(huán)境有線方式:使用RS 485總線進(jìn)行數(shù)據(jù)采集與存儲(chǔ),使用網(wǎng)線直連以太網(wǎng)接口接入Internet進(jìn)行數(shù)據(jù)上傳與同步;工程現(xiàn)場(chǎng)環(huán)境無(wú)線方式:使用無(wú)線數(shù)傳模塊與測(cè)控網(wǎng)絡(luò)節(jié)點(diǎn)通信,使用GPRS接入Internet與高端服務(wù)器通信。分別測(cè)試網(wǎng)關(guān)與測(cè)控網(wǎng)絡(luò)節(jié)點(diǎn)距離約為50 m時(shí)通過(guò)高端服務(wù)器向網(wǎng)關(guān)每發(fā)送2 000個(gè)數(shù)據(jù)包的丟包數(shù)和平均延時(shí)。
3.3 測(cè)試數(shù)據(jù)
3.3.1 功能測(cè)試數(shù)據(jù)
將嵌入式網(wǎng)關(guān)接入工程現(xiàn)場(chǎng)進(jìn)行測(cè)試,網(wǎng)關(guān)存儲(chǔ)用戶的配置數(shù)據(jù)和底層采集系統(tǒng)上傳過(guò)來(lái)的監(jiān)測(cè)數(shù)據(jù),定時(shí)上傳至企業(yè)端服務(wù)器。通過(guò)高端服務(wù)器數(shù)據(jù)庫(kù)可以查看當(dāng)前所有正常運(yùn)行系統(tǒng)同步上來(lái)的數(shù)據(jù),如圖4所示,同時(shí)通過(guò)串口工具登陸網(wǎng)關(guān)系統(tǒng)也可以查詢當(dāng)前數(shù)據(jù),如圖5所示。高端服務(wù)器數(shù)據(jù)庫(kù)和網(wǎng)關(guān)內(nèi)數(shù)據(jù)庫(kù)數(shù)據(jù)相同,為同一時(shí)間數(shù)據(jù),網(wǎng)關(guān)實(shí)現(xiàn)了同步數(shù)據(jù)的功能。
3.3.2 性能測(cè)試數(shù)據(jù)
為驗(yàn)證嵌入式網(wǎng)關(guān)在測(cè)控系統(tǒng)里的實(shí)時(shí)性能,對(duì)網(wǎng)關(guān)在不同環(huán)境下兩種通信方式的兩個(gè)指標(biāo)進(jìn)行比較:實(shí)驗(yàn)室環(huán)境有線方式和工程現(xiàn)場(chǎng)環(huán)境無(wú)線方式的丟包數(shù)和平均延時(shí)[10]。測(cè)試結(jié)果如圖6,圖7所示。
3.4 測(cè)試結(jié)果分析
圖6中,橫坐標(biāo)值依次代表10次實(shí)驗(yàn),每次實(shí)驗(yàn)接收數(shù)據(jù)2 000條??v坐標(biāo)代表丟包數(shù),單位是個(gè)。可看出每2 000個(gè)數(shù)據(jù)包無(wú)線方式平均丟包率為0.7‰,有線方式丟包率為0;圖7中無(wú)線方式平均延時(shí)在9 ms上下浮動(dòng),有線方式平均延時(shí)在6.5 ms上下;兩種方式的丟包率和平均延時(shí)都符合應(yīng)用要求。由比較也可看出有線方式比無(wú)線方式的實(shí)時(shí)性能有明顯優(yōu)勢(shì),但無(wú)線方式安裝方便,便于施工。兩種方式各有自己的優(yōu)勢(shì),在實(shí)際工程應(yīng)用中可根據(jù)需要進(jìn)行選擇。
4 結(jié) 語(yǔ)
本文介紹了一種嵌入式網(wǎng)絡(luò)網(wǎng)關(guān)軟件部分的設(shè)計(jì)與實(shí)現(xiàn)方法,使用多種通信方式實(shí)現(xiàn)工程現(xiàn)場(chǎng)數(shù)據(jù)采集和同步上傳的功能,解決了實(shí)際工程中不同通信網(wǎng)絡(luò)間的融合問(wèn)題。經(jīng)現(xiàn)場(chǎng)測(cè)試,該嵌入式網(wǎng)關(guān)響應(yīng)速度快,運(yùn)行良好,經(jīng)過(guò)適當(dāng)?shù)男薷暮屯晟疲捎糜谥悄芗揖?、工業(yè)控制等領(lǐng)域,具有很好的應(yīng)用推廣價(jià)值。
參考文獻(xiàn)
[1] 萬(wàn)書(shū)芹,魏斌,陳子逢,等.一種無(wú)線傳感網(wǎng)網(wǎng)關(guān)的設(shè)計(jì)[J].電子與封裝,2012,12(4):38?41.
[2] 楊宗德,呂光宏,劉雍.Linux高級(jí)程序設(shè)計(jì)[M].3版.北京:人民郵電出版社,2012.
[3] 杜廷龍,李國(guó)朋,謝青松.基于嵌入式Linux的無(wú)線網(wǎng)關(guān)設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2011,31(7):7613?7614.
[4] 劉仕筠,盛志偉,黃健.Linux環(huán)境并發(fā)服務(wù)器設(shè)計(jì)技術(shù)研究[J].成都信息工程學(xué)院學(xué)報(bào),2006,21(5):630?634.
[5] 林霞.集群型太陽(yáng)能熱水工程集控與管理系統(tǒng)的設(shè)計(jì)[D].福州:福建師范大學(xué),2011.
[6] 徐國(guó)華,馮哲.基于Web Service 的異構(gòu)數(shù)據(jù)庫(kù)簡(jiǎn)易同步系統(tǒng)設(shè)計(jì)[J].商場(chǎng)現(xiàn)代化,2006(27):129?130.
[7] 丁國(guó)峰.基于80端口的內(nèi)外網(wǎng)數(shù)據(jù)通信[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(5):192?194.
[8] 李永,俞輝.基于Embedded Linux的gSOAP的移植和裁剪[J]. 微型電腦應(yīng)用,2011,27(1):40?43.
[9] 高靜,段會(huì)川.JSON數(shù)據(jù)傳輸效率研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(7):2267?2270.
[10] 孫紅兵,陳沫,蔡一兵,等.IPv4/IPv6轉(zhuǎn)換網(wǎng)關(guān)性能測(cè)試方法研究[J].計(jì)算機(jī)工程,2006,32(24):93?95.
網(wǎng)關(guān)多線程服務(wù)程序主要由串口服務(wù)線程、網(wǎng)絡(luò)通信服務(wù)線程和數(shù)據(jù)同步服務(wù)線程構(gòu)成,其中串口服務(wù)線程負(fù)責(zé)與測(cè)控網(wǎng)絡(luò)節(jié)點(diǎn)的串口通信,包括接收數(shù)據(jù)和下發(fā)命令;網(wǎng)絡(luò)通信線程通過(guò)socket編程實(shí)現(xiàn)移動(dòng)終端與嵌入式網(wǎng)關(guān)的網(wǎng)絡(luò)通信,對(duì)移動(dòng)終端發(fā)出的數(shù)據(jù)庫(kù)操作命令進(jìn)行解析與數(shù)據(jù)的返回;數(shù)據(jù)同步線程實(shí)現(xiàn)了現(xiàn)場(chǎng)數(shù)據(jù)同遠(yuǎn)程高端服務(wù)器的數(shù)據(jù)同步功能,網(wǎng)關(guān)通過(guò)實(shí)時(shí)和定時(shí)兩種方式將嵌入式數(shù)據(jù)庫(kù)里的最新數(shù)據(jù)和未同步的歷史數(shù)據(jù)上傳到高端服務(wù)器,供因特網(wǎng)用戶瀏覽。
2.3 兼容多種通信方式的方法
由圖1可知,網(wǎng)關(guān)在測(cè)控系統(tǒng)中處于承上啟下的地位,是數(shù)據(jù)傳輸?shù)闹袠泄?jié)點(diǎn),需要具備分別與現(xiàn)場(chǎng)測(cè)控終端和高端服務(wù)器的有線和無(wú)線通信功能,同時(shí)支持基于移動(dòng)終端的人機(jī)交互功能。上述涉及的通信方式均有成熟的技術(shù)支持,下面結(jié)合面向集群應(yīng)用的太陽(yáng)能熱水工程控制與管理系統(tǒng),重點(diǎn)討論如何實(shí)現(xiàn)多種通信方式的控制與管理方法。
2.3.1 網(wǎng)關(guān)與測(cè)控網(wǎng)絡(luò)節(jié)點(diǎn)間的通信
在面向集群應(yīng)用的太陽(yáng)能熱水工程控制和管理系統(tǒng)中,企業(yè)端服務(wù)器通過(guò)分布在各個(gè)工程現(xiàn)場(chǎng)的網(wǎng)關(guān)對(duì)每一個(gè)太陽(yáng)能中央熱水器進(jìn)行測(cè)控與管理。其中每個(gè)網(wǎng)關(guān)通過(guò)現(xiàn)場(chǎng)測(cè)控網(wǎng)絡(luò)(含有線和無(wú)線)與各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)(這里是太陽(yáng)能中央熱水器)進(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)換是基于各個(gè)服務(wù)子線程對(duì)嵌入式數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)進(jìn)行協(xié)議幀封裝與解析的操作,各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)封裝成測(cè)控網(wǎng)絡(luò)數(shù)據(jù)傳輸通信協(xié)議數(shù)據(jù)幀格式后通過(guò)現(xiàn)場(chǎng)測(cè)控網(wǎng)絡(luò)傳輸至網(wǎng)關(guān),網(wǎng)關(guān)對(duì)數(shù)據(jù)進(jìn)行解析處理后將傳感網(wǎng)絡(luò)數(shù)據(jù)(如溫度、水位等)存入數(shù)據(jù)庫(kù)SQLite中,實(shí)現(xiàn)網(wǎng)關(guān)對(duì)測(cè)控網(wǎng)絡(luò)通信協(xié)議的兼容,測(cè)控網(wǎng)絡(luò)數(shù)據(jù)傳輸通信協(xié)議數(shù)據(jù)幀格式如表1所示[5]。當(dāng)用戶進(jìn)行實(shí)時(shí)查詢或網(wǎng)關(guān)定時(shí)上傳數(shù)據(jù)操作時(shí),數(shù)據(jù)同步服務(wù)線程從嵌入式數(shù)據(jù)庫(kù)中取出數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行重新封裝,為數(shù)據(jù)添加TCP頭和IP頭,構(gòu)造TCP/IP協(xié)議幀格式,再通過(guò)以太網(wǎng)傳輸至高端服務(wù)器,從而實(shí)現(xiàn)網(wǎng)關(guān)對(duì)以太網(wǎng)數(shù)據(jù)傳輸協(xié)議的兼容,接收以太網(wǎng)數(shù)據(jù)和上傳數(shù)據(jù)過(guò)程中TCP/IP協(xié)議幀解析與封裝流程圖如圖3所示。
2.3.2 網(wǎng)關(guān)與高端服務(wù)器間的通信
高端服務(wù)器通過(guò)Internet(含有線和無(wú)線)與每個(gè)網(wǎng)關(guān)通信,實(shí)現(xiàn)控制指令的下傳和現(xiàn)場(chǎng)終端數(shù)據(jù)的匯聚。其中網(wǎng)關(guān)與高端服務(wù)器間的通信可視為兩者之間的數(shù)據(jù)同步過(guò)程,即實(shí)現(xiàn)各個(gè)網(wǎng)關(guān)內(nèi)的測(cè)控?cái)?shù)據(jù)分別與高端服務(wù)器的相應(yīng)數(shù)據(jù)一致。在現(xiàn)有的數(shù)據(jù)同步技術(shù)中,DCOM,CORBA或數(shù)據(jù)庫(kù)自帶的同步程序,都要求兩端為同構(gòu)數(shù)據(jù)庫(kù),而且都受到防火墻的限制,無(wú)法使用特定端口進(jìn)行通信;即使采用Socket通信技術(shù)也同樣受防火墻限制[6]。本文采用基于XML和HTTP的Web Service數(shù)據(jù)同步技術(shù),它融合了DCOM,CORBA 和Web等技術(shù)的優(yōu)點(diǎn),既具有較強(qiáng)的數(shù)據(jù)處理能力,同時(shí)又是一種與語(yǔ)言、平臺(tái)和對(duì)象無(wú)關(guān)的模型,而且大多數(shù)企業(yè)都會(huì)開(kāi)放用于HTTP的80端口,因此不受防火墻的限制[7]。由高端服務(wù)器提供數(shù)據(jù)同步Web 服務(wù),網(wǎng)關(guān)通過(guò)gSOAP軟件調(diào)用Web服務(wù)[8],實(shí)現(xiàn)網(wǎng)關(guān)和高端服務(wù)器數(shù)據(jù)庫(kù)的數(shù)據(jù)同步。
2.3.3 網(wǎng)關(guān)與移動(dòng)終端間的通信
網(wǎng)關(guān)使用移動(dòng)終端進(jìn)行現(xiàn)場(chǎng)數(shù)據(jù)的配置和查詢,為了便于用戶操作,網(wǎng)關(guān)通過(guò)WiFi連接的方式與移動(dòng)終端通信,使用socket編程實(shí)現(xiàn)網(wǎng)關(guān)與移動(dòng)終端間的通信功能。網(wǎng)關(guān)與移動(dòng)終端間的通信數(shù)據(jù)采用JSON格式對(duì)數(shù)據(jù)進(jìn)行組包再送入信道。JSON作為一種輕量級(jí)的數(shù)據(jù)傳輸格式,易于閱讀和編碼,且它是JavaScript規(guī)范的子集,能被支持JavaScript瀏覽器的移動(dòng)終端所解析,這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言,使網(wǎng)絡(luò)傳輸更有效率[9]。
3 系統(tǒng)測(cè)試
3.1 測(cè)試環(huán)境
為了測(cè)試網(wǎng)關(guān)的功能和在不同環(huán)境下的性能,分別把網(wǎng)關(guān)安裝在實(shí)驗(yàn)室和工程現(xiàn)場(chǎng)兩種環(huán)境進(jìn)行測(cè)試。實(shí)驗(yàn)室環(huán)境良好,便于布線,網(wǎng)關(guān)可以安裝在任意房間,通過(guò)有線方式進(jìn)行通信。工程現(xiàn)場(chǎng)環(huán)境較差,不便于布線,網(wǎng)關(guān)采用無(wú)線方式進(jìn)行通信。
3.2 測(cè)試方法
實(shí)驗(yàn)室環(huán)境有線方式:使用RS 485總線進(jìn)行數(shù)據(jù)采集與存儲(chǔ),使用網(wǎng)線直連以太網(wǎng)接口接入Internet進(jìn)行數(shù)據(jù)上傳與同步;工程現(xiàn)場(chǎng)環(huán)境無(wú)線方式:使用無(wú)線數(shù)傳模塊與測(cè)控網(wǎng)絡(luò)節(jié)點(diǎn)通信,使用GPRS接入Internet與高端服務(wù)器通信。分別測(cè)試網(wǎng)關(guān)與測(cè)控網(wǎng)絡(luò)節(jié)點(diǎn)距離約為50 m時(shí)通過(guò)高端服務(wù)器向網(wǎng)關(guān)每發(fā)送2 000個(gè)數(shù)據(jù)包的丟包數(shù)和平均延時(shí)。
3.3 測(cè)試數(shù)據(jù)
3.3.1 功能測(cè)試數(shù)據(jù)
將嵌入式網(wǎng)關(guān)接入工程現(xiàn)場(chǎng)進(jìn)行測(cè)試,網(wǎng)關(guān)存儲(chǔ)用戶的配置數(shù)據(jù)和底層采集系統(tǒng)上傳過(guò)來(lái)的監(jiān)測(cè)數(shù)據(jù),定時(shí)上傳至企業(yè)端服務(wù)器。通過(guò)高端服務(wù)器數(shù)據(jù)庫(kù)可以查看當(dāng)前所有正常運(yùn)行系統(tǒng)同步上來(lái)的數(shù)據(jù),如圖4所示,同時(shí)通過(guò)串口工具登陸網(wǎng)關(guān)系統(tǒng)也可以查詢當(dāng)前數(shù)據(jù),如圖5所示。高端服務(wù)器數(shù)據(jù)庫(kù)和網(wǎng)關(guān)內(nèi)數(shù)據(jù)庫(kù)數(shù)據(jù)相同,為同一時(shí)間數(shù)據(jù),網(wǎng)關(guān)實(shí)現(xiàn)了同步數(shù)據(jù)的功能。
3.3.2 性能測(cè)試數(shù)據(jù)
為驗(yàn)證嵌入式網(wǎng)關(guān)在測(cè)控系統(tǒng)里的實(shí)時(shí)性能,對(duì)網(wǎng)關(guān)在不同環(huán)境下兩種通信方式的兩個(gè)指標(biāo)進(jìn)行比較:實(shí)驗(yàn)室環(huán)境有線方式和工程現(xiàn)場(chǎng)環(huán)境無(wú)線方式的丟包數(shù)和平均延時(shí)[10]。測(cè)試結(jié)果如圖6,圖7所示。
3.4 測(cè)試結(jié)果分析
圖6中,橫坐標(biāo)值依次代表10次實(shí)驗(yàn),每次實(shí)驗(yàn)接收數(shù)據(jù)2 000條。縱坐標(biāo)代表丟包數(shù),單位是個(gè)??煽闯雒? 000個(gè)數(shù)據(jù)包無(wú)線方式平均丟包率為0.7‰,有線方式丟包率為0;圖7中無(wú)線方式平均延時(shí)在9 ms上下浮動(dòng),有線方式平均延時(shí)在6.5 ms上下;兩種方式的丟包率和平均延時(shí)都符合應(yīng)用要求。由比較也可看出有線方式比無(wú)線方式的實(shí)時(shí)性能有明顯優(yōu)勢(shì),但無(wú)線方式安裝方便,便于施工。兩種方式各有自己的優(yōu)勢(shì),在實(shí)際工程應(yīng)用中可根據(jù)需要進(jìn)行選擇。
4 結(jié) 語(yǔ)
本文介紹了一種嵌入式網(wǎng)絡(luò)網(wǎng)關(guān)軟件部分的設(shè)計(jì)與實(shí)現(xiàn)方法,使用多種通信方式實(shí)現(xiàn)工程現(xiàn)場(chǎng)數(shù)據(jù)采集和同步上傳的功能,解決了實(shí)際工程中不同通信網(wǎng)絡(luò)間的融合問(wèn)題。經(jīng)現(xiàn)場(chǎng)測(cè)試,該嵌入式網(wǎng)關(guān)響應(yīng)速度快,運(yùn)行良好,經(jīng)過(guò)適當(dāng)?shù)男薷暮屯晟疲捎糜谥悄芗揖?、工業(yè)控制等領(lǐng)域,具有很好的應(yīng)用推廣價(jià)值。
參考文獻(xiàn)
[1] 萬(wàn)書(shū)芹,魏斌,陳子逢,等.一種無(wú)線傳感網(wǎng)網(wǎng)關(guān)的設(shè)計(jì)[J].電子與封裝,2012,12(4):38?41.
[2] 楊宗德,呂光宏,劉雍.Linux高級(jí)程序設(shè)計(jì)[M].3版.北京:人民郵電出版社,2012.
[3] 杜廷龍,李國(guó)朋,謝青松.基于嵌入式Linux的無(wú)線網(wǎng)關(guān)設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2011,31(7):7613?7614.
[4] 劉仕筠,盛志偉,黃健.Linux環(huán)境并發(fā)服務(wù)器設(shè)計(jì)技術(shù)研究[J].成都信息工程學(xué)院學(xué)報(bào),2006,21(5):630?634.
[5] 林霞.集群型太陽(yáng)能熱水工程集控與管理系統(tǒng)的設(shè)計(jì)[D].福州:福建師范大學(xué),2011.
[6] 徐國(guó)華,馮哲.基于Web Service 的異構(gòu)數(shù)據(jù)庫(kù)簡(jiǎn)易同步系統(tǒng)設(shè)計(jì)[J].商場(chǎng)現(xiàn)代化,2006(27):129?130.
[7] 丁國(guó)峰.基于80端口的內(nèi)外網(wǎng)數(shù)據(jù)通信[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(5):192?194.
[8] 李永,俞輝.基于Embedded Linux的gSOAP的移植和裁剪[J]. 微型電腦應(yīng)用,2011,27(1):40?43.
[9] 高靜,段會(huì)川.JSON數(shù)據(jù)傳輸效率研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(7):2267?2270.
[10] 孫紅兵,陳沫,蔡一兵,等.IPv4/IPv6轉(zhuǎn)換網(wǎng)關(guān)性能測(cè)試方法研究[J].計(jì)算機(jī)工程,2006,32(24):93?95.