鉅大LARGE | 點擊量:930次 | 2020年02月04日
基于DSP的紙幣號碼識別系統
摘要:本文給出并實現了一種基于DSp的紙幣號碼識別系統。該系統通過視頻解碼器SAA7113將紙幣號碼圖像轉換成數字圖像,并通過復雜可編程邏輯器件CpLD對SAA7113輸出的數字圖像進行開窗處理,以減小DSp的圖像數據處理量和存儲量。該系統的特點是在采用TI公司較廉價的54x系列DSp條件下,可以實現每秒25幅號碼圖象的視頻采集速度,為實現具有紙幣號碼自動識別記錄功能的點鈔機奠定了基礎。此外,該系統還提供了與pC機通信的異步串行接口。
1引言
近年來,錢幣、特別是紙幣被搶劫事件不斷發生,嚴重影響了社會治安,也使銀行在經濟上受到了嚴重的損失。如果被搶劫的錢幣不能在市場上流通,將從一個方面抑制銀行搶劫事件的發生。其中一種解決方案是記錄每一捆紙幣的號碼,將被搶劫的紙幣號碼建立一個數據庫。在貨幣流通市場提供一種紙幣號碼自動識別裝置,比如說與點鈔機結合,將貨幣號碼識別數據與被搶劫號碼數據庫比較,一旦有相同號碼出現,便可確認目前流通的錢幣為被搶劫的錢幣,從而限制其流通,同時也有利于搶劫案件的偵破。另外,由于紙幣號碼的唯一性,通過識別紙幣上的號碼,可以幫助識別假幣。國外有一種驗鈔打號機,可以對典型的紙幣,比如美元、英鎊等進行自動識別和號碼打印,這種裝置的典型識別速度為1張/秒。不過還沒有點鈔機附帶號碼自動識別裝置的文獻報道。
近些年,國內也有一些單位研制開發紙幣號碼自動識別裝置,例如南京特種航天大學開發了一種基于單片機的紙幣號碼識別系統[3],利用線陣CCD實現紙幣圖象的采集,利用單片機實現號碼的定位與識別。其主要問題是難以提高號碼的識別速度。哈爾濱工業大學開發了一種基于DSp的紙幣號碼識別系統[4],其識別速度為8張/秒,但該速度為在pC機上的仿真結果,實際樣機沒有實現。此外,該系統采用CIS(即接觸式線型圖象傳感器)獲得紙幣圖像信號,存在傳感器磨損問題。
針對以上情況,本文給出一種基于DSp的紙幣號碼識別系統,利用面陣CCD攝象機采集紙幣號碼圖象,即每秒采集25幅圖象,而目前的點鈔機點鈔速度為每秒十幾張左右,從而可以實現與點鈔機的配合使用。該系統由以下幾個部分組成:(1)利用philip公司專業視頻解碼器SAA7113實現紙幣號碼圖像的數字化;(2)利用TI公司的數字信號處理器TMS320VC5410實現數字紙幣號碼圖像的采集和處理;(3)利用TI公司的異步串行接口芯片TL16C550完成整個系統與pC機之間的通信。
2硬件設計原理
基于DSp的紙幣號碼識別系統的工作原理:從面陣CCD攝像頭攝取的紙幣模擬視頻圖像,經專業視頻解碼器轉換為數字圖像。數字視頻信號經圖像緩存FIFO存入DSp的數據空間,作為后續圖像識別的數據來源。視頻解碼器同時分離出行場同步信號和象素時鐘參考信號,作為圖像緩存模塊的控制信號。為了保存和記錄號碼,經識別后的紙幣號碼數據存儲在快速閃爍存儲器FLASH中,或根據需要通過異步串口傳送給pC機。復雜可編程邏輯器件CpLD在整個系統中起到全局邏輯控制和對采集的紙幣圖像實現開窗處理的作用。系統的總體結構框圖如圖1所示。
3圖像采集模塊
3.1視頻解碼芯片SAA7113在系統中的應用
SAA7113是一種高集成度并且支持隔行掃描、多種數據輸出格式的視頻解碼器,內置的I2C界面提供了簡單的對芯片內部電路的控制功能。對SAA7113的控制主要包括對輸入模擬信號的預處理、色度和亮度的控制,輸出數據格式及輸出圖象同步信號的選擇控制等。
在整個系統中對圖象的識別處理主要是針對灰度圖像進行的,在SAA7113所提供的多種數據輸出格式中,RAW格式在8位輸出管腳上直接輸出與象素時鐘相對應的象素灰度值,此種數據格式與其它格式相比對灰度圖像的采集將更直接。
SAA7113的輸出RTS0和RTS1是多功能復用管腳,通過對子地址寄存器SA12寫入不同的控制字,可將兩輸出管腳配置為行同步、幀同步、奇偶場同步等不同的信號。在本系統中將RTS0設置為行同步信號,RTS1設置為場同步信號,同時SAA7113還輸出象素時鐘的同步參考信號LLC。
通過I2C總線協議對SAA7113的各個控制寄存器進行設置,使其滿足系統要求。由于DSp芯片是處理型的器件,它的控制能力比較弱,通用I/O口比較少,而單片機具有很好的控制功能,因此對SAA7113的初始化工作使用AT89C51單片機來完成。AT89C51單片機內部無硬件I2C總線接口,在此將單片機的p1.0口設置為串行數據線SDA,p1.1設置為串行時鐘線SCL,通過軟件模擬I2C總線,對視頻解碼器SAA7113進行初始化,其硬件原理如圖2所示。
3.2使用CpLD實現對圖像的開窗處理
利用象素時鐘LLC2和行同步信號HS實現行截取的VHDL程序:
process(LLC2,HS)
variabletemp:std_logic_vector(10downto0);
begin
if(LLC2'eventandLLC2='1')then
if(HS='1')thentemp:=temp+'1';
if(temp>80andtemp<241)
thenHref<='1';
elseHref<='0';
endif;elseHref<='0';
endif;endif;
endprocess;
從SAA7113輸出的數字視頻圖像為整幅圖像,可是對識別有用的圖像大小為40x200,為減少圖像數據的存儲量和處理量。通過調整CCD攝像頭與點鈔機之間的位置,利用視頻解碼器的行、場同步信號HS、VS和象素時鐘參考信號LLC,使用VHDL語言,對感興趣的圖像區域進行開窗處理。具體做法為:在場信號VS為高的期間,對行信號HS進行計數,使感興趣的圖像期間的場信號輸出為高,在其它區域其場信號為低,這樣得到新的場信號VREF。與場截取相類,利用行信號HS和象素時鐘LLC2,得到新的行信號HREF。這樣通過兩個計數器實現了圖像的開窗處理。本文給出了對圖像進行開窗處理的框圖,并給出了行截取的VHLD程序,對列的截取VHDL程序與行截取相類似。
3.3利用DSp實現圖像的采集
SAA7113上電初始化之后將一直處于工作狀態,其象素時鐘參考信號LLC為27MHz,為象素時鐘的二倍,即象素時鐘為13.5MHz。這么快的時鐘頻率如果直接進行圖像采集的話將出現數據丟失的現象。本文采用了先進先出陣列FIFO作為圖像緩存,將圖像數據先存入FIFO中,通過DSp讀取FIFO中的圖像數據,來完成圖像的采集。CCD攝像頭輸出pAL制,場頻為50Hz的視頻信號,其行周期為64us,場周期為20ms。在本系統中圖像大小為40x200,通過示波器可看到截取后的場周期為2.56ms,而DSp的讀寫周期為10ns,通過DSp的讀寫程序所需時間大約為3ms左右,與點鈔機相連接,將有充足的時間實現圖像的采集。
由于FIFO是沒有片選的,對FIFO控制主要是對其讀寫信號有效的控制。FIFO寫有效經CpLD圖像截取后的行場同步信號以及象素時鐘信號來控制。在FIFO寫完一場圖像數據之后,利用半滿信號作為DSp的中斷信號,通過中斷服務子程序將圖像數據存入DSp的數據空間作為識別處理的數據來源。對FIFO的讀控制通過將其映射到DSp的I/O空間來實現,為了與其它器件進行區分使用地址線A15和A14參與譯碼。當FIFO的讀信號為高時,數據總線為高阻狀態,從而實現總線隔離。
4DSp存儲空間的設計
DSp芯片由于其改進的哈佛結構,處理速度快,特殊的DSp指令和快速地實現各種數字信號處理算法的特點,廣泛地應用于各種圖像處理系統中。在本系統選用TMS320VC5410作為中央處理器,該芯片的讀寫周期為10ns,具有豐富的片上資源[2]。
根據紙幣號碼圖像大小和號碼識別算法的要求,本系統在DSp外擴了一片64Kx16的RAM,其中0x0000—0x3fff的存儲區映射到DSp的程序空間,0x8000—0xffff的存儲區映射到DSp的數據空間。同時外擴了一片256Kx16的FLASH芯片SST39VF400A,根據DSp系統程序加載的特點,將FLASH地址為0x8000—0xffff的存儲區在程序下載的過程中映射到DSp的數據空間,在程序加載的過程中映射到DSp的程序空間,其空間的區分通過DSp的通用I/O口XF來進行控制。FLASH的地址為0x0000—0x7fff和0x10000—0x1ffff和0x20000—0x2ffff的存儲區映射到DSp的程序空間,作為識別的號碼結果的記錄存儲而用。
5利用TL16C550實現與pC機之間的通信
在圖像采集調試及對號碼的算法調試中,為了檢驗圖像效果,需將圖像在pC機中呈現出來。由于TMS320VC5410的串口是同步串行口,而與pC機通信卻是異步串行收發,本文采用了異步串行收發器TL16C550來實現DSp與pC機之間的通信。TL16C550是TI公司生產的一種具有異步串行通信功能的大規模集成電路,通過對寄存器選擇輸入端A0、A1、A2的不同配置來實現對該器件的控制。
在本系統中將其映射到DSp的I/O空間0x8000的地址,將DSp的地址線A2、A1、A0與550的寄存器選擇控制引腳A2、A1、A0相連,即通過對DSp的I/O空間地址為0x8000-0x8007的空間進行寄存器的訪問。在TL16C550中接收和發送使用的是同一個中斷信號INTRpT,對數據的接收和發送通過使能不同的中斷,通過中斷方式實現系統與pC機之間的通信。
6系統的軟件設計
采用手工編寫的匯編語言程序雖然具有執行速度快的優點,但用匯編語言編寫程序特別是識別算法的程序將是比較費時費力的[4]。為了提高程序開發的效率,采用TMS320C54x的C語言進行軟件開發[5]。整個系統的軟件流程圖如圖6所示:
目前字符識別的算法很多,有背景特征點法,模板匹配法,結構特征分析判斷法,神經網絡識別算法等。結構特征分析判斷法從字符的結構本身出發,檢測號碼的結構特征,具有快速分類的特點,根據系統速度的要求,本文對采集到的號碼圖像就采用了此種識別算法來完成紙幣號碼的識別。
7結束語
本系統通過使用TI公司的數字信號處理器實現紙幣號碼的采集,使用Altera公司的復雜可編程邏輯器件CpLD實現對圖像的截取,圖像采集效果非常好。該系統除有通用圖像處理系統的功能外,特別適合動態圖像的處理,具有極高的實時性。
參考文獻:
1.TMS320C54XDSpReferenceSet,Volume1:CpUandperipherals,TexasInstruments,http://www.ti.com,1999
2.TMS320VC5410Databook,TexasInstruments,http://www.ti.com,2000
3.劉建業等,紙幣號碼讀入識別系統的單片機實現,工業控制計算機,2002,15(1),69-71
4.張慶峰,基于DSp的紙幣號碼識別系統的研究,哈爾濱工業大學碩士學位論文,2003
5.劉益成等,TMS320C54XDSp應用程序設計與開發,北京特種航天大學出版社,2002
6.張勇等,C/C++語言硬件程序設計,西安電子科技大學出版社,2003
技術專區慕展上,世強帶來的SiC、GaN、三電平讓你的效率直達最high點如何利用二級輸出濾波器防止開關電源噪聲陶瓷垂直貼裝封裝(CVMp)的焊接注意事項及布局DC-DC轉換器的平均小信號數學建模及環路補償設計常用基準穩壓電源產生辦法有哪些?