APP下载

基于STC12 单片机的智能指纹考勤系统设计与实现

2022-11-05牛怀岗林关成曹静

电子设计工程 2022年21期
关键词:上位考勤指纹识别

牛怀岗,林关成,曹静

(1.渭南师范学院学报编辑部,陕西渭南 714099;2.渭南师范学院计算机学院,陕西渭南 714099)

人事考勤制度是现代企业管理的重要组成部分,其在提高员工的时间观念和工作效率,改善企业风貌,提升企业形象等方面发挥着重要的作用。传统的考勤方式主要包括手工签到、打卡钟、IC 卡或磁卡考勤等,存在管理效率较低、统计工作复杂以及代签或代打卡等问题,耗费了大量人力、物力、财力,存在明显的不足[1-2]。随着生物特征识别技术的不断发展,指纹识别技术也日趋成熟,逐渐成为生物特征识别技术中较为流行的一个分支[3-4]。指纹虽然面积不大,但其蕴含的数据信息量却相当大,在认证和识别时,能够做到准确高效而且速度较快[5-6]。由于其识别的高度准确性和使用的方便性,指纹识别技术已经被广泛应用到安防加密、人事考勤等领域,用以研究开发指纹考勤机、指纹考勤系统等产品。

针对传统考勤方式的缺点,设计了一种基于光学指纹识别技术的考勤系统,通过STC12C5A60S2单片机和指纹识别模块采集人员考勤信息,利用上位机实时查看人员考勤状态,实现了现代企业和事业单位的自动考勤和考勤数据的分析处理,系统具有体积小、准确率高、速度快等优点,节约了考勤时间,提高了考勤效率,可有效防止代人打卡、签到和迟到早退等现象,提升了企事业单位考勤管理的信息化水平。

1 智能指纹考勤系统总体方案设计

1.1 系统功能需求分析

根据企事业单位考勤工作流程,智能指纹考勤系统首先需要通过上位机注册或者删除指纹,实现对工号、姓名、部门等人员信息和对应指纹的录入和保存,然后采用光学指纹模块,进行指纹识别打卡签到。系统下位机将识别成功的指纹信息保存后,通过USB 转TTL 接口将人员的考勤签到信息发送到上位机,实现与上位机的数据通信与传输显示。系统上位机可设定上、下班时间,保存签到记录和人员姓名、打卡时间及打卡状态等考勤数据信息,还可控制下位机播放音频文件,进行语音播报提示。同时,通过上位机可根据人员姓名和打卡时间,查询员工的考勤记录。如果遇到重名的员工,还可以进行标记区分,打卡时间精确到秒。

1.2 系统方案设计与选型

根据上述系统功能需求,以单片机作为中央处理芯片,智能指纹考勤系统主要由电源供电模块、按键操作模块、指纹采集与识别模块、USB 转TTL 通信模块和语音播报模块等组成,系统总体设计方案如图1 所示。

图1 系统总体设计方案

1.2.1 单片机选型

MSP430 单片机是16 位高性能单片机,其内部具有精简指令集,作为一种混合信号处理器,可以根据实际需求把数字电路、模拟电路和微处理器都集成到一个单片机芯片上,外部IO 资源较为丰富,能够实现高速运算,但是在编程上却较为复杂。STC12C5A60S2 系列单片机是单时钟/机器周期(1T)单片机,具有速度高、功耗低和超强抗干扰等特点,指令代码完全兼容传统8051 系列单片机,而且运行速度是传统8051 单片机的8~12 倍,其内部集成MAX810 专用复位电路以及2 路PWM 和8 路高速(250 kB/s)10 位A/D 转换电路[7]。

通过对比MSP430 单片机与STC12C5A60S2 单片机,它们的处理速度和性能都能够满足系统设计要求,但是MSP430 编程复杂。因此,综合考虑系统功能需求、编程难易程度以及性价比等因素,智能指纹考勤系统选择STC12C5A60S2 单片机。

1.2.2 语音模块选型

ISD4004 语音模块是一款低功耗的录放音模块,可以对多段语音信息进行处理,其内置串行通信接口可以与单片机直接相连,但是该模块的编程较为复杂,且播放音质较低;MY1690-16S 是由串口控制的插卡语音芯片,支持MP3、WAV 格式双解码,也可外接U 盘或USB 数据线播放音频文件。用户可以存入不同的音频文件,作为小型的MP3 使用。该模块连接外置喇叭后语音内容可外放,功率约为3 W,是一款高性价比的语音模块。

性能对比分析可知,ISD4004 语音模块编程复杂,且价格偏高;MY1690 语音模块使用方便,价格低廉。综合考量制作性价比以及使用便捷性等方面,智能指纹考勤系统选择MY1690 语音模块。

2 智能指纹考勤系统硬件电路设计

2.1 主控模块电路设计

