《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種基于嵌入式技術(shù)的遠(yuǎn)程抄表裝置的設(shè)計(jì)與實(shí)現(xiàn)
一種基于嵌入式技術(shù)的遠(yuǎn)程抄表裝置的設(shè)計(jì)與實(shí)現(xiàn)
湯永華,張志佳,,苑瑋琦
摘要: 一種能夠?qū)嶋H應(yīng)用于帶字輪號(hào)碼家用水表的遠(yuǎn)程抄表裝置的設(shè)計(jì)原理與實(shí)現(xiàn)過程,。該裝置屬于無源遠(yuǎn)程抄表方式,,具有低成本,、快速,、節(jié)能,、不易損壞等特點(diǎn),。
關(guān)鍵詞: DSP 遠(yuǎn)程抄表 水表
Abstract:
Key words :

  摘 要: 一種能夠?qū)嶋H應(yīng)用于帶字輪號(hào)碼家用水表" title="水表">水表的遠(yuǎn)程抄表" title="遠(yuǎn)程抄表">遠(yuǎn)程抄表裝置的設(shè)計(jì)原理與實(shí)現(xiàn)過程。該裝置屬于無源遠(yuǎn)程抄表方式,,具有低成本,、快速、節(jié)能,、不易損壞等特點(diǎn),。
  關(guān)鍵詞: 水表 號(hào)碼讀取 數(shù)字圖像處理 DSP 嵌入式技術(shù)


  水表是我國(guó)城市家庭必不可少的居家設(shè)施。目前,,我國(guó)絕大部分城市水表抄寫的方式依然是由專人挨家挨戶抄寫,,這樣不僅效率低下,而且也給住戶帶來不便,。另外,,也有部分地區(qū)對(duì)現(xiàn)有的住宅樓進(jìn)行改造,將住戶家中的水表集中遷到樓外一個(gè)固定的地方,。但這樣做需要對(duì)住宅樓進(jìn)行較大面積的破壞,,不利于樓房的壽命并嚴(yán)重影響住宅的美觀,還給用戶帶來一定的經(jīng)濟(jì)負(fù)擔(dān),,特別是北方冬天寒冷的天氣容易造成水管凍結(jié),。目前,也有利用條碼,、累計(jì)脈沖等方式進(jìn)行遠(yuǎn)程抄表的研究,,但是因?yàn)閷儆谟性捶绞剑枰硗馀鋫潆姵厥寡b置持續(xù)工作,,這樣由于電池壽命、易損壞等各方面原因給實(shí)際應(yīng)用帶來了很大限制,。
  本文實(shí)現(xiàn)的利用數(shù)字圖像處理技術(shù)對(duì)水表號(hào)碼進(jìn)行無源自動(dòng)抄寫記錄裝置,,一方面最大限度地保護(hù)用戶住宅結(jié)構(gòu)和原有裝修,另一方面可以使抄表員不必逐一進(jìn)入用戶家中,,而是集中在一個(gè)地點(diǎn)將用戶水表號(hào)碼自動(dòng)抄寫并保存到抄表員所攜帶的存儲(chǔ)設(shè)備中,。且?guī)资畱艟用窆靡粋€(gè)記錄裝置,因此成本非常低,不會(huì)因?yàn)榘惭b該裝置給用戶帶來大的負(fù)擔(dān),。本裝置以數(shù)字信號(hào)處理器(DSP)和視頻解碼器為核心,,完成抄寫等功能。目前已經(jīng)實(shí)現(xiàn)的抄表裝置采用的DSP是TI公司的TMS320VC5416,。實(shí)驗(yàn)證明,,準(zhǔn)確抄寫一個(gè)水表讀數(shù)所用時(shí)間不超過0.5s,完全能夠滿足實(shí)際應(yīng)用需要,。
1 硬件結(jié)構(gòu)
  水表字輪號(hào)碼自動(dòng)記錄裝置的硬件主要由五部分組成:圖像預(yù)處理模塊,,圖像采集識(shí)別模塊,系統(tǒng)程序數(shù)據(jù)存儲(chǔ)模塊,,系統(tǒng)邏輯控制模塊,,號(hào)碼顯示模塊。系統(tǒng)框圖如圖1所示,。


