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