(完整版)基于STM32的指紋識別系統(tǒng)的設(shè)計_第1頁
(完整版)基于STM32的指紋識別系統(tǒng)的設(shè)計_第2頁
(完整版)基于STM32的指紋識別系統(tǒng)的設(shè)計_第3頁
(完整版)基于STM32的指紋識別系統(tǒng)的設(shè)計_第4頁
(完整版)基于STM32的指紋識別系統(tǒng)的設(shè)計_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 這樣經(jīng)過8/16次時鐘的改變,完成8/16位數(shù)據(jù)的傳輸。3.2STM32指紋識別的軟件本程序是以IAREmbeddedforARM作為系統(tǒng)的一種專門嵌入式微處理器所開發(fā)的環(huán)境,其特點開發(fā)容易,簡答易學(xué),代碼緊湊。其包括項目管理,編輯器、C/C+編譯器和ARM匯編器、連接器和支持RTOS的調(diào)試工具C-SPY。IAREWARM內(nèi)部開發(fā)了全軟件模擬功能,可以在沒有外接硬件設(shè)備的情況下進(jìn)行調(diào)試,通過軟件自帶的模擬程序?qū)崿F(xiàn)任何ARM內(nèi)核和外部環(huán)境的模擬。其中IAR公司還推出了芯片仿真器,支持無縫連接。只需將該仿真器的兩端通過JTAG接口和USB接口分別與STM32芯片和計算機相連,即可實現(xiàn)與IAREW

2、ARM的連接進(jìn)行軟件的仿真和調(diào)試,下載速度可達(dá)800kb/秒,并且無需任何驅(qū)動程序,簡單方便,是最實用有效的ARM系統(tǒng)軟件開發(fā)的工具。在IAREWARM下實現(xiàn)程序開發(fā),并對開發(fā)的程序進(jìn)行仿真和調(diào)試的具體流程如下:新建工作區(qū),然后創(chuàng)建工程,生成一個新的項目,添加要開發(fā)的所有應(yīng)用程序,選擇芯片類型同時配置編譯和連接相關(guān)參數(shù)和輸出文件路徑等。編譯和連接項目中的應(yīng)用程序,生成編譯器列表文件和連接存儲器分配文件。使用j-link仿真器調(diào)試和運行程序,同時設(shè)置斷點。3.2.1系統(tǒng)主程序設(shè)計指紋識別的主程序是將指紋處理的各個階段:包括指紋采集、圖像的預(yù)處理、提取特征點、圖像匹配整個過程組合在一起實現(xiàn)嵌入式系

3、統(tǒng)的指紋識別,在組合的過程中,要實現(xiàn)算法程序的移植、系統(tǒng)存儲空間的分配和算法的優(yōu)化等各個部分,最后實現(xiàn)準(zhǔn)確高效的指紋識別。其系統(tǒng)的主程序流程圖如圖3.2所示。主程序的主要初始化函數(shù)如下:RCC_Configuration();系統(tǒng)時鐘初始化NVIC_Configuration();/中斷初始化GPIO_Configuration();/GPIO初始化USART_Configuration();/串口初始化MBF200_Init();/MBF200初始化LCD1602_init();/1602液晶初始化FSMC_SRAM_Init();/SRAM初始化圖3.2.指紋識別系統(tǒng)流程傳感器初始化程序?qū)?/p>

4、于傳感器的初始化,實際上是主控制器通過SPI通信對傳感器內(nèi)部寄存器寫數(shù)據(jù)的過程,當(dāng)寫數(shù)據(jù)時,通過先發(fā)送寫命令0X02,再發(fā)送要寫的寄存器地址,最后向相應(yīng)地址的寄存器寫入數(shù)據(jù),整個過程遵循SPI時序。需要強調(diào)一點,根據(jù)MBF200的技術(shù)資料中寫數(shù)據(jù)的時序圖,這里要寫的寄存器地址是原地址的值左移3位然后補零而形成的新的地址值。初始化CTRLB,使能芯片的ENABLE位,使其處于工作狀態(tài),傳感器啟動內(nèi)部A/D轉(zhuǎn)換,XTALSE位選擇內(nèi)部12M晶振,同時使能指紋自動檢測,通過判斷RDY位的狀態(tài)決定指紋圖像數(shù)據(jù)的讀?。划?dāng)有手指按在傳感器的電容陣列區(qū)域時,傳感器自動喚起電路啟動,開始由休眠轉(zhuǎn)入工作狀態(tài),同

