歡迎您光臨本站 登入註冊首頁

嵌入式指紋處理模塊設計與實現

admin @ 2014-03-25 , reply:0

概述

一、引言   人體的指紋由於具有長期不變性、穩定性和難於偽造等特點,已經成為現代生物識別技術的首選,自動指紋識別系統(AFIS)是指集指紋圖像的採集、識別並給出身份驗證結……

一、引言
    人體的指紋由於具有長期不變性、穩定性和難於偽造等特點,已經成為現代生物識別技術的首選, 自動指紋識別系統(AFIS)是指集指紋圖像的採集、識別並給出身份驗證結果為一體的軟硬體相結合的系統。目前,自動指紋識別系統可以分為兩類:一類是用專門的硬體設備來採集指紋圖像,然後將採集到的圖像傳送給上位機,利用上位機強大的運算能力和海量的指紋特徵庫,來實現指紋的識別。一類是將指紋的採集與識別在一個嵌入式系統中完成,這類系統通常是用DSP這類具有高速運算能力的器件來構建。由於嵌入式指紋識別系統存在價格低廉、使用靈活方便等優點,越來越受到人們的重視。本文的目的就是要搭建一款低成本的嵌入式指紋處理模塊,使其具有獨立的指紋圖像採集與識別並給出識別結果的能力。

二、模塊硬體組成
    對於嵌入式指紋處理模塊硬體的構建,考慮到整個模塊所需實現的功能、成本和處理速度的要求,選用TI公司生產的DSP處理器TMS320VC5402作為整個模塊的核心處理晶元,它是TI公司推出的一款性價比極高的DSP處理器,其內部包括4KW 的ROM,16KW 片內DARAM,2個定時器,4個外部中斷,外部程序空間可擴展到1MW,並且它可工作在3種低功耗方式(IDLE1,IDLE2,IDLE3),能較好的滿足本模塊需要。指紋圖像採集晶元選擇FUJITSU公司推出的新一代固態指紋感測器MBF200。它是一款專為嵌入式系統設計的高性能、低功耗的電容指紋感測器。由於TMS320VC5402掉電不保存程序且一幅經MBF200採集的解析度為256×300的指紋圖像需要75KB存儲空間,所以整個模塊外擴了容量為256KW 的FLASH和SRAM 各一片用於存儲整個系統的程序和指紋圖像數據。為了提高模塊的可擴展性和適用性,採用USB介面晶元CH375擴展了模塊的USB介面,使模塊具有了外掛海量存儲器和與上位機進行通行的能力。由於TMS320VC5402的16根數據可以作為通用I/O口使用,採用兩片8位的匯流排緩衝器74HC245來實現本模塊的ID設置。此外,系統還選用一片Altera生產的全局邏輯控制器EPM3032AE來實現整個模塊的邏輯控制。
    系統的工作原理可描述如下:通過小鍵盤輸入ID號碼,如果用戶輸入的ID號正確,MBF200採集用戶的指紋,利用DSP和CPLD將指紋圖像存儲到SRAM 中,在數據處理階段,DSP將SRAM 中的數據分塊取到其內部的16KW RAM 中作為指紋圖像處理以及識別演算法的臨時數據,將處理結果與FLASH 中預先採集提取的特徵指紋進行匹配,並用LCD顯示識別結果。系統的原理框圖如圖1所示。
 
1、模塊邏輯功能實現
    模塊邏輯部分主要是為整個系統提供片選信號和讀寫控制信號,它是整個模塊正常工作的核心,本系統選用CPLD晶元EPM3032AE來完成該部分的功能。TMS320VC5402可供訪問的存儲器空間有3個:1MW 的程序存儲空間、64KW的數據空間,64KW 的I/O空間,系統設計時將外擴的256KW的FLASH及SRAM 都映射到數據空間,這兩者應分時佔據數據空間的,所以訪問不同存儲器晶元時需要分別為它們安排選通信號,該選通信號可由DSP的數據空間選擇信號/DS和TMS320VC5402的通用I/O口信號XF相“或”來實現,即FLASH的片選型號由/DS與XF相“或”產生,SRAM 的片選信號由DS#與XF的“非”相“或”產生。模塊上電后,TMS320VC5402的XF引腳輸出為高電平,此時由FLASH佔用數據空間,“BootLoader”開始運行,Load完成後,編寫程序使TMS320VC5402的XF引腳輸出低電平使系統放棄FLASH 而選通SRAM,從而使SRAM 佔用數據空問。
    另外,我們將指紋感測器MBF200、USB介面晶元CH375、LCD 以及小鍵盤都映射到TMS320VC5402的I/O 空問,要在訪問它們時不發生訪問衝突,需要對對它們進行編址。採用DSP的數據線A15、A14、A13對映射到DSP的I/O空間外圍設備進行編址,具體實現過程如下:在EPM3032AE中設計一個三.八解碼器,A15、A14、A13作為輸入端,其八個低電平有效的輸出端作為各外圍設備的片選使能信號,由於系統選用的MBF200、液晶SED1335F、CH375都具有一根地址線A0,用來在功能寄存器和數據寄存器之間切換,所以也需要將DSP的A0接入各外圍晶元的A0,讓它們分別佔用兩個地址位。模塊中映射到I/O空間的各外圍設備的地址如表1所示(在表中的第二欄中未列出的地址線A2.A12可以為任意狀態)。在軟體編程時,對I/O空間的相應地址的訪問,就是對映射到I/O空間各種外圍設備的訪問,例如對I/O空間0x0000~0x1FFE(注意要保證地址位A0為低電平)的讀寫,就是對指紋感測器命令寄存器的讀寫。對於系統各個晶元的讀寫信號,CPLD 主要完成將TMS320VC5402的MOTOROLA格式的讀寫信號轉化為INTEL格式的讀寫信號,如Flash及SRAM 的讀信號通過DSP的/MSTRB與R/W 信號進行“或”運算得到,Flash及SRAM 的寫信號通過DSP 的R/W 信號的非運算后再與/MSTRB進行或運算得到;同理將DSP的/IOSTRB 與R/W進行相類似的邏輯運算便可得到I/O 空間的讀寫信號。採用Altera公司的Maxplus II軟體進行VHDL語言編程,可較為容易的實現該系統所需的邏輯功能。

