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