射频识别技术漫谈(28)——基于MF1射频卡的酒店门锁设计

电子门锁是现代星级酒店管理电子化、智能化的重要电子设备。相较于传统的机械锁,基于RFID技术的电子门锁使用方便,易于管理,安全性高,可实现对开锁用户的分优先级自动管理,对房间入住信息实现自动统计与报表输出。

1  系统整体分析

MF1
S50和S70卡是遵守ISO14443A国际标准的非接触式逻辑加密卡,S50卡内共有1024字节非易失性存储空间,分为16个扇区,每个扇区包含4个数据块,每个扇区都有一组独立的密码A和B,扇区内的每个数据块都可单独设置存取条件。S70存储结构与S50类似,存储空间为4096字节,分为40个扇区。

旅客入住酒店时,酒店前台将旅客的入住时间、退房时间、房间号等信息写入已授权卡片指定扇区的数据块。客人在选定的房间门锁前刷卡,门锁射频读卡模块使用定时红外线扫描,当探测到卡片后启动读卡程序,读出卡片的全球唯一序列号和卡内的旅客入住信息,并比对房间号和入住与退房时间,决定是否开门,并将事件记录在门锁的E2PROM中。

卡内使用一个字节作为卡类型标识,除了客人卡、还可识别管理卡、清洁卡、楼层卡、报警卡、时钟卡等不同功能的卡片,并设置不同的权限。卡内的门锁操作记录可以使用MF1
S70卡片采集,以便定期导出进行汇总统计。

2  系统硬件设计

如图1所示,整个系统以ATMEGA88V为核心,外围电路包括RC522读卡操作模块、门锁电机驱动控制模块、红外探测模块、E2PROM存储模块以及电源、时钟、声光指示等功能模块。ATMEGA88V进行红外线探测,当探测到红外线有遮挡时启动RC522进行读卡操作,根据卡内信息决定是否进行开门操作,并通过实时时钟获得时间信息,最后将事件记入E2PROM中;如果是设置卡,则对系统进行参数设置。蜂鸣器和LED灯可以在卡片和门锁操作的过程中指示不同的状态,ISP接口实现应用程序的下载和更新。

图1 系统框图

2.1 主控芯片电路

由于门锁工作时对能耗指标的要求非常苛刻,所以选取主控芯片的原则是运行速度快,耗电少,内部资源够用即可,尽量减少闲置不用的资源。因此综合考虑选用美国ATMEL公司的高性能、低功耗的
AVR 8位微处理器ATMEGA88V作为本系统的核心。

该微控制器特点如下:

◆ 先进的 RISC 结构(工作于16 MHz 时性能高达16 MIPS)。

◆ 23个可编程的I/O口,8路10位ADC通道。

◆ 1K字节内部数据RAM,8K字节FLASH存储器,可以在系统编程。

◆ 3个通用计数器、定时器阵列, SPI串口。

◆ 多种节电休眠和停机方式,掉电模式下最低仅需0.5μA。

2.2   RC522读卡接口电路

读卡电路读取卡片信息供单片机用于控制门锁或进行参数设置,并在导出记录时将记录信息写入S70卡。射频接口芯片选用了体积小、低电压、低功耗的RC522芯片,以满足门锁控制模块对体积和能耗的要求。RC522支持ISO14443
TYPEA及MIFARE
CRYPTO1加密协议,最大读写距离6cm,具备硬件掉电、软件掉电和发送器掉电等多种节电工作模式[2]。RC522读卡接口电路如图2所示。

图2  RC522读卡接口电路

RC522与单片机之间的通讯可以使用UART、I2C、SPI接口,此处我们选用SPI接口。硬件上电路板分为两个部分,天线和红外探测以及LED显示组成PCB前板,其它元件作为硬件底板,TX1和TX2连接PCB前板上的天线。Q1控制RC522的电源,在单片机休眠时RC522完全断电,以节省能量延长更换模块电池的间隔时间。

2.3   门锁电机控制电路与红外探测电路

门锁电机控制电路选用一片BA6287作为驱动。BA6287的供电电压范围4.5-15V,最大输出驱动电流可达1A。M+和M-分别接门锁直流电机的正负极,FIN和RIN接单片机的I/O口。BA6287可以实现电机的正转、反转、刹车以及芯片本身的掉电休眠模式,非常适合于门锁电机的驱动控制。

