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