根据总体设计方案要求,系统主控模块选用STC12C5A60S2 单片机,该型单片机性能稳定、通用性强、成本低廉、功耗低,具有较强的抗干扰能力和较高的可靠性,其指令集完全兼容8051 系列单片机,储存空间可达61 kB,便于储存较大的程序[8]。STC12C5A60S2 最小系统包括晶振电路、复位电路和供电电源。晶振电路由一个晶体振荡器和两个电容组成,可产生单片机工作时所必需的时钟频率信号,时钟频率越高,单片机的运行速度也就越快,该设计中晶振选用频率为11.059 2 MHz,电容容量选为30 pF。复位电路由电阻和电容串联构成,系统上电或按下复位键时对电容进行充放电,在电阻上出现电压,使得单片机复位;松开复位键或电容充满后,电阻上电流和电压均下降为0,使得单片机进入工作状态,系统中的传感器处于确定的初始状态,并从该初始状态开始运行。供电电源的工作电压范围为3.3~5 V,从直流稳压电源获取5 V 直流电压,按下开关键可实现对系统的开启与关闭。

2.2 按键电路设计

该文设计采用两个独立按键作为考勤打卡按键。在打卡前按下开启键打开指纹识别模块,然后进行指纹识别,识别结束后按下结束键关闭指纹识别模块。独立按键的工作原理:当按键被按下后,将拉低对应I/O 端口的电平,此时电路与GND 导通,单片机通过按键扫描程序可以读取所对应I/O 端口的电平状态[5]。因此,只要通过检测单片机I/O 端口的电平状态即可判断按键的开关状态,从而判断是哪个按键被按下,进而实现相应的按键功能。

2.3 语音播报电路设计

该文设计采用MY1690-I2P 语音模块播报提示音,通过上位机可设定上班时间和下班时间,控制下位机音频文件的播放,在迟到或早退时如有人打卡,可播报语音提示:“早上好,您已迟到或者您已早退,再见”,实现对考勤结果的提醒。MY1690-I2P 语音模块通过串口的方式与单片机连接并进行通信,通过读取模块中TF 卡所存储的语音,实现语音信息播报。在与单片机连接的电路中,MY1690 模块中所用到的引脚为RX 引脚、5V 引脚、GND 引脚以及SK1、SK2 引脚。模块的RX 引脚为异步串口的输入引脚,连接单片机的P3.1 口,实现与单片机的数据传输;GND 引脚接地,5 V 引脚连接电源,而SK1 和SK2 引脚为外界无源喇叭的连接引脚。MY1690-I2P 语音播报电路如图2 所示。

图2 MY1690语音播报电路

2.4 指纹模块电路设计

系统设计采用ATK-AS608 高性能光学指纹模块电路,其芯片内置了DSP 运算单元,同时将指纹识别算法集成于模块内部,可高效快速地采集识别指纹信息。通过串口方式与单片机的电路连接,简单易用。ATK-AS608 指纹模块的VCC 端为模块的电源输入端,由于ATK-AS608 指纹模块采用3.3 V 电源供电,而智能指纹考勤系统采用5 V 电源供电,其间需要增加AMS1117 降压模块,将系统供电电压5 V 转换为指纹模块电路所需的工作电压3.3 V,TXD引脚与RXD 引脚分别为串行数据的输出引脚和输入引脚,分别连接单片机的数据输出口P1.2 和数据输入口P1.3,与单片机之间通过串口的方式实现数据的相互传输,单片机通过串口对指纹模块进行控制[9-10]。VCC 端与GND端连接AMS1117降压模块,然后再分别连接系统的电源端和接地端。ATKAS608 指纹模块电路设计如图3 所示。

图3 ATK-AS608指纹模块电路

2.5 通信电路设计

系统上位机采用Visual Studio 2019 进行开发,目前大多数PC 端无串口,仅有USB 端口,因此,系统与上位机之间采用USB 转TTL 串口的方式与单片机实现通信。STC125A60S2 单片机具有双串口,设计中采用CH340 芯片实现USB 转TTL 接口电路设计,将CH340 芯片的TXD 引脚与RXD 引脚分别连接到单片机的数据输出口P3.0 和数据输入口P3.1,通过USB 线连接电脑的USB 接口后即可实现系统与PC端之间的数据传输,为指纹模块的连接和通信电路的设计提供了便利。

3 智能指纹考勤系统软件设计