5、時向主控制器發(fā)送一個中斷信號,傳感器開始逐行采集指紋的每一個像素,經(jīng)過A/D轉(zhuǎn)化后,將數(shù)據(jù)暫存在CTRLA中,主控制器接收到中斷后,等待A/D轉(zhuǎn)換結(jié)束,開始讀取CTRLA的數(shù)據(jù),讀取結(jié)束后則繼續(xù)等待A/D轉(zhuǎn)換數(shù)據(jù),如果沒有能夠讀到該行的最后單元,則返回CTRLA寄存器,繼續(xù)讀取A/D轉(zhuǎn)換數(shù)據(jù),否則需要判斷是否讀到圖像的最后單元,如果到圖像末尾則整個采集工作結(jié)束,否則繼續(xù)等待傳感器捕獲指紋信息,讀取下一行數(shù)據(jù)。這里給出傳感器的初始化程序:voidMBF200_Init()MBF_WriteREG(0 x06,0 x38);/初始化寄存器DTRMBF_WriteREG(0 x07,0 x01);/

6、初始化寄存器DCRMBF_WriteREG(0 x0C,0 x0C);初始化寄存器PGCMBF_WriteREG(0 x0F,0 x2C);/初始化寄存器THRMBF_WriteREG(0 x0E,0 x03);/初始化寄存器ISRMBF_WriteREG(0 x09,0 x0D);初始化寄存器CTRLBMBF_WriteREG(0 x00,0 x00);/初始化寄存器RAHMBF_WriteREG(0 x01,0 x00);/初始化寄存器RALMBF_WriteREG(0 x02,0 x00);/初始化寄存器CALMBF_WriteREG(0 x03,0 x00);/初始化寄存器REHMBF

7、_WriteREG(0 x04,0 x00);/初始化寄存器RELMBF_WriteREG(0 x05,0 x00);/初始化寄存器CELMBF_WriteREG(0 x0A,0 x00);/初始化寄存器CTRLCMBF_WriteREG(0 x08,0 x00);/初始化寄存器CTRLA3.2.3存儲器的擴(kuò)展程序設(shè)計STM32對SRAM存儲器的擴(kuò)展主要是通過對FSMC的配置實現(xiàn)的,系統(tǒng)選擇Bankl的子Bank3,根據(jù)存儲器IS62WV51216BL的映射位置FSMC_BCR3和FSMC_BTR3/BWTR3進(jìn)行設(shè)置。首先選擇芯片映射到Bank1的第3個子Bank,設(shè)置對SRAM的讀/寫使用

8、相同時序,這樣對時序寄存器只需要設(shè)置BTR3就可以了,選擇存儲器的類型為SRAM,設(shè)置數(shù)據(jù)寬度為16(bit),禁止對地址和數(shù)據(jù)的復(fù)用,配置等待時序為在等待前的一個周期有效,同時使能芯片寫操作,這樣就完成了對該寄存器的初始化oSTM32的FSMC固件庫里包含了NORFlash控制器所有操作固件,通過對數(shù)據(jù)結(jié)構(gòu)FSMC_NORSRAMTimingInitTypeDef內(nèi)部成員的設(shè)置可以實現(xiàn)時間參數(shù)寄存器FSMC_BTR3和BWTR3的轉(zhuǎn)變,使得內(nèi)部成員的設(shè)置可以實現(xiàn)對基本特征參數(shù)配置寄存器FSMC_BCR3的初始化。3.2.4串口程序的設(shè)計將指紋傳感器采集到的指紋數(shù)據(jù)保存在外部SRAM的全局?jǐn)?shù)組

