<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于TMS320VC5402的指紋識別系統

基于TMS320VC5402的指紋識別系統

作者: 時(shí)間:2004-12-06 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:重點(diǎn)介紹以為核心的的硬件設計,概括地說(shuō)明軟件設計方法,最后給出其硬件調試方法。

關(guān)鍵詞:DSP

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

1 總體設計

指紋系統總體設計方案如圖1所示。

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

1.1 存儲空間的軟硬件設計

本系統要訪(fǎng)問(wèn)的存儲器有三個(gè):DSP內部DARAM(16K字,用于存放常量和變量的數據空間)、SRAM和Flash。因為5402有20根地址線(xiàn)可以用來(lái)對程序空間尋址,所以有1M字節的尋址空間,利用高地址線(xiàn)A19來(lái)區分Flash和SRAM。其中SRAM是BootLoader后程序運行的空間,這樣就把Flash放在高地址上去了。5402的數據尋址空間僅為64K,所以要進(jìn)行分頁(yè)擴展。為了避免和DARAM的訪(fǎng)問(wèn)沖突,不能使用64K一頁(yè)。因為64K中低地址的16K實(shí)際上不能訪(fǎng)問(wèn),它優(yōu)先被64K中低地址的16K實(shí)現上不能訪(fǎng)問(wèn),它無(wú)被DARAM訪(fǎng)問(wèn),所以定為32K的一數據頁(yè)。分配一個(gè)I/O地址,而后通過(guò)I/O地址的譯碼對74LS273進(jìn)行使能控制,最后鎖存I/O的數據作數據頁(yè)。當對數據空間進(jìn)行訪(fǎng)問(wèn)時(shí),應分為以下幾步:

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

②判斷頁(yè)地址是否為0。如果為0,則說(shuō)明訪(fǎng)問(wèn)DARAM,直接使用訪(fǎng)問(wèn)數據的指令;需要的16位地址就是前15位的地址、高位補零,并結束。

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

④再使用訪(fǎng)問(wèn)數據的指令,需要的16位地址就是前15位的地址、高位補零。

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

圖2、圖3分別為外部程序擴展和數據空間擴展示意圖。

1.2 RS232通信接口軟硬件設計

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

①將SPCR中的XRST、RRST置為0,處于復位狀態(tài)。

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

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

④等待兩個(gè)時(shí)鐘周期,以確保McBSP在初始化過(guò)程中內部能夠正確地同步。

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

1.3 總線(xiàn)控制和驅動(dòng)

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

1.4 鍵盤(pán)與LCD接口的硬件設計

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

1.5 指紋圖像的獲取

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

2 軟件設計

2.1 主程序流程

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

2.2 鍵盤(pán)中斷程序

5402中與中斷有關(guān)的寄存器有三個(gè):IFR、IMR、PMST。在DspInitial()函數中,首先要設置好這些寄存器,而后在中斷程序中讀入鍵值。為了防止誤觸發(fā),在中斷的一開(kāi)始延時(shí)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=port00000x0FFF;

Switch(KEY)

……

}

2.3 BootLoader程序設計

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

①內部BOOT。利用片內的BOOT程序將自己編制的BOOT程序從Flash移至內部的RAM中。

②用戶(hù)BOOT。內部BOOT完成后,開(kāi)始執行自己的BOOT程序。利用DSP的擴展尋址方法,自已編制的BOOT編程中從Flash讀取代碼。

③用戶(hù)BOOT完成后,跳至用戶(hù)程序開(kāi)始運行。

2.4 指紋識別核心算法程序

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

①背景分離。采用標準差閾值跟蹤法,圖像的指紋部分是由黑白相同的紋理組成的,灰度變化很大,具有較大的標準差;而背景部分灰度分布比較平坦,標準差小,因此計算以各點(diǎn)為中心的一組像素的標準差,當標準差大于某一門(mén)限時(shí),就可以確定該點(diǎn)為前景,否則為背景。

②計算方向圖。采用法線(xiàn)向量的方法,其中還涉及到方向場(chǎng)的平滑。

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

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

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

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

3 系統調試方法

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

結語(yǔ)

該系統具有很強的實(shí)用性,充分體現了DSP強大的數值運算能力;但該系統僅實(shí)現了軟硬件的初步研制與開(kāi)發(fā),離產(chǎn)品化還有一段距離,還有許多工作要做。



關(guān)鍵詞: 系統 指紋識別 TMS320VC5402 基于

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>