《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 基于Web和硬件可重構(gòu)技術(shù)的遠(yuǎn)程抄表設(shè)計(jì)
基于Web和硬件可重構(gòu)技術(shù)的遠(yuǎn)程抄表設(shè)計(jì)
與非網(wǎng)
摘要: 隨著計(jì)算機(jī)技術(shù)的發(fā)展,遠(yuǎn)程抄表技術(shù)逐漸得到廣泛的應(yīng)用。通過實(shí)行一戶一表以及自動遠(yuǎn)程抄表,可以做到及時(shí)、準(zhǔn)確地進(jìn)行數(shù)據(jù)采集,并且提供了一種對欠費(fèi)用戶進(jìn)行有效管理的手段。遠(yuǎn)程抄表系統(tǒng)通常主要由計(jì)量儀表、數(shù)據(jù)集中器、通信網(wǎng)絡(luò)以及抄表程序四個(gè)部分組成。計(jì)量儀表完成信息轉(zhuǎn)換、數(shù)據(jù)存儲功能,并支持通過本地通信網(wǎng)絡(luò)與數(shù)據(jù)集中器進(jìn)行數(shù)據(jù)交換。數(shù)據(jù)集中器完成數(shù)據(jù)匯聚功能,并能與抄表程序進(jìn)行遠(yuǎn)程數(shù)據(jù)交換。抄表程序則借助通信網(wǎng)絡(luò)從數(shù)據(jù)集中器獲取計(jì)量數(shù)據(jù),并存入數(shù)據(jù)庫中。在絕大多數(shù)遠(yuǎn)程抄表系統(tǒng)中,計(jì)量儀表通常沒有太多差別,而對于抄表程序以及緊接其后的各種數(shù)據(jù)查詢、統(tǒng)計(jì)等操作都是典型的數(shù)據(jù)庫應(yīng)用系統(tǒng),差別也不大。相比之下,通信網(wǎng)絡(luò)以及與之緊密相關(guān)的數(shù)據(jù)集中器則是不同系統(tǒng)之間差異較大的地方,同時(shí)也是技術(shù)上的難點(diǎn)。
Abstract:
Key words :

引言
     
  隨著計(jì)算機(jī)技術(shù)的發(fā)展,遠(yuǎn)程抄表技術(shù)逐漸得到廣泛的應(yīng)用。通過實(shí)行一戶一表以及自動遠(yuǎn)程抄表,可以做到及時(shí)、準(zhǔn)確地進(jìn)行數(shù)據(jù)采集,并且提供了一種對欠費(fèi)用戶進(jìn)行有效管理的手段。遠(yuǎn)程抄表系統(tǒng)通常主要由計(jì)量儀表、數(shù)據(jù)集中器、通信網(wǎng)絡(luò)以及抄表程序四個(gè)部分組成。計(jì)量儀表完成信息轉(zhuǎn)換、數(shù)據(jù)存儲功能,并支持通過本地通信網(wǎng)絡(luò)與數(shù)據(jù)集中器進(jìn)行數(shù)據(jù)交換。數(shù)據(jù)集中器完成數(shù)據(jù)匯聚功能,并能與抄表程序進(jìn)行遠(yuǎn)程數(shù)據(jù)交換。抄表程序則借助通信網(wǎng)絡(luò)從數(shù)據(jù)集中器獲取計(jì)量數(shù)據(jù),并存入數(shù)據(jù)庫中。在絕大多數(shù)遠(yuǎn)程抄表系統(tǒng)中,計(jì)量儀表通常沒有太多差別,而對于抄表程序以及緊接其后的各種數(shù)據(jù)查詢、統(tǒng)計(jì)等操作都是典型的數(shù)據(jù)庫應(yīng)用系統(tǒng),差別也不大。相比之下,通信網(wǎng)絡(luò)以及與之緊密相關(guān)的數(shù)據(jù)集中器則是不同系統(tǒng)之間差異較大的地方,同時(shí)也是技術(shù)上的難點(diǎn)。
  
  針對以上問題,本文提出了一種基于Web和硬件可重構(gòu)技術(shù)" title="可重構(gòu)技術(shù)">可重構(gòu)技術(shù)的遠(yuǎn)程抄表系統(tǒng)結(jié)構(gòu)。軟件方面,它在數(shù)據(jù)集中器中利用一個(gè)嵌入式Web服務(wù)器來負(fù)責(zé)數(shù)據(jù)的傳送任務(wù),采用HTTP作為通信協(xié)議。客戶端則是操作系統(tǒng)自帶的Web瀏覽器,從而可以解決各個(gè)系統(tǒng)之間由于通信協(xié)議不同而造成的兼容性問題,而且節(jié)省了抄表客戶端的軟件開發(fā)成本。硬件方面,采用硬件可重構(gòu)技術(shù)和基于IP核的設(shè)計(jì)方法,在單個(gè)FPGA芯片上實(shí)現(xiàn)了數(shù)據(jù)集中器。即使將來需要對系統(tǒng)進(jìn)行改進(jìn)和升級,也只需對FPGA芯片的配置文件進(jìn)行修改,而不必報(bào)廢整個(gè)硬件系統(tǒng),從而保護(hù)了已有的硬件投資,降低了系統(tǒng)的維護(hù)成本。另外,數(shù)據(jù)集中器上的通信接口也可以借助硬件可重構(gòu)技術(shù)很方便地更改,因而能夠適應(yīng)各種硬件環(huán)境。
  
