基于ei
扫描二维码
随时随地手机看文章
引言
可用于身份识别的人体特征有声音、面容、虹膜、指纹等,其中,指纹由于防伪性好、易于被识别、识别方法易于实现而被广泛应用,尤其是在需要门禁的场合。常见的指纹门禁系统由指纹采集传感器、指纹库、人机交互模块等部分构成,其中指纹库起着验证指纹的作用。指纹库的维护,如增加、删除指纹等操作有两种实现方式。曹润强等采用通过上位机修改指纹库信息后,使用有线或无线方式同步指纹库数据到门禁系统的方法,该方法由于使用了PC机,人机交互友善;但缺点是PC机需要和门禁系统通过线缆连接或者使用短距离无线通信,增加了系统布设难度,降低了可靠性;马馨雅采用在门禁系统上设计人机交互部件的方法,使门禁系统具备独立工作能力;但缺点是门禁系统的人机交互模块由于软硬件资源有限,增加、删除指纹的过程复杂,界面不友善。
针对上述两种方案的缺陷,本文结合这两个方案的优点,提出在门禁系统上增加Wi-Fi模块,使用手机通过Wi-Fi对指纹库进行维护的方案。
1系统构成方案
该门禁系统以单片机为核心,通过串口与指纹传感器连接实现双向通信,获取指纹数据;通过Wi-Fi模块利用手机App维护指纹库;单片机通过GPIo接口产生PeM信号控制舵机运动开锁;单片机通过Wi-Fi模块与手机实现双向通信。电源部分电路则对板上所有系统进行供电。
该方案使用手机替代显示器键盘等硬件,既增加了指纹锁人机交互的友善度,又简化了硬件设计,其硬件结构图如图1所示。
2硬件选型
单片机的选型应综合考虑存储系统大小、外围引脚种类及数量、CPU运算性能以及调试便利性等指标是否满足设计需求。该系统由于需要处理指纹数据,控制舵机开锁,使用Wi-Fi模块通信,故选用sTM32F103C8单片机作为核心处理器。该单片机具备64KFLAsH、20K内存,72M最高工作频率,6个GPIo端口,3路串口,因此具备支持门禁系统正常工作的能力。
As608指纹传感器具有体积小、功耗低、接口简单的特点。该模块具有一个通信串口,单片机可通过该串口采集指纹信息。此外,该模块提供一个eAK信号引脚,当指纹模块检测到有手指接触的时候,该引脚产生高电平,可用于触发单片机处理指纹采集动作。
Wi-Fi模块作为该门禁系统中的通信模块,需要具备连接移动设备,并传输数据的功能。EsP8266支持802.11b/g/n等标准协议,内置LeIP协议栈,同时具备一个串口,可满足门禁系统的通信要求。
完成硬件设计后的门禁系统实物图如图2所示。
图2 门禁系统实物图
3单片机程序设计
3.1操作系统选择
软件系统按照运行平台不同可分为单片机端程序和手机端程序,单片机端程序负责采集、验证指纹,控制锁头开启,根据手机App指令对指纹库进行维护。手机端程序负责将录入或删除的指纹信息传输到单片机上,并显示指纹库的已录入名单。同时,单片机端需同时处理多项任务,因此需要使用操作系统。UCos3是一个可以基于RoM运行的、可裁剪、抢占式、实时多任务内核,它可支持的任务数无上限,提供信号量、消息队列等功能。该操作系统可对门禁系统提供多任务同步运行的环境。在操作系统的基础上,可按任务编写应用程序。
3.2任务模块设计
在具备操作系统的基础上可将门禁软件分为如下任务模块:指纹录入任务如图3中(a)所示,指纹删除任务如图3中(b)所示,指纹验证任务如图3中(c)所示。
一旦单片机接收到录入或删除指纹指令,就会分别触发指纹录入任务或者指纹删除任务运行一次。指纹验证任务由指纹模块的wAK信号经由单片机中断触发执行。
指纹录入任务在接收到App端输入的新增人员信息后,为保证录入指纹质量,会发起三次指纹录入,只有三次录入的指纹一致,录入任务才会继续执行,将人员信息和指纹信息配套存入sTM32内部FLAsH,否则录入任务中止。
指纹删除任务则根据App输入的人员信息查询是否存在指定人员指纹,成功则删除该条指纹记录,否则中止删除指纹。
指纹验证任务是根据采集到的指纹和指纹库中的指纹进行对比,如果一致,则返回成功,不一致则返回失败。
3.3指纹库设计
由于指纹数据包含人员信息、指纹信息,且要求存储数量达到100,因此需要构建一个指纹库。该指纹库要求断电后不被清空,故需存在FLAsH上。sTM32F103C8内部自带64K字节FLAsH,程序代码只占用了前46K空间,因此可将全部人员及指纹信息存储在第63K至64K地址范围内。
单片机FLAsH访问寿命远小于内存,因此在内存中建立与FLAsH第63K至64K地址上数据一致的镜像数据,每次发生指纹验证事件,读指纹库数据都只读内存中的镜像数据。只有发生指纹录入或者删除指纹数据,才会修改内存中的指纹库镜像数据。一旦内存与FLAsH中数据不一致,程序运行一次数据同步,将镜像库中的数据写入FLAsH。引入该机制,可大量减少对FLAsH的访问次数,延长FLAsH寿命。
4手机端App设计
手机端App运行在安卓系统上,因此开发使用JAVA语言,并且使用Androidstudio完成软件编写。由于JAVA语言具有面向对象特性,手机端App按照功能分为如下类:通信类、人员名单显示类、新增/删除库中指定人员类等。
通信模块负责通过手机wi-Fi与单片机端EsP8266模块进行通信,通信方式可采用UDP以及TCP,该门禁系统无高实时要求,但要求高可靠度,因此选择面向连接的TCP协议传输。
指纹库人员名单显示模块向单片机端发起指纹库访问请求,获取当前指纹库人员信息,并通过App界面(图4)显示。该模块在App启动时或指纹库数据变化时运行一次。
新增/删除人员模块运行会将App界面(图4)人员信息编辑框中所输入的人员名字传输至单片机端,然后向单片机发起新增或删除人员指令,以完成新增、删除人员的操作。
5结论
本文从现有指纹锁存在的问题入手,结合常用的两种指纹锁设计方案,引入手机wi-Fi,提出新的优化方案。该指纹锁方案与现有技术相比具有以下优点:
(1)充分利用手机资源作为人机交互工具,人机交互过程便利友善:
(2)无需使用计算机参与门禁系统工作,降低了系统实施的难度,提高了门禁系统的可靠性:
(3)使用单片机自带存储空间作为指纹库存储介质,在简化设计的基础上,避免了因外部存储介质失效造成的门禁瘫痪风险。