图3  门锁电机控制电路与红外探测电路

红外探测电路用于探测天线区域内是否有卡片存在。探测时,单片机将IR_E_D置高电平,Q21导通,二极管IR_E向模块正前方区域发射红外线,同时置位IR_R_D电压,并通过ADC通道读取IR_R的电压值。当射频场内有卡片时,发射的红外线通过卡片反射回来被Q22接收,Q22导通,
IR_R的电压高于基准值,单片机据此启动RC522读卡电路。反之当没有卡片时,红外线没有反射,Q22不导通,此时IR_R电压为基准值。

3  软件设计

射频卡门锁电路的软件主要由射频卡探测与读写程序、门锁驱动与状态指示程序以及门开关记录保存与导出程序三部分组成。射频卡探测与读写程序实现了卡片探测与卡片操作,门锁驱动与状态指示根据读取的卡片信息对电机进行驱动,并显示门的当前状态信息,这两部分是软件程序的重点。开关记录保存与导出程序将开关记录记入模块的E2PROM并可导出到S70卡片,供PC主机采集与分析使用。门锁电路软件总框图如图4所示。

图4 软件总流程图

3.1 RC522卡操作程序

红外探测到射频场内有卡片后,单片机启动RC522进行读卡操作。由于模块每间隔250ms探测一次卡片,在间歇期内RC522处于掉电休眠状态,因此读卡的第一步是先给RC522上电复位,然后进行端口和RC522寄存器配置,之后开启天线进行卡呼叫、卡防冲突、卡选择和卡认证。只有获得授权的卡片才能通过卡认证一步,之后单片机根据卡类型进行判断,如果是MIFARE
S50卡,则读取两个BLOCK的卡内配置信息,并根据这些信息调用门锁驱动程序执行开、关门操作或进行系统参数设置;如果是S70卡,则调用开关门记录导出程序,将模块内存储的开关门记录写入S70卡片。

如果红外探测到场内有卡片,但卡呼叫未成功,则可能是有其他物体遮挡红外线或可见光干扰,此时单片机将启动ADC基准值的动态平滑机制,将本次采样值加入样本,同时剔除最老的样本并计算样本平均值作为下次ADC采样比较的基准。经过较短时间的采样平滑后,基准值实现跟随外部干扰变化动态调整,从而消除干扰的影响。

3.2 门锁驱动与状态指示程序

门锁驱动程序根据读取的MF1
S50卡片配置信息进行各种操作。卡片内的配置信息使用卡片的两个BLOCK共32字节,第一个BLOCK的16个字节格式固定,第二个BLOCK的内容根据不同的卡类型所存储的信息有差别。其结构如下:

00       01       02  06  07    0B   0C      0D     0E    0F   10    11  16    17  1C
1D   1E   1F















卡型

FLAG

BEGIN

END

楼号

楼层

房号






卡型:一个字节的卡类型标识不同功能类型的卡片。常见的卡片类型可以分为两大类,开门卡和设置卡。开门卡可以实现开关门,如客人卡、楼层卡、清洁卡、楼号卡、应急卡、常开卡等;设置卡用来设置模块参数,不能开门,如退房卡、管理卡、房号设置卡、时钟设置卡、勿扰卡、报警卡等。

FLAG:标志字节,可以设置8个标志,比如是否允许开反锁,是否比较开门时间,是否比较房号等。

BEGIN和END:开始时间和结束时间,格式为年、月、日、时、分,只有在这个时间区间内,才能开门。当卡片为时钟设置卡时,使用BEGIN来设置系统时钟。

楼号、楼层和房号:用来比较房间是否正确。房号有两个字节,第一个字节为主房间号,第二个字节为子房间号。有些高级套房内部有子房间,并具有独立的门锁控制。没有子房间的客房在比较时忽略子房间号。

第二个BLOCK的内容根据不同的卡类型,其意义有所不同,比如清洁卡可用来设置清洁区域号和清洁时间段,设置卡用来存放模块的授权码等。

