基于單片機的指紋識別系統(tǒng)設計_第1頁
基于單片機的指紋識別系統(tǒng)設計_第2頁
基于單片機的指紋識別系統(tǒng)設計_第3頁
基于單片機的指紋識別系統(tǒng)設計_第4頁
基于單片機的指紋識別系統(tǒng)設計_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、.1摘要隨著科學技術的開展,人們的平安意識也越來越強,因為指紋具有唯一性和終生不變性,所以指紋識別成為代替?zhèn)鹘y(tǒng)身份識別最平安、可靠的方法之一。本設計基于飛思卡爾Kinetis K60N512系列單片機,指紋識別模塊選擇的是城章科技的R305F模塊,該模塊帶有高性能的DSP芯片,該DSP芯片嵌完整的指紋識別算法和協(xié)議,具有指紋采集,指紋比對,指紋搜索和存儲等功能。模塊與單片機通過串口進展通訊。指紋識別系統(tǒng)通過CH340G芯片實現(xiàn)TTL電平向RS-232電平的轉(zhuǎn)換,進而實現(xiàn)與PC機的交互,PC機端經(jīng)上位機顯示指紋識別的結果。論文中介紹了根本算法的實現(xiàn)流程,同時介紹了K60N512芯片看門狗模塊的根

2、本原理以及啟動流程等。結果說明,該套指紋識別系統(tǒng)算法性能可靠,指紋識別率高,可以實現(xiàn)預先制定的目標,完成指紋識別的功能。關鍵詞:指紋識別;飛思卡爾單片機;串口AbstractWith the development of science and technology, peoples safety consciousness is being more and more strong, the fingerprint has the uniqueness and invariance for life, so the fingerprint identification is instead

3、of the traditional identification is one of the most safe and reliable methods.This design is based on Freescale Kinetis K60N512 series microcontroller, fingerprint identification module is the product of Growup pany, the module with high performance DSP chip, and the DSP chip with plete fingerprint

4、 identification algorithm and protocol, fingerprints acquisition, fingerprints search and storage, and other functions.Module and microcontroller municationthrough the serial port.Fingerprint identification system use CH340G chip change TTL level to RS-232level, and then realize the interaction with

5、 a PC, the PC shows the result of fingerprint identification.The thesis introduces the basic algorithm implementation process, at the same time, this article introduces the basic principle of the watchdog module inside K60N512 chip and the start process.Results show that the algorithm of fingerprint

6、 identification system is reliable, fingerprint recognition rate is high, and can achieve target of fingerprint identification.Key Words:Fingerprint identification,Freescale Kinetis,UART目錄 TOC o 1-3 h z u HYPERLINK l _Toc421904755摘要 PAGEREF _Toc421904755 h IHYPERLINK l _Toc421904756Abstract PAGEREF

7、_Toc421904756 h IIHYPERLINK l _Toc4219047571 緒論 PAGEREF _Toc421904757 h 1HYPERLINK l _Toc4219047581.1 選題背景和研究意義 PAGEREF _Toc421904758 h 1HYPERLINK l _Toc4219047591.2 國外研究現(xiàn)狀 PAGEREF _Toc421904759 h 1HYPERLINK l _Toc4219047602 指紋識別的根本原理 PAGEREF _Toc421904760 h 1HYPERLINK l _Toc4219047612.1 指紋圖像的采集 PAG

8、EREF _Toc421904761 h 1HYPERLINK l _Toc4219047622.2 指紋圖像預處理 PAGEREF _Toc421904762 h 2HYPERLINK l _Toc4219047632.3 指紋圖像特征點的提取 PAGEREF _Toc421904763 h 4HYPERLINK l _Toc4219047642.4 指紋圖像偽細節(jié)點的處理 PAGEREF _Toc421904764 h 4HYPERLINK l _Toc4219047652.5 指紋特征匹配 PAGEREF _Toc421904765 h 5HYPERLINK l _Toc42190476

9、62.6 評價指紋識別系統(tǒng)算法性能的指標 PAGEREF _Toc421904766 h 5HYPERLINK l _Toc4219047673 課題的容和目標 PAGEREF _Toc421904767 h 6HYPERLINK l _Toc4219047683.1 指紋識別系統(tǒng)的硬件設計 PAGEREF _Toc421904768 h 6HYPERLINK l _Toc4219047693.2 本設計所使用單片機簡介 PAGEREF _Toc421904769 h 6HYPERLINK l _Toc4219047703.3 本設計所使用的指紋模塊簡介 PAGEREF _Toc4219047