9、中必須用到主控制器。系統(tǒng)通過設(shè)計串口程序建立主控制器與上位機的異步串口通信,對主控制器的串口進(jìn)行初始化,對串口的相關(guān)參數(shù)進(jìn)行設(shè)置,當(dāng)?shù)讲ㄌ芈蔬x擇最大值為115200時,并啟動UART1,即可通過串口發(fā)送和接收函數(shù)實現(xiàn)與上位機的數(shù)據(jù)交互。采集的指紋數(shù)據(jù)通過串口線被發(fā)送到上位機的接收數(shù)據(jù)緩沖區(qū),需要在上位機設(shè)計串口程序?qū)⒕彌_區(qū)的數(shù)據(jù)進(jìn)行接收和保存。對次設(shè)計而言,MSComm控件封裝了與串口相關(guān)的所有API函數(shù),在設(shè)計時只需要調(diào)用相關(guān)屬性、方法、事件就可以實現(xiàn)對串口通信的開發(fā),而不需要學(xué)習(xí)復(fù)雜的API函數(shù),相對簡單。因此本設(shè)計采用MSComm控件在VC+環(huán)境下實現(xiàn)對串口程序的開發(fā)。本設(shè)計選擇事件驅(qū)動

10、法,對MSComm控件的常用屬性,其中包括端口號、通信參數(shù)、通信協(xié)議、端口狀態(tài)等進(jìn)行初始化設(shè)置,并打開通信端口,然后通過OnComm事件的CommEvent屬性的值來判斷是否有數(shù)據(jù)發(fā)送或接收。當(dāng)下位機開始發(fā)送數(shù)據(jù)時,即發(fā)生了一個通信事件,將引起上位機程序產(chǎn)生OnComm事件,并使得其CommEvent屬性的值將發(fā)生改變,應(yīng)用程序根據(jù)CommEvent屬性值為2,表示緩沖區(qū)接收到字符,開始使用Getlnput()函讀取接收緩沖區(qū)數(shù)據(jù),由于在讀取和發(fā)送數(shù)據(jù)的過程中,使用的數(shù)據(jù)類型都為VARIANT型,因此需要將讀取的緩沖區(qū)數(shù)據(jù)保存在一個VARIANT10變量中,然后將該變量中的VARIANT型數(shù)據(jù)

11、轉(zhuǎn)換為Cstring型變量存入全局?jǐn)?shù)組。3.2.5移植算法程序研究算法時一般不用考慮存儲空間的分配問題,所以系統(tǒng)的內(nèi)部存儲空間做夠大,能夠滿算法處理的要求對于嵌入式微處理器而言,芯片內(nèi)部存儲空間有限,指紋的處理算法需要處理的數(shù)據(jù)量相對較大,其采集的指紋圖像、提取特征模板和運行的程序代碼都會占據(jù)較大的存儲空間,合理的分配存儲空間對系統(tǒng)算法的執(zhí)行十分重要。算法中間處理的臨時圖像通過建立全局?jǐn)?shù)組的方式存儲在外部SRAM中;指紋提取的模板特征點以結(jié)構(gòu)體的形式存放在FLASH中;便于以后對其進(jìn)行添加和刪除;指紋的待匹配特征點通過分配動態(tài)內(nèi)存來保存,當(dāng)系統(tǒng)識別結(jié)束后,即將該數(shù)據(jù)釋放,為系統(tǒng)的存儲空間節(jié)省了

12、資源。系統(tǒng)處理過程中的臨時圖像數(shù)據(jù)就存放在該全局?jǐn)?shù)組中。對應(yīng)外部SRAM,可以通過兩個指針lpDIBBits(原圖像指針)和lpDataOut(目標(biāo)圖像指針)指向該數(shù)組,以這兩指針?biāo)惴ǖ妮斎胼敵龆丝诳蓪崿F(xiàn)圖像算法處理,即將指紋圖像處理前后的數(shù)據(jù)都保存在該數(shù)組中,避免了系統(tǒng)存儲資源的浪費。在指紋圖像的采集部分,通過對圖像邊緣處不重要的圖像信息進(jìn)行裁剪,使得采集的圖像為250*200,同時對于存儲在數(shù)組中的矩陣圖像數(shù)據(jù),通過抽樣提取的方式對圖像矩陣的行和列進(jìn)行了減半縮小11,使得圖像變?yōu)樵瓉淼?/4即為125*100的圖像,這兩個方面的處理使得圖像的數(shù)據(jù)量得到了較大減少,提高了系統(tǒng)的執(zhí)行效率。第4