智能指纹考勤系统上位机软件主要由通信模块和数据查询模块等组成。通信模块主要实现与下位机建立通信、断开通信、接收数据和发送数据等功能[11]。软件启动后将自动扫描上位机PC 可用的通信端口,然后添加到下拉列表框中以供选择,选择好相应的通信端口后,点击“打开”按钮,软件便会打开选定的端口与下位机建立通信连接。如果通信端口打开正常,则会显示串口名称。数据查询模块用于查询考勤记录的编号、时间和打卡状态信息。软件打开时默认显示所有历史数据,如果数据过多,可通过时间段进行查询。查询时间段时需要输入开始时间和结束时间,用鼠标直接点击输入框会弹出时间选择界面,鼠标双击后,可以使用键盘输入相应的开始时间和结束时间,通过开始时间和结束时间以数据表格呈现方式快速精准查询考勤数据[12-13]。

3.1 主程序设计

系统上电后,主程序首先对串口进行初始化,在上位机考勤信息录入界面输入个人信息后,通过指纹模块录入指纹图像并存入指纹库中,完成指纹注册过程。然后利用按键读取输入的考勤打卡指纹,调用指纹库,通过指纹模块对所输入的考勤指纹进行识别匹配。如果指纹匹配不成功,警示灯亮一次后蜂鸣器响三声进行报警,提示重新输入指纹后识别;若指纹匹配成功,则提示考勤打卡成功,单片机将采集的数据发送到上位机[14-15]。系统主程序设计流程如图4 所示。

图4 主程序设计流程

3.2 指纹录入程序设计

系统初始化后,按下考勤开启键使指纹模块处于指纹录入状态,当指纹模块采集到指纹图像信息时,需要两次录入指纹才能生成特征指令并存储到指纹信息库,其具体运行过程为:指纹模块内置DSP 单元发送取图像指令,等待接收应答包。当DSP单元读取到指纹图像信息时,发送生成特征指令,等待接收应答包;再次发送取图像指令及发送生成特征指令,结束判断后输入存储ID,等待接收应答包后完成指纹的录入。指纹模块的录入程序设计流程如图5所示。

图5 指纹录入程序设计流程

3.3 指纹考勤程序设计

系统在进行指纹考勤时,指纹模块中接收到读取触摸感应状态,指纹模块内置DSP单元发送读取图像指令,等待接收应答包;当DSP 单元读取到指纹图像信息时,会生成指纹特征信息并发送特征指令,等待接收应答包后发送搜索指令,在指纹信息库中提取检索到的指纹并显示指纹信息,为后续指纹识别匹配提供数据[16]。指纹考勤程序设计流程如图6 所示。

图6 指纹考勤程序设计流程

4 智能指纹考勤系统调试与功能测试

智能考勤系统软件部分主要由单片机程序和上位机软件及辅助程序等构成。系统软件调试主要是对系统各部分功能代码和性能进行测试。首先,利用Keil μVision 自带的断点调试工具对单片机部分的软件程序及流程进行调试,程序编写完成后可进入编译器中检查代码编写是否有错误,如果检查出错误可进行更改然后再次编译程序。如果程序编译失败,可进入断点调试,在断点调试的工具栏中逐行对程序进行调试。断点调试完成后,可点击编译按钮对程序重新进行编译。完成程序调试后即可生成HEX 镜像文件,将镜像文件烧录进单片机即可进行下一步测试。然后,按照系统功能模块划分,对上位机程序部分的每项功能逐一进行测试,发现错误调整修改,直至全部完成功能和性能测试。

智能考勤系统硬件部分主要由指纹模块、MY1690 语音模块、独立按键、5 V 转3.3 V 电源模块、ATK-AS608 指纹模块、AMS1117 降压模块以及LED指示灯、三极管、蜂鸣器、电容、电阻等器件连接组成。系统硬件的调试主要是对系统各电路模块的调试。首先,根据软件的引脚定义与单片机的IO 端口进行连接,正确区分模块引脚连接的正负极,确保传感器的引脚连接无误。其次,在电路的焊接与连接中,需要确定元器件是否焊接良好,确保不存在虚焊。然后,调试单片机与上位机的通信端口,确保串口选择正确。最后,对系统进行软硬件联合调试,实现预期的设计功能。

5 结束语

该文提出了基于单片机的智能指纹考勤系统的总体设计方案,通过STC12 单片机和指纹识别模块采集考勤信息,利用上位机实时查看考勤状态,实现了企事业单位的自动考勤和考勤数据的分析处理。智能考勤系统体积小、准确性高、速度快、节省了考勤时间,提高了考勤效率,可有效防止代人打卡、签到和迟到早退等现象,提升了企事业单位考勤管理的信息化水平,具有较好的实用推广价值。

猜你喜欢

上位考勤指纹识别
国有企业考勤管理的问题和对策探究
事业单位人员考勤管理存在的问题及对策
三级甲等医院应用PDCA循环提升考勤管理的创新
一场史无前例的乐队真人秀
苹果屏幕指纹识别专利图流出
iPhone8新专利曝光
指纹挂锁
形形色色的指纹解锁
基础油“上位”
木卫四:挣扎吧!在考勤夹缝终生存的汉子们!