基于MSPM0G3507的智能加密门锁

文章正文
发布时间:2024-12-22 21:32

在大学时期,我的宿舍使用传统钥匙开门,但我经常因为匆忙或者粗心而忘记带钥匙,导致自己被锁在门外。每次寻找备用钥匙或者求助同学,不仅浪费时间,还给生活带来了诸多不便。虽然市面上有许多智能门锁,但这些产品大多需要对原有门锁结构进行改造,而这种改动在学校宿舍内是不被允许的,同时安装也较为复杂,难以适应临时性使用的场景。

为了彻底解决这个问题,我萌生了自制智能门锁的想法。这款智能门锁无需改动原有结构,安装方便、操作简单,能够在保留原有门锁的基础上,实现更安全、更便捷的开锁方式。不仅满足了我的实际需求,也让我在设计过程中积累了更多的专业知识和实践经验。这次项目的开发,不仅是对自身问题的解决,更是对智能化生活方式的一次有益探索。

2   智能加密门锁硬件设计

2.1 硬件整体设计

系统框图如图1所示,整体设计包括以下几个主要模块:主控单元使用基于ARM Cortex-M0核的MSPM0G3507微控制器,提供强大的运算能力;电源管理系统采用锂电池,并通过电源管理芯片进行管理,确保电源稳定并延长电池使用寿命;用户交互模块由按键输入和OLED 显示屏组成,使用户操作更加简便直观。

1734741710455976.png

图1 系统框图

另外,指纹识别模块采用FP3883 模块,具有高精度识别能力,提升系统安全性;舵机驱动模块负责接收微处理器的指令,精确控制门锁开关,提高安全性。整个系统围绕MSPM0G3507 微控制器设计,确保智能加密门锁的高性能、可靠性及易用性。

2.2 总原理图

总原理图如图2所示,整个系统主要由左侧的电源模块电路、中间的单片机最小系统模块以及右侧的外接输入输出设备三部分组成。

1734741792766909.png

图2 总原理图

电源模块电路包括锂电池充放电电路和锂电池升压电路,负责为系统提供稳定的电源支持,确保设备能够在低功耗和高效能之间切换。

中间部分是基于MSPM0G3507 的单片机最小系统模块,它作为系统的核心控制单元,负责处理各类信号并执行逻辑运算和控制任务。

右侧部分为外接输入输出设备,主要包括用户操作按钮、交互显示屏、指纹识别模组以及执行机构舵机等。这些设备分别负责输入用户指令、反馈工作状态、采集生物信息以及实现动作输出。

2.3 微控制器

在本项目中,MSPM0G3507 被选作主控单元。这款微处理器基于ARM® 32 位Cortex®-M0+ 内核,具有高性能与低功耗的优势,是本项目的理想选择。

MSPM0G3507 的运行频率高达80MHz,内置128KB 闪存(带纠错码ECC)和32KB SRAM,完全满足指纹识别与舵机驱动的性能需求。此外,该微处理器还配备了四个UART 接口、两个I2C 接口和两个SPI 接口,便于多种外设的灵活扩展。

其功能特色包括一个支持CAN-FD 和CAN 2.0 的CAN 接口、两个同步采样的12 位4MSPS ADC(总计支持多达17 个外部通道)以及一个12 位1MSPS DAC(集成输出缓冲器)。芯片内置7 通道DMA 控制器和7 个计时器,支持多达22 个PWM 通道,进一步提升了信号处理和控制的能力。内置的真随机数发生器(TRNG)和支持128 位或256 位密钥的AES 加密功能,增强了系统的安全性。为了实现超低功耗模式,MSPM0G3507在关断状态下的功耗仅为78nA,并具备I/O 唤醒能力。

此外,其两个零漂移、零交叉斩波运算放大器以及一个通用放大器,为模拟信号处理提供了优异的性能支持。综合这些特性,MSPM0G3507 在性能、功能和功耗上都非常契合本项目的要求,具体电路设计如图3所示。

1734741889734238.png

图3 单片机最小系统

2.4 电源管理

本项目的电源模块采用高效芯片组合设计,兼顾功耗与稳定性。

LP7801用于锂电池的充放电管理,待机功耗仅1μA,支持最大500 mA 输出电流,具备线性充电、同步升压输出5.1 V(效率95%)及过流、短路、过温保护功能,确保电池安全和寿命。

MT3608L作为升压DC-DC芯片,集成80 mΩ低阻功率MOSFET,最大输出电流2.5A,支持2.2 V-16 V宽输入电压范围,具备可编程过流保护(0.5A 至2.5A)和最高20 V 输出能力,满足高电压需求。

WL9005 作为低功耗LDO,待机功耗仅0.3 μA,支持最大500 mA 输出电流,低压差100 mV(@100 mA输出,Vout=3.3 V),为系统提供稳定的低功耗电源。以上芯片的协同设计实现了高效率、低功耗的电源管理,为系统提供稳定可靠的供电支持。具体电路设计如图4 所示。

1734741967901019.png

图4 电源管理

2.5 用户交互

交互模块由按键输入和OLED 显示屏组成。用户通过按键输入进行操作,OLED 显示屏则返回用户指令的执行结果以及系统状态信息。这种设计使得整个系统的操作更为直观方便。本项目使用的是FPM3883 指纹模块,该模块具有较高的精度和稳定性,识别速度快,能够适应各种环境。另外,FPM3883 指纹模块待机电流低至20ua,和MSPM0G3507 微处理器搭配使用,可保证整个系统的运行效率。本项目采用舵机进行门锁的开关。舵机驱动模块则负责接收微处理器的指令,驱动舵机旋转,以打开或关闭门锁。具体电路图如图5。

1734742070520010.png

图5 用户交互

3   智能加密门锁固件设计

