1 引言
自動抄表簡稱amr(automatic meter reading),是指采用通信、計算機等技術,通過專用設備對各種儀表(如水表、電表、氣表等)的數據進行自動采集和處理的系統。它一般是通過數據采集器讀取表計的讀數,然后通過傳輸控制器將數據傳至管理中心,對數據進行存儲、顯示、打印。自動抄表在上世紀80年代誕生于美國,并隨著計算機、通信、網絡技術的發展而得到了迅猛的發展。iec的tc13和tc57兩大標準化組織在其標準體系中都為amr系統制定了相關的標準。各種形式的amr系統,各種新的amr技術不斷推陳出新,推動著整個自動抄表技術行業的發展,本文介紹的就是一種新穎的基于web的自動抄表系統設計。
2 硬件系統設計
由于以太網的種種特點,采用以太網作為傳輸媒介的抄表系統具有相當的優勢:首先是不需要鋪設專用的通信線路,而利用現成的internet網;其次是網絡有足夠快的速度,對抄表系統速度己經足夠;以太網能傳播的不僅僅是數據信號,還有音頻、圖像等多媒體信息;采用的協議是現成而公開的,任何一種web瀏覽器都可以照讀不誤,方便管理者隨時隨地查詢儀表信息;信息直接反映在色彩豐富的網頁上,形式可以是數據、文字、圖像、表格或語音,實時數據會自動更新,對儀表的操作會有及時可見的反饋。系統原理框圖如圖1所示。系統中,我們采用以太網作為系統通訊的主要載體,前端機與上位機是系統的主要工作單元。前端機集儀表數據采集器及傳輸控制器的功能于一身。存本遠釋抄表系統的硬件設計中.最重要的部分就是中央處理器s3c2410。
圖1 系統原理框圖
2.1 存儲器的控制
本系統設計包含4mb(可擴展為16mb)flash存儲器,內部存放啟動代碼(bootloader)、linux內核映象和ramdisk壓縮映像,剩余的存儲空間可存放用戶程序或其它用戶存儲資料,還可升級操作系統,且用戶存儲資料斷電也不會丟失。flash存儲器的數據寬度為32位,映射到s3c2410的rom bank0,地址從0x0-0x400000。
s3c2410啟動代碼可以存儲在外部的nand閃存。為了支持nand閃存bootloader,s3c2410設置了一個sdram緩沖器叫做“steppingstone”。啟動時,nand閃存最前端的4kb啟動代碼加載到“steppingstone”中并且被執行。一般來講,啟動代碼會復制nand閃存中的內容到sdram中。利用硬件糾錯碼,hand閃存中數據的有效性會得到驗證。完成復制后,主程序會在sdarm中被執行。nand閃存控制如圖2所示。
圖2 nand閃存控制圖
2.2 s3c2410的usb接口設計
在抄表系統中,圖像數據的采集與傳輸是系統的功能重要組成部分。圖像數據的采集通過s3c2410 usb host接口完成,采集的數據使用網絡接口通過internet傳回控制中心上位機。s3c2410集成的usb接口模塊中含有2個usb host接口,1個usb device接口。usb device接口可以工作在中斷模式或dma模式,兼容usb1.1協議,可以在高速〔12mbps〕和低速(1.5mbps)下工作。接口電路如圖3所示。
圖3 usb接口電路
2.3 以太網接口設計
s3c2410沒有集成以太網控制器,系統采用外接一種單芯片的以太網控制器cs8900a實現以太網接口。cs8900a主要結構包括,16位isa總線接口、802.3 mac引擎、內部緩沖存儲器、串行eeprom接口并支持10base-t與aui(連接單元接口)以太網端口。
cs8900a支持的串行eeprom可以用于保存cs8900a的配置信息和系統的以太網地址,但這個eeprom是可選的,因為處理器可以將這些數據保存到系統的其他地方。
cs8900a通過一個隔離變壓器連接到rj45端口上。cs8900a可以直接驅動led,用以指示以太網的鏈路狀態及總線與網絡的活動情況。
cs8900a需要外接20m的晶體提供時序,在正常操作下,cs8900a完成兩個基本功能即:以太網包的發送和接收,在發送和接收前必須配置好cs8900a。上電復位后,cs8900a要為收發包進行配置,各種各樣的參數要寫入內部的配置和控制寄存器,如:存儲器基地址,以太網物理地址,接收的幀類型,使用何種媒體接口等。配置信息既可以通過isa總線由主機配置也可以由外部eeprom自動配置,配置完畢后,操作可以進行了。
cs8900a與s3c2410按照16位方式連接,網卡芯片復位后默認工作方式為i/o連接,基址是300h。
3 軟件系統設計
通過對抄表應用的考察,可以看出本抄表系統應用比較單一。前端機只是讀取攝像頭圖像數據,然后發回上位機。因而要求操作系統要能裁減,并且能支持tcp/ip協議,應能加載usb驅動程序,此外還要考慮的以后的系統擴展,而帶來的軟件升級問題。綜合考慮,本系統選擇linux系統。linux系統主要包括三層結構,如圖4所示。
圖4 軟件系統框圖
軟件部分設計主要包括:linux操作系統的移植;嵌入式linux系統下功能模塊的驅動;linux下的視頻采集和圖像數據傳輸等四部分組成。
linux對于視頻采集設備的支持是通過video4linux實現的。vdeo4linux是為各種電視卡、并口、usb接口的音視頻采集設備提供統一的編程接口。對于usb口攝像頭,驅動程序提供了基本的i/o操作(包括:open, read, write, close)、中斷的處理、內存映射功能以及對i/o通道的控制(通過接口函數ioctl實現)等,并把它們定義在struct file operations中。這樣當應用程序對設備文件進行諸如open, close, read, write等系統調用操作時,linux內核將通過file operations結構訪問驅動程序提供的函數。在系統平臺上對usb口數碼攝像頭驅動,首先把usb控制器驅動模塊靜態編譯進內核,使平臺中支持usb接口,再在需要使用攝像頭采集時,使用insmode動態加載其驅動模塊,這樣攝像頭就可正常工作了。linux下與video4linux相關設備及用途如表附所示。
附表 video4linux相關設備及用途
4 電表讀數的識別
本系統中,從前端機抄回的是電表讀數的圖片,并不是電表的真實讀數,為此,需要一種圖像識別算法,能夠根據圖片識別出電表的讀數。
電表讀數識別的基本原理是將輸入文字與各個標準文字進行模式匹配,計算類似度(或距離),將具有最大類似度(或最小距離)的標準文字作為識別結果。模式匹配是將兩個模式的所有對應元素進行比較的操作,相同的模式會得到完全一致的比較結果,不同的模式將得不到完全一致的比較結果,這個基本原理對文字中的變形是很苛刻的,圖5所示為包含預處理和特征抽取的文字識別流程。
圖5 文字識別的基本流程
5 結束語
本文提出的基于web的嵌入式抄表系統,與傳統的抄表技術相比有以下特點:采用圖像抄表,數據準確,不會出現用戶端和管理中心數據不一致的問題;本系統安裝簡單,后期成本低。由于本文設計的amr系統采用攝像頭采集數據,通過現成的互聯網傳輸數據,安裝工作就是把攝像頭對準電表,然后聯到前端機上,前端機插上網線和電源。管理中心通過普通的ie瀏覽器即可完成抄表的工作。以后的使用不必交納任何費用。本系統后期維護成本較低,由于互聯網穩定性很強,前端機和攝像頭平時是很少工作,因此,本文提出的抄表系統幾乎不會出現任何故障。