文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)04-0068-04
現(xiàn)今的抄表方式主要有兩種,第一種方式為人工抄表,不僅效率低,而且給用戶(hù)帶來(lái)諸多不便。第二種方式是利用遠(yuǎn)傳抄表系統(tǒng)進(jìn)行抄表,市場(chǎng)上目前有兩種水表遠(yuǎn)傳系統(tǒng)部分投入試用,一種是三表(水電煤氣)遠(yuǎn)傳抄表系統(tǒng),另一種是IC卡式水表[1]。這兩種產(chǎn)品由于維護(hù)量較大,價(jià)格高,且需要實(shí)時(shí)帶電工作,易造成停電漏記等問(wèn)題,推廣有一定難度。
本文提出了一種基于DSP的多路抄表系統(tǒng)。該系統(tǒng)以視頻解碼芯片和數(shù)字信號(hào)處理器DSP為主要核心,可實(shí)現(xiàn)對(duì)多路水表號(hào)碼的采集、識(shí)別及傳輸?shù)冗h(yuǎn)程抄表功能,每個(gè)水表讀數(shù)用時(shí)0.6 s,滿(mǎn)足實(shí)際需要。利用該系統(tǒng),抄表員不用挨家挨戶(hù)去手動(dòng)抄表,而是在一個(gè)地點(diǎn)將各用戶(hù)的水表號(hào)碼自動(dòng)抄寫(xiě),并保存在掌上電腦中。該系統(tǒng)克服了現(xiàn)有抄表系統(tǒng)的缺陷,屬于真正的直讀工作方式,而且無(wú)需24小時(shí)不間斷供電,無(wú)累計(jì)誤差,獲取水表表盤(pán)實(shí)際號(hào)碼的讀數(shù),可以方便用戶(hù)核對(duì)。
1 系統(tǒng)工作原理
抄表系統(tǒng)整體框圖如1所示。系統(tǒng)上電后,將固化在外部程序存儲(chǔ)器SPI中的系統(tǒng)程序下載到信號(hào)處理器內(nèi)部的隨機(jī)存儲(chǔ)器中,進(jìn)而系統(tǒng)可以完成各種初始化的操作流程。視頻解碼芯片通過(guò)I2C總線初始化后,將由圖像傳感器傳來(lái)的圖像模擬信號(hào)轉(zhuǎn)化為標(biāo)準(zhǔn)數(shù)字圖像信號(hào)送到數(shù)字信號(hào)處理器(DSP)中,然后再以DSP為主處理芯片,將采集到的圖像進(jìn)行識(shí)別處理。當(dāng)一路水表讀數(shù)識(shí)別完成后,通過(guò)多路轉(zhuǎn)換開(kāi)關(guān)切入到下一路水表進(jìn)行采集和識(shí)別,最終通過(guò)LCD液晶屏顯示識(shí)別結(jié)果,并將讀數(shù)通過(guò)射頻信號(hào)發(fā)生器傳到掌上電腦中,完成抄表功能。
2 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件設(shè)計(jì)主要包括圖像采集及識(shí)別模塊、多路轉(zhuǎn)換模塊、人機(jī)接口模塊及數(shù)據(jù)傳輸模塊四個(gè)部分。
2.1 圖像采集及識(shí)別模塊
圖像采集及識(shí)別模塊主要是由圖像傳感器、視頻解碼芯片及DSP組成。該模塊主要功能是將圖像的模擬信號(hào)轉(zhuǎn)換成DSP可接收得數(shù)字信號(hào),并在DSP內(nèi)完成對(duì)數(shù)字圖像的采集及識(shí)別過(guò)程。
系統(tǒng)中,圖像傳感器采用傳統(tǒng)的CMOS攝像頭,安放在水表表盤(pán)正上方。該傳感器通過(guò)一根電源線和一根視頻線與主處理板相連,輸出水表圖像的模擬信號(hào)。
視頻解碼芯片主要采用Philips公司的SAA7113H芯片。它可以將圖像傳感器輸出的模擬信號(hào)經(jīng)過(guò)放大、濾波、A/D轉(zhuǎn)換等過(guò)程[2]轉(zhuǎn)換成數(shù)字信號(hào)送入DSP中。同時(shí),它可從視頻信號(hào)中分離出場(chǎng)同步信號(hào)和行同步信號(hào),用于對(duì)圖像的采集。
SAA7113H芯片在上電后,必須由前端處理器DSP通過(guò)I2C串行總線對(duì)其內(nèi)部寄存器進(jìn)行初始化設(shè)置后,才能工作在系統(tǒng)所需狀態(tài)。I2C總線有兩條線路:串行數(shù)據(jù)線SDA和串行時(shí)鐘線SCL。系統(tǒng)設(shè)計(jì)中,將這兩條總線分別與DSP中的兩個(gè)I/O口相連,由軟件編程來(lái)模擬實(shí)現(xiàn)I2C總線的通信,完成對(duì)SAA7I13H寄存器的初始化操作。
考慮到DSP的性?xún)r(jià)比和市場(chǎng)應(yīng)用的份額,本系統(tǒng)采用的DSP為T(mén)MS329VC5509A,這款芯片屬于TI公司DSP中的5000系列。該芯片雖為定點(diǎn)運(yùn)算,但運(yùn)算速度及精度基本可以滿(mǎn)足本系統(tǒng)的需要,而且價(jià)格較為低廉。TMS320VC5509A的CPU的主時(shí)鐘能夠最高工作在200 MHz,有128 K×16 bit隨機(jī)讀寫(xiě)存儲(chǔ)器(16-bit words RAM)和32 K×16 bit只讀存儲(chǔ)器(16-bit words ROM)[3]。
由于TMS329VC5509A中可直接用于控制的I/O口較少,所以在系統(tǒng)設(shè)計(jì)中,將DSP上多通道緩沖串口1(MCBSP1)中的CLKR1和CLKX1引腳配置成通用I/O口,與視頻解碼器的行場(chǎng)輸出相連,用來(lái)檢測(cè)數(shù)字圖像信號(hào)的得行信號(hào)和場(chǎng)信號(hào),以保證采集時(shí)信號(hào)時(shí)序的正確和圖像的完整。MCBSP0中的DX0引腳配置成通用I/O口,為SAA7113H芯片提供使能信號(hào)。由于DSP 5000系列中沒(méi)有專(zhuān)門(mén)用于接收數(shù)字圖像信號(hào)的VP接口,所以在本系統(tǒng)中,圖像的數(shù)據(jù)信號(hào)是從DSP中的外部存儲(chǔ)接口(EMIF)的8根并行數(shù)據(jù)線D0~D7傳入DSP中的,并儲(chǔ)存在DSP內(nèi)部的內(nèi)存空間,整個(gè)的圖像的識(shí)別過(guò)程在DSP內(nèi)部進(jìn)行。DSP與視頻解碼芯片SAA3113H的邏輯連接圖如圖2所示。
2.2 多路轉(zhuǎn)換模塊
由于系統(tǒng)最終要實(shí)現(xiàn)多路水表讀數(shù)的采集與識(shí)別,所以在圖像傳感器與視頻解碼芯片之間設(shè)計(jì)了一個(gè)多路轉(zhuǎn)換開(kāi)關(guān),如圖3所示。該開(kāi)關(guān)主要采用芯片CD4051實(shí)現(xiàn),可用于圖像模擬信號(hào)的輸入、輸出。CD4051相當(dāng)于一個(gè)單刀八擲開(kāi)關(guān),可實(shí)現(xiàn)1路對(duì)8路的雙向輸入和輸出。開(kāi)關(guān)接通哪一通道,由其控制引腳所輸入的3位地址碼ABC來(lái)決定,本系統(tǒng)中地址碼由DSP的I/O口提供。目前用于調(diào)試的系統(tǒng)僅采用1個(gè)CD4051開(kāi)關(guān),可實(shí)現(xiàn)8路水表圖像的采集和識(shí)別。根據(jù)實(shí)際需要,利用多個(gè)該芯片的組合,可擴(kuò)展實(shí)現(xiàn)對(duì)16、32、64等多路水表的抄錄。
2.3 人機(jī)接口模塊
整個(gè)系統(tǒng)的人機(jī)操作接口包括一個(gè)3×4鍵盤(pán)和LCD顯示屏兩部分,以方便用戶(hù)對(duì)系統(tǒng)的操作和觀察。通過(guò)人機(jī)接口,可實(shí)現(xiàn)對(duì)水表的多路采集識(shí)別、單路采集識(shí)別、多路數(shù)據(jù)傳輸、單路數(shù)據(jù)傳輸、結(jié)果顯示等控制功能。系統(tǒng)中,LCD液晶顯示屏采用NEC公司的μPD161621P系列,鍵盤(pán)設(shè)計(jì)采用傳統(tǒng)矩陣鍵盤(pán)電路,這兩個(gè)部分都是通過(guò)DSP外擴(kuò)可編程邏輯器件(CPLD)實(shí)現(xiàn)。
2.4 數(shù)據(jù)傳輸模塊
水表號(hào)碼識(shí)別結(jié)束后,需要將數(shù)據(jù)進(jìn)行傳輸并保存。數(shù)據(jù)傳輸模塊包括232接口﹑射頻信號(hào)發(fā)生器和掌上電腦三部分。232接口是DSP通過(guò)CPLD和MAX232芯片擴(kuò)展實(shí)現(xiàn)。射頻信號(hào)發(fā)生器是一個(gè)集成模塊,3.3 V電源供電,是DSP和掌上電腦之間數(shù)據(jù)傳輸?shù)募~帶。水表數(shù)據(jù)通過(guò)232接口傳入射頻信號(hào)發(fā)生器中,并自動(dòng)以射頻信號(hào)的形式發(fā)射出去,傳輸速度為9 600波特率。掌上電腦可以視為一個(gè)射頻信號(hào)接收器,其內(nèi)核為ARM7,通過(guò)編程,可接收射頻信號(hào)發(fā)生器傳來(lái)的數(shù)據(jù)并保存。這樣抄表人員只需拿著掌上電腦就可接收各個(gè)水表的數(shù)據(jù)。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)主要包括DSP初始化程序、視頻解碼芯片初始化程序、號(hào)碼采集程序和號(hào)碼識(shí)別程序四部分。
3.1 DSP初始化程序
DSP初始化程序主要通過(guò)對(duì)DSP相應(yīng)功能寄存器的賦值,來(lái)實(shí)現(xiàn)對(duì)系統(tǒng)的初始化操作,以滿(mǎn)足系統(tǒng)工作時(shí)的要求。主要包括以下操作:
(1)配置時(shí)鐘發(fā)生器的寄存器CLKMD,地址為0x1C00,對(duì)其賦值為0x2813,使系統(tǒng)工作在192 MHz頻率下。
(2) 配置DSP中CMD文件,分配內(nèi)存空間。中斷向量表定義在0x200,程序存儲(chǔ)空間為0x2300~0x0ff0,數(shù)據(jù)存儲(chǔ)空間為0x12200~0x40000。圖像定義在固定的地址0x22200下,以方便調(diào)試時(shí)對(duì)采集的圖片進(jìn)行查看。
(3) 配置DSP狀態(tài)寄存器ST1,地址為0x0003,設(shè)置值為0x6900,關(guān)閉系統(tǒng)可屏蔽中斷。
(4) 將DSP中EMIF控制寄存器設(shè)置為與Synchronous Sdram相連接的模式,并且將EMIF工作模式寄存器EBSR(地址為0x6C00)的Parallel Port位置為0,代表當(dāng)前工作狀態(tài)為DATA EMIF MODE[4],為圖像數(shù)據(jù)信號(hào)采集做好相關(guān)配置。
3.2 視頻解碼器初始化
該程序主要是對(duì)SAA7113H芯片進(jìn)行初始化操作,對(duì)其片上功能寄存器的讀寫(xiě)完全按照I2C總線協(xié)議形式完成。通信時(shí),采用I2C工作模式中的從接收模式,DSP作為主設(shè)備,視頻解碼器作為從設(shè)備(地址為0x4A),數(shù)據(jù)傳輸采用8位尋址數(shù)據(jù)格式。由于程序比較繁瑣,本文沒(méi)有列出具體程序清單。SAA7113H主要功能寄存器配置[5]如表1所示。
3.3 號(hào)碼采集程序
一幅圖像的視頻信號(hào)分為場(chǎng)信號(hào)和行信號(hào)。場(chǎng)信號(hào)為一幀圖像到來(lái)的標(biāo)志,行信號(hào)為圖像每行像素到來(lái)的標(biāo)志。號(hào)碼采集程序的主要思路就是通過(guò)對(duì)視頻信號(hào)中行信號(hào)﹑場(chǎng)信號(hào)的查詢(xún),將圖像準(zhǔn)確地存入到DSP的內(nèi)存空間中。采集程序流程圖如圖4所示。
3.4 號(hào)碼識(shí)別程序
號(hào)碼識(shí)別算法主要采用傳統(tǒng)的模板匹配法。模板為0~9單字符模板,每個(gè)大小為67×31,字符部分為1,背景部分為0,存儲(chǔ)在DSP內(nèi)部的存儲(chǔ)空間。將待識(shí)別字符與10個(gè)相應(yīng)模板進(jìn)行匹配運(yùn)算,找出匹配度最好一組,輸出相應(yīng)數(shù)值,即為待識(shí)別號(hào)碼。
識(shí)別程序中,半字符的識(shí)別是該段程序的難點(diǎn),編寫(xiě)了相應(yīng)的處理算法,具體思路如下:對(duì)于分割后的單字符圖像,首先要進(jìn)行整字符和半字符的判別,其依據(jù)為二值化后的半字符圖像,會(huì)有3~4行連續(xù)的白像素點(diǎn),而整字符則沒(méi)有。利用這一特點(diǎn),可以進(jìn)行整、半字符的判斷,進(jìn)而生成相應(yīng)模板,完成匹配識(shí)別。例如當(dāng)待識(shí)別字符為整字符時(shí),進(jìn)行匹配時(shí)所用的0~9單字符模板不變。當(dāng)待識(shí)別字符為半字符時(shí),需計(jì)算待識(shí)別字符中,上下字符分別占整體圖像的比例大小,利用這一比例和0~9單字符模板,生成10個(gè)新的半字符模板,完成模板匹配識(shí)別。相應(yīng)匹配過(guò)程和程序流程圖分別如圖6、圖7所示。
4 實(shí)驗(yàn)結(jié)果
目前,該系統(tǒng)的調(diào)試樣機(jī)已經(jīng)完成,系統(tǒng)運(yùn)行穩(wěn)定,識(shí)別率達(dá)99%以上。利用該系統(tǒng)可完成多路水表讀數(shù)識(shí)別、單路水表讀數(shù)識(shí)別、多路水表數(shù)據(jù)傳輸、單路水表數(shù)據(jù)傳輸,水表讀數(shù)顯示等功能。
本文設(shè)計(jì)了一種基于DSP的多路抄表系統(tǒng),可實(shí)現(xiàn)對(duì)多路、單路水表讀數(shù)的遠(yuǎn)程自動(dòng)抄錄,針對(duì)水表中出現(xiàn)的半字符情況,給出了相應(yīng)的識(shí)別方法。雖然系統(tǒng)現(xiàn)在還不夠完善(如識(shí)別速度略慢),但它的設(shè)計(jì)為日后系統(tǒng)的優(yōu)化提供了一定基礎(chǔ),為今后抄表方式提供了一個(gè)新的參考方向。
參考文獻(xiàn)
[1] 王靜爽,曹爾曄. 智能IC卡水表電控系統(tǒng)[J].電子技術(shù)應(yīng)用,2002,28(5):16-17.
[2] 溫賀平, 戴青云, 劉志鑫. 利用 I2C總線實(shí)現(xiàn) DSP對(duì)SAA7113H的配置[J]. 儀器儀表用戶(hù),2009(11):91-92.
[3] 美國(guó)德州儀器(TI). TMS320VC5509A fixed-point digital signal processor[Z]. 2000.
[4] 陳泰紅,任勝杰,魏宇.手把手教你學(xué)DSP[M]. 北京: 北京航空航天大學(xué)出版社, 2011.
[5] Philips Semiconductors. SAA7113H 9 bit video input processor[Z]. 1999.