<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 汽車電子 > 設(shè)計(jì)應(yīng)用 > 基于DSP的紙幣號(hào)碼識(shí)別系統(tǒng)

          基于DSP的紙幣號(hào)碼識(shí)別系統(tǒng)

          ——
          作者:苑瑋琦 鄭傳琴 時(shí)間:2007-02-08 來源:國外電子元器件 收藏
          1 引言

          近年來,錢幣、特別是紙幣被搶劫事件不斷發(fā)生,嚴(yán)重影響了社會(huì)治安,也使銀行在經(jīng)濟(jì)上受到了嚴(yán)重的損失。如果被搶劫的錢幣不能在市場上流通,將從一個(gè)方面抑制銀行搶劫事件的發(fā)生。其中一種解決方案是記錄每一捆紙幣的號(hào)碼,將被搶劫的建立一個(gè)數(shù)據(jù)庫。在貨幣流通市場提供一種自動(dòng)識(shí)別裝置,比如說與點(diǎn)鈔機(jī)結(jié)合,將貨幣號(hào)碼識(shí)別數(shù)據(jù)與被搶劫號(hào)碼數(shù)據(jù)庫比較,一旦有相同號(hào)碼出現(xiàn),便可確認(rèn)目前流通的錢幣為被搶劫的錢幣,從而限制其流通,同時(shí)也有利于搶劫案件的偵破。另外,由于的唯一性,通過識(shí)別紙幣上的號(hào)碼,可以幫助識(shí)別假幣。國外有一種驗(yàn)鈔打號(hào)機(jī),可以對(duì)典型的紙幣,比如美元、英鎊等進(jìn)行自動(dòng)識(shí)別和號(hào)碼打印,這種裝置的典型識(shí)別速度為1張/秒。不過還沒有點(diǎn)鈔機(jī)附帶號(hào)碼自動(dòng)識(shí)別裝置的文獻(xiàn)報(bào)道。

          近些年,國內(nèi)也有一些單位研制開發(fā)紙幣號(hào)碼自動(dòng)識(shí)別裝置,例如南京航空航天大學(xué)開發(fā)了一種基于的紙幣號(hào)碼識(shí)別系統(tǒng)[3],利用線陣CCD實(shí)現(xiàn)紙幣圖象的采集,利用實(shí)現(xiàn)號(hào)碼的定位與識(shí)別。其主要問題是難以提高號(hào)碼

          的識(shí)別速度。哈爾濱工業(yè)大學(xué)開發(fā)了一種基于的紙幣號(hào)碼識(shí)別系統(tǒng)[4],其識(shí)別速度為8張/秒,但該速度為在PC機(jī)上的仿真結(jié)果,實(shí)際樣機(jī)沒有實(shí)現(xiàn)。此外,該系統(tǒng)采用CIS(即接觸式線型圖象傳感器)獲得紙幣圖像信號(hào),存在傳感器磨損問題。

          針對(duì)以上情況,本文給出一種基于的紙幣號(hào)碼識(shí)別系統(tǒng),利用面陣CCD攝象機(jī)采集紙幣號(hào)碼圖象,即每秒采集25幅圖象,而目前的點(diǎn)鈔機(jī)點(diǎn)鈔速度為每秒十幾張左右,從而可以實(shí)現(xiàn)與點(diǎn)鈔機(jī)的配合使用。該系統(tǒng)由以下幾個(gè)部分組成:(1)利用Philip公司專業(yè)視頻解碼器SAA7113實(shí)現(xiàn)紙幣號(hào)碼圖像的數(shù)字化;(2)利用TI公司的數(shù)字信號(hào)處理器TMS320VC5410實(shí)現(xiàn)數(shù)字紙幣號(hào)碼圖像的采集和處理;(3)利用TI公司的異步串行接口芯片TL16C550完成整個(gè)系統(tǒng)與PC機(jī)之間的通信。

          2 硬件設(shè)計(jì)原理


          基于的紙幣號(hào)碼識(shí)別系統(tǒng)的工作原理:從面陣CCD攝像頭攝取的紙幣模擬視頻圖像,經(jīng)專業(yè)視頻解碼器轉(zhuǎn)換為數(shù)字圖像。數(shù)字視頻信號(hào)經(jīng)圖像緩存FIFO存入DSP的數(shù)據(jù)空間,作為后續(xù)圖像識(shí)別的數(shù)據(jù)來源。視頻解碼器同時(shí)分離出行場同步信號(hào)和象素時(shí)鐘參考信號(hào),作為圖像緩存模塊的控制信號(hào)。為了保存和記錄號(hào)碼,經(jīng)識(shí)別后的紙幣號(hào)碼數(shù)據(jù)存儲(chǔ)在快速閃爍存儲(chǔ)器FLASH中,或根據(jù)需要通過異步串口傳送給PC機(jī)。復(fù)雜可編程邏輯器件CPLD在整個(gè)系統(tǒng)中起到全局邏輯控制和對(duì)采集的紙幣圖像實(shí)現(xiàn)開窗處理的作用。系統(tǒng)的總體結(jié)構(gòu)框圖如圖1所示。

          系統(tǒng)的總體結(jié)構(gòu)框圖

          3 模塊

          3.1視頻解碼芯片SAA7113在系統(tǒng)中的應(yīng)用

          SAA7113是一種高集成度并且支持隔行掃描、多種數(shù)據(jù)輸出格式的視頻解碼器,內(nèi)置的I2C界面提供了簡單的對(duì)芯片內(nèi)部電路的控制功能。對(duì)SAA7113的控制主要包括對(duì)輸入模擬信號(hào)的預(yù)處理、色度和亮度的控制,輸出數(shù)據(jù)格式及輸出圖象同步信號(hào)的選擇控制等。

          在整個(gè)系統(tǒng)中對(duì)圖象的識(shí)別處理主要是針對(duì)灰度圖像進(jìn)行的,在SAA7113所提供的多種數(shù)據(jù)輸出格式中,RAW格式在8位輸出管腳上直接輸出與象素時(shí)鐘相對(duì)應(yīng)的象素灰度值,此種數(shù)據(jù)格式與其它格式相比對(duì)灰度圖像的采集將更直接。

          控制SAA7113

          SAA7113的輸出RTS0和RTS1是多功能復(fù)用管腳,通過對(duì)子地址寄存器SA12寫入不同的控制字,可將兩輸出管腳配置為行同步、幀同步、奇偶場同步等不同的信號(hào)。在本系統(tǒng)中將RTS0設(shè)置為行同步信號(hào),RTS1設(shè)置為場同步信號(hào),同時(shí)SAA7113還輸出象素時(shí)鐘的同步參考信號(hào)LLC。

          通過I2C總線協(xié)議對(duì)SAA7113的各個(gè)控制寄存器進(jìn)行設(shè)置,使其滿足系統(tǒng)要求。由于DSP芯片是處理型的器件,它的控制能力比較弱,通用I/O口比較少,而具有很好的控制功能,因此對(duì)SAA7113的初始化工作使用AT89C51單片機(jī)來完成。AT89C51單片機(jī)內(nèi)部無硬件I2C總線接口,在此將單片機(jī)的P1.0口設(shè)置為串行數(shù)據(jù)線SDA,P1.1設(shè)置為串行時(shí)鐘線SCL,通過軟件模擬I2C總線,對(duì)視頻解碼器SAA7113進(jìn)行初始化,其硬件原理如圖2所示。

          3.2使用CPLD實(shí)現(xiàn)對(duì)圖像的開窗處理

          利用象素時(shí)鐘LLC2和行同步信號(hào)HS實(shí)現(xiàn)行截取的VHDL程序:

          process(LLC2,HS)
          variable temp: std_logic_vector(10 downto 0);
          begin
          if(LLC2'event and LLC2='1') then
          if(HS='1' )? then? temp:=temp+'1';
          if(temp>80 and temp<241)
          then Href<='1';
          else Href<='0';
          end if; else Href<='0';
          end if; end if;
          end process;

          從SAA7113輸出的數(shù)字視頻圖像為整幅圖像,可是對(duì)識(shí)別有用的圖像大小為40x200,為減少圖像數(shù)據(jù)的存儲(chǔ)量和處理量。通過調(diào)整CCD攝像頭與點(diǎn)鈔機(jī)之間的位置,利用視頻解碼器的行、場同步信號(hào)HS、VS和象素時(shí)鐘參考信號(hào)LLC,使用VHDL語言,對(duì)感興趣的圖像區(qū)域進(jìn)行開窗處理。具體做法為:在場信號(hào)VS為高的期間,對(duì)行信號(hào)HS進(jìn)行計(jì)數(shù), 使感興趣的圖像期間的場信號(hào)輸出為高,在其它區(qū)域其場信號(hào)為低,這樣得到新的場信號(hào)VREF。與場截取相類,利用行信號(hào)HS和象素時(shí)鐘LLC2,得到新的行信號(hào)HREF。這樣通過兩個(gè)計(jì)數(shù)器實(shí)現(xiàn)了圖像的開窗處理。本文給出了對(duì)圖像進(jìn)行開窗處理的框圖,并給出了行截取的VHLD程序,對(duì)列的截取VHDL程序與行截取相類似。

          3.3利用DSP實(shí)現(xiàn)圖像的采集

          開窗框圖

          SAA7113上電初始化之后將一直處于工作狀態(tài),其象素時(shí)鐘參考信號(hào)LLC為27M

          Hz,為象素時(shí)鐘的二倍,即象素時(shí)鐘為13.5MHz。這么快的時(shí)鐘頻率如果直接進(jìn)行的話將出現(xiàn)數(shù)據(jù)丟失的現(xiàn)象。本文采用了先進(jìn)先出陣列FIFO作為圖像緩存,將圖像數(shù)據(jù)先存入FIFO中,通過DSP讀取FIFO中的圖像數(shù)據(jù),來完成圖像的采集。CCD攝像頭輸出PAL制,場頻為50Hz的視頻信號(hào),其行周期為64us,場周期為20ms。在本系統(tǒng)中圖像大小為40x200,通過示波器可看到截取后的場周期為2.56ms,而DSP的讀寫周期為10ns,通過DSP的讀寫程序所需時(shí)間大約為3ms左右,與點(diǎn)鈔機(jī)相連接,將有充足的時(shí)間實(shí)現(xiàn)圖像的采集。

          由于FIFO是沒有片選的,對(duì)FIFO控制主要是對(duì)其讀寫信號(hào)有效的控制。FIFO寫有效經(jīng)CPLD圖像截取后的行場同步信號(hào)以及象素時(shí)鐘信號(hào)來控制。在FIFO寫完一場圖像數(shù)據(jù)之后,利用半滿信號(hào)作為DSP的中斷信號(hào),通過中斷服務(wù)子程序?qū)D像數(shù)據(jù)存入DSP的數(shù)據(jù)空間作為識(shí)別處理的數(shù)據(jù)來源。對(duì)FIFO的讀控制通過將其映射到DSP的I/O空間來實(shí)現(xiàn),為了與其它器件進(jìn)行區(qū)分使用地址線A15和A14參與譯碼。當(dāng)FIFO的讀信號(hào)為高時(shí),數(shù)據(jù)總線為高阻狀態(tài),從而實(shí)現(xiàn)總線隔離。

           采集到的信號(hào)

          4 DSP存儲(chǔ)空間的設(shè)計(jì)

          DSP芯片由于其改進(jìn)的哈佛結(jié)構(gòu),處理速度快,特殊的DSP指令和快速地實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法的特點(diǎn),廣泛地應(yīng)用于各種圖像處理系統(tǒng)中。在本系統(tǒng)選用TMS320VC5410作為中央處理器,該芯片的讀寫周期為10ns,具有豐富的片上資源[2]。

          根據(jù)紙幣號(hào)碼圖像大小和號(hào)碼識(shí)別算法的要求,本系統(tǒng)在DSP外擴(kuò)了一片64Kx16的RAM,其中0x0000—0x3fff的存儲(chǔ)區(qū)映射到DSP的程序空間,0x8000—0xffff的存儲(chǔ)區(qū)映射到DSP的數(shù)據(jù)空間。同時(shí)外擴(kuò)了一片256Kx16的FLASH芯片SST39VF400A,根據(jù)DSP系統(tǒng)程序加載的特點(diǎn),將FLASH地址為0x8000—0xffff的存儲(chǔ)區(qū)在程序下載的過程中映射到DSP的數(shù)據(jù)空間,在程序加載的過程中映射到DSP的程序空間,其空間的區(qū)分通過DSP的通用I/O口XF來進(jìn)行控制。FLASH的地址為0x0000—0x7fff和0x10000—0x1ffff和0x20000—0x2ffff的存儲(chǔ)區(qū)映射到DSP的程序空間,作為識(shí)別的號(hào)碼結(jié)果的記錄存儲(chǔ)而用。

          5 利用TL16C550實(shí)現(xiàn)與PC機(jī)之間的通信

          調(diào)試及對(duì)號(hào)碼的算法調(diào)試中,為了檢驗(yàn)圖像效果,需將圖像在PC機(jī)中呈現(xiàn)出來。由于TMS320VC5410的串口是同步串行口,而與PC機(jī)通信卻是異步串行收發(fā),本文采用了異步串行收發(fā)器TL16C550來實(shí)現(xiàn)DSP與PC機(jī)之間的通信。TL16C550是TI公司生產(chǎn)的一種具有異步串行通信功能的大規(guī)模集成電路,通過對(duì)寄存器選擇輸入端A0、A1、A2的不同配置來實(shí)現(xiàn)對(duì)該器件的控制。

          在本系統(tǒng)中將其映射到DSP的I/O空間0x8000的地址,將DSP的地址線A2、A1、A0與550的寄存器選擇控制引腳A2、A1、A0相連,即通過對(duì)DSP的I/O空間地址為0x8000-0x8007的空間進(jìn)行寄存器的訪問。在TL16C550中接收和發(fā)送使用的是同一個(gè)中斷信號(hào)INTRPT,對(duì)數(shù)據(jù)的接收和發(fā)送通過使能不同的中斷,通過中斷方式實(shí)現(xiàn)系統(tǒng)與PC機(jī)之間的通信。

          6系統(tǒng)的軟件設(shè)計(jì)

          采用手工編寫的匯編語言程序雖然具有執(zhí)行速度快的優(yōu)點(diǎn),但用匯編語言編寫程序特別是識(shí)別算法的程序?qū)⑹潜容^費(fèi)時(shí)費(fèi)力的[4]。為了提高程序開發(fā)的效率,采用TMS320C54x的C語言進(jìn)行軟件開發(fā)[5]。整個(gè)系統(tǒng)的軟件流程圖如圖6所示:

          軟件流程圖

          目前字符識(shí)別的算法很多,有背景特征點(diǎn)法,模板匹配法,結(jié)構(gòu)特征分析判斷法,神經(jīng)網(wǎng)絡(luò)識(shí)別算法等。結(jié)構(gòu)特征分析判斷法從字符的結(jié)構(gòu)本身出發(fā),檢測號(hào)碼的結(jié)構(gòu)特征,具有快速分類的特點(diǎn),根據(jù)系統(tǒng)速度的要求,本文對(duì)采集到的號(hào)碼圖像就采用了此種識(shí)別算法來完成紙幣號(hào)碼的識(shí)別。

          7結(jié)束語

          本系統(tǒng)通過使用TI公司的數(shù)字信號(hào)處理器實(shí)現(xiàn)紙幣號(hào)碼的采集,使用Altera公司的復(fù)雜可編程邏輯器件CPLD實(shí)現(xiàn)對(duì)圖像的截取,圖像采集效果非常好。該系統(tǒng)除有通用圖像處理系統(tǒng)的功能外,特別適合動(dòng)態(tài)圖像的處理,具有極高的實(shí)時(shí)性。

          參考文獻(xiàn):

          1. TMS320C54X DSP Reference Set, Volume 1:CPU and Peripherals,Texas Instruments, http://www.ti.com,1999

          2. TMS320VC5410 Data book, Texas Instruments, http://www.ti.com,2000

          3. 劉建業(yè)等,紙幣號(hào)碼讀入識(shí)別系統(tǒng)的單片機(jī)實(shí)現(xiàn),工業(yè)控制計(jì)

          算機(jī),2002,15(1),69-71

          4. 張慶峰,基于DSP的紙幣號(hào)碼識(shí)別系統(tǒng)的研究,哈爾濱工業(yè)大學(xué)碩士學(xué)位論文,2003

          5. 劉益成等,TMS320C54X DSP應(yīng)用程序設(shè)計(jì)與開發(fā),北京航空航天大學(xué)出版社,2002

          6. 張勇等,C/C++語言硬件程序設(shè)計(jì),西安電子科技大學(xué)出版社,2003



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();