门锁驱动程序根据上述卡片信息对门锁电机驱动或将设置卡的设置参数写入模块内的E2PROM。

门锁状态指示程序用来显示门锁的当前状态。门锁状态使用一个蜂鸣器和一个双色LED来表示。正常开门蜂鸣器和绿灯同时动作0.5秒;发生错误时蜂鸣器和红灯同时动作0.2秒;设置卡设置成功后蜂鸣器和绿灯同时动作0.2秒;宾客在房间内将门反锁,绿灯每隔5秒闪烁一次;正常开门卡开门后5秒门未正常关闭,则蜂鸣器和红灯每隔1秒动作一次;电池电压低则蜂鸣器发出旋律可变的报警声。

3.3 开关门记录存储与采集程序

系统扩展了一片AT24C64
E2PROM芯片用来存储系统参数和开关门记录。AT24C64的容量为8K字节,其中前256字节(地址00H~FFH)用来存储系统参数,包括卡片密码、楼号、楼层号、房间号等。AT24C64剩余的存储空间(100H-1FFFH)用来存储开门记录,每条记录的长度为16个字节,其结构如下:

00     01                    04   05           0  A     0B        0C                          0F








卡型

卡序列号

操作时间

操作类型

备注

卡型占用一个字节,记录所刷卡片的类型;卡序列号记录卡片的全球唯一4字节序列号;操作时间记录刷卡的年、月、日、时、分、秒,占用6个字节;操作类型记录开关门的类型,包括正常开门、常开卡开门、常开卡关门、机械钥匙开门等。一片AT24C64共可以存储496条记录。

门锁中的记录使用MF1
S70卡导出。S70卡的容量为4K字节,除去制造商块和每个区的区尾块,每张S70卡可以记录215条记录,导出全部模块中的记录共需要3张S70卡。当用授权的S70卡刷卡时,门锁控制模块自动将E2PROM中记录读出,然后依次写入S70卡的BLOCK中,每一条记录对应一个BLOCK。写完第一张卡片后,模块自动等待第二张卡片进入射频场,直到写完第三张卡片。如果等待超过10秒钟未检测到卡片,程序将超时退出。

射频识别技术漫谈(28)——基于MF1射频卡的酒店门锁设计,布布扣,bubuko.com

时间: 2024-10-12 22:22:24

射频识别技术漫谈(28)——基于MF1射频卡的酒店门锁设计的相关文章

射频识别技术漫谈(20)——RC系列射频接口芯片

目前基于13.56MHz的射频识别技术主要有ISO14443A.ISO14443B.ISO15693和FELICA技术.针对13.56MHz的射频识别技术,NXP开发了一系列名字以RC(Radio Chip)开头的射频接口芯片,包括RC500.RC400.RC530.RC531.RC632等,这些芯片的设计架构.引脚排列.内部寄存器阵列.天线设计等方面基本相同,不同之处主要是与微控制器的接口界面.支持的协议种类等不一样.后来的RC522.PN512也大体继承了同样的设计思路,只是在供电电压和封装

射频识别技术漫谈(17)——射频卡中数据的存储形式

无论什么样的智能卡,不管是接触式的还是非接触式的,存储数据都是一个必须具备的功能.即使是只有一个5字节卡号的ID64格式的卡片也不例外,只不过卡里面的内容在出厂时就被厂家写死了,用户只能读出而不能写入或改变其内容罢了. 数据在存储介质中的存储格式往往和存储介质的容量有很大关系.容量小的存储器如E2PROM,一般以二进制的位(bit)或字节(byte)为单位:容量大的存储介质如硬盘.U盘,一般以文件的形式存储数据,文件有各种类型,文件大小只要别超过物理存储总量,几乎不受限制. 射频卡通常面向特定的

射频识别技术漫谈(29)——射频接口芯片TRF7960

TRF7960系列是TI推出的载波为13.56MHz.支持ISO15693.ISO14443A/B和FeliCa协议的射频接口芯片.许多人更关心它能不能读写MF1卡片,就我的理解及实际验证,由于MF1在卡选择之前的操作是遵守ISO14443A协议的,之后的卡验证和卡数据读写都是NXP自己的保密协议,所以TRF7960可以对MF1卡执行到卡选择操作,或者通俗的说可以读MF1的卡片序列号,但不能对MF1卡读写数据,除非开发者自己知道NXP的加密协议并自己编写代码实现该协议. 在TI官方公开的TRF7