10、70 h 7HYPERLINK l _Toc4219047714 主程序分析 PAGEREF _Toc421904771 h 7HYPERLINK l _Toc4219047724.1 Cote*-M4核存放器簡介 PAGEREF _Toc421904772 h 8HYPERLINK l _Toc4219047734.2 Cote*-M4中斷機制 PAGEREF _Toc421904773 h 8HYPERLINK l _Toc4219047744.3 K60N512啟動代碼分析 PAGEREF _Toc421904774 h 9HYPERLINK l _Toc4219047754.4 K60

11、N512看門狗程序分析 PAGEREF _Toc421904775 h 11HYPERLINK l _Toc4219047764.5 Flash軟件構件簡介 PAGEREF _Toc421904776 h 11HYPERLINK l _Toc4219047774.6 Kinetis 的Fle*Bus模塊簡介 PAGEREF _Toc421904777 h 11HYPERLINK l _Toc4219047784.7 K60N512異步接收器/發(fā)送器(UART)簡介 PAGEREF _Toc421904778 h 11HYPERLINK l _Toc4219047794.8 指紋模塊指令介紹 P

12、AGEREF _Toc421904779 h 12HYPERLINK l _Toc4219047804.8.1 指紋圖像獲取 PAGEREF _Toc421904780 h 12HYPERLINK l _Toc4219047814.8.2 生成特征 PAGEREF _Toc421904781 h 15HYPERLINK l _Toc4219047824.8.3 生成模板 PAGEREF _Toc421904782 h 15HYPERLINK l _Toc4219047834.8.4 儲存模板 PAGEREF _Toc421904783 h16HYPERLINK l _Toc4219047844

13、.8.5 高速搜索 PAGEREF _Toc421904784 h 16HYPERLINK l _Toc4219047854.9 補充說明 PAGEREF _Toc421904785 h 17HYPERLINK l _Toc421904786結論 PAGEREF _Toc421904786 h 18HYPERLINK l _Toc421904787致 PAGEREF _Toc421904787 h 19HYPERLINK l _Toc421904788參考文獻 PAGEREF _Toc421904788 h 20.11 緒論1.1 選題背景和研究意義隨著我國經(jīng)濟的迅速開展,人民的生活水平得到了

14、顯著的提高,人們對于自己的隱私也愈發(fā)重視。傳統(tǒng)的電子密碼鎖等設備在高速開展的科學技術的沖擊下顯得力不從心,用戶隱私很大程度上存在泄露的風險。由于每個人的遺傳基因不同,指紋也不一樣,指紋識別技術的作用也因此越來越受到人們的重視。指紋是人身體上的一局部,是人所固有的生理特征,不用記憶,也不存在忘帶的風險,而且每個人的指紋形狀終身不變。所以指紋作為個人身份的標記是再適宜不過的了。1.2 國外研究現(xiàn)狀早期的指紋識別是以人工的方式進展的,由于指紋構造的復雜性以及對指紋識別要求的嚴格性,導致人工識別指紋工作難度大、速度慢和識別準確率受到制約,遠遠不能適應實際工作的需要。計算機技術的誕生與開展,為復雜的科學

15、計算和指紋自動識別提供了可能,20世紀70年代,美、日等興旺國家開場先后研究指紋識別系統(tǒng)。我國自動指紋識別系統(tǒng)的研究開發(fā)始于20世紀80年代,大學信息中心、清華大學自動化系、郵電大學、中科院以及光機所等都在此領域做了一定的工作,且取得了一定的成果,其中較為突出的是清華大學自動化系和大學信息中心兩家1。當然,與國外興旺國家相比,我國在自動指紋識別技術的研究上還與之存在很大的差距。指紋錄入設備的質(zhì)量不夠高,自動指紋識別算法的性能還不夠好。加強這方面的研究還是很有必要的。2指紋識別的根本原理2.1指紋圖像的采集人的皮膚由表皮、真皮和皮下組織三局部組成。指紋指的是表皮上突起的紋線,有斗型、弓型和箕型三

16、種根本類型。獲得良好的指紋圖像是進展指紋識別的前提,目前光獲取指紋圖像的方法主要有光學技術、硅技術(CMOS技術)和超聲波技術。本設計中使用的指紋傳感器基于硅技術,硅技術的優(yōu)點是可以在較小的面積上獲得較好的指紋圖像相對于光學技術,缺點是容易受到外部條件的干擾,可靠性相對較差。2.2指紋圖像預處理圖像預處理階段是指紋識別的第一個階段,圖像預處理階段比較典型的過程主要有圖像質(zhì)量評估、分割、增強、二值化和細化。指紋圖像預處理的流程圖如圖2.1所示。圖2.1 指紋圖像預處理的流程圖圖像質(zhì)量評估的目的主要是完成對傳感器采集到的指紋圖像的總體質(zhì)量評價,對于低質(zhì)量的指紋圖像直接拒絕。對于質(zhì)量到達要求的指紋圖