表1 映射到I/O空間的外圍設備編址
功能/名稱 A15/A14/A13/A0狀態 I/O空間地址/區域 操作
MBF200命令寄存器 0\0\0\0 0x1000-0x1FFE(A0=0) 8位可讀寫
MBF200數據寄存器 0\0\01 0x1001-0x1FFF(A0=1) 8位可讀寫
LCD命令寄存器 0\01\0 0x3000-0x3FFE(A0=0) 8位可讀寫
LCD數據寄存器 0\011 0x3001-0x3FFF(A0=0) 8位可讀寫
CH375命令寄存器 01\0\0 0x5000-0x5FFE(A0=0) 8位可讀寫
CH375數據寄存器 0111 0x5001-0x5FFF(A0=0) 8位可讀寫
小鍵盤數據寄存器 10\0x 0x5001-0x5FFF 16位可讀寫


2、程序與數據空間的擴展
    系統要訪問的存儲器有三個:TMS320VC5402 內部16KW 的DRAM,系統外擴的256KW 的FLASH和SRAM。對於本系統使用的DSP,其數據空間的定址範圍為64KW,而系統擴展的SRAM 為256KW,怎樣對高地址的196KW 的數據空間進行訪問, 借鑒TMS320VC5402程序空間分頁定址的方法,對數據空間進行分頁定址,方法如下:將SRAM的16根數據線(D0-D15)、低16位地址線(A0-A15)與TMS320VC5402對應的數據線、地址線直接相連,而將HD0-HD1通過寄存器GPIOCR編程設置成輸出作為SRAM 的A16、A17的地址發生信號,即當HD0=0、HD1=0時訪問數據空間的第一頁,HD0=0、HD1=1時,訪問數據空間的第二頁,依次類推就把外擴的SRAM 分成容量為64KW 的四頁。由於DSP訪問其內部的16KW 的DRAM 時,外部地址線保持為高電平, 所以其內部的自帶的16KWDRAM 佔據了每一頁的低16KW 的數據空間,這和程序空間的分頁擴展是類似的,這樣的數據空間地址分別為:0x4000~0xFFFF(HD1=0、HD0=0)、0x14000~0x1FFFF (HD1=0、HD0=I)、0x24000~0x2FFFF(HD1=1、HD1=0)、0x34000~0x3FFFF (HD1=1、HD1=1),在編程訪問時必須首先配置HD0、HD1的相應狀態,才能正
確對數據空間進行訪問。至於FLASH晶元的與DSP的連接,由於系統運行時用不到FLASH 的高地址空間,所以可將它們的地址線、數據線對應連接就可以了。

3、指紋採集與識別部分硬體設計
    該部分主要由TMS320VC5402和指紋感測器MBF200組成。MBF200提供三種介面:
(1)SPI:只需6條線就可以與帶SPI介面的微處理器連接;
(2)USB:可作為標準的USB設備來使用;
(3)MCU:MBF200內置的標準8位微處理器匯流排。
    本文採用了MBF200的MCU模式獲取指紋圖像。它與DSP和CPLD的硬體連接如下:感測器的8位數據線直接與TMS320VC5402 的低8位數據線相連,讀寫信號線由EPM3032AE控制(具體實現方法見本文邏輯控制部分),通過編程可將採集到的指紋圖像數據直接存儲到SRAM 四頁中的任意一頁或兩頁中, 由於SRAM 每頁最多只能提供48KW 的數據空間,為了後續編寫指紋識別程序的方便,編寫程序設置MBF200的寄存器將採集圖像數據控制在48KB以內,本文所採集的指紋圖像像素為220×220,存於SRAM的第一頁。另外,需要注意的是MBF200的兩種起振方式:採用內部多諧振蕩器起振,將MBF200的FSET 管腳通過者外接晶體振蕩電路,使用外部時鐘時通過XTAL1.XTAL2連接晶體電路來產生時鐘信號。本文通過設置MBF200寄存器CTRLB的XTALSEL位為低採用第一種起振方式。指紋採集部分的硬體連接如圖2所示。
 