固件主要有以下功能:用户与管理员模式管理密码锁支持两种工作模式:用户模式和管理员模式。用户模式主要用于普通操作,而管理员模式用于高级设置和权限管理。多种身份验证管理方面支持用户密码与指纹管理,普通用户可以通过设置或修改密码及录入指纹来进行身份验证。同时也支持管理员密码与指纹管理:管理员可独立设置专属密码和指纹,并对所有用户的密码和指纹信息进行管理。

密码和指纹的状态控制方面支持密码和指纹的冻结和解冻功能。冻结后,对应的密码或指纹将暂时失效,无法用于解锁。解冻后恢复正常使用。

数据安全性方面支持对密码的加密,系统对用户和管理员密码进行加密存储,防止信息泄露。同时也支持指纹的加解密录入的指纹信息通过加密算法处理,在需要时可解密以进行身份验证。

安全提醒功能方面支持低压报警,当设备电池电量不足时,会主动触发报警,提醒用户及时充电以避免锁具失效。

3.1 开锁流程

系统上电后,根据用户身份和验证方式执行不同操作的逻辑。流程包括普通用户和管理员两种角色,分别支持指纹和密码验证。对于普通用户,验证成功后系统解锁并进入休眠模式;验证失败则直接进入休眠。对于管理员,验证成功后系统解锁并进入管理模式以执行相关操作;验证失败则保持当前状态。整体设计保证了系统的安全性和操作的便利性。具体流程图如图6 所示。

1734742319522760.jpg

图6 开锁流程

3.2 管理流程

进入管理员模式后,用户可以选择不同的管理功能,包括管理用户密码、管理管理员密码、管理用户指纹、管理管理员指纹以及解锁密码或指纹。每项操作需要通过密码或指纹验证身份,验证通过后检查操作是否超时,未超时则执行相应的管理任务,如设置或修改密码、录入或删除指纹等;若超时,则进入休眠状态并结束操作。具体流程图如图7 所示。

1734742353803151.png

图7 管理流程

3.3 指纹加解密流程

在加密流程中,系统通过硬件随机数发生器(TRNG)生成用于加密的AES 密钥和初始化向量(IV),确保加密过程的高安全性。随后,对指纹明文数据进行AES 加密,生成对应的加密密文。接着,系统再次利用TRNG 生成存储位置相关的信息,以确保密文的安全存储。最后,将生成的AES 加密信息和加密密文安全地写入FLASH中,以便后续访问和使用。具体流程图如图8 所示。

image.png

图8 指纹加密流程

在解密流程中,系统首先接收用户输入的指纹信息作为比对数据的基础。随后,从FLASH存储中读取之前保存的AES 密钥、初始化向量(IV) 和加密的正确信息密文。通过这些关键数据,系统使用AES 解密算法对存储的密文进行解密,得到原始的明文信息。解密完成后,系统将解密得到的明文与用户输入的指纹信息进行对比,根据比对结果判断其正确性,并返回相应的状态值。具体流程图如图9 所示。

image.png

图9 指纹解密流程

3.4 密码加密流程

在加密流程中,系统需要获取用户输入的密码。然后,使用SHA256 算法对输入的密码进行加密,得到一个固定长度的哈希值。接下来,将该哈希值存储到闪存(flash)中以备后续验证使用。当用户再次输入密码时,系统会对输入的密码进行SHA256 加密,并与闪存中保存的哈希值进行比对。如果计算得到的哈希值与存储的哈希值一致,表示密码验证通过;否则,说明密码错误。这个过程通过哈希加密确保了密码的安全性,避免了在存储过程中泄露明文密码的风险。具体流程图如图10所示。

图10 密码加密、密码判断流程

3.5 功耗管理

在功耗管理中,系统的休眠流程首先通过获取当前模式的运行时间,计算出剩余时间。如果剩余时间为零,系统会进入休眠状态以节省能量。与此同时,电池保护机制会实时监测电池电压。当电池电压高于3.7 V 时,系统正常运行;当电压降至3.7 V 以下时,系统会触发充电提醒,提示用户进行充电;若电压进一步下降至3.3 V 以下,系统则会自动进入休眠模式,以保护电池并延长其使用寿命。具体流程图如图11 所示。

图11 功耗管理流程

4   零部件设计与制造

4.1 主体装置

基于MSPM0G3507 的智能加密门锁系统的的主体装置结构如图12、图13 所示。

image.png

图12 主体图

1734742945381868.png

图13 主体爆炸图

4.2 开锁装置

基于MSPM0G3507 的智能加密门锁系统的的开锁结构如图14、图15 所示。

image.png

图14 双摇杆结构开锁示意图

image.png

图15 开锁装置

5 作品展示

5.1 实物模型展示

基于MSPM0G3507 的智能加密门锁系统的的实物图、PCB 和渲染图如图16、图17、图18 所示。

1734743049260587.png

图16 实物展示

1734743086142352.png

图17 PCB图

1734743116284252.png

图18 PCB渲染图

5.2 功耗展示

根据测量,系统的待机平均电流为31.687 μA。以此计算,一天(24 小时)的待机功耗约为0.76 mAh。待机功耗图如图19 所示。

1734743147384297.png

图19 待机功耗

系统开锁时的平均功耗为171.332 mA,假设一天开门10 次,每次持续6.072 秒,则一天的开门功耗可通过计算得出开门功耗约为2.89 mAh。开锁功耗图如图20 所示。

1734743185970683.png

图20 开锁功耗

结合待机和开锁功耗计算,系统一天的总功耗为3.65 mAh。本项目采用了一块额定容量为5000 mAh 的锂电池,考虑到实际使用中的容量衰减,按照80% 的可用容量计算,可提供约4000 mAh的电量。由此可推算,系统在满电状态下的使用时间为1095 天。