摘要:論述了基于嵌入式技術(shù)的遠(yuǎn)程抄電表系統(tǒng)結(jié)構(gòu)由服務(wù)器、通信控制模塊和電表接口三部分組成。服務(wù)器端的軟件負(fù)責(zé)對(duì)通信控制模塊的管理、數(shù)據(jù)的收發(fā)與處理。系統(tǒng)嵌入通信控制模塊實(shí)現(xiàn)抄表數(shù)據(jù)通過以太網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸。給出了嵌入式通信控制模塊的硬件結(jié)構(gòu)和軟件結(jié)構(gòu)的設(shè)計(jì)過程。
關(guān)鍵詞:嵌入式系統(tǒng);以太網(wǎng);ARM處理器;遠(yuǎn)程抄表系統(tǒng);通信控制模塊;uCLinux
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044-10342-02
Developing Remote Meter Reading System Based on Embedded Technology
GUO Xin-kun, ZHANG Gui-zu, TAN Chao-hong
(School of Information Engineering, Jiangnan University,Wuxi 214122, China)
Abstract: Based on embedded technology ,this paper discusses remote meter reading system structure from the server, communication control module to the meter interface. Server-side software is responsible for the management of the communication control module, receiver and process data. The embedded data communication control module works for meter reading data transmission via Ethernet network. It describes the hardware structure and the software implementation process for the communication control module .
Key words: embedded system; ethernet network; ARM MCU; remote meter reading system; communication control module; uCLinux
遠(yuǎn)程電能抄表系統(tǒng)是一種自動(dòng)抄電表系統(tǒng),它可代替煩瑣的人工抄電表方式,利用某種通信控制方式將用戶的電能表所記錄的各種數(shù)據(jù)傳輸?shù)竭h(yuǎn)程服務(wù)器中,并由服務(wù)器完成數(shù)據(jù)的存儲(chǔ)、統(tǒng)計(jì)分析、打印等管理性的工作。
目前,應(yīng)用的自動(dòng)抄電表系統(tǒng)通常有以下幾種模式:手持式抄表器、IC卡抄表系統(tǒng)、電力載波抄表、電話線抄表、有線總線抄表、GPRS無線抄表等。這幾種模式在一些應(yīng)用場(chǎng)合均有一定的局限性。如電話線抄表雖然能利用原有的電話線路系統(tǒng),但目前沒有很好的輔助設(shè)備來實(shí)現(xiàn)抄表方案。電力載波抄表是一種應(yīng)用比較多的模式,國外也一直致力于其技術(shù)發(fā)展,但在國內(nèi)存在電力線的信號(hào)傳輸性能差等問題,用電力線傳輸?shù)臄?shù)據(jù)很容易受到干擾而出現(xiàn)數(shù)據(jù)錯(cuò)碼的狀況。GPRS無線抄表模式是借助通信運(yùn)營商的無線通信線路來實(shí)現(xiàn)數(shù)據(jù)交換的,它需專門購買無線設(shè)備,且每月都有數(shù)據(jù)流量費(fèi)用,它適用點(diǎn)分布比較廣、比較散的場(chǎng)合。
近年來隨著計(jì)算機(jī)應(yīng)用的普及,網(wǎng)絡(luò)已延伸到千家萬戶,現(xiàn)在的小區(qū)住宅大樓、辦公大樓一般都安裝了網(wǎng)絡(luò)通信設(shè)施。這樣的話我們完全可以利用大樓內(nèi)部的以太網(wǎng)絡(luò)來達(dá)到遠(yuǎn)程采集數(shù)據(jù)的目的?;谇度胧郊夹g(shù)的以太網(wǎng)遠(yuǎn)程抄電表系統(tǒng)不僅可以避免通信線路的重復(fù)建設(shè),還可以克服以上幾種模式的弱點(diǎn),利用現(xiàn)代網(wǎng)絡(luò)通信技術(shù)實(shí)現(xiàn)可靠的、遠(yuǎn)距離的數(shù)據(jù)傳輸。
1 基于嵌入式技術(shù)的遠(yuǎn)程抄電表系統(tǒng)組成結(jié)構(gòu)
基于嵌入式技術(shù)的以太網(wǎng)遠(yuǎn)程抄電表系統(tǒng)由服務(wù)器、通信控制模塊和電表接口三部分組成,如圖1所示。系統(tǒng)采用主從通信控制方式,即所有動(dòng)作都由服務(wù)器發(fā)起,通信控制模塊在接受到指令后作相應(yīng)操作,并將結(jié)果返回給服務(wù)器。
最上層是服務(wù)器層。服務(wù)器層主要由運(yùn)行控制管理軟件的主機(jī)構(gòu)成,其主要功能是對(duì)通信控制模塊的運(yùn)行參數(shù)設(shè)置,負(fù)責(zé)接收電表的數(shù)據(jù)實(shí)現(xiàn)對(duì)計(jì)量?jī)x表的遠(yuǎn)程監(jiān)控和控制,并可運(yùn)行數(shù)據(jù)庫生成電量日?qǐng)?bào)、月報(bào)及電費(fèi)的結(jié)算,供用戶查詢等功能。另外服務(wù)器可與互聯(lián)網(wǎng)連接,通過互聯(lián)網(wǎng)將數(shù)據(jù)傳輸給遠(yuǎn)方的其它主機(jī)。
中間層是通信控制層,由基于ARM平臺(tái)的通信控制模塊組成,模塊借助以太網(wǎng)與服務(wù)器相連,并通過RS-485總線與下層的電表接口相連。每個(gè)通信控制模塊都設(shè)定唯一的ID號(hào),其主要功能是通過電表接口對(duì)多個(gè)電表進(jìn)行參數(shù)設(shè)置和數(shù)據(jù)采集,并把采集到的數(shù)據(jù)通過以太網(wǎng)傳輸?shù)椒?wù)器。
最下層是電表接口層。為連接種類繁多的多功能電能表,電表接口嵌入多功能電能表通信規(guī)約,以統(tǒng)一與通信控制模塊進(jìn)行數(shù)據(jù)交換的格式。另外在電表接口層加入多路端口功能實(shí)現(xiàn)對(duì)多個(gè)電表的數(shù)據(jù)采集。
2 通信控制模塊的硬件結(jié)構(gòu)
通信控制模塊的硬件結(jié)構(gòu)如圖2所示,它由ARM處理器、以太網(wǎng)通信芯片、串口通信接口和儲(chǔ)存芯片組成,其中ARM芯片是通信控制模塊的核心,它使用串口獲取抄電表數(shù)據(jù)并進(jìn)行存儲(chǔ)與處理,并通過以太網(wǎng)芯片與服務(wù)器建立連接并獲取操作指令或進(jìn)行數(shù)據(jù)交換。
3.1 SamSung S3C44B0X ARM處理器
通信控制模塊核心芯片采用三星的S3C44B0X ARM處理器,它采用2.5V的ARM7TDMI內(nèi)核,內(nèi)部帶有8KB cache,可擴(kuò)展外部?jī)?chǔ)存控制器、LCD控制器、IIS總線控制器、8路10bit ADC等,其集成了豐富的外圍功能便于低成本設(shè)計(jì)嵌入式應(yīng)用系統(tǒng)。微處理器采用uCLinux操作系統(tǒng),uCLinux操作系統(tǒng)保持了Linux系統(tǒng)的主要優(yōu)點(diǎn),如穩(wěn)定性、強(qiáng)大的網(wǎng)絡(luò)功能和出色的文件系統(tǒng)支持等。uCLinux操作系統(tǒng)有一個(gè)完整的TCP/IP協(xié)議棧,同時(shí)對(duì)其他許多網(wǎng)絡(luò)協(xié)議都提供支持,這是系統(tǒng)實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)傳輸?shù)幕A(chǔ)。
3.2 以太網(wǎng)通信芯片
以太網(wǎng)通信芯片采用RTL8019AS芯片,它是一種速率為10M比特/秒以太網(wǎng)控制器,支持8比特或16比特?cái)?shù)據(jù)總線,內(nèi)置有16K字節(jié)的SRAM用于收發(fā)緩沖數(shù)據(jù),采用全雙工通信方式收發(fā)數(shù)據(jù)可達(dá)到l0M比特/秒。網(wǎng)絡(luò)控制芯片集成了以太網(wǎng)媒介訪問層和物理層的所有功能,實(shí)現(xiàn)與服務(wù)器的數(shù)據(jù)接收與發(fā)送。SamSung S3C44B0X ARM處理器與以太網(wǎng)通信芯片RTL8019AS的連接結(jié)構(gòu)如圖3所示。
3.3 串口通信接口
串口通信接口主要通過Max485芯片擴(kuò)展為RS-485總線連接電能表接口。RS-485總線是常用的局部聯(lián)網(wǎng)通信方式,RS-485以其數(shù)據(jù)傳輸穩(wěn)定、可靠性高、傳輸距離遠(yuǎn)、速度快、抗干擾能力強(qiáng)等優(yōu)點(diǎn)在工業(yè)領(lǐng)域中得到廣范應(yīng)用。
3.4 存儲(chǔ)芯片
模塊可根據(jù)實(shí)際應(yīng)用情況擴(kuò)展存儲(chǔ)芯片,一般由RAM和FLASH構(gòu)成。由于存儲(chǔ)在FLASH中的數(shù)據(jù)在掉電以后不會(huì)丟失,我們把程序代碼和系統(tǒng)常量以及一些重要數(shù)據(jù)(例如電子儀表輸出的信息數(shù)據(jù)、控制器的地址信息等)保存在FLASH中,其余的數(shù)據(jù)和臨時(shí)變量等保存到RAM中。
4 通信控制模塊的軟件實(shí)現(xiàn)
4.1 通信控制模塊的工作流程
通信控制模塊工作流程如圖4所示。通信控制模塊啟動(dòng)后首先完成程序初始化工作,從儲(chǔ)存芯片中讀取預(yù)先設(shè)定的配置文件如以太網(wǎng)配置信息,通信控制模塊的IP地址、網(wǎng)關(guān)、子網(wǎng)掩碼和網(wǎng)絡(luò)通信端口,配置串口工作方式如波特率、字符格式和長(zhǎng)度等。同時(shí)通信控制模塊檢查下端的計(jì)量表的運(yùn)行情況,核對(duì)計(jì)量表類型、計(jì)量表的地址、計(jì)量表是否斷開連接等。
程序初始化完成后,通信控制模塊進(jìn)入工作狀態(tài),它將等待上層服務(wù)器的連接請(qǐng)求。上層服務(wù)器與通信模塊雙方采用TCP/IP傳輸協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸,其中,通信控制模塊作為通信的服務(wù)端等待數(shù)據(jù)請(qǐng)求,而另一端服務(wù)器是作為通信的客戶端向通信控制模塊發(fā)送請(qǐng)求。軟件實(shí)現(xiàn)中,通信控制模塊創(chuàng)建套接字,并綁定設(shè)定的IP地址和協(xié)議端口,調(diào)用監(jiān)聽程序等待對(duì)方的連接并設(shè)置連接等待隊(duì)列的長(zhǎng)度,之后進(jìn)入等待連接請(qǐng)求狀態(tài)。一旦客戶端有連接請(qǐng)求,通信控制模塊將調(diào)用響應(yīng)程序以獲取連接請(qǐng)求。當(dāng)建立連接以后,模塊調(diào)用接收數(shù)據(jù)程序讀取服務(wù)器發(fā)送的指令,調(diào)用發(fā)送數(shù)據(jù)程序向服務(wù)器發(fā)送表計(jì)數(shù)據(jù)。最后“斷開連接”程序終止本次通信,并刪除套接字,并等待下次連接請(qǐng)求。
通常完成一次通信交互的時(shí)間很短,在通信間隔內(nèi),通信控制模塊通過RS-485接口采集電能表數(shù)據(jù),如一些瞬時(shí)值和累計(jì)值。采集數(shù)據(jù)的模式有實(shí)時(shí)模式和固定時(shí)間間隔模式。在實(shí)時(shí)狀態(tài)下,通信控制模塊采集到的數(shù)據(jù)可以直接在交互過程中將數(shù)據(jù)上傳到服務(wù)器端,在沒有和服務(wù)器端建立連接的情況下,通信控制模塊在固定的時(shí)間間隔內(nèi)將數(shù)據(jù)按固定格式存儲(chǔ)在存儲(chǔ)芯片中以便下次在通信中上傳。
4.2 通信控制模塊的數(shù)據(jù)通信格式
通信控制模塊在與RS485模塊的通信中,服務(wù)器以設(shè)定的時(shí)間間隔輪流訪問各模塊,也可以與模塊建立實(shí)時(shí)連接,服務(wù)器根據(jù)唯一的ID號(hào)來區(qū)分各個(gè)模塊,通信的建立與解除均由服務(wù)器發(fā)出的信息幀來控制,一般服務(wù)器發(fā)出命令幀,如讀數(shù)據(jù)命令或?qū)憯?shù)據(jù)命令,模塊根據(jù)命令幀中的地址信息來判別是否該由自己來接收與處理,并以應(yīng)答幀回應(yīng)服務(wù)器。信息幀由幀起始符、模塊地址域、命令幀、數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)域、校驗(yàn)碼及幀結(jié)束符7個(gè)部分組成,每部分由若干字節(jié)組成。信息幀格式如下:幀起始符:標(biāo)識(shí)一幀數(shù)據(jù)的開始;地址域:地址域由2字節(jié)構(gòu)成,地址長(zhǎng)度取15 位,最高位為零,可設(shè)定一固定地址為廣播地址;命令幀:該字段由一個(gè)字節(jié)組成,最高位設(shè)為命令/應(yīng)答幀,如置0時(shí)表由主站發(fā)出的命令幀,置1時(shí)表由從站發(fā)出的應(yīng)答幀,其余各位可根據(jù)需要組合成功能位,如讀數(shù)據(jù)、寫數(shù)據(jù)、設(shè)置時(shí)間等;數(shù)據(jù)長(zhǎng)度:一般由一個(gè)字節(jié)或兩個(gè)字節(jié)構(gòu)成,表示數(shù)據(jù)域的字節(jié)數(shù),主從站根據(jù)該字節(jié)長(zhǎng)度來確定接受數(shù)據(jù)的長(zhǎng)度,若為0表示無數(shù)據(jù);數(shù)據(jù)域:存放主從站交換的數(shù)據(jù);校驗(yàn)碼:加入校驗(yàn)碼字段可確保數(shù)據(jù)傳輸?shù)恼_性,一般采用CRC循環(huán)校驗(yàn)碼;結(jié)束符:標(biāo)識(shí)一幀信息的結(jié)束。
5 結(jié)束語
基于嵌入開發(fā)技術(shù)的以太網(wǎng)遠(yuǎn)程抄電表系統(tǒng)以自身的優(yōu)勢(shì),不僅克服了人工抄表方式需花費(fèi)大量人力、效率低且錯(cuò)誤率高的弊病,并且徹底解決了其他抄表抄表存在的問題。我們利用以太網(wǎng)傳輸抄表數(shù)據(jù),真正實(shí)現(xiàn)了遠(yuǎn)距離的數(shù)據(jù)傳輸,隨著現(xiàn)代網(wǎng)絡(luò)技術(shù)的快速發(fā)展和普及,基于嵌入開發(fā)技術(shù)的以太網(wǎng)遠(yuǎn)程抄電表系統(tǒng)將會(huì)得到不斷地完善和發(fā)展。
參考文獻(xiàn):
[1] Andrew S.計(jì)算機(jī)網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2001.
[2] Nack,F(xiàn).Multimedia,The future in digital media computing is meta[J].Multimedia,IEEE,2004.
[3] 王學(xué)龍.嵌入式Linux系統(tǒng)設(shè)計(jì)與應(yīng)用[M].北京:清華大學(xué)出版社,2001.
[4] 馬忠梅,馬廣云,徐英慧.ARM嵌入式處理器結(jié)基礎(chǔ)[M].北京:北京航空航天出版社,2002.
[5] 周衛(wèi)玉,孫新亞.基于ARM和ucLinux的嵌入式遠(yuǎn)程數(shù)據(jù)采集終端[J].計(jì)算機(jī)工程,2004.
[6] 吳明暉.基于ARM的嵌入式系統(tǒng)開發(fā)與應(yīng)用[M].北京:人民郵電出版社,2004.
[7] 吳學(xué)智.基于ARM的嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)[M].北京:人民郵電出版社,2007.
[8] 何立民.單片機(jī)高級(jí)教程-應(yīng)用與設(shè)計(jì)[M].2版.北京:航空航天大學(xué)出版社,2007.