
1 Mifareone射频卡的结构和工作原理
1.1它是如何工作的
射频卡的电气部分由天线、高速(106KB波特率)射频接口、控制单元和8K位EEPROM组成。其工作原理如下:读卡器向射频卡发送一组固定频率的电磁波。卡内有一个LC串联谐振电路,其频率与读写器发出的频率相同。在电磁波的激励下,LC谐振电路产生Resonance,使电容内有电荷。在这个电容器的另一端,有一个单向传导电子泵,它将电容器中的电荷传送到另一个电容器进行存储。当累积电荷达到2V时,这个电容就可以作为电源,为其他电路提供工作电压,
1.2 结构和组成
每张卡有一个唯一的 32 位序列号,工作频率为 13.56MHz,存储容量为 1KB,分为 16 个扇区,每个扇区有一组密码,每个卡的存储区域扇区相互独立,每个区域可以不同用途(第0个区域一般不用),一张卡可以多用途。Mifare卡可重写10万次以上,其密码验证机制严格,可确保存储信息的安全可靠;同时,卡片具有防碰撞机制,可支持多张卡片同时操作。
Mifareone卡有16个扇区,每个扇区分为4个block(block0、block1、block2和block3),每个block为16字节基于mf rc500射频卡信息的读写实现,block为Access unit。除了第 0 扇区的块 0(即绝对地址 0 块)已固化,用于存放厂商代码且不可更改外,其他扇区的块0、块1、 块 2为数据块,可用于存储数据,块3为控制块,包括密码A(6字节)、访问控制(4字节)和密码B(6字节)基于mf rc500射频卡信息的读写实现,其结构如图1所示显示。
图1 Mifareone卡内部结构
Mifareone卡的每个扇区的密码和访问控制都是独立的,可以根据实际需要设置各自的密码和访问控制,访问控制决定了每个区块的读写权限和密码验证。16个扇区中每个块(包括数据块和控制块)的访问条件由密码和访问控制共同决定。
2 系统硬件设计
硬件主要包括MCU电路模块、基于RC500的基站模块、天线模块电路、通信接口模块、LED状态显示和蜂鸣器报警电路。系统原理图如图2所示。
2.1MCU部分
单片机采用CMOS 8位单片机AT89S52,具有低功耗、高性能和ISP(在系统可编程)功能。MCU单元的复位电路选用X5045芯片,内部带有SPI接口的FLASH可以存储读写模块的配置信息和模块ID。
图2 MF-RC500读写模块示意图
2.2 基站部分
系统基站单元采用PHILIPS公司的MF-RC500芯片。MF-RC500是实现与射频IC卡无线通信的核心部件,也是读写器读写Mifare卡的关键接口芯片。.MF-RC500芯片采用先进的调制解调技术,支持13.56MHz频段的所有无源非接触式通信方式和协议,支持ISO14443A中的所有层级。RC500芯片的发射器部分可以直接驱动100mm的天线工作距离,无需外加有源电路,接收器部分为ISO14443A兼容的响应信号提供了稳健可靠的解调/解码电路。RC500芯片的基带部分包括ISO14443A帧处理、CRC校验和快速CRYPTO1加密算法,
2.3 天线部分
在天线设计中,最重要的是计算天线线圈的电感值,从而确定天线旁路电容和电阻值。天线线圈的电感一般用经验公式估算。假设天线设计成常用的环形或矩形,那么
式中:I1为导体环一圈的长度;D1为导线的直径或PCB导体的宽度;K 为天线形状因子(环形天线 K=1.07,矩形天线 K=1.@)>47);N1 为匝数。
2.4 通讯部分
为了使所设计的射频卡读写模块能够方便的嵌入到各种应用系统(如门禁、公交收费、考勤)中,读写模块可以通过三种方式进行通信:RS232、TTL串口和自定义两线通信模式。通讯方式的选择可以通过模块中的跳线来实现。如图2所示,当跳线1连接时,可选择的通讯方式为TTL电平串口和两线制通讯方式。使用TTL电平串口模式时,读写模块的串口直接与外部应用系统的串口相连;而当采用两线通讯方式时,读写模块中单片机的串口作为公共I/O口,这是方便和应用。连接系统I/O口,实现两线通讯方式。这种通信方式主要用于外部应用系统的串口被占用时。连接跳线 2 时,选择 RS232 串行通信模式。此时,读写模块可以直接与PC进行通信。电路中MAX232芯片的作用是实现RS232电平与TTL电平的转换。
3 系统软件设计
系统软件主要分为卡操作模块和接口通讯模块两个模块。卡片操作模块主要包括卡片识别、卡片选择、卡片读写、密码修改、数值增减、卡片激活和卡片休眠等;接口通信模块主要完成接收外部命令和输出命令结果。通信采用双向握手通信协议,保证通信可靠有效。
3.1 卡操作模块软件设计
图3是基本卡片操作的流程图。
复位应答(Answertorequest):M1射频卡的通信协议和通信波特率是预先定义好的。当卡片进入读卡器的工作范围时,读卡器通过特定的协议与其通信,判断该卡是否为M1射频卡,即验证卡的卡类型。防冲突机制(AnticollisionLoop):当多张卡进入读卡器的操作范围时,防冲突机制会选择其中一张进行操作,未选择的将处于空闲模式,等待下一张卡选择,该过程将返回所选卡的序列号。选择标签(SelectTag):选择选中卡的序列号,同时返回卡的容量码。
3次相互确认(3PassAuthentication):读卡器选择要处理的卡后,确定要访问的扇区号,并对扇区密码进行密码验证。沟通。
为了实现基于RC500芯片的IC卡的基本操作,需要对RC500芯片内部的64字节寄存器进行复杂的配置,并对90个寄存器标志位进行分析判断。为了方便用户开发和应用IC卡产品,读写模块的设计为用户屏蔽了RC500复杂的编程和配置。用户的应用界面是三种简单的高级读/写命令。通过操作读写模块,很容易实现对卡片的操作。
读写操作命令的三种类型包括:模块操作命令、基本命令集和高级命令。模块操作命令集提供对模块本身的操作,如模块初始化、读取模块的设备号、读取模块控制软件的版本号、控制模块的指示灯和蜂鸣器的动作。基本命令集为Mifare卡提供最基本的低级读写和控制操作,如卡调用、读卡序列号、卡激活、卡认证、读/写卡数据块、添加电子钱包、减去电子钱包和卡片睡眠。
高级命令是基本命令的集成,是为了方便用户系统使用而专门提供的。使用高级命令可以大大提高用户系统的开发速度。这些命令包括读卡器类型、读卡器序列号、密码认证方式、加载密码A、加载密码B、修改卡密码、读/写数据块、读/写电子钱包内容和添加/减去电子钱包内容。以读卡为例说明所提供命令的基本操作格式,该命令用于读取具有一定序号的卡片中的数据块中的数据。命令格式如下:
3.2 通信接口和通信协议的软件设计
目前,可以实现各种嵌入式应用模块的接口技术有很多,如I2C总线、串行通信等。读写模块的设计不仅提供了基本的串口通讯方式,还包括了不占用应用系统串口资源的两线通讯方式。实际应用证明,这种自定义的两线制通信方式占用系统资源少,通信快速可靠,可应用于应用系统中串口已被占用的情况。
3.2.1线通讯方式
使用两线通信,用户可以使用应用系统中单片机的任意两条I/O线与读写模块进行通信,将两条通信线分别定义为时钟线SCK和数据线SDA。在通信过程中,用户设备为主。通信空闲时,主机将SCK和SDA置高电平;通信开始时,主机将SDA置低,先发送起始位,再发送8位数据,最后发送停止位,数据在SCK的SDA下降沿发送;读写模块在通信过程中一直查询SDA的状态,如果检测到低电平则开始接收数据。主机发送完毕后,将 SCK 和 SDA 拉高。发送起始位时,SCK 的低电平宽度为 55μs。发送其他位时,时钟低电平宽度为16μs,典型的高电平宽度为40μs。模块与应用系统通信的典型时序如图4所示,能量数说明见表1。
图4 模块通讯时序图
3.2.2 双向握手通信协议
应用系统与射频卡读写模块的通信可以采用标准的RS232或自定义的两线制通信方式。系统设计针对这两种通信方式设计了基于两次握手的通信协议,简单、可靠。假设A代表主控板或应用系统,B代表读写模块,通讯字符为16进制。图 5 显示了基于两次握手设计的通信协议流程。重点说明如下:(1)甲乙双方通过握手字符连接,发送命令和接收数据时设计了两次握手。第一次握手字符分别为23H和45H,即,甲方在发送命令序列前发送23H;乙方收到 23H 后,以 45H 回复甲方。甲方收到45H,认为第一次握手成功,然后向乙方发送命令序列;第二次握手字符分别为67H和89H,即乙方已经接收完A,在将结果数据发送给甲方之前,乙方先发送67H,甲方收到67H再发送89H给乙方,乙方收到89H并认为第二次握手成功,然后将数据序列发送给甲方。
(2)甲方发送的命令序列格式为
其中:命令块的长度等于命令块中的字节数;校验码
A 是命令代码、命令块长度和命令块中的所有字节
检查异或生成的代码。
(3)乙方发送的数据序列格式为
其中:数据块的长度等于数据块的字节数,校验码B是返回码、数据块的长度和数据中所有字节异或生成的校验码堵塞。
图5 基于双向握手的通信协议流程
4。结论
本文介绍了一种基于PHILIPS公司RC500芯片的通用射频卡读写模块。该模块的主要特点如下:(1)三种通讯方式,包括两线通讯方式和应用系统接口,可以方便的嵌入到应用系统中;(2)这模块为用户提供简单、高级的读写指令,大大简化了应用系统在射频卡上的操作;(3)应用系统与读写模块的通信是基于通信协议的在第二次握手上,保证了通信的可靠性。通用读写模块的设计完成后,已经在很多应用系统中成功使用,包括移动基站访问控制监控系统。该模块具有响应速度快、使用方便、读卡距离远、通信稳定可靠等显着特点。
射频卡相关文章:射频卡原理
请登录后发表评论
注册
社交帐号登录