找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2746|回复: 2
打印 上一主题 下一主题
收起左侧

基于 MF RC500 的 Mifare 射频卡读写器设计

[复制链接]
跳转到指定楼层
楼主
ID:220743 发表于 2017-10-3 15:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
摘要: 介绍基于 MF RC500 读写卡芯片和 STC89C52RC 型单片机实现的 Mifare1 射频卡
读写器的设计方法。对其系统硬件设计进行分析, 并给出对 Mifare1 卡操作流程。
关键词: RFID ; 读写器; Mifare1 卡; MF RC500
0 引 言
射频识别 (Radio Frequency Identification , 以下简称 RFID) 技术 [1] 是利用无线射频方式进行非接触双向通信并交换数据, 以达到识别目的。与传统的条码或磁条识别技术相比, RFID 技术具有非接触、精度高、作用距离远、可动态识别多个数据及应用环境适应性较好等优点, 在工业自动化、仓储管理、门禁控制等众多领域得到广泛的应用与发展。本文基于 MF RC500设计了 RFID 技术的 Mifare1 卡读写器。该读写器能完成对 Mifare1 卡的读、写及控制操作, 具有响应速度快、读卡距离远、通信稳定等优点。
1 Mifare1 卡特点及原理
    射频卡属于非接触 IC 卡, 它避免了普通 IC 卡与读卡器之间的物理接触, 减少了卡的磨损, 识别工作无须人工干预, 可工作于各种恶劣环境。当前世界上
非接触式 IC 智能射频卡的核心是 Philips 公司的 Mi-fare1 IC S50(- 0l , - 02 , - 03 , - 04) 系列微模块。已被定制为国际标准: ISO/IEC 14443 TYPE A 标准。目前, 许多较大的 IC 卡制造商的非接触式卡制造均以 Mifare 技术为标准。 Mifare1 卡上有 8Kb EEPROM 存储容量, 并划分为 16 个扇区, 每个扇区划分为 4 个数据存储块。各扇区的密码和存取控制都是独立的, 可以根据实际需要设定各自的密码及存取控制。因此一张卡能同时运用在 16 个不同的系统中, 并可以根据每个系统的实际情况决定各区的密码及数据形式。Mifare1 卡上具有先进的数据通信加密并双向验证密码系统, 具有防重叠功能, 能在同一时间内处理重叠在读写器天线的有效工作距离内的多张重叠的卡片。卡片上还内建有增值、减值的专项数学运算电路, 非常适合公交、地铁等行业的检票、收票系统。卡片上的数据读写可超过 10 万次以上, 数据保存期可达 10 年以上, 且卡片抗静电保护能力可达 2kV 以上。Mifare1 卡中包含一块 ASIC 微晶片和一个高频天线, 卡片上无源 ( 无电池 ) 。其基本工作原理是: 读写器 中 的 Mifare 基 站 向 Mifare1 卡 发 一 组 固 定 频 率(13.56MHz) 的电磁波, 卡片内有一个 LC 串联谐振电路, 其频率与基站发射的频率相同。在电磁波的激励下, LC 谐振电路产生共振, 使卡片内具有电荷, 当所积累的电荷达到 2V 时, 卡片中芯片将卡内数据发射出去或接收基站对卡片的操作。射频卡的标准操作距离为 100mm , 与卡片读写器的通信速率高达 106Kb/s 。
2 读写器芯片特性和功能简介
       MF RC500 是应用于 13.56MHz 非接触式通信中高集成射频识别系统中的一员。该系统利用先进的调制和解调概念, 完全集成了在 13.56MHz 下所有类型的被动非接触式通信方式和协议。 MF RC500 支持ISO14443A 所有的层, 内部的发送器部分不需要增加有源电路就能够直接驱动近操作距离的天线( 距离可达 100mm ); 接收器部分提供一个坚固有效的解调和解码电路, 用于 ISO14443 兼容的应答器信号; 数字部分处理 ISO14443A 帧和错误检测 (奇偶与 CRC )。此外, 它还支持快速 CRYPTO1 加密算法, 用于验证 Mi-fare 卡系列产品。方便的并行接口可直接连接到任何8 位微处理器, 为读卡器或终端的设计提供了极大的灵活性 。
3 RFID 读写器的设计
3.1 系统硬件设计
3.1.1 读卡器硬件系统框图
       基于 MF RC500 的 RFID 技术 Mifare 卡读写器系统, 其系统结构框图如图 1 所示。硬件主要由 STC89C52RC 单片机、 MF RC500 、以及 232 通信等接口模块组成。读卡器用 STC89C52RC单片机作主控制器, 单片机控制 MF RC500 驱动天线对 Mifare 卡进行读写操作。 74HC595 作显示驱动器驱动 LED 数码显示器, PS/2 总线作为通用编码键盘接口, 键盘与 LED 显示器作为人机交互接口, MAX232作串口信号转换。由于主控芯片 STC89C52RC 有 8K
的 FLASH , 并且内含 2K 的 EEPROM , 可方便反复擦写、修改程序。同时, 由于外部不用扩展程序存储器,可以简化电路设计, 减小读卡器的尺寸, 同时有较多的 I/O 口提供给系统使用。
3.1.2 读写器的原理图设计
        读写器电路是由 STC89C52RC 型单片机控制专用读写芯片 (MF RC500) 组成。系统的工作方式是先由MCU 控制 MF RC500 驱动天线对 Mifare 卡进行读写操作 , 然后与 PC 通信 , 把数据传给上位机。读写模块 MF RC500 是整个读写器的核心 , 它完成读写 Mifare 卡的所有必需功能 , 包括 RF 信号的产