17、像才送給之后的處理環(huán)節(jié),從而防止了不必要的運算。分割的目的是將前景與背景分割開來。分割操作中應該盡可能去除無效區(qū)域,保存有效區(qū)域。有了分割操作,指紋圖像預處理的時間可以大大縮短。增強的目的主要是為了消除噪聲的干擾,提高指紋圖像紋線構造的清晰度。Gabor濾波的方法是一種比較理想的指紋圖像增強算法,Gabor濾波器可以同時在空間域和頻率域上獲得最正確的分辨率,具有良好的方向選擇性和帶通性。二值化是將原來的灰度圖變換為黑白兩種灰階的圖像,二值化階段閾值的選擇相當重要,閾值的選擇有雙峰法、P參數(shù)法、大津法(Otsu法或最大類間方差法)、最大熵閾值法和迭代法最正確閾值法等。細化階段主要是將二值化之后指

18、紋圖像的脊線寬度降低為單個像素寬度,從而得到細化了的指紋圖像。細化算法按迭代方式的不同可以分為串行算法和并行算法。預處理階段的每個環(huán)節(jié)是嚴密相關的,各個環(huán)節(jié)相互配合才可能獲得高質(zhì)量的指紋圖像,從而方便之后特征點的提取,為之后指紋匹配奠定良好的根底。正常的指紋圖像如圖2.2所示,二值化之后的指紋圖像如圖2.3所示,細化之后的指紋圖像如圖2.4所示。圖2.2正常的指紋圖像圖2.3二值化之后的指紋圖像圖2.4細化之后的指紋圖像2.3指紋圖像特征點的提取特征點提取的目的在于通過預先制定的算法檢測指紋圖像中奇異點和細節(jié)點這兩類特征點的數(shù)量以及每個特征點的類型、位置和所在區(qū)域的紋線方向。奇異點指的是指紋圖

19、像的中心點和三角點。細節(jié)點指的是端點(Endpoint)、叉點(Bifurcation)、孤點(Dot)、環(huán)點(Loop)、短紋(short Ridge)等。一般的指紋圖像提取的特征在10-100個之間,多數(shù)文獻認為至少應該有12個特征點才可以進展匹配。8鄰域編碼紋線跟蹤算法是一種常用的特征點提取算法。2.4指紋圖像偽細節(jié)點的處理偽細節(jié)點的處理一般分為兩類:一種在特征點提取之前,對預處理之后的指紋圖像進展平滑、去除毛刺連接斷紋等操作,之后提取特征作為真正的特征;另一種是特征提取之后,根據(jù)特征之間的相互關系,盡可能的識別偽特征點并濾除它們。應用以下兩條真?zhèn)渭毠?jié)點的量化判斷準則判斷真?zhèn)渭毠?jié)點:(1

20、)端點不應該與其它細節(jié)點相連;(2)分叉點不應該與其他的端點和分叉點相連。2.5指紋特征匹配目前,指紋匹配的相關方法主要有圖像相關匹配、紋理特征匹配、紋線匹配以及細節(jié)點匹配等。前兩者匹配速度快,但由于忽略了指紋的細節(jié)特征,匹配準確性不高。細節(jié)點匹配算法的難點在于:(1)細節(jié)點提取過程會產(chǎn)生虛假特征點和喪失真實細節(jié)點;(2)指紋圖像普遍存在平移和旋轉(zhuǎn);(3)指紋圖像之間重合區(qū)域小,一樣手指指紋的細節(jié)點集之間對應關系難以確 定;(4)圖像采集過程中,由于非線性映射、手指按壓力度不均造成了扭轉(zhuǎn)。2.6評價指紋識別系統(tǒng)算法性能的指標評價指紋識別系統(tǒng)算法的性能指標有3個,分別為拒識率(FRR)、誤識率(

21、FAR)和正確識別率(CR)。誤識率(FAR)是指在已提取的特征點的指紋樣本庫中,不同指紋匹配分數(shù)大于給定閾值判斷為匹配的比率。其計算如下式:(2.1)拒識率(FRR)是指在已提取的特征點的指紋樣本庫中,一樣指紋匹配分數(shù)小于給定閾值誤判為不匹配的比率。其計算如下式:(2.2)正確識別率(CR)計算如下式:(2.3)式中 :從式2.1到2.3可以看出,F(xiàn)RR與FAR呈現(xiàn)反比例關系,隨著匹配閾值的降低,拒識率(FRR)相應降低,誤識率(FAR)升高,反之亦然。所以應該充分考慮系統(tǒng)的需要,在拒識率(FRR)與誤識率(FAR)之間找到一個最正確平衡點。.13課題的容和目標3.1指紋識別系統(tǒng)的硬件設計系

