张誉耀
舟山技师学院,浙江舟山,316011
随着人民的物质生活质量不断提升,居民对安全的认识和对居住质量的需求日益增加,普通的钥匙式开锁方式已不适应社会发展的需要。智能电子锁、单机智能锁、无线智能锁三大发展时期到来。智能门锁由于使用方便,功能强大,安全性好,应用范围广泛。目前,智能门锁系统的研发已经不再局限于试验,它已经成为一个成熟的产品,并且一直在更新换代和改进。当前的智能门锁从功能和安全两个层面着手,相关技术也基本集中在这两个方向上,但在体系结构的合理和器件的耗电上仍需进一步改进。智能门锁最早应用在办公室,它包括智能门钥卡、发卡机以及门锁系统的管理软件。一般情况下,智能门锁的无线结点都是由电池供电的,采用适当的低功率技术来最大限度地提高电池的寿命,这对于用户体验和所需成本来说都是非常有益的。HYM32F407ZGT拥有1 MB Flash和192+4 kB SRAM,能够提供多种内存扩充的内存;在无线通信中,睡眠叫醒机制是目前应用最广泛、最重要的一种方法,它可以尽量减少无线电频率的闲置监测,从而达到降低网络能量消耗的效果。针对数据吞吐量小、响应速度要求高的智能门锁系统,利用32F407ZGT平台对其进行研究。
智能门锁设计采用自顶向下的模块化思想,将整体设计分为4个部分:执行层、网络层、服务层和应用层,执行层是智能锁的硬件部分,采用HYM32F407ZGT增强型嵌入式MCU工作频率高达168MHz,具有浮点单元。CPU设计的关键是低功耗设计,核心是控制器的通信协议的选择。该系列产品采用55nm工艺,具有动态功耗调整功能,至238μA/MHz的电流消耗,可以支持各种存储器扩展存储容量[1]。HYM32F407ZGT具备符合IEEE 1588 v2标准的以太网MAC10/100接口和CMOS照相机接口;共有多达114个I/O口;2个USB OTG;专用音频PLL和2个全双工I2S;通信接口多达15个(包括6个UART、3个SPI、3个I2C、2个CAN和1个SDIO);模拟:2个12位DAC、3个12位24通道的ADC;多达17个定时器,其中12个16和2个32位定时器;可以支持各种存储器扩展存储容量;基于模拟电子技术的真随机数发生器HYM32F407ZGT具有1MB Flash和可达192+4kB的SRAM。执行层CPU设计是基于嵌入式技术设计的门锁节点,由控制器、矩阵键盘、蜂鸣器和直流电机组成,如图1所示。
图1 CPU内部结构图
矩阵键盘明显要更加繁琐,列线由电阻器连接,由单片机的I/O端口构成。蜂鸣器是一种以DC为电源的集成式电子报警机,直流电机的主要性能可以体现在168MHz频率下,从Flash存储器执行时,HYM32F407ZGT能够提供210DMIPS处理能力,并且利用ART加速器实现FLASH零等待状态。DSP与浮动元件相容,扩展了其应用领域。门锁设备需要使用电池作为电源,所以在设计时要考虑到低功率的问题,通信是控制系统整体能耗的重要环节。执行层控制器的选择既要考虑低功耗还要考虑对lora协议的支持,选用了32F407ZGT微控器,该系列微控器功耗低、性价比高、可靠性高。服务层架构处由信息采集模块、信息处理与决策模块、动作模块3部分组成,在信息采集时,利用红外线模块对锁眼进行采集,并将其与振动模块、压力模块相结合,以获取用户输入的人机交互信息。所收集到的数据首先通过过滤程序传输到HYM32F407ZGT中进行处理和分析,然后把特定的控制信号发送给操作模块,以实现相应的操作。用户端是指用户应用层,它为用户提供特定指令和数据的操作界面,用户端经由SMS接收层向处理控制层发送输入信息,例如修改用户密码指令、留言数据输入、报警信息的接收。超级用户的应用层具有完全的控制权,而一般用户的客户端则需要通过超级用户的许可来获得相应的控制权限[2]。
功能设计必须考虑低功耗设计,让控制器大部分时间处于休眠状态。功能的设计思路是主程序完成系统初始化和设备注册等功能后,打开中断后转入低功耗休眠状态,系统所有功能通过中断在中断服务程序中实现。
(1)人机交互。通过将关键模块与OLED LCD屏幕相融合,实现系统安全状态、用户信息、开锁信息、用户出入等数据的可视化接口。利用键盘上的数据输入,可以使GPRS模块通知内容变更、系统模式设置、模块参数变更、用户资料录入等功能,并能对状态提示做出反应,完成对一般使用者的权限询问。
(2)远程报警功能。利用GPRS通信模块,完成SMS消息的发送。在发生非法撬动、损坏或感应到钥匙没有被拔出来的时候,32F407ZGT的低功率智能门锁会向GPRS通信模块发出对应的控制信号,GPRS通信模块收到对应的AT命令,以文字形式发出警告,从而达到防窃报警的目的。
(3)通信与休眠优化设计。利用单片机中断异常处理算法在不影响基于32F407ZGT的低功耗智能门锁设计正常运作的前提下进行运行状态优化调整,关闭未用的输入/输出模组。在外部设备没有被使用的情况下,对每个组件进行了关联管理。针对某些外部设备不进行有效的管理,利用串行上位机监测其呼叫状况,设定适当的间断呼叫次数,图2显示了一个状态变换的过程。
图2 各状态转换流程图
在启动后,将HYM32F407ZGT的电源设置为可以通过外部寄存器来实现相应的功能,计时器开始计时,如果没有外界干扰,每5分钟内唤醒一次,确保门锁的工作状态,如果在外的终端被唤醒,那就开始计时,5分钟后,门锁就会恢复到休眠状态[3]。
由于休眠唤醒机制较为重要,本文对其进行一些优化处理可以更好地降低功耗。终端把含有信息的帧传送到网关,网关接收到该包后要返回ACK,这是由于该终端可能在睡眠状态,为保证该终端可以接收到回复信息,该网络持续地发出ACK,并在接收到ACK后返回网关,从而停止发送。在此基础上,还提供了一个有效的信道估计和冲突再传输的方法。每个结点在传输之前,首先要探测到一个信道中有没有无线电,如果没有,它就发射一个数据包;如果有,就会发射碰撞,这个发射节点会随着机延后的几秒钟重新发射,如果它还处于繁忙状态,那就会再次进行一次随机延迟,最多只能传送3次,如果超过3次就会自动被取消。当有反应时限的情况下,使用睡眠叫醒机制中的发送和接收切换模式,持续时间设置为最大值,发送接收循环的数量为公式(1):
式子中,t为终端休眠周期中监听时间,T为休眠时间,终端监听时间片与发送周期之比为下列式子(3):
终端休眠周期占空比η为公式(4):
终端节点的平均功耗与η有关,η小平均功耗低,终端休眠周期的占空比为公式(5)所示:
在此基础上,将控制模块和试验模块安装在32F407ZGT芯片上,根据协议中的要求进行验证,在测试的时候,可以将接口相连,并将数据输出到USB接口上,方便用户随时监控。该控制器采用与云端相连的方式,在服务器上可以看见控制器的连线讯号。在移动电话上,通过端口设置检测功能,并将其发送到用户端,通过服务器进行发送,从而实现对门禁的正确切换[4]。门锁应用参数设定如下:门锁应用中不考虑其他机电模块的电流消耗情况,只考虑无线节点的电流消耗。一扇门每天开启20次,如果是人工开启,则由门锁节点发送状态包,并收到 ACK的回复;如果是无线命令打开,则门锁收到网关的打开命令,并回复ACK,两者各占一半。一次人工打开时,终端节点需要发送状态数据,一帧ACK一帧响应。由于载波冲突造成的传输失效,终端节点会立刻进入睡眠状态,通信失败率为4.55%。无线结点参数采用早先测试的组态参数,利用已有的测试资料进行计算,而不会因结点延迟而造成的功耗及邻近干扰。该电池采用了5节 AA模式,南孚聚能环电池单节2700 mAh,由于两根并排,所以在不考虑自身放电系数的情况下,总电量达到了5400 mAh[5]。
为了测试该文设计的基于32F407ZGT的低功耗智能门锁设计的稳定性与功耗低等特性,将32F407ZGT的主频设置为70MHz、35MHz、17MHz、5MHz时,对采用和不采用通信优化的门禁装置进行了电流损失监测,并在此基础上测量了各个开关的响应频率在非优化运行状态下及优化运行状态下的功耗[6]。
从图3中可以看出,在最大功率70 MHz下,在非最佳工况下初始启动电流在35~45mA,在充分启动后处于35~40mA。在最佳工作条件下,初始工作时的平均工作电流在20~22mA,在充分工作后处于22~25mA之间。在最佳工况下,最优工况下的电流损失为51.25%,满足了设计的需要[7]。
图3 优化损耗前后对比
基于32F407ZGT的低功耗智能门锁设计的整体体系结构是将智能门锁与云网相连,并使其智能化。此方案具有节约电力能源、降低后期维修费用等优点。智能门锁与功能设计采用无线方式进行互联,以达到对用户的动态访问和授权,适用于办公室环境。该系统以32F407ZGT型低功率器件为核心,通过与单片机的断路和继电器相配合,对外部器件的电源进行了控制,从而达到了对锁具工作状况的最优设计。经试验验证,本方案能够有效方便地对门禁进行控制,同时具有较高的响应效率,运行功耗较低、稳定性好。