一、引言
人體的指紋由於具有長期不變性、穩定性和難於偽造等特點,已經成為現代生物識別技術的首選, 自動指紋識別系統(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語言編程,可較為容易的實現該系統所需的邏輯功能。
功能/名稱 | 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位可讀寫 |
三、嵌入式軟體系統框架的構建
在各功能模塊軟硬體調試通過後,就要考慮構建整個模塊的軟體系統,使其能完成預定的工作,模塊的預定工作流程如圖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