引言
隨著科學(xué)技術(shù)的發(fā)展,,指紋識別已經(jīng)成為目前最為實用、應(yīng)用最為廣泛的生物識別技術(shù),,尤其在民用生物識別技術(shù)中,。指紋識別技術(shù)已經(jīng)在金融、醫(yī)療,、公安,、門禁系統(tǒng)等領(lǐng)域得到了廣泛的應(yīng)用。
傳統(tǒng)的指紋識別系統(tǒng)都是基于PC機的,,這種系統(tǒng)具有識別速度快,、樣本存儲量大、軟件設(shè)計技術(shù)成熟等優(yōu)點,。但是,,基于PC機的指紋識別系統(tǒng)由于價格昂貴、移動性能差,、功耗高等缺點限制了其應(yīng)用的進(jìn)一步擴(kuò)大,。自二十世紀(jì)末以來,,半導(dǎo)體技術(shù)和嵌入式技術(shù)的快速發(fā)展,為人們設(shè)計廉價的便攜式指紋識別系統(tǒng)提供了一個技術(shù)上的實現(xiàn)平臺,。 本文介紹了一種基于ALTERA公司推出的SOPC(System on a Programmable Chip,,片上可編程系統(tǒng))技術(shù)的指紋識別系統(tǒng)的設(shè)計方案。該系統(tǒng)以ALTERA公司的Cyclone II系列FPGA和NIOSII軟核處理器為核心,,并采用富士通公司的MBF200指紋采集芯片設(shè)計,,是一種簡單實用的嵌入式指紋識別系統(tǒng)。
1 指紋識別系統(tǒng)原理
指紋識別系統(tǒng)一般由指紋圖像采集,、指紋圖像預(yù)處理,、指紋特征提取、指紋特征匹配,、特征數(shù)據(jù)庫等幾部分組成,。指紋識別系統(tǒng)的原理框圖如圖1所示。該系統(tǒng)首先由指紋采集設(shè)備采集到指紋圖像并將其轉(zhuǎn)化為數(shù)字圖像,;然后對指紋數(shù)字圖像進(jìn)行預(yù)處理,,再通過圖像增強、分割,、平滑,、細(xì)化等處理過程得到便于指紋特征提取的數(shù)字圖像:接著提取細(xì)化后的圖像細(xì)節(jié)特征點;最后將提取到的特征與特征數(shù)據(jù)庫中的特征數(shù)據(jù)進(jìn)行匹配,,并輸出識別結(jié)果,。
|
2 系統(tǒng)硬件設(shè)計
2.1 SOPC技術(shù)與NIOS II軟核處理器
SOPC (System on a Programmable Chip,片上可編程系統(tǒng))是ALTERA公司提出來的一種靈活,、高效的SOC解決平臺,。它將處理器、存儲器,、I/O口、LVDS,、CDR等系統(tǒng)設(shè)計所需要的功能模塊集成到一個PLD器件上,,從而構(gòu)建成一個可編程的片上系統(tǒng)?;赟OPC技術(shù)的系統(tǒng)設(shè)計十分靈活,,用戶可以根據(jù)自己的實際要求,并利用IPCore資源組合構(gòu)建出不同的應(yīng)用系統(tǒng),,從而實現(xiàn)軟硬件協(xié)同設(shè)計,。
NIOS II軟核處理器是ALTERA公司于2004年推出的通用32位RISC CPU,它能滿足任何應(yīng)用32位嵌入式微處理器的需要.用戶可以獲得超過200 DMIPS的性能,。NIOS II軟核處理器具有32位處理器的基本結(jié)構(gòu)單元(32位指令大小,,32位數(shù)據(jù)和地址路徑,,32位通用寄存器和32個外部中斷源),設(shè)計者可以根據(jù)系統(tǒng)需求的變化來調(diào)整嵌入式系統(tǒng)的特性,,以選擇滿足性能和成本的最佳方案,。
Nios II系列可支持用戶自定義指令,而NIOS II ALU則直接與用戶自定義的指令邏輯相連,。由于設(shè)計者能為系統(tǒng)中使用的每個Nios II處理器創(chuàng)建多達(dá)256個專用指令,,因此,設(shè)計者能夠調(diào)整系統(tǒng)硬件以增強對實時軟件算法的處理能力,。ALTERA公司同時還推出了Nios II集成開發(fā)環(huán)境(IDE)和一些常用的免費IP核,,以方便設(shè)計者的軟件開發(fā)。另外,,設(shè)計者使用Altera公司Quartus II開發(fā)軟件中的SOPC Builder系統(tǒng)開發(fā)工具還能夠很容易地創(chuàng)建專用的處理器系統(tǒng),,并能夠根據(jù)系統(tǒng)的需求添加Nios II處理器核的數(shù)量。
2.2 系統(tǒng)硬件結(jié)構(gòu)
一般的指紋識別系統(tǒng)主要由指紋采集模塊,、系統(tǒng)核心模塊,、數(shù)據(jù)存儲模塊和輸出顯示模塊等幾部分組成。其系統(tǒng)硬件結(jié)構(gòu)框圖如圖2所示,。
|
本系統(tǒng)中的采集模塊采用富士通公司的MBF200指紋傳感器芯片,,該芯片的分辯率高達(dá)500dpi(dots per inch),并帶有8bit數(shù)據(jù)接口,,可以采集300×256大小的指紋數(shù)字圖像,。MBF200芯片提供有三種接口(SPI、USB和MCU)方式,,本系統(tǒng)中采用MCU方式,,其內(nèi)置的標(biāo)準(zhǔn)8位微處理器總線使其性能大大加強。MBF200的工作流程分為兩部分:首先是初始化參數(shù)的設(shè)置,,即使MBF200設(shè)置相應(yīng)的參數(shù),,然后選擇其工作方式;其次是采用查詢等待方式采集指紋數(shù)據(jù),。
由于系統(tǒng)每次采集的指紋圖像數(shù)據(jù)量達(dá)幾十KB,,故在系統(tǒng)核心模塊中集成了一個硬邏輯協(xié)處理器。這個協(xié)處理器負(fù)責(zé)查詢指紋芯片的狀態(tài)和指紋圖像數(shù)據(jù)采集存儲任務(wù),。該協(xié)處理器是用硬件描述語言設(shè)計的一個有限狀態(tài)機,,其狀態(tài)機模型如圖3所示。
系統(tǒng)復(fù)位后,,協(xié)處理器將進(jìn)入空閑狀態(tài)并等待主處理器的復(fù)位信號,;當(dāng)正確接收到主處理器的復(fù)位信號后,協(xié)處理器進(jìn)入查詢狀態(tài),;查詢狀態(tài)主要查詢指紋芯片的中斷狀態(tài)位,,當(dāng)查詢到有效中斷狀態(tài)位后,,系統(tǒng)將進(jìn)人數(shù)據(jù)采集存儲狀態(tài);在數(shù)據(jù)采集存儲狀態(tài),,協(xié)處理器從指紋芯片讀出數(shù)據(jù)并保存在系統(tǒng)的存儲區(qū)SRAM中,,讀完整個指紋圖像后即向NIOS II處理器發(fā)出中斷信號并重新進(jìn)入空閑狀態(tài),以等待主處理器復(fù)位,。
|
本系統(tǒng)的核心模塊是在ALTERA公司的Cy-clone II 2C35上實現(xiàn)的,,相應(yīng)的軟件開發(fā)套件包括Quartus II 5.0和NIOS II 5.0集成開發(fā)環(huán)境(IDE)。Cyclone II系列FPGA是ALTERA公司最新推出的低成本,、高性價比的通剛FPGA,,CycloneII 2C35具有32,216個LE單元、105個M4K RAM塊,、35個嵌入式乘法器,,完全可以滿足系統(tǒng)的性能要求。
通過QuartusII中的軟件工具SOPC Builder可實現(xiàn)NIOS II處理器的創(chuàng)建和各種IP模塊的管理和配置,,以構(gòu)建系統(tǒng)的核心模塊,。圖2中,根據(jù)系統(tǒng)的實際要求由SOPC Builder配置的處理器核心包括NIOS II處理器,、指紋卡PIO,、協(xié)處理器PIO、Avalon Tri-Atate Bridge,、UART模塊和LCD PIO等模塊,。配置好這些模塊后,便可進(jìn)行系統(tǒng)生成,。SOPC Builder在系統(tǒng)生成過程中可生成HDL源文件和BDF文件,。SOPC Builder為定制的NIOS II核心模塊創(chuàng)建的一個符號(Symbol)就存放在BDF文件中,用戶可以在Quartus軟件中使用該符號,。本系統(tǒng)核心模塊是使用Quartus的符號表文件編譯生成的,。
數(shù)據(jù)存儲模塊包括512 KB的SRAM和4 MB的FLASH。SRAM用來存放采集到的指紋圖象數(shù)據(jù)和程序運行時的臨時數(shù)據(jù),。4 MB的FLASH則用于存放系統(tǒng)應(yīng)用程序和特征數(shù)據(jù)庫,。系統(tǒng)的識別結(jié)果可以通過LCD輸出。
3 系統(tǒng)軟件的設(shè)計
系統(tǒng)軟件可利用C語言在NIOS II集成開發(fā)境下開發(fā),。Nios II集成開發(fā)環(huán)境(IDE)是Nios II軟核處理器的主要開發(fā)工具,,包括編輯,、編譯和程序調(diào)試,。Nios II IDE為軟件開發(fā)提供了一個集成的設(shè)計開發(fā)環(huán)境。它有一個包括工程管理,、源代碼開發(fā)和基于JTAG調(diào)試功能的圖形界面(GUI),,故可大大簡化復(fù)雜的Nios II處理器設(shè)計,。
指紋識別算法流程主要包括背景分割、方向圖計算及方向濾波,、二值化,、細(xì)化、特征提取和特征匹配等,。采集的指紋圖像容易受到各種因素的影響而使圖像質(zhì)量變差,,比如手指按壓的方向和力度、皮膚的干濕程度,、傳感器的特征差異等,。因此,指紋識別算法首先要對指紋圖象進(jìn)行處理,,以把有用的前景信息和背景區(qū)分開,。本系統(tǒng)算法采用方差法進(jìn)行圖像分割。
然后采用基于塊方向圖計算的方向濾波,。接著利用動態(tài)閥值法進(jìn)行二值化處理,,以把指紋灰度圖像轉(zhuǎn)化為僅用0、1表示的二值圖像,。對二值化后的二值圖像進(jìn)行細(xì)化可得到骨架圖象,。接下來的特征提取階段是用模板匹配的方法獲取細(xì)節(jié)特征點(端點、分叉點)的位置,、方向和類型信息,。最后和特征匹配則采用基于細(xì)節(jié)特征點匹配的算法。
4 結(jié)束語
本文給出了一種基于SOPC的指紋識別系統(tǒng)的設(shè)計方案,。使用SOPC技術(shù)進(jìn)行系統(tǒng)設(shè)計具有開發(fā)周期短,、設(shè)計靈活、可把若干外部模塊綜合設(shè)計到一片高密度FPGA中等優(yōu)點,,同時設(shè)計更小巧,、成本更低、更便于系統(tǒng)升級,。雖然目前SOPC技術(shù)還處于推廣階段,,但國內(nèi)外已經(jīng)有很多高校和公司進(jìn)行了實際應(yīng)用方面的研究。因此,,我們有理由相信,,SOPC技術(shù)在不久的將來一定會有更廣闊的應(yīng)用空間!