【基于STM32智能門鎖系統(tǒng)的設(shè)計(jì)10000字(論文)】_第1頁(yè)
【基于STM32智能門鎖系統(tǒng)的設(shè)計(jì)10000字(論文)】_第2頁(yè)
【基于STM32智能門鎖系統(tǒng)的設(shè)計(jì)10000字(論文)】_第3頁(yè)
【基于STM32智能門鎖系統(tǒng)的設(shè)計(jì)10000字(論文)】_第4頁(yè)
【基于STM32智能門鎖系統(tǒng)的設(shè)計(jì)10000字(論文)】_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGE33基于STM32智能門鎖系統(tǒng)的設(shè)計(jì)目錄TOC\o"1-3"\h\u315211緒論 1201181.1選題背景 1326341.2國(guó)內(nèi)外現(xiàn)狀 193971.3研究意義 282532系統(tǒng)設(shè)計(jì)方案和主要芯片介紹 3294832.1系統(tǒng)設(shè)計(jì)目標(biāo) 3215622.2系統(tǒng)設(shè)計(jì)方案 3256532.3主要芯片介紹 463372.3.1STM32F407 450802.3.2OLED顯示屏 6178692.3.34X4矩陣鍵盤 7158572.3.4RFID(RC522) 811342.3.5指紋(AS608) 9228843系統(tǒng)構(gòu)成模塊 114273.1電源模塊 11292003.2顯示屏模塊 1123423.2矩陣鍵盤模塊 13243843.3RFID(MFRC522)模塊 14200523.4指紋(AS608)模塊 1688654軟件設(shè)計(jì)與實(shí)現(xiàn) 1882014.1系統(tǒng)總體設(shè)計(jì) 18235744.1.1程序流程圖 18249814.24X4矩陣鍵盤程序設(shè)計(jì) 19247864.2.1功能程序流程圖 19158374.2.2部分程序分析 19145004.3RFID(MFRC522)程序設(shè)計(jì) 20276554.3.1功能程序流程圖 2067554.3.2部分程序分析 20232194.4指紋(AS608)程序設(shè)計(jì) 2222514.4.1程序流程圖 22322184.4.2部分程序分析 22315784.5漢字取模 2473675系統(tǒng)測(cè)試及結(jié)果 2568835.1系統(tǒng)硬件連接及測(cè)試 25104485.2系統(tǒng)軟件功能測(cè)試 2561355.2.14X4矩陣鍵盤代碼調(diào)試 26109215.2.2OLED顯示屏代碼調(diào)試 2644345.2.3MFRC522射頻模塊代碼調(diào)試 279085.2.4指紋識(shí)別模塊代碼調(diào)試 27294185.2.4步進(jìn)電機(jī)代碼調(diào)試 28267786結(jié)論和展望 29149416.1結(jié)論 29291976.2展望 29132527參考文獻(xiàn) 311緒論隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的飛速發(fā)展,人類的生活水平有著日新月異的變化,“以人為本、舒適、便利、智能化”已成為家居系統(tǒng)的重要設(shè)計(jì)理念,也成為必然的趨勢(shì)[1]。同時(shí),人們對(duì)安全的重視度也在逐步的提高。而鎖,就是其中一項(xiàng)重要的安全保障,它是我們財(cái)產(chǎn)安全的一道保護(hù)線。保護(hù)著人們的財(cái)產(chǎn)安全。而密碼鎖也從傳統(tǒng)又大又笨重的樣式,改變?yōu)楝F(xiàn)在不足嬰兒巴掌大小的芯片設(shè)計(jì)的密鎖。鎖具因?yàn)槠涓呖煽啃缘挠悬c(diǎn),一直從古代被廣泛的沿用到現(xiàn)在。另一方面,人們不僅僅需要安全可靠的防盜保護(hù),在使用的過(guò)程中也需要操作能夠方便快捷,這已成為在鎖具技術(shù)發(fā)展過(guò)程中必要的趨勢(shì)方向。隨著電子技術(shù)的發(fā)展,鎖定技術(shù)已經(jīng)成為一個(gè)恒定不變的方向,電子產(chǎn)品已經(jīng)與人們的日常生活密不可分,智能門鎖就可以作為一個(gè)很好的例子。例如,常見的電子鎖都具有鎖定報(bào)警功能。報(bào)警和聯(lián)鎖,在安全防盜方面,已經(jīng)完美的將傳統(tǒng)機(jī)械鎖取而代之,并且大大地提升了安全性和性能。同時(shí),伴隨著是單片機(jī)的普及,通過(guò)微處理器進(jìn)行控制的智能密碼鎖應(yīng)運(yùn)而生。除此之外,不同的外部硬件,也導(dǎo)致了鎖具有不同的功能,大幅度的提高了鎖的安全性和可靠性,得到了廣泛的應(yīng)用。2系統(tǒng)設(shè)計(jì)方案和主要芯片介紹2.1系統(tǒng)設(shè)計(jì)目標(biāo)智能門鎖系統(tǒng)采用STM32F407作為主控芯片,OLED屏負(fù)責(zé)顯示,分別使用密碼輸入、指紋識(shí)別、RFID卡驗(yàn)證模塊,實(shí)現(xiàn)智能門鎖功能。智能門鎖系統(tǒng)主要由以下模塊組成:單片機(jī)模塊、密碼輸入模塊、RFID射頻模塊、AS608指紋模塊、OLED顯示屏。同時(shí)依靠keil5進(jìn)行軟件編程,組成整個(gè)智能門鎖系統(tǒng),以實(shí)現(xiàn)以下多種功能:(1)未成功解鎖時(shí),OLED顯示屏進(jìn)行實(shí)時(shí)顯示日期和時(shí)間;成功解鎖后,可顯示功能選擇菜單;(2)通過(guò)程序設(shè)計(jì)過(guò)程中設(shè)置的初始密碼進(jìn)入系統(tǒng),進(jìn)行密碼、RFID卡號(hào)、指紋等身份信息的錄入;(3)可通過(guò)密碼輸入、RFID卡、指紋不同方式進(jìn)行身份驗(yàn)證,身份驗(yàn)證正確后,電機(jī)轉(zhuǎn)動(dòng)實(shí)現(xiàn)開門;(4)成功解鎖后,可進(jìn)入功能選擇菜單:實(shí)現(xiàn)密碼、指紋、RFID卡信息和時(shí)間日期的管理;(5)虛位密碼解鎖;(6)斷電存儲(chǔ)功能。2.2系統(tǒng)設(shè)計(jì)方案智能門鎖系統(tǒng)采用STM32F407作為主控芯片,分別使用密碼輸入、指紋識(shí)別、RFID卡驗(yàn)證模塊,實(shí)現(xiàn)智能門鎖功能。門鎖系統(tǒng)主要組成:由單片機(jī)模塊、密碼輸入模塊、RFID射頻模塊、AS608指紋模塊、OLED顯示屏組成。整個(gè)系統(tǒng)初始啟動(dòng)時(shí),主控芯片會(huì)同時(shí)將密碼輸入模塊、指紋識(shí)別模塊、RFID卡驗(yàn)證模塊也一起初始化啟動(dòng)。當(dāng)按下4X4矩陣鍵盤時(shí),則會(huì)進(jìn)入密碼輸入界面,用戶可以選擇輸入、刪除密碼或者退出。當(dāng)有卡片靠近RFID卡驗(yàn)證模塊(RC522)時(shí),系統(tǒng)會(huì)自動(dòng)讀取卡片中的卡號(hào),并與系統(tǒng)內(nèi)存儲(chǔ)的注冊(cè)卡號(hào)進(jìn)行校對(duì)。當(dāng)采用手指進(jìn)行指紋驗(yàn)證時(shí),AS608指紋驗(yàn)證模塊會(huì)將當(dāng)前指紋與自身儲(chǔ)存的指紋庫(kù)進(jìn)行比對(duì)。當(dāng)以上三種驗(yàn)證方式有任意一種方式驗(yàn)證成功時(shí),OLED屏幕會(huì)提示“解鎖成功”,并且STM32F407芯片將會(huì)控制步進(jìn)電機(jī)進(jìn)行轉(zhuǎn)動(dòng),代表著打開門鎖。整個(gè)系統(tǒng)采用4X4矩陣鍵盤和0.96存7針OLED顯示屏,實(shí)現(xiàn)人機(jī)交互。用戶可以通過(guò)4X4矩陣鍵盤進(jìn)行功能的選擇:修改密碼、注冊(cè)卡片、刪除卡片、錄入指紋、刪除指紋、修改時(shí)間等多種功能。同時(shí),采用的STM32F407芯片兼容stm32f2系列產(chǎn)品,允許ST用戶在保持硬件兼容性的同時(shí)擴(kuò)展或更新產(chǎn)品。數(shù)字信號(hào)控制器通過(guò)168mhz的高速性能大大地提高了自身的使用率和應(yīng)用范圍,同時(shí)產(chǎn)品也在不斷的迭代更新,新產(chǎn)品在執(zhí)行速度和執(zhí)行效率上得到了極大的優(yōu)化,使整個(gè)系統(tǒng)的控制更加靈活。圖2-1系統(tǒng)總體設(shè)計(jì)圖各個(gè)模塊功能如下:(1)OLED顯示屏:顯示功能選擇菜單以及各種操做流程。(2)4X4矩陣鍵盤:總共有10個(gè)數(shù)字按鍵,便于數(shù)字密碼的輸入;除此之外,還特別設(shè)置了4個(gè)功能選擇鍵,用戶可以自主進(jìn)行相關(guān)功能的選擇。(3)RFID模塊:用來(lái)讀取卡片的信息與系統(tǒng)內(nèi)部注冊(cè)的卡片信息進(jìn)行比對(duì)。指紋模塊:驗(yàn)證指紋是否匹配。2.3主要芯片介紹2.3.1STM32F407STM32F407屬于STM32F4系列的一種芯片,這是一種以M4為核心的32位高性能微控制器,具有調(diào)節(jié)動(dòng)態(tài)功耗的功能。在工作模式下,可達(dá)到238μA/MHz的電流低消耗。有16MHz高速晶體振蕩器、15個(gè)通信接口、2個(gè)DAC、3個(gè)ADC速度分別為2.4MSPS和7.2MSPS和17個(gè)16位和32位定時(shí)器,頻率高達(dá)16MHz。主要概述:1、實(shí)物圖片圖2-2實(shí)物圖片STM32F407ZET62、內(nèi)核(1)支持FPU(浮點(diǎn)運(yùn)算)和DSP指令。(2)時(shí)鐘頻率為168Mhz;3、IO口(1)STM32F407ZET6:144引腳114個(gè)IO口;(2)輸出電壓基本為5V;(3)支持調(diào)試。4、存儲(chǔ)器(1)存儲(chǔ)器容量:1024KFLASH,192KSRAM。5、時(shí)鐘、復(fù)位和電源管理(1)1.8~3.6V電源和IO電壓;(2)上電復(fù)位,掉電復(fù)位和可編程的電壓監(jiān)控;(3)外部高速振晶為4~26mhz;(4)內(nèi)部高速振蕩器為16mhz;(5)PPL,通常系統(tǒng)時(shí)鐘是外部時(shí)鐘或高速內(nèi)部時(shí)鐘;(6)外部低速振晶32.768k。6、AD(1)3個(gè)12位AD;(2)參考電壓。圖2-3參考電壓7、DA(1)2個(gè)12位DA。8、定時(shí)器多達(dá)17個(gè)(1)10個(gè)通用定時(shí)器(TIM2和TIM5是32位);(2)2個(gè)基本定時(shí)器;(3)2個(gè)高級(jí)定時(shí)器;(4)1個(gè)系統(tǒng)定時(shí)器;(5)2個(gè)看門狗定時(shí)器。9、通信接口多達(dá)17個(gè)(1)3個(gè)I2C接口;(2)6個(gè)串口;(3)3個(gè)SPI接口;(4)2個(gè)CAN2.0;(5)2個(gè)USBOTG;(6)1個(gè)SDIO。2.3.2OLED顯示屏有機(jī)發(fā)光二極管(OLED),具有板面可以直接發(fā)光、不需要背光、對(duì)比度高等諸多優(yōu)點(diǎn),將這種新應(yīng)用技術(shù)用于下一代平板顯示器已得到社會(huì)普遍的認(rèn)可。同時(shí),LCD在使用的過(guò)程中需要背光,但OLED是自發(fā)光的,所以O(shè)LED并不需要背光。這樣,在相同的條件下OLED能夠展現(xiàn)出更好的顯示效果。雖然在當(dāng)前社會(huì)所掌握的技術(shù)條件下,無(wú)法將OLED做的更大,但可以在分辨率上做出提高。OLED具有以下功能:(1)OLED有三種不同的顏色:黃色、藍(lán)色和白色。黃色占整個(gè)屏幕的3/4,藍(lán)色占1/4。此外,OLED中有自帶的規(guī)則,雖然可以在不同的區(qū)域顯示出不同的顏色,但是這種關(guān)系都是在制造時(shí)已經(jīng)規(guī)定好的,用戶無(wú)法進(jìn)行自定義修改。而所謂的白光和藍(lán)光,其實(shí)都指的是在OLED黑色的底色屏幕上顯示出的字符的顏色。(2)128*64的分辨率。(3)多種接口模式;OLED裸屏的接口有兩種并行接口模式、兩種串行接口模式以及IIC接口模式,用戶可以通過(guò)屏幕上的三個(gè)引腳去單獨(dú)配置這5個(gè)接口。主要概述:1、實(shí)物圖片圖2-40.96寸7針OLED屏圖2、引腳介紹GND:地線;VCC:供電電源;D0:輸入時(shí)鐘;D1:輸入數(shù)據(jù);RES:復(fù)位;DC:控制輸入數(shù)據(jù)/命令;CS:片選管腳。2.3.34X4矩陣鍵盤在單片機(jī)的眾多常用外部設(shè)備中,矩陣應(yīng)該是經(jīng)常能夠被使用到的一類器件了,同時(shí)采用的是矩陣式布局。由于每一個(gè)電路的設(shè)計(jì)不可能單單僅有幾個(gè)外部輸入,但是在控制鍵數(shù)較多的鍵盤時(shí),每一個(gè)鍵都需要整個(gè)電路浪費(fèi)大量的輸入/輸出資源,因此需要通過(guò)矩陣鍵盤的使用來(lái)降低IO口的使用。在兩種矩陣鍵盤中,4X4的更受使用者歡迎。矩陣鍵盤又稱行列式鍵盤,由四行輸入/輸出為行、四行輸入/輸出為列組成。在交叉點(diǎn)設(shè)置一個(gè)鍵,鍵盤的鍵號(hào)為4x4這種確定性鍵盤結(jié)構(gòu)可以大幅度提高單片機(jī)系統(tǒng)的I/O性能。由于單片機(jī)的IO口具有行功能,當(dāng)按下任意一個(gè)鍵時(shí),一行和一列就會(huì)連接起來(lái),通過(guò)簡(jiǎn)單的于或運(yùn)算就可以得到按鍵的坐標(biāo)從而判斷按鍵鍵值。主要概述:1、實(shí)物圖片圖2-54X4矩陣鍵盤圖2、主要特性(1)體積??;(2)節(jié)省空間;(3)使用方便;(4)共計(jì)16按鍵;(5)單片機(jī)外擴(kuò)鍵盤的上佳選擇。2.3.4RFID(RC522)MFRC522是一種工作電壓低、使用成本低的非接觸式通信的高集成小型讀寫卡芯片,適用于電流表、電壓表和歐姆表三種儀器的應(yīng)用中,同時(shí)在智能儀器以及手持設(shè)備的開發(fā)中起到很好的作用。MFRC522與其它兩種芯片相比雖然具有各自的特點(diǎn),但是也會(huì)由很多相同的地方和不同的地方。另外,提供SPI、IIC或UART三種模式供用戶選擇,用戶可以根據(jù)自己的需求去選擇其中一個(gè)。在用戶自由選擇模式的同時(shí),還可以很好的減少排線,降低PCB尺寸和成本。主要概述:1、實(shí)物圖片圖2-6MFRC522硬件圖1、基本概念(1)ISO-14443A協(xié)議:RFID協(xié)議的一種;(2)PICC:臨近卡、PCD:臨近耦合設(shè)備;(3)ATQ:對(duì)請(qǐng)求的應(yīng)答、ATQA針對(duì)A型卡、ATQB針對(duì)B型卡;(4)REQA:對(duì)A型卡的請(qǐng)求、REQB:對(duì)B型卡的請(qǐng)求、WUPA:A型卡的喚醒命令、ASK:選擇確認(rèn);2、MFRC522特性(1)非接觸式讀寫卡芯片、最大通信速率13.56MHz;(2)支持接口:UART、SPI(Speed_max=10Mbit/s)、IIC(快速:400Kbit/s,高速:3400Kbit/s);2.3.5指紋(AS608)AS608是由Alialen公司自主研發(fā)的一種指紋識(shí)別模塊,只需使用一個(gè)簡(jiǎn)單的通信協(xié)議通過(guò)相關(guān)的串口和USB接口進(jìn)行數(shù)據(jù)傳輸,以達(dá)到對(duì)該模塊實(shí)現(xiàn)控制的目的。目前,市面上的各種需要指紋驗(yàn)證的場(chǎng)所,都需要應(yīng)用該模塊。1、實(shí)物圖片圖2-7AS608硬件圖2、硬件接口AS608模塊采用8針控制接口,電源電壓為3.3V。通信采用兩種通信總線:串口通訊和USB通訊。串口通訊的編程比較簡(jiǎn)單,是一種常見的類型,但串口通訊的兼容性并不是很好;USB通訊的編程困難,常常被作為總線接口,USB具有良好的兼容性。3、引腳介紹圖2-8接線表4、系統(tǒng)資源(1)緩沖區(qū)和指紋庫(kù):系統(tǒng)中專門創(chuàng)建了三個(gè)緩沖區(qū),其中有一個(gè)名為ImageBuffer的緩沖區(qū),大小為72k字節(jié),用來(lái)存儲(chǔ)圖像;兩個(gè)為CharBuffer1和CharBuffer2,大小為512字節(jié),用來(lái)存儲(chǔ)特征文件。(2)用戶記事本:系統(tǒng)在閃存中預(yù)留了一個(gè)存儲(chǔ)區(qū),增加了用戶記事本的存儲(chǔ)地址。存儲(chǔ)區(qū)總共有16頁(yè),并且每一頁(yè)總共32個(gè)字節(jié)。注意:當(dāng)從記事本中寫入頁(yè)面時(shí),系統(tǒng)會(huì)將需要被書寫頁(yè)面的32字節(jié)內(nèi)容完全寫入進(jìn)去,同時(shí)會(huì)將該頁(yè)面的原始內(nèi)容自動(dòng)覆蓋。(3)模塊地址:用戶可以通過(guò)自定義的初始指令進(jìn)行修改模塊的默認(rèn)地址——0XFFFFFF。只有當(dāng)數(shù)據(jù)包中的字段地址與模塊的默認(rèn)地址相匹配的時(shí)候,系統(tǒng)才能夠接收傳輸進(jìn)來(lái)的命令包/數(shù)據(jù)包。注意:只有當(dāng)默認(rèn)地址為0xFFFFFF,該模塊才能夠與其它的上位機(jī)進(jìn)行正常的通信。(4)模塊指令:如果需要,用戶可以自主將系統(tǒng)自帶的初始密碼0修改掉。如果用戶未修改系統(tǒng)的默認(rèn)密碼,在進(jìn)入系統(tǒng)是就不需要檢查密碼,主機(jī)和單片機(jī)與芯片可以直接進(jìn)行正常通信;如果用戶更改了默認(rèn)密碼,則主機(jī)與芯片通信時(shí)首先要輸入第一條通信指令進(jìn)行密碼驗(yàn)證。芯片只有在驗(yàn)證密碼后,才能接收其他指令進(jìn)行正常通信。注意:不建議更改系統(tǒng)的默認(rèn)密碼!3系統(tǒng)構(gòu)成模塊3.1電源模塊本次設(shè)計(jì)主要采用的是以F407為控制核心的普中最小系統(tǒng)板,有三個(gè)3.3V、一個(gè)5V的電源正極接口,四個(gè)GND。除此之外,系統(tǒng)還自帶了有一組下載電路接口,專門為J-LINK供電,以便與電腦連接,將編寫好的程序燒錄到開發(fā)板中。剩余的四組,將分別為OLED顯示模塊、RFID卡識(shí)別模塊、指紋識(shí)別模塊以及步進(jìn)電機(jī)模塊提供工作電源。而對(duì)于4X4矩陣鍵盤來(lái)說(shuō),它只需要與對(duì)應(yīng)的IO口接通,用來(lái)接收電信號(hào)即可。先通過(guò)USB線,給底板供電,然后通過(guò)核心板根據(jù)各個(gè)模塊的需要,將不同的電壓供給各個(gè)模塊使用。實(shí)物圖:圖3-1實(shí)物圖3.2顯示屏模塊有機(jī)發(fā)光二極管(OLED)又稱機(jī)電式激光顯示,由于具有自發(fā)光、無(wú)背光等諸多優(yōu)良的特性,將這種新應(yīng)用技術(shù)用于下一代平板顯示器已毋庸置疑。原理圖:圖3-2原理圖引腳連接:將VCC與開發(fā)板的正極相連接,為OLED顯示屏提供3~5V的工作電壓;GND接地;SCK引腳接開發(fā)板上的PC6引腳,SCK為時(shí)鐘管腳;SDA引腳接開發(fā)板上的PC7引腳,SDA引腳為數(shù)據(jù)管腳;RES引腳連接開發(fā)板上的PG15引腳,RES引腳主要用來(lái)將電平復(fù)位為低電平;DC和CS引腳分別接在開發(fā)板上的PD6和PB7,DC主要用于控制管腳,而CS是用來(lái)接收片選信號(hào)的引腳。OLED顯示屏的工作模式有4種,而本設(shè)計(jì),系統(tǒng)采用的是4線SPI通信方式來(lái)驅(qū)動(dòng)OLED屏進(jìn)行顯示。由于對(duì)于OLED顯示模塊來(lái)說(shuō),我們只需要向OLED顯示屏發(fā)送數(shù)據(jù),并不需要讀取數(shù)據(jù)。同時(shí),SPI結(jié)構(gòu)簡(jiǎn)單,編程還易于實(shí)現(xiàn),傳輸數(shù)據(jù)的速度較快,非常適合本設(shè)計(jì)去驅(qū)動(dòng)OLED顯示屏。工作模式圖:圖3-3工作模式圖下面幾條信號(hào)線常常被用于串行模式,如:CS:OLED片選信號(hào)、RST:復(fù)位、DC:命令/數(shù)據(jù)標(biāo)志、SCLK:時(shí)鐘線、SDIN:數(shù)據(jù)線。在串行模式中,D0為時(shí)鐘線;D1為數(shù)據(jù)線。D2處于掛起狀態(tài),其他引腳則可以接地。此時(shí),可以將數(shù)據(jù)寫入到OLED屏中,但無(wú)法從OLED屏內(nèi)部將數(shù)據(jù)讀出。在4線SPI工作模式下,數(shù)據(jù)長(zhǎng)度為8位,當(dāng)位于SCLK的上升沿時(shí),數(shù)據(jù)從SDIN被傳輸?shù)絊SD1306,同時(shí)高位向前移動(dòng)。傳輸時(shí)序圖:圖3-4傳輸時(shí)序圖相關(guān)設(shè)置步驟如下:(1)首先根據(jù)整體的電路設(shè)計(jì)和OLED模塊中設(shè)置的相關(guān)通信模式,將與OLED模塊相連IO口設(shè)置為輸出。(2)其次驅(qū)動(dòng)IIC協(xié)議初始化整個(gè)模塊,并通過(guò)相關(guān)寄存器將OLED屏啟動(dòng),等待接收傳輸進(jìn)來(lái)的數(shù)據(jù)。(3)最后將接收到的數(shù)據(jù)進(jìn)行轉(zhuǎn)化,轉(zhuǎn)化成相應(yīng)的字符和數(shù)字,并通過(guò)提前設(shè)定好的程序?qū)⑿枰伙@示的字符傳輸過(guò)去。3.2矩陣鍵盤模塊矩陣鍵盤與直接法相比而言,直接法相比于矩陣鍵盤,明顯的相對(duì)簡(jiǎn)單一些。除此之外,由于兩者的構(gòu)成不同,矩陣鍵盤比直接法相對(duì)難一點(diǎn)。列線與電源正極相連處會(huì)增加一個(gè)電阻,輸出端采用與行線相連的MCUI/O端口。輸入采用列與行連接的I/O端口,由于整個(gè)系統(tǒng)會(huì)有很多的外部信號(hào)輸入,如果每一個(gè)外部輸入的信號(hào)都單獨(dú)進(jìn)行控制識(shí)別,會(huì)導(dǎo)致IO口被過(guò)多的占用。所以才會(huì)使用矩陣鍵盤,而4x4和8x8是兩種比較被經(jīng)常使用的矩陣鍵盤,其中4x4是最常用的。引腳連接:將鍵盤的行線與開發(fā)板上的GPIOF組的0-3連接起來(lái),列線則與開發(fā)板上的GPIOF組的4-7連接起來(lái),并且將行線電平的狀態(tài)置于高電平,列線電平的狀態(tài)拉低。而行線與列線相交錯(cuò)的連接點(diǎn)都對(duì)應(yīng)一個(gè)按鍵,當(dāng)我們需要獲取相應(yīng)的鍵值時(shí),只需要根據(jù)相關(guān)原理,將行線或列線保持不動(dòng)。然后依次去判斷具體的位置。原理圖:圖3-5原理圖掃描原理:在初始化矩陣鍵盤時(shí)將所有的行線設(shè)置為輸入端,列線設(shè)為輸出端。然后將所有的輸出端的列線全部置于低電平,行線全部置于高電平。然后不斷地對(duì)行線進(jìn)行掃描,觀察電平的變化。當(dāng)有按鍵被按下時(shí),該按鍵行線的電平狀態(tài)將會(huì)被拉低;如無(wú)按鍵被按下,則所有的行線依舊全部為高電平。2、當(dāng)?shù)谝徊降呐袛啻_定有按鍵被按下時(shí),則進(jìn)入預(yù)先設(shè)定好的10ms的延時(shí),為的是徹底消除機(jī)械抖動(dòng)。因?yàn)橹挥挟?dāng)抖動(dòng)被消除之后,行值才是最準(zhǔn)確的。如果行線的電平狀態(tài)在消抖之后依舊未發(fā)生改變,那么系統(tǒng)會(huì)自動(dòng)繼續(xù)接下來(lái)的判斷;如果電平狀態(tài)發(fā)生改變,則自動(dòng)返回第一步。3、在第二步確定了按鍵被按下后,系統(tǒng)將會(huì)對(duì)所有的行線和列線進(jìn)行掃描。在相同的時(shí)間內(nèi),將所有列線先置高,再拉低其中一列。將此時(shí)的行線和列線的值讀取到,再在寄存器中存儲(chǔ)讀取到的行和列值。4、取出存儲(chǔ)的所有行值和列值,并將它們組合起來(lái),并對(duì)得到的鍵值按照順序進(jìn)行編碼。編碼完成后,再?gòu)摹?000”解碼到“1111”,然后顯示按鍵號(hào)碼。3.3RFID(MFRC522)模塊MFRC522是一種高度集成的非接觸式讀寫卡芯片,芯片自帶調(diào)諧和調(diào)制。同時(shí),還存儲(chǔ)了目前所存在的所有的通信方式和協(xié)議,使得各個(gè)模塊間的數(shù)據(jù)傳輸變得更加的簡(jiǎn)便。原理圖:圖3-6原理圖工作原理:讀卡器向M1卡發(fā)送一組調(diào)制信號(hào),當(dāng)讀卡器收到單片機(jī)傳送過(guò)來(lái)的命令時(shí),開始進(jìn)行尋卡操做。MI卡內(nèi)的LC諧振電路會(huì)通過(guò)諧磁共振,使電容器帶電。在電容器的另外一端,連接了一個(gè)單向電子泵,使電容器不斷的使用電荷轉(zhuǎn)移的方式為別的電容器充能。此電容器可作為一個(gè)工作電源,為其它電路提供電力來(lái)源,以便于傳送卡片數(shù)據(jù)或接收讀卡器數(shù)據(jù)。引腳連接:將MFRC522的正負(fù)極與開發(fā)板相連接,將從機(jī)片選管腳CS與PD14引腳連接,作為從機(jī)標(biāo)志管;SCK與PD0引腳連接,直接連接核心板的SCK信號(hào);主/從設(shè)備的入和輸出分別于PE7、PE9引腳連接,一個(gè)是核心板輸出MFRC522接收,另一個(gè)為MFRC輸出核心板接收;RES于PE15引腳連接,為RES的復(fù)位功能引腳。識(shí)別流程:圖3-7識(shí)別流程圖3.4指紋(AS608)模塊As608是由Alialen公司自主研發(fā),該公司對(duì)于芯片的外圍電路進(jìn)行了改動(dòng),使與As608芯片所關(guān)聯(lián)的設(shè)計(jì),用戶都能根據(jù)自定義的需求去進(jìn)行開發(fā)。所以,其控制電路及協(xié)議幾乎是一樣的,只是廠家和性能不同而已。原理圖:圖3-8原理圖引腳連接:GND與VCC和核心板的正負(fù)極引腳相連接,輸出電壓為3.3V;UA為觸摸感應(yīng)的輸入端,和VCC一樣一起連接在核心板的正極;TCH為感應(yīng)信號(hào)的輸出端,與核心板的PA0引腳相連,將電平初始默認(rèn)為高電平;TX和RX是指紋模塊的數(shù)據(jù)輸出和輸入,分別與核心板的PA2、PA3相連接,作為指紋模塊和核心板之間的數(shù)據(jù)溝通。工作步驟:1、錄入指紋(1)錄入圖像。當(dāng)您將手指放在識(shí)別窗口中時(shí),可以通過(guò)運(yùn)行此命令來(lái)獲取指紋圖像。(2)生成特征。此指令被調(diào)用于在拍下指紋圖像之后。As608內(nèi)有專門未特征文件存放開辟的緩存去,所以我們將首先使用第一個(gè)緩存區(qū)。(3)再次錄入圖像。將同一個(gè)手指放入識(shí)別窗口,運(yùn)行命令并拍攝新的指紋圖像。(4)再次生成特征。在第2個(gè)緩存區(qū)將最新圖像的指紋特征儲(chǔ)存下來(lái)。(5)進(jìn)行精準(zhǔn)比對(duì)。系統(tǒng)會(huì)將多個(gè)指紋特征記錄下來(lái),增強(qiáng)了指紋輸入的準(zhǔn)確性。調(diào)用此命令開始進(jìn)行指紋比對(duì),如果它們一致,就意味著記錄了同一個(gè)人的同一個(gè)指紋。(6)合并特征。當(dāng)用戶輸入的的兩個(gè)指紋特征一樣時(shí),系統(tǒng)會(huì)默認(rèn)將這兩個(gè)指紋合并成一個(gè)模板,而合成后的指紋模板才是我們最終需要儲(chǔ)存到系統(tǒng)中的指紋模板。(7)儲(chǔ)存模板。生成模板時(shí),可以將其保存在As608內(nèi)部FLASH中。在存儲(chǔ)過(guò)程中,我們需要輸入一個(gè)指紋識(shí)別號(hào),它實(shí)際上是FLASH的地址。不同的ID號(hào),存儲(chǔ)的位置不同,最多好像能存兩三百個(gè)指紋。2、識(shí)別指紋(1)錄入圖像。與錄入指紋的第一步一樣,目的是獲取指紋的圖像。(2)生成特征。與錄入指紋里生產(chǎn)特征的目的一樣。指紋特征可以存到第一個(gè)緩存區(qū)也可以存到第二個(gè)緩存區(qū)。(3)搜索指紋。此命令主要是用于搜索FLASH中已成功存儲(chǔ)的指紋模板,與驗(yàn)證指紋時(shí)存放在緩存區(qū)的指紋模板進(jìn)行比對(duì)。如果與指紋模板的對(duì)比結(jié)果為相同,系統(tǒng)會(huì)自帶記錄此模板的ID。調(diào)用的時(shí)候需要指明比對(duì)的特征是緩存區(qū)1還是緩存區(qū)2,你要選擇第二步生成的特征所存儲(chǔ)的緩存區(qū)。3、刪除指紋(1)刪除指紋可以選擇刪除個(gè)別指紋或者刪除所有指紋。(2)刪除一個(gè)或幾個(gè):調(diào)用“刪除模板”指令,調(diào)用的時(shí)候需要輸入要?jiǎng)h除的起始ID號(hào)和刪除個(gè)數(shù),調(diào)用之后就會(huì)把Flash里面ID號(hào)對(duì)應(yīng)位置的數(shù)據(jù)清除掉。如:起始ID號(hào)是3,刪除個(gè)數(shù)是4,那么就會(huì)把3,4,5,6這四個(gè)ID號(hào)對(duì)應(yīng)的指紋刪掉。(3)刪除所有:調(diào)用“清空指紋庫(kù)”指令即可。4軟件設(shè)計(jì)與實(shí)現(xiàn)4.1系統(tǒng)總體設(shè)計(jì)STM32智能門鎖系統(tǒng),采用STM32F407作為主控芯片,使用keil5進(jìn)行軟件的編程。在確定好相應(yīng)的硬件結(jié)構(gòu)之后,設(shè)計(jì)者可以根據(jù)自己的需求進(jìn)行編程,以此方式實(shí)現(xiàn)多種不一樣的功能。將整個(gè)系統(tǒng)通電之后,首先整個(gè)系統(tǒng)將會(huì)進(jìn)入初始化,然后按照預(yù)先已經(jīng)設(shè)計(jì)好的程序順序來(lái)執(zhí)行各個(gè)模塊。該系統(tǒng)采用模塊化設(shè)計(jì),主要包括OLED顯示模塊、功能選擇模塊、密碼驗(yàn)證模塊、卡片驗(yàn)證模塊、指紋驗(yàn)證模塊。同時(shí),用戶可以根據(jù)自己的需求對(duì)密碼、卡片、指紋進(jìn)行增刪操作。4.1.1程序流程圖圖4-1程序流程圖4.24X4矩陣鍵盤程序設(shè)計(jì)系統(tǒng)通過(guò)掃描矩陣鍵盤,判斷哪個(gè)按鍵按下,同時(shí)系統(tǒng)運(yùn)行該按鍵相對(duì)于的功能選項(xiàng)。用戶可以通過(guò)鍵盤進(jìn)行密碼輸入和功能的選擇。4.2.1功能程序流程圖圖4-2功能程序流程圖4.2.2部分程序分析//獲取鍵盤數(shù)值函數(shù)u16GET_NUM(void){ u8key_num=0; u16num=0; while(1) { key_num=Button4_4_Scan(); if(key_num) { if(key_num==13)return0xFFFF;//‘返回’鍵 if(key_num==14)return0xFF00;// if(key_num>0&&key_num<10&&num<99)//‘1-9’鍵(限制輸入3位數(shù)) num=num*10+key_num; if(key_num==15)num=num/10;//‘Del’鍵 if(key_num==10&&num<99)num=num*10;//‘0’鍵 if(key_num==16)returnnum;//‘Enter’鍵 } OLED_ShowNum(78,32,num,3,12); } }4.3RFID(MFRC522)程序設(shè)計(jì)RFID是指人們對(duì)射頻識(shí)別技術(shù)的縮寫。簡(jiǎn)而言之,RFID能夠自動(dòng)的從電子標(biāo)簽中讀取數(shù)據(jù),是自動(dòng)識(shí)別設(shè)備的一種。除此之外,該設(shè)備全部采用自動(dòng)化操做,只需人為的在系統(tǒng)中做好相關(guān)的設(shè)置,它將會(huì)自動(dòng)開始識(shí)別工作,并且可以在各種惡劣的環(huán)境中運(yùn)行。4.3.1功能程序流程圖圖4-3功能程序流程圖4.3.2部分程序分析//功能描述尋卡讀取卡類型號(hào)//輸入?yún)?shù)reqMode--尋卡方式// TagType--返回卡片類型// 0x4400=Mifare_UltraLight// 0x0400=Mifare_One(S50)// 0x0200=Mifare_One(S70)// 0x0800=Mifare_Pro(X)// 0x4403=Mifare_DESFire//默認(rèn)返回值MI_OK u8MFRC522_Request(u8reqMode,u8*TagType){ u8status; u16backBits;//接收的數(shù)據(jù)位數(shù) // Write_MFRC522(BitFramingReg,0x07);//TxLastBists=BitFramingReg[2..0] TagType[0]=reqMode; status=MFRC522_ToCard(PCD_TRANSCEIVE,TagType,1,TagType,&backBits); // if((status!=MI_OK)||(backBits!=0x10)) { status=MI_ERR; } // returnstatus;}//功能描述防沖突檢測(cè)//輸入?yún)?shù)serNum--返回4字節(jié)卡序列號(hào),第5字節(jié)為校驗(yàn)字節(jié)//返回值成功返回MI_OKu8MFRC522_Anticoll(u8*serNum){ u8status; u8i; u8serNumCheck=0; u16unLen; // ClearBitMask(Status2Reg,0x08); //TempSensclear ClearBitMask(CollReg,0x80); //ValuesAfterColl Write_MFRC522(BitFramingReg,0x00); //TxLastBists=BitFramingReg[2..0] serNum[0]=PICC_ANTICOLL1; serNum[1]=0x20; status=MFRC522_ToCard(PCD_TRANSCEIVE,serNum,2,serNum,&unLen); // if(status==MI_OK) { //校驗(yàn)卡序列號(hào) for(i=0;i<4;i++) serNumCheck^=serNum[i]; // if(serNumCheck!=serNum[i]) status=MI_ERR; } SetBitMask(CollReg,0x80);//ValuesAfterColl=1 // returnstatus;}}4.4指紋(AS608)程序設(shè)計(jì)4.4.1程序流程圖圖4-4程序流程圖4.4.2部分程序分析//錄入圖像PS_GetImage//功能:探測(cè)手指,探測(cè)到后錄入指紋圖像存于ImageBuffer。//模塊返回確認(rèn)字u8PS_GetImage(void){u16temp;u8ensure; u8*data; SendHead(); SendAddr(); SendFlag(0x01);//命令包標(biāo)識(shí) SendLength(0x03); Sendcmd(0x01);temp=0x01+0x03+0x01; SendCheck(temp); data=JudgeStr(2000); if(data) ensure=data[9]; else ensure=0xff; returnensure;}//生成特征PS_GenChar//功能:將圖像特征文件存放在系統(tǒng)自帶的緩存區(qū) //參數(shù):BufferID-->charBuffer1:0x01 charBuffer1:0x02 //模塊返回確認(rèn)字u8PS_GenChar(u8BufferID){ u16temp; u8ensure; u8*data; SendHead(); SendAddr(); SendFlag(0x01);//命令包標(biāo)識(shí) SendLength(0x04); Sendcmd(0x02); MYUSART_SendData(BufferID); temp=0x01+0x04+0x02+BufferID; SendCheck(temp); data=JudgeStr(2000); if(data) ensure=data[9]; else ensure=0xff; returnensure;}4.5漢字取模因?yàn)镺LED屏幕不能直接存儲(chǔ)漢字庫(kù),所以就需要我們先將漢字庫(kù)一直到SD卡中,再使用取模軟件進(jìn)行漢字取模。將取好的漢字點(diǎn)陣結(jié)構(gòu)體定義到我們的程序中,就可以在OLED屏幕中顯示我們想要顯示的漢字了。軟件推薦:PCtoLCD、C2B轉(zhuǎn)換助手5系統(tǒng)測(cè)試及結(jié)果在完成該智能門鎖的設(shè)計(jì)之后,需要對(duì)各個(gè)模塊的功能和系統(tǒng)的整體功能進(jìn)行測(cè)試。目的是為了驗(yàn)證智能門鎖系統(tǒng)是否能對(duì)各個(gè)模塊進(jìn)行控制,實(shí)現(xiàn)各種功能。測(cè)試條件:OLED顯示屏、4X4矩陣鍵盤、MFRC522射頻模塊、AS608指紋識(shí)別、步進(jìn)電機(jī)。5.1系統(tǒng)硬件連接及測(cè)試本畢業(yè)設(shè)計(jì),以普中最小系統(tǒng)板為底板,STM32F407為整個(gè)門禁系統(tǒng)的控制核心。而硬件連接測(cè)試模塊包括:OLED顯示模塊、4X4矩陣鍵盤模塊、RFID卡識(shí)別模塊、指紋識(shí)別模塊、步進(jìn)電機(jī)模塊。由于板子較小、引腳眾多,同時(shí)涉及到的模塊也相對(duì)較多,接線錯(cuò)綜復(fù)雜,一定到避免少接或接反的情況,其中各個(gè)模塊的正負(fù)極連接尤為重要。接線完成后,給系統(tǒng)上電,檢查各個(gè)模塊硬件的運(yùn)行狀況是否正常,芯片是否出現(xiàn)溫度過(guò)高等現(xiàn)象。硬件模塊連接實(shí)物圖:圖5-1系統(tǒng)硬件連接圖5.2系統(tǒng)軟件功能測(cè)試本畢業(yè)設(shè)計(jì)主要采用Keil5進(jìn)行系統(tǒng)編程,軟件功能測(cè)試主要是各個(gè)模塊的程序的調(diào)試,檢查程序代碼在中是否出現(xiàn)邏輯錯(cuò)誤,對(duì)于硬件模塊的控制是否精準(zhǔn)。5.2.14X4矩陣鍵盤代碼調(diào)試4X4矩陣鍵盤采用的是逐行掃描法,分為初始化按鍵引腳和判斷獲取按鍵值兩個(gè)步驟。引腳初始化時(shí),將4個(gè)IO口設(shè)置為輸出,4個(gè)設(shè)置為輸入。然后進(jìn)行判斷按鍵,將其中4個(gè)拉低,然后分別讀取另外4個(gè)的電平,然后根據(jù)公式算出相對(duì)應(yīng)的按鍵值。圖5-24X4矩陣鍵盤程序運(yùn)行圖5.2.2OLED顯示屏代碼調(diào)試本次設(shè)計(jì)采用的是0.96寸7針OLED顯示屏,包括了初始化、找尋字模、寫入函數(shù)、顯示漢字、畫點(diǎn)等函數(shù)。而OLED是通過(guò)多個(gè)獨(dú)立像素點(diǎn)進(jìn)行顯示的,所以首先要進(jìn)行編寫畫點(diǎn)函數(shù),然后從使用指針從漢字庫(kù)中找出所需要的字符,再寫入到SSD1306中,最后將字符顯示出來(lái)。圖5-3OLED顯示屏程序運(yùn)行圖5.2.3MFRC522射頻模塊代碼調(diào)試MFRC522存儲(chǔ)了目前所存在的所有的通信方式和協(xié)議,使得各個(gè)模塊間的數(shù)據(jù)傳輸變得更加的簡(jiǎn)便。程序設(shè)計(jì)包括初始化、寄存器的讀寫函數(shù)、SPI通信的收發(fā)函數(shù)、選卡、讀卡以及防沖撞等函數(shù)。圖5-4MFRC522射頻模塊程序運(yùn)行圖5.2.4指紋識(shí)別模塊代碼調(diào)試指紋識(shí)別只需使用一個(gè)簡(jiǎn)單的通信協(xié)議通過(guò)相關(guān)的串口和USB接口進(jìn)行數(shù)據(jù)傳輸,而指紋識(shí)別模塊的代碼為開源程序,只需移植即可。包括:初始化、收發(fā)數(shù)據(jù)、錄入圖像、生成特征、存儲(chǔ)圖像、對(duì)比圖像以及指紋模塊的三次握手等函數(shù)。圖5-5指紋識(shí)別模塊程序運(yùn)行圖5.2.4步進(jìn)電機(jī)代碼調(diào)試由于在本次設(shè)計(jì)中,步進(jìn)電機(jī)模塊只是用來(lái)模擬開鎖時(shí)門鎖的轉(zhuǎn)動(dòng),所以控制程序并不需要太過(guò)復(fù)雜,采用4拍驅(qū)動(dòng)方式。模塊包括:初始化、開始轉(zhuǎn)動(dòng)和停止轉(zhuǎn)動(dòng)。圖5-6步進(jìn)電機(jī)程序運(yùn)行圖6結(jié)論和展望6.1結(jié)論本次設(shè)計(jì)從用戶出發(fā),考慮到用戶的個(gè)性化和多樣化需求。采用了當(dāng)前最主流的STM32單片機(jī)作為中心

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論