13、章結(jié)果分析4.1圖像匹配測試圖像特征匹配主要是通過統(tǒng)計匹配的特征點數(shù)計算兩幅圖像的相似度,驗證圖像的匹配,算法通過對特征點匹配的相似度進(jìn)行計算,如果兩幅指紋圖像相似度于0.6,則認(rèn)為兩幅指紋來自同一個手指的指紋。VC上針對兩幅圖像的匹配設(shè)計特征點匹配界面如圖4.1圖4.1特征匹配界面將圖像的預(yù)處理和細(xì)節(jié)特征點匹配算法相結(jié)合,從原指紋圖像開始對圖像的預(yù)處理算法和指紋的匹配算法進(jìn)行整體性能的測試。采用指紋傳感器采集的指紋圖像作為輸入圖像,通過指紋算法處理,根據(jù)圖像的匹配程度給出匹配結(jié)果,匹配成功則輸出sameimage,匹配失敗則輸出“differentimage.指紋識別系統(tǒng)測試通過將VC+的指

14、紋識別算法移植到嵌入式系統(tǒng)中,搭建嵌入式指紋識別系統(tǒng)平臺,并對圖像的識別算法進(jìn)行測試。匹配成功LCD1602輸出sameimage字符串,匹配失敗LCD1602輸出“differentimage字符串。通過在嵌入式系統(tǒng)上的驗證,指紋識別算法在該系統(tǒng)是上的識別準(zhǔn)確率有所降低,分析主要原因可能是系統(tǒng)為了提高處理速度,對指紋圖像進(jìn)行了抽樣縮小處理,使得圖像損失了部分的特征信息,識別的準(zhǔn)確率有所下降,不過仍然保持在95%的水平。圖片數(shù)據(jù)量的減小使得系統(tǒng)在識別效率上得到了較大的提高。原來系統(tǒng)整個識別過程大概需要6s的時間,通過改進(jìn)識別時間可以控制在3s以內(nèi),大大提高了系統(tǒng)的識別效率。第5章總結(jié)隨著社會的

15、發(fā)展,技術(shù)的不斷進(jìn)步,生物識別作為一種方便有效的身份認(rèn)證技術(shù),越來越受到人們的青睞,指紋識別技術(shù)作為生物識別技術(shù)中最為成熟的一種,一直都是人們研究的重點,特別是嵌入式技術(shù)在指紋識別方面應(yīng)用以來,提高了指紋識別系統(tǒng)的性價比,為指紋識別系統(tǒng)走向民用提供了便利,目前人們已經(jīng)開發(fā)出了多款不同的嵌入式指紋識別系統(tǒng),并且廣泛應(yīng)用在社會的各個領(lǐng)域。本文對現(xiàn)有指紋識別技術(shù)原理和研究現(xiàn)狀進(jìn)行了簡要分析,并對指紋算法和嵌入式系統(tǒng)進(jìn)行研究,通過對現(xiàn)有指紋處理算法進(jìn)行改進(jìn),設(shè)計了一種基于STM32的嵌入式指紋識別系統(tǒng),并在該系統(tǒng)上對指紋識別的可行性進(jìn)行了驗證。本文的研究工作主要包括如下幾個方面。本設(shè)計實現(xiàn)了指紋圖像從

16、采集到指紋識別的整個過程,但畢竟筆者對指紋識別技術(shù)的研究才剛剛起步,設(shè)計的系統(tǒng)在一些方面還存不足,需要進(jìn)一步的改進(jìn)。指紋采集的質(zhì)量直接影響著算法的復(fù)雜度,系統(tǒng)在指紋算法處理方面,有較大一部分是對采集圖像做預(yù)處理增強,如果能采集到高質(zhì)量的指紋圖像,將減少較多不必要的預(yù)處理算法,進(jìn)而提高系統(tǒng)算法執(zhí)行的效率。該傳感器具有MCU、SPI和USB三種接口模式,其中SPI接口的速度較慢,如果改為MCU接口的采集模式將較大的提高系統(tǒng)的采集效率。另外,本設(shè)計只是實現(xiàn)了指紋的識別,還缺少鍵盤和模式設(shè)置等人機交互界面,同時考慮到系統(tǒng)的成本和設(shè)計難度,選擇STM32作為主控芯片,對指紋識別系統(tǒng)進(jìn)行了開發(fā),使得降低了

