2022年门禁系统设计+单片机ATC .pdf
《2022年门禁系统设计+单片机ATC .pdf》由会员分享,可在线阅读,更多相关《2022年门禁系统设计+单片机ATC .pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、智能卡门禁系统设计1 设计要求智能卡的应用并不是简单的读写卡操作,而是一个综合性的工程项目。它不仅包括卡和读写模块的选择,还涉及到读写模块的控制、数据的传输、数据的处理和存储;既需要有硬件应用的知识、 也还必须具有软件方面的能力。下面我们以一个完整的应用系统为例,详细地描述了各组成部分的设计要求、完成的功能及具体的实现方法。智能卡门禁系统设计任务:1 智能卡门禁系统门禁机模块的设计( 1) 非接触式IC 卡读写头部分主要内容: 读头部分采用非接触智能卡读写模块,由读卡器读入数据并加以保存,智能卡按常规要具有加密和数据分区存储功能,读写头的读写距离在5-10 厘米左右,必须具有掉电保护、精确时间
2、记时和显示,3K5K的临时数据存储。( 2) 门禁机主控模块主要内容:智能门禁机主控模块是智能门禁机系统的核心部分,主要包括MCU 、键盘、显示、电子时钟、外部数据存储器及掉电保护和看门狗电路,有精确时间记时和显示。2 智能卡门禁系统系统管理模块的设计( 1) 系统管理主控模块设计主要内容: 设计门禁上层软件的主控模块,其主要实现的功能是最高权限卡对管理员和一般用户发卡, 管理员对一般用户发卡。能对丢失的卡进行挂失,对找回的卡进行解挂,同时还要具备查找功能。( 2) 系统管理的数据库管理软件设计主要内容:运用高级语言编程,制作数据库管理软件。采集下位机的数据并保存,然后管理采集到的数据,具有采
3、集、数据更新、查询统计和报表的打印功能 3 智能卡门禁系统数据传输模块的设计主要内容: 完成中央控制电脑与门禁读写器之间的数据传输协议的设计,能实现主、 从机的双向数据传输及一对一、一对多的数据传输。2 总体方案根据设计要求,整个智能卡门禁系统分为三大部分:其一是读写器部分,包括MCU 、复位电路、时钟电路、显示电路、键盘、数据存储等主控模块及非接触IC 卡读写模块和电锁驱动部分; 其二是中央控制电脑的软件管理系统模块;其三是中央控制电脑与读写器之间的数据传输模块。其总体方案见图5.1 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -
4、- - 名师精心整理 - - - - - - - 第 1 页,共 21 页 - - - - - - - - - 图 1 非接触式 IC 卡门禁系统框图3 非接触式 IC 卡门禁机的设计系统采用 Philips公司的非接触智能IC 卡 Mifare 1卡,以 M1卡作为用户卡,以用户卡的序列号SN (全球唯一)为依据控制门的开启。因为它是一个高频卡(工作频率为13.5MHZ) ,有较强的抗干扰能力、读写距离远(5MM 10MM ) 。首先 ,在发卡系统 (中央控制PC机)里把用户的卡号及个人信息输入系统数据库,并将该卡号作为合法卡号下载给所有门禁机。当有一张M1卡在门禁机的有效工作范围内时,系统
5、会自动向卡发出命令,卡接收到命令后向门禁机反馈其SN, 门禁机判断收到的卡号是否合法,合法则驱动电磁门锁开门,并实时上传其开门记录;如果是非法卡(未经授权或已挂失的卡)则拒绝开门并上传报警信息。只有最高授权者(掌握授权密码)才可以发管理员卡, 管理员必须用管理员卡方可登录发卡系统进行发卡/ 下传合法卡号、 挂失、 解挂、下传黑名单等操作。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 21 页 - - - - - - - - - 附录二门禁机硬件原理图由于采用了Phili
6、ps公司的非接触式Mifare 1卡,所以卡的读写模块也采用了以Philips公司最新推出的Mifare读写芯片 MF RC500为核心开发的ZLG500A读写模块。门禁机模块的硬件原理图见附录二。通过 AT89C52对 ZLG500A的控制达到对卡的读写。系统结构简单, 成本较低且具有信息量大和安全保密性好等特点。外围配有RS232转 RS485接口能与PC机互连成网络,可以完成读卡、显示卡号和出入时间、身份识别、开锁以及保存和上传出入记录、下载黑名单、设置开门权限等功能。门禁机模块的主控软件主要完成门禁机模块的初始化、卡的识别、 开启门锁及保存有关数据和数据的传输等五大功能。其总体工作流程
7、如图5.2 所示:装载权限初始化显示日历寻卡执行开门比较权限开放键盘设置时间设置权限合法吗?执行开门执行报警取时间+卡号+BCC 码寻卡计录满否?写入24C64 中数据指针加 12计录数加 1发送数据发送记录数清空24C64数据指针 =0计录数=0图 3 非接触式 IC 卡门禁机总体工作流程在完成整个门禁机模块的设计和制作前,首先必须明确非接触式IC 卡读写模块的功能特性、接口规范和控制方式。本系统选用MIFARE 1 卡作为门禁钥匙,相应地,选用广州周立功公司的ZLG500A读写模块作为卡与门禁机交换数据的接口模块。1.ZLG500A读写模块特性名师资料总结 - - -精品资料欢迎下载 -
8、- - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 21 页 - - - - - - - - - 1)功能特性图 5.3 为 ZLG500A非接触式 IC 卡读写模块, 该模块采用最新PHILIPS 高集成 ISO14443读卡芯片 MF RC500 ,能读写 RC500内 EEPROM,提供三线SPI 接口,并具有控制线输出口,能与任何MCU 接口。此外,该模块四层电路板设计,双面表贴,EMC 性能优良;并自带无源蜂鸣器信号输出,能用软件控制输出频率及持续时间。J1 J2 图 4 ZLG500A 模块实物图如图 5.3
9、 所示 J1 为与天线的接口J2 为与 MCU 的接口 ,J1 、J2 的管脚排列和功能说明见表 5.1 :表 5.1 ZLG500A 非接触式 IC 卡读写模块管脚说明( 一) 管脚符号描述J1-1 GND 地J1-2 TX1 天线发送 1 J1-3 GND 地J1-4 TX2 天线发送2 J1-5 GND 地J1-6 RX 天线接收表 5.1 ZLG500A 非接触式 IC 卡读写模块管脚说明( 二) 管脚符号类型描述J2-1 SCLK 输入三线 SPI 接口时钟线总是由外部MCU 产生J2-2 SDATA 双向数据线可双向传输J2-3 SS 双向传输启动线接MCU 外部中断J2-4 VC
10、C PWR 电源正端J2-5 RST 复位内部 MCU 复位端高电平有效J2-6 GND PWR 电源负端J2-7 CTRL 输出控制线输出J2-8 BZ 输出蜂鸣器信号输出ZLG500 模块可方便地与任何MCU 进行接口,如图 5.4 所示为 ZLG500与 MCS-51 单片机P1.0P1.1P3.3P1.2MCS51SCLKSDATASSRSTCTRLBZZLG500名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 21 页 - - - - - - - - - 图 5
11、.4 ZLG500与 MCS-51单片机接口图的典型接口。 SCLK 、SDATA 、SS为 ZLG500A与 MCU 相联接的控制线,分别为片选SS 、时钟线SCLK 和数据线 SDATA 。主控制器的MCU 和读卡模块内的MCU 通过此三线相连,三根线上的实际电平是双方口线状态逻辑线与的结果。2) ZLG500 三线串行读卡模块接口规范(1) 接口原理接口空闲时主机SS=1 SCLK=0 SDATA=0 从机 SS=1 SCLK=1 SDATA=0 。其中 SS 和DATA 是双向的而时钟线 SCLK 是单向的,即时钟只能由主控制器产生,该信号必须严格遵守时序规范,否则将出现通信错误读卡模
12、块必须释放该线。SS 为数据发送使能, 若一方有数据要发送给另一方,则该方控制 SS 线为低并在发送结束后将该线置高,接收数据方不得控制该线,双方必须遵守通信协议不得同时控制该线。SDATA 为数据线,由数据发送端控制数据,接收端必须释放该线。该线在一次传输开始时还同时作为数据接收端的响应信号。(2)时序图如图 5.5 所示,无论数据传输的方向如何,SPI 线上信号的波形总是如下;图 5 ZLG500 时序图由图中可以看出,在SS 为低的情况时, 时钟和数据线上的信号才有效。且在 SCLK 为低时SDATA 变化,在 SCLK 为高时 SDATA 应保持稳定。以上传输中从数据发送器请求开始至数
13、据接收器响应的时间是不确定的,取决接收器内的MCU 是否忙,有必要设置一个看门狗定时器对数据接收器的响应进行监视,一旦接收器响应,则 MCU 必须根据数据传输的方向,严格控制以下几个时间,以确保数据传输无误。t1 数据接收器响应至MCU 产生第一个 SCLK 上升沿的时间。t2 两个字节传输之间SCLK 低电平的持续时间。t3 传输最后一个字节的最后一位的SCLK 信号的上升沿至SS 上升沿的时间。tHSCLK 信号的高电平持续时间。tL SCLK 信号的低电平持续时间。在数据传输的方向不同时,对时间t1 t3 tH 和tL 都有各自不同的要求。(3) 通信协议MCU 与ZLG500 的通信必
14、须先由MCU 发送命令和数据给ZLG500 ,ZLG500 执行命令完毕后, 将命令执行的状态和响应数据发回MCU 。开始通信前,收发双方必须处于空闲状态。首先由MCU 发出 SS 下降沿信号,然后等待ZLG500 载SDATA 线上的响应,若在50ms 内为检测到此信号,则退出本次传输。若正确响应,则MCU 可将命令和数据发送出去。然后 MCU 等待 ZLG500 发回的状态和响应数据。也即等待SS 线上的下降沿信号,若在50ms内为检测到此信号,则退出本次传输,若正确检测到SS 信号,则可以接收状态和数据。SSSCLKSDATAStart from sendert1tHtLt2t3Stop
15、 from senderAck from receiverSender and receiver名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 21 页 - - - - - - - - - ZLG500 初始化的子程序如下:SCLK BIT P1.0 SDATA BIT P1.1 SS BIT P1.2 RST BIT P3.3 Zlg500: SETB RST ; ZLG500 内部复位LCALL DELAY_50MS CLR RST LCALL DELAY_50MS
16、SETB SS ; 处于空闲状态CLR SDATA CLR SCLK MOV 58H,#11H MOV 59H,#11H MOV 5AH,#11H MOV 5BH,#11H LCALL CONFIG ; 配置LCALL REQUEST ; 发送请求LCALL ANTICOLL ; 防碰撞;* IF HAVE CARD * MOV A,52H CJNE A,#04H,SA123 ; A=04 IS NO CARD LJMP SA234 SA123: RET SA234: LCALL READ_BLOCK ; 从存储器中读取数据LCALL DELAY_100MS MOV R2,#20 MOV R0
17、,#58H MOV R1,#80H LCALL COMPARE ; 进行卡号的比较和验证REL13: SETB FLAG LCALL REL123 JB FLAG,REL13 RET 上述程序中 CONFIG 子程序为 RC500 的复位和配置子程序, 是由 MCU 向ZLG500 发出的不带数据的命令程序; REQUEST子程序是 MCU 向 ZLG500 发出的带一个字节数据的命令程序,主要是检查在有效范围内是否有卡存在;ANTICOLL 子程序是防冲突操作,必须在执行了REQUEST命令后立即执行。MCU 与 ZLG500之间的通信一般遵循如下的数据格式MCU 向 ZLG500发出的命令
18、模式的格式如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 21 页 - - - - - - - - - SeqNr Command Len Data0N BCC INFO0 INFOn 其中 : SeqNr: 1 Byte 是数据交换包的序号Command: 1 Byte 是命令字符Len: 1 Byte 是数据的长度Data Len Byte 是数据字节BCC: 1 Byte 是一个字节的BCC效验 SeqNr Status Len Data0N BCC INFO
19、0 INFOn 其中: SeqNr: 1 Byte 是数据交换包的序号status: 1 Byte 是状态字符Len: 1 Byte 是数据的长度Data Len Byte 是数据字节BCC: 1 Byte 是一个字节的BCC效验按照上述数据格式传输编制的CONFIG 、REQUEST 和 ANTICOLL子程序清单如下:; * CONFIG * CONFIG: MOV 60H,#00H ; 数据交换包的序号MOV 61H,#52H ; 配置命令字符代码MOV 62H,#00H ; 数据的长度为0 LCALL BCC_SUM0 ; BCC 效验子程序MOV 63H,A ; BCC_SUM MO
20、V A,#00H MOV R2,#04H MOV R0,#60H ; 发送首地址LCALL SPI_SEND MOV R0,#30H ; 接收起始地址LCALL _SPI_RCV RET ; * REQUEST * REQUEST: MOV 60H,#00H ; 数据交换包的序号MOV 61H,#41H ; 请求命令字符代码MOV 62H,#01H ; 数据的长度为1 MOV 63H,#01H ; 请求模式的数据mode=01H LCALL BCC_SUM MOV 64H,A MOV A,#00H MOV R2,#05H ; 发送 5 个字节数MOV R0,#60H ; 60H_64H 的数据
21、发送LCALL SPI_SEND ; MOV R0,#40H ; 接收起始地址LCALL SPI_RCV 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 21 页 - - - - - - - - - RET ; * ANTICOLL * ANTICOLL: MOV 60H,#00 ; 数据交换包的序号MOV 61H,#42H ; 防碰撞命令字符代码MOV 62H,#01 ; 数据的长度为1 MOV 63H,#00H ; 数据值为 0 LCALL BCC_SUM MOV 6
22、4H,A MOV A,#00H MOV R2,#05H ; 发送 5 个字节数MOV R0,#60H ; 60H_64H 的数据发送LCALL SPI_SEND MOV R0,#50H ; 存放数据LCALL SPI_RCV MOV A,52H CJNE A,#04H,L0 MOV 58H,53H MOV 59H,54H MOV 5AH,55H MOV 5BH,56H MOV A,58H XRL A,59H XRL A,5AH XRL A,5BH MOV 5CH,A MOV A,#00H CLR P3.4 LCALL DELAY_50MS LCALL DELAY_50MS LCALL DELA
23、Y_50MS LCALL DELAY_50MS SETB P3.4 L0: RET 3) 写数据 MCU ZLG500 除响应信号外,三根线上的信号全由MCU 产生。 MCU 在SS 线上产生一个下降沿,发出请求数据传输的信号,等待ZLG500 响应后本次数据传输开始,ZLG500 将在 SCLK 为高时读取SDATA 线上的数据,传输完毕后MCU 应在SS 线上产生一个上升沿结束本次传输。写数据的具体步骤可见表5.2 。表5.2 ZLG500A 读写模块写数据步骤序号动作发出者动作动作接收者动作说明1 MCU SDATA=1 SCLK=0 SS= 下降沿ZLG500 本次数据传输开始请求2
24、ZLG500 SDATA= 上升沿MCU 本次数据传输响应名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 21 页 - - - - - - - - - 3 MCU SDATA= 串行数据ZLG500 数据传输4 MCU SCLK= 上升沿、延时、下降沿ZLG500 产生时钟 ZLG500 读数据5 MCU 重复动作 3、4 传送N 8 位ZLG500 数据传输 N 字节6 MCU SS= 上升沿 SDATA=0 SCLK=0 ZLG500 本次数据传输结束传输过程中必须严
25、格遵守以下时间要求:t17s ,t214s ,tH7s,tL9s ,t3= 任意下面是 MCU 向 ZLG500写入数据的子程序, 为满足上述时间要求,可通过加入空操作来实现。SPI_SEND: ANL P3,#0F7H ; 恢复 SS的输出功能, 传输开始请求DEC R0 ; 发送数据的首地址SETB SDATA CLR SCLK JB SDATA,$ ; SADATA仍为高则等待CLR SS MOV R5,#100 DL33: MOV R6,#7DH DL44: JB SDATA,ASDF ; MCU等待 SDATAD 的上升沿DJNZ R6,DL44 DJNZ R5,DL33 AJMP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年门禁系统设计+单片机ATC 2022 门禁 系统 设计 单片机 ATC
限制150内