遠(yuǎn)程抄表系統(tǒng)的體系結(jié)構(gòu)
  
  基于Web的遠(yuǎn)程抄表系統(tǒng)的體系結(jié)構(gòu)如圖1所示(以電表為例)。

            圖1 基于Web的選程秒表系統(tǒng)的體系結(jié)構(gòu)

  它由三個(gè)部分組成,分別是抄表客戶端程序、數(shù)據(jù)集中器以及分布在各家各戶的電表。抄表流程如下:首先由抄表人員使用抄表客戶端程序向數(shù)據(jù)集中器以HTTP協(xié)議的形式發(fā)送抄表請求,該請求通過因特網(wǎng)到達(dá)數(shù)據(jù)集中器后,會首先被一個(gè)嵌入式Web服務(wù)器進(jìn)行處理。嵌入式Web服務(wù)器將返回一個(gè)HTML文件給客戶端,要求用戶輸入命令類型(例如,是抄數(shù)據(jù)還是執(zhí)行相關(guān)控制操作)、電表編號以及附加數(shù)據(jù)。當(dāng)用戶填完表單后,這些數(shù)據(jù)將依照HTTPPOST協(xié)議發(fā)送給數(shù)據(jù)集中器中的嵌入式Web服務(wù)器。隨后,相關(guān)的命令和數(shù)據(jù)參數(shù)抽取出來,送給數(shù)據(jù)集中器的控制模塊。控制模塊將對命令參數(shù)進(jìn)行判斷和安全性檢查,然后生成相應(yīng)的命令元組,以便控制和讀取數(shù)據(jù)。電表通信模塊完成與電表之間的通信任務(wù),負(fù)責(zé)將命令元組發(fā)送給電表,并讀取執(zhí)行結(jié)果。當(dāng)執(zhí)行抄表操作時(shí),數(shù)據(jù)將被電表通信模塊以數(shù)據(jù)元組的方式返回給控制模塊,然后按照固定格式被組裝為一個(gè)字符串,并交給嵌入式Web服務(wù)器。嵌入式Web服務(wù)器將這些數(shù)據(jù)插入到預(yù)先設(shè)計(jì)好的HTML文件模板中,隨后將其通過因特網(wǎng)返回給客戶端的抄表程序。
  
