基于MSPM0G3507的智能加密門鎖
1 前言
本文引用地址:http://cafeforensic.com/article/202412/465713.htm在大學(xué)時(shí)期,我的宿舍使用傳統(tǒng)鑰匙開門,但我經(jīng)常因?yàn)榇颐蛘叽中亩泿ц€匙,導(dǎo)致自己被鎖在門外。每次尋找備用鑰匙或者求助同學(xué),不僅浪費(fèi)時(shí)間,還給生活帶來了諸多不便。雖然市面上有許多智能門鎖,但這些產(chǎn)品大多需要對原有門鎖結(jié)構(gòu)進(jìn)行改造,而這種改動(dòng)在學(xué)校宿舍內(nèi)是不被允許的,同時(shí)安裝也較為復(fù)雜,難以適應(yīng)臨時(shí)性使用的場景。
為了徹底解決這個(gè)問題,我萌生了自制智能門鎖的想法。這款智能門鎖無需改動(dòng)原有結(jié)構(gòu),安裝方便、操作簡單,能夠在保留原有門鎖的基礎(chǔ)上,實(shí)現(xiàn)更安全、更便捷的開鎖方式。不僅滿足了我的實(shí)際需求,也讓我在設(shè)計(jì)過程中積累了更多的專業(yè)知識和實(shí)踐經(jīng)驗(yàn)。這次項(xiàng)目的開發(fā),不僅是對自身問題的解決,更是對智能化生活方式的一次有益探索。
2 智能加密門鎖硬件設(shè)計(jì)
2.1 硬件整體設(shè)計(jì)
系統(tǒng)框圖如圖1所示,整體設(shè)計(jì)包括以下幾個(gè)主要模塊:主控單元使用基于ARM Cortex-M0核的MSPM0G3507微控制器,提供強(qiáng)大的運(yùn)算能力;電源管理系統(tǒng)采用鋰電池,并通過電源管理芯片進(jìn)行管理,確保電源穩(wěn)定并延長電池使用壽命;用戶交互模塊由按鍵輸入和OLED 顯示屏組成,使用戶操作更加簡便直觀。
圖1 系統(tǒng)框圖
另外,指紋識別模塊采用FP3883 模塊,具有高精度識別能力,提升系統(tǒng)安全性;舵機(jī)驅(qū)動(dòng)模塊負(fù)責(zé)接收微處理器的指令,精確控制門鎖開關(guān),提高安全性。整個(gè)系統(tǒng)圍繞MSPM0G3507 微控制器設(shè)計(jì),確保智能加密門鎖的高性能、可靠性及易用性。
2.2 總原理圖
總原理圖如圖2所示,整個(gè)系統(tǒng)主要由左側(cè)的電源模塊電路、中間的單片機(jī)最小系統(tǒng)模塊以及右側(cè)的外接輸入輸出設(shè)備三部分組成。
圖2 總原理圖
電源模塊電路包括鋰電池充放電電路和鋰電池升壓電路,負(fù)責(zé)為系統(tǒng)提供穩(wěn)定的電源支持,確保設(shè)備能夠在低功耗和高效能之間切換。
中間部分是基于MSPM0G3507 的單片機(jī)最小系統(tǒng)模塊,它作為系統(tǒng)的核心控制單元,負(fù)責(zé)處理各類信號并執(zhí)行邏輯運(yùn)算和控制任務(wù)。
右側(cè)部分為外接輸入輸出設(shè)備,主要包括用戶操作按鈕、交互顯示屏、指紋識別模組以及執(zhí)行機(jī)構(gòu)舵機(jī)等。這些設(shè)備分別負(fù)責(zé)輸入用戶指令、反饋工作狀態(tài)、采集生物信息以及實(shí)現(xiàn)動(dòng)作輸出。
2.3 微控制器
在本項(xiàng)目中,MSPM0G3507 被選作主控單元。這款微處理器基于ARM? 32 位Cortex?-M0+ 內(nèi)核,具有高性能與低功耗的優(yōu)勢,是本項(xiàng)目的理想選擇。
MSPM0G3507 的運(yùn)行頻率高達(dá)80MHz,內(nèi)置128KB 閃存(帶糾錯(cuò)碼ECC)和32KB SRAM,完全滿足指紋識別與舵機(jī)驅(qū)動(dòng)的性能需求。此外,該微處理器還配備了四個(gè)UART 接口、兩個(gè)I2C 接口和兩個(gè)SPI 接口,便于多種外設(shè)的靈活擴(kuò)展。
其功能特色包括一個(gè)支持CAN-FD 和CAN 2.0 的CAN 接口、兩個(gè)同步采樣的12 位4MSPS ADC(總計(jì)支持多達(dá)17 個(gè)外部通道)以及一個(gè)12 位1MSPS DAC(集成輸出緩沖器)。芯片內(nèi)置7 通道DMA 控制器和7 個(gè)計(jì)時(shí)器,支持多達(dá)22 個(gè)PWM 通道,進(jìn)一步提升了信號處理和控制的能力。內(nèi)置的真隨機(jī)數(shù)發(fā)生器(TRNG)和支持128 位或256 位密鑰的AES 加密功能,增強(qiáng)了系統(tǒng)的安全性。為了實(shí)現(xiàn)超低功耗模式,MSPM0G3507在關(guān)斷狀態(tài)下的功耗僅為78nA,并具備I/O 喚醒能力。
此外,其兩個(gè)零漂移、零交叉斬波運(yùn)算放大器以及一個(gè)通用放大器,為模擬信號處理提供了優(yōu)異的性能支持。綜合這些特性,MSPM0G3507 在性能、功能和功耗上都非常契合本項(xiàng)目的要求,具體電路設(shè)計(jì)如圖3所示。
圖3 單片機(jī)最小系統(tǒng)
2.4 電源管理
本項(xiàng)目的電源模塊采用高效芯片組合設(shè)計(jì),兼顧功耗與穩(wěn)定性。
LP7801用于鋰電池的充放電管理,待機(jī)功耗僅1μA,支持最大500 mA 輸出電流,具備線性充電、同步升壓輸出5.1 V(效率95%)及過流、短路、過溫保護(hù)功能,確保電池安全和壽命。
MT3608L作為升壓DC-DC芯片,集成80 mΩ低阻功率MOSFET,最大輸出電流2.5A,支持2.2 V-16 V寬輸入電壓范圍,具備可編程過流保護(hù)(0.5A 至2.5A)和最高20 V 輸出能力,滿足高電壓需求。
WL9005 作為低功耗LDO,待機(jī)功耗僅0.3 μA,支持最大500 mA 輸出電流,低壓差100 mV(@100 mA輸出,Vout=3.3 V),為系統(tǒng)提供穩(wěn)定的低功耗電源。以上芯片的協(xié)同設(shè)計(jì)實(shí)現(xiàn)了高效率、低功耗的電源管理,為系統(tǒng)提供穩(wěn)定可靠的供電支持。具體電路設(shè)計(jì)如圖4 所示。
圖4 電源管理
2.5 用戶交互
交互模塊由按鍵輸入和OLED 顯示屏組成。用戶通過按鍵輸入進(jìn)行操作,OLED 顯示屏則返回用戶指令的執(zhí)行結(jié)果以及系統(tǒng)狀態(tài)信息。這種設(shè)計(jì)使得整個(gè)系統(tǒng)的操作更為直觀方便。本項(xiàng)目使用的是FPM3883 指紋模塊,該模塊具有較高的精度和穩(wěn)定性,識別速度快,能夠適應(yīng)各種環(huán)境。另外,F(xiàn)PM3883 指紋模塊待機(jī)電流低至20ua,和MSPM0G3507 微處理器搭配使用,可保證整個(gè)系統(tǒng)的運(yùn)行效率。本項(xiàng)目采用舵機(jī)進(jìn)行門鎖的開關(guān)。舵機(jī)驅(qū)動(dòng)模塊則負(fù)責(zé)接收微處理器的指令,驅(qū)動(dòng)舵機(jī)旋轉(zhuǎn),以打開或關(guān)閉門鎖。具體電路圖如圖5。
圖5 用戶交互
3 智能加密門鎖固件設(shè)計(jì)
固件主要有以下功能:用戶與管理員模式管理密碼鎖支持兩種工作模式:用戶模式和管理員模式。用戶模式主要用于普通操作,而管理員模式用于高級設(shè)置和權(quán)限管理。多種身份驗(yàn)證管理方面支持用戶密碼與指紋管理,普通用戶可以通過設(shè)置或修改密碼及錄入指紋來進(jìn)行身份驗(yàn)證。同時(shí)也支持管理員密碼與指紋管理:管理員可獨(dú)立設(shè)置專屬密碼和指紋,并對所有用戶的密碼和指紋信息進(jìn)行管理。
密碼和指紋的狀態(tài)控制方面支持密碼和指紋的凍結(jié)和解凍功能。凍結(jié)后,對應(yīng)的密碼或指紋將暫時(shí)失效,無法用于解鎖。解凍后恢復(fù)正常使用。
數(shù)據(jù)安全性方面支持對密碼的加密,系統(tǒng)對用戶和管理員密碼進(jìn)行加密存儲,防止信息泄露。同時(shí)也支持指紋的加解密錄入的指紋信息通過加密算法處理,在需要時(shí)可解密以進(jìn)行身份驗(yàn)證。
安全提醒功能方面支持低壓報(bào)警,當(dāng)設(shè)備電池電量不足時(shí),會主動(dòng)觸發(fā)報(bào)警,提醒用戶及時(shí)充電以避免鎖具失效。
3.1 開鎖流程
系統(tǒng)上電后,根據(jù)用戶身份和驗(yàn)證方式執(zhí)行不同操作的邏輯。流程包括普通用戶和管理員兩種角色,分別支持指紋和密碼驗(yàn)證。對于普通用戶,驗(yàn)證成功后系統(tǒng)解鎖并進(jìn)入休眠模式;驗(yàn)證失敗則直接進(jìn)入休眠。對于管理員,驗(yàn)證成功后系統(tǒng)解鎖并進(jìn)入管理模式以執(zhí)行相關(guān)操作;驗(yàn)證失敗則保持當(dāng)前狀態(tài)。整體設(shè)計(jì)保證了系統(tǒng)的安全性和操作的便利性。具體流程圖如圖6 所示。
圖6 開鎖流程
3.2 管理流程
進(jìn)入管理員模式后,用戶可以選擇不同的管理功能,包括管理用戶密碼、管理管理員密碼、管理用戶指紋、管理管理員指紋以及解鎖密碼或指紋。每項(xiàng)操作需要通過密碼或指紋驗(yàn)證身份,驗(yàn)證通過后檢查操作是否超時(shí),未超時(shí)則執(zhí)行相應(yīng)的管理任務(wù),如設(shè)置或修改密碼、錄入或刪除指紋等;若超時(shí),則進(jìn)入休眠狀態(tài)并結(jié)束操作。具體流程圖如圖7 所示。
圖7 管理流程
3.3 指紋加解密流程
在加密流程中,系統(tǒng)通過硬件隨機(jī)數(shù)發(fā)生器(TRNG)生成用于加密的AES 密鑰和初始化向量(IV),確保加密過程的高安全性。隨后,對指紋明文數(shù)據(jù)進(jìn)行AES 加密,生成對應(yīng)的加密密文。接著,系統(tǒng)再次利用TRNG 生成存儲位置相關(guān)的信息,以確保密文的安全存儲。最后,將生成的AES 加密信息和加密密文安全地寫入FLASH中,以便后續(xù)訪問和使用。具體流程圖如圖8 所示。
圖8 指紋加密流程
在解密流程中,系統(tǒng)首先接收用戶輸入的指紋信息作為比對數(shù)據(jù)的基礎(chǔ)。隨后,從FLASH存儲中讀取之前保存的AES 密鑰、初始化向量(IV) 和加密的正確信息密文。通過這些關(guān)鍵數(shù)據(jù),系統(tǒng)使用AES 解密算法對存儲的密文進(jìn)行解密,得到原始的明文信息。解密完成后,系統(tǒng)將解密得到的明文與用戶輸入的指紋信息進(jìn)行對比,根據(jù)比對結(jié)果判斷其正確性,并返回相應(yīng)的狀態(tài)值。具體流程圖如圖9 所示。
圖9 指紋解密流程
3.4 密碼加密流程
在加密流程中,系統(tǒng)需要獲取用戶輸入的密碼。然后,使用SHA256 算法對輸入的密碼進(jìn)行加密,得到一個(gè)固定長度的哈希值。接下來,將該哈希值存儲到閃存(flash)中以備后續(xù)驗(yàn)證使用。當(dāng)用戶再次輸入密碼時(shí),系統(tǒng)會對輸入的密碼進(jìn)行SHA256 加密,并與閃存中保存的哈希值進(jìn)行比對。如果計(jì)算得到的哈希值與存儲的哈希值一致,表示密碼驗(yàn)證通過;否則,說明密碼錯(cuò)誤。這個(gè)過程通過哈希加密確保了密碼的安全性,避免了在存儲過程中泄露明文密碼的風(fēng)險(xiǎn)。具體流程圖如圖10所示。
圖10 密碼加密、密碼判斷流程
3.5 功耗管理
在功耗管理中,系統(tǒng)的休眠流程首先通過獲取當(dāng)前模式的運(yùn)行時(shí)間,計(jì)算出剩余時(shí)間。如果剩余時(shí)間為零,系統(tǒng)會進(jìn)入休眠狀態(tài)以節(jié)省能量。與此同時(shí),電池保護(hù)機(jī)制會實(shí)時(shí)監(jiān)測電池電壓。當(dāng)電池電壓高于3.7 V 時(shí),系統(tǒng)正常運(yùn)行;當(dāng)電壓降至3.7 V 以下時(shí),系統(tǒng)會觸發(fā)充電提醒,提示用戶進(jìn)行充電;若電壓進(jìn)一步下降至3.3 V 以下,系統(tǒng)則會自動(dòng)進(jìn)入休眠模式,以保護(hù)電池并延長其使用壽命。具體流程圖如圖11 所示。
圖11 功耗管理流程
4 零部件設(shè)計(jì)與制造
4.1 主體裝置
基于MSPM0G3507 的智能加密門鎖系統(tǒng)的的主體裝置結(jié)構(gòu)如圖12、圖13 所示。
圖12 主體圖
圖13 主體爆炸圖
4.2 開鎖裝置
基于MSPM0G3507 的智能加密門鎖系統(tǒng)的的開鎖結(jié)構(gòu)如圖14、圖15 所示。
圖14 雙搖桿結(jié)構(gòu)開鎖示意圖
圖15 開鎖裝置
5 作品展示
5.1 實(shí)物模型展示
基于MSPM0G3507 的智能加密門鎖系統(tǒng)的的實(shí)物圖、PCB 和渲染圖如圖16、圖17、圖18 所示。
圖16 實(shí)物展示
圖17 PCB圖
圖18 PCB渲染圖
5.2 功耗展示
根據(jù)測量,系統(tǒng)的待機(jī)平均電流為31.687 μA。以此計(jì)算,一天(24 小時(shí))的待機(jī)功耗約為0.76 mAh。待機(jī)功耗圖如圖19 所示。
圖19 待機(jī)功耗
系統(tǒng)開鎖時(shí)的平均功耗為171.332 mA,假設(shè)一天開門10 次,每次持續(xù)6.072 秒,則一天的開門功耗可通過計(jì)算得出開門功耗約為2.89 mAh。開鎖功耗圖如圖20 所示。
圖20 開鎖功耗
結(jié)合待機(jī)和開鎖功耗計(jì)算,系統(tǒng)一天的總功耗為3.65 mAh。本項(xiàng)目采用了一塊額定容量為5000 mAh 的鋰電池,考慮到實(shí)際使用中的容量衰減,按照80% 的可用容量計(jì)算,可提供約4000 mAh的電量。由此可推算,系統(tǒng)在滿電狀態(tài)下的使用時(shí)間為1095 天。
即一次充滿電可以持續(xù)運(yùn)行約3 年,具體使用時(shí)間可能會因?qū)嶋H使用頻率和環(huán)境條件有所變化。
(本文來源于《EEPW》202412)
評論