资源描述
射频卡操作芯片MFRC522在电能量管理终端中的应用设计 陶维青,合肥工业大学电气与自动化工程学院副教授,硕士生导师,wqtao@
王 璟,合肥工业大学电气与自动化工程学院研究生,tonado.wang@
黄俊祥,合肥工业大学电气与自动化工程学院研究生,jxh_smile@
陶维青1,王璟1,黄俊祥1
1(合肥工业大学电气与自动化工程学院 安徽合肥 230009)
(E-mail: wqtao@, tonado.wang@, jxh_smile@)
摘 要:本文介绍了在现有电能量管理终端的硬件平台基础上,对射频卡操作芯片MFRC522进行二次开发的方法。文章首先介绍MFRC522的特性;接着对MFRC522与终端主控DSP的连接方式进行阐述;然后提出了射频天线设计的方法以及其中需要注意的问题;随后对MFRC522初始化的方法以及其中需要配置的寄存器进行了描述;最后阐述了射频卡操作指令以及MFRC522射频卡操作的实现方法并给出了软件流程。
关键词:MFRC522;射频卡;电能量管理终端
Application Design of RF Card Operation Chip MFRC522 in Energy Management Terminal Unit
Wei-qing Tao1,Jing Wang1,Jun-xiang Huang1
1(School of Electric Engineering and Automation,Hefei University Of Technology, Hefei Anhui, 230009)
(E-mail: wqtao@, tonado.wang@, jxh_smile@)
Abstract:In this paper, we present an application design of RF Card operation chip MFRC522 in Energy Management Terminal Unit(EMTU). First, introduces the characteristics of MFRC522 , describes MFRC522 and EMTU ‘s DSP connecting circuit diagram. Then describes the method of RF antenna design and some important things. Describes the method of MFRC522 initialization, and some registers need to configure. At last, describes the RF Card operation commands and the software flow diagram of MFRC522 achieves RF card operation.
Key words: MFRC522; RF Card ; Energy Management Terminal Unit
1引言
随着“城市一卡通”工程的实施和推广,射频卡凭借安全、可靠、便捷的特点在公共交通、城市支付方面充当着电子钱包的角色。随着智能电网技术的发展以及一卡通的普及,电能量管理终端也需要具有射频卡读写功能。MFRC522是Philips公司继MFRC500、MFRC531及CLRC632等一系列典型产品后推出的一款针对智能仪表领域的符合ISO1443A协议的射频卡操作芯片,采用统一的3.3V供电, 内置13.56MHz无源天线驱动,且具有多种串行接口(I2C、SPI、UART)。相比以前的产品,MFRC522具有低电压、低功耗、低成本、体积小、与主控器件通讯方便的特点。
本次设计的硬件平台采用安徽科大鲁能科技有限公司的电能量管理终端,终端具有多种扩展接口,扩展板与终端扩展接口接驳后即可进行功能性扩展。设计时将MFRC522以及天线等外部电路以扩展板的形式进行实现,再配合软件完成了终端的射频卡操作功能。
2 MFRC522扩展板的硬件设计
终端的主控DSP通过对MFRC522寄存器操作来控制芯片,芯片收到DSP发来的命令后,通过天线按照ISO1443A协议格式向附近发出13.56 MHz频率的调制信号与卡片通讯。
2.1 MFRC522与终端主控DSP的连接电路
终端扩展口为扩展板提供3.3V电源以及由主控DSP引出的GPIO口,所以设计时MFRC522使用I2C总线与DSP的GPIO模拟的I2C总线相连。硬件电路图如下所示:
图 1 DSP与MFRC522的连接电路图
为使MFRC522进入I2C工作模式,I2C引脚应该拉高电平。EA引脚和D1~D6引脚共同确定MFRC522作为I2C从设备的7位地址。当EA=1即高电平时,MFRC522地址的其中6位数据由D1~D6的电平高低来确定,剩下一位为0,在这种情况下,需要注意D1~D6位的值不要与I2C协议中规定的一些特殊地址相同,以免发生冲突;当EA=0即低电平时,则MFRC522的地址高四位为0101,其余低三位由D1~D3的电平高低来确定,本次设计使EA=0,所以芯片地址7位地址为0101 000*,*为I2C总线读写控制位,1为读0为写。
DSP的GPIOB0、B1分别模拟I2C的数据线SDA和时钟线SCL,GPIOB3用来接收MFRC522的中断处理请求IRQ;DSP通过GPIOB4将复位信号发送至MFRC522的NRSTPD引脚,需要强调的是,复位操作不仅需要向NRSTPD输入一个由低到高的电平跳变,还需要向其命令寄存器CommandReg写入软件复位命令指令0X0F才能完成整个复位过程。
2.2 MFRC522天线的设计
在天线设计中须注意以下两点:1、保证产生一个尽可能强的电磁场,以使卡片能够获得足够的能量来给自己供电;2、需要考虑调谐电路的带通特性,天线的输出能量必须保证足够的通带范围来传送调制后的信号。
天线是一个特定谐振频率的LC电路,其输入阻抗是输入端信号电压与信号电流之比,输入阻抗具有电感分量和电抗分量,电抗分量的存在会减少天线从馈线对信号功率的提取,因此在设计中应当尽可能使电抗分量为零,让天线表现出纯电阻特性。谐振频率计算公式为:
(1)
式中,L为天线等效电感,C为天线等效电容,在本设计中,天线工作频率f为13.56 MHz,考虑到如果天线的等效电感L太高,则等效电容C的值就必须很小,而电感一旦超出5 uH,电容匹配问题就更困难。为解决以上问题,使用MFRC522的两个TX引脚,并联两个天线,从而使得感抗减半。环状天线电感经验计算公式为:
(2)
其中:I1为环形天线一圈的周长;D1为导线直径或PCB板上天线导线的宽度;
K为天线形状系数(圆形天线为1.07,矩形天线为1.47);N1为天线的圈数;p为与线圈结构相关的系数,印刷电路板线圈取1.8。
关于天线的重要参数——品质因数Q,计算公式如下:
(3)
Q值用来评价输出效率,Q值越高,其能量输出效率越高,但当Q值过高时,会导致带通变窄,从而影响调制信号的发送。因此我们采用10-30的低Q值设计,若经式(3)计算的Q值大于30 ,可以在天线的两边分别串联电阻,增加天线阻抗,以降低Q值。
MFRC522提供无源天线接口,其引脚为:TX1、TX2、RX、VMID。其中TX1、TX2为天线1输出、天线2输出,RX为天线接收,VMID为接收的偏置电压。为了使感抗减半,容易匹配电容,设计使用双天线并联发射电路,电路如下:
图2 MFRC522的天线设计电路图
射频发射部分:
TX1、TX2差分信号通过电感L200、L201,电容C212、C213的谐振把TX方波信号从低电压升高到将近50V的正弦波,C209、C211为隔直电容,C214与天线实现并联谐振,使天线获得最大的电流,提供给卡最大的能量。天线中间点接地,有利于提高抗干扰性能。
射频接收部分:
接收信号通过C208、R217进入到RX脚上,VDIM为接收的偏置电压,外部的C207滤波提高稳定性,通过R210对RX进行偏置,让RX脚电平处于电源的中间点,提高接收灵敏度。
2.3硬件调试中遇到的问题及解决方法
在设计的一开始,MFRC522上电复位后,与DSP通讯正常,通过软件可以读写MFRC522内部寄存器,但是无法进行射频卡读写操作。笔者一开始认为是内部寄存器配置不正确,耽误了近十天的时间在检查寄存器配置上,后来使用示波器对天线发射信号进行测量,发现天线部分工作异常,所以在开发中天线的设计还是比较重要的,对一些心得总结如下:
1、天线的面积一般认为大一些好,其绕线的圈数一般为5到8圈,若天线的面积做不大,可以适当提高圈数,一般将电感量控制在1~5uH即可。
2、匹配的调节,一般L200、L201采用1uH电感,最好采用绕线电感。C209、C211值不变,调整C214的天线谐振电容或者调整C212和C213的值,使R110、R112天线两端的电压达到50V左右,一般电压高一些,读卡距离会远一些。
3、调节R110、R112的值,让天线的品质因数Q为合适值。从能量来说,天线的电压越高,读卡器对卡提供更大的能量,读卡距离会更远,但是如果电压过高,会导致卡反射的信号被天线屏蔽,反而会降低读卡距离,所以在调节的过程中需要找到一个最佳Q值。
3 MFRC522的软件操作流程
3.1 MFRC522的初始化
MFRC522功能强大,在芯片复位时,各种寄存器设置将恢复默认,为了使其能够读写ISO14443A射频卡,需要某些寄存器重新配置,具体需要重新配置的寄存器如下:
表1 需要重新配置的寄存器列表
寄存器名称
地址
作用
CommandReg
0x01
控制芯片的起停及其他命令的执行
TxASKReg
0x15
设置芯片的发送调制器的调制方式
TxModeReg
0x12
设置数据发送速率和编码方式
RxModeReg
0x13
设置数据接收速率和编码方式
DemodReg
0x19
设置解调器参数
GsNReg
0x27
设置天线引脚TX1、TX2的电导
TxConrolReg
0x14
设置天线引脚TX1、TX2的开启与否
ConrolReg
0x0c
对多方面进行设置,是综合寄存器
TxSelReg
0x16
设置内部发送器的工作方式
RxSelReg
0x17
设置内部接收器的工作方式
MFRC522初始化进程中,寄存器操作顺序如下:
1、CommandReg,复位模块,需要注意的是,复位操作不仅需要向复位引脚NRSTPD输入一个由低到高的电平跳变,还需要向其命令寄存器CommandReg写入软件复位命令指令0x0F才能完成整个复位过程。
2、TxASKReg,设置调试深度为100%的ASK调制,遵循ISO14443A协议要求。
3、TxModeReg,开启CRC校验功能,设置传输速率为106kbit/s与射频卡速率相匹配。4、RxModeReg,开启CRC校验功能,设置传输速率为106kbit/s,设置接收器工作模
式为收到数据后停止工作。
5、DemodReg,芯片接收器有I、Q两个频道,设置为Q频道接收。
6、GsNReg,设置天线引脚TX1、TX2的电导。
7、TxConrolReg,设置芯片为双天线工作模式。
8、ConrolReg,使能双天线,使双天线工作,发送信号,随后需要延时5ms等待天线信号稳定。
9、TxSelReg,设置内部发送器使用内部编码器,Miller Pulse编码,其它默认设置。
10、RxSelReg,设置使用内部解码器,其它默认设置。
3.2 MFRC522射频卡操作的实现
射频卡的基本操作包括读、写、增减值, 需要使用不同的指令进行实现,指令分为Command指令和卡指令。Command指令是面向MFRC522的,写入CommandReg的低四位,由MFRC522进行识别和响应,具体Command指令及其功能列表如下:
表2 Command指令及其功能列表
指令名称
指令代码
指令功能
Idle
0x00
空闲,取消当前操作
CalcCRC
0x03
开启CRC校验
Transmit
0x04
从FIFO中发送数据
NoCmd Change
0x07
无指令变化
Receive
0x08
开始接收数据
Transceive
0x0B
将FIFO中的数据通过天线发送,发送完毕后接收数据
MFAuthent
0x0E
进行Mifare射频卡密码验证
Soft Reset
0x0F
配合NRSTPD完成MFRC522的复位
在一般情况的操作中,并不是用到所有指令,常用的几个指令有:Idle,使读卡器进入空闲模式;CalcCRC,用于CRC校验;Transceive,该指令最常用,用于数据的收发; MFAuthent,用于射频卡中的密码验证。
卡指令在MFRC522内相当于普通数据,由天线发射出后,它的识别过程在射频卡内进行,卡指令及其功能列表如下:
表3 卡指令及其功能列表
指令名称
指令代码
指令功能
Request Std
0x26
请求天线范围内非休眠状态的卡
Request All
0x52
请求天线范围内所有卡
AntiCollision
0x93
防碰撞,在多张卡在天线范围内的情况下,选取一张卡
Select Tag
0x93
选卡,将防碰撞返回的卡号选中,对该卡进行操作
Authentication_A
0x60
验证卡内某扇区密码A
Authentication_B
0x61
验证卡内某扇区密码B
Read
0x30
读卡
Write
0xA0
写卡,16字节操作,即对射频卡整块操作
Increment
0xC1
增值
Decrement
0xC0
减值
Restore
0xC2
复制,将卡内某一块数据整体复制到指定块
Transfer
0xB0
将buffer数据传送至指定块,增、减值需要该指令完成
HALT
0x50
使卡进入休眠状态,结束MFRC522与卡的通信
需要说明的是,射频卡内部每个扇区都有独立的A、B两组密码,根据射频卡内该扇区的AccessBit设置决定如何访问,可以是仅密码A有效、仅密码B有效和A、B同时有效。当某一扇区密码验证成功后即可访问该扇区的所有数据块。
读卡器与射频卡的典型通讯过程如下:将待发送数据(包括卡指令)按一定格式写入MFRC522的FIFOData寄存器后,再写Command指令到CommandReg开始通信。卡若收到数据先读取数据中的卡指令,再将余下数据根据卡指令进行操作,并将结果返回MFRC522 的FIFOData寄存器。
卡内部数据操作由卡内芯片自动进行,只要将Command指令写入CommandReg中,使用定时器延时后读取FIFOData寄存器中的返回值来确定射频卡是否完成操作。射频卡的操作流程包括:请求、防碰撞、选卡、密码验证、具体操作响应和HALT休眠,卡操作完毕后,使卡进入HALT休眠状态,此时只有Request All指令才能请求该卡。软件设计中使用了重试计数方式,当操作失败时,重试计数N加1,最多可以重试5次,超过5次后自动退出射频卡操作并将重试计数N清零,流程如图3所示:
图3 射频卡操作流程图
在射频卡密码验证成功后的数据操作中,增、减值过程比较复杂,其过程如下:
1、发送:增/减值指令(0xC1/0xC0)、目标块号、CRC校验(2字节)共4字节数据,若返回1010,则表示本步骤操作成功,可以进入下一步骤。
2、发送:待增/减的具体值(4字节)、CRC校验(2字节)共6字节数据,若返回1010,则表示本步骤操作成功,可以进入下一步骤。
3、发送:数据传送指令0xB0、目标块号、CRC校验(2字节)共4字节数据,成功则返回1010, 表明整个增/减值操作成功。
4结语
本文介绍了射频卡操作芯片MFRC522在电能量管理终端中的应用设计方法,对硬件、软件设计方法均进行了详细的阐述:如MFRC522与终端主控DSP的连接方式、天线的设计、MFRC522的初始化、MFRC522对射频卡的操作流程。并且具体阐述了设计中遇到的困难以及解决方法,对MFRC522使用中需要注意的问题也进行了必要的强调。本次设计在现有电能量管理终端的硬件平台上进行了功能性扩展及二次开发,使终端具有射频卡读写、数据备份、充值扣款的功能,实现了对产品的功能性升级,满足了市场的需求。
参考文献
[1] NXP Inc.MFRC522 Contactless Reader IC product data sheet (Rev.3.2) [EB/OL]. 2007. . [2] Nummela, J.; Ukkonen, L.; Sydanheimo, L.; Kivikoski, M..13.56 MHz RFID Antenna for Cell Phone Integrated Reader[J], Antennas and Propagation International Symposium 2007 IEEE, June 2007 Pages:1088-1091.
[3] NXP Inc.Directly Matched Antenna Design (Rev.2.05) [EB/OL].2006. .
[4] NXP Inc.Mifare ISO/IEC 14443 PICC Selection (Rev.1.0)[EB/OL].2006.http:// .
[5] 陈宝平,王月波,马伯元.基于MFRC522的Mifare射频卡读写模块开发 [J].微型计算机.2007,(23):230-231
展开阅读全文