最新门禁系统设计uuiu.docx
- 文档编号:8647069
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:36
- 大小:284.83KB
最新门禁系统设计uuiu.docx
《最新门禁系统设计uuiu.docx》由会员分享,可在线阅读,更多相关《最新门禁系统设计uuiu.docx(36页珍藏版)》请在冰豆网上搜索。
最新门禁系统设计uuiu
智能卡门禁系统设计1
1设计要求
智能卡的应用并不是简单的读写卡操作,而是一个综合性的工程项目。
它不仅包括卡和读写模块的选择,还涉及到读写模块的控制、数据的传输、数据的处理和存储;既需要有硬件应用的知识、也还必须具有软件方面的能力。
下面我们以一个完整的应用系统为例,详细地描述了各组成部分的设计要求、完成的功能及具体的实现方法。
智能卡门禁系统设计任务:
1.智能卡门禁系统——门禁机模块的设计
(1)非接触式IC卡读写头部分
主要内容:
读头部分采用非接触智能卡读写模块,由读卡器读入数据并加以保存,智能卡按常规要具有加密和数据分区存储功能,读写头的读写距离在5-10厘米左右,必须具有掉电保护、精确时间记时和显示,3K—5K的临时数据存储。
(2)门禁机主控模块主要内容:
智能门禁机主控模块是智能门禁机系统的核心部分,主要包括MCU、键盘、
显示、电子时钟、外部数据存储器及掉电保护和看门狗电路,有精确时间记时和显示。
2.智能卡门禁系统——系统管理模块的设计
(1)系统管理主控模块设计
主要内容:
设计门禁上层软件的主控模块,其主要实现的功能是最高权限卡对管理员和一般用户发卡,管理员对一般用户发卡。
能对丢失的卡进行挂失,对找回的卡进行解挂,同时还要具备查找功能。
(2)系统管理的数据库管理软件设计主要内容:
运用高级语言编程,制作数据库管理软件。
采集下位机的数据并保存,然后管理采集到的数据,具有采集、数据更新、查询统计和报表的打印功能
3.智能卡门禁系统——数据传输模块的设计
主要内容:
完成中央控制电脑与门禁读写器之间的数据传输协议的设计,能实现主、从机的双向数据传输及一对一、一对多的数据传输。
2总体方案
根据设计要求,整个智能卡门禁系统分为三大部分:
其一是读写器部分,包括MCU、复
位电路、时钟电路、显示电路、键盘、数据存储等主控模块及非接触IC卡读写模块和电锁驱动部分;其二是中央控制电脑的软件管理系统模块;其三是中央控制电脑与读写器之间的数据传输模块。
其总体方案见图5.1。
图1非接触式IC卡门禁系统框图
3非接触式IC卡门禁机的设计
系统采用Philips公司的非接触智能IC卡Mifare1卡,以M1卡作为用户卡,以用户卡的序列号SN(全球唯一)为依据控制门的开启。
因为它是一个高频卡(工作频率为13.5MHZ),有较强的抗干扰能力、读写距离远(5MM—10MM)。
首先,在发卡系统(中央控制PC机)里把用户的卡号及个人信息输入系统数据库,并将
该卡号作为合法卡号下载给所有门禁机。
当有一张M1卡在门禁机的有效工作范围内时,系统会自动向卡发出命令,卡接收到命令后向门禁机反馈其SN,门禁机判断收到的卡号是否合
法,合法则驱动电磁门锁开门,并实时上传其开门记录;如果是非法卡(XX或已挂失的卡)则拒绝开门并上传报警信息。
只有最高授权者(掌握授权密码)才可以发管理员卡,管理员必须用管理员卡方可登录发卡系统进行发卡/下传合法卡号、挂失、解挂、下传黑名单等操作。
附录二门禁机硬件原理图
由于采用了Philips公司的非接触式Mifare1卡,所以卡的读写模块也采用了以
Philips公司最新推出的Mifare读写芯片MFRC500为核心开发的ZLG500A读写模块。
门禁机模块的硬件原理图见附录二。
通过AT89C52对ZLG500A的控制达到对卡的读写。
系统结构简单,成本较低且具有信息
量大和安全保密性好等特点。
外围配有RS232转RS485接口能与PC机互连成网络,可以完
成读卡、显示卡号和出入时间、身份识别、开锁以及保存和上传出入记录、下载黑名单、设置开门权限等功能。
门禁机模块的主控软件主要完成门禁机模块的初始化、卡的识别、开启门锁及保存有关数据和数据的传输等五大功能。
其总体工作流程如图5.2所示:
图3非接触式IC卡门禁机总体工作流程在完成整个门禁机模块的设计和制作前,首先必须明确非接触式IC卡读写模块的功能特性、接口规范和控制方式。
本系统选用MIFARE1卡作为门禁钥匙,相应地,选用广州周立功公司的ZLG500A读写模块作为卡与门禁机交换数据的接口模块。
1.ZLG500A读写模块特性
1)功能特性
图5.3为ZLG500A非接触式IC卡读写模块,该模块采用最新PHILIPS高集成ISO14443
读卡芯片—MFRC500,能读写RC500内EEPRO,M提供三线SPI接口,并具有控制线输出口,
EMC性能优良;并自带无源
能与任何MCU接口。
此外,该模块四层电路板设计,双面表贴,蜂鸣器信号输出,能用软件控制输出频率及持续时间。
J1
图4ZLG500A模块实物图
如图5.3所示J1为与天线的接口J2为与MCU的接口,J1、J2的管脚排列和功能说明见表5.1:
表5.1ZLG500A非接触式IC卡读写模块管脚说明
(一)
管脚
符号
描述
J1-1
GND
地
J1-2
TX1
天线发送1
J1-3
GND
地
J1-4
TX2
天线发送2
J1-5
GND
地
J1-6
RX
天线接收
表5.1ZLG500A非接触式IC卡读写模块管脚说明
(二)
管脚
符号
类型
描述
J2-1
SCLK
输入
三线SPI接口时钟线总是由外部MCU产生
J2-2
SDATA
双向
数据线可双向传输
J2-3
SS
双向
传输启动线接MCU外部中断
J2-4
VCC
PWR
电源正端
J2-5
RST
复位
内部MCU复位端高电平有效
J2-6
GND
PWR
电源负端
J2-7
CTRL
输出
控制线输出
J2-8
BZ
输出
蜂鸣器信号输出
ZLG500模块可方便地与任何MCU进行接口,如图5.4所示为ZLG500与MCS-51单片机
P1.0
SCLK
P1.1
SDATA
P1.2
SSZLG500
MCS51
P3.3
RST
CTRL
BZ
图5.4ZLG500与MCS-51单片机接口图
的典型接口。
SCLK、SDATA、SS为ZLG500A与MCU相联接的控制线,分别为片选SS、时钟线
SCLK和数据线SDATA。
主控制器的MCU和读卡模块内的MCU通过此三线相连,三根线上的实际电平是双方口线状态逻辑线与的结果。
2)ZLG500三线串行读卡模块接口规范
(1)接口原理
接口空闲时主机SS=1SCLK=0SDATA=0从机SS=1SCLK=1SDATA=0。
其中SS和DATA是双向的而时钟线SCLK是单向的,即时钟只能由主控制器产生,该信号必须严格遵守时序规范,否则将出现通信错误读卡模块必须释放该线。
SS为数据发送使能,若一方有数据要发送给另一方,则该方控制SS线为低并在发送结束后将该线置高,接收数据方不得控制该线,双方必须遵守通信协议不得同时控制该线。
SDATA为数据线,由数据发送端控制数据,接收端必须释放该线。
该线在一次传输开始时还同时作为数据接收端的响应信号。
(2)时序图
如图5.5所示,无论数据传输的方向如何,SPI线上信号的波形总是如下;StartfromsenderStopfromsender
SS
SCLK
t1tHt2t3
tLtHt2t3
SDATA
Ackfromreceiver
Senderandreceiver
图5ZLG500时序图
且在SCLK为低时
取决接收器内一旦接收器响
由图中可以看出,在SS为低的情况时,时钟和数据线上的信号才有效。
SDATA变化,在SCLK为高时SDATA应保持稳定。
以上传输中从数据发送器请求开始至数据接收器响应的时间是不确定的,
的MCU是否忙,有必要设置一个看门狗定时器对数据接收器的响应进行监视,应,则MCU必须根据数据传输的方向,严格控制以下几个时间,以确保数据传输无误。
t1—数据接收器响应至MCU产生第一个SCLK上升沿的时间。
t2—两个字节传输之间SCLK低电平的持续时间。
t3—传输最后一个字节的最后一位的SCLK信号的上升沿至SS上升沿的时间。
tH—SCLK信号的高电平持续时间。
tL—SCLK信号的低电平持续时间。
在数据传输的方向不同时,对时间t1—t3tH和tL都有各自不同的要求。
(3)通信协议
MCU与ZLG500的通信必须先由MCU发送命令和数据给ZLG500,ZLG500执行命令完毕后,将命令执行的状态和响应数据发回MCU。
开始通信前,收发双方必须处于空闲状态。
首先由MCU发出SS下降沿信号,然后等待
ZLG500载SDATA线上的响应,若在50ms内为检测到此信号,则退出本次传输。
若正确响应,则MCU可将命令和数据发送出去。
然后MCU等待ZLG500发回的状态和响应数据。
也即等待SS线上的下降沿信号,若在50ms内为检测到此信号,则退出本次传输,若正确检测到SS信号,则可以接收状态和数据。
ZLG500初始化的子程序如下:
SCLKBITP1.0
;ZLG500内部复位
处于空闲状态
MOV58H,#11H
MOV
59H,#11H
MOV
5AH,#11H
MOV
5BH,#11H
LCALL
CONFIG
LCALL
REQUEST
LCALL
ANTICOLL
;***********IFHAVECARD***********
配置发送请求
;防碰撞
SDATABITP1.1
SSBITP1.2
RSTBITP3.3
Zlg500:
SETBRST
LCALLDELAY_50MSCLRRST
LCALLDELAY_50MSSETBSSCLRSDATA
CLRSCLK
MOVA,52H
;A=04ISNOCARD
CJNEA,#04H,SA123
LJMPSA234
SA123:
RET
从存储器中读取数据
SA234:
LCALLREAD_BLOCK
LCALLDELAY_100MS
MOVR2,#20
MOVR0,#58H
进行卡号的比较和验证
MOVR1,#80H
LCALLCOMPARE
REL13:
SETBFLAG
LCALLREL123
JBFLAG,REL13
RET
是由MCU向ZLG500发出的不带数
主要是检
REQUES命T令
上述程序中CONFIG子程序为RC500的复位和配置子程序,
据的命令程序;REQUES子T程序是MCU向ZLG500发出的带一个字节数据的命令程序,查在有效范围内是否有卡存在;ANTICOLL子程序是防冲突操作,必须在执行了后立即执行。
MCU与ZLG500之间的通信一般遵循如下的数据格式
MCU向ZLG500发出的命令模式的格式如下:
SeqNr
Command
Len
Data[0⋯N]
BCC
其中:
SeqNr:
1Byte是数据交换包的序号
Command:
1Byte是命令字符
Len:
1Byte是数据的长度
Data[⋯]LenByte是数据字节
BCC:
1Byte是一个字节的BCC效验
SeqNr
Status
Len
Data[0⋯N]
BCC
INFO[0]INFO[n]其中:
SeqNr:
1Byte是数据交换包的序号
status:
1Byte是状态字符
Len:
1Byte是数据的长度Data[⋯]LenByte是数据字节BCC:
1Byte是一个字节的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
MOVA,#00H
MOVR2,#04H
MOV
R0,#60H
;发送首地址
LCALL
SPI_SEND
MOVR0,#30H
;接收起始地址
LCALL
_SPI_RCV
RET
***************REQUEST***********************
REQUEST:
MOV
60H,#00H
;数据交换包的序号
MOV61H,#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的数据发送
LCALL
SPI_SEND
;
MOVR0,#40H
;接收起始地址
LCALL
SPI_RCV
RET
**************ANTICOLL***********************
MOV
60H,#00
;数据交换包的序
MOV
61H,#42H
;防碰撞命令字符代码
MOV
62H,#01
;数据的长度为1
MOV
63H,#00H
;数据值为0
LCALL
BCC_SUM
MOV
64H,A
MOV
A,#00H
MOV
R2,#05H
;发送5个字节数
MOV
R0,#60H
;60H_64H的数据发送
LCALL
SPI_SEND
MOV
R0,#50H
;存放数据
ANTICOLL:
LCALLSPI_RCV
MOVA,52H
CJNEA,#04H,L0
MOV58H,53H
MOV59H,54H
MOV5AH,55H
MOV5BH,56H
MOVA,58H
XRLA,59H
XRLA,5AH
XRLA,5BH
MOV5CH,A
MOVA,#00H
CLR
P3.4
LCALL
DELAY_
50MS
LCALL
DELAY_
50MS
LCALL
DELAY_
50MS
LCALL
DELAY_
50MS
SETB
P3.4
L0:
RET
3)写数据MCU——ZLG500
除响应信号外,三根线上的信号全由
MCU产生。
MCU在SS线上产生一个下降沿,发出请求数据传输的信号,等待ZLG500响应后本次数据传输开始,ZLG500将在SCLK为高时读取SDATA线上的数据,传输完毕后MCU应在SS线上产生一个上升沿结束本次传输。
写数据的
具体步骤可见表5.2。
表5.2ZLG500A读写模块写数据步骤
序号
动作发出者
动作
动作接收者
动作说明
1
MCU
SDATA=1SCLK=0SS=下降沿
ZLG500
本次数据传输开始请
求
2
ZLG500
SDATA=上升沿
MCU
本次数据传输响应
3
MCU
SDATA=串行数据
ZLG500
数据传输
4
MCU
SCLK=上升沿、延时、下降沿
ZLG500
产生时钟ZLG500读
数据
5
MCU
重复动作3、4传送N8位
ZLG500
数据传输N字节
6
MCU
SS=上升沿SDATA=0SCLK=0
ZLG500
本次数据传输结束
传输过程中必须严格遵守以下时间要求:
t1>7s,t2>14s,tH>7s,tL>9s,t3=任意
面是MCU向ZLG500写入数据的子程序,为满足上述时间要求,可通过加入空操作来实现。
SPI_SEND:
ANLP3,#0F7H
求
DECR0
SETBSDATACLRSCLK
JBSDATA,$
CLRSS
MOV
R5,#100
DL33:
MOV
R6,#7DH
DL44:
JB
SDATA,ASDF
DJNZR6,DL44
DJNZR5,DL33
AJMP
SPI_SEND
ASDF:
ANL
P1,#0FDH
SENDBYTE:
NOP
INC
R0
NOP
NOP
MOVA,@R0
MOVR3,#8
NOP
NOP
SENDBIT:
NOP
RLCA
MOVSDATA,C
NOP
NOP
SETBSCLK:
NOP
;恢复SS的输出功能,传输开始请
;发送数据的首地址
;SADATA仍为高则等待
;MCU等待SDATAD的上升沿
;STADA恢复输出
设置一个字节的位数
发送数据位
NOP
CLRSCLK
DJNZR3,SENDBIT
DJNZR2,SENDBYTE
SETBSS;本次数据传输结束
CLRSDATA
NOP
JBSS,$
RET
4)读数据ZLG500——MCU
响应信号SCLK信号由MCU产生,SS信号和SDATA信号由ZLG500产生。
ZLG500会在SS线上产生一个下降沿发出请求数据传输的信号,等待MCU响应后本次数据传输开始,MCU将在
SCLK为高时读取SDATA线上的数据,传输完毕后ZLG500将会在SS线上产生一个上升沿结束本次传输。
读数据的具体步骤可见表5.3
传输过程中必须严格遵守以下时间要求t1>14s,t2>16s,tH>6s,tL>6s,t3>9s
下面是MCU从ZLG500读取数据的子程序作来实现。
SPI_RCV:
ORLP3,#08H
ANLP1,#0FDH
DECR0CLRSCLKSETBSDATANOPORLP1,#02
NOP
NOP
RCVBYTE:
MOVR3,#8
INCR0
RCVBIT:
NOP
NOP
SETBSCLKNOP
NOPMOVC,SDATARLCANOP
NOP
CLR
同理,为满足上述时间要求,可通过加入空操
;SS设置为输入
;SDATA设置为输出
;SDATA设置为输入
读取一位
SCLK
表5.3ZLG500A读写模块读数据步骤
动作序号
动作发出者
动作
动作接收者
动作说明
1
ZLG500
SDATA=1SS=下降沿
MCU
本次数据传输开始请求
2
MCU
SDATA=上升沿
ZLG500
本次数据传输响应
3
ZLG500
SDATA=串行数据
MCU
数据传输
4
MCU
SCLK=上升沿、延时、下
降沿
ZLG500
MCU产生时钟,且读取数
据
5
双方
重复动作3、4传送N8位
双方
数据传输N字节
6
ZLG500
SS=上升沿,SDATA=0
MCU
本次数据传输结束
NOP
NOP
DJNZR3,RCVBIT
MOV@R0,A;读取的一个字节存入指定地址
NOP
NOP
JNBSS,RCVBYTE
ANLP1,#0FDH;SDATA设置为输出
CLRSDATA
RET
2.门禁机主控模块
上面我们对ZLG500A读写模块的功能特性、接口规范和控制方式作了比较详细地讲解,在此基础上,可以进一步完成MCU对ZLG500A的读写和控制,如果附加上周边的辅助功能和驱动控制,就可以形成一个完整的智能卡读写器。
首先,我们看一下MCU部分的设计和控制的实现。
图5.6是MCU控制框图,从图中可以看出MCU除了完成对ZLG500A读写模块的控制外,还要承担其它功能的控制,主要包括四大部
图6门禁机控制框图
分:
键盘和显示部分、实时时钟和掉电保护部分、数据存储和数据传输部分、驱动控制部分。
1)键盘和显示部分
键盘和显示是一般智能化仪器仪表均须具有的功能,是人机交互最主要的方式。
不同的智能仪器,随着其功能、MCU资源的占用、使用环境等各种条件的不同,可采用多种键盘和显示方案。
本应用系统中,由于外围部件较多,MCU资源占用较大,为了尽可能的减少MCU
输入输出I/O的占用,键盘的设计采用串入并出的方式,利用一片74LS164,占用MCU的四
根I/O口,就可以实现16个键的全部功能。
具体电路见图5.7:
图7串行口扩展的行列式键盘
从系统监控软件的角度来看,仅仅完成键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要解决,否则,在操作键盘时就容易引起误操作、失控等现象。
首先是去抖动处理。
按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如不妥善处理,将会引起按键命令的错误执行或重复执行。
最常用的一种方法是软件延时的方法来避开抖动阶段,延时过程一般取10ms~50ms。
其次是连击的处理。
当按下某个键时,键盘处理程序便查找相应的功能号,并转到相应的功能模块程序去执行,如果这时操作者还没有释放按键,MCU就会反复执行该按键对应的
功能,好像操作者在连续操作该键一样。
本系统中需要按键去改变系统的实时日历,如果出现连击现象,操作者就很难设定时间。
要解决连击的问题最关键是一次按键只让它响应一次,该键不释放就不执行第二次。
为此要分别检测到按键按下的时刻和释放的时刻。
有两种程序结构都可以解决连击的问题,一是按下键盘就执行,执行完成后等待操作者释放按键,在末放前不再执行指定的功能,从而避免了一次按键重复执行的现象。
二是在按键释放后再执行指定的功能,同时可以避免连击,但与前一种相比,给人一种反应迟钝的感觉。
具体采用哪种结构,可根据实际情况而定。
关于键盘控制的具体编程,可参考有关的书籍和应用说明,在此就不再说明。
显示是人与计算机系统
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 门禁 系统 设计 uuiu
![提示](https://static.bdocx.com/images/bang_tan.gif)