《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于TMS320VC5402的指紋識別系統(tǒng)
基于TMS320VC5402的指紋識別系統(tǒng)
摘要: 重點介紹以TMS320VC5402為核心的指紋識別系統(tǒng)的硬件設(shè)計,,概括地說明軟件設(shè)計方法,最后給出其硬件調(diào)試方法,。
關(guān)鍵詞: DSP 指紋識別 TMS320VC5402
Abstract:
Key words :

  指紋識別作為生物特征識別的一種,,有其不可比擬的優(yōu)點。由于可以隨身攜帶這種特殊的“印章”,,所以受到越來越多人的重視,。本系統(tǒng)使用TI的TMS320VC5402(以下簡稱5402)作為核心。DSP與單片機相比,,多用于算法比較復(fù)雜,,乘加運算量比較大的場合,。該芯片為一款定點的DSP,它具有高達(dá)100MIPS的運算能力,,同時具有優(yōu)化的CPU結(jié)構(gòu)和一系列的智能外設(shè),。下面著重討論基于該芯片的系統(tǒng)設(shè)計。

  1 總體設(shè)計

  指紋系統(tǒng)總體設(shè)計方案如圖1所示,。

指紋系統(tǒng)總體設(shè)計方案

  該系統(tǒng)是由指紋采集儀,、FPGA、SRAM和Flash等硬件組成,。RS232用于數(shù)據(jù)傳輸,,PC機可以通過該接口得到指紋特征數(shù)據(jù);Flash存儲指紋信息庫,、LCD用的字符和DSP程序,;FPGA在DSP的控制下從取指器中取出圖放入SRAM中,;小鍵盤用于用戶輸入ID號碼,,增強該系統(tǒng)的安全等級。

  1.1 存儲空間的軟硬件設(shè)計

  本系統(tǒng)要訪問的存儲器有三個:DSP內(nèi)部DARAM(16K字,,用于存放常量和變量的數(shù)據(jù)空間),、SRAM和Flash。因為5402有20根地址線可以用來對程序空間尋址,,所以有1M字節(jié)的尋址空間,,利用高地址線A

 

19來區(qū)分Flash和SRAM。其中SRAM是BootLoader后程序運行的空間,,這樣就把Flash放在高地址上去了。5402的數(shù)據(jù)尋址空間僅為64K,所以要進(jìn)行分頁擴展,。為了避免和DARAM的訪問沖突,,不能使用64K一頁。因為64K中低地址的16K實際上不能訪問,,它優(yōu)先被64K中低地址的16K實現(xiàn)上不能訪問,,它無被DARAM訪問,所以定為32K的一數(shù)據(jù)頁,。分配一個I/O地址,,而后通過I/O地址的譯碼對74LS273進(jìn)行使能控制,最后鎖存I/O的數(shù)據(jù)作數(shù)據(jù)頁,。當(dāng)對數(shù)據(jù)空間進(jìn)行訪問時,,應(yīng)分為以下幾步:

 

  ①解析該地址,,進(jìn)行分割,。前(低)15位為頁內(nèi)地址,,后(高)6位為頁地址。

 ?、谂袛囗摰刂肥欠駷?,。如果為0,則說明訪問DARAM,,直接使用訪問數(shù)據(jù)的指令,;需要的16位地址就是前15位的地址、高位補零,,并結(jié)束,。

  ③把頁地址用PORTW命令送到寄存器(所分配的I/O空間地址)里,,頁地址也就在SRAM的高地址線上了,。

  ④再使用訪問數(shù)據(jù)的指令,,需要的16位地址就是前15位的地址,、高位補零。

  對存儲器的管理,,需要編寫一定量的程序,。可以設(shè)置一個全局變量存儲頁地址,。由于擴展頁僅為32K,,大于32K的數(shù)組是開辟不出來的,所以使用鏈表,。需要注意的是釋放空間時,,把相鄰的未使用的空間盡量連接成一大塊,同時需要一個接一個地把用過的堆??截惖蕉芽臻g的尾部,,使自己空間聚合成一個大塊。

  圖2,、圖3分別為外部程序擴展和數(shù)據(jù)空間擴展示意圖,。

