基于FPGA的指紋采集接口設(shè)計(jì)與實(shí)現(xiàn)
?一、引言
????相對于密碼、證件等傳統(tǒng)身份認(rèn)證技術(shù)和諸如語音、虹膜、臉形、簽名等其他生物特征識別認(rèn)證技術(shù)而言,指紋識別認(rèn)證是一種更為理想的身份認(rèn)證技術(shù)。其優(yōu)點(diǎn)體現(xiàn)在:
????1.廣泛性——每個(gè)人的每一跟手指都具有指紋;
????2.唯一性——每個(gè)人的指紋都不相同,極難進(jìn)行復(fù)制;
????3.穩(wěn)定性——指紋不會隨著年齡的增長而改變;
????4.易采集性——指紋圖像可運(yùn)用專業(yè)的指紋傳感器獲取,易于開發(fā)識別認(rèn)證系統(tǒng)。
????隨著電子商務(wù)的發(fā)展和消費(fèi)類電子的普及,越來越多的領(lǐng)域需要指紋識別系統(tǒng)。目前,基于?、?的獨(dú)立式指紋識別系統(tǒng)已經(jīng)成功應(yīng)用于考勤、門禁、安檢等領(lǐng)域?。同時(shí),隨著微電子技術(shù)的進(jìn)步,設(shè)計(jì)開發(fā)能應(yīng)用在小型微型系統(tǒng)(如手機(jī)、PDA等)的ASIC資金資助:上海市科學(xué)技術(shù)委員會PDC計(jì)劃項(xiàng)目(No.?047062023)和AM?0403項(xiàng)目(專用集成電路)指紋識別認(rèn)證系統(tǒng),將具有很強(qiáng)的現(xiàn)實(shí)意義和廣闊的市場空間。
????由于FPGA(現(xiàn)場可編程門陣列)具有高集成度,低功耗,短開發(fā)周期等優(yōu)點(diǎn),本文選用FPGA作為指紋識別認(rèn)證系統(tǒng)的核心器件,以控制其依次實(shí)現(xiàn)指紋采集、指紋特征點(diǎn)提取、存儲、比對等等過程。可見,指紋識別認(rèn)證系統(tǒng)的首要任務(wù)是如何采集到高質(zhì)量指紋圖像以保證后續(xù)任務(wù)的完成,而指紋圖像質(zhì)量不僅與指紋傳感器自身的性能有關(guān),也與數(shù)據(jù)傳輸通信接口的性能密切相關(guān)。因此,如何設(shè)計(jì)性能優(yōu)良的通信接口是實(shí)際系統(tǒng)設(shè)計(jì)的一個(gè)難點(diǎn)問題。于是本文針對這一問題進(jìn)行了研究,介紹了一種基于FPGA與滑動式指紋傳感器的指紋采集接口的設(shè)計(jì)與實(shí)現(xiàn)方法。
????二、簡介指紋采集接口器件
????本指紋采集接口的核心控制器件為Xilinx公司SpartanIII系列的XC3S400型FPGA芯片,它的封裝形式為PQ208。這款芯片采用先進(jìn)的90ns工藝,最大容量40萬門,工作頻率高達(dá)200M,足以完成系統(tǒng)需要。
????另外,本文選用的指紋采集傳感器為富士通公司的MBF300滑動式電容指紋采集傳感器。這款指紋傳感器采用標(biāo)準(zhǔn)CMOS技術(shù),含有8位A/D變換器,能在2.8V~5V的寬電壓范圍內(nèi)工作,能自動檢測到是否有指紋到達(dá)傳感器,并實(shí)現(xiàn)在線采集。而它與以往采用的面積式指紋傳感器相比最大的優(yōu)點(diǎn)在于,在保證指紋圖像高分辨率(500dpi)的同時(shí)大大減小了傳感器的尺寸(13.3×3.6?)。
????MBF300支持3種通信接口:8位微處理器總線接口(microprocessor?bus?interface)、集成的USB全速接口(Integrated?USB?Full-Speed?Interface)和集成SPI接口(Integrated?Serial?Peripheral?Interface)。其中本文選用SPI接口,并將詳細(xì)講述基于MBF300和FPGA的SPI設(shè)計(jì)與實(shí)現(xiàn)方法。
????MBF300的SPI接口需要時(shí)鐘信號線SCK、主進(jìn)從出信號線MISO、主出從進(jìn)信號線MOSI和使能信號線?,共4根信號線。其中,傳感器的時(shí)鐘源可以從外部輸人,也可以外接一個(gè)晶體振蕩器后,利用MBF300內(nèi)部的振蕩電路來獲得時(shí)鐘源。在選擇了SPI模式后,MBF300的其他兩種模式將自動禁止。在本系統(tǒng)中,MBF300在SPI工作模式下相當(dāng)于一個(gè)從設(shè)備,XC3S400作為主設(shè)備。XC3S400通過讀寫MBF300內(nèi)部的寄存器實(shí)現(xiàn)對它的控制,以完成指紋采集的任務(wù)。
????另外,MBF300在SPI的從設(shè)備狀態(tài)下,它的通信協(xié)議的具體內(nèi)容包括:
????l???MOSI線上的數(shù)據(jù)在SCK的上升沿被采樣;
????l???MISO線上的數(shù)據(jù)在SCK的下降沿發(fā)生改變;
????l???SCK在空閑狀態(tài)時(shí),可以為高電平,也可以為低電平;
????l???串行傳輸過程中,高位在前(最先被移出)。具體時(shí)序見圖1?。
????
????
????三、指紋采集接口的設(shè)計(jì)與實(shí)現(xiàn)
????本文中指紋傳感器MBF300的主要任務(wù)是采集指紋圖像,并自動A/D轉(zhuǎn)換,并把轉(zhuǎn)換后的圖像數(shù)據(jù)通過SPI接口傳送到FPGA芯片XC3S400中,以進(jìn)行指紋登記或者指紋識別比對。由此可見,指紋采集是整個(gè)指紋識別系統(tǒng)的第一步,采集質(zhì)量的好壞將直接影響系統(tǒng)的性能與準(zhǔn)確度的高低,因此,接下來將重點(diǎn)介紹指紋采集接口——SPI接口的設(shè)計(jì),在此過程中,XC3S400為SPI主設(shè)備,MBF300為SPI從設(shè)備。
????1、指紋采集電路
????由于FPGA內(nèi)部采用的SRAM存儲器結(jié)構(gòu),所以需要外置一個(gè)PROM在上電時(shí)對FPGA進(jìn)行程序配置。同時(shí),還擴(kuò)展了一個(gè)SRAM和Flash分別用作存儲指紋程序運(yùn)行時(shí)的臨時(shí)數(shù)據(jù)和指紋數(shù)據(jù)信息。另外,為了實(shí)現(xiàn)與PC機(jī)通信,指紋采集部分還設(shè)計(jì)一個(gè)RS232接口,整個(gè)的硬件電路如圖2所示。由圖中可以看出,整個(gè)指紋采集的核心部件就是FPGA芯片XC3S400,它相當(dāng)于常見的嵌入系統(tǒng)中的DSP或者ARM,控制著整個(gè)指紋采集,以及指紋登記,指紋比對,結(jié)果輸出等過程。
????2、指紋采集接口硬件設(shè)計(jì)與實(shí)現(xiàn)
????本文的SPI接口主設(shè)備為FPGA芯片XC3S400,從設(shè)備為指紋傳感器MBF200。由于FPGA沒有特定管腳的要求,本文任意選用XC3S400的4個(gè)I/O口137—140?,分別與指紋傳感器MBF300的相應(yīng)管腳連接,見圖3所示。
??????????????
????3、指紋采集接口軟件設(shè)計(jì)與實(shí)現(xiàn)
????????接口時(shí)鐘采用傳感器內(nèi)部的12M時(shí)鐘,整個(gè)采集指紋圖像流程如圖4所示,主要有初始化,調(diào)整參數(shù),指紋采集,指紋存儲幾部分組成。
????3.1?初始化XC3S400和MBF300
????XC3S400為FPGA器件,因此在系統(tǒng)上電后先要對其進(jìn)行初始化,即從PROM中讀取配置數(shù)據(jù),以完成后面的指紋采集、特征點(diǎn)提取、存儲、比對等工作;初始化XC3S400之后,接著初始化指紋傳感器MBF300,其中部分VHDL源程序如下:
??????……
????ENTITY?ini_mbf300?IS
????????PORT(......
????pgc???:???INOUT?STD_LOGIC_VECTOR(7?DOWNTO?0);
????dtr????:???INOUT?STD_LOGIC_VECTOR(7?DOWNTO?0);
????dcr????:???INOUT?STD_LOGIC_VECTOR(7?DOWNTO?0);
????thr????:???INOUT?STD_LOGIC_VECTOR(7?DOWNTO?0);
????ctrlb???:???INOUT?STD_LOGIC_VECTOR(7?DOWNTO?0);
????isr?????:???INOUT?STD_LOGIC_VECTOR(7?DOWNTO?0);
????icr?????:???INOUT?STD_LOGIC_VECTOR(7?DOWNTO?0);
????......);--定義需要初始化的MBF300寄存器;
????END?ini_mbf300;
????ARCHITECTURE?ini_mbf300?OF?ini_mbf300?IS
????BEGIN
??????pgc?<=??"00000110?";??????--初始設(shè)置圖像增益為1.5;
????dtr??<=??"00111111";??????
????dcr??<=??"00000001";??????
????thr??<=??"00101100";
????ctrlb?<=??"00000001";?????--使能陣列,AD及時(shí)鐘;
????isr??<=??"00000011";?????--清空中斷;
????icr??<=??"01011001";?????--使能自動檢測;…...
????END?ini_mbf300;......
????3.2?調(diào)整MBF300參數(shù)
????調(diào)整MBF300參數(shù),也就是調(diào)整PGC、DTR、DCR三個(gè)寄存器的值來調(diào)整放電時(shí)間、放電電流速率和圖像的放大增益,直到獲得最佳質(zhì)量的圖像。
????3.3?采集指紋圖像
????XC3S400按照MBF300的SPI時(shí)序要求,在MOSI信號線上發(fā)送一系列讀寫MBF300寄存器的指令,并由MBF300在MISO信號線上發(fā)送A/D轉(zhuǎn)換后的指紋數(shù)據(jù),直到一幅完整的256*32的指紋圖像傳輸完畢。詳細(xì)的工作流程見圖5。
????3.4?存儲指紋圖像
????采集到的原始指紋圖像保存到片外SRAM中,地址空間為0000?0000?0000?0000~FFFF?FFFF?FFFF?FFFF。
????4?實(shí)驗(yàn)調(diào)試與結(jié)論
????指紋采集接口的整個(gè)程序的VHDL源代碼已經(jīng)通過調(diào)試,在ModelSim?SE?6.1b中成功仿真,F(xiàn)PGA的SPI時(shí)序與MBF300一致,完全能達(dá)到指紋采集的目的。于是將MBF300設(shè)置為DTR=0x15,DCR=0x20,PGC=0x01,通過SPI接口采集到的原始指紋數(shù)據(jù)通過圖2中的RS232接口傳送給PC機(jī),然后利用Matlab工具數(shù)據(jù)轉(zhuǎn)化得到如圖6的指紋圖像,它足以滿足后續(xù)的指紋特征點(diǎn)提取、比對等要求。??????????
????四、小結(jié)
????這種基于FPGA芯片XC3S400與固體指紋傳感器MBF300的SPI接口具有設(shè)計(jì)實(shí)現(xiàn)簡單,傳輸速率高的特點(diǎn),完全能勝任指紋采集的任務(wù)。而MBF300的高精度更能保證采集到的指紋圖像的質(zhì)量,這有利于簡化后續(xù)的指紋圖像增強(qiáng)、二值化等算法??傊?,基于FPGA與指紋傳感器的指紋采集系統(tǒng)的SPI接口的成功實(shí)現(xiàn),為指紋識別技術(shù)的SOC片上集成打開一個(gè)良好的開端。
????本文作者創(chuàng)新點(diǎn):
????雖然基于DSP或者ARM的指紋識別認(rèn)證系統(tǒng)已經(jīng)在考勤,門禁等領(lǐng)域?qū)崿F(xiàn)商品化,但這樣的嵌入式系統(tǒng)很難實(shí)現(xiàn)小型化集成化,更無法SOC,所以本文采用FPGA來實(shí)現(xiàn)指紋識別認(rèn)證系統(tǒng),利用FPGA高集成度,低功耗,短開發(fā)周期等優(yōu)點(diǎn),并以實(shí)現(xiàn)系統(tǒng)的ASIC為研究背景,具有很強(qiáng)的現(xiàn)實(shí)意義和廣闊的市場空間。
????只有保證高質(zhì)量的指紋采集才會保證高質(zhì)量的指紋識別認(rèn)證,因此本文主要介紹了基于FPGA的指紋識別系統(tǒng)的指紋采集接口部分的設(shè)計(jì)與實(shí)現(xiàn)方案,經(jīng)實(shí)驗(yàn)研究證實(shí)該接口完全能滿足實(shí)際需要,這為指紋識別系統(tǒng)的片上集成打開了一個(gè)良好的開端。????
????參考文獻(xiàn):
????[1]謝健陽,李鐵才,唐降龍等.指紋識別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).微計(jì)算機(jī)信息?.2006;22(3-2):156-157;
????[2]周寧婕,付宇卓,周煜.?基于DSP的指紋識別系統(tǒng)硬件平臺設(shè)計(jì).?計(jì)算機(jī)仿真.2005;22?(1):241-243;
????[3]黃林波,杜坤梅,謝建陽等.?基于ARM的指紋識別算法的研究與開發(fā).?哈爾濱商業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版).2005;?21(2):179-181;
????[4]沈小豐,?李小貝.便攜式指紋識別系統(tǒng)的設(shè)計(jì).自動化技術(shù)與應(yīng)用.2005;?24?(4):55-58
????[5]?MBF300?Solid?State?Fingerprint?Sweep?Sensor,Data?Sheet[Z].?2002
????[6]?Spartan-3?FPGA?Family:?Complete?Data?Sheet?[Z].?2005(fengminxing)
評論
查看更多