




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGE33基于STM32智能門鎖系統的設計目錄TOC\o"1-3"\h\u315211緒論 1201181.1選題背景 1326341.2國內外現狀 193971.3研究意義 282532系統設計方案和主要芯片介紹 3294832.1系統設計目標 3215622.2系統設計方案 3256532.3主要芯片介紹 463372.3.1STM32F407 450802.3.2OLED顯示屏 6178692.3.34X4矩陣鍵盤 7158572.3.4RFID(RC522) 811342.3.5指紋(AS608) 9228843系統構成模塊 114273.1電源模塊 11292003.2顯示屏模塊 1123423.2矩陣鍵盤模塊 13243843.3RFID(MFRC522)模塊 14200523.4指紋(AS608)模塊 1688654軟件設計與實現 1882014.1系統總體設計 18235744.1.1程序流程圖 18249814.24X4矩陣鍵盤程序設計 19247864.2.1功能程序流程圖 19158374.2.2部分程序分析 19145004.3RFID(MFRC522)程序設計 20276554.3.1功能程序流程圖 2067554.3.2部分程序分析 20232194.4指紋(AS608)程序設計 2222514.4.1程序流程圖 22322184.4.2部分程序分析 22315784.5漢字取模 2473675系統測試及結果 2568835.1系統硬件連接及測試 25104485.2系統軟件功能測試 2561355.2.14X4矩陣鍵盤代碼調試 26109215.2.2OLED顯示屏代碼調試 2644345.2.3MFRC522射頻模塊代碼調試 279085.2.4指紋識別模塊代碼調試 27294185.2.4步進電機代碼調試 28267786結論和展望 29149416.1結論 29291976.2展望 29132527參考文獻 311緒論隨著計算機技術和通信技術的飛速發展,人類的生活水平有著日新月異的變化,“以人為本、舒適、便利、智能化”已成為家居系統的重要設計理念,也成為必然的趨勢[1]。同時,人們對安全的重視度也在逐步的提高。而鎖,就是其中一項重要的安全保障,它是我們財產安全的一道保護線。保護著人們的財產安全。而密碼鎖也從傳統又大又笨重的樣式,改變為現在不足嬰兒巴掌大小的芯片設計的密鎖。鎖具因為其高可靠性的有點,一直從古代被廣泛的沿用到現在。另一方面,人們不僅僅需要安全可靠的防盜保護,在使用的過程中也需要操作能夠方便快捷,這已成為在鎖具技術發展過程中必要的趨勢方向。隨著電子技術的發展,鎖定技術已經成為一個恒定不變的方向,電子產品已經與人們的日常生活密不可分,智能門鎖就可以作為一個很好的例子。例如,常見的電子鎖都具有鎖定報警功能。報警和聯鎖,在安全防盜方面,已經完美的將傳統機械鎖取而代之,并且大大地提升了安全性和性能。同時,伴隨著是單片機的普及,通過微處理器進行控制的智能密碼鎖應運而生。除此之外,不同的外部硬件,也導致了鎖具有不同的功能,大幅度的提高了鎖的安全性和可靠性,得到了廣泛的應用。2系統設計方案和主要芯片介紹2.1系統設計目標智能門鎖系統采用STM32F407作為主控芯片,OLED屏負責顯示,分別使用密碼輸入、指紋識別、RFID卡驗證模塊,實現智能門鎖功能。智能門鎖系統主要由以下模塊組成:單片機模塊、密碼輸入模塊、RFID射頻模塊、AS608指紋模塊、OLED顯示屏。同時依靠keil5進行軟件編程,組成整個智能門鎖系統,以實現以下多種功能:(1)未成功解鎖時,OLED顯示屏進行實時顯示日期和時間;成功解鎖后,可顯示功能選擇菜單;(2)通過程序設計過程中設置的初始密碼進入系統,進行密碼、RFID卡號、指紋等身份信息的錄入;(3)可通過密碼輸入、RFID卡、指紋不同方式進行身份驗證,身份驗證正確后,電機轉動實現開門;(4)成功解鎖后,可進入功能選擇菜單:實現密碼、指紋、RFID卡信息和時間日期的管理;(5)虛位密碼解鎖;(6)斷電存儲功能。2.2系統設計方案智能門鎖系統采用STM32F407作為主控芯片,分別使用密碼輸入、指紋識別、RFID卡驗證模塊,實現智能門鎖功能。門鎖系統主要組成:由單片機模塊、密碼輸入模塊、RFID射頻模塊、AS608指紋模塊、OLED顯示屏組成。整個系統初始啟動時,主控芯片會同時將密碼輸入模塊、指紋識別模塊、RFID卡驗證模塊也一起初始化啟動。當按下4X4矩陣鍵盤時,則會進入密碼輸入界面,用戶可以選擇輸入、刪除密碼或者退出。當有卡片靠近RFID卡驗證模塊(RC522)時,系統會自動讀取卡片中的卡號,并與系統內存儲的注冊卡號進行校對。當采用手指進行指紋驗證時,AS608指紋驗證模塊會將當前指紋與自身儲存的指紋庫進行比對。當以上三種驗證方式有任意一種方式驗證成功時,OLED屏幕會提示“解鎖成功”,并且STM32F407芯片將會控制步進電機進行轉動,代表著打開門鎖。整個系統采用4X4矩陣鍵盤和0.96存7針OLED顯示屏,實現人機交互。用戶可以通過4X4矩陣鍵盤進行功能的選擇:修改密碼、注冊卡片、刪除卡片、錄入指紋、刪除指紋、修改時間等多種功能。同時,采用的STM32F407芯片兼容stm32f2系列產品,允許ST用戶在保持硬件兼容性的同時擴展或更新產品。數字信號控制器通過168mhz的高速性能大大地提高了自身的使用率和應用范圍,同時產品也在不斷的迭代更新,新產品在執行速度和執行效率上得到了極大的優化,使整個系統的控制更加靈活。圖2-1系統總體設計圖各個模塊功能如下:(1)OLED顯示屏:顯示功能選擇菜單以及各種操做流程。(2)4X4矩陣鍵盤:總共有10個數字按鍵,便于數字密碼的輸入;除此之外,還特別設置了4個功能選擇鍵,用戶可以自主進行相關功能的選擇。(3)RFID模塊:用來讀取卡片的信息與系統內部注冊的卡片信息進行比對。指紋模塊:驗證指紋是否匹配。2.3主要芯片介紹2.3.1STM32F407STM32F407屬于STM32F4系列的一種芯片,這是一種以M4為核心的32位高性能微控制器,具有調節動態功耗的功能。在工作模式下,可達到238μA/MHz的電流低消耗。有16MHz高速晶體振蕩器、15個通信接口、2個DAC、3個ADC速度分別為2.4MSPS和7.2MSPS和17個16位和32位定時器,頻率高達16MHz。主要概述:1、實物圖片圖2-2實物圖片STM32F407ZET62、內核(1)支持FPU(浮點運算)和DSP指令。(2)時鐘頻率為168Mhz;3、IO口(1)STM32F407ZET6:144引腳114個IO口;(2)輸出電壓基本為5V;(3)支持調試。4、存儲器(1)存儲器容量:1024KFLASH,192KSRAM。5、時鐘、復位和電源管理(1)1.8~3.6V電源和IO電壓;(2)上電復位,掉電復位和可編程的電壓監控;(3)外部高速振晶為4~26mhz;(4)內部高速振蕩器為16mhz;(5)PPL,通常系統時鐘是外部時鐘或高速內部時鐘;(6)外部低速振晶32.768k。6、AD(1)3個12位AD;(2)參考電壓。圖2-3參考電壓7、DA(1)2個12位DA。8、定時器多達17個(1)10個通用定時器(TIM2和TIM5是32位);(2)2個基本定時器;(3)2個高級定時器;(4)1個系統定時器;(5)2個看門狗定時器。9、通信接口多達17個(1)3個I2C接口;(2)6個串口;(3)3個SPI接口;(4)2個CAN2.0;(5)2個USBOTG;(6)1個SDIO。2.3.2OLED顯示屏有機發光二極管(OLED),具有板面可以直接發光、不需要背光、對比度高等諸多優點,將這種新應用技術用于下一代平板顯示器已得到社會普遍的認可。同時,LCD在使用的過程中需要背光,但OLED是自發光的,所以OLED并不需要背光。這樣,在相同的條件下OLED能夠展現出更好的顯示效果。雖然在當前社會所掌握的技術條件下,無法將OLED做的更大,但可以在分辨率上做出提高。OLED具有以下功能:(1)OLED有三種不同的顏色:黃色、藍色和白色。黃色占整個屏幕的3/4,藍色占1/4。此外,OLED中有自帶的規則,雖然可以在不同的區域顯示出不同的顏色,但是這種關系都是在制造時已經規定好的,用戶無法進行自定義修改。而所謂的白光和藍光,其實都指的是在OLED黑色的底色屏幕上顯示出的字符的顏色。(2)128*64的分辨率。(3)多種接口模式;OLED裸屏的接口有兩種并行接口模式、兩種串行接口模式以及IIC接口模式,用戶可以通過屏幕上的三個引腳去單獨配置這5個接口。主要概述:1、實物圖片圖2-40.96寸7針OLED屏圖2、引腳介紹GND:地線;VCC:供電電源;D0:輸入時鐘;D1:輸入數據;RES:復位;DC:控制輸入數據/命令;CS:片選管腳。2.3.34X4矩陣鍵盤在單片機的眾多常用外部設備中,矩陣應該是經常能夠被使用到的一類器件了,同時采用的是矩陣式布局。由于每一個電路的設計不可能單單僅有幾個外部輸入,但是在控制鍵數較多的鍵盤時,每一個鍵都需要整個電路浪費大量的輸入/輸出資源,因此需要通過矩陣鍵盤的使用來降低IO口的使用。在兩種矩陣鍵盤中,4X4的更受使用者歡迎。矩陣鍵盤又稱行列式鍵盤,由四行輸入/輸出為行、四行輸入/輸出為列組成。在交叉點設置一個鍵,鍵盤的鍵號為4x4這種確定性鍵盤結構可以大幅度提高單片機系統的I/O性能。由于單片機的IO口具有行功能,當按下任意一個鍵時,一行和一列就會連接起來,通過簡單的于或運算就可以得到按鍵的坐標從而判斷按鍵鍵值。主要概述:1、實物圖片圖2-54X4矩陣鍵盤圖2、主要特性(1)體積小;(2)節省空間;(3)使用方便;(4)共計16按鍵;(5)單片機外擴鍵盤的上佳選擇。2.3.4RFID(RC522)MFRC522是一種工作電壓低、使用成本低的非接觸式通信的高集成小型讀寫卡芯片,適用于電流表、電壓表和歐姆表三種儀器的應用中,同時在智能儀器以及手持設備的開發中起到很好的作用。MFRC522與其它兩種芯片相比雖然具有各自的特點,但是也會由很多相同的地方和不同的地方。另外,提供SPI、IIC或UART三種模式供用戶選擇,用戶可以根據自己的需求去選擇其中一個。在用戶自由選擇模式的同時,還可以很好的減少排線,降低PCB尺寸和成本。主要概述:1、實物圖片圖2-6MFRC522硬件圖1、基本概念(1)ISO-14443A協議:RFID協議的一種;(2)PICC:臨近卡、PCD:臨近耦合設備;(3)ATQ:對請求的應答、ATQA針對A型卡、ATQB針對B型卡;(4)REQA:對A型卡的請求、REQB:對B型卡的請求、WUPA:A型卡的喚醒命令、ASK:選擇確認;2、MFRC522特性(1)非接觸式讀寫卡芯片、最大通信速率13.56MHz;(2)支持接口:UART、SPI(Speed_max=10Mbit/s)、IIC(快速:400Kbit/s,高速:3400Kbit/s);2.3.5指紋(AS608)AS608是由Alialen公司自主研發的一種指紋識別模塊,只需使用一個簡單的通信協議通過相關的串口和USB接口進行數據傳輸,以達到對該模塊實現控制的目的。目前,市面上的各種需要指紋驗證的場所,都需要應用該模塊。1、實物圖片圖2-7AS608硬件圖2、硬件接口AS608模塊采用8針控制接口,電源電壓為3.3V。通信采用兩種通信總線:串口通訊和USB通訊。串口通訊的編程比較簡單,是一種常見的類型,但串口通訊的兼容性并不是很好;USB通訊的編程困難,常常被作為總線接口,USB具有良好的兼容性。3、引腳介紹圖2-8接線表4、系統資源(1)緩沖區和指紋庫:系統中專門創建了三個緩沖區,其中有一個名為ImageBuffer的緩沖區,大小為72k字節,用來存儲圖像;兩個為CharBuffer1和CharBuffer2,大小為512字節,用來存儲特征文件。(2)用戶記事本:系統在閃存中預留了一個存儲區,增加了用戶記事本的存儲地址。存儲區總共有16頁,并且每一頁總共32個字節。注意:當從記事本中寫入頁面時,系統會將需要被書寫頁面的32字節內容完全寫入進去,同時會將該頁面的原始內容自動覆蓋。(3)模塊地址:用戶可以通過自定義的初始指令進行修改模塊的默認地址——0XFFFFFF。只有當數據包中的字段地址與模塊的默認地址相匹配的時候,系統才能夠接收傳輸進來的命令包/數據包。注意:只有當默認地址為0xFFFFFF,該模塊才能夠與其它的上位機進行正常的通信。(4)模塊指令:如果需要,用戶可以自主將系統自帶的初始密碼0修改掉。如果用戶未修改系統的默認密碼,在進入系統是就不需要檢查密碼,主機和單片機與芯片可以直接進行正常通信;如果用戶更改了默認密碼,則主機與芯片通信時首先要輸入第一條通信指令進行密碼驗證。芯片只有在驗證密碼后,才能接收其他指令進行正常通信。注意:不建議更改系統的默認密碼!3系統構成模塊3.1電源模塊本次設計主要采用的是以F407為控制核心的普中最小系統板,有三個3.3V、一個5V的電源正極接口,四個GND。除此之外,系統還自帶了有一組下載電路接口,專門為J-LINK供電,以便與電腦連接,將編寫好的程序燒錄到開發板中。剩余的四組,將分別為OLED顯示模塊、RFID卡識別模塊、指紋識別模塊以及步進電機模塊提供工作電源。而對于4X4矩陣鍵盤來說,它只需要與對應的IO口接通,用來接收電信號即可。先通過USB線,給底板供電,然后通過核心板根據各個模塊的需要,將不同的電壓供給各個模塊使用。實物圖:圖3-1實物圖3.2顯示屏模塊有機發光二極管(OLED)又稱機電式激光顯示,由于具有自發光、無背光等諸多優良的特性,將這種新應用技術用于下一代平板顯示器已毋庸置疑。原理圖:圖3-2原理圖引腳連接:將VCC與開發板的正極相連接,為OLED顯示屏提供3~5V的工作電壓;GND接地;SCK引腳接開發板上的PC6引腳,SCK為時鐘管腳;SDA引腳接開發板上的PC7引腳,SDA引腳為數據管腳;RES引腳連接開發板上的PG15引腳,RES引腳主要用來將電平復位為低電平;DC和CS引腳分別接在開發板上的PD6和PB7,DC主要用于控制管腳,而CS是用來接收片選信號的引腳。OLED顯示屏的工作模式有4種,而本設計,系統采用的是4線SPI通信方式來驅動OLED屏進行顯示。由于對于OLED顯示模塊來說,我們只需要向OLED顯示屏發送數據,并不需要讀取數據。同時,SPI結構簡單,編程還易于實現,傳輸數據的速度較快,非常適合本設計去驅動OLED顯示屏。工作模式圖:圖3-3工作模式圖下面幾條信號線常常被用于串行模式,如:CS:OLED片選信號、RST:復位、DC:命令/數據標志、SCLK:時鐘線、SDIN:數據線。在串行模式中,D0為時鐘線;D1為數據線。D2處于掛起狀態,其他引腳則可以接地。此時,可以將數據寫入到OLED屏中,但無法從OLED屏內部將數據讀出。在4線SPI工作模式下,數據長度為8位,當位于SCLK的上升沿時,數據從SDIN被傳輸到SSD1306,同時高位向前移動。傳輸時序圖:圖3-4傳輸時序圖相關設置步驟如下:(1)首先根據整體的電路設計和OLED模塊中設置的相關通信模式,將與OLED模塊相連IO口設置為輸出。(2)其次驅動IIC協議初始化整個模塊,并通過相關寄存器將OLED屏啟動,等待接收傳輸進來的數據。(3)最后將接收到的數據進行轉化,轉化成相應的字符和數字,并通過提前設定好的程序將需要被顯示的字符傳輸過去。3.2矩陣鍵盤模塊矩陣鍵盤與直接法相比而言,直接法相比于矩陣鍵盤,明顯的相對簡單一些。除此之外,由于兩者的構成不同,矩陣鍵盤比直接法相對難一點。列線與電源正極相連處會增加一個電阻,輸出端采用與行線相連的MCUI/O端口。輸入采用列與行連接的I/O端口,由于整個系統會有很多的外部信號輸入,如果每一個外部輸入的信號都單獨進行控制識別,會導致IO口被過多的占用。所以才會使用矩陣鍵盤,而4x4和8x8是兩種比較被經常使用的矩陣鍵盤,其中4x4是最常用的。引腳連接:將鍵盤的行線與開發板上的GPIOF組的0-3連接起來,列線則與開發板上的GPIOF組的4-7連接起來,并且將行線電平的狀態置于高電平,列線電平的狀態拉低。而行線與列線相交錯的連接點都對應一個按鍵,當我們需要獲取相應的鍵值時,只需要根據相關原理,將行線或列線保持不動。然后依次去判斷具體的位置。原理圖:圖3-5原理圖掃描原理:在初始化矩陣鍵盤時將所有的行線設置為輸入端,列線設為輸出端。然后將所有的輸出端的列線全部置于低電平,行線全部置于高電平。然后不斷地對行線進行掃描,觀察電平的變化。當有按鍵被按下時,該按鍵行線的電平狀態將會被拉低;如無按鍵被按下,則所有的行線依舊全部為高電平。2、當第一步的判斷確定有按鍵被按下時,則進入預先設定好的10ms的延時,為的是徹底消除機械抖動。因為只有當抖動被消除之后,行值才是最準確的。如果行線的電平狀態在消抖之后依舊未發生改變,那么系統會自動繼續接下來的判斷;如果電平狀態發生改變,則自動返回第一步。3、在第二步確定了按鍵被按下后,系統將會對所有的行線和列線進行掃描。在相同的時間內,將所有列線先置高,再拉低其中一列。將此時的行線和列線的值讀取到,再在寄存器中存儲讀取到的行和列值。4、取出存儲的所有行值和列值,并將它們組合起來,并對得到的鍵值按照順序進行編碼。編碼完成后,再從“0000”解碼到“1111”,然后顯示按鍵號碼。3.3RFID(MFRC522)模塊MFRC522是一種高度集成的非接觸式讀寫卡芯片,芯片自帶調諧和調制。同時,還存儲了目前所存在的所有的通信方式和協議,使得各個模塊間的數據傳輸變得更加的簡便。原理圖:圖3-6原理圖工作原理:讀卡器向M1卡發送一組調制信號,當讀卡器收到單片機傳送過來的命令時,開始進行尋卡操做。MI卡內的LC諧振電路會通過諧磁共振,使電容器帶電。在電容器的另外一端,連接了一個單向電子泵,使電容器不斷的使用電荷轉移的方式為別的電容器充能。此電容器可作為一個工作電源,為其它電路提供電力來源,以便于傳送卡片數據或接收讀卡器數據。引腳連接:將MFRC522的正負極與開發板相連接,將從機片選管腳CS與PD14引腳連接,作為從機標志管;SCK與PD0引腳連接,直接連接核心板的SCK信號;主/從設備的入和輸出分別于PE7、PE9引腳連接,一個是核心板輸出MFRC522接收,另一個為MFRC輸出核心板接收;RES于PE15引腳連接,為RES的復位功能引腳。識別流程:圖3-7識別流程圖3.4指紋(AS608)模塊As608是由Alialen公司自主研發,該公司對于芯片的外圍電路進行了改動,使與As608芯片所關聯的設計,用戶都能根據自定義的需求去進行開發。所以,其控制電路及協議幾乎是一樣的,只是廠家和性能不同而已。原理圖:圖3-8原理圖引腳連接:GND與VCC和核心板的正負極引腳相連接,輸出電壓為3.3V;UA為觸摸感應的輸入端,和VCC一樣一起連接在核心板的正極;TCH為感應信號的輸出端,與核心板的PA0引腳相連,將電平初始默認為高電平;TX和RX是指紋模塊的數據輸出和輸入,分別與核心板的PA2、PA3相連接,作為指紋模塊和核心板之間的數據溝通。工作步驟:1、錄入指紋(1)錄入圖像。當您將手指放在識別窗口中時,可以通過運行此命令來獲取指紋圖像。(2)生成特征。此指令被調用于在拍下指紋圖像之后。As608內有專門未特征文件存放開辟的緩存去,所以我們將首先使用第一個緩存區。(3)再次錄入圖像。將同一個手指放入識別窗口,運行命令并拍攝新的指紋圖像。(4)再次生成特征。在第2個緩存區將最新圖像的指紋特征儲存下來。(5)進行精準比對。系統會將多個指紋特征記錄下來,增強了指紋輸入的準確性。調用此命令開始進行指紋比對,如果它們一致,就意味著記錄了同一個人的同一個指紋。(6)合并特征。當用戶輸入的的兩個指紋特征一樣時,系統會默認將這兩個指紋合并成一個模板,而合成后的指紋模板才是我們最終需要儲存到系統中的指紋模板。(7)儲存模板。生成模板時,可以將其保存在As608內部FLASH中。在存儲過程中,我們需要輸入一個指紋識別號,它實際上是FLASH的地址。不同的ID號,存儲的位置不同,最多好像能存兩三百個指紋。2、識別指紋(1)錄入圖像。與錄入指紋的第一步一樣,目的是獲取指紋的圖像。(2)生成特征。與錄入指紋里生產特征的目的一樣。指紋特征可以存到第一個緩存區也可以存到第二個緩存區。(3)搜索指紋。此命令主要是用于搜索FLASH中已成功存儲的指紋模板,與驗證指紋時存放在緩存區的指紋模板進行比對。如果與指紋模板的對比結果為相同,系統會自帶記錄此模板的ID。調用的時候需要指明比對的特征是緩存區1還是緩存區2,你要選擇第二步生成的特征所存儲的緩存區。3、刪除指紋(1)刪除指紋可以選擇刪除個別指紋或者刪除所有指紋。(2)刪除一個或幾個:調用“刪除模板”指令,調用的時候需要輸入要刪除的起始ID號和刪除個數,調用之后就會把Flash里面ID號對應位置的數據清除掉。如:起始ID號是3,刪除個數是4,那么就會把3,4,5,6這四個ID號對應的指紋刪掉。(3)刪除所有:調用“清空指紋庫”指令即可。4軟件設計與實現4.1系統總體設計STM32智能門鎖系統,采用STM32F407作為主控芯片,使用keil5進行軟件的編程。在確定好相應的硬件結構之后,設計者可以根據自己的需求進行編程,以此方式實現多種不一樣的功能。將整個系統通電之后,首先整個系統將會進入初始化,然后按照預先已經設計好的程序順序來執行各個模塊。該系統采用模塊化設計,主要包括OLED顯示模塊、功能選擇模塊、密碼驗證模塊、卡片驗證模塊、指紋驗證模塊。同時,用戶可以根據自己的需求對密碼、卡片、指紋進行增刪操作。4.1.1程序流程圖圖4-1程序流程圖4.24X4矩陣鍵盤程序設計系統通過掃描矩陣鍵盤,判斷哪個按鍵按下,同時系統運行該按鍵相對于的功能選項。用戶可以通過鍵盤進行密碼輸入和功能的選擇。4.2.1功能程序流程圖圖4-2功能程序流程圖4.2.2部分程序分析//獲取鍵盤數值函數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位數) 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)程序設計RFID是指人們對射頻識別技術的縮寫。簡而言之,RFID能夠自動的從電子標簽中讀取數據,是自動識別設備的一種。除此之外,該設備全部采用自動化操做,只需人為的在系統中做好相關的設置,它將會自動開始識別工作,并且可以在各種惡劣的環境中運行。4.3.1功能程序流程圖圖4-3功能程序流程圖4.3.2部分程序分析//功能描述尋卡讀取卡類型號//輸入參數reqMode--尋卡方式// TagType--返回卡片類型// 0x4400=Mifare_UltraLight// 0x0400=Mifare_One(S50)// 0x0200=Mifare_One(S70)// 0x0800=Mifare_Pro(X)// 0x4403=Mifare_DESFire//默認返回值MI_OK u8MFRC522_Request(u8reqMode,u8*TagType){ u8status; u16backBits;//接收的數據位數 // 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;}//功能描述防沖突檢測//輸入參數serNum--返回4字節卡序列號,第5字節為校驗字節//返回值成功返回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) { //校驗卡序列號 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)程序設計4.4.1程序流程圖圖4-4程序流程圖4.4.2部分程序分析//錄入圖像PS_GetImage//功能:探測手指,探測到后錄入指紋圖像存于ImageBuffer。//模塊返回確認字u8PS_GetImage(void){u16temp;u8ensure; u8*data; SendHead(); SendAddr(); SendFlag(0x01);//命令包標識 SendLength(0x03); Sendcmd(0x01);temp=0x01+0x03+0x01; SendCheck(temp); data=JudgeStr(2000); if(data) ensure=data[9]; else ensure=0xff; returnensure;}//生成特征PS_GenChar//功能:將圖像特征文件存放在系統自帶的緩存區 //參數:BufferID-->charBuffer1:0x01 charBuffer1:0x02 //模塊返回確認字u8PS_GenChar(u8BufferID){ u16temp; u8ensure; u8*data; SendHead(); SendAddr(); SendFlag(0x01);//命令包標識 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漢字取模因為OLED屏幕不能直接存儲漢字庫,所以就需要我們先將漢字庫一直到SD卡中,再使用取模軟件進行漢字取模。將取好的漢字點陣結構體定義到我們的程序中,就可以在OLED屏幕中顯示我們想要顯示的漢字了。軟件推薦:PCtoLCD、C2B轉換助手5系統測試及結果在完成該智能門鎖的設計之后,需要對各個模塊的功能和系統的整體功能進行測試。目的是為了驗證智能門鎖系統是否能對各個模塊進行控制,實現各種功能。測試條件:OLED顯示屏、4X4矩陣鍵盤、MFRC522射頻模塊、AS608指紋識別、步進電機。5.1系統硬件連接及測試本畢業設計,以普中最小系統板為底板,STM32F407為整個門禁系統的控制核心。而硬件連接測試模塊包括:OLED顯示模塊、4X4矩陣鍵盤模塊、RFID卡識別模塊、指紋識別模塊、步進電機模塊。由于板子較小、引腳眾多,同時涉及到的模塊也相對較多,接線錯綜復雜,一定到避免少接或接反的情況,其中各個模塊的正負極連接尤為重要。接線完成后,給系統上電,檢查各個模塊硬件的運行狀況是否正常,芯片是否出現溫度過高等現象。硬件模塊連接實物圖:圖5-1系統硬件連接圖5.2系統軟件功能測試本畢業設計主要采用Keil5進行系統編程,軟件功能測試主要是各個模塊的程序的調試,檢查程序代碼在中是否出現邏輯錯誤,對于硬件模塊的控制是否精準。5.2.14X4矩陣鍵盤代碼調試4X4矩陣鍵盤采用的是逐行掃描法,分為初始化按鍵引腳和判斷獲取按鍵值兩個步驟。引腳初始化時,將4個IO口設置為輸出,4個設置為輸入。然后進行判斷按鍵,將其中4個拉低,然后分別讀取另外4個的電平,然后根據公式算出相對應的按鍵值。圖5-24X4矩陣鍵盤程序運行圖5.2.2OLED顯示屏代碼調試本次設計采用的是0.96寸7針OLED顯示屏,包括了初始化、找尋字模、寫入函數、顯示漢字、畫點等函數。而OLED是通過多個獨立像素點進行顯示的,所以首先要進行編寫畫點函數,然后從使用指針從漢字庫中找出所需要的字符,再寫入到SSD1306中,最后將字符顯示出來。圖5-3OLED顯示屏程序運行圖5.2.3MFRC522射頻模塊代碼調試MFRC522存儲了目前所存在的所有的通信方式和協議,使得各個模塊間的數據傳輸變得更加的簡便。程序設計包括初始化、寄存器的讀寫函數、SPI通信的收發函數、選卡、讀卡以及防沖撞等函數。圖5-4MFRC522射頻模塊程序運行圖5.2.4指紋識別模塊代碼調試指紋識別只需使用一個簡單的通信協議通過相關的串口和USB接口進行數據傳輸,而指紋識別模塊的代碼為開源程序,只需移植即可。包括:初始化、收發數據、錄入圖像、生成特征、存儲圖像、對比圖像以及指紋模塊的三次握手等函數。圖5-5指紋識別模塊程序運行圖5.2.4步進電機代碼調試由于在本次設計中,步進電機模塊只是用來模擬開鎖時門鎖的轉動,所以控制程序并不需要太過復雜,采用4拍驅動方式。模塊包括:初始化、開始轉動和停止轉動。圖5-6步進電機程序運行圖6結論和展望6.1結論本次設計從用戶出發,考慮到用戶的個性化和多樣化需求。采用了當前最主流的STM32單片機作為中心
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年枕頭充棉組合機項目可行性研究報告
- 課題開題報告:注冊制改革背景下共同保薦人對IPO表現影響研究
- 2025年捏花機項目可行性研究報告
- 2025年圣敏清鹽酸西替利嗪片項目可行性研究報告
- 2024-2025企業安全培訓考試試題(真題匯編)
- 2025年教師資格考試專業素養題
- 人力資源管理中的戰略執行與效果評估研究試題及答案
- 公共營養師考試面臨的挑戰試題及答案
- 短行業市場分析調查
- 防汛防雷安全培訓
- 警察禮儀(PPT53頁)
- 《關于加強高等學校食堂管理工作的意見》解讀
- 《尚藝發型標準剪裁》PPT課件
- 中國現代文學史00537
- 110kV升壓站電氣施工工藝及方案培訓資料(共107頁)
- 年產萬噸碳酸飲料廠的工藝設計
- 流砂過濾器設計說明書
- T∕CISA 065-2020 高爐循環冷卻水系統節能技術規范
- 電力現貨市場基礎知識(課堂PPT)
- 縣鄉兩級人大換屆選舉工作總流程圖
- 名∶聚乙烯(PE)土工膜防滲工程技術規范
評論
0/150
提交評論