圖2 指紋採集部分硬體連接圖
4、模塊的USB介面擴展
    考慮到模塊板可能需要外掛海量存儲器存儲指紋模版及與PC機等上位機進行通信,採用CH375擴展了系統的USB介面,它是一個USB匯流排的通用設備介面晶元,無需用戶編寫驅動程序,CH375以C語言子程序庫提供了USB存儲設備的文件級介面,這些應用層接ISIAPI包含了常用的文件級操作,可以方便移植並嵌入到各種常用的單片機程序中,這樣對USB 設備的通信就幾乎和訪問本地硬碟一樣。它具有8位數據匯流排(D0-D7)、讀(/RD)、寫(/WR)、片選控制線(/CS)以及中斷輸出(/INT),可以方便地與TMS320VC5402進行連接。另外CH375有一個地址線A0,它佔用兩個地址位,當A0引腳為高電平時選擇命令埠,可以寫入命令;當A0引腳為低電平時選擇數據埠,可以讀寫數據,其硬體連接如圖3所示。
 
圖3 USB擴展硬體連接圖

三、嵌入式軟體系統框架的構建
    在各功能模塊軟硬體調試通過後,就要考慮構建整個模塊的軟體系統,使其能完成預定的工作,模塊的預定工作流程如圖4所示,主要包括以下幾個部分:
(1)系統初始化
    該部分的工作主要包括系統工作時鐘設置、中斷設置和各寄存器的設置。
(2)密碼識別
    該部分主要實現確認用戶ID和更改用戶ID 的功能。
(3)指紋圖像的採集與識別
    該部分主要實現指紋圖像的採集與識別的功能。
(4)USB介面通信
    該部分實現系統與上位機進行USB介面通行和訪問外掛海量儲存器的功能。
 
圖4 模塊程序流程圖
    TMS320VC5402提供了四個外部中斷,系統設計時將INT0用於觸發密碼識別,INTI用於觸髮指紋圖像採集和識別,INT2用於觸發USB介面通信。在軟體程序的開發中,為了減小中斷服務程序的程序量,引入WINDOWS消息觸發的編程思想,在程序中設計了一個隊列,在中斷服務程序中,只是將中斷類型添加入該隊列中,在主程序的死循環中不斷掃描中斷隊列是否有中斷,有則取出隊列中的第一個中斷類型,進行相應處理,沒有中斷就使模塊進入節電模式,程序框架如下:
main()
{
int i,ImageFlag,intType1,intType;
/**********初始化目標板*********/
Init_Board();
InitQueue(&q);//初始化隊列
while(1)//進入死循環
{
if(!emptyQueue(&q))
{/*刪除隊列中的首節點,並返回該節點的值域*/
intType1=outQueue(&q);
/*根據中斷類型觸發各個功能模塊*/
switch(intType1)
{
case 0:
PassWord_Get();//調用密碼識別程序
case 1:
ImageGet(0x4000,0x01);//獲得指紋圖像
FVSStart0; break;//調用指紋識別程序
case 2:
CH375();break;//進行USB介面通信
default: break;
}
}else Idle1();//進入節電模式
}
}
/*外部中斷0觸發密碼驗證模塊*/
interrupt void Int0()
{
intType=0;
enQueue(&q,intType);//在隊列尾加入新的中斷
}
interrupt void Int1()/* 外部中斷1觸發圖像採集及識別模塊*/
{
intType=1;
enQueue(&q,intType);//在隊列尾加入新的中斷
}
interrupt void Int2() /*外部中斷2觸發USB介面通信模塊*/
{
intType=2;
enQueue(&q,intType);//在隊列尾加入新的中斷
}

四、結論
    本文採用了基於TMS320VC5402和MBF200的嵌入式技術,設計了一個能獨立運行的嵌入式自動指紋識別系統,並根據各硬體模塊的組成構建了系統的嵌入式軟體框架。實驗表明本系統板能實現快速的指紋圖像採集和用戶ID識別,採集的指紋圖像如圖5所示。在此基礎上加入指紋圖像預處理、指紋特徵提取以及指紋匹配等指紋識別演算法程序,能夠構成一個完整的指紋識別系統。
 


[admin via 研發互助社區 ] 嵌入式指紋處理模塊設計與實現已經有2294次圍觀

http://cocdig.com/docs/show-post-42141.html