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