射频识别技术漫谈(11)——Mifare系列卡的共性

Mifare是NXP公司生产的一系列遵守ISO14443A标准的射频卡,包Mifare S50.Mifare S70.Mifare UltraLight.Mifare Pro.Mifare Desfire等,由于Mifare的巨大影响力,业内有时把其它公司生产的遵守ISO14443A标准的射频卡也称为"Mifare",尤其是Mifare S50卡片,几乎就是ISO14443A标准的代言人. 至于"Mifare"这个名字的由来,据说1998年Philips收购了瑞士的

射频识别技术漫谈(15)——Mifare1的安全性及7字节序列号M1卡

Mifare1的安全性主要指卡中数据的安全性,要求卡中的数据不能被非法修改或窃听.数据的安全性主要使用加密技术来保证,加密技术有两个关键因素:加密算法和密钥.现代加密技术的一大特点是加密算法公开,如果加密密钥和解密密钥相同,则称为对称加密,密钥不能公开:如果加密和解密密钥不同,则可以公开其中一个密钥(公钥),另一个不公开(私钥).加密破解的实质就是如何获得不公开的密钥. Mifare1中使用了一种称为"crypto1"的加密算法.遗憾的是,这是一种不公开的私有算法.就本人目前所知,这种

射频识别技术漫谈(5)——防冲突

正常情况下读写器某一时刻只能对磁场中的一张射频卡进行读写操作.但是当多张卡片同时进入读写器的射频场时,读写器怎么办呢?读写器需要选出唯一的一张卡片进行读写操作,这就是防冲突. 防冲突机制是非接触式智能卡特有的问题.在接触式智能卡的操作中是不存在冲突的,因为接触式智能卡的读写器有一个专门的卡座,而且一个卡座只能插一张卡片,不存在读写器同时面对两张以上卡片的问题.常见的非接触式智能卡中的防冲突机制主要有以下几种: 1.面向比特的防冲突机制. ISO14443A中使用这种防冲突机制,其原理是基于卡片有

射频识别技术漫谈(3)——能量、调制

无源和免接触是非接触式IC卡相对于接触式IC卡的两大特点.无源是指卡片上没有电源,免接触是指对卡片的读写操作不必和读写器接触.非接触式智能卡也是IC卡,而卡上的IC即集成电路工作时肯定是需要电源的,卡片自身没有电源而又不和读写器接触,那么电源从哪里来的呢? 其实回答这个问题非常简单,那就是电磁感应.读写器产生一个电磁场,卡片上的天线是一个LC振荡电路,且这个振荡电路的共振频率和读写器电磁场的频率一致.当卡片进入读写器的射频场,卡上的振荡电路起振,电路振荡意味着有电子的流动,有电子的流动就可以用二

射频识别技术漫谈(18)——Mifare Desfire

Mifare  DESFire(MF3 IC D40/D41,本文以D40为例)遵守14443 TypeA协议,卡内的数据以文件形式存储,所以有人认为它是准CPU卡,主要用于安全性要求较高的非接触式领域. 与普通MF1 S50不同,DESFire的数据传输速率不仅支持最基本的106Kbps,还支持212Kbps和424Kbps:其数据传送的加密方法也不再使用已经被破解的Crypto1加密流,而是使用更为安全的DES/3DES.AES加密,至少DES/3DES和AES已经经过了多年的公开检验,至今

射频识别技术漫谈(25)——Felica简介

Felica是SONY公司开发的射频识别技术,该技术使用的载波频率与ISO14443A和ISO14443B一样,都是13.56MHz,所以有人把它称为ISO14443C,但SONY并没有正式接受这样的称谓. Felica技术并不是一个完全公开的协议,尤其是该技术涉及安全认证和加密的部分,SONY的保密做的很好.本文介绍的也仅是其公开的部分信息. Felica技术的通讯协议包括三层:物理层描述数据传输的物理和电气特性; 数据链路层描述数据传输和错误检测的格式;应用层描述命令的功能和规范. Feli