《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于TMS320VC5402的指紋識別系統
基于TMS320VC5402的指紋識別系統
摘要: 重點介紹以TMS320VC5402為核心的指紋識別系統的硬件設計,概括地說明軟件設計方法,最后給出其硬件調試方法。
Abstract:
Key words :

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

  1 總體設計

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

指紋系統總體設計方案

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

  1.1 存儲空間的軟硬件設計

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

 

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

 

 ?、俳馕鲈摰刂?,進行分割。前(低)15位為頁內地址,后(高)6位為頁地址。

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

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

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

  對存儲器的管理,需要編寫一定量的程序??梢栽O置一個全局變量存儲頁地址。由于擴展頁僅為32K,大于32K的數組是開辟不出來的,所以使用鏈表。需要注意的是釋放空間時,把相鄰的未使用的空間盡量連接成一大塊,同時需要一個接一個地把用過的堆棧拷貝到堆空間的尾部,使自己空間聚合成一個大塊。

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

擴展示意圖

  1.2 RS232通信接口軟硬件設計

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

 ?、賹PCR中的XRST、RRST置為0,處于復位狀態。

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

  ③設置SPCR->GRST為1,采樣率發生器退出復位狀態,開始工作。

  ④等待兩個時鐘周期,以確保McBSP在初始化過程中內部能夠正確地同步。

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

  1.3 總線控制和驅動

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

 

  1.4 鍵盤與LCD接口的硬件設計

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

  1.5 指紋圖像的獲取

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

  2 軟件設計

  2.1 主程序流程

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

系統主流程

  2.2 鍵盤中斷程序

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

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

 ?、賰炔緽OOT。利用片內的BOOT程序將自己編制的BOOT程序從Flash移至內部的RAM中。

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

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

 

  2.4 指紋識別核心算法程序

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

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

  ②計算方向圖。采用基于法線向量的方法,其中還涉及到方向場的平滑。

 ?、鄯较驗V波。設計一個水平模板,然后將水平模板旋轉到需增強的方向進行濾波。

 ?、芷娈慄c檢測。區分出奇異點,如核形(core)、三角形(delta)、渦輪形(whorl)。

 ?、萏卣鼽c提取。采用脊跟蹤法,其基本思想是直接對圖像進行脊線跟蹤,在跟蹤過程中檢測特征點。以上便是所采用指紋算法的核心思想。

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

 

 

  3 系統調試方法

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

 

  結語

  該系統具有很強的實用性,充分體現了DSP強大的數值運算能力;但該系統僅實現了軟硬件的初步研制與開發,

 

