- 相關(guān)推薦
基于DSP的自動(dòng)指紋識(shí)別系統(tǒng)
摘要:文章介紹了一種基于TI公司的TMS320VC5402來(lái)構(gòu)造指紋識(shí)別系統(tǒng)的方法。詳細(xì)論述了系統(tǒng)的各個(gè)組成部分以及指紋識(shí)別算法的實(shí)現(xiàn)流程,結(jié)合VC5402的指令集和自身結(jié)構(gòu)特點(diǎn),討論了如何高效的設(shè)計(jì)應(yīng)用程序的方法。文章對(duì)如何將DSP的主機(jī)接口(HPI)改造成通用輸入輸出口(GPIO)、將多通道緩沖串行口(McBSP)設(shè)置成SPI接口進(jìn)行了詳細(xì)的說(shuō)明,對(duì)數(shù)據(jù)圖像處理需要較大空間而DSP可尋址的數(shù)據(jù)空間又過(guò)小的矛盾,提出了切實(shí)可行的解決辦法。關(guān)鍵詞:指紋識(shí)別;DSP;混合語(yǔ)言編程
指紋識(shí)別技術(shù)是以數(shù)字圖像處理技術(shù)為基礎(chǔ),而逐步發(fā)展起來(lái)的。相對(duì)于密碼、各種證件等傳統(tǒng)身份認(rèn)證技術(shù)和諸如語(yǔ)音、虹膜等其它生物認(rèn)證技術(shù)而言,指紋識(shí)別是一種更為理想的身份認(rèn)證技術(shù)。使用指紋識(shí)別具有許多優(yōu)點(diǎn),例如:每個(gè)人的指紋都不相同,極難進(jìn)行復(fù)制或被盜用;指紋比較固定,不會(huì)隨著年齡的增長(zhǎng)或健康程度的變化而變化;最重要的在于指紋圖像便于獲取,易于開(kāi)發(fā)識(shí)別系統(tǒng),具有很高的實(shí)用性和可行性。
1 指紋識(shí)別系統(tǒng)的架構(gòu)
本課題設(shè)計(jì)了一個(gè)嵌入式系統(tǒng),通過(guò)DSP來(lái)完成指紋圖像的采集和指紋識(shí)別的算法。另外為使系統(tǒng)有更廣闊的應(yīng)用領(lǐng)域,在設(shè)計(jì)上還采用異步串行通訊方式實(shí)現(xiàn)了DSP和PC之間的數(shù)據(jù)交互。據(jù)此,系統(tǒng)由指紋傳感芯片、復(fù)雜可編程邏輯器件、閃爍存儲(chǔ)器和UART等硬件組成。系統(tǒng)的結(jié)構(gòu)框圖和主要程序流程圖如圖1和圖2所示:
2 系統(tǒng)各部分設(shè)計(jì)要點(diǎn)
2.1 DSP的選擇和存儲(chǔ)空間的設(shè)計(jì)
TMS320VC5402具有很高的性?xún)r(jià)比,可以訪問(wèn)1M的程序空間和64K的數(shù)據(jù)空間。內(nèi)部自帶的16K 雙尋址RAM,可以在一個(gè)指令周期內(nèi)完成兩次讀操作或一次讀和一次寫(xiě)操作。鎖相環(huán)電路則可提供高達(dá)100MHz的工作頻率,從而使VC5402完全有能力在較短的時(shí)間內(nèi)完成指紋的識(shí)別操作。
由于指紋圖像具有數(shù)據(jù)量大特點(diǎn),因此程序的設(shè)計(jì)不可避免的需要較大的存儲(chǔ)空間。系統(tǒng)中所采集到的8bits灰度圖像大小為300×256,則存儲(chǔ)一幅圖像就需要75K的空間,而VC5402可尋址的數(shù)據(jù)空間范圍總共才有64K。為此,可以參照VC5402空間分配結(jié)構(gòu)圖,通過(guò)程序空間頁(yè)擴(kuò)展功能來(lái)解決圖像的存儲(chǔ)和運(yùn)算問(wèn)題,運(yùn)用RPT、READA和WRITA指令完成圖像數(shù)據(jù)在程序空間和數(shù)據(jù)空間的搬移操作。
圖1 系統(tǒng)結(jié)構(gòu)框圖
圖2 系統(tǒng)主要程序流程圖
2.2 指紋采集電路的設(shè)計(jì)
指紋傳感芯片選用Fujitsu公司的MBF200。它由256列×300行電容陣列組成,芯片內(nèi)設(shè)計(jì)有兩套采樣保持電路用于指紋圖像的采集。圖像傳輸速度最大可達(dá)30幀/秒,能夠滿(mǎn)足連續(xù)指紋圖像的采集和比對(duì)。MBF200具有手指自動(dòng)檢測(cè)電路(AFD),它允許DSP在沒(méi)有指紋時(shí)處在低功耗待命模式,當(dāng)有手指時(shí)才通過(guò)中斷喚醒它進(jìn)行相應(yīng)的處理。然而實(shí)驗(yàn)證明,AFD功能的可靠性較差,不能滿(mǎn)足設(shè)計(jì)要求。為此,在設(shè)計(jì)上采用了手動(dòng)開(kāi)關(guān)加軟件查詢(xún)方式來(lái)判斷是否進(jìn)行指紋的采集。當(dāng)主機(jī)接口(HPI)中的HPIENA管腳通過(guò)電阻接地,則系統(tǒng)復(fù)位上電后,HPI接口將作為通用輸入輸出口(GPIO)來(lái)使用。將手動(dòng)開(kāi)關(guān)的輸出信號(hào)線和GPIO的一個(gè)指定的輸入口相連接,當(dāng)要進(jìn)行指紋采集時(shí),通過(guò)開(kāi)關(guān)產(chǎn)生一個(gè)輸出信號(hào);而系統(tǒng)初始化后DSP不斷的查詢(xún)GPIO中指定的輸入口狀態(tài),一旦發(fā)現(xiàn)狀態(tài)發(fā)生變化,就進(jìn)行指紋圖像的采集。實(shí)驗(yàn)證明,這種方式很好的解決了圖像采集的問(wèn)題,提升了系統(tǒng)的可靠性。除此之外,GPIO中其它的管腳可作為輸出管腳來(lái)使用,用于控制聲光報(bào)警電路。
2.3 DSP與PC接口的設(shè)計(jì)
為了充分利用VC5402的片上資源,降低成本。系統(tǒng)中使用MAXIM公司的通用異步串行收發(fā)器MAX3111E實(shí)現(xiàn)DSP和PC的通信。MAX3111E應(yīng)用SPI接口與主控制器進(jìn)行通信,它具有四個(gè)RS-232電平轉(zhuǎn)換器,這樣無(wú)需再接入MAX232進(jìn)行電平轉(zhuǎn)換,從而應(yīng)用一個(gè)芯片就實(shí)現(xiàn)了具有SPI接口的主控器與PC進(jìn)行異步數(shù)據(jù)傳輸?shù)墓δ堋?/p>
VC5402的時(shí)鐘停止模式兼容SPI通信協(xié)議。當(dāng)McBSP被設(shè)置成時(shí)鐘停止模式時(shí),可將發(fā)送幀同步信號(hào)(FSX)用作SPI協(xié)議中/SS,將發(fā)送時(shí)鐘(CLKX)用作SPI協(xié)議中SCK;接收串行數(shù)據(jù)(DR)和發(fā)送串行數(shù)據(jù)(DX)分別作為協(xié)議中的MISO和MOSI。由于發(fā)送器與接收器在芯片內(nèi)部實(shí)現(xiàn)了同步,所以接收時(shí)鐘(CLKR)和接收幀同步信號(hào)(FSR)不用于SPI模式中。當(dāng)將VC5402配置為主器件,MAX3111E配置為從器件時(shí),系統(tǒng)中McBSP各個(gè)寄存器參數(shù)的設(shè)置如表1所示:
表1 DSP作為SPI協(xié)議主器件時(shí),McBSP的配置信息
需要設(shè)置的位
所在寄存器
功能描述
系統(tǒng)所采用的值
CLKSTP
SPCR1
禁止或使能SPI模式
11b
CLKXP
PCR
控制BCLKX信號(hào)的極性
0b
CLKXM
PCR
控制BCLKX信號(hào)的方向
1b
CLKSM
SRGR2
采樣率時(shí)鐘從CPU時(shí)鐘中取得
1b
CLKGDV
SRGR1
設(shè)定采樣率分頻系數(shù)
29
FSXM
PCR
控制BFSX信號(hào)的方向
1b
FSGM
SRGR2
BFSX在每次數(shù)據(jù)傳輸時(shí)有效
0b
FSXP
PCR
控制BFSX信號(hào)極性
1b
XDATDLY
XCR2
給BFSX信號(hào)提供正確的建立時(shí)間
01b
RDATDLY
RCR2
給BFSX信號(hào)提供正確的建立時(shí)間
01b
RWDLEN1
RCR1
控制接受數(shù)據(jù)包長(zhǎng)度
010b
XWDLEN1
XCR1
控制發(fā)送數(shù)據(jù)包長(zhǎng)度
010b
2.4 握手信號(hào)與程序加載的設(shè)計(jì)
系統(tǒng)中使用EPM7128SLC84作為全局邏輯控制器件。FLASH用于存儲(chǔ)系統(tǒng)的應(yīng)用程序,當(dāng)系統(tǒng)復(fù)位后,通過(guò)Bootloader完成程序的搬移。設(shè)計(jì)上將FLASH映射到數(shù)據(jù)空間的后32K處,選用XF來(lái)區(qū)分是對(duì)SRAM尋址還是對(duì)FLASH尋址。當(dāng)系統(tǒng)上電復(fù)位后,XF引腳輸出高電平,這時(shí)FLASH將映射到數(shù)據(jù)空間中;當(dāng)程序加載結(jié)束后,在系統(tǒng)初始化期間拉低XF信號(hào)屏蔽FLASH,從而使SRAM占據(jù)數(shù)據(jù)空間。另外,將MBF200映射到I/O空間的前32K處,使用A15和/IS作為片選信號(hào)。在設(shè)計(jì)上采用原理圖形式編寫(xiě)CPLD程序,部分程序代碼如圖3所示:
圖3 CPLD原理圖程序
3 指紋識(shí)別算法設(shè)計(jì)概述
原始指紋圖像通常含有較多噪聲,因此需要進(jìn)行預(yù)處理來(lái)改善圖像的質(zhì)量,以便進(jìn)行特征提取和比對(duì)。預(yù)處理包括方向圖計(jì)算、圖像增強(qiáng)、二值化及去噪、圖像細(xì)化及去噪。
由于指紋的紋線具有緩慢變化的特點(diǎn),在局部通常具有明確的方向性,所以可以利用方向圖對(duì)圖像進(jìn)行平滑和銳化處理。沿紋線的切線方向?qū)D像進(jìn)行平滑,以起到連接不應(yīng)有的間斷的作用:沿紋線的法線方向?qū)D像進(jìn)行銳化,以突出紋線的邊緣信息。二值化就是把8灰度的指紋圖像變成0和255的二值圖像。二值化后的圖像通常在脊線上會(huì)有白色的斑點(diǎn),程序上使用種子填充法把斑點(diǎn)去掉。為了進(jìn)一步壓縮數(shù)據(jù),需要對(duì)二值化圖像進(jìn)行細(xì)化處理。細(xì)化時(shí)應(yīng)保持紋線的連接性、方向性不變,還應(yīng)保持紋線的中心基本不變。細(xì)化后的紋線會(huì)出現(xiàn)搭橋及豁口,因此必須進(jìn)行細(xì)化后的去噪工作。預(yù)處理中各步驟的圖像如圖4所示。
設(shè)計(jì)中使用紋線端點(diǎn)和分叉點(diǎn)作為指紋特征點(diǎn),這不僅是因?yàn)檫@兩類(lèi)特征點(diǎn)出現(xiàn)的幾率最高且容易檢測(cè),更重要的是它們足以描述指紋的唯一性。程序中使用紋線跟蹤方法提取特征點(diǎn),其中紋線端點(diǎn)的屬性由橫縱坐標(biāo)和紋線角度來(lái)表示;分叉點(diǎn)的屬性由橫縱坐標(biāo),紋線角度和三個(gè)分支間的夾角(從大到。﹣(lái)表示。在提取出指紋特征點(diǎn)后,便會(huì)得到一組矢量點(diǎn),同樣在指紋模板庫(kù)中保存的指紋模板也是一組矢量點(diǎn),要判斷兩個(gè)指紋是否相同的問(wèn)題也就轉(zhuǎn)化成判斷兩組矢量點(diǎn)是否相同的點(diǎn)模式匹配問(wèn)題。
(范文先生網(wǎng)www.qkfawen.com收集整理)
4 識(shí)別算法在DSP上的實(shí)現(xiàn)
程序設(shè)計(jì)上使用混合語(yǔ)言編程,用C語(yǔ)言設(shè)計(jì)程序中對(duì)運(yùn)行時(shí)間影響不大的模塊,而用匯編語(yǔ)言設(shè)計(jì)嚴(yán)格要求實(shí)時(shí)性的核心算法。為達(dá)到最佳利用DSP資源的目的,在程序的設(shè)計(jì)中要注意以下幾個(gè)方面:
(1)VC5402指令集中提供了一些零開(kāi)銷(xiāo)的循環(huán)指令,如RPT和RPTB等。為進(jìn)一步提高效率,在執(zhí)行循環(huán)指令時(shí),應(yīng)充分利用輔助寄存器和累加器。數(shù)組盡量用寄存器間接尋址,中間變量盡量存放于累加器中,以盡可能地減少中間變量存放所消耗的時(shí)間。
(2)VC5402采用流水線結(jié)構(gòu),允許多條指令同時(shí)訪問(wèn)CPU資源,從而提高系統(tǒng)的執(zhí)行速度。但當(dāng)CPU的某一資源同時(shí)被流水線的幾個(gè)階段訪問(wèn)時(shí),就會(huì)發(fā)生流水線沖突。因此,必須通過(guò)合理的調(diào)整匯編程序的代碼順序或加入適當(dāng)?shù)腘OP指令來(lái)解決這一問(wèn)題。
(3)識(shí)別算法中涉及到了卷積和乘累加操作,這可以通過(guò)使用循環(huán)尋址功能和乘累加指令來(lái)實(shí)現(xiàn)。另外,VC5402提供了可延遲的轉(zhuǎn)移、調(diào)用和返回指令。這些指令的執(zhí)行時(shí)間比它們對(duì)應(yīng)的非延遲指令要少2個(gè)周期,需要注意的是有時(shí)要在延遲指令后插入NOP指令,以保證適當(dāng)?shù)牟僮黜樞颉?/p>
(4)在涉及數(shù)字信號(hào)處理算法時(shí)應(yīng)盡可能地使用DSPLIB庫(kù)中的函數(shù),因?yàn)檫@些函數(shù)均用匯編語(yǔ)言編寫(xiě),優(yōu)化程度很高。另外,在C程序中盡可能地采用內(nèi)聯(lián)(inline)函數(shù),以便提高代碼的集成度。由于采用混合編程方法,因此在程序設(shè)計(jì)上要嚴(yán)格遵循函數(shù)調(diào)用規(guī)則和寄存器的使用約定。
5 結(jié)束語(yǔ)
本系統(tǒng)采用TMS320VC5402完成了從指紋圖像的采集到特征匹配的功能,并結(jié)合DSP的結(jié)構(gòu)特點(diǎn)和相應(yīng)的指令詳細(xì)的闡述了系統(tǒng)硬件設(shè)計(jì)和程序的優(yōu)化。實(shí)踐證明本系統(tǒng)工作穩(wěn)定、實(shí)時(shí)性好,具有很強(qiáng)的實(shí)用性和指導(dǎo)性。
【基于DSP的自動(dòng)指紋識(shí)別系統(tǒng)】相關(guān)文章:
基于USB與DSP的指紋識(shí)別系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)08-06
基于DSP的紙幣號(hào)碼識(shí)別系統(tǒng)08-06
基于DSP的自動(dòng)對(duì)焦系統(tǒng)08-06
基于TMS320VC5402的指紋識(shí)別系統(tǒng)08-06
基于ARM核的AT75C220及其在指紋識(shí)別系統(tǒng)中的應(yīng)用08-19
基于DSP平臺(tái)的USB接口設(shè)計(jì)08-06
基于DSP的信道譯碼算法優(yōu)化08-06