22、統(tǒng)的構造框圖如圖3.1所示,該系統(tǒng)主要完成指紋的采集、處理和匹配等操。主要有以下幾個模塊,指紋采集模塊,K60N512單片機模塊以及顯示模塊等。圖3.1 系統(tǒng)的構造框圖3.2本設計所使用單片機簡介在嵌入式設備處理器的市場爭奪中,ARM系列處理器憑借其小體積、低功耗、低本錢和高性能,幾乎壟斷了該市場。本設計所使用的飛思卡爾K60N512單片機便是基于ARM Cote*-M4核,Cote*-M4核面向數(shù)字信號控制市場,具有高效并且易于使用的控制和信號處理能力。Cote-M4屬于ARMv7架構,該架構采用了Thumb-2技術,該項技術比純32位代碼少使用31%的存,減少了系統(tǒng)開銷。同時,Cote*-

23、M4核具有一個單時鐘周期乘法累加(MAC)單元、優(yōu)化的單指令多數(shù)據(jù)(SIMD)指令、飽和運算指令和一個可選的單精度浮點運算單元(FPU)。此外,該核提供最正確的代碼密度和一個嵌套向量中斷控制器,可以出色的完成中斷處理。Cote*-M4核框圖如圖3.2所示。圖3.2 Cote*-M4核框圖3.3本設計所使用的指紋模塊簡介指紋模塊選擇了城章科技的R305F模塊,該產(chǎn)品是該公司2021年推出的最新產(chǎn)品。指紋模塊采用了瑞典FingerPrint Card公司的FPC1011F3型指紋傳感器,這款傳感器利用了反射式探測技術,成像質(zhì)量高,對干濕手指都具有良好的適應性。FPC1011F3是一款電容式傳感器,

24、傳感器分辨率為363dpi,置8位數(shù)模轉(zhuǎn)換器,它通過SPI接口與模塊上面的高性能DSP芯片相連。高性能的DSP芯片嵌完整的指紋識別算法和協(xié)議,具有指紋采集,指紋比對,指紋搜索和存儲等功能。模塊通過串口與單片機進展通訊,數(shù)據(jù)發(fā)送端接上位機的數(shù)據(jù)接收端,數(shù)據(jù)接收端接上位機的數(shù)據(jù)發(fā)送端。本系統(tǒng)通過單片機與指紋模塊的通信實現(xiàn)了自動指紋識別的功能。首先將個人指紋信息錄入指紋模塊,之后指紋傳感器采集指紋信息且與存儲在指紋模塊里面的指紋模板進展比對,假設找到指紋,返回該指紋所對應的信息,送LCD顯示,假設未找到,提示未找到信息。4 主程序分析4.1 Cote*-M4核存放器簡介Cote*-M4的存放器有:R

25、0R15。其中R0R12是32位通用存放器,其中R0R7又被稱為低組存放器,R8R12被稱為高組存放器。32位的Thumb-2指令可以所有通用存放器。R13:堆棧指針存放器(SP Stack Pointer),它分為兩局部,一個叫做進程堆棧指針PSP(Process Stack Pointer),一個叫做主堆棧指針MSP(Master Stack Pointe),但在同一時刻只用到了其中的一個,配置控制存放器(CONTROL)的CONTROL1位來選擇是使用PSP還是MSP。R14:存放器(Link Register),子程序調(diào)用、函數(shù)調(diào)用以及異常處理時,由R14存儲返回地址,復位時R14里面

26、的值為0*ffffffff。R15:程序計數(shù)存放器(Program Counter),指向當前程序的地址,修改它的值,就可以改變程序的執(zhí)行流。同時Cote*-M4還在核水平上搭載了假設干特殊功能存放器,包括程序狀態(tài)字存放器組(PSRs或*PSR)、中斷屏蔽存放器組(PRIMASK、FAULTMASK和BASEPRI)和控制存放器(CONTROL),且只能用MSR和MRS指令它們。4.2 Cote*-M4中斷機制Cote*-M4在核水平上搭載了一個異常響應系統(tǒng)NVIC,支持為數(shù)眾多的系統(tǒng)異常和外部中斷。NVIC位于核部,通過私有外設總線。編號為015的對應系統(tǒng)異常,編號16及以上為外部中斷。與經(jīng)