1.1 圖像預(yù)處理模塊
  由于攝像頭輸出的是模擬視頻信號(hào),,因此在進(jìn)行識(shí)別處理前必須進(jìn)行一次預(yù)處理,并轉(zhuǎn)換為數(shù)字視頻信號(hào)[5],。
  圖像預(yù)處理模塊以視頻解碼器為核心,,完成對(duì)模擬攝像頭所采集的模擬圖像信號(hào)的放大、濾波,、A/D轉(zhuǎn)換等預(yù)處理,。同時(shí),從全電視信號(hào)中分離出行同步信號(hào)和場(chǎng)同步信號(hào),。
  視頻解碼器在正常工作之前首先需要初始化,,視頻解碼器的初始化工作通過I2C總線完成。其中,,I2C總線的SCL和SDA分別為時(shí)鐘控制線和數(shù)據(jù)線,,并分別連接到可編程邏輯器件的兩個(gè)I/O引腳,在數(shù)字信號(hào)處理器(DSP)的控制下實(shí)現(xiàn)I2C總線協(xié)議,,進(jìn)而完成對(duì)視頻解碼器片上寄存器的初始化操作,。
1.2 圖像采集識(shí)別模塊
  圖像采集識(shí)別模塊主要由數(shù)字信號(hào)處理器(DSP)以及必要的外圍電路組成。
  由于目前TI的DSP系列產(chǎn)品占據(jù)了國(guó)際市場(chǎng)的大部分份額,,從供貨及性價(jià)比等方面考慮,,本文采用的是價(jià)格相對(duì)較低且能滿足系統(tǒng)要求的TMS320VC5416PGE160(以下簡(jiǎn)稱VC5416),其豐富的片上資源,,如128K×16bit的片上RAM和16K×16bit的片上ROM,,可以大大縮小系統(tǒng)的體積、復(fù)雜性以及成本,,為系統(tǒng)運(yùn)行的穩(wěn)定性提供了保證,。
  本系統(tǒng)將VC5416的HPI(主機(jī)接口)設(shè)置為GPIO(通用I/O口),,分別用于檢測(cè)圖像預(yù)處理電路提供的行場(chǎng)同步信號(hào)、奇場(chǎng)標(biāo)志信號(hào)和像素時(shí)鐘信號(hào),,用以確保時(shí)序正確,,從而保證所采集的號(hào)碼圖像的完整性,為后續(xù)工作提供可靠的數(shù)據(jù)源。另外利用GPIO(通用I/O口)編程控制CPLD實(shí)現(xiàn)I2C總線協(xié)議,,在系統(tǒng)上電時(shí)對(duì)圖像預(yù)處理電路進(jìn)行必要的初始化,,以控制所采集的號(hào)碼圖像的大小、位置,、轉(zhuǎn)換速度,,同時(shí)保證號(hào)碼圖像的質(zhì)量等。
1.3 系統(tǒng)程序數(shù)據(jù)存儲(chǔ)模塊
  要實(shí)現(xiàn)系統(tǒng)脫機(jī)運(yùn)行和保證系統(tǒng)掉電不丟失,,最好將編譯好的軟件程序燒制到VC5416的片上ROM中,,這樣既可以減小系統(tǒng)體積和成本,也有利于提高系統(tǒng)性能,。本系統(tǒng)在實(shí)驗(yàn)過程中,,為調(diào)試方便采用外擴(kuò)1片映射到數(shù)據(jù)空間的Flash ROM來進(jìn)行脫機(jī)運(yùn)行的調(diào)試工作。Flash ROM在數(shù)據(jù)空間的映射地址從0x8000~0xFFFF,。系統(tǒng)上電時(shí),,利用VC5416的Bootloader將Flash中的程序?qū)隫C5416的內(nèi)RAM中,然后將其屏蔽,。
1.4 系統(tǒng)邏輯控制模塊
  系統(tǒng)采用了1片復(fù)雜可編程邏輯器件(CPLD),。該器件在系統(tǒng)中起到全局邏輯控制作用,使整個(gè)系統(tǒng)可以在DSP的統(tǒng)一管理和控制下協(xié)調(diào)工作,。
1.5 號(hào)碼顯示模塊
  當(dāng)一幅號(hào)碼圖像的識(shí)別過程結(jié)束后,,DSP TMS320VC5416還需通過驅(qū)動(dòng)電路在數(shù)碼管LED上顯示識(shí)別結(jié)果。驅(qū)動(dòng)電路采用的是最常用的LED驅(qū)動(dòng)器MAX7219[2][4],。
2 軟件設(shè)計(jì)
  軟件主要包括圖像預(yù)處理電路的初始化程序,、DSP的初始化程序、紙幣號(hào)碼圖像采集與識(shí)別程序,、號(hào)碼顯示譯碼程序以及上電引導(dǎo)程序等,。本文簡(jiǎn)要介紹編寫的幾個(gè)主要程序。