擴展示意圖

  1.2 RS232通信接口軟硬件設(shè)計

  該系統(tǒng)使用MAX3110E連接DSP與PC機,通過軟件控制分頻比可獲得通用的300baud~230kbaud的波特率,。MAX3110E內(nèi)部UART與RS232收發(fā)器能夠獨立工作,。McBSP的時鐘停止模式可以兼容SPI主-從協(xié)議。所謂McBSP的時鐘停止模式是指其時鐘會在每次數(shù)據(jù)傳輸結(jié)束時停止,,并在下次數(shù)據(jù)傳輸開始時立即啟動或延半個周期再啟動,。其接收器和發(fā)送器是同步的,即CLKX和FSX分別與CLKR和FSR相連;在傳輸過程中,,CLKX和FSX又分別用做SPI的移位時鐘SCK和從方使能SS,,可以是輸出(主方),也可以輸入(從方),。其McBSP初始化編程應(yīng)遵守以下幾個步驟:

 ?、賹PCR中的XRST、RRST置為0,,處于復(fù)位狀態(tài),。

  ②McBSP保持復(fù)位的狀態(tài)下,,設(shè)置有關(guān)的寄存器為需要的值,。由于SPI協(xié)議要求McBSP在移位輸出數(shù)據(jù)之前,F(xiàn)SX信號必須由DXR->XSR產(chǎn)生FSX,,所以XCR寄存器中XDATALY位必須設(shè)置為1,。

  ③設(shè)置SPCR->GRST為1,,采樣率發(fā)生器退出復(fù)位狀態(tài),,開始工作。

 ?、艿却齼蓚€時鐘周期,,以確保McBSP在初始化過程中內(nèi)部能夠正確地同步,。

  而后,,配置MAX3110E的波特率和發(fā)送波形,發(fā)送數(shù)據(jù)時根據(jù)MAX3110E的數(shù)據(jù)手冊拼裝成一個16位的字進(jìn)行發(fā)送,。接收通過DSP的Int0中斷進(jìn)行處理,。

  1.3 總線控制和驅(qū)動

  本系統(tǒng)中總線有兩種:數(shù)據(jù)總線和地址總線。數(shù)據(jù)總線進(jìn)行數(shù)據(jù)交換,,地址總線進(jìn)行尋址,。因為DSP的數(shù)據(jù)總線是3.3V的高電平邏輯值,可能出現(xiàn)不能驅(qū)動外部5V的邏輯電平的情況,;而且連接在動能力不足,。因此,需要對總線,,特別是數(shù)據(jù)總線進(jìn)行加強驅(qū)動能力的設(shè)計,。其中數(shù)據(jù)總線使用SN74LVTH16245來進(jìn)行驅(qū)動向驅(qū)動;地址總線是單向的,,沒有方向的控制,,也沒有使能的控制,使用SN74LVTH16244單向驅(qū)動器就可以了。對于數(shù)據(jù)總線的控制,,按照所邏輯合理使用了DSP_MSTRB,。DSP_IOSTRB、R/W就可以完成了,。

 

  1.4 鍵盤與LCD接口的硬件設(shè)計

  鍵盤和LCD都是I/O器件,,分配兩個I/O空間的地址,通過對地址的譯碼產(chǎn)生使能控制LCD和鍵盤,。鍵盤上有12個按鍵,,用10kΩ電阻拉高,同時使用與邏輯連接這12根線,,輸出的邏輯電平接DSP中斷Int2,,在中斷服務(wù)程序中使用PORTR命令讀入鍵值。LCD用于顯示界面信息,。本系統(tǒng)使用LC1611字符點陣模塊,。

  1.5 指紋圖像的獲取

  采用Altera公司的Maxplus II軟件進(jìn)行VHDL語言編程。按照一定的時序,,把指紋圖像放大SRAM的固定地址中,,這一部分調(diào)試有些麻煩,可以放在最后做,,而圖像的獲取可使用CCS2.0下的file->data->load把圖像文件放入指定的內(nèi)存區(qū)域,。此圖像文件為CCS數(shù)據(jù)文件,可以編寫一段C程序把BMP文件轉(zhuǎn)換成CCS文件,。另一種比較方便的方法是用DSP編寫一個小程序,,使用fopen()、fread()等函數(shù)把圖像讀入內(nèi)存,,然后使用file->data->save保存成CCS文件,。

  2 軟件設(shè)計

  2.1 主程序流程

  主流程就是要實現(xiàn)把各部分的程序連接成一個有機的整體,并能夠通過液晶顯示和小鍵盤響應(yīng)實現(xiàn)和用戶的交互,。所以,,它的任務(wù)就是能夠響應(yīng)小鍵盤,根據(jù)不同的鍵值執(zhí)行不同的操作,,同時顯示不同的頁面,。系統(tǒng)主流程如圖4所示。

