??? 摘 要: 介紹一種以高速的DSP芯片TMS320VC5402為平臺對指紋圖像進(jìn)行實(shí)時(shí)處理的指紋識別系統(tǒng),用USB接口芯片" title="接口芯片">接口芯片與主機(jī)進(jìn)行通信。介紹了系統(tǒng)的硬件、固件" title="固件">固件,、設(shè)備驅(qū)動(dòng)程序和應(yīng)用軟件四個(gè)方面的設(shè)計(jì)與實(shí)現(xiàn)方法。
??? 關(guān)鍵詞: USB? 指紋識別? 圖像處理
?
??? 指紋的不變性和唯一性使指紋識別技術(shù)成為目前應(yīng)用最廣泛的身份驗(yàn)證,。近年來隨著最新信息處理技術(shù)的發(fā)展,、算法理論的研究以及計(jì)算機(jī)硬件的高集成和低成本,,指紋識別的可靠性不斷提高,,實(shí)用范圍不斷擴(kuò)大,。由于識別系統(tǒng)數(shù)據(jù)量較大且要求盡快傳入上位機(jī)進(jìn)行處理,所以合理設(shè)計(jì)數(shù)據(jù)傳輸通道成為設(shè)計(jì)的一個(gè)重點(diǎn),。
??? 通用串行總線USB(Universal Serial Bus)是一種新型接口技術(shù),。它是由Intel、Microsoft等公司為解決日益增加的外設(shè)" title="外設(shè)">外設(shè)與有限的主板插槽與端口之間的矛盾而制定的一種串行通信標(biāo)準(zhǔn),。USB具有以下特點(diǎn):(1)有較高的傳輸速率,。USB1.1支持全速和低速兩種方式,全速速率為12Mbps,,低速速率為1.5Mbps,;USB2.0除支持USB1.1的兩種速度方式外,還增加了速率可達(dá)480Mbps的高速方式,。(2)使用方便靈活,。USB支持即插即用和熱插拔,允許在任何時(shí)候連接和斷開外設(shè)。當(dāng)外設(shè)被連接時(shí),,系統(tǒng)會自動(dòng)檢測到外設(shè)并準(zhǔn)備使用。(3)易于擴(kuò)展,。通過根集線器可攜帶127個(gè)設(shè)備真正實(shí)現(xiàn)多個(gè)外設(shè)共用一個(gè)接口,。此外,USB還有可靠性高,、成本低,、功耗小等優(yōu)點(diǎn),倍受歡迎,。
1 整體方案選擇
??? 由于指紋圖像處理技術(shù)對實(shí)時(shí)性要求高,、運(yùn)算量要求大,所以采用通用的數(shù)字處理芯片,。DSP的高速運(yùn)算性能使其在數(shù)字信號的處理上有著獨(dú)一無二的優(yōu)勢,。但數(shù)字信號的數(shù)據(jù)量非常龐大,需要一種方便,、高速的接口實(shí)現(xiàn)與PC機(jī)的接插,。本文給出一種基于DSP(TMS320VC5402)平臺的低成本高速USB接口方案。它采用Philips公司的PDIUSBD12接口芯片,,實(shí)現(xiàn)DSP指紋圖像采集" title="圖像采集">圖像采集處理與PC機(jī)的高速數(shù)據(jù)傳輸,。本系統(tǒng)涵蓋了圖像采集、處理,、存儲,、傳輸?shù)葦?shù)字圖像處理技術(shù),其硬件原理如圖1所示,。
?
??? 通過圖像傳感器獲得指紋圖像及數(shù)字化輸出,,將圖像數(shù)據(jù)傳遞給中央處理芯片DSP。DSP對圖像進(jìn)行實(shí)時(shí)處理,,如:濾波,、圖像的平滑銳化、二值化,、特征點(diǎn)提取等,,同時(shí)將處理結(jié)果通過USB輸出到上位機(jī)。在整個(gè)指紋圖像采集處理系統(tǒng)中,,DSP主要有三個(gè)方面的作用:通過其I2C總線對OV6620的對比度,、亮度、銳度等各項(xiàng)參數(shù)進(jìn)行設(shè)置,;對指紋圖像進(jìn)行數(shù)字處理,;按照USB的規(guī)范應(yīng)答,提供設(shè)備識別,,固化PDIUSBD12,,與上位機(jī)通信,。
2 系統(tǒng)硬件方案選擇與設(shè)計(jì)
2.1 圖像傳感器
??? CMOS圖像傳感器是近幾年發(fā)展較快的新型圖像傳感器,可以將像素陣列與外圍支持電路集成在同一塊芯片上,,是一個(gè)完整的圖像系統(tǒng),。與CCD產(chǎn)品相比較其功耗小、體積小,、成本低,。
??? 在采集系統(tǒng)中,使用OV6620作為圖像采集芯片,。OV6620是Omni Vision公司開發(fā)的CMOS黑白圖像采集芯片,。該芯片將CMOS光感應(yīng)核與外圍支持電路集成在一起。輸出的視頻為黑白圖像,。技術(shù)參數(shù):分辨率352×288,,速度30幀/秒。
2.2 數(shù)字信號處理芯片
??? 本系統(tǒng)中采用了TI公司推出的高性能數(shù)字信號處理器TMS320VC5402,。其采用程序空間與數(shù)據(jù)空間完全獨(dú)立的哈佛總線結(jié)構(gòu),,指令的執(zhí)行采用流水線結(jié)構(gòu),內(nèi)部有一到多個(gè)處理內(nèi)核,帶有片上硬件乘法器,,其指令執(zhí)行速度最快為幾十納秒,,處理能力為100MIPS。這些為DSP在高速大數(shù)據(jù)量的數(shù)據(jù)采集處理系統(tǒng)中提供了廣闊的應(yīng)用空間,。片內(nèi)共有8條總線(4條程序存儲器總線,、1條數(shù)據(jù)存儲器總線和3條地址總線)、片上存儲器和片上外圍電路等硬件,,有高度專業(yè)化的指令系統(tǒng),,具有功耗低、高度并行等優(yōu)點(diǎn),。
2.3 USB接口芯片
??? 世界上很多半導(dǎo)體公司參與了USB芯片的開發(fā),,形成了多種產(chǎn)品系列。如Intel 8*930AX/HX,、Cypress FX2高速USB微控制器,、National Semiconductor的USBN9602/9603。對于基于DSP平臺的USB接口設(shè)計(jì),,綜合考慮了幾種方案之后,,決定采用一個(gè)不帶MCU內(nèi)核的USB接口芯片PDIUSBD12,再加上簡單的外圍電路和時(shí)序調(diào)整電路,。主要因?yàn)槠錆M足項(xiàng)目性能需求,,且使用外接CPU,成本非常低。
??? PDIUSBD12是Philips公司推出的一款特點(diǎn)突出的USB接口芯片,。完全遵從USB1.1協(xié)議,其內(nèi)部集成有串行接口引擎(SIE),、320字節(jié)多結(jié)構(gòu)FIFO存儲器、收發(fā)器(Transceiver)和電壓調(diào)節(jié)器,。它可以工作在5V或者3.3V的工作電壓下,;具有8位數(shù)據(jù)總線,且有完全自治的DMA傳輸操作,。它還具有可控制的軟件連接(Soft Connect)功能,可以保證在微控制器可靠初始化之后再連接上USB總線,。多中斷模式實(shí)現(xiàn)批量和同步傳輸,,在批量和同步模式下可實(shí)現(xiàn)1MB/S的數(shù)據(jù)傳輸率。PDIUSBD12高集成度,、高可靠性和寬范圍工作條件的特點(diǎn),,可以非常方便地兼容大部分DSP的工作環(huán)境。
3 軟件設(shè)計(jì)
3 .1 固件設(shè)計(jì)
??? 固件編程(firmware programming)是USB數(shù)據(jù)傳輸系統(tǒng)中終端設(shè)備程序設(shè)計(jì)的重要部分,,微處理器通過固件程序與計(jì)算機(jī)進(jìn)行數(shù)據(jù)交換,。由于采用不帶MCU內(nèi)核的USB接口芯片,所以關(guān)于USB1.1協(xié)議規(guī)范的實(shí)現(xiàn)都必須靠DSP(TMS320VC5402)控制PDIUSBD12芯片完成:在DSP(TMS320VC5402)的平臺上編寫程序,,以完成USB1.1規(guī)范所要求的標(biāo)準(zhǔn)請求及用戶根據(jù)產(chǎn)品需要自己定義的請求,。
??? 當(dāng)設(shè)備連接到主機(jī)后,主機(jī)通過給PDIUSBD12的端點(diǎn)0發(fā)送包含標(biāo)準(zhǔn)USB請求的控制傳輸(即Setup包),PDIUSBD12產(chǎn)生一個(gè)中斷給MCU(INT0),,MCU通過讀PDIUSBD12的中斷寄存器和最后一次傳輸狀態(tài)寄存器來對每一個(gè)請求做出響應(yīng),,并通過PDIUSBD12的端點(diǎn)0回送請求信息。主機(jī)從返回的信息中讀取描述數(shù)據(jù)(包括設(shè)備描述符,、配置描述符,、接口描述符、端點(diǎn)描述符,、字符串描述符),,分配和載入一個(gè)設(shè)備驅(qū)動(dòng)程序并對設(shè)備進(jìn)行配置。設(shè)備配置完成后,就可以使用配置中支持的端點(diǎn)傳輸數(shù)據(jù),。固件程序結(jié)構(gòu)如圖2所示,。
?
3.2 設(shè)備驅(qū)動(dòng)
??? 在Win32系統(tǒng)中,把每一個(gè)設(shè)備都抽象為文件,,此時(shí)的應(yīng)用程序只需通過幾個(gè)簡單的文件操作API函數(shù),,就可以實(shí)現(xiàn)與驅(qū)動(dòng)程序中某個(gè)設(shè)備的通信。
??? PC機(jī)的驅(qū)動(dòng)程序由Philips公司提供,。用VC++6.0通過調(diào)用API函數(shù),,編寫PC的應(yīng)用程序。這樣即可實(shí)現(xiàn)PC機(jī)對DSP(TMS320VC5402)指紋取像系統(tǒng)的控制以及圖像的傳輸。主要使用的API函數(shù)是DeviceIOControl( ) ,、ReadFile( ),、WriteFile( )。其中DeviceIOControl( )用于PC(主機(jī))向DSP圖像采集系統(tǒng)發(fā)送請求,;ReadFile( )和WriteFile( )分別用于從圖像采集系統(tǒng)讀出數(shù)據(jù)以及向圖像采集系統(tǒng)寫入數(shù)據(jù),。在設(shè)計(jì)過程中必須注意的問題是:由于USB接口是主從方式的接口,其一切傳輸過程都必須通過主機(jī)向外設(shè)發(fā)送請求后才可以開始,,所以在使用ReadFile( ),、WriteFile( )讀寫數(shù)據(jù)前,必須先通過DeviceIOControl( )向圖像采集系統(tǒng)發(fā)送請求,。
3.3 指紋識別流程
??? 系統(tǒng)上電時(shí),,TMS320VC5402通過 I2C總線操作對OV6620進(jìn)行設(shè)置,然后進(jìn)入指紋圖像采集階段,。在該階段,TMS320VC5402處于空閑狀態(tài),CPLD占用數(shù)據(jù)總線,,將數(shù)據(jù)直接存儲到圖像RAM中。采集完一幀指紋圖像后由CPLD發(fā)握手信號,通知DSP進(jìn)入數(shù)據(jù)處理階段,。在該階段,TMS320VC5402先將圖像RAM中的數(shù)據(jù)分塊搬運(yùn)到用戶RAM中,,進(jìn)行圖像預(yù)處理、特征點(diǎn)提取等運(yùn)算,,最后通過USB將結(jié)果輸出給上位機(jī),。上位機(jī)調(diào)出指紋數(shù)據(jù)庫,并將提取的結(jié)果與指紋特征庫中的數(shù)據(jù)進(jìn)行比對,,從而與庫中特征指紋進(jìn)行指紋匹配識別,。
??? DSP算法具體如下:(1)預(yù)濾波。方向?yàn)V波:設(shè)計(jì)了一個(gè)水平模板,然后將水平模板旋轉(zhuǎn)到所需增強(qiáng)的方向進(jìn)行濾波,。(2)二值化,。背景分離:采用標(biāo)準(zhǔn)差" title="標(biāo)準(zhǔn)差">標(biāo)準(zhǔn)差閾值跟蹤法,圖像的指紋部分由黑白相間的紋理組成,灰度變化很大,,具有較大的標(biāo)準(zhǔn)差,,而背景部分灰度分布比較平坦,標(biāo)準(zhǔn)差小。因此計(jì)算以各點(diǎn)為中心的一組像素的標(biāo)準(zhǔn)差,,當(dāng)標(biāo)準(zhǔn)差大于某一門限時(shí),,就可以確定該點(diǎn)為前景,否則為背景,。(3)計(jì)算方向圖:采用基于法線向量的方法,其中還涉及到方向場的平滑銳化,。(4)特征點(diǎn)提取:采用了脊線跟蹤法,,其基本思想是直接對圖像進(jìn)行脊線跟蹤,,在跟蹤過程中檢測特征點(diǎn),。
??? 整個(gè)軟件流程如圖3所示。
?
參考文獻(xiàn)
1 周立功. PDIUSBD12 USB 固件編程與驅(qū)動(dòng)開發(fā). 北京:北京航空航天大學(xué)出版社,2003
2 王崇文,趙德紳,王延才.指紋取像與指紋識別. 計(jì)算機(jī)工程與應(yīng)用,2002;(20):91~94
3? 戴明楨,周建江.TMS320VC5X結(jié)構(gòu),、原理及應(yīng)用. 北京:北京航天航空大學(xué)出版社,2001
4? OmniVision.OV6620.Datesheet