2.1 圖像預(yù)處理電路的初始化程序
  圖像預(yù)處理電路的初始化主要通過設(shè)置視頻解碼器相應(yīng)的寄存器實(shí)現(xiàn),。視頻解碼器片上寄存器的讀寫通過I2C總線協(xié)議的形式完成,。首先,由DSP輸出控制信號(hào),,分別用于對(duì)應(yīng)I2C總線的數(shù)據(jù)線(SDA)和時(shí)鐘線(SCL),。然后,根據(jù)I2C總線協(xié)議,,編程實(shí)現(xiàn)對(duì)視頻解碼器片上寄存器的訪問。
  系統(tǒng)對(duì)視頻解碼器的寄存器設(shè)置如表1所示。


  由于DSP的I2C總線實(shí)現(xiàn)程序比較繁瑣,,所以本文沒有列出程序清單,。
2.2 DSP的初始化程序設(shè)計(jì)
  該程序主要通過對(duì)必要的DSP存儲(chǔ)器映射寄存器(MMR)賦值,使其工作在系統(tǒng)要求的狀態(tài),,主要包括以下操作:
  (1)將處理器模式狀態(tài)寄存器(PMST)設(shè)置為0xAC,,使中斷向量表重定位到0x0080,并且允許訪問片上ROM,,同時(shí)將片上雙尋址RAM0~3(DARAM0~3)映射到程序空間的0x0080~0x7FFF,將雙尋址RAM4~7(DARAM4~7)映射到數(shù)據(jù)空間的0x8000~0xFFFF,。
  (2)時(shí)鐘方式寄存器(CLKMD)設(shè)置為0x97F7,使程序正常運(yùn)行在160MHz的最高工作頻率下,。
  (3)軟件等待狀態(tài)寄存器(SWWSR)設(shè)置為0x0000,,使數(shù)據(jù)、程序和I/O空間的訪問都工作在零等待狀態(tài),。
  (4)狀態(tài)寄存器1(ST1)設(shè)置為0x6980,,以滿足C程序運(yùn)行的需要,同時(shí)禁止所有可屏蔽中斷,。
2.3 水表號(hào)碼圖像采集與識(shí)別程序
  水表號(hào)碼圖像采集程序的設(shè)計(jì)思路為通過采用通用I/O口(GPIO)對(duì)圖像預(yù)處理電路轉(zhuǎn)換產(chǎn)生的行,、場(chǎng)同步信號(hào)以及像素時(shí)鐘等的查詢,將圖像數(shù)據(jù)準(zhǔn)確地存儲(chǔ)到指定的存儲(chǔ)空間[3],。


  每個(gè)水表號(hào)碼的大小約為50×70,,即3500個(gè)像素,水表字符框的高度為88個(gè)像素,,考慮到水表字輪經(jīng)常出現(xiàn)上下兩個(gè)字符各出現(xiàn)一部分的情況(圖2右側(cè)的數(shù)字6,、7部分),因此每個(gè)字符需要采集保存的實(shí)際高度應(yīng)為字符框的高度,,即88個(gè)像素,。而字符間距為60~70個(gè)像素,如圖3所示,。目前,,僅對(duì)水表后四位數(shù)字進(jìn)行采集便基本能滿足需要,如果直接對(duì)圖像進(jìn)行采集和保存,,則一幅水表號(hào)碼圖像需要400×88,,即35200(35.2K)個(gè)像素。但是系統(tǒng)本身的存儲(chǔ)空間非常有限,,可用數(shù)據(jù)空間只有40KB左右,,而識(shí)別算法在運(yùn)行過程中還需要隨時(shí)開辟相當(dāng)數(shù)量的存儲(chǔ)空間來存儲(chǔ)臨時(shí)變量和中間結(jié)果,因此不能直接對(duì)圖像進(jìn)行保存,。
  在設(shè)計(jì)采集程序時(shí)需要對(duì)讀入的圖像數(shù)據(jù)進(jìn)行選擇性的存儲(chǔ),,盡量只保存水表字輪號(hào)碼體部分,,而號(hào)碼體之間的冗余數(shù)據(jù)則盡量舍棄,以節(jié)省存儲(chǔ)空間,。根據(jù)水表字輪的特點(diǎn),,在數(shù)據(jù)采集過程中通過軟件處理去除相鄰數(shù)字間冗余信息后保存的圖像如圖2所示。
  目前采用的識(shí)別程序是一種基于結(jié)構(gòu)法的識(shí)別算法,,是根據(jù)數(shù)字本身結(jié)構(gòu)上所存在的特點(diǎn)編寫的,。本識(shí)別算法大體可分為定位、預(yù)處理,、識(shí)別,、結(jié)果輸出四部分。
  定位時(shí),,應(yīng)用號(hào)碼本身紋理特性,,即水平和垂直投影均有較明顯的峰谷峰性質(zhì)。首先進(jìn)行水平投影,,定位上下邊界,,縮小圖片面積;然后垂直投影,,定位每個(gè)字符的左右邊界,。預(yù)處理時(shí),采用適當(dāng)濾波算法,,濾除由污跡和采集芯片造成的噪聲,;區(qū)域分割過程中,為提高速度,,在光照一定的情況下,,采用固定閾值分割。
  識(shí)別時(shí),,依據(jù)水平垂直穿線次數(shù)和航程面積,,以及定位框的高寬比等多種特征的信息融合技術(shù),利用分叉判定樹對(duì)數(shù)字進(jìn)行識(shí)別,。例如,,數(shù)字1水平穿線均為1次,垂直高度遠(yuǎn)大于水平寬度,。
  針對(duì)水表字輪號(hào)碼隨時(shí)都有上下兩個(gè)號(hào)碼各出現(xiàn)一部分的情況,,可采用相鄰兩個(gè)號(hào)碼間的結(jié)構(gòu)特點(diǎn)進(jìn)行區(qū)分。