硬件設(shè)計(jì)
  
  從圖1中可以看出,數(shù)據(jù)集中器是系統(tǒng)中的關(guān)鍵部分,一方面它需要按照《DL/T64521997:多功能電能表通信規(guī)約》通過RS485總線從電表處采集數(shù)據(jù),并執(zhí)行各種控制任務(wù);另一方面它必須能夠解釋以HTTP形式發(fā)送過來的控制命令,并將執(zhí)行結(jié)果以HTML文件的形式返回給抄表客戶端。
  
  本文在進(jìn)行硬件設(shè)計(jì)的時(shí)候采用了基于IP核的設(shè)計(jì)方法,并將數(shù)據(jù)集中器的大部分功能在單個(gè)FPGA芯片上予以實(shí)現(xiàn)。設(shè)計(jì)電路原理圖之前,必須根據(jù)系統(tǒng)需求選擇合適的IP核。所謂IP核,是指那些以硬件形式(硅片版圖)或者軟件形式(用Verilog、VHDL描述的RTL或者門級模型)存在的、具有特定功能的硬件電路。IP核通常分為硬核、固核與軟核三種。根據(jù)系統(tǒng)的硬件開發(fā)環(huán)境以及性能需求,本文選擇了Altera公司開發(fā)的一系列軟核產(chǎn)品,它們是用Verilog語言所描述的硬件模塊,允許用戶根據(jù)需要對各種參數(shù)進(jìn)行配置,如數(shù)據(jù)通路帶寬、優(yōu)先進(jìn)行速度優(yōu)化還是資源優(yōu)化等,因而應(yīng)用非常靈活。系統(tǒng)所用到的軟IP核產(chǎn)品有Nios CPU、ROM、RAM、定時(shí)器、通用異步收發(fā)器UART,以及用于外部功能擴(kuò)展的Avalon總線模塊,并將Nios CPU配置為32位字長模式,擁有256個(gè)通用寄存器,工作頻率33MHz;UART配置為14400bPs的波特率,8位數(shù)據(jù)位,2位停止位,無奇偶校驗(yàn)。在確定了IP核并進(jìn)行相應(yīng)設(shè)置后,需要設(shè)計(jì)系統(tǒng)的電路原理圖。圖2表示了由各個(gè)IP模塊組成的數(shù)據(jù)集中器內(nèi)部硬件結(jié)構(gòu),其中的ROM用于存放用戶程序,RAM作為程序運(yùn)行時(shí)的存儲空間,定時(shí)器為實(shí)時(shí)操作系統(tǒng)提供時(shí)鐘中斷功能,外部總線接口和UART負(fù)責(zé)與系統(tǒng)外部進(jìn)行通信。它們將通過一條內(nèi)部總線與Nios CPU相連,這樣就構(gòu)成了一個(gè)完整的嵌入式硬件系統(tǒng)。設(shè)計(jì)電路圖后的下一步工作是選擇合適的實(shí)現(xiàn)載體?;贗P核的設(shè)計(jì)方法通常使用FPGA芯片或者直接在硅片上實(shí)現(xiàn)。本文采用的是Altera公司APEX20KE系列FPGA芯片,能提供8000個(gè)左右的邏輯塊資源和多達(dá)400Kb左右的ROM和RAM存儲空間。由于FPGA芯片具有可反復(fù)更改的特性,因此有助于硬件系統(tǒng)的改進(jìn)和不斷升級。另外,通過對通信接口進(jìn)行重構(gòu),例如將UART改為CAN總線控制器,可以使系統(tǒng)能與更多的硬件環(huán)境兼容。

               圖2 數(shù)據(jù)集中器的硬件結(jié)構(gòu)
  
  由于在FPGA芯片上構(gòu)造電平轉(zhuǎn)換電路和以太網(wǎng)物理層、MAC層電路較困難,本文將這些功能放到了FPGA芯片的外面,并分別使用MAX485和LAN91C111芯片來實(shí)現(xiàn)電平轉(zhuǎn)換和以太網(wǎng)硬件接口功能。FPGA芯片內(nèi)的UART模塊和MAX485芯片共同完成與電表的數(shù)據(jù)通信任務(wù),前者負(fù)責(zé)接收和發(fā)送數(shù)據(jù),后者完成信號電平的轉(zhuǎn)換。SMSC公司的LAN91C111是為了方便嵌入式應(yīng)用系統(tǒng)連接到快速以太網(wǎng)而專門設(shè)計(jì)的,它實(shí)現(xiàn)了CSMA/CD協(xié)議的物理層和媒體訪問控制層(MAC)兩個(gè)部分,并可以很方便地與許多嵌入式處理器進(jìn)行數(shù)據(jù)交換。

軟件設(shè)計(jì)
  
