![基于單片機(jī)的指紋識(shí)別系統(tǒng)設(shè)計(jì)_第1頁(yè)](http://file4.renrendoc.com/view/d54ca43c13f6230602a6df676ccd02c6/d54ca43c13f6230602a6df676ccd02c61.gif)
![基于單片機(jī)的指紋識(shí)別系統(tǒng)設(shè)計(jì)_第2頁(yè)](http://file4.renrendoc.com/view/d54ca43c13f6230602a6df676ccd02c6/d54ca43c13f6230602a6df676ccd02c62.gif)
![基于單片機(jī)的指紋識(shí)別系統(tǒng)設(shè)計(jì)_第3頁(yè)](http://file4.renrendoc.com/view/d54ca43c13f6230602a6df676ccd02c6/d54ca43c13f6230602a6df676ccd02c63.gif)
![基于單片機(jī)的指紋識(shí)別系統(tǒng)設(shè)計(jì)_第4頁(yè)](http://file4.renrendoc.com/view/d54ca43c13f6230602a6df676ccd02c6/d54ca43c13f6230602a6df676ccd02c64.gif)
![基于單片機(jī)的指紋識(shí)別系統(tǒng)設(shè)計(jì)_第5頁(yè)](http://file4.renrendoc.com/view/d54ca43c13f6230602a6df676ccd02c6/d54ca43c13f6230602a6df676ccd02c65.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、可修編-摘要隨著科學(xué)技術(shù)的發(fā)展,人們的安全意識(shí)也越來(lái)越強(qiáng),因?yàn)橹讣y具有唯一性和終生不變性,所以指紋識(shí)別成為代替?zhèn)鹘y(tǒng)身份識(shí)別最安全、可靠的方法之一。本設(shè)計(jì)基于飛思卡爾KinetisK60N512系列單片機(jī),指紋識(shí)別模塊選擇的是城章科技的R305F模塊,該模塊帶有高性能的DSP芯片,該DSP芯片嵌完整的指紋識(shí)別算法和協(xié)議,具有指紋采集,指紋比對(duì),指紋搜索和存儲(chǔ)等功能。模塊與單片機(jī)通過(guò)串口進(jìn)行通訊。指紋識(shí)別系統(tǒng)通過(guò)CH340G芯片實(shí)現(xiàn)TTL電平向RS-232電平的轉(zhuǎn)換,進(jìn)而實(shí)現(xiàn)與PC機(jī)的交互,PC機(jī)端經(jīng)上位機(jī)顯示指紋識(shí)別的結(jié)果。論文中介紹了基本算法的實(shí)現(xiàn)流程,同時(shí)介紹了K60N512芯片看門(mén)狗模塊的
2、基本原理以及啟動(dòng)流程等。結(jié)果表明,該套指紋識(shí)別系統(tǒng)算法性能可靠,指紋識(shí)別率高,可以實(shí)現(xiàn)預(yù)先制定的目標(biāo),完成指紋識(shí)別的功能。關(guān)鍵詞:指紋識(shí)別;飛思卡爾單片機(jī);串口AbstractWiththedevelopmentofscienceandtechnology,peoplessafetyconsciousnessisbeingmoreandmorestrong,thefingerprinthastheuniquenessandinvarianceforlife,sothefingerprintidentificationisinsteadofthetraditionalidentification
3、isoneofthemostsafeandreliablemethods.ThisdesignisbasedonFreescaleKinetisK60N512seriesmicrocontroller,fingerprintidentificationmoduleistheproductofGrowuppany,themodulewithhighperformanceDSPchip,andtheDSPchipwithpletefingerprintidentificationalgorithmandprotocol,fingerprintsacquisition,fingerprintssea
4、rchandstorage,andotherfunctions.Moduleandmicrocontrollermunicationthroughtheserialport.FingerprintidentificationsystemuseCH340GchipchangeTTLleveltoRS-232level,andthenrealizetheinteractionwithaPC,thePCshowstheresultoffingerprintidentification.Thethesisintroducesthebasicalgorithmimplementationprocess,
5、atthesametime,thisarticleintroducesthebasicprincipleofthewatchdogmoduleinsideK60N512chipandthestartprocess.Resultsshowthatthealgorithmoffingerprintidentificationsystemisreliable,fingerprintrecognitionrateishigh,andcanachievetargetoffingerprintidentification.KeyWords:Fingerprintidentification,Freesca
6、leKinetis,UART目錄摘要IAbstractI緒論1選題背景和研究意義1國(guó)外研究現(xiàn)狀1指紋識(shí)別的基本原理1指紋圖像的采集1指紋圖像預(yù)處理2指紋圖像特征點(diǎn)的提取4指紋圖像偽細(xì)節(jié)點(diǎn)的處理5指紋特征匹配5評(píng)價(jià)指紋識(shí)別系統(tǒng)算法性能的指標(biāo)5課題的容和目標(biāo)7指紋識(shí)別系統(tǒng)的硬件設(shè)計(jì)7本設(shè)計(jì)所使用單片機(jī)簡(jiǎn)介7本設(shè)計(jì)所使用的指紋模塊簡(jiǎn)介8主程序分析8Cotex-M4核寄存器簡(jiǎn)介9Cotex-M4中斷機(jī)制9K60N512啟動(dòng)代碼分析10K60N512看門(mén)狗程序分析12Flash軟件構(gòu)件簡(jiǎn)介13Kinetis的FlexBus模塊簡(jiǎn)介13K60N512異步接收器/發(fā)送器(UART)簡(jiǎn)介14指紋模塊指令介紹1
7、4指紋圖像獲取15生成特征17生成模板18儲(chǔ)存模板19高速搜索19補(bǔ)充說(shuō)明20結(jié)論18致18參考文獻(xiàn)18緒論選題背景和研究意義隨著我國(guó)經(jīng)濟(jì)的迅速發(fā)展,人民的生活水平得到了顯著的提高,人們對(duì)于自己的隱私也愈發(fā)重視。傳統(tǒng)的電子密碼鎖等設(shè)備在高速發(fā)展的科學(xué)技術(shù)的沖擊下顯得力不從心,用戶隱私很大程度上存在泄露的風(fēng)險(xiǎn)。由于每個(gè)人的遺傳基因不同,指紋也不相同,指紋識(shí)別技術(shù)的作用也因此越來(lái)越受到人們的重視。指紋是人身體上的一部分,是人所固有的生理特征,不用記憶,也不存在忘帶的風(fēng)險(xiǎn),而且每個(gè)人的指紋形狀終身不變。所以指紋作為個(gè)人身份的標(biāo)記是再合適不過(guò)的了。1.2國(guó)外研究現(xiàn)狀早期的指紋識(shí)別是以人工的方式進(jìn)行的,
8、由于指紋結(jié)構(gòu)的復(fù)雜性以及對(duì)指紋識(shí)別要求的嚴(yán)格性,導(dǎo)致人工識(shí)別指紋工作難度大、速度慢和識(shí)別準(zhǔn)確率受到制約,遠(yuǎn)遠(yuǎn)不能適應(yīng)實(shí)際工作的需要。計(jì)算機(jī)技術(shù)的誕生與發(fā)展,為復(fù)雜的科學(xué)計(jì)算和指紋自動(dòng)識(shí)別提供了可能,20世紀(jì)70年代,美、日等發(fā)達(dá)國(guó)家開(kāi)始先后研究指紋識(shí)別系統(tǒng)。我國(guó)自動(dòng)指紋識(shí)別系統(tǒng)的研究開(kāi)發(fā)始于20世紀(jì)80年代,大學(xué)信息中心、清華大學(xué)自動(dòng)化系、郵電大學(xué)、中科院以及光機(jī)所等都在此領(lǐng)域做了一定的工作,且取得了一定的成果,其中較為突出的是清華大學(xué)自動(dòng)化系和大學(xué)信息中心兩家1。當(dāng)然,與國(guó)外發(fā)達(dá)國(guó)家相比,我國(guó)在自動(dòng)指紋識(shí)別技術(shù)的研究上還與之存在很大的差距。指紋錄入設(shè)備的質(zhì)量不夠高,自動(dòng)指紋識(shí)別算法的性能還不
9、夠好。加強(qiáng)這方面的研究還是很有必要的。指紋識(shí)別的基本原理2.1指紋圖像的采集人的皮膚由表皮、真皮和皮下組織三部分組成。指紋指的是表皮上突起的紋線,有斗型、弓型和箕型三種基本類型。獲得良好的指紋圖像是進(jìn)行指紋識(shí)別的前提,目前光獲取指紋圖像的方法主要有光學(xué)技術(shù)、硅技術(shù)(CMOS技術(shù))和超聲波技術(shù)。本設(shè)計(jì)中使用的指紋傳感器基于硅技術(shù),硅技術(shù)的優(yōu)點(diǎn)是可以在較小的面積上獲得較好的指紋圖像(相對(duì)于光學(xué)技術(shù)),缺點(diǎn)是容易受到外部條件的干擾,可靠性相對(duì)較差。2.2指紋圖像預(yù)處理圖像預(yù)處理階段是指紋識(shí)別的第一個(gè)階段,圖像預(yù)處理階段比較典型的過(guò)程主要有圖像質(zhì)量評(píng)估、分割、增強(qiáng)、二值化和細(xì)化。指紋圖像預(yù)處理的流程圖
10、如圖2.1所示。二值化1r細(xì)化、圖2.1指紋圖像預(yù)處理的流程圖開(kāi)始f原始指紋圖像圖像質(zhì)量評(píng)估圖像質(zhì)量評(píng)估的目的主要是完成對(duì)傳感器采集到的指紋圖像的總體質(zhì)量評(píng)價(jià),對(duì)于低質(zhì)量的指紋圖像直接拒絕。對(duì)于質(zhì)量達(dá)到要求的指紋圖像才送給之后的處理環(huán)節(jié),從而避免了不必要的運(yùn)算。分割的目的是將前景與背景分割開(kāi)來(lái)。分割操作中應(yīng)該盡可能去除無(wú)效區(qū)域,保留有效區(qū)域。有了分割操作,指紋圖像預(yù)處理的時(shí)間可以大大縮短。增強(qiáng)的目的主要是為了消除噪聲的干擾,提高指紋圖像紋線結(jié)構(gòu)的清晰度。Gabor濾波的方法是一種比較理想的指紋圖像增強(qiáng)算法,Gabor濾波器可以同時(shí)在空間域和頻率域上獲得最佳的分辨率,具有良好的方向選擇性和帶通性
11、。二值化是將原來(lái)的灰度圖變換為黑白兩種灰階的圖像,二值化階段閾值的選擇相當(dāng)重要,閾值的選擇有雙峰法、P參數(shù)法、大津法(Otsu法或最大類間方差法)、最大熵閾值法和迭代法(最佳閾值法)等。細(xì)化階段主要是將二值化之后指紋圖像的脊線寬度降低為單個(gè)像素寬度,從而得到細(xì)化了的指紋圖像。細(xì)化算法按迭代方式的不同可以分為串行算法和并行算法。預(yù)處理階段的每個(gè)環(huán)節(jié)是緊密相關(guān)的,各個(gè)環(huán)節(jié)相互配合才可能獲得高質(zhì)量的指紋圖像,從而方便之后特征點(diǎn)的提取,為之后指紋匹配奠定良好的基礎(chǔ)。正常的指紋圖像如圖2.2所示,二值化之后的指紋圖像如圖2.3所示,細(xì)化之后的指紋圖像如圖2.4所示。圖2.2正常的指紋圖像圖2.3二值化之
12、后的指紋圖像圖2.4細(xì)化之后的指紋圖像2.3指紋圖像特征點(diǎn)的提取特征點(diǎn)提取的目的在于通過(guò)預(yù)先制定的算法檢測(cè)指紋圖像中奇異點(diǎn)和細(xì)節(jié)點(diǎn)這兩類特征點(diǎn)的數(shù)量以及每個(gè)特征點(diǎn)的類型、位置和所在區(qū)域的紋線方向。奇異點(diǎn)指的是指紋圖像的中心點(diǎn)和三角點(diǎn)。細(xì)節(jié)點(diǎn)指的是端點(diǎn)(Endpoint)、叉點(diǎn)(Bifurcation)、孤點(diǎn)(Dot)、環(huán)點(diǎn)(Loop)、短紋(shortRidge)等。一般的指紋圖像提取的特征在10-100個(gè)之間,多數(shù)文獻(xiàn)認(rèn)為至少應(yīng)該有12個(gè)特征點(diǎn)才可以進(jìn)行匹配。8鄰域編碼紋線跟蹤算法是一種常用的特征點(diǎn)提取算法。指紋圖像偽細(xì)節(jié)點(diǎn)的處理偽細(xì)節(jié)點(diǎn)的處理一般分為兩類:一種在特征點(diǎn)提取之前,對(duì)預(yù)處理之后
13、的指紋圖像進(jìn)行平滑、去除毛刺連接斷紋等操作,之后提取特征作為真正的特征;另一種是特征提取之后,根據(jù)特征之間的相互關(guān)系,盡可能的識(shí)別偽特征點(diǎn)并濾除它們。應(yīng)用以下兩條真?zhèn)渭?xì)節(jié)點(diǎn)的量化判斷準(zhǔn)則判斷真?zhèn)渭?xì)節(jié)點(diǎn):端點(diǎn)不應(yīng)該與其它細(xì)節(jié)點(diǎn)相連;分叉點(diǎn)不應(yīng)該與其他的端點(diǎn)和分叉點(diǎn)相連。指紋特征匹配目前,指紋匹配的相關(guān)方法主要有圖像相關(guān)匹配、紋理特征匹配、紋線匹配以及細(xì)節(jié)點(diǎn)匹配等。前兩者匹配速度快,但由于忽略了指紋的細(xì)節(jié)特征,匹配準(zhǔn)確性不高。細(xì)節(jié)點(diǎn)匹配算法的難點(diǎn)在于:細(xì)節(jié)點(diǎn)提取過(guò)程會(huì)產(chǎn)生虛假特征點(diǎn)和丟失真實(shí)細(xì)節(jié)點(diǎn);指紋圖像普遍存在平移和旋轉(zhuǎn);指紋圖像之間重合區(qū)域小,相同手指指紋的細(xì)節(jié)點(diǎn)集之間對(duì)應(yīng)關(guān)系難以確宀定;圖
14、像采集過(guò)程中,由于非線性映射、手指按壓力度不均造成了扭轉(zhuǎn)。2.6評(píng)價(jià)指紋識(shí)別系統(tǒng)算法性能的指標(biāo)評(píng)價(jià)指紋識(shí)別系統(tǒng)算法的性能指標(biāo)有3個(gè),分別為拒識(shí)率(FRR)、誤識(shí)率(FAR)和正確識(shí)別率(CR)。誤識(shí)率(FAR)是指在已提取的特征點(diǎn)的指紋樣本庫(kù)中,不同指紋匹配分?jǐn)?shù)大于給定閾值判斷為匹配的比率。其計(jì)算如下式:FAR=rejetnUmx100%(2.1)totalnum拒識(shí)率(FRR)是指在已提取的特征點(diǎn)的指紋樣本庫(kù)中,相同指紋匹配分?jǐn)?shù)小于給定閾值誤判為不匹配的比率。其計(jì)算如下式:FRR=rejetnumx100%totalnum(2.2)正確識(shí)別率(CR)計(jì)算如下式:CR=correctnumx1
15、00%totalnum(2.3)式中:totalnum=rejetnum+falsenum+correctnum從式2.1到2.3可以看出,F(xiàn)RR與FAR呈現(xiàn)反比例關(guān)系,隨著匹配閾值的降低,拒識(shí)率(FRR)相應(yīng)降低,誤識(shí)率(FAR)升高,反之亦然。所以應(yīng)該充分考慮系統(tǒng)的需要,在拒識(shí)率(FRR)與誤識(shí)率(FAR)之間找到一個(gè)最佳平衡點(diǎn)。課題的容和目標(biāo)指紋識(shí)別系統(tǒng)的硬件設(shè)計(jì)系統(tǒng)的結(jié)構(gòu)框圖如圖3.1所示,該系統(tǒng)主要完成指紋的采集、處理和匹配等操。主要有以下幾個(gè)模塊,指紋采集模塊,K60N512單片機(jī)模塊以及顯示模塊等。本設(shè)計(jì)所使用單片機(jī)簡(jiǎn)介在嵌入式設(shè)備處理器的市場(chǎng)爭(zhēng)奪中,ARM系列處理器憑借其小體積
16、、低功耗、低成本和高性能,幾乎壟斷了該市場(chǎng)。本設(shè)計(jì)所使用的飛思卡爾K60N512單片機(jī)便是基于ARMCotex-M4核,Cotex-M4核面向數(shù)字信號(hào)控制市場(chǎng),具有高效并且易于使用的控制和信號(hào)處理能力。Cote-M4屬于ARMv7架構(gòu),該架構(gòu)采用了Thumb-2技術(shù),該項(xiàng)技術(shù)比純32位代碼少使用31%的存,減少了系統(tǒng)開(kāi)銷。同時(shí),Cotex-M4核具有一個(gè)單時(shí)鐘周期乘法累加(MAC)單元、優(yōu)化的單指令多數(shù)據(jù)(SIMD)指令、飽和運(yùn)算指令和一個(gè)可選的單精度浮點(diǎn)運(yùn)算單元(FPU)。此外,該核提供最佳的代碼密度和一個(gè)嵌套向量中斷控制器,可以出色的完成中斷處理。Cotex-M4核框圖如圖3.2所示。EN
17、/ICDetailandTraceHmtingPointUnitMemorypixitectiarkunitCortex-M4CPU圖3.2Cotex-M4核框圖ARM*D5P總lkMatrixCadeInterfaceSRAM&pcripheml嚇Did:丄帚Serialwire:FluhwatLfipnmts:viewer:|utch:If本設(shè)計(jì)所使用的指紋模塊簡(jiǎn)介指紋模塊選擇了城章科技的R305F模塊,該產(chǎn)品是該公司2011年推出的最新產(chǎn)品。指紋模塊采用了瑞典FingerPrintCard公司的FPC1011F3型指紋傳感器,這款傳感器利用了反射式探測(cè)技術(shù),成像質(zhì)量高,對(duì)干濕手指都具有良
18、好的適應(yīng)性。FPC1011F3是一款電容式傳感器,傳感器分辨率為363dpi,置8位數(shù)模轉(zhuǎn)換器,它通過(guò)SPI接口與模塊上面的高性能DSP芯片相連。高性能的DSP芯片嵌完整的指紋識(shí)別算法和協(xié)議,具有指紋采集,指紋比對(duì),指紋搜索和存儲(chǔ)等功能。模塊通過(guò)串口與單片機(jī)進(jìn)行通訊,數(shù)據(jù)發(fā)送端接上位機(jī)的數(shù)據(jù)接收端,數(shù)據(jù)接收端接上位機(jī)的數(shù)據(jù)發(fā)送端。本系統(tǒng)通過(guò)單片機(jī)與指紋模塊的通信實(shí)現(xiàn)了自動(dòng)指紋識(shí)別的功能。首先將個(gè)人指紋信息錄入指紋模塊,之后指紋傳感器采集指紋信息且與存儲(chǔ)在指紋模塊里面的指紋模板進(jìn)行比對(duì),若找到指紋,返回該指紋所對(duì)應(yīng)的信息,送LCD顯示,若未找到,提示未找到信息。主程序分析4.1Cotex-M4核
19、寄存器簡(jiǎn)介Cotex-M4的寄存器有:R0R15。其中R0R12是32位通用寄存器,其中R0R7又被稱為低組寄存器,R8R12被稱為高組寄存器。32位的Thumb-2指令可以訪問(wèn)所有通用寄存器R13:堆棧指針寄存器(SPStackPointer),它分為兩部分,一個(gè)叫做進(jìn)程堆棧指針PSP(ProcessStackPointer),一個(gè)叫做主堆棧指針MSP(MasterStackPointe),但在同時(shí)刻只用到了其中的一個(gè),配置控制寄存器(CONTROL)的CONTROLS位來(lái)選擇是使用PSP還是MSP。R14:寄存器(LinkRegister),子程序調(diào)用、函數(shù)調(diào)用以及異常處理時(shí),由R14存儲(chǔ)
20、返回地址,復(fù)位時(shí)R14里面的值為Oxffffffff。R15:程序計(jì)數(shù)寄存器(ProgramCounter),指向當(dāng)前程序的地址,修改它的值,就可以改變程序的執(zhí)行流。同時(shí)Cotex-M4還在核水平上搭載了若干特殊功能寄存器,包括程序狀態(tài)字寄存器組(PSRs或xPSR)、中斷屏蔽寄存器組(PRIMASK、FAULTMASK和BASEPRI)和控制寄存器(CONTROL),且只能用MSR和MRS指令訪問(wèn)它們。4.2Cotex-M4中斷機(jī)制Cotex-M4在核水平上搭載了一個(gè)異常響應(yīng)系統(tǒng)NVIC,支持為數(shù)眾多的系統(tǒng)異常和外部中斷。NVIC位于核部,通過(guò)私有外設(shè)總線訪問(wèn)。編號(hào)為015的對(duì)應(yīng)系統(tǒng)異常,編
21、號(hào)16及以上為外部中斷。與經(jīng)典的ARM7TDMI,ARM926EJ-S相比較,在核層次實(shí)現(xiàn)了向量中斷控制器。當(dāng)發(fā)生了異常并且要響應(yīng)時(shí),Cotex-M4需要定位其服務(wù)例程的入口地址,這些入口地址存儲(chǔ)在異常向量表中。通常中斷程序的處理流程為:關(guān)閉系統(tǒng)總中斷、開(kāi)啟外設(shè)模塊并使能該外設(shè)模塊中斷、配置NVIC模塊中的中斷寄存器以及開(kāi)總中斷等幾個(gè)過(guò)程。NVIC會(huì)根據(jù)優(yōu)先級(jí)的設(shè)置來(lái)控制搶占與嵌套行為。因此,在某個(gè)異常正在響應(yīng)時(shí),所有優(yōu)先級(jí)不高于它的異常都不能搶占之,而且它也不能自己搶占自己。如果一個(gè)已經(jīng)被掛起的中斷被使能,NVIC會(huì)根據(jù)優(yōu)先級(jí)來(lái)決定是否服務(wù)這個(gè)中斷。當(dāng)然,一個(gè)被禁止的中斷被觸發(fā)掛起,無(wú)論怎樣
22、的優(yōu)先級(jí),NVIC都不會(huì)服務(wù)它。高優(yōu)先級(jí)中斷可以搶占并掛起低優(yōu)先級(jí)中斷,同時(shí)將低優(yōu)先級(jí)中斷上下文保存于系統(tǒng)中斷棧中,以便下次系統(tǒng)恢復(fù)時(shí)繼續(xù)執(zhí)行。當(dāng)一個(gè)高優(yōu)先級(jí)中斷執(zhí)行完以后,系統(tǒng)會(huì)在掛起的中斷中選擇一個(gè)優(yōu)先級(jí)最高的中斷繼續(xù)執(zhí)行,這個(gè)過(guò)程由Cotex-M4的NVIC自動(dòng)完成,由于中斷只使用中斷棧,每嵌套一級(jí)中斷,至少需要保存32個(gè)字節(jié)(核寄存器的容)于堆??臻g,加之中斷服程序(ISR)運(yùn)行過(guò)程中也需要利用中斷??臻g,系統(tǒng)中出現(xiàn)較深的嵌套中斷時(shí),系統(tǒng)對(duì)中斷??臻g的需求較高,所以中斷環(huán)境初始化時(shí),應(yīng)視最深中斷深度,合理分配中斷??臻g大小。Cotex-M4從一個(gè)中斷源發(fā)出中斷請(qǐng)求信號(hào)到硬件響應(yīng)中斷請(qǐng)求
23、的延遲時(shí)間固定位12個(gè)周期。這12個(gè)周期系統(tǒng)執(zhí)行入棧和取棧等系列操作,若中斷信號(hào)連續(xù)發(fā)生,Cotex-M4可優(yōu)化中斷與中斷間的硬件響應(yīng)間隔時(shí)間至6個(gè)周期2。4.3K60N512啟動(dòng)代碼分析啟動(dòng)代碼用來(lái)完成對(duì)系統(tǒng)的初始化,它通常包含以下幾部分:中斷向量表定義,地址重映射及中斷向量表的復(fù)制,堆棧初始化,系統(tǒng)時(shí)鐘頻率設(shè)置,中斷寄存器的初始化和進(jìn)入用戶程序等部分3。K60N512上電時(shí)地址在0 x00000000處,系統(tǒng)上電之后,從0 x00000000處取堆棧指針到SP,之后從0 x00000004處取程序指針到PC,然后跳轉(zhuǎn)至PC指針?biāo)赶虻牡刂烽_(kāi)始執(zhí)行程序。K60N512芯片可以在RAM和Fla
24、sh中執(zhí)行代碼,在RAM中執(zhí)行速度更快,因此通常將中斷向量表和數(shù)據(jù)復(fù)制到RAM空間中。BSS段是指用于存放程序中未初始化的全局變量和靜態(tài)變量的一塊存區(qū)域,數(shù)據(jù)段存放初始化后了的全局變量和靜態(tài)變芯片主時(shí)鐘是利用MCG模塊中的PLL模塊,倍頻50MHZ有源晶振得到的。Kinetis芯片部存在3種不同的時(shí)鐘:核時(shí)鐘,總線時(shí)鐘和flash時(shí)鐘。其中核時(shí)鐘是基本時(shí)鐘,其他時(shí)鐘均從核時(shí)鐘分頻得到。MCG模塊為MCU提供了多種時(shí)鐘源,其部包含一個(gè)鎖頻環(huán)(FLL)和一個(gè)鎖相環(huán)(PLL),FLL接受部或外部的參考時(shí)鐘源,PLL接受外部參考時(shí)鐘源,外部時(shí)鐘參考源來(lái)自O(shè)SC模塊。該部分啟動(dòng)代碼由飛思卡爾公司提供,完
25、成了芯片的基本初始化。K60N512芯片的啟動(dòng)程序流程圖如圖4.1所示。從流程圖中可以看到芯片初始化的基本過(guò)程,啟動(dòng)代碼的最終目的是跳轉(zhuǎn)到main函數(shù),在main函數(shù)里面加載關(guān)于指紋識(shí)別的相關(guān)操作代碼,可以說(shuō)這段代碼的存在降低了開(kāi)發(fā)的難度。芯片上電讀取堆棧指針和程序指針,跳轉(zhuǎn)至程序指針?biāo)赶虻牡刂?F初始化CPU寄存器,關(guān)閉中斷1r關(guān)閉看門(mén)狗1復(fù)制中斷向量和代碼到RAM中,初始化BSS段以及數(shù)據(jù)段1r初始化芯片時(shí)鐘,打開(kāi)中斷1F跳轉(zhuǎn)到main函數(shù)執(zhí)行圖4.1啟動(dòng)程序流程圖4.4K60N512看門(mén)狗程序分析本設(shè)計(jì)中采用了普通看門(mén)狗,以確保程序跑飛之后及時(shí)復(fù)位,增加了系統(tǒng)的可靠性。K60N512的
26、看門(mén)狗寄存器是只寫(xiě)一次寄存器,即上電后只能對(duì)其進(jìn)行一次寫(xiě)入,若要多次寫(xiě)入,必須先解鎖看門(mén)狗。解鎖看門(mén)狗是向看門(mén)狗的解鎖寄存器(WDOG_UNLOCK)連續(xù)寫(xiě)入0 xC520和0XD928,兩次寫(xiě)入時(shí)間間隔不能超過(guò)20個(gè)時(shí)鐘周期,否則解鎖不成功。解鎖看門(mén)狗后通過(guò)配置看門(mén)狗狀態(tài)控制寄存器(WDOG_STCTRLH)的WDOGEN位來(lái)關(guān)閉看門(mén)狗。使能看門(mén)狗以后,會(huì)在溢出時(shí)間超時(shí)之后產(chǎn)生看門(mén)狗復(fù)位。程序中必須在溢出超時(shí)前進(jìn)行喂狗操作,喂狗之后看門(mén)狗模塊重新計(jì)時(shí),MK60N512的喂狗操作是向看門(mén)狗刷新寄存器(WDOG_REFRESH)連續(xù)寫(xiě)入0 xB480和0 xA602,兩次寫(xiě)入時(shí)間間隔同樣不能超過(guò)
27、20個(gè)時(shí)鐘周期。看門(mén)狗的溢出時(shí)間通過(guò)設(shè)置WDOG_TOVALH和WDOG_TOVALL寄存器實(shí)現(xiàn)。4.5Flash軟件構(gòu)件簡(jiǎn)介Flash存儲(chǔ)器的特點(diǎn)是斷電后保持?jǐn)?shù)據(jù),微控制器使用Flash存儲(chǔ)器來(lái)存儲(chǔ)代碼和數(shù)據(jù),有時(shí)也將系統(tǒng)運(yùn)行狀態(tài)參數(shù)保存在Flash中K60512部集成512K的Flash,分為256個(gè)扇區(qū),F(xiàn)lash存儲(chǔ)器的特點(diǎn)是只能將數(shù)據(jù)從1寫(xiě)為0,不能從0寫(xiě)為1,寫(xiě)入的最小單位為一個(gè)字節(jié),擦出的最小單位一個(gè)扇區(qū)(2K)。Flash存儲(chǔ)器部集成Flash控制器,控制器可以接收并執(zhí)行命令。4.6Kinetis的FlexBus模塊簡(jiǎn)介FlexBus片選地址寄存器(FB_CSARn)用來(lái)配置相
28、應(yīng)外部片選信號(hào)FB_CSn的地址圍(基地址),F(xiàn)B_CSn為低電平時(shí)選中相應(yīng)的外設(shè)。片選控制寄存器(FB_CSMRn)里面的FB_CSCRPS(端口大小)與FB_CSCRBLS(對(duì)齊方式)相配合,決定FlexBus數(shù)據(jù)總線的端口分配和大小。引腳復(fù)用功能控制寄存器(FB_CSPMCR),配置該寄存器設(shè)置FlexBus引腳復(fù)用功能。4.7K60N512異步接收器/發(fā)送器(UART)簡(jiǎn)介UART接收器可以容納8、9或10位數(shù)據(jù)字符。UARTx_c2RIE位和UARTx_c2TIE位的設(shè)置決定是否允許接受和發(fā)送中斷,若使能中斷,必須首先實(shí)現(xiàn)中斷服務(wù)程序。設(shè)置UARTx_C2RE位和UARTx_C2TE
29、位使能UART接收機(jī)和發(fā)送機(jī)。UARTx_C1M位、UARTx_C1PE位和UARTx_C4M10位的狀態(tài)決定數(shù)據(jù)字符的長(zhǎng)度。UARTx_S2MSBF位設(shè)置為1時(shí),接收器操作使得在起始位后面接收的第一位是數(shù)據(jù)字的最高有效位。奇偶校驗(yàn)位(該位禁用的情況下選擇停止位)之前接收到的位被當(dāng)作數(shù)據(jù)字的最低有效位,所有必要的位順序是由模塊自動(dòng)處理。UARTx_BDH寄存器與UARTx_BDL寄存器一起控制UART波特率發(fā)生器的預(yù)分頻因子。更新13位波特率設(shè)置時(shí),首先寫(xiě)B(tài)DH緩沖新值的高半部分,然后寫(xiě)B(tài)DL。直到BDL被寫(xiě)入時(shí)BDH中的值才會(huì)變。UART初始化函數(shù)主要實(shí)現(xiàn)了UART數(shù)據(jù)格式,波特率,UART
30、模塊時(shí)鐘使能等工作。UART構(gòu)建測(cè)試可以通過(guò)查詢和中斷兩種方式實(shí)現(xiàn)。查詢方式通過(guò)不斷調(diào)用接收函數(shù),查詢接收標(biāo)志是否有效來(lái)判斷是否成功接收數(shù)據(jù)。中斷方式通過(guò)中斷服務(wù)程序?qū)崿F(xiàn),成功接收一個(gè)字節(jié)之后,芯片自動(dòng)跳轉(zhuǎn)至中斷服務(wù)程序,中斷服務(wù)程序中調(diào)用接收一個(gè)字節(jié)的函數(shù)來(lái)接收數(shù)據(jù)。K60N512的UART可以穩(wěn)定工作在115200bps下。4.8指紋模塊指令介紹主程序中指紋存儲(chǔ)程序流程圖如圖4.2所示,指紋搜索程序流程圖如圖4.3所示。用到的指紋模塊指令分列如下:4.8.1指紋圖像獲取發(fā)送獲取指紋圖像的指令,等待接收應(yīng)答包。指令的指令包和應(yīng)答包的格式分別如表4.1和表4.2所示。表4.1指令包格式2byt
31、es4bytes1byte2bytes1byte2bytes模塊地址包標(biāo)識(shí)包長(zhǎng)度指令碼校驗(yàn)和OxefOlOxffffffff01H03H01H05H表4.2應(yīng)答包格式2bytes4bytes1byte2bytes1byte2bytes模塊地址包標(biāo)識(shí)包長(zhǎng)度確認(rèn)碼校驗(yàn)和OxefOlOxffffffff07H03HxxHsum開(kāi)始注冊(cè)成功讀到圖像否否是是存儲(chǔ)成功否否是是結(jié)束讀到圖像否是否生成特征,特征文件存CharBufferl生成特征,特征文件存CharBuffer2發(fā)存儲(chǔ)模板指令發(fā)獲取圖像指令發(fā)生成特征指令發(fā)生成特征指令發(fā)獲取圖像指令發(fā)注冊(cè)模板指令圖4.2指紋存儲(chǔ)程序流程圖圖4.3指紋搜索程序流
32、程圖4.8.2生成特征編程中為了提高模板質(zhì)量,生成了兩次特征文件,分別存于charbuffer1與charbuffer2當(dāng)中,生成特征指令的指令包與應(yīng)答包的格式分別如表4.3和表4.4所示。表4.3指令包格式2bytes4bytes1byte2bytes1byte1byte2bytes模塊地址包標(biāo)識(shí)包長(zhǎng)度指令碼緩沖區(qū)號(hào)校驗(yàn)和0 xef010 xffffffff01H04H02HBufferIDsum表4.4應(yīng)答包格式2bytes4bytes1byte2bytes1byte2bytes0 xef01模塊地址0 xffffffff包標(biāo)識(shí)07H包長(zhǎng)度03H確認(rèn)碼xxH校驗(yàn)和sum確認(rèn)碼為00H表示生
33、成特征成功,01H表示收包有誤。4.8.3生成模板這一步的目的是將charbuffer1與charbuffer2中的特征文件合并生成模板,結(jié)果存于charbuffer1與charbuffer2中。指令包和應(yīng)答包格式分別如表4.5和表4.6所示。表4.5指令包格式2bytes4bytes1byte2bytes1byte2bytes0 xef01模塊地址0 xffffffff包標(biāo)識(shí)01H包長(zhǎng)度03H指令碼05H校驗(yàn)和09H表4.6應(yīng)答包格式2bytes4bytes1byte2bytes1byte2bytes0 xef01模塊地址0 xffffffff包標(biāo)識(shí)07H包長(zhǎng)度03H確認(rèn)碼xxH校驗(yàn)和sum
34、確認(rèn)碼為00H表示生成模板成功。01H表示收包有誤,0aH表示生成模板失敗。4.8.4儲(chǔ)存模板這一步的作用是將charbuffer1或charbuffer2中的模板文件存到PageID號(hào)flash數(shù)據(jù)庫(kù)位置。指令包和應(yīng)答包格式分別如表4.7和表4.8所示。表4.7指令包格式2bytes4bytes1byte2bytes1byte1byte2bytes2bytes模塊地址包標(biāo)識(shí)包長(zhǎng)度指令碼緩沖區(qū)號(hào)位置號(hào)校驗(yàn)和OxefOl0 xffffffff07H06H06HBufferIDPageIDsum4.8應(yīng)答包格式2bytes4bytes1byte2bytes1byte2bytes模塊地址包標(biāo)識(shí)包長(zhǎng)度
35、確認(rèn)碼校驗(yàn)和0 xef010 xffffffff07H03HxxHsum確認(rèn)碼為00H表示存儲(chǔ)成功,01H表示收包有錯(cuò),ObH表示PagelD超出指紋庫(kù)圍,18H表示寫(xiě)flash出錯(cuò)。4.8.5高速搜索在此環(huán)節(jié)當(dāng)中,以CharBuffer1或CharBuffer2中的特征文件高速搜索整個(gè)或部分指紋庫(kù)。若搜索到,則返回頁(yè)碼。這一環(huán)節(jié)是指紋識(shí)別的最后一個(gè)環(huán)節(jié),也是最重要的一個(gè)環(huán)節(jié)。指令包和應(yīng)答包的格式分別如表4.9和表4.10所示。表4.9指令包格式2bytes4bytes1byte2bytes1byte1byte2bytes2bytes2bytes模塊地址包標(biāo)包長(zhǎng)度指令碼緩沖區(qū)參數(shù)參數(shù)校驗(yàn)識(shí)號(hào)0
36、 xef010 xffffffff01H08H1bHBuferIDStartPagePageNumsum表4.10應(yīng)答包格式2bytes4bytes1byte2bytes1byte2bytes2bytes2bytes模塊地址包標(biāo)識(shí)包長(zhǎng)度確認(rèn)碼頁(yè)碼得分校驗(yàn)和0 xef010 xffffffff07H07HxxHPageIDMatchScoresum4.9補(bǔ)充說(shuō)明本設(shè)計(jì)中指紋搜索程序中添加了低功耗定時(shí)功能,搜索時(shí)間超過(guò)預(yù)先設(shè)定的值之后進(jìn)入中斷,在該中斷中又添加了提示未找到指紋圖像的信息以及軟件復(fù)位功能,實(shí)現(xiàn)自動(dòng)指紋識(shí)別的作用。設(shè)計(jì)中還采用了AD功能實(shí)時(shí)監(jiān)測(cè)芯片工作溫度。實(shí)時(shí)時(shí)鐘用于獲得時(shí)間。蜂鳴器
37、以及LCD用來(lái)提示指紋錄入以及搜索的情況。結(jié)論本設(shè)計(jì)主要是基于KinetisK60N512單片機(jī)的指紋識(shí)別系統(tǒng)設(shè)計(jì),指紋模塊選擇的是城章科技的R305F指紋模塊,得到如下結(jié)論:指紋識(shí)別的各個(gè)環(huán)節(jié)緊密相連,缺一不可;據(jù)識(shí)率與誤識(shí)率是一對(duì)矛盾的指標(biāo),找到平衡點(diǎn)至關(guān)重要;K60N512可以出色的完成指紋識(shí)別的目的;指紋模塊算法性能優(yōu)良,實(shí)測(cè)算法性能可靠,識(shí)別率高。致設(shè)計(jì)是在老師的悉心指導(dǎo)下,經(jīng)過(guò)三個(gè)月的努力完成的,在此感老師的指導(dǎo)。畢業(yè)設(shè)計(jì)是對(duì)大學(xué)四年里所學(xué)的知識(shí)的一次全面檢驗(yàn),本設(shè)計(jì)利用所學(xué)的專業(yè)知識(shí),結(jié)合實(shí)際,完成對(duì)自己的一次綜合測(cè)試。在設(shè)計(jì)的過(guò)程中得到了導(dǎo)師的認(rèn)真指導(dǎo)和嚴(yán)格的要求,從而在此過(guò)程
38、中不但使所學(xué)的專業(yè)知識(shí)得到了鞏固,更加重要的是從導(dǎo)師那學(xué)到了很多的實(shí)踐經(jīng)驗(yàn)以及對(duì)工作認(rèn)真的態(tài)度。在此,我對(duì)培養(yǎng)和關(guān)心我的老師表示衷心的感。參考文獻(xiàn)1晶指紋識(shí)別算法研究D.:工程大學(xué),2007.石晶,王宜懷,勇等計(jì)算機(jī)科學(xué)J,2013,40(6):41-44.王超藝基于Cotex-M4核的Kinetis微控制器的應(yīng)用研究D.:大學(xué),2011.4城章科技.R30X系列指紋識(shí)別模塊用戶手冊(cè)M.2012:1-44.FreescaleSemiconductorInc.CotexM0+/M4InterruptprincipleanddesignM.王宜懷,吳瑾,銀珍嵌人式系統(tǒng)原理與實(shí)踐M.:電子工業(yè),20
39、13.附錄A程序源碼#includegpio.h#includemon.h#includeuart.h#includeili9320.h#includestdio.h#includegui.h#includew25qxx.h#includewdog.h#includelptmr.h#includertc.h#includeadc.h#defineLED1PEout(6)#defineLED2PEout(7)#defineLED3PEout(11)#defineLED4PEout(12)externGUI_BITMAPbmasdd;externGUI_BITMAPbmgrads;externGU
40、I_BITMAPbmorient;externGUI_BITMAPbmthin;externGUI_CONST_STORAGEunsignedcharacfinger;constGUI_BITMAP*pBitmap;constGUI_BITMAP*qBitmap;constGUI_BITMAP*rBitmap;constGUI_BITMAP*sBitmap;#ifndefGUI_FLASH#defineGUI_FLASH#endifexternGUI_FLASHconstGUI_FONTGUI_FontHZ_STXingKai_35;#defineIR_PORTHW_GPIOE#defineI
41、R_PIN(28)#defineIR_DATAPEin(IR_PIN)voidGPIO_ISR(uint32_tpinArray);staticuint8_tInfraredExec(uint8_t*code);uint32_tinstance;uint8_tt=0;uint8_tdat24=0;unsignedcharGR_Pack_Head6=0 xEF,0 x01,0 xFF,0 xFF,0 xFF,0 xFF;unsignedcharGR_GetImage6=0 x01,0 x00,0 x03,0 x01,0 x0,0 x05;unsignedcharGR_GenChar17=0 x0
42、1,0 x00,0 x04,0 x02,0 x01,0 x00,0 x08;unsignedcharGR_GenChar27=0 x01,0 x00,0 x04,0 x02,0 x02,0 x00,0 x09;unsignedcharGR_match6=0 x01,0 x00,0 x03,0 x03,0 x00,0 x07;unsignedcharGR_search11=0 x01,0 x0,0 x08,0 x04,0 x02,0 x0,0 x00,0 x00,0 x08,0 x00,0 x17;unsignedcharGR_upchar11=0 x01,0 x0,0 x04,0 x08,0
43、x01,0 x0,0 x0,0 x0,0 x13,0 x0,0 x21;unsignedcharGR_storechar9=0 x01,0 x0,0 x06,0 x06,0 x02,0 x0,0 x03,0 x00,0 x12unsignedcharGR_speedsearch11=0 x01,0 x00,0 x08,0 x1b,0 x02,0 x00,0 x00,0 x0,0 x10,0 x00,0 x36;unsignedcharGR_regmodel6=0 x01,0 x0,0 x03,0 x05,0 x0,0 x09;unsignedcharGR_valid6=0 x01,0 x0,0
44、 x03,0 x1d,0 x00,0 x21;charDispBuff132;charDispBuff232;staticvoidUART_RX_ISR(uint16_tbyteReceived)datt=byteReceived;t+;staticvoidLPTMR_ISR(void)GUI_Init();GUI_Clear();GUI_DispStringAt(Nosuchafingerprint!,5,20);.可修編-可修編-GUI_DispStringAt(pleaseenteragain!,5,35);DelayMs(3000);NVIC_SystemReset();voidFIN
45、GERPRINT_Cmd_Get_Img(void)unsignedchari;for(i=0;i6;i+)UART_WriteByte(instance,GR_Pack_Headi);for(i=0;i6;i+)UART_WriteByte(instance,GR_GetImagei);voidFINGERPRINT_Cmd_Gen_Char1(void)unsignedchari;for(i=0;i6;i+)UART_WriteByte(instance,GR_Pack_Headi);for(i=0;i7;i+)UART_WriteByte(instance,GR_GenChar1i);v
46、oidFINGERPRINT_Cmd_Gen_Char2(void)unsignedchari;for(i=0;i6;i+)UART_WriteByte(instance,GR_Pack_Headi);for(i=0;i7;i+)UART_WriteByte(instance,GR_GenChar2i);voidFINGERPRINT_Cmd_match(void)unsignedchari;for(i=0;i6;i+)UART_WriteByte(instance,GR_Pack_Headi);for(i=0;i6;i+)UART_WriteByte(instance,GR_matchi);voidFINGERPRINT_Cmd_search(void)unsignedchari;for(i=0;i6;i+)UART_WriteByte(instance,GR_Pack_Headi);for(i=0;i11;i+)UART_WriteByte(instance,GR_searchi);voidFINGERPRINT_Cmd_store()unsignedchari;for(i=0;i6;i+)UART_WriteByte(instance
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年山東公務(wù)員考試行測(cè)試題
- 2025年太陽(yáng)能光伏組件安裝服務(wù)合同
- 2025年商業(yè)地產(chǎn)租賃協(xié)議深度剖析
- 2025年醫(yī)院食堂食用油采購(gòu)協(xié)議
- 2025年紫外光固化油墨項(xiàng)目規(guī)劃申請(qǐng)報(bào)告
- 2025年互聯(lián)網(wǎng)用戶權(quán)益協(xié)議
- 2025年貨運(yùn)司機(jī)勞動(dòng)合同
- 2025年腫瘤類生物制品項(xiàng)目提案報(bào)告模范
- 2025年保障性住房貸款合同
- 2025年標(biāo)準(zhǔn)個(gè)人古董押借款合同樣本
- 2025屆鄭州市高三一診考試英語(yǔ)試卷含解析
- 2025年軍隊(duì)文職考試《公共科目》試題與參考答案
- 輔導(dǎo)員入職培訓(xùn)課件
- 中建雨季專項(xiàng)施工方案
- 《我國(guó)個(gè)人所得稅制下稅收征管問(wèn)題研究》
- 建筑工程三通一平技術(shù)方案
- 綠化養(yǎng)護(hù)工安全培訓(xùn)
- DB21-T 1720-2017海水源熱泵系統(tǒng)工程技術(shù)規(guī)程
- 組長(zhǎng)競(jìng)選課件教學(xué)課件
- 《基于UTAUT2模型的虛擬學(xué)術(shù)社區(qū)用戶持續(xù)使用意愿影響因素研究》
- 2022年公務(wù)員多省聯(lián)考《申論》真題(遼寧A卷)及答案解析
評(píng)論
0/150
提交評(píng)論