生、调制、解调、安全认证和防重叠等。作为单片机与射频卡通讯的中介, MF RC500 与 Mifare1 卡由射频场来建立无线链接并完成数据交换。
MCU 是通过对读写模块 MF RC500 内核特殊的内存寄存器的读写来控制 MF RC500 。 MF RC500 射频模块的 D0 - D7( 数据端口 ) 和单片机数据端口 P0 口直接连接进行数据传送 , 中断请求口 IRQ 和单片机的中断 0( INT0) 连接 , 即单片机利用 MF RC500 提供中断信息对其进行控制。天线拾取的信号经过天线匹配电路送到 RX 脚, MF RC500 的内部接收器对信号进行检测和解调并根据寄存器的设定进行处理 , 然后数据发送到并行接口 , 由 MCU 进行读取。MF RC500 通过 TX1 和 TX2 提供 13.56 MHz 的能量载波驱动天线。根据寄存器的设定对发送数据进行调制来得到发送的信号。 Mifare1 卡采用 RF 场的负载调制进行响应。读写器与上位机的通信采用 RS- 232 方式, 单片机 STC89C52RC 与 PC 串 口 电 平 不 匹 配 , 使 用
MAX232 型电平转换器进行电平转换。
3.2 程序设计
        设计思想: 当有 Mifare1 射频卡进入距离射频天线 100mm 内, 读卡器就可以读到卡中的数据。系统单片机要将所读数据进行分析处理, 如果符合条件, 则读卡成功指示灯闪一下, 蜂鸣器鸣叫一声。并将卡片数据与当前时间一起存入单片机内的 EEPROM , 并在LED 显示器上显示卡数据。没有卡进入读卡器工作范围时, 在显示器上显示当前时间。若读卡出错, 显示出错标志。在与上位机通讯时, 将单片机内部 EEPROM存入的信息发往上位机。
       单片机程序包括以下几个部分: 读写器按键处理程序、读写卡程序、数据存储程序、与上位机的通讯程序、显示驱动程序、时基生成程序。以下重点介绍读写卡程序的设计。读写卡过程包括装载密码、询卡、防冲突、选卡、验证密码、读写卡和停卡。这一系列操作必须按固定的顺序进行。在没有射频卡进入射频天线有效范围时, 在低 5 位显示当前时钟; 当有射频卡进入到射频天线的有效范围, 读卡程序验证卡及密码成功后, 将卡号和读卡时间及相关数据作为一条记录存入 EEP-ROM 存储器中, 并在 LED 显示器高 5 位上显示卡号。( 1 ) 询卡过程: 当一张 Mifare 卡处在卡读写器的天线工作范围之内时, MCU 将通过 MF RC500 发送一个询卡请求, 询卡请求有两种, 一种是 request all, 这指令是非连续性的读卡指令, 只读一次; 另一种是 re-quest std, 这是连续性的读卡指令。当卡片收到该指令后, 卡片内的 ATR 将启动, 并将卡片的 Block 0 中的卡片类型 (TagType) 号共 2 个字节传送给读卡器 , 从而
建立卡片与读卡器的第一步通信联络, 完成询卡过程。
( 2 ) 防冲突: 如果有多张 Mifare 卡片处在卡片读写器的天线工作范围之内, MF RC500 能检测出来并通知到 MCU 。此时 MCU 通过防冲突算法来与每一张
卡进行通讯。由于每一张 Mifare 卡片都具有其唯一的序列号而决不会相同, 因此, MCU 根据卡片的序列号来保证一次只对一张卡进行操作。(根据 ISO14443 协议, M1 型卡传统的防冲突算法是动态二进制检索树算法。它首先利用 MANCHESTER 编码“没有变化”的状态来检测碰撞位, 然后把碰撞位设为二进制“ 1 ”, 用SELECT 命令发送碰撞前接收的部分卡片序列号和碰撞位, 如果卡片开头部分序列号与其相同, 则做出应答, 不相同则没有响应。以此来缩小卡片范围, 最终达到无碰撞)。
( 3 ) 选卡: 通过以上两步以后, MCU 选取一张卡的序列号进行通讯, 即选卡。
( 4 ) 验证密码: 选定要处理的卡片之后, MCU 确定要访问的扇区号, 并对该扇区密码进行密码校验,在三次相互认证之后就可以通过加密流进行通讯。
(在选择另一扇区时, 必须进行另一扇区密码校验。)
( 5 ) 读写卡: 读写操作是对卡的最后操作, 包括读( Read )、写 ( Write )、增 值 ( Increment )、减 值 ( Decre-ment )、存储( Restore )和传送( Transfer )等操作。
( 6 ) 停卡: 当一系列的操作完成后, MCU 发送一个停卡命令给卡片, 使其退出工作。
在非接触通讯中, 为了保证读写器和卡片之间数据传递完整、可靠, 采取以下措施: 一是防冲突算法 ,二是通过 16 位 CRC 纠错, 三是检查每字节的奇偶校
验位, 四是检查位数, 五是用编码方式来区分“ 1 ”、“ 0 ”或无信息 。为提高处理和响应速度, 程序设计采用单片机汇编语言和 C 语言混合编程。中断服务程序采用汇编语言编写, 其它程序采用 C 语言编写。
4 结束语
        本文设计了基于 MF RC500 的 Mifare1 射频卡嵌入式读写器。经实践验证 , 本系统能对范围内的多个卡准确无误地读写。在此读写器的基础上, 稍加修改就能开发成不同的射频识别应用系统, 对 RFID 的推广具有一定的实用价值。

评分

参与人数 2黑币 +54 收起 理由
NPC-1024 + 4 赞一个!
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:277954 发表于 2018-9-24 11:59 | 只看该作者
赞一个!!
回复

使用道具 举报

板凳
ID:629806 发表于 2020-3-24 08:46 | 只看该作者
很详细
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表