數(shù)據(jù)通訊協(xié)議

  
  抄表系統(tǒng)中有兩個(gè)地方存在通訊協(xié)議的問題,其中一個(gè)在數(shù)據(jù)集中器與各個(gè)電表之間。目前,國內(nèi)各廠家生產(chǎn)的電表絕大部分具有國家頒布的“多功能電能表通信規(guī)約”所規(guī)定的抄表協(xié)議,因此只要數(shù)據(jù)集中器中的電表通信模另外一個(gè)必須考慮通訊協(xié)議的地方是數(shù)據(jù)集中器和電力抄表中心之間。目前,國家還沒有制定正式的標(biāo)準(zhǔn),各個(gè)廠家采用的協(xié)議也各不相同。這造成了系統(tǒng)之間基本上不存在互操作性和互連性,從而阻礙了行業(yè)的進(jìn)一步發(fā)展。
  
  本文提出了以標(biāo)準(zhǔn)公開的HTTP協(xié)議作為應(yīng)用層通訊的基礎(chǔ),不但能解決系統(tǒng)之間的兼容性問題,而且還將因特網(wǎng)上廣泛使用的Web技術(shù)引入到遠(yuǎn)程抄表系統(tǒng)中,為其帶來了許多便利。例如,只要能連接到因特網(wǎng),就可以完成抄表工作,擺脫了時(shí)間、地點(diǎn)的約束。另外,用戶抄表使用的終端程序是所有計(jì)算機(jī)平臺上都帶有的Web瀏覽器,這意味著用戶無需花費(fèi)一分錢額外投資,就可以得到一個(gè)圖形用戶界面。在HTTP的底層使用了TCP/IP協(xié)議來保證數(shù)據(jù)在因特網(wǎng)上的可靠傳輸。用戶對電表的操作命令以及相關(guān)參數(shù)將被作為HTML表單數(shù)據(jù)以HTTPPOST方法傳送給數(shù)據(jù)集中器上的嵌入式Web服務(wù)器,而操作的結(jié)果和數(shù)據(jù)則是以HTML表格的形式返回。
  
數(shù)據(jù)集中器的軟件設(shè)計(jì)

  
  數(shù)據(jù)集中器在抄表系統(tǒng)中起著關(guān)鍵的作用,它一方面要通過因特網(wǎng)與抄表中心進(jìn)行通信,另一方面要采集來自各個(gè)電表的用電數(shù)據(jù)。為了降低開發(fā)難度,提高可維護(hù)性,系統(tǒng)使用C語言作為開發(fā)語言,并利用了GNU的開發(fā)工具,包括gcc 、gdb等。另外,將系統(tǒng)功能分解為五個(gè)相互協(xié)作的任務(wù),采用uc/os-II作為實(shí)時(shí)操作系統(tǒng),實(shí)現(xiàn)任務(wù)調(diào)度和任務(wù)間通信。這五個(gè)任務(wù)分別是:
  
  (1)網(wǎng)絡(luò)通信接口:負(fù)責(zé)在因特網(wǎng)上收發(fā)數(shù)據(jù)。本文采用Altera公司提供的專門針對嵌入式系統(tǒng)應(yīng)用的精簡TCP/IP協(xié)議棧作為底層通信協(xié)議。數(shù)據(jù)發(fā)送功能是通過調(diào)用TCP/IP傳輸層服務(wù)函數(shù)nr_ pLugs_send ()實(shí)現(xiàn)的,而數(shù)據(jù)接收功能則是由一個(gè)在創(chuàng)建通信套接字時(shí)被注冊的回調(diào)函數(shù)實(shí)現(xiàn)的。當(dāng)傳輸層收到一個(gè)有效應(yīng)用層數(shù)據(jù)時(shí),該函數(shù)被調(diào)用,應(yīng)用層數(shù)據(jù)的指針被當(dāng)作實(shí)參傳入,隨后回調(diào)函數(shù)把數(shù)據(jù)指針以消息的形式發(fā)送給HTTP引擎。

  (2)HTTP引擎:負(fù)責(zé)以HTTPPOST協(xié)議接收和發(fā)送數(shù)據(jù),將所析取出的抄表命令和數(shù)據(jù)參數(shù)交給控制模塊;根據(jù)控制模塊傳回的數(shù)據(jù)和從虛擬文件系統(tǒng)中讀取的HTML文件模板,動態(tài)構(gòu)造一個(gè)完整的HTML文件,發(fā)送給請求方。
  
  (3)虛擬文件系統(tǒng):負(fù)責(zé)在ROM或者外部Flash存儲器上實(shí)現(xiàn)一個(gè)小型的只讀文件系統(tǒng),用以存放各種靜態(tài)Web頁面和動態(tài)構(gòu)造Web頁面所需要的頁面模板。它靠維護(hù)一個(gè)文件索引表來實(shí)現(xiàn)文件的讀取,其結(jié)構(gòu)如圖3所示。

               圖3 虛擬文件系統(tǒng)索引表
  (4)控制模塊:負(fù)責(zé)安全性檢查、命令和數(shù)據(jù)參數(shù)格式轉(zhuǎn)換。由于因特網(wǎng)是一個(gè)公共網(wǎng)絡(luò),在其上傳輸?shù)目刂泼詈蛿?shù)據(jù)有可能被截獲、篡改和重發(fā),因此需要進(jìn)行安全性檢查。主要采用數(shù)據(jù)加密和隨機(jī)數(shù)驗(yàn)證兩種方法。
  
  (5)電表通信:負(fù)責(zé)與指定電表進(jìn)行通信,從而讀取用電數(shù)據(jù),以及完成各種控制操作,其功能相當(dāng)于分層網(wǎng)絡(luò)模型中的數(shù)據(jù)鏈路層。數(shù)據(jù)的接收和發(fā)送是通過nr_uart_rxchar()和nr_uart_Txchar()兩個(gè)函數(shù)實(shí)現(xiàn)的。