3 裝置設(shè)計(jì)過程中主要解決的技術(shù)問題
  (1)圖像采集部分采用的是將視頻解碼器數(shù)字?jǐn)?shù)據(jù)輸出直接與DSP的數(shù)據(jù)線相連,,而不是通常采用的在兩者之間增加一個(gè)FIFO(先入先出存儲(chǔ)器)進(jìn)行數(shù)據(jù)緩存的方法,。對(duì)電路進(jìn)行這樣的處理不僅節(jié)省了一個(gè)FIFO成本,更主要的是降低了系統(tǒng)復(fù)雜度,,提高了裝置的工作效率,。但這樣就相應(yīng)增加了圖像數(shù)據(jù)采集軟件的設(shè)計(jì)難度,。因?yàn)閿?shù)字?jǐn)?shù)據(jù)的輸出速度為13.5MHz,像素時(shí)鐘為27MHz,,而DSP工作頻率為160MHz,,DSP要實(shí)現(xiàn)對(duì)一個(gè)像素?cái)?shù)據(jù)的讀取首先要查詢各種同步信號(hào),然后才能讀取一個(gè)數(shù)據(jù),,而且在讀取數(shù)據(jù)時(shí)也要耗費(fèi)多個(gè)時(shí)鐘周期。此問題經(jīng)過不斷的軟件優(yōu)化和調(diào)試得到了解決,。
  (2)視頻解碼器初始化所需的I2C總線的實(shí)現(xiàn)問題,,較常用的方式是利用現(xiàn)成的帶I2C總線模塊的單片機(jī)實(shí)現(xiàn)。所采用的DSP本身沒有I2C總線模塊,,設(shè)計(jì)時(shí)也沒有增加一個(gè)帶I2C模塊的單片機(jī)方式,,而利用DSP的HPI(主機(jī)接口)口控制CPLD,模擬實(shí)現(xiàn)了I2C總線協(xié)議,。
  (3)針對(duì)水表字輪號(hào)碼存在相鄰號(hào)碼各出現(xiàn)一部分的情況,,編寫了專門的處理軟件。
  (4)遠(yuǎn)程抄表,,采用在每家住戶水表內(nèi)密封一個(gè)2cm×2cm×2cm的模擬攝像頭,,并利用一根電源線和一根信號(hào)線與主處理板相連。這樣,,主處理板可以對(duì)相連的所有用戶水表逐一進(jìn)行抄表記錄,。
  所開發(fā)的基于圖像處理和嵌入式技術(shù)的遠(yuǎn)程抄表裝置樣機(jī)已經(jīng)完成,目前運(yùn)行穩(wěn)定,,正確讀取率99%以上,。特別對(duì)于上下兩個(gè)水表字輪號(hào)碼各出現(xiàn)一部分的情況識(shí)別比較準(zhǔn)確,識(shí)別結(jié)果可通過LED直觀顯示,。
參考文獻(xiàn)

[1] 美國(guó)德州儀器(TI).TMS320VC5416 fixed-point digital signal processor data manual.Literature Number:SPRS095K,, March 1999-Revised September 2003.www.TI.com.
[2] 傘宏力,樊寧.一種用單片機(jī)驅(qū)動(dòng)線陣CCD的方法[J].沈陽工業(yè)大學(xué)學(xué)報(bào),,2005,,(1)
[3] YUAN W Q,ZHENG Ch Q.Paper currency recognition system based on DSP.International Electronic Elements,,2004.
[4] HUANG X M.The gathering and display system for digital image real-time.Study for computer,,1997,(2)
[4] 張健,,顏華,,董玉巖,等.電容層析成像投影數(shù)據(jù)的采集 系統(tǒng)設(shè)計(jì)[J].沈陽工業(yè)大學(xué)學(xué)報(bào),,2006,,(1)

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