17、較大成本,但系統(tǒng)的性能與DSP處理效果還是存在差異,這里STM32芯片內(nèi)部雖然集成了乘法器,但是其在主頻上還是存在較大的不足,如果將STM32與DSP處理芯片相結(jié)合來實現(xiàn)指紋識別系統(tǒng),將較大的提高整個系統(tǒng)的性能。致謝時間猶如白駒過隙,轉(zhuǎn)眼間我們的大學(xué)生涯即將結(jié)束。在遼寧科技大學(xué)信息技術(shù)學(xué)院學(xué)習(xí)的這段時間,許多老師和同學(xué)在學(xué)習(xí)上和生活上都給予了我很大的幫助。謹(jǐn)向所有給予我?guī)椭?、關(guān)心和指導(dǎo)的老師、同學(xué)、朋友以及親人致以衷心的感謝。首先要感謝我的導(dǎo)師孫功勤老師,在此期間,孫老師百忙之中抽出時間給予了我很多的關(guān)心和專業(yè)指導(dǎo),拓寬了我的視野,使我受益良多。此篇畢業(yè)設(shè)計就是在孫老師的指導(dǎo)下完成的。她學(xué)識淵

18、博,治學(xué)嚴(yán)謹(jǐn),工作無私忘我。通過孫功勤老師的傳道、授業(yè)和解惑,我不僅掌握了必要的知識和技能,還樹立了自強和奮斗的人生觀。她的精神將一直激勵我不斷前進(jìn)。在此,我向?qū)O老師致以最誠摯、最衷心的感謝!此外還要感謝本文參考圖書和文獻(xiàn)的各位作者,他們?yōu)槲姨峁┝诉@方面的寶貴資料!最后,我要感謝父母和親人在生活和學(xué)習(xí)上對我的支持和關(guān)心,感謝所有關(guān)心和幫助過我的朋友們!參考文獻(xiàn)楊艷.生物特征識別技術(shù)綜述J.大眾科技2006(3):31-33.2柴曉光;岑寶熾.民用指紋識別技術(shù)M.北京:人民郵電出版社.2004(5):7-9.宋娟.生物識別技術(shù)中的智能算法D.湖南師范大學(xué)碩士學(xué)位論文.2007:1-3.劉波.指紋

19、圖像增強及匹配算法研究D.華中科技大博士學(xué)位論文2009(6):2-5.祝恩;殷建平;張國敏;胡春風(fēng).自動指紋識別技術(shù)M.國防科技大學(xué)出版社.2006(5):7-9.6陳桂友.自動指紋識別系統(tǒng)中的關(guān)鍵算法研究及應(yīng)用D.山東大學(xué)博士學(xué)位論文.2005(10):61-62.毛容芳.指紋配準(zhǔn)和自動識別的實現(xiàn)D.武漢理工大學(xué)碩士學(xué)位論文.2007(5):42-43.毛克明.指紋圖像處理與匹配技術(shù)研究D.東北大學(xué)博士學(xué)位論文.2009(5):87-89.MBF200solidstateFingerprintSensorDataSheetJ.2010(5):1-5.IAREWARM5.11使用指南J.20

20、10(4):1-3.陳慶接.基于DSP的指紋處理算法研究與實現(xiàn)D重慶大學(xué)碩士學(xué)位論文.2005(5):46-47.附錄1初始系統(tǒng)擴(kuò)展外部SRAM的初始化代碼:voidFSMC_SRAM_Init(void)FSMC_NORSRAMInitTypeDefFSMC_NORSRAMInitStructure;FSMC_NORSRAMTimingInitTypeDefp;*/*-FSMCConfigurationp.FSMC_AddressSetupTime=0;*/p.FSMC_AddressHoldTime=0;p.FSMC_DataSetupTime=2;p.FSMC_BusTurnAround

21、Duration=0;p.FSMC_CLKDivision=0;p.FSMC_DataLatency=0;p.FSMC_AccessMode=FSMC_AccessMode_A;FSMC_NORSRAMInitStructure.FSMC_Bank=FSMC_Bank1_NORSRAM3;FSMC_NORSRAMInitStructure.FSMC_DataAddressMux=FSMC_DataAddressMux_Disable;FSMC_NORSRAMInitStructure.FSMC_MemoryType=FSMC_MemoryType_SRAM;FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth=FSMC_MemoryDataWidth_16b;FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode=FSMC_BurstAccessMode_Disable;FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity=FSMC_WaitSignalPol

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論