一種基于SOPC技術(shù)的指紋識別系統(tǒng)設(shè)計方案
0 引言
本文引用地址:http://cafeforensic.com/article/249524.htm人的指紋具備的唯一性、終身不變性、易獲取和難以復(fù)制等特點,使得指紋識別很早就成為身份識別中的一種技術(shù)手段。隨著科學(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)用的進一步擴大。自二十世紀末以來,半導(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ù)字圖像進行預(yù)處理,再通過圖像增強、分割、平滑、細化等處理過程得到便于指紋特征提取的數(shù)字圖像:接著提取細化后的圖像細節(jié)特征點;最后將提取到的特征與特征數(shù)據(jù)庫中的特征數(shù)據(jù)進行匹配,并輸出識別結(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)。基于SOPC技術(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)建多達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指紋傳感器芯片,該芯片的分辯率高達500dpi(dots per inch),并帶有8bit數(shù)據(jù)接口,可以采集300×256大小的指紋數(shù)字圖像。MBF200芯片提供有三種接口(SPI、USB和MCU)方式,本系統(tǒng)中采用MCU方式,其內(nèi)置的標準8位微處理器總線使其性能大大加強。MBF200的工作流程分為兩部分:首先是初始化參數(shù)的設(shè)置,即使MBF200設(shè)置相應(yīng)的參數(shù),然后選擇其工作方式;其次是采用查詢等待方式采集指紋數(shù)據(jù)。
由于系統(tǒng)每次采集的指紋圖像數(shù)據(jù)量達幾十KB,故在系統(tǒng)核心模塊中集成了一個硬邏輯協(xié)處理器。這個協(xié)處理器負責(zé)查詢指紋芯片的狀態(tài)和指紋圖像數(shù)據(jù)采集存儲任務(wù)。該協(xié)處理器是用硬件描述語言設(shè)計的一個有限狀態(tài)機,其狀態(tài)機模型如圖3所示。系統(tǒng)復(fù)位后,協(xié)處理器將進入空閑狀態(tài)并等待主處理器的復(fù)位信號;當正確接收到主處理器的復(fù)位信號后,協(xié)處理器進入查詢狀態(tài);查詢狀態(tài)主要查詢指紋芯片的中斷狀態(tài)位,當查詢到有效中斷狀態(tài)位后,系統(tǒng)將進人數(shù)據(jù)采集存儲狀態(tài);在數(shù)據(jù)采集存儲狀態(tài),協(xié)處理器從指紋芯片讀出數(shù)據(jù)并保存在系統(tǒng)的存儲區(qū)SRAM中,讀完整個指紋圖像后即向NIOS II處理器發(fā)出中斷信號并重新進入空閑狀態(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等模塊。配置好這些模塊后,便可進行系統(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è)計。
指紋識別算法流程主要包括背景分割、方向圖計算及方向濾波、二值化、細化、特征提取和特征匹配等。采集的指紋圖像容易受到各種因素的影響而使圖像質(zhì)量變差,比如手指按壓的方向和力度、皮膚的干濕程度、傳感器的特征差異等。因此,指紋識別算法首先要對指紋圖象進行處理,以把有用的前景信息和背景區(qū)分開。本系統(tǒng)算法采用方差法進行圖像分割。然后采用基于塊方向圖計算的方向濾波。接著利用動態(tài)閥值法進行二值化處理,以把指紋灰度圖像轉(zhuǎn)化為僅用0、1表示的二值圖像。對二值化后的二值圖像進行細化可得到骨架圖象。接下來的特征提取階段是用模板匹配的方法獲取細節(jié)特征點(端點、分叉點)的位置、方向和類型信息。最后和特征匹配則采用基于細節(jié)特征點匹配的算法。
4 結(jié)束語
本文給出了一種基于SOPC的指紋識別系統(tǒng)的設(shè)計方案。使用SOPC技術(shù)進行系統(tǒng)設(shè)計具有開發(fā)周期短、設(shè)計靈活、可把若干外部模塊綜合設(shè)計到一片高密度FPGA中等優(yōu)點,同時設(shè)計更小巧、成本更低、更便于系統(tǒng)升級。雖然目前SOPC技術(shù)還處于推廣階段,但國內(nèi)外已經(jīng)有很多高校和公司進行了實際應(yīng)用方面的研究。因此,我們有理由相信,SOPC技術(shù)在不久的將來一定會有更廣闊的應(yīng)用空間!
c語言相關(guān)文章:c語言教程
評論