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