基于STM32的RFID考勤系统的设计与实现_第1页
基于STM32的RFID考勤系统的设计与实现_第2页
基于STM32的RFID考勤系统的设计与实现_第3页
基于STM32的RFID考勤系统的设计与实现_第4页
基于STM32的RFID考勤系统的设计与实现_第5页
已阅读5页,还剩38页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

⑨低功耗的硬复位功能3.2.3MFRC522的功能MFRC522模块支持具有多种传输速率和调制方法的ISO14443A/MIFARE的读写器模式。图3.5MFRC522读写器模式图3.6ISO14443A/MIFARE读写器通信图图3.7ISO14443A数据编码和帧3.2.4MFRC522的接口管脚配置表3.2MFRC522的不同接口的连接配置MFRC522串行接口类型管脚UARTSPII2CSDARXNSSSDAI2C001EA01EAD7TXMISOSCLD6MXMOSIADR_0D5DTRQSCKADR_1D4--ADR_2D3--ADR_3D2--ADR_4D1--ADR_5通过SPI连接方式,使用D5、D6、D7管脚去连接MCU,传输速率可达10Mbit/s,管脚分别对应SCK、MOSI、MISO。在SPI通信中,MFRC522模块作为从设备,由主控设备产生SPI时钟(SCK)。数据通过MOSI(主输出从输入)线从主控设备传输到MFRC522模块;同时,数据通过MISO(主输入从输出)线从MFRC522模块传输回主控设备。在数据传输过程中,无论是MOSI还是MISO模式,每个字节的数据均遵循高位优先的原则进行发送与接收。在MOSI信号线上,数据位在时钟脉冲的上升沿维持稳定状态,而在时钟脉冲的下降沿发生切换。类比于其他通信机制,MISO系统同样在时钟信号的下降沿接收数据由MFRC522提供的信息,而在时钟信号的上升沿期间,则维持数据的稳定性不变。3.2.5MFRC522命令集执行MFRC522的命令是由通过向命令寄存器写入相应的命令代码来执行的,执行命令通常需要参数或者数据,一般在FIFO缓冲区进行交换命令所需的参数或者数据。表3.3MFRC522命令概述命令符命令代码动作Idle0000无动作;取消当前命令的执行。CalcCRC0011激活CRC协处理器或执行自测试。Transmit0100发送FIFO缓冲区的命令。NoCmdChange0111无命令改变。该命令用来修改命令寄存器的不同位,但又不触及其它命令,如掉电。Receive1000激活接收器电路。Transceive1100如果寄存器ControlReg的Initiator位被设为1:将FIFO缓冲区的数据发送到天线并在发送完成后自动激活接收器。如果寄存器ControlReg的Initiator位被设为0:接收天线的数据并自动激活发送器。MFAuthent1110执行读卡器的MIFARE标准认证。SoftReset1111复位MFRC522。3.3串口通信模块本设计采用的串口通信模块是USB转TTL模块,是一种可以把USB接口信号转化成TTL电平信号的模块,其内部通常含有一个USB转串口芯片,这里采用的是CH340芯片,使用前需要安装CH340驱动,使用时将USB接口连接上位机,另一端TX、RX、GND则连接到单片机,从而进行串口通信。此外,该模块还可以用于单片机的程序烧录和调试。图3.8串口模块连接框图图3.9USB转TTL实物图图3.10USB转TTL引脚图表3.4USB转TTL引脚说明引脚名称类型引脚说明VCC电源正电源输入端,需要外接0.1uF电源退耦电容GND电源公共接地端,直接连到USB总线的地线V3电源在3.3V电源电压时连接VCC输入外部电源,在5V电源电压时外接容量为0.01uF退耦电容TXD输出串行数据输出RXD输入串行数据输入,内置可控的上拉和下拉电阻3.4显示模块LCD12864B显示模块专为显示字母、数字以及符号等信息而设计,是一种采用点阵技术的液晶显示装置REF_Ref32356\r\h[22]。分为4位与8位的数据传输模式。提供一种显示模式,其中集成5×7点阵与游标功能。提供用于数据缓冲的直接内存访问(DDRAM)、字符生成器(CGROM)以及字符生成器(CGRAM)的功能,允许用户通过CGRAM存储最多八个自定义的5×8点阵图形字符的字模信息。提供了丰富的指令设置:清晰地显示;游标返回初始位置;显示功能的启用与禁用;游标状态的切换;显示字符的闪烁效果;游标移动操作;以及显示内容的位移等基本控制选项。为了确保系统在启动过程中的高效与可靠性,本电路设计特别配置了内部上电自动复位机制。一旦外部电源电压攀升至超出预设的+4.5V阈值,该电路即会立即激活,执行初始化流程,将整个模块恢复至其出厂设定的默认显示工作模式,从而保证系统能够迅速、准确地进入稳定的工作状态。图3.11LCD12864B实物图图3.12LCD12864B原理图表3.5LCD接口引脚说明引脚名称I/O说明GND-电源负端(0V)VDD-电源正端(5V)V0-LCD驱动电压输入端RSI指令/数据选择信号RWI读写选择信号EI使能信号DB0I/O数据0DB1I/O数据1DB2I/O数据2DB3I/O数据3DB4I/O数据4DB5I/O数据5DB6I/O数据6DB7I/O数据7BL1-LED+(5V)BL2-LED-(0V)3.5声光报警模块本设计采用的是有源蜂鸣器,型号是LRBEET05,蜂鸣器很简单,一共有三个引脚V,G就是接电源,IN就是控制脚。蜂鸣器响的原理是一直重复下面过程:IN脚输出低电平,蜂鸣器叫;延时100ms,让IN脚输出高电平,蜂鸣器不叫,延时100ms。图3.13有源蜂鸣器原理图图3.14有源蜂鸣器实物图3.6继电器模块本设计采用的是型号为SONGLESRD-05VDC-SL-C型号5V直流型的继电器。当RFID射频识别器识别到合法标签后,系统会给继电器发送信号,继电器接收信号后让电路导通,从而能控制一系列的电控锁打开,实现了刷卡开门的功能。图3.15SONGLESRD-05VDC-SL-C实物图图3.16SONGLESRD-05VDC-SL-C原理图3.7本章小结本章开篇根据第二章设计了考勤系统的整体设计框架,根据这个框架内的各个模块,分别介绍了主控芯片、RFID模块、USB转TTL串口模块、LCD显示模块、蜂鸣器、继电器。4系统的软件设计本设计单片机程序使用的是Keil5进行编写的,上位机程序是使用MicrosoftVisualBasic6.0中文版编写和测试的。4.1Keil5简介Keil5是ARM公司旗下的一款嵌入式开发软件,主要用来给ARMCortex-M系列单片机写程序REF_Ref516\r\h[23]。最早是德国Keil公司设计出来的,1985年原名KeilC51,专门用来开发8051单片机的,因为编译器效率高、调试方便,深受嵌入式开发工程师的喜欢。2005年被ARM收购,升级成了支持ARM芯片的MDK-ARM,慢慢演变成了现在的Keil5,嵌入式开发的基本都离不开它。Keil5不仅能编写代码、管理项目、编译调试,还能仿真硬件。它用的编译器最开始ARMCC,后来换成了基于LLVM的ArmCompiler,支持C和C++,生成的代码特别精简,特别适合内存小的嵌入式设备。调试的时候可以用JTAG或者SWD接口,能实时看变量、寄存器这些数据,搭配ULINK或者J-Link这些调试工具,直接就能在硬件上仿真。Keil5还自带了一个实时操作系统(RTX)和一堆现成的库,比如文件系统、USB驱动什么的,能节省很多不必要的繁琐操作。开发人员开发的一般步骤是:首先安装Keil5,创建新项目、添加源文件或者函数库、编写代码、编译代码、烧录调试程序代码。4.2MicrosoftVisualBasic6.0简介MicrosoftVisualBasic6.0是微软公司1998年设计的一款基于COM技术的可视化编程软件,内部提供了大量的控件库,方便开发人员快速构建用户界面,开发人员在编写代码的同时也可以进行用户界面设计,大大提高了开发效率。4.3系统的软件总体设计本设计在软件设计上采用分模块化编程,用Keil5来实现。简单来说,就是把整个软件部分拆分成一个个模块,每个模块负责一块具体的功能,比如RFID读卡模块,专门处理RFID模块读取卡片信息;LCD显示模块,用来控制在显示屏上显示各种内容,像考勤信息之类的;还有蜂鸣器控制模块,决定什么时候让蜂鸣器响、响多久;继电器控制模块,管理继电器的开关动作,方便控制门禁;USB通信模块,主要负责和上位机传输,把考勤数据发送到上位机,也接收上位机的指令;当然还有核心的考勤逻辑模块,判断卡片信息对不对,决定考勤成功还是失败,协调其他模块一起工作。分模块编程的好处就是让整个软件结构变得特别清晰,每个模块只负责自己的职责,开发、调试都方便很多。以后想修改功能或者优化性能,直接对相关模块修改就行,不用把整个程序都修改。而且模块之间的接口定义完成,以后要换别的硬件或者想扩展新功能,只要把对应模块调整调整,其他地方基本不用修改,极大提高了系统的灵活性和可维护性。图4.1硬件流程图4.4RFID射频识别模块程序设计RFID射频模块的程序设计:(一)初始化程序:通过SPI通信函数把初始化指令序列发给RC522模块,设定模块的各种参数,比如时钟分频,通讯模式,工作频率等等,让模块进入到正常的工作状态当中,还要检查模块的返回情况,保证初始化没有问题。(二)寻卡程序:调用寻卡函数通过SPI通信向RC522模块发送寻卡指令,RC522模块返回工作区域内发现的卡片数量以及相关信息。若没有发现卡片则等待一段时间后再次寻卡,直到找到卡片为止。(三)防冲突程序:当寻卡成功且有多个卡片时,调用防冲突函数,使用一定的防冲突算法(如位碰撞检测算法),对卡片进行逐位比较识别,找到目标卡片的UID并返回UID信息。(四)选卡程序:根据防冲突程序返回的UID信息,调用选卡函数,向RC522模块发送选卡指令,选择要操作的卡片,模块返回选卡结果,程序根据结果判断选卡是否成功。(五)读卡程序:选卡成功之后,调用读卡函数,向模块发出读取指令,指定要读取的卡片扇区或者块地址,模块从卡片当中读取相应的数据,然后通过SPI接口把这些数据传回给微控制器,程序对接收到的数据加以处理并开展分析,从而提取出必要的信息。(六)写卡程序:需要往卡片里写数据的时候,就去调用写卡函数,该函数会给模块发出写入指令以及目标卡片的扇区或者块地址,接着把要写的数据也发给模块,模块把数据写到卡片对应的地方之后,就会把写入的结果回传过来,程序接收到这个写入结果以后加以判断,如果写入成功,便可以接着做数据验证这一步骤;要是写入失败,则按照给出的错误信息实施对应的处理办法。(七)数据验证程序:在读写操作完毕之后,调用数据验证函数,针对所读取的数据或者所写入的数据展开校验,利用像CRC(循环冗余校验)之类的校验算法来查验数据是不是完整无缺,如果数据验证得以顺利通过,那么此次读写操作便告完成;要是数据验证无法通过,就要重新执行读写操作或者采取相应的纠错措施。RFID电子标签的工作状态转换严格遵守协议规范,当标签进入读卡器射频场后,先通过电磁感应获取工作能量,然后进入Idle状态,此时标签已有基本的信号接收能力,可以回应读卡器发出的指令,读卡器通过发送特定指令令标签转入Ready状态,这时系统开始防冲突,这个过程依照二进制树形搜索算法,用逐位识别方法从众多标签当中选出唯一目标,通过防冲突检测合格的标签步入Active状态,在这种状态下可以完成全部的数据通信功能。系统的核心控制单元STM32通过SPI接口同读卡器维持着实时的联系,当标签踏入到Active状态以后,读卡器就会读取它的UID以及其他存储的数据,然后传送给STM32来做数据对比,如果对比合格,就会触发门锁控制信号以及图像采集指令,如果对比不合格或者通信结束,读卡器就会发出HALT指令让标签进入休眠状态,想要再次激活处于Halt状态的标签,就要由读卡器发送特定的唤醒指令RequestAll,整个通信流程严格依照ISO/IEC14443TypeA协议标准,采取的是13.56MHz载波频率的半双工通信模式。数据传输采取差异化编码方案,下行链路(读卡器到标签)用NRZ编码,上行链路(标签到读卡器)用曼彻斯特编码,这样做很好地解决了多标签环境下的信号碰撞问题,系统工作流程有着典型的循环特点,寻卡→防冲突→数据交换→休眠,各个状态转换由协议指定的指令序列精准操控,保证了射频识别的可靠性和安全性,这种结构化的状态转换机制给门禁系统赋予了稳固的技术根基。图4.2MFRC522程序流程图4.5LCD显示模块程序设计编写LCD程序,包含初始化配置,包括设置显示、清屏、设置显示位置,以便系统后续可以显示完整的数据,还需要设置友好直观的显示界面,包括主界面显示,实现的前提是需要将数据写入LCD12864显示屏的程序,才能正常显示。图4.3LCD显示屏程序流程图4.6蜂鸣器模块程序设计首先需要将stm32单片机的引脚配置配为输出模式,然后初始化引脚程序设置高低电平。图4.4蜂鸣器程序流程图4.7继电器模块程序设计继电器通常和STM32的GPIO引脚连接,要让继电器运行起来,这就需要初始化GPIO引脚,具体操作是在STM32的HAL函数库中,初始化与继电器相连的引脚,将其设置为推挽输出模式。图4.5继电器程序流程图4.8上位机程序设计本设计的上位机以MicrosoftVisualBasic6.0编程软件来设计,其整体架构采取模块化设计思路,主要涵盖通信模块,数据处理模块以及用户界面模块。通信模块肩负着上位机和STM32控制器之间的数据传递任务,它经过合理设定恰当的波特率,数据位,停止位等等参数,搭建起一条牢固靠谱的串口通信线路,让从STM32上获取的RFID标签信息可以快速精确地上传到上位机之中,而且还可以把来自上位机的命令完完全全地转达给硬件设施,从而保障整个系统顺利运作下去。数据处理模块要对接收到的RFID标签数据执行全面度的解读,核查和转换操作,其一,它会针对所读到的原始数据展开严格检查,把那些有可能出现的错误或者受到干扰的数据全部去除掉,其二,利用快速的匹配算法,把有效的RFID标签信息同员工信息数据库实施精确比对,从而立即找出与之相对应的员工身份,其三,依照规范的数据格式来整理考勤数据,进而为后续的存储以及统计分析打好基础。用户界面模块给使用者赋予了友好而直观的交互界面,界面布局通过精心规划,既简单又不失完备性,包含考勤记录显示区,员工信息查询区,考勤统计区,系统设置区等许多功能区,在考勤记录显示区,员工的考勤状况会及时显现出来,使得使用者可以清楚知晓员工的考勤情形;员工信息查询区有益于管理人员依照工号,姓名等重要信息立即找到特定员工的考勤详细情况。功能上,上位机软件有很多优点,员工信息管理功能强大,可以对员工信息进行普通的录入,修改,删除以及查询等操作。4.9本章小节本章主要介绍了使用的两个编程软件和各个硬件模块的程序设计,以及串口通信上位机的程序设计和用户设计。5系统测试5.1上位机测试本文设计是通过USB转TTL模块把上位机和单片机相连接,通过串口通信将RFID标签信息发送到上位机。上位机程序是使用MicrosoftVisualBasic6.0软件,编写VBS语言的代码实现的,主要作用就是将RFID采集到的信息发送到上位机并显示出来并且记录下来。当程序编写且调试完成时,编译运行后的结果如图5.1所示,此时上位机并没有和硬件建立连接,显示的是未连接的用户面板。左边部分是员工信息查找栏和增删员工信息操作栏,右边是今日员工签到信息记录栏。图5.1上位机用户界面图当上位机和硬件连接后,如图5.2所示,左下角可以输入员工信息,点击添加后,把RFID实体卡靠近RFID模块,LCD显示模块则会显示添加成功,添加成功后,信息栏则可以查询到刚才录入的员工信息。打卡后,打卡信息会显示在今日签到信息栏目,且LCD屏幕上会显示员工信息。图5.2上位机增删信息、和查询测试图5.3添加信息成功测试图图5.4查询信息成功测试图图6打卡成功后的LCD显示信息图6打卡信息记录5.2本章小结本章主要讲的是考勤系统进行测试,包括上位机和硬件测试,主要是由硬件将采集的数据由串口通信上传至上位机,上位机负责记录信息和增减员工信息。6总结与展望在本设计的考勤系统设计中,采用了以STM32单片机为核心,加上继电器、LCD显示屏、蜂鸣器、RC522模块以及USB转TTL串口模块组成的小型考勤系统。通过MicrosoftVisualBasic6.0上位机软件设计了实现员工信息管理、刷卡考勤和考勤记录等功能。硬件部分的开发通过keil5软件进行模块化编写代码。6.1系统总结6.1.1硬件设计方面STM32单片机处于系统的核心地位,它具备较强的处理能力以及较多的外设接口,从而给整个考勤系统的稳定运行形成稳固根基,该单片机可有效地对RC522模块所传来的RFID卡片信息实施处理,还可以控制继电器达成对应的操作控制,比如门禁控制之类的情况,而且能够推动LCD显示屏显现员工信息,考勤状况等重要内容,再加上它也可以控制蜂鸣器发出提示声音,以保证使用者能够很直观地得到考勤方面的回应。RC522模块属于RFID识别的核心部分,其具有较好的读卡能力,可以迅速而精准地读出员工卡内储存的身份资料,响应时延很短,从而保障了员工刷卡考勤既快捷又高效,USB转TTL模块充当起单片机和上位机之间的通信纽带,使得系统可以同外界电脑执行数据传递和交流,利于对员工信息实施集中化运作与剖析。继电器、LCD和蜂鸣器这些外设,在系统里各自承担着不同任务,它们同STM32单片机一起合作,创建起一个功能完备又便于操作的考勤硬件平台,从而给整个考勤系统完成其各种功能赋予了强有力的支持。6.1.2软件设计方面上位机选用MicrosoftVisualBasic6.0软件实施开发,其界面比较简单直观,便于操作,可以达成员工信息的增添,删减,改动等功能,有益于管理员执行员工档案的日常管理工作,而且可以接收并记载员工刷卡考勤的数据,包含刷卡时间,员工编号等具体信息,自动形成考勤记录报表,给企业的考勤统计和剖析给予精确的数据支撑,该系统的刷卡考勤功能运作稳定,员工把RFID卡接近读卡区时,系统就能立即识别,并做好考勤工作,LCD屏会显现“考勤成功”的字样,蜂鸣器也会发声提示,整个过程反应快速又顺畅,明显改善了员工考勤的速度和精准度,免除了传统考勤方法中也许会产生的替人打卡,忘记打卡之类的状况。6.2系统展望6.2.1硬件升级和优化以后可以采用频率更高,读取距离更远的RFID模块,满足各种场合下的考勤需求,比如在某些大企业的厂区大门或者特定工作区域,员工不必靠近打卡机就能完成考勤,加快通行速度,还要改进单片机的外围电路,进一步减小系统功耗,加强系统的稳定性与可靠性,从而增长设备的使用年限。增添备用电源模块,以防止出现突然停电之类的异常情况时,考勤系统还能够继续正常运行一小段时间,从而保障考勤数据的完整与安全,免除由于电源故障引发的数据遗失或者考勤中断之类的状况发生。6.2.2软件功能拓展上位机软件方面,除去既有的员工信息经营,考勤记录功能以外,可以考量开发数据分析模块,对考勤数据执行更深层次的发掘与分析,譬如统计员工的出勤率,迟到早退情况,加班时间等,并生成各类图表和报表,进而给企业的人力资源运作决策给予更强大的支持。增添考勤异常提示功能,如果员工连续出现迟到,早退或者缺勤情况,那么系统便会自动向管理员发送提示信息,如此一来,管理员便能及时察觉员工的考勤情形,并实施相应的经营举措,而且要开发移动端应用程序,从而让管理员能够通过手机等移动设备随时查看考勤数据以及系统运行状况,做到远程经营,进一步优化经营的机动性和便捷性。6.2.3系统集成与应用拓展本考勤系统具有较好的扩展性,可以同其他企业经营系统执行整合,诸如把考勤系统同企业的工资核算系统相关联,使得考勤数据能够自动应用到工资计算当中,削减人工统计和计算的工作量以及可能出现的误差,进而加强企业经营的综合效率并改善其自动化程度,还会把考勤系统同企业的门禁系统相融合,当员工刷卡考勤的时候,门禁的开闭也能得到控制,这样就能进一步保障企业的安全经营,防止无许可者踏入工作场所。探究把本系统应用到企业考勤之外的场景,比如学校图书馆的图书借阅运作,社区活动中心的人员进出运作等方面,通过定制化的软件功能开发和硬件适配,把基于STM32的RFID技术拓展到更多领域当中,从而发挥其在身份识别和数据运作上的优势,给不同行业的信息化创建赋予支撑。基于STM32的RFID考勤系统,其在硬件设计,软件功能以及实际应用等诸多方面均收获了较好的成绩,不过就进一步改良提升而言,仍存在较大的上升空间与挖掘潜力,通过不断地更新改造之后,该系统日后必然会在未来的考勤运作甚至更多的应用场景里起到更为强大的作用,给企业和社会带来越发便捷高效,更加高端新颖的运作手段,促使信息化运作技术持续向前发展。参考文献李勇.基于RFID与人脸识别技术的智能门禁系统研究与设计[D].重庆大学,2009.陈锦.基于射频识别技术的门禁系统研究[D].武汉理工大学,2010.张万良.基于RFID技术的实验室门禁系统设计[J].电子测试,2013(22):16-17.丁建南.基于UHFRFID的门禁与考勤系统[D].华北理工大学,2015.ChigozirimA,OreoluwaA,AdekunleY.TheImpactofRadioFrequencyIdentificationDetectioninCellularNetworks[J].NetworkandComplexSystems,2014,4(1):1-6.王琪.基于移动模式的一卡通系统的应用研究[J].信息与电脑(理论版),2012(2):18-18崔梓涵.浅析无线网络的发展历程与前景[J].移动信息,2015(1):87-87.刘建康.指纹识别及射频技术在监狱门禁系统中的设计与实现[D].电子科技大学,2011.张洁.基于RFID技术的智能门禁系统设计[D].河北科技大学,2010.马骉.嵌入式门禁控制系统的研究与设计[D].天津大学,2007.章志勇.基于校园一卡通的考勤与门禁系统的设计与实现[D].山东大学,2010.JerryL,BarbaraC.ShroudsofTime:TheHistoryofRFID[J].2001.GaoX,XiangZ,WangH,etal.AnApproachtoSecurityandPrivacyofRFIDSystemforSupplyChain[C]//E-Commerc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论