27、典的ARM7TDMI,ARM926EJ-S相比較,在核層次實現(xiàn)了向量中斷控制器。當發(fā)生了異常并且要響應時,Cote*-M4需要定位其效勞例程的入口地址,這些入口地址存儲在異常向量表中。通常中斷程序的處理流程為:關閉系統(tǒng)總中斷、開啟外設模塊并使能該外設模塊中斷、配置NVIC模塊中的中斷存放器以及開總中斷等幾個過程。NVIC會根據(jù)優(yōu)先級的設置來控制搶占與嵌套行為。因此,在*個異常正在響應時,所有優(yōu)先級不高于它的異常都不能搶占之,而且它也不能自己搶占自己。如果一個已經(jīng)被掛起的中斷被使能,NVIC會根據(jù)優(yōu)先級來決定是否效勞這個中斷。當然,一個被制止的中斷被觸發(fā)掛起,無論怎樣的優(yōu)先級,NVIC都不會效勞

28、它。高優(yōu)先級中斷可以搶占并掛起低優(yōu)先級中斷,同時將低優(yōu)先級中斷上下文保存于系統(tǒng)中斷棧中,以便下次系統(tǒng)恢復時繼續(xù)執(zhí)行。當一個高優(yōu)先級中斷執(zhí)行完以后,系統(tǒng)會在掛起的中斷中選擇一個優(yōu)先級最高的中斷繼續(xù)執(zhí)行,這個過程由Cote*-M4的NVIC自動完成,由于中斷只使用中斷棧,每嵌套一級中斷,至少需要保存32個字節(jié)核存放器的容于堆??臻g,加之中斷服程序(ISR)運行過程中也需要利用中斷棧空間,系統(tǒng)中出現(xiàn)較深的嵌套中斷時,系統(tǒng)對中斷??臻g的需求較高,所以中斷環(huán)境初始化時,應視最深中斷深度,合理分配中斷??臻g大小。Cote*-M4從一個中斷源發(fā)出中斷請求信號到硬件響應中斷請求的延遲時間固定位12個周期。這1

29、2個周期系統(tǒng)執(zhí)行入棧和取棧等一系列操作,假設中斷信號連續(xù)發(fā)生,Cote*-M4可優(yōu)化中斷與中斷間的硬件響應間隔時間至6個周期2。4.3 K60N512啟動代碼分析啟動代碼用來完成對系統(tǒng)的初始化,它通常包含以下幾局部:中斷向量表定義,地址重映射及中斷向量表的復制,堆棧初始化,系統(tǒng)時鐘頻率設置,中斷存放器的初始化和進入用戶程序等局部3。K60N512上電時地址在0*00000000處,系統(tǒng)上電之后,從0*00000000處取堆棧指針到SP,之后從0*00000004處取程序指針到PC,然后跳轉(zhuǎn)至PC指針所指向的地址開場執(zhí)行程序。K60N512芯片可以在RAM和Flash中執(zhí)行代碼,在RAM中執(zhí)行速

30、度更快,因此通常將中斷向量表和數(shù)據(jù)復制到RAM空間中。BSS段是指用于存放程序中未初始化的全局變量和靜態(tài)變量的一塊存區(qū)域,數(shù)據(jù)段存放初始化后了的全局變量和靜態(tài)變量。芯片主時鐘是利用MCG模塊中的PLL模塊,倍頻50MHZ有源晶振得到的。Kinetis芯片部存在3種不同的時鐘:核時鐘,總線時鐘和flash時鐘。其中核時鐘是根本時鐘,其他時鐘均從核時鐘分頻得到。MCG模塊為MCU提供了多種時鐘源,其部包含一個鎖頻環(huán)(FLL)和一個鎖相環(huán)(PLL),FLL承受部或外部的參考時鐘源,PLL承受外部參考時鐘源,外部時鐘參考源來自OSC模塊。該局部啟動代碼由飛思卡爾公司提供,完成了芯片的根本初始化。K60

31、N512芯片的啟動程序流程圖如圖4.1所示。從流程圖中可以看到芯片初始化的根本過程,啟動代碼的最終目的是跳轉(zhuǎn)到main函數(shù),在main函數(shù)里面加載關于指紋識別的相關操作代碼,可以說這段代碼的存在降低了開發(fā)的難度。圖4.1 啟動程序流程圖4.4 K60N512看門狗程序分析本設計中采用了普通看門狗,以確保程序跑飛之后及時復位,增加了系統(tǒng)的可靠性。K60N512的看門狗存放器是只寫一次存放器,即上電后只能對其進展一次寫入,假設要屢次寫入,必須先解鎖看門狗。解鎖看門狗是向看門狗的解鎖存放器(WDOG_UNLOCK)連續(xù)寫入0*C520和0*D928,兩次寫入時間間隔不能超過20個時鐘周期,否則解鎖不

