www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]重點(diǎn)介紹以TMS320VC5402為核心的指紋識別系統(tǒng)的硬件設(shè)計(jì),概括地說明軟件設(shè)計(jì)方法。

摘要:重點(diǎn)介紹以TMS320VC5402為核心的指紋識別系統(tǒng)的硬件設(shè)計(jì),概括地說明軟件設(shè)計(jì)方法,最后給出其硬件調(diào)試方法。

    關(guān)鍵詞:DSP 指紋識別 TMS320VC5402

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

1 總體設(shè)計(jì)

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

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

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

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

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

②判斷頁地址是否為0。如果為0,則說明訪問DARAM,直接使用訪問數(shù)據(jù)的指令;需要的16位地址就是前15位的地址、高位補(bǔ)零,并結(jié)束。

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

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

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

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

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

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

①將SPCR中的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),開始工作。

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

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

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

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

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

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

1.5 指紋圖像的獲取

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

2 軟件設(shè)計(jì)

2.1 主程序流程

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

2.2 鍵盤中斷程序

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

Switch(KEY)

……

}

2.3 BootLoader程序設(shè)計(jì)

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

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

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

③用戶BOOT完成后,跳至用戶程序開始運(yùn)行。

2.4 指紋識別核心算法程序

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

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

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

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

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

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

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

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

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

結(jié)語

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

大家好,歡迎回來。在這個(gè)項(xiàng)目中,我們將學(xué)習(xí)如何使用鍵盤和LCD顯示制作一個(gè)安全的基于Arduino的門鎖。你可以用它來保護(hù)你的辦公室、房間或家里的保險(xiǎn)箱。要鎖門和開鎖,你需要在安全系統(tǒng)中輸入密碼。這確保了只有經(jīng)過授權(quán)的人...

關(guān)鍵字: 鍵盤 LCD Arduino 電子門鎖

在數(shù)字化信息飛速增長的時(shí)代,存儲器作為數(shù)據(jù)存儲與讀取的關(guān)鍵載體,其性能與特性對各類電子設(shè)備及系統(tǒng)的運(yùn)行效率起著決定性作用。從廣泛應(yīng)用的傳統(tǒng)存儲器,到嶄露頭角的新興非易失性存儲器技術(shù),每一種都在存儲領(lǐng)域中占據(jù)著獨(dú)特的地位,...

關(guān)鍵字: 數(shù)字化 存儲器 SRAM

目前,有數(shù)百億臺物理物聯(lián)網(wǎng)設(shè)備通過本地網(wǎng)絡(luò)連接到互聯(lián)網(wǎng)。傳感器的數(shù)據(jù)橫跨這些網(wǎng)絡(luò)。執(zhí)行器根據(jù)數(shù)據(jù)進(jìn)行啟動。同時(shí),應(yīng)用程序分析數(shù)據(jù)以促進(jìn)人機(jī)響應(yīng)。

關(guān)鍵字: SRAM 量子衍

隨著電腦科技的飛速發(fā)展,作為電腦輸入設(shè)備的重要組成部分,鍵盤的種類和功能也在不斷演變。其中,機(jī)械鍵盤以其出色的手感、長久的使用壽命和高度個(gè)性化的特點(diǎn),深受眾多電腦用戶的喜愛。而機(jī)械鍵盤的核心——鍵盤軸,更是決定鍵盤使用體...

關(guān)鍵字: 電腦 鍵盤 機(jī)械

該產(chǎn)品線提供了并行SRAM的低成本替代方案,容量高達(dá) 4 Mb,具有143 MHz SPI/SQI?通信功能

關(guān)鍵字: SRAM 存儲器 MCU

SRAM : 靜態(tài)RAM,不用刷新,速度可以非??欤馛PU內(nèi)部的cache,都是靜態(tài)RAM,缺點(diǎn)是一個(gè)內(nèi)存單元需要的晶體管數(shù)量多,因而價(jià)格昂貴,容量不大。

關(guān)鍵字: SDRAM SRAM DRAM

鍵盤包括編碼鍵盤和非編碼鍵盤兩種。編碼鍵盤帶有能夠自動識別按鍵的硬件電路,當(dāng)按鍵被按下閉合時(shí),硬件可以提供按鍵的編號(也被稱“鍵值”),這種鍵盤使用方便,但是硬件復(fù)雜,價(jià)格相對較高。非編碼鍵盤不附帶按鍵識別電路,需要利用...

關(guān)鍵字: 鍵盤 人機(jī)交互 編碼鍵盤 非編碼鍵盤

存算一體化是指將傳統(tǒng)以計(jì)算為中心的架構(gòu)轉(zhuǎn)變?yōu)橐詳?shù)據(jù)為中心的架構(gòu),它可以突破馮·諾伊曼架構(gòu)下存算分離的瓶頸,直接利用存儲器進(jìn)行數(shù)據(jù)處理,從而把數(shù)據(jù)存儲與計(jì)算融合在同一芯片中,極大提高計(jì)算并行度與能效比。

關(guān)鍵字: 臺積電 N3E SRAM

為物聯(lián)網(wǎng)應(yīng)用選擇電子元件的兩個(gè)關(guān)鍵標(biāo)準(zhǔn)是功率預(yù)算和性能。自從電子產(chǎn)品問世以來,就一直在這兩者之間進(jìn)行權(quán)衡——要么獲得最佳功耗,要么獲得最高性能。根據(jù)應(yīng)用程序,系統(tǒng)架構(gòu)師對系統(tǒng)中的不同組件有不同的要求。例如,系統(tǒng)可能需要高...

關(guān)鍵字: 物聯(lián)網(wǎng)功耗 SRAM
關(guān)閉