抄表中心的客戶端應(yīng)用程序設(shè)計(jì)
  
  在抄表中心有交互式和批處理兩種不同的方式完成抄表任務(wù)。在交互式過程中,要求手工輸入電表編號、要求執(zhí)行的操作等信息,在查詢結(jié)束后,再將數(shù)據(jù)手工地轉(zhuǎn)錄到數(shù)據(jù)庫中。對于這種方式,操作系統(tǒng)自帶的Web瀏覽器就是一個(gè)抄表終端程序。但是,交互式抄表效率較低,只適用于抄錄指定用戶的電量信息、對制定用戶電表執(zhí)行控制任務(wù)或者用戶進(jìn)行自助查詢等場合。當(dāng)需要抄收大量電量數(shù)據(jù)時(shí),就要采用批處理方式。圖4 給出了批處理方式下的程序流程圖。在批處理抄表程序中,有兩個(gè)關(guān)鍵技術(shù)問題:一是將抄表命令以HTTPPOST方式傳送給數(shù)據(jù)集中器上的嵌入式Web服務(wù)器,另外一個(gè)是從接收到的HTML文件中抽取用電數(shù)據(jù)。對于第一個(gè)問題,我們首先通過分析網(wǎng)絡(luò)抓包程序(Sniffer程序)所捕獲的HTTP數(shù)據(jù)包,就可以掌握PC機(jī)環(huán)境下瀏覽器和Web服務(wù)器之間以POST方式傳遞信息所采用的數(shù)據(jù)格式和時(shí)序關(guān)系,然后在VB環(huán)境下編寫程序模擬這個(gè)過程中瀏覽器的行為。對于第二個(gè)問題,解決方法是約定數(shù)據(jù)以表格形式返回,并保證格式固定。因此,通過在HTML文件中搜索
  
  等HTML標(biāo)記,就可以將電量數(shù)據(jù)抽取出來。

               圖4  批處理抄表流程
  
  抄表中心的其他功能如電費(fèi)計(jì)算、數(shù)據(jù)查詢和統(tǒng)計(jì)、系統(tǒng)維護(hù)等,都屬于常見的數(shù)據(jù)庫應(yīng)用程序。由于篇幅關(guān)系,不再一一介紹了。
  
結(jié)束語
  
  本文在分析現(xiàn)有遠(yuǎn)程抄表系統(tǒng)結(jié)構(gòu)的基礎(chǔ)上,提出了一種新的基于Web和硬件可重構(gòu)技術(shù)的遠(yuǎn)程抄表系統(tǒng)結(jié)構(gòu),并利用基于IP核的設(shè)計(jì)方法進(jìn)行硬件設(shè)計(jì),使系統(tǒng)具有兼容性強(qiáng)、體積小、功耗低、容易升級和維護(hù)等特點(diǎn)。目前,抄表系統(tǒng)中的關(guān)鍵部分——數(shù)據(jù)集中器,已經(jīng)成功地在單個(gè)FPGA芯片上實(shí)現(xiàn),并完成了它與抄表終端程序之間的通信測試。我們現(xiàn)正在搭建一個(gè)完整的原型系統(tǒng),以做進(jìn)一步測試和改進(jìn)工作。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。