32、成功。解鎖看門狗后通過配置看門狗狀態(tài)控制存放器(WDOG_STCTRLH)的WDOGEN位來關閉看門狗。使能看門狗以后,會在溢出時間超時之后產(chǎn)生看門狗復位。程序中必須在溢出超時前進展喂狗操作,喂狗之后看門狗模塊重新計時,MK60N512的喂狗操作是向看門狗刷新存放器(WDOG_REFRESH)連續(xù)寫入0*B480和0*A602,兩次寫入時間間隔同樣不能超過20個時鐘周期??撮T狗的溢出時間通過設置WDOG_TOVALH和WDOG_TOVALL存放器實現(xiàn)。4.5Flash軟件構件簡介Flash存儲器的特點是斷電后保持數(shù)據(jù),微控制器使用Flash存儲器來存儲代碼和數(shù)據(jù),有時也將系統(tǒng)運行狀態(tài)參數(shù)保存在

33、Flash中。K60512部集成512K的Flash,分為256個扇區(qū),F(xiàn)lash存儲器的特點是只能將數(shù)據(jù)從1寫為0,不能從0寫為1,寫入的最小單位為一個字節(jié),擦出的最小單位一個扇區(qū)(2K)。Flash存儲器部集成Flash控制器,控制器可以接收并執(zhí)行命令。4.6 Kinetis 的Fle*Bus模塊簡介Fle*Bus片選地址存放器(FB_CSARn)用來配置相應外部片選信號FB_CSn的地址圍基地址, FB_CSn為低電平時選中相應的外設。片選控制存放器(FB_CSMRn)里面的FB_CSCRPS端口大小與FB_CSCRBLS對齊方式相配合,決定Fle*Bus數(shù)據(jù)總線的端口分配和大小。引腳復

34、用功能控制存放器(FB_CSPMCR),配置該存放器設置Fle*Bus引腳復用功能。4.7 K60N512異步接收器/發(fā)送器(UART)簡介UART接收器可以容納8、9或10位數(shù)據(jù)字符。UART*_c2RIE位和UART*_c2TIE位的設置決定是否允許承受和發(fā)送中斷,假設使能中斷,必須首先實現(xiàn)中斷效勞程序。設置UART*_C2RE位和UART*_C2TE位使能UART接收機和發(fā)送機。UART*_C1M位、UART*_C1PE位和UART*_C4M10位的狀態(tài)決定數(shù)據(jù)字符的長度。UART*_S2MSBF位設置為1時,接收器操作使得在起始位后面接收的第一位是數(shù)據(jù)字的最高有效位。奇偶校驗位該位禁用

35、的情況下選擇停頓位之前接收到的位被當作數(shù)據(jù)字的最低有效位,所有必要的位順序是由模塊自動處理。UART*_BDH存放器與UART*_BDL存放器一起控制UART波特率發(fā)生器的預分頻因子。更新13位波特率設置時,首先寫B(tài)DH緩沖新值的高半局部,然后寫B(tài)DL。直到BDL被寫入時BDH中的值才會變。UART初始化函數(shù)主要實現(xiàn)了UART數(shù)據(jù)格式,波特率,UART模塊時鐘使能等工作。UART構建測試可以通過查詢和中斷兩種方式實現(xiàn)。查詢方式通過不斷調(diào)用接收函數(shù),查詢接收標志是否有效來判斷是否成功接收數(shù)據(jù)。中斷方式通過中斷效勞程序?qū)崿F(xiàn),成功接收一個字節(jié)之后,芯片自動跳轉(zhuǎn)至中斷效勞程序,中斷效勞程序中調(diào)用接收一

36、個字節(jié)的函數(shù)來接收數(shù)據(jù)。K60N512的UART可以穩(wěn)定工作在115200bps下。4.8指紋模塊指令介紹主程序中指紋存儲程序流程圖如圖4.2所示,指紋搜索程序流程圖如圖4.3所示。用到的指紋模塊指令分列如下:4.8.1 指紋圖像獲取發(fā)送獲取指紋圖像的指令,等待接收應答包。指令的指令包和應答包的格式分別如表4.1和表4.2所示。表4.1指令包格式2 bytes4 bytes1 byte2 bytes1 byte2 bytes模塊地址包標識包長度指令碼校驗和0*ef010*ffffffff01H03H01H05H表4.2應答包格式2 bytes4 bytes1 byte2 bytes1 byte

37、2 bytes模塊地址包標識包長度確認碼校驗和0*ef010*ffffffff07H03H*Hsum圖4.2 指紋存儲程序流程圖圖4.3 指紋搜索程序流程圖4.8.2生成特征編程中為了提高模板質(zhì)量,生成了兩次特征文件,分別存于charbuffer1與charbuffer2當中,生成特征指令的指令包與應答包的格式分別如表4.3和表4.4所示。表4.3指令包格式2 bytes4 bytes1 byte2 bytes1 byte1 byte2 bytes模塊地址包標識包長度指令碼緩沖區(qū)號校驗和0*ef010*ffffffff01H04H02HBufferIDsum表4.4應答包格式2 bytes4

