摘 要: 本文給出一種基于TMS320VC5416 DSP的點鈔機人民幣號碼識別記錄系統(tǒng)。在使用相對低檔、廉價的DSP芯片作為處理器的情況下,實現(xiàn)了每秒15張人民幣號碼的在線識別記錄功能,并具有長期保存且系統(tǒng)掉電不丟失號碼數(shù)據(jù)功能以及接口傳輸數(shù)據(jù)功能。
關鍵詞: DSP TMS320VC5416 點鈔機 號碼識別
人民幣、特別是大面額紙幣搶劫事件通常涉及金額巨大,不僅使國家、個人以及金融機構遭受嚴重經(jīng)濟損失,而且也一直是影響社會治安,危害社會穩(wěn)定的重要因素。如果根據(jù)人民幣號碼的惟一性,在紙幣出入庫時記錄人民幣號碼,當發(fā)現(xiàn)目前流通的幣碼與被搶幣碼相一致時,則限制其流通,并為搶劫案件的偵破提供線索,同時也對搶劫案犯產(chǎn)生震懾作用。因此有必要在貨幣流通市場提供一種便攜式人民幣號碼自動識別記錄裝置。
該裝置要求在點鈔機上實現(xiàn)對人民幣號碼的在線采集和識別,顯而易見系統(tǒng)實現(xiàn)的前提是準確無誤的采集到清晰的人民幣號碼數(shù)字圖像數(shù)據(jù)。根據(jù)當前點鈔機每秒10張~15張的運行速度,要求圖像采集的速度也應該在此范圍內(nèi)。另外由于系統(tǒng)應用于金融等機構,并為警方提供重大案件的線索,因此要求所記錄的幣碼須準確無誤,要求性能必須可靠,識別率應盡可能高。還由于點鈔機機身體積的限制,要求圖像采集電路必須盡可能的小。此外由于存儲空間有限,也為了提高識別速度以便與點鈔機同步,因此還必須對獲取的圖像進行開窗處理,控制所采集有效數(shù)字圖像的大小。
目前已經(jīng)有用100MHz單片機完成的紙幣號碼在線識別記錄系統(tǒng),速度最大可以達到15張/秒,但單片機存儲空間非常有限,而且不易擴展,工作頻率也很難提高,因此難以對系統(tǒng)進行進一步的升級。目前數(shù)字信號處理器DSP不僅具有更高的工作頻率,較大的在片存儲空間,而且價格已與單片機無異,甚至更低。TI公司的54X系列中的TMS320VC5416不僅工作頻率已經(jīng)達到160MHz,還具有128K×16bit" title="16bit">16bit的片上" title="片上">片上RAM[1],完全能夠滿足系統(tǒng)需要,避免了外擴存儲器,而且價格低廉,通過對比其它型號的DSP,本系統(tǒng)選用了VC5416(160MHz)。
1 系統(tǒng)基本結構和工作原理
1.1 系統(tǒng)結構
點鈔機人民幣號碼識別記錄系統(tǒng)主要有三大部分組成,即:圖像采集模塊、DSP處理模塊、通信模塊。系統(tǒng)框圖如圖1所示。
1.2 系統(tǒng)工作原理
攝像頭將光信號感應到圖像傳感器OV7620的圖像陣列(image array),然后圖像傳感器OV7620將感應到的光信號轉(zhuǎn)換為模擬視頻信號。該模擬視頻信號在圖像傳感器OV7620內(nèi)部經(jīng)過放大、抗混疊濾波后,再經(jīng)A/D轉(zhuǎn)換為數(shù)字信號,同時產(chǎn)生行場同步信號" title="同步信號">同步信號和像素時鐘。最后數(shù)字圖像數(shù)據(jù)從圖像傳感器OV7620的視頻輸出口輸出,同時輸出與每個像素數(shù)據(jù)相對應的行場同步信號和像素時鐘。
然后,TMS320VC5416查詢并根據(jù)圖像傳感器OV7620行、場同步信號和像素時鐘的狀態(tài)將圖像傳感器提供的數(shù)字圖像數(shù)據(jù)準確的保存到系統(tǒng)數(shù)據(jù)存儲器中。采集并保存完一幅人民幣號碼圖像后,在點鈔機系統(tǒng)同步信號的協(xié)調(diào)下對采集完的號碼圖像進行二值化、細化等預處理操作,然后根據(jù)英文字符和數(shù)字字符的結構對號碼圖像進行識別處理,并將識別結果保存到指定的存儲位置,同時通過LED顯示識別結果。采集并識別完一幅號碼圖像后,馬上就對下一張人民幣號碼進行采集、識別、傳輸和保存。當放到點鈔機的人民幣依次通過點鈔機后,所有人民幣號碼便全部被識別并記錄下來,然后通過串口傳輸給PC機保存。
1.3 系統(tǒng)電路圖
系統(tǒng)電路圖如圖2所示。
2 VC5416所解決的關鍵問題
2.1 系統(tǒng)有限存儲空間同數(shù)字圖像處理大數(shù)據(jù)量問題的解決
在模擬圖像轉(zhuǎn)換為數(shù)字圖像以后,一方面為了保證有效數(shù)字圖像質(zhì)量及保證系統(tǒng)識別的精度,另一方面還必須嚴格控制數(shù)字圖像的大小,即只存儲有效數(shù)字圖像,剔除冗余圖像數(shù)據(jù)。根據(jù)這樣的原則,同時根據(jù)當前人民幣號碼10個字符長寬等方面的特點,VC5416在存儲前端采集電路傳輸過來的數(shù)字號碼圖像數(shù)據(jù)時只保存包括人民幣號碼在內(nèi)的200×40大小的數(shù)字圖像數(shù)據(jù)。這樣每幅圖像只占據(jù)不到8KW的存儲空間。
所采集的200×40人民幣號碼圖像如圖3所示。
另外,還對人民幣號碼識別算法" title="識別算法">識別算法進行了簡化和優(yōu)化處理,一方面保證對號碼識別的準確,另一方面盡可能的節(jié)省存儲空間。目前所采用的識別程序只有16K×16bit大小。
此外,系統(tǒng)所采用的識別算法是基于結構法,不需要類似模板等占據(jù)的存儲空間,相對于模板匹配法識別算法可以節(jié)省很多空間。
最后,所采用的識別算法是對所采集的每幅號碼圖像進行實時識別處理,因此同一時間內(nèi)在系統(tǒng)的有效存儲空間中只存在一幅8K×16bit的數(shù)字號碼圖像。
綜上所述,VC5416的片上128K×16bit的RAM完全能夠滿足系統(tǒng)對存儲空間的需要,此外片上RAM運行速度相對外RAM更加快速可靠。
具體空間分配設計如下[1]:
將處理器模式狀態(tài)寄存器PMST設置為0xAC,使中斷向量表重定位到0x0080,并且允許訪問片上ROM,同時將片上雙尋址RAM0-3(DARAM0-3)映射到程序空間的0x0080-0x7FFF,將雙尋址RAM4-7(DARAM4-7)映射到數(shù)據(jù)空間的0x8000-0xFFFF。
程序為:*(volatile int*)PMST=0x00AC;
2.2 圖像處理速度問題
目前,點鈔機的運行速度為10張/秒~15張/秒。因此在點鈔機運行過程中,每兩張人民幣運動的時間間隔為100ms~66ms。
系統(tǒng)所采用的160MHz的VC5416的指令周期為6.25ns。由于人民幣號碼圖像采集電路映射在VC5416的I/O" title="I/O">I/O空間,因此將對I/O空間的訪問設置在零等待狀態(tài),那么采集一幅200×40的號碼圖像的時間為10ms。而所采用的識別算法識別一幅號碼圖像耗時40ms~50ms,即每采集和識別一幅人民幣號碼圖像需時50ms~60ms,小于兩張人民幣移動的時間間隔,因此在點鈔機運行過程中完全能夠?qū)崟r實現(xiàn)對人民幣號碼的采集和識別。
具體速度設計如下[1]:
(1)時鐘方式寄存器CLKMD設置為0x97F7,使程序運行在160MHz的工作頻率下。
程序為:*(volatile int*)CLKMD=0x97F7;
(2)軟件等待狀態(tài)寄存器SWWSR設置為0x0000,使數(shù)據(jù)、程序和I/O空間的訪問都工作在零等待狀態(tài),以提高訪問的速度。
程序為:*(volatile int*)SWWSR=0x0000;
2.3 識別記錄系統(tǒng)與點鈔機運行的同步處理
點鈔機上增加了一個用來感測連續(xù)兩張人民幣縫隙的光電門,當點鈔機每移動一張人民幣時光電門可以發(fā)出一個脈沖信號。該脈沖信號可以用來作為圖像傳感器捕獲人民幣號碼圖像的同步信號。該識別記錄系統(tǒng)在點鈔機光電門發(fā)出的脈沖同步信號的作用下通過圖像傳感器拍攝每一張人民幣號碼圖像。
2.4 保持所采集數(shù)字號碼圖像數(shù)據(jù)完整性的問題
要徹底實現(xiàn)系統(tǒng)的功能,保持所采集的數(shù)字號碼圖像的完整性,即各像素空間相對位置的正確也是必須要解決的問題,否則識別算法根本無法工作。
由于前端號碼采集電路在輸出數(shù)字圖像數(shù)據(jù)的同時也提供了對應圖像數(shù)據(jù)的行場同步信號和像素時鐘等視頻定時信號,因此在這些視頻定時信號的控制下可以達到保持所采集數(shù)字號碼圖像完整性的目的。
具體設計:本系統(tǒng)是將HPI口設置為GPIO(通用I/O口)來檢測視頻定時信號,從而保持圖像的完整性。首先,設置HPIENA引腳為低,使HPI口工作在GPIO模式下。其次,通過設置MMR中的GPIOCR(通用I/O控制寄存器)相關位的狀態(tài),使HPI的數(shù)據(jù)線HD7、HD6、HD5為輸入模式。最后,通過判斷MMR中的GPIOSR(通用I/O狀態(tài)寄存器)相關位的值來判斷圖像傳感器行場同步信號和像素時鐘的狀態(tài)[1]。
程序為:
*(volatile int*)GPIOCR=0xE2;
do
{
m=*(volatile int*)GPIOSR;
m=m&0x0080;
}while(!m);//判斷行同步信號
其它程序略同。
2.5 圖像傳感器與DSP的接口
(1)圖像傳感器初始化接口SCCB總線的實現(xiàn)
要完成對OV7620的初始化,就必須首先實現(xiàn)SCCB總線協(xié)議。在本系統(tǒng)中,通過將DSP的HPI口的HD5、HD6設置為GPIO口[1]分別模擬SIO-C和SIO-D,從而編程實現(xiàn)了SCCB總線協(xié)議,進而完成對OV7620的初始化。編程過程中必須滿足時序要求,并嚴格符合協(xié)議規(guī)則[5]。
(2)數(shù)據(jù)線隔離[3]
由于圖像傳感器沒有選通信號,因此本系統(tǒng)采用了(接上頁)
信號隔離措施,以避免產(chǎn)生數(shù)據(jù)總線競爭。信號隔離采用的是74ALVCH16245,映射在DSP的I/O空間,用于連接數(shù)據(jù)采集電路和數(shù)據(jù)處理電路。
2.6 數(shù)據(jù)存儲
為了防止識別結果掉電丟失,系統(tǒng)采用快速閃爍存儲器Flash Rom用于保存識別后尚未傳輸和有效保存的幣碼數(shù)據(jù)。此外Flash Rom還用于保存系統(tǒng)程序,當每次上電時將系統(tǒng)程序在DSP的干預下下載到系統(tǒng)的快速ROM中。
2.7 數(shù)據(jù)顯示
通過增加LED號碼顯示電路可以非常直觀的將每張人民幣的號碼識別結果實時顯示出來,從而可以方便的驗證識別正確與否。
本系統(tǒng)采用TI公司的TMS320VC5416-160型DSP作為處理器,通過適當?shù)拇鎯臻g的管理,解決了存儲空間緊張的問題,避免了外擴存儲器;通過處理速度的設計和識別算法的選擇和優(yōu)化等措施解決了號碼圖像采集和識別速度問題;通過在點鈔機增加一個光電門,解決了識別記錄系統(tǒng)與點鈔機系統(tǒng)的同步運行問題;通過Flash Rom實現(xiàn)了識別結果的長久保存和系統(tǒng)的在線運行。
參考文獻
1 TMS320VC5416 fixed-point digital signal processor.www.ti.com.2000
2 OV7620 Single-Chip CMOS VGA Color Digital Camera Data Manual,Version 2.1,7 10,2001.www.ovt.com
3 林成武.數(shù)字信號處理器原理與應用.沈陽:遼寧科學技術出版社,2001
4 史曉鋒,李 錚,蔡志權.基于DSP的高速數(shù)據(jù)采集與處理系統(tǒng).電子技術應用,2001;(6):78~80
5 OmniVision Serial Camera Control Bus (SCCB) Functional Specification,Document Version:2.1.www.ovt.com