離產品化還有一段距離,還有許多工作要做。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
在线观看国产日韩| 久久激情五月激情| 红桃视频成人| 国产日产精品一区二区三区四区的观看方式 | 久久婷婷丁香| 久久综合精品一区| 玖玖玖国产精品| 久久在线视频| 免费高清在线视频一区·| 免费国产一区二区| 欧美成人在线免费观看| 欧美激情一二区| 欧美日韩国产成人| 欧美视频在线视频| 国产精品久久一级| 国产区精品在线观看| 国产欧美一区二区精品性 | 99精品国产在热久久下载| 日韩午夜电影| 一本色道久久综合狠狠躁篇怎么玩 | 欧美在线播放一区| 欧美在线日韩| 久久久青草婷婷精品综合日韩| 久久久噜噜噜| 你懂的国产精品永久在线| 欧美国产日产韩国视频| 欧美激情中文字幕乱码免费| 欧美精品一区二区在线观看| 欧美日韩精品是欧美日韩精品| 欧美日韩一区二区三区在线 | 亚洲永久免费精品| 欧美自拍偷拍午夜视频| 久久理论片午夜琪琪电影网| 欧美ab在线视频| 欧美日韩国产精品一卡| 国产精品久久久久高潮| 国产日韩欧美高清免费| 极品尤物一区二区三区| 亚洲日本在线视频观看| 亚洲少妇在线| 久久狠狠婷婷| 在线亚洲精品| 欧美一区二区视频免费观看| 久久久久久久网| 欧美精品一区二区三区视频| 国产精品久久婷婷六月丁香| 韩国欧美国产1区| 亚洲激情av| 亚洲欧美日韩国产| 亚洲精品久久久久久久久久久久久 | 一区二区欧美激情| 欧美怡红院视频一区二区三区| 久久视频精品在线| 欧美午夜片在线观看| 国产一区二区三区免费在线观看 | 久久国产视频网| 亚洲肉体裸体xxxx137| 亚洲女人天堂av| 免费久久99精品国产自| 欧美色精品天天在线观看视频| 国产亚洲a∨片在线观看| 亚洲人成人一区二区三区| 亚洲女人天堂成人av在线| 91久久久亚洲精品| 欧美一区二区观看视频| 欧美国产日韩一区| 国产欧美精品一区二区色综合 | 久久福利资源站| 中文久久精品| 老司机67194精品线观看| 欧美天天在线| 激情成人av在线| 亚洲一区二区三区精品视频| 亚洲日本中文字幕| 久久riav二区三区| 欧美日韩精品免费观看视频完整| 国产综合自拍| 亚洲一区综合| 亚洲午夜一区二区三区| 欧美3dxxxxhd| 国产一级揄自揄精品视频| 一区二区三区高清在线| 亚洲精品国产精品国自产观看| 欧美在线地址| 国产精品扒开腿做爽爽爽视频| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲欧美综合国产精品一区| 这里只有视频精品| 欧美国产综合| 一区免费在线| 欧美在线观看天堂一区二区三区| 亚洲一区免费| 欧美日韩国产一区二区三区| 在线视频国产日韩| 久久国产日韩| 久久久久久夜精品精品免费| 国产精品午夜国产小视频| 日韩图片一区| 亚洲精品影院| 免费在线成人| 亚洲电影在线观看| 亚洲第一偷拍| 久久久亚洲综合| 国产在线高清精品| 午夜视频久久久| 欧美亚洲三区| 国产精品一区二区久久久久| 一本久久综合| 亚洲一区二区精品在线| 欧美日韩国产页| 日韩亚洲欧美高清| 亚洲色在线视频| 欧美日韩精品高清| 日韩手机在线导航| 亚洲亚洲精品三区日韩精品在线视频| 欧美另类在线观看| 亚洲日韩欧美视频| 99视频有精品| 欧美日韩另类丝袜其他| 亚洲免费观看在线观看| av成人国产| 欧美日韩国产一区二区三区地区| 亚洲乱码精品一二三四区日韩在线 | 欧美中文在线免费| 久久综合久久88| 久久精品一区| 国产精品日日摸夜夜添夜夜av| 日韩午夜激情| 亚洲一区中文字幕在线观看| 欧美无乱码久久久免费午夜一区 | 久久精品人人爽| 麻豆9191精品国产| 亚洲人成在线观看一区二区| 日韩亚洲欧美综合| 欧美视频久久| 亚洲免费伊人电影在线观看av| 午夜精品久久久久久| 国产精品永久免费视频| 欧美中文在线观看国产| 女人香蕉久久**毛片精品| 亚洲精品少妇| 亚洲欧美日韩国产中文| 国产情人节一区| 亚洲二区在线观看| 欧美精品日本| 亚洲一区999| 久久久亚洲一区| 亚洲精品少妇30p| 亚洲欧美自拍偷拍| 黑人极品videos精品欧美裸| 亚洲国产91精品在线观看| 欧美激情影音先锋| 欧美高清影院| 国产精品久久久久久久电影| 亚洲欧美日韩精品久久奇米色影视| 久久精品夜夜夜夜久久| 亚洲国产精品一区二区第一页| 一本综合精品| 国产婷婷色综合av蜜臀av| 亚洲激情电影中文字幕| 欧美日韩一区二区在线视频| 午夜视频久久久| 欧美精品v日韩精品v韩国精品v | 欧美在线观看一区二区三区| 欧美激情一二三区| 亚洲欧美中文日韩在线| 欧美国产欧美亚洲国产日韩mv天天看完整 | 欧美另类久久久品| 欧美一区二区三区免费视| 欧美激情第4页| 亚洲资源在线观看| 欧美日本一区二区高清播放视频| 亚洲字幕一区二区| 欧美激情91| 欧美一区不卡| 欧美视频不卡中文| 亚洲电影免费在线观看| 国产精品黄视频| 亚洲精品国产欧美| 国产日韩精品视频一区| 亚洲免费av网站| 国产日韩欧美三区| 亚洲午夜精品一区二区| 雨宫琴音一区二区在线| 亚洲欧美一区在线| 亚洲精品视频在线观看网站| 久久久久久久欧美精品| 亚洲视频欧洲视频| 欧美精品一区二区三区一线天视频| 欧美一区二区三区日韩| 欧美午夜宅男影院| 亚洲三级影片| 韩国一区电影| 欧美一级免费视频| 亚洲乱码国产乱码精品精98午夜| 久久中文字幕一区| 午夜精品一区二区在线观看| 欧美日韩精品二区第二页| 最新日韩av| 一区二区三区无毛|