38、bytes1 byte2 bytes1 byte2 bytes模塊地址包標識包長度確認碼校驗和0*ef010*ffffffff07H03H*Hsum確認碼為00H表示生成特征成功,01H表示收包有誤。4.8.3生成模板這一步的目的是將charbuffer1與charbuffer2中的特征文件合并生成模板,結果存于charbuffer1與charbuffer2中。指令包和應答包格式分別如表4.5和表4.6所示。表4.5指令包格式2 bytes4 bytes1 byte2 bytes1 byte2 bytes模塊地址包標識包長度指令碼校驗和0*ef010*ffffffff01H03H05H09H表

39、4.6 應答包格式2 bytes4 bytes1 byte2 bytes1 byte2 bytes模塊地址包標識包長度確認碼校驗和0*ef010*ffffffff07H03H*Hsum確認碼為00H表示生成模板成功。01H表示收包有誤,0aH表示生成模板失敗。4.8.4 儲存模板這一步的作用是將charbuffer1或charbuffer2中的模板文件存到PageID號flash數(shù)據(jù)庫位置。指令包和應答包格式分別如表4.7和表4.8所示。表4.7指令包格式2 bytes4 bytes1 byte2 bytes1 byte1 byte2 bytes2 bytes模塊地址包標識包長度指令碼緩沖區(qū)號

40、位置號校驗和0*ef010*ffffffff07H06H06HBufferIDPageIDsum4.8應答包格式2 bytes4 bytes1 byte2 bytes1 byte2 bytes模塊地址包標識包長度確認碼校驗和0*ef010*ffffffff07H03H*Hsum確認碼為00H表示存儲成功,01H表示收包有錯,0bH表示PageID超出指紋庫圍,18H表示寫flash出錯。4.8.5 高速搜索在此環(huán)節(jié)當中,以CharBuffer1或CharBuffer2中的特征文件高速搜索整個或局部指紋庫。假設搜索到,則返回頁碼。這一環(huán)節(jié)是指紋識別的最后一個環(huán)節(jié),也是最重要的一個環(huán)節(jié)。指令包和應

41、答包的格式分別如表4.9和表4.10所示。表4.9指令包格式2 bytes4 bytes1byte2 bytes1 byte1 byte2 bytes2 bytes2 bytes模塊地址包標識包長度指令碼緩沖區(qū)號參數(shù)參數(shù)校驗0*ef010*ffffffff01H08H1bHBuferIDStartPagePageNumsum表4.10應答包格式2 bytes4 bytes1 byte2 bytes1 byte2 bytes2 bytes2 bytes模塊地址包標識包長度確認碼頁碼得分校驗和0*ef010*ffffffff07H07H*HPageIDMatchScoresum4.9補充說明本設計

42、中指紋搜索程序中添加了低功耗定時功能,搜索時間超過預先設定的值之后進入中斷,在該中斷中又添加了提示未找到指紋圖像的信息以及軟件復位功能,實現(xiàn)自動指紋識別的作用。設計中還采用了AD功能實時監(jiān)測芯片工作溫度。實時時鐘用于獲得時間。蜂鳴器以及LCD用來提示指紋錄入以及搜索的情況。.1結論本設計主要是基于Kinetis K60N512單片機的指紋識別系統(tǒng)設計,指紋模塊選擇的是城章科技的R305F指紋模塊,得到如下結論:(1) 指紋識別的各個環(huán)節(jié)嚴密相連,缺一不可;(2)據(jù)識率與誤識率是一對矛盾的指標,找到平衡點至關重要;(3)K60N512可以出色的完成指紋識別的目的;(4)指紋模塊算法性能優(yōu)良,實測

43、算法性能可靠,識別率高。致 設計是在教師的悉心指導下,經(jīng)過三個月的努力完成的,在此感教師的指導。畢業(yè)設計是對大學四年里所學的知識的一次全面檢驗,本設計利用所學的專業(yè)知識,結合實際,完成對自己的一次綜合測試。在設計的過程中得到了導師的認真指導和嚴格的要求,從而在此過程中不但使所學的專業(yè)知識得到了穩(wěn)固,更加重要的是從導師那學到了很多的實踐經(jīng)歷以及對工作認真的態(tài)度。在此,我對培養(yǎng)和關心我的教師表示衷心的感。參考文獻1 晶.指紋識別算法研究D.:工程大學,2007.2 石晶,王宜懷,勇等.計算機科學J,2021,40(6):41-44.3 王超藝.基于Cote*-M4核的Kinetis微控制器的應用研

