




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于射频识别的门禁系统软件设计设计人:张亚飞 崔兴利 陈丽婷 王亚玲 张宏幸基于射频识别的门禁系统软件设计1系统软件分析与设计1.1 软件设计方法与设计语言选择软件设计方法有三种:(1)模块化程序设计;(2)自顶向下逐步求精程序设计;(3)结构化程序设计。模块化程序设计的中心思想是要把一个复杂的应用程序按整体功能划分为若干相对独立的程序模块,各模块可以单独设计、编程、调试和查错,然后装配起来联调,最终成为一个有实用价值的程序。自顶向下逐步求精程序设计要求从系统一级的主干程序开始,集中力量解决全局问题,然后层层细化逐步求精,最终完成一个复杂程序的设计。结构化程序设计是一种较理想的程序设计方法,指
2、在编程过程中对程序进行适当限制,使程序上下文与执行流程保持一致。由于系统可以清晰的分为几个模块,因此本系统采用模块化程序设计方法。单片机控制软件常采用C语言或汇编语言来实现。C语言程序具有程序库支持丰富、结构化好、查错容易、移植性高等优点而获得广泛应用。而汇编语言作为面向底层的低级语言,程序执行速度最快,程序代码最小,普遍应用于驱动程序、常驻程序、特定容量大小的程序或是要求执行速度快的控制程序中。本射频识别系统的控制元件较多,程序代码较多,尤其对MF RC500的控制程序,有4K之多。因此,采用模块化程序设计方法,以C语言实现的控制程序,按模块分别储存在AT89C52芯片内,无需单片机扩展存储
3、器接口,简化了系统硬件结构,减低了成本,同时又提高了系统的稳定性。1.2 系统总体程序流程设计系统一共有三种开门方式:按钮、PC机指令、非接触式IC卡。其中按钮开门方式需要密码。非接触式IC卡开门方式是最主要的方式,这里主要对这种方式的系统工作流程进行介绍。流程图见图1.1, 整个过程中系统都与PC机之间进行数据交换12。2 系统软件模块化设计设备上的软件分为上位机程序和下位机程序两部分。上位机软件工作在Windows操作系统环境下,采用Visual C+和SQL编制。主要是完成下位单片机送来的数据的处理、转发以及对整个下位机进行控制等 444546 。下位机软件包括射频控制模块、通讯模块、人
4、机接口模块、看门狗模块、数据存储模块、门磁控制模块, 见图 1.2 。这些程序全部固化到AT89C52的程序存储器中。图1.1 系统感应卡开门方式工作流程图图1.2 系统软件控制模块结构图2.1 射频控制模块射频控制模块就是对MF RC500的控制模块,本部分是系统最关键的部分。(1)MF RC500复位操作在上电之后一定要对MF RC500进行复位操作,MF RC500是高电平复位有效的,可以由AT89C52的I/O口直接复位,要注意的是:必须在AT89C52成功复位150ms以后,再对MF RC500进行复位操作;复位高电平必须保持200us以上。如果复位成功,MF RC500内部的Com
5、mand寄存器的值为0,如果不为0,必须重新复位 。(2)初始化MF RC500内部寄存器在复位成功后,再对MF RC500的内部寄存器进行初始化,只有在正确的初始化之后,MF RC500才能正常工作。成功进行上两步操作之后,MF RC500的引脚TXl同引脚TX2之间有2.2v 左右的压差。(3)对非接触式IC卡进行操作,MF RC500支持Mifare1卡和Mifarelight卡,本系统采用的是Mifare 1卡。射频模块的工作流程见图4.3,对Mifare 1卡的操作包括:请求操作在成功复位和初始化之后,MF RC500控制天线向工作范围内的卡进行请求,请求有Request all和R
6、equest std两种,当一张Mifare卡片处在卡片读写器的天线的工作范围之内,该卡片的ATR将启动,将卡片内部数据块0中的卡片类型(TagType)号共2个字节(Mifare 1卡的返回值为00H、08H),传送给MF RC500,建立卡片与读写器的第一步通信联络。Request all指令是非连续性的读卡指令。只读一次。但是当某一次Request all指令读卡失败时,比如,卡片没能通过密钥认证或其他原因而出错时,Request all指令将连续地读卡,直到读卡成功才进入非连续性的读卡模式。Request all指令适用于那些需要有人工干预的场合。Request std指令的使用和Re
7、quest all指令刚巧相反,Request std指令是连续性的读卡指令。当某一张卡片在读写器天线的有效的工作范围内,Request std指令在成功地读取这一张卡片之后,进入读写器对卡片的其他操作。如果其他操作完成之后,程序员又将读写器进入Request std指令操作,则Request std指令将连续性地再次进行读卡操作,而不管这张卡片是否被拿走。只要有一张卡片进入天线的有效的工作范围内,Request std指令将始终连续性地再次进行读卡操作Request std指令适用于那些不需要有人工干预的场合,即全自动的场合。例如,宾馆,酒店,高级写字楼等场所的门禁控制系统(Door Acc
8、ess Control)高速公路,停车场等的不停车收费系统(Non-Stop Road Tolling),等等。要注意的是,对于收费系统,在成功读卡之后一定要使用Halt指令停止该卡,否则,卡上的值会全部被减掉。图1.3 射频模块的工作流程图本系统采用Request std请求指令。在成功进行请求操作后,系统就可进行下一步操作。 反碰撞操作如果有多张Mifare卡处在系统天线的工作范围之内时,MFRC500将保证一 次只与一张卡片进行通信,取得该卡片的系列号。由于Mifare卡片每一张都具有其唯一的序列号,决不会相同,因此保证MF RC500一次只对一张卡操作。该操作的返回值为卡的序列号。 卡
9、的选择操作接下来的操作就是选择某一张卡,此操作MF RC500得到返回值80 H 。密钥认证操作在允许对卡进行读写操作之前,必须对卡进行三轮密钥认证。首先,指定要 访问的区,并选择密钥A或密钥B。本系统采用密钥A。在更改密钥A时要设置访问条件(如表1.1),注意,密钥设置最好设成可逆的。 接着把用户密码加密,并加载到MF RC500的密钥缓存中。接下来就是三轮密钥认证 。表1.1 卡的访问条件访问位有效命令C13C23C33读,写C12C22C32读,写,增,减,传送,恢复C11C21C31读,写,增,减,传送,恢复C10C20C30读,写,增,减,传送,恢复段描述3区尾2数据段1数据段0数据
10、段卡的数据操作在成功密钥认证之后,就可以对卡进行读、写、增值、减值、存储、传送等操作了以上的每步操作都被写成一个函数,最后在主函数中调用,这样方便系统的升级并增强了程序的可读性。2.2 看门狗模块为了防止系统“死机”,在硬件中采用看门狗芯片x5045来监视系统的运行。X5045的工作原理是,系统在运行必须在不超过设定时间内给x5045一个电平跳转信号,俗称“喂狗”,否则,x5045强制系统复位。这样可以防止系统死机。在程序编制时,必须注意 2021 :(1) 不要在中断子程序中“喂狗”,否则系统会出现紊乱。(2) “喂狗”不要太频繁,这样会造成系统程序冗长,资源浪费。2.3 数据存储模块本门禁
11、系统采用24C64做为系统存储器,它主要是用来存储三种数据:系统所有有效卡的信息、出入记录缓存、黑名单。这些记录在每一次门禁事件中都会被查询。如当读写器读到刷卡信号时,系统首先要证明该卡的权限,这主要看该卡是不是属于系统有效卡,是不是黑名单中禁止的卡,接着再根据权限和时间权限来决定是否开门。这样如果不对数据存储格式以及查询方式上进行优化,将造成系统查询权限时间过长,整个系统反应缓慢。因此,必须对此进行优化 38 。(1) 存储结构的优化为了方便后面的有效卡查询,在存储有效卡时,规定一次产生一定数量的新卡,这些卡都属于同一个区。这样有效卡的实际存储格式为区号+卡号,并且把卡所属的区号输入卡中,另
12、外,每一区中的卡号按升序排列。这样在系统得到刷卡数据时,同时得到卡的区号和卡号,因此,接下来的查询就比较简单了,先找到卡所属的区的存储位置接着再找卡号所对应的卡信息。黑名单的存储也是保留卡的卡号与区号,每一区中的卡号按升序排列。(2) 信息查询优化前面提到在系统工作中多处需要对存储信息进行查询,因此实际中,系统采用比较有效的二分法查询。这种查询方法一次比较后便能排除一半的卡片,在最坏的情况下要进行log2(2 N)次查询,其中N为存储大小。由于软件中多处使用到二分法查询,所以在软件编制时,把它编成一个查询子函数。由于系统在刷卡时会对有效卡和黑名单进行查询,接下来就以对有效卡查询为例说明卡的查询
13、过程,见图4.4二分法查询子程序流程图。从图可以看出,系统首先从卡中读取卡的区号,再根据区号查找该区在存储器中对应的位置。若该区不存在,则此卡无效,系统会在液晶屏上显示“无效卡”,并通过蜂鸣器报警。若该区存在,则把存储器中该区的最低地址放在地址指针Laddr中,最高地址放在地址指针Haddr中。接下来取Maddr=(Laddr+Haddr)/2,若Maddr中存储的卡号与系统所得卡号一致,则结束查询,并读取查询信息,接着验证权限来决定要不要开门。要是不一致,则看此时的Laddr是否等于Haddr,要是相等则退出,表示没有查找到,要是不相等就看Maddr与卡号的大小,要是Mad比卡号大,图1.4
14、二分法查询子程序流程图则令Laddr=(Laddr+Haddr)/2,反之则令Haddr=(Laddr+Haddr)/2,这样反复循环查询直至查询结束。在实际操作中,二分法查询可以提高系统响应速度。2.4 通讯模块(1)通讯模块设计分析本门禁系统除了能单独工作之外还可以与PC机之间进行通讯,由于采用多机通讯方式,一台PC机可以同时管理多个门禁系统。这样可以方便PC机将管理信息、应用数据等下载到读写器,也可以将读写器中的相关记录信息上传到PC机。为了方便管理,系统的通讯模块必须满足以下几点要求 41 。通讯正确 、快速;通信距离较长,这样PC机可以远离现场进行工作;一台PC机要能同时管理多个门禁
15、系统;通讯模块硬件实现简单。基于这些要求,本系统采用半双工串口多机通讯方式。并且PC机同门禁系统之间具有严格的主从关系,见图1.5。PC机应用程序可以随时通过指令呼叫门禁系统,在多台门禁系统协同工作的情况下,只有被呼叫的门禁系统才能与应用程序之间建立通讯。图1.5 通讯系统主从系统目前通信工业中应用最广泛的一种串行口标准接口是RS232,PC机上也只提供RS232通讯接口。它采用单端传送方式,但是由于RS232传送线上的总负载电容量不能超过2500pF,若电缆电容为150pF/m(或125pF/m)时,其最大的传送距离小于20m。并且其传送速度低于20KHz波特率,所以RS232仅适用于本地设
16、备之间的低速通讯。为了提高通讯的距离和速度,本系统采用RS485通讯方式,RS485通讯的最大通讯距离达1200m (数据传送速率低于100kHz波特率时)。(2) 通信协议的设计在通信程序设计中,通信协议的设计是关键,协议设计的好坏直接影响到通信程序的质量。通信协议设计的基本原则是层次化,相邻层之间的接口定义了下层向上层提供的基本操作和服务。在本文中,PC机与读写器之间的RS485通信协议设计采用分层结构,见图1.6。在图 1.6中,物理层利用物理媒介实现物理连接的功能描述和执行连接的规程,提供用于建立、保持和断开物理连接的机械的、电气的、功能的和过程的条件,根据数据链路层提供的服务,完成门
17、禁系统与PC机的通信。应用层数据链路层物理层应用层数据链路层物理层 图1.6 RS485通信协议分层模型物理层完成发送和接收字节流的任务,但不保证通信的可靠性,而由高层协议来保证。物理层以子程序的形式为数据链路层提供服务,包括发送一个字节子程序和接收一个字节子程序。数据链路层以帧为基本通信单位,帧的结构包括两部分;帧的长度和帧体。帧的长度用来说明帧体的长度,帧长度的引入不但方便程序的设计,同时可以发现通信过程中丢失字节的错误,并且丢弃缓冲区接收的错误字节,能够起到一定的检查错误的功能;帧体格式,长度为1-255字节。地址域类型域数据域校验域地址域占用一个字节,用来存放门禁系统的地址码,在一条总
18、线上可以挂接256台门禁系统;类型域用来指定数据域信息的类型,也占用一个字节,其中类型域内容为0表示PC机与门禁系统之间传送数据信息,为1表示传送命令信息;数据域内容是PC机与门禁系统之间传送数据信息或者命令信息;校验域存放对数据域内容采用某种校验算法得到的校验码,如奇偶校验、累加和校验或循环冗余校验等。数据链路层也以发送帧和接收帧子程序的形式向应用层提供接口。应用层是通信协议的最高层,针对门禁系统不同的应用场合,应用层协议可以各不相同。基于本协议可以有两种通信机制。一种是面向握手的,即每发送一帧,总要等待确认帧,否则认为通信出错。这是一种可靠的通信方式,适合于传输少量数据和大量数据时的重要参
19、数;另外一种就是无握手的,即发送方认为发送和接收总是准确无误的,从而无需等待确认帧就不停地发送,发送过程简单、快速,适合大量数据的发送。考虑到门禁系统在实际应用中对可靠性的严格要求,并且具有传输数据量不大的特点,本文采用握手通信方式,并且PC机与门禁系统的RS485通信是点对多型通信。根据上面的分析,从PC机端实现对门禁系统各中操作的数据链路层命令帧格式可按如下设计:串口通信握手操作: 帧长度地址块类型域命令码命令块异或校验码03H门禁系统地址01H00H无一个字节门禁系统正确返回的数据帧内容为:帧长度数据块异或校验码B02H无一个字节本协议实现系统通信的握手操作,PC机向地址所代表的门禁系统
20、发送通信请求指令,并等待门禁系统的响应。如果握手成功,PC机就继续通过通信与门禁系统协同工作,若握手超时,则在PC机上显示地址所代表的门禁系统无法通信,转而与其他门禁系统进行通信。取门禁系统监控数据:帧长度地址块类型域命令码命令块异或校验码05H门禁系统地址01H01H1字节一个字节门禁系统正确返回的数据帧内容为:帧长度数据块异或校验码B10H14字节一个字节本协议中 ,PC机向地址所代表的门禁系统取得门禁系统的实时状态。门禁系统向PC机返回帧长度1字节+地址码1字节+刷卡号3字节+卡状态号1字节十刷卡时间6字节+门磁状态1字节+门磁输出1字节+校验码1字节。门禁系统系统时间:帧长度地址块类型
21、域命令码命令块异或校验码0BH门禁系统地址01H05H7字节一个字节门禁系统正确返回的数据帧内容为:帧长度数据块异或校验码B09H7一个字节本协议中,PC发送的数据格式为帧长度1个字节,异或校验码B一个字节,PC机设置地址所代表的门禁系统的系统时间。PC机发送的数据字节+地址码1字节+系统时间6字节十1字节校验码:门禁系统返回的数据为帧长度一字节+地址码1字节+系统时间6字节+1字节校验码。PC机接收后检查是否正确,不正确要重发,门禁系统接收到时间后要对DS1302芯片进行设置。门禁系统复位:帧长度地址块类型域命令码命令块异或校验码05H门禁系统地址01HFFH1字节一个字节门禁系统正确返回的
22、数据帧内容为:帧长度数据块异或校验码B03H1字节一个字节本协议中数据块为1字节,异或校验码B一个字节,PC机向门禁系统发送复位令FFH,门禁系统就自动恢复到初始状态,并在成功操作后返回FFH给PC机。(3) 整个通讯程序分为3个部分:数据接收部分、命令执行部分、数据发送部分。数据接收部分 数据接收程序主要接收一帧正确的数据,数据帧错误的判断符合以下原则: 有一个字节偶校验错误,数据帧错误。数据帧格式不正确,数据帧错误。 数据帧校验码不正确,数据帧错误。 整个程序是在接收中断服务程序中执行的,见图1.7。图1.7 接收中断服务程序命令执行部分这一部分是通讯主程序执行部分,见图1.8,是从机接收
23、一帧正确数据后,通过地址域判断 RS-485 总线中主控器是否呼叫本从机,如果是广播地址则所有接收到的从机都应响应命令,同时通过密码的方式,可以设置权限,密码和地址是保存在 E2PROM 中。 在地址和密码判断正确的时候,程序进行命令译码,对要求的命令执行相应的操作,同时如果要通过总线发送数据,应准备好发送数据缓存器的内容,启动发送程序,发送完毕时清除接收事件发生标志。图1.8 命令执行部分数据发送部分本程序的数据发送部分是在主程序中执行的,见图1.9。(4)通信可靠性设计由于在实际应用系统中现场存在各种干扰,并且各读写器分布较远、数量较多,通信可靠性经常得不到保证。本文从硬件和软件两方面就提
24、高RS485总线通信可靠性提出些具体措施。首先,从硬件上来说。在实际应用系统中,PC机和门禁系统一般相隔较远,通信线路比较长,而各门禁系统上电或复位又常常不在同一时刻完成,如果此时某个门禁系统处于发送阶段,将会占用RS485通信总线,这样其他读写器就无法使用RS485通信总线与PC机通信。因为AT89C52初始化后,其I/O口处于状态1,这样RS485将处于发送状态,这样会占据整个总线。为了解决这个问题,在设计通信接口电路时,将AT89C52的P3.4 经过反向器后再接在SP485R上。当RS485总线处于空载状态时,RS232/RS485转换器上的发送器和所有门图1.9 数据发送部分禁系统通
25、信接口上的发送器均呈高阻态,传送线A, B上的电平未知,各门禁系统接口上的接收器保持为最后一次接收的逻辑状态。为了保证RS485总线处于空载状态时各门禁系统通信接口上的接收器输出逻辑1,在RS232/RS485转换器和门禁系统RS485总线通信接口电路设计时分别将传送线A上拉和传送线B下拉,上拉电阻等于下拉电阻并且根据实际应用中RS485通信系统包括的门禁系统的台数以及匹配电阻的连接情况来计算。另外,为了防止RS232/RS485转换器和门禁系统RS485通信接口上接收器的共模电压超过RS485接收器的极限接收电压,即大于+12V或小于-7V,将门禁系统工作电源和读写器RS485收发器的电源隔
26、离,并且使用光耦NEC2501实现隔离,彻底消除共模电压的影响:最后在PC机相连的RS232/RS485转换器上和距离PC机最远的门禁系统RS485总线通信接口上均连接匹配电阻以吸收RS485总线上的反射信号,保证传输信号的准确。匹配电阻的大小等于传送电缆的特性阻抗,本系统为120欧姆。对于软件上来说。由于RS485总线通信是异步半双工的通信,在某一时刻通信总线上只允许呈现一种状态。为了可靠通信,在RS485总线状态切换时需要适当延时后再进行数据发送或者接收。在软件编制时要注意保护现场,即在串口通信的下位机收发程序的起始部分对AT89C52的内部寄存器ACC, PSW, B等压入堆栈进行保护,而在子程序结束时再从堆栈中释放出来。这样可以保证串口通信工作不对系统其他功能模块产生影响。在通信协议设计中,每一帧数据传送采用异或校验,数据发送完毕后利用累加和校验来确保通信的可靠性。3 模块子程序编译调试 Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各个仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起,本文中调试用的是K
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年CFA考试行业监管分析试题及答案
- 站内公共服务设施优化考核试卷
- 关注市场变化的证券从业资格证试题及答案
- 烘焙食品企业生产设备升级考核试卷
- 玻璃保温容器市场营销渠道拓展考核试卷
- 电池制造与户外广告屏考核试卷
- 银行从业资格证的复习建议试题及答案
- 出租资产招商方案范本
- 微生物样本管理中的生态道德审视试题及答案
- 2024年项目管理考试知识点提炼试题及答案
- 岁月漫长解锁幸福密码教学设计高中下学期心理健康主题班会
- 山东省威海市文登区城区重点初中联考2023-2024学年七年级下学期5月期中数学试题【含答案解析】
- 2024年1月浙江省普通高校招生选考物理试题和答案
- DL∕T 619-2012 水电厂自动化元件(装置)及其系统运行维护与检修试验规程
- 紧密型县域医共体总医院一体化运行工作方案
- 2025年山东省春季高考模拟考试英语试卷试题(含答案详解)
- 高考英语3500词高频单词词块默写
- 子宫脱垂护理
- CHT 8023-2011 机载激光雷达数据处理技术规范
- 河北省唐山市路北区2023-2024学年八年级下学期4月期中物理试题
- 2024届高中语文高考作文资料及素材系列
评论
0/150
提交评论