系統(tǒng)主流程

  2.2 鍵盤中斷程序

  5402中與中斷有關(guān)的寄存器有三個:IFR,、IMR,、PMST。在DspInitial()函數(shù)中,,首先要設(shè)置好這些寄存器,,而后在中斷程序中讀入鍵值。為了防止誤觸發(fā),在中斷的一開始延時3ms,。其核心代碼如下:

  ioport unsigned char port0000;

  volatile unsigned int* IMR=(volatile unsigned int *) 0x0000;

  ……

  volatile unsigned int* PMST=(volatile unsigned int *) 0x001D;

  main(){

  DspInitial();

  ……

  }

  interrupt void isr_int0(){

  delay3ms();

  KEY=port0000&0x0FFF;

  Switch(KEY)

  ……

  }

  2.3 BootLoader程序設(shè)計

  該系統(tǒng)為最小系統(tǒng),,需要脫離開發(fā)系統(tǒng)運行,因此須進(jìn)行BootLoader設(shè)計,。在系統(tǒng)上電以后自動把程序和數(shù)據(jù)從外部存儲器Flash讀SRAM中,,但問題是用戶程序超過了32K,所以必須采用以下特殊的BOOT方法,。

 ?、賰?nèi)部BOOT。利用片內(nèi)的BOOT程序?qū)⒆约壕幹频腂OOT程序從Flash移至內(nèi)部的RAM中,。

 ?、谟脩鬊OOT。內(nèi)部BOOT完成后,,開始執(zhí)行自己的BOOT程序,。利用DSP的擴展尋址方法,自已編制的BOOT編程中從Flash讀取代碼,。

 ?、塾脩鬊OOT完成后,跳至用戶程序開始運行,。

 

  2.4 指紋識別核心算法程序

  本系統(tǒng)使用的指紋算法主要分為五部分,,其算法的可靠性已經(jīng)isual C++ 6.0進(jìn)行了驗證,具體算法如下:

 ?、俦尘胺蛛x,。采用標(biāo)準(zhǔn)差閾值跟蹤法,圖像的指紋部分是由黑白相同的紋理組成的,,灰度變化很大,,具有較大的標(biāo)準(zhǔn)差;而背景部分灰度分布比較平坦,,標(biāo)準(zhǔn)差小,因此計算以各點為中心的一組像素的標(biāo)準(zhǔn)差,,當(dāng)標(biāo)準(zhǔn)差大于某一門限時,,就可以確定該點為前景,否則為背景,。

 ?、谟嬎惴较驁D。采用基于法線向量的方法,,其中還涉及到方向場的平滑,。

  ③方向濾波。設(shè)計一個水平模板,,然后將水平模板旋轉(zhuǎn)到需增強的方向進(jìn)行濾波,。

  ④奇異點檢測,。區(qū)分出奇異點,,如核形(core)、三角形(delta),、渦輪形(whorl),。

  ⑤特征點提取,。采用脊跟蹤法,,其基本思想是直接對圖像進(jìn)行脊線跟蹤,在跟蹤過程中檢測特征點,。以上便是所采用指紋算法的核心思想,。

  在DSP編程中把它分成五個任務(wù)模塊,每一個模塊都必須注意頁面寄存器的值,,如果程序僅在SRAM中運行會浪費大量的時鐘,,所以把部分程序和數(shù)據(jù)放入DSP的內(nèi)部。根據(jù)自己編程的體會,,程序和數(shù)據(jù)的一次連續(xù)處理不會超過64K,,所以可以把核心的程序常駐5402內(nèi)1K的空間,再留有7~8K的空間調(diào)用所需的程序,,余下的7K用于存放數(shù)據(jù),。但考慮到該方法程序編寫的復(fù)雜性,僅在圖像濾波中使用,,因為濾波方法簡單而有規(guī)律,。為了提高效率,可以開辟兩個存儲區(qū)(PING-PONG型),,當(dāng)一塊用于DMA傳輸時,,另一塊讓DSP進(jìn)行計算。最后一點,,因為5402是定點的,,所以要對整個系統(tǒng)進(jìn)行定標(biāo)。

 

 

  3 系統(tǒng)調(diào)試方法

  設(shè)計并加工好印制電路板后,,就進(jìn)入了硬件調(diào)試階段,。首先應(yīng)對電路板作細(xì)致的常規(guī)檢查,防止短路和斷路情況的發(fā)生,。加電后,,檢查晶體是否振蕩,,復(fù)位是否正確可靠,而后用示波器檢查5402的輸出時鐘CLKOUT是否按照指定時鐘模式工作,。在作完這些檢查賓,,就可以進(jìn)入系統(tǒng)硬件調(diào)試階段。在硬件仿真時,,首先要配置目標(biāo)系統(tǒng)的存儲器映像,,這是通過設(shè)置仿真器命令文件實現(xiàn)的??梢栽诜抡嬲{(diào)試軟件目錄下改寫emuinit.cmd,,使之每次啟動仿真器時自動加載,也可以在啟動仿真器后手動加載命令文件以初始化目標(biāo)存儲器映像,。一般而言,,仿真器存儲器映像與連接器存儲器映像應(yīng)一致。對SRAM的調(diào)試的基本思想是,,首先對SRAM的兩具單元初始化為兩個不同的值,,而后調(diào)試的主程序不斷交替這兩個單元的數(shù)值。具體方法是從一個單元讀出數(shù)據(jù)寫入另一個單元,,由累加器作為傳遞單元,。使用Debugger軟件,查看相應(yīng)的SRAM單元,,若確實將照設(shè)定交替變化,,則表明該部分沒有問題。對于鍵盤和LCD的調(diào)試,,其方法不難,,這里不再詳細(xì)闡述。

 

  結(jié)語

  該系統(tǒng)具有很強的實用性,,充分體現(xiàn)了DSP強大的數(shù)值運算能力,;但該系統(tǒng)僅實現(xiàn)了軟硬件的初步研制與開發(fā),

 

離產(chǎn)品化還有一段距離,,還有許多工作要做,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。