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