44、究D.:大學,2021.4 城章科技.R30*系列指紋識別模塊用戶手冊M.2021:1-44.5Freescale Semiconductor Inc.Cote* M0+/M4 Interrupt principle and designM.6王宜懷,吳瑾,銀珍.嵌入式系統(tǒng)原理與實踐M.:電子工業(yè),2021.1附錄A 程序源碼*include gpio.h*include mon.h*include uart.h*include ili9320.h*include stdio.h*include gui.h*include w25q*.h*include wdog.h*include lptm

45、r.h*include rtc.h*include adc.h*define LED1 PEout(6) *define LED2 PEout(7) *define LED3 PEout(11) *define LED4 PEout(12) e*tern GUI_BITMAP bmasdd;e*tern GUI_BITMAP bmgrads;e*tern GUI_BITMAP bmorient;e*tern GUI_BITMAP bmthin;e*tern GUI_CONST_STORAGE unsigned char acfinger;const GUI_BITMAP *pBitmap;co

46、nst GUI_BITMAP *qBitmap;const GUI_BITMAP *rBitmap;const GUI_BITMAP *sBitmap;*ifndef GUI_FLASH *define GUI_FLASH *endife*tern GUI_FLASH const GUI_FONT GUI_FontHZ_ST*ingKai_35;*define IR_PORT HW_GPIOE*define IR_PIN (28)*define IR_DATA PEin(IR_PIN)void GPIO_ISR(uint32_t pinArray);static uint8_t Infrare

47、dE*ec(uint8_t * code);uint32_t instance;uint8_tt=0;uint8_t dat24=0;unsigned char GR_Pack_Head6 = 0*EF,0*01,0*FF,0*FF,0*FF,0*FF; unsigned char GR_GetImage6 =0*01,0*00,0*03,0*01,0*0,0*05;unsigned char GR_GenChar17 =0*01,0*00,0*04,0*02,0*01,0*00,0*08 ; unsigned char GR_GenChar27 =0*01,0*00,0*04,0*02,0*

48、02,0*00,0*09 ; unsigned char GR_match6 =0*01,0*00,0*03,0*03,0*00,0*07 ; unsigned char GR_search11=0*01,0*0,0*08,0*04,0*02,0*0,0*00,0*00,0*08,0*00,0*17;unsigned char GR_upchar11=0*01,0*0,0*04,0*08,0*01,0*0,0*0,0*0,0*13,0*0,0*21;unsigned char GR_storechar9=0*01,0*0,0*06,0*06,0*02,0*0,0*03,0*00,0*12 un

49、signedcharGR_speedsearch11=0*01,0*00,0*08,0*1b,0*02,0*00,0*00,0*0,0*10,0*00,0*36; unsigned char GR_regmodel6=0*01,0*0,0*03,0*05,0*0,0*09;unsigned char GR_valid6=0*01,0*0,0*03,0*1d,0*00,0*21; char DispBuff1 32;char DispBuff2 32; static void UART_R*_ISR(uint16_t byteReceived) datt=byteReceived; t+; st

50、atic void LPTMR_ISR(void) GUI_Init(); GUI_Clear(); GUI_DispStringAt(No such a fingerprint!,5,20); GUI_DispStringAt(please enter again!,5,35); DelayMs(3000); NVIC_SystemReset(); void FINGERPRINT_Cmd_Get_Img(void) unsigned char i; for(i=0;i6;i+) UART_WriteByte( instance, GR_Pack_Headi); for(i=0;i6;i+)

51、 UART_WriteByte( instance,GR_GetImagei ); void FINGERPRINT_Cmd_Gen_Char1(void) unsigned char i; for(i=0;i6;i+) UART_WriteByte( instance, GR_Pack_Headi); for(i=0;i7;i+) UART_WriteByte( instance,GR_GenChar1i ); void FINGERPRINT_Cmd_Gen_Char2(void) unsigned char i; for(i=0;i6;i+) UART_WriteByte( instan

52、ce, GR_Pack_Headi); for(i=0;i7;i+) UART_WriteByte( instance,GR_GenChar2i ); void FINGERPRINT_Cmd_match(void) unsigned char i; for(i=0;i6;i+) UART_WriteByte( instance, GR_Pack_Headi); for(i=0;i6;i+) UART_WriteByte( instance,GR_matchi ); void FINGERPRINT_Cmd_search(void) unsigned char i; for(i=0;i6;i+) UART_WriteByte( instance, GR_Pack_Headi); for(i=0;i11;i+) UART_WriteByte( instance,GR_searchi ); void FI

溫馨提示

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

評論

0/150

提交評論