基于MF RC632射频识别读写器芯片的专用读卡器设计及实现
作者:于兴晗 李君
来源:电子技术应用
日期:2007-08-08 16:23:28
摘要:介绍了MF RC632射频识别读写器芯片在一种专用读卡器设备中的典型应用,并详细阐明各种相关原理和关键技术。该方案充分利用了MF RC632射频识别读写器芯片的功能和Mifare One卡上的资源,拓宽了Mifare One卡的使用范围。
利用射频识别技术(Radio Frequncy Identification)开发的非接触式IC识别器,与传统的接触式IC卡、磁卡相比较,在系统寿命、防监听、防解密等性能上具有很大的优势。本文介绍利用MCU P89LPC932、MF RC632、Mifare卡等构建的非接触式专用IC读写器,充分利用了MF RC632的射频识别读写器芯片的功能。
所使用的器件大部分都是PHILPS公司的器件,具有典型性和一定的通用性,因此稍加改动即可应用到其他系统中,而且在该读写器基础上能很容易地开发出适用于各种自动识别系统的非接触式IC识别器。
1 系统硬件结构及工作原理
1.1 系统结构及特点
系统主要由核心控制单元MCU P89LPC932、与Mi-fare One卡通讯的MF RC632、与PC机通讯的RS232、提供时间基准的实时时钟芯片PCF8563和存储系统设置数据的存储器AT45DB021组成。整个系统所用的器件都是比较常用的器件,具有典型性和通用性。此外,在系统方案设计中,将整个系统分为主站和基站,而主站和基站的硬件和软件均无区别只是设置不同。因此只要在设备安装后通过PC机就可设置其权限,易于安装、调试、维修和扩展。
1.2 系统硬件及工作原理
系统硬件框图如图1所示。主板上电后,读取存储器中的系统设置,然后根据其中的设置初始化整个系统,包括本设备的ID号、主站、从站、开机时间、关机时间、数据的存储方式等。本系统除可以作为一个通用的Mifare卡的读写器外,还可作为一种训练器材,作为一种专用的训练评估工具。例如,将该设备安装在跑道的周围,并将Mifare One卡安装在测试者的鞋上。因为每个训练者都有自己的ID号,当他从起跑线起跑时,安装在起跑线的专用读卡器就会将训练者的设备ID号和当时的时间写入测试者的Mifare One卡中,当经过下一个基站时读卡器会将测试者的设备ID和当时的时间写入测试者的Mifare One卡中,同时会将测试者的ID号、姓名等个人信息包括经过上个测试基站时间都读进设备中保存。由于Mifare One卡共有16个扇区,每个扇区又分为四块、每块又有16个字节,因此,除了保证系统使用的扇区空间外,用户可以使用的有48×16字节。而通过Mifare One卡存储的数据均不大,只占用一块存储区,换句话说,Mifare One卡的数据存储区可以存储48次,当超过48次时就从前面覆盖数据。所以,在Mifare One卡中存储的永远是最后经过最近48个基站的信息。在训练结束后,就可以通过主站将各个基站的数据收集起来以评估测试者的信息。而主站和基站之间的通讯方式也是多样的:当主站和基站的距离比较近时,可以采用RS232、RS485;为提高通信质量则可以采用工业总线的方式,如CAN总线、FC总线或One Wire总线等;当距离比较远时,可采用无线通讯的方式,如GSM等。此外,各个基站还可以通过打印机将数据输出。
2 关键器件和关键技术
2.1 读卡器核心CPU P89LPC932
P89LPC932是飞利浦公司生产的一款单片封装的微控制器,适合于要求高集成度、低成本的场合,可以满足多方面的性能要求。它采用了高性能的处理器结构,指令执行时间只需2~4个时钟周期,是标准80C51器件的六倍;集成了许多系统级的功能。其功能框图如图2所示。
2.2 Mifare MF RC632高集成度非接触通讯读卡IC
Mifare MF RC632是飞利浦公司推出的适用于工作频率为13.56MHz的非接触式智能卡和标签,并且支持这个频段范围内多种ISO非接触式标准,其中包括ISO1443和ISO15693。MF RC632通过改变包括公共交通、公路征税、存取控制计划和供应链管理等不同读取应用的射频信号振幅,使系统集成商能够方便灵活地开发出可互操作的RFID系统。
该新型读取IC应用了一种特别的调制解调概念,这种技术可以改变射频信号的振幅,能够识别基于RFID的各种智能卡、标识和标签,并支持ISO1443和ISO15693标准,其设计与飞利浦现有的读取IC管脚到管脚兼容,这些Ic包括:Mifare智能卡读取ICMF RC632、TYPE-B卡片读取IC MF RC531和I.CODE智能标记读取IC SL RC400。该IC卡并行接口可直接连接到任何8位微处理器,给读卡器/终端的设计提供了极大的灵活性。此外,它所提供的SPI总线对一些I/O资源有限的设计提供了有效的解决方式。
2.3 实时时钟芯片PCF8563
PCF8563是一款低功耗、可编程为时钟输出、中断输出和低电压检测功能的CMOS芯片,所有地址和数据都通过串行I2C总线传输,最高速率可达400kbps,内置的字地址寄存器在每次读写结束后自动加1。主要特点如下:
提供基于32.768Hz晶振的年、月、日、时、分、秒和世纪标记;提供从1V~5V的宽操作电压范围从;低保持电流,在25°C、3V供电的情况下只有0.25μA;400kHz的I2C总线作为外部接口;可编程作为外部设备的时钟源,时钟有:32.768kHz、1024Hz、32Hz和1Hz四种;有报警和定时器功能;低电压检测;内部提供晶振电容和上电复位电路;I2C总线;集电极开路输出。
3 设计方案实现
3.1 硬件部分
(1) 系统供电电路
由于本系统的最终设计目标是做出一台手持设备,所以在供电上选用电池供电。为减少整个电路板上的电源消耗,除了在器件选择上选用低功耗器件外,在电源设计上也使用了一些简单的电路来实现电源管理。如图3所示,整个供电电路分为三个部分,电池电压通过接插件BATTER输入,经过D3后将6V左右的电压降为5.3V。5.3V电压经过VT4后输出5V左右电压供给板上的5V电路,VT4由系统的控制核心CPU控制。5.3V电压经过电源模块后给供电电路。AS1117构成3.3V供电电路为电路板上的控制核心P89LPC932供电。3.3V电压经过VT2后输出3V左右的供电电压,为板上的其他3V左右的电路供电。除了系统的控制核心采用这种方式供电外,其他电路的供电完全由系统的控制核心P89LPC932通过软件来控制,大大减少了系统的功耗,提高了电源使用效率。
(2) 系统的控制核心
其电路如图4所示。
整个系统的控制核心使用PHILPS公司生产的高速51系列产品,利用其丰富的内部资源,不仅降低了设计难度,在PCB制板上也提高了系统的可靠性。
(3) 射频电路
其电路如图5所示。在本设计中,为提高整个系统的使用范围,在芯片选择上使用功能更加强大的MFRC632,这也是整个系统的核心部分。
(4) 系统时钟电路
系统时钟电路如图6所示。在本系统中,为节约系统的I/O资源,选用了I2C总线高性能的时钟芯片,同时利用其内部的电源检测电路对系统的供电电池进行监控。
(5) 天线设计
由于MF RC632的频率是13.56MHz,属于短波段,因此可以采用小环天线。小环天线有方型、圆形、椭圆型、三角型等,本系统采用方型天线。天线的最大几何尺寸与工作波长之间没有严格的界限,一般定义为:
L/λ≤1/2π (1)
上式中,L是天线的最大尺寸,λ是工作波长。对于13.6MHz的系统来说,天线的最大尺寸在50厘米左右。在天线设计中,品质因数Q是一个非常重要的参数,对于电感耦合式射频识别系统的PCD天线来说,较高的品质因数值会使天线线圈中的电流强度大一些,但由此可改善对PICC的功率传送。品质因数的计算公式为:
Q=(2πf0·Lcoil)/Rcoil (2)
式中。2πf0是工作频率,Lcoil是天线的电感量,Rcoil是天线的电阻值。通过品质因数可以很容易计算出天线的传输带宽:
B=f0/Q (3)
从式(3)中可以看出,天线的传输带宽与品质因数成反比关系。因此,过高的品质因数会导致传输带宽缩小,从而减弱PCD的调制边带,导致PCD无法与卡通信。一般系统的最佳品质因数为10~30,最大值不能超过60。
考虑上述因素和实现的方便,采用在PCB板的最外侧用方形导线缠绕形成天线。其电路原理图如图7所示,天线PCB电路如图8所示。
(6) 数据存储电路
数据存储电路如图9所示。在本系统中,为节约系统的硬件资源并增加系统的数据 存储能力,采用ATMEL公司生产的SPI总线接口的容量为264KB的Flash AT45DB021,用来存储系统设置和备份数据。
3.2 软件部分
3.2.1 对Mifare卡的操作流程
整个系统的工作由对Mifare卡操作和系统后台处理两大部分组成。由于篇幅有限,本文只对Mifare卡的操作流程进行简单介绍,其操作流程如下:
(1) 复位请求
当一张Mifare卡片处在卡片读写器天线的工作范围之内时,程序员控制读写器向卡片发出REQUEST all(或REQUEST std)命令,卡片的ATR将启动,将卡片Block 0中的卡片类型(TagType)号共2个字节传送给读写器,建立卡片与读写器的第一步通信联络。如果不进行复位请求操作,读写器对卡片的其他操作将不会进行。
(2) 反碰撞操作
如果有多张Mifare卡片处在卡片读写器天线的工作范围之内,PCD天线将与每一张卡片进行通信,取得每一张卡片的系列号。由于每一张Mifare卡片都具有惟一的序列号(决不会相同),因此PCD天线将根据卡片的序列号来保证一次只对一张卡操作。该操作使PCD天线得到PICC的返回值作为卡的序列号。
(3) 卡选择操作
完成上述二个步骤之后,PCD天线必须对卡片进行选择操作。执行操作后,返回卡上的SIZE字节。
(4) 认证操作
经过上述三个步骤,确认已经选择了一张卡片,PCD天线在对卡进行读写操作之前,还必须对卡片上已经设置的密码进行认证。如果匹配,才允许进行读写操作。
(5) 读写操作
该写操作是对卡的最后操作,包括读、写、增值、减值、存储和传送等操作。
3.2.2 系统软件的部分代码
根据上面的流程,采用Keil C语言进行编程,由于篇幅有限,本文只对读卡程序的头文件的部分代码进行简单的介绍,主要介绍在程序中所要使用到的部分功能函数:
大多数射频卡的操作流程与Mifare卡类似,所用到的操作函数也差不多,所以,只要修改本系统所用到函数的少量代码就可应用到其他读卡器设计中。
4 可靠性对策
由于本系统是一台标准的射频读卡器设备,所以对其电磁兼容性要特别加以控制。本系统所采用的方法是,在PCB制板上除了要考虑一些能引起电池辐射干扰的信号线的走线外,还要在电路板上铺铜以增加地线对信号的屏蔽能力。此外,在电路板的四周还要多打一些过孔,以增加上下两层底线的导通能力,降低两层之间的阻抗,增加系统的抗EMC能力,降低系统的EMI。
该读写器最突出的特点是高性能、高稳定性和强兼容性,典型的读写距离为11厘米,在有效读写区域内无死区,读写操作可靠。而在桌面工作环境中,卡片在有效感应区域内连续读写出错率低于0.01%,其兼容性表现在不仅能够读取标准的卡片,对于偏离标准很多的卡片也能够进行读取。同时,因本系统作为一种带有实时时钟的特殊专用读卡器,在对一些需要计时检测的领域有着广泛的用途。例如在赛鸽比赛中,只需在鸽笼的开口处装上此设备,在鸽子的身上装上Mifare卡,就可以在比赛当中迅速得到比赛成绩。该方案已在某公司的设备上获得成功,相信还可以在其他领域获得更广阔的发展。
所使用的器件大部分都是PHILPS公司的器件,具有典型性和一定的通用性,因此稍加改动即可应用到其他系统中,而且在该读写器基础上能很容易地开发出适用于各种自动识别系统的非接触式IC识别器。
1 系统硬件结构及工作原理
1.1 系统结构及特点
系统主要由核心控制单元MCU P89LPC932、与Mi-fare One卡通讯的MF RC632、与PC机通讯的RS232、提供时间基准的实时时钟芯片PCF8563和存储系统设置数据的存储器AT45DB021组成。整个系统所用的器件都是比较常用的器件,具有典型性和通用性。此外,在系统方案设计中,将整个系统分为主站和基站,而主站和基站的硬件和软件均无区别只是设置不同。因此只要在设备安装后通过PC机就可设置其权限,易于安装、调试、维修和扩展。
1.2 系统硬件及工作原理
系统硬件框图如图1所示。主板上电后,读取存储器中的系统设置,然后根据其中的设置初始化整个系统,包括本设备的ID号、主站、从站、开机时间、关机时间、数据的存储方式等。本系统除可以作为一个通用的Mifare卡的读写器外,还可作为一种训练器材,作为一种专用的训练评估工具。例如,将该设备安装在跑道的周围,并将Mifare One卡安装在测试者的鞋上。因为每个训练者都有自己的ID号,当他从起跑线起跑时,安装在起跑线的专用读卡器就会将训练者的设备ID号和当时的时间写入测试者的Mifare One卡中,当经过下一个基站时读卡器会将测试者的设备ID和当时的时间写入测试者的Mifare One卡中,同时会将测试者的ID号、姓名等个人信息包括经过上个测试基站时间都读进设备中保存。由于Mifare One卡共有16个扇区,每个扇区又分为四块、每块又有16个字节,因此,除了保证系统使用的扇区空间外,用户可以使用的有48×16字节。而通过Mifare One卡存储的数据均不大,只占用一块存储区,换句话说,Mifare One卡的数据存储区可以存储48次,当超过48次时就从前面覆盖数据。所以,在Mifare One卡中存储的永远是最后经过最近48个基站的信息。在训练结束后,就可以通过主站将各个基站的数据收集起来以评估测试者的信息。而主站和基站之间的通讯方式也是多样的:当主站和基站的距离比较近时,可以采用RS232、RS485;为提高通信质量则可以采用工业总线的方式,如CAN总线、FC总线或One Wire总线等;当距离比较远时,可采用无线通讯的方式,如GSM等。此外,各个基站还可以通过打印机将数据输出。
2 关键器件和关键技术
2.1 读卡器核心CPU P89LPC932
P89LPC932是飞利浦公司生产的一款单片封装的微控制器,适合于要求高集成度、低成本的场合,可以满足多方面的性能要求。它采用了高性能的处理器结构,指令执行时间只需2~4个时钟周期,是标准80C51器件的六倍;集成了许多系统级的功能。其功能框图如图2所示。
2.2 Mifare MF RC632高集成度非接触通讯读卡IC
Mifare MF RC632是飞利浦公司推出的适用于工作频率为13.56MHz的非接触式智能卡和标签,并且支持这个频段范围内多种ISO非接触式标准,其中包括ISO1443和ISO15693。MF RC632通过改变包括公共交通、公路征税、存取控制计划和供应链管理等不同读取应用的射频信号振幅,使系统集成商能够方便灵活地开发出可互操作的RFID系统。
该新型读取IC应用了一种特别的调制解调概念,这种技术可以改变射频信号的振幅,能够识别基于RFID的各种智能卡、标识和标签,并支持ISO1443和ISO15693标准,其设计与飞利浦现有的读取IC管脚到管脚兼容,这些Ic包括:Mifare智能卡读取ICMF RC632、TYPE-B卡片读取IC MF RC531和I.CODE智能标记读取IC SL RC400。该IC卡并行接口可直接连接到任何8位微处理器,给读卡器/终端的设计提供了极大的灵活性。此外,它所提供的SPI总线对一些I/O资源有限的设计提供了有效的解决方式。
2.3 实时时钟芯片PCF8563
PCF8563是一款低功耗、可编程为时钟输出、中断输出和低电压检测功能的CMOS芯片,所有地址和数据都通过串行I2C总线传输,最高速率可达400kbps,内置的字地址寄存器在每次读写结束后自动加1。主要特点如下:
提供基于32.768Hz晶振的年、月、日、时、分、秒和世纪标记;提供从1V~5V的宽操作电压范围从;低保持电流,在25°C、3V供电的情况下只有0.25μA;400kHz的I2C总线作为外部接口;可编程作为外部设备的时钟源,时钟有:32.768kHz、1024Hz、32Hz和1Hz四种;有报警和定时器功能;低电压检测;内部提供晶振电容和上电复位电路;I2C总线;集电极开路输出。
3 设计方案实现
3.1 硬件部分
(1) 系统供电电路
由于本系统的最终设计目标是做出一台手持设备,所以在供电上选用电池供电。为减少整个电路板上的电源消耗,除了在器件选择上选用低功耗器件外,在电源设计上也使用了一些简单的电路来实现电源管理。如图3所示,整个供电电路分为三个部分,电池电压通过接插件BATTER输入,经过D3后将6V左右的电压降为5.3V。5.3V电压经过VT4后输出5V左右电压供给板上的5V电路,VT4由系统的控制核心CPU控制。5.3V电压经过电源模块后给供电电路。AS1117构成3.3V供电电路为电路板上的控制核心P89LPC932供电。3.3V电压经过VT2后输出3V左右的供电电压,为板上的其他3V左右的电路供电。除了系统的控制核心采用这种方式供电外,其他电路的供电完全由系统的控制核心P89LPC932通过软件来控制,大大减少了系统的功耗,提高了电源使用效率。
(2) 系统的控制核心
其电路如图4所示。
整个系统的控制核心使用PHILPS公司生产的高速51系列产品,利用其丰富的内部资源,不仅降低了设计难度,在PCB制板上也提高了系统的可靠性。
(3) 射频电路
其电路如图5所示。在本设计中,为提高整个系统的使用范围,在芯片选择上使用功能更加强大的MFRC632,这也是整个系统的核心部分。
(4) 系统时钟电路
系统时钟电路如图6所示。在本系统中,为节约系统的I/O资源,选用了I2C总线高性能的时钟芯片,同时利用其内部的电源检测电路对系统的供电电池进行监控。
(5) 天线设计
由于MF RC632的频率是13.56MHz,属于短波段,因此可以采用小环天线。小环天线有方型、圆形、椭圆型、三角型等,本系统采用方型天线。天线的最大几何尺寸与工作波长之间没有严格的界限,一般定义为:
L/λ≤1/2π (1)
上式中,L是天线的最大尺寸,λ是工作波长。对于13.6MHz的系统来说,天线的最大尺寸在50厘米左右。在天线设计中,品质因数Q是一个非常重要的参数,对于电感耦合式射频识别系统的PCD天线来说,较高的品质因数值会使天线线圈中的电流强度大一些,但由此可改善对PICC的功率传送。品质因数的计算公式为:
Q=(2πf0·Lcoil)/Rcoil (2)
式中。2πf0是工作频率,Lcoil是天线的电感量,Rcoil是天线的电阻值。通过品质因数可以很容易计算出天线的传输带宽:
B=f0/Q (3)
从式(3)中可以看出,天线的传输带宽与品质因数成反比关系。因此,过高的品质因数会导致传输带宽缩小,从而减弱PCD的调制边带,导致PCD无法与卡通信。一般系统的最佳品质因数为10~30,最大值不能超过60。
考虑上述因素和实现的方便,采用在PCB板的最外侧用方形导线缠绕形成天线。其电路原理图如图7所示,天线PCB电路如图8所示。
(6) 数据存储电路
数据存储电路如图9所示。在本系统中,为节约系统的硬件资源并增加系统的数据 存储能力,采用ATMEL公司生产的SPI总线接口的容量为264KB的Flash AT45DB021,用来存储系统设置和备份数据。
3.2 软件部分
3.2.1 对Mifare卡的操作流程
整个系统的工作由对Mifare卡操作和系统后台处理两大部分组成。由于篇幅有限,本文只对Mifare卡的操作流程进行简单介绍,其操作流程如下:
(1) 复位请求
当一张Mifare卡片处在卡片读写器天线的工作范围之内时,程序员控制读写器向卡片发出REQUEST all(或REQUEST std)命令,卡片的ATR将启动,将卡片Block 0中的卡片类型(TagType)号共2个字节传送给读写器,建立卡片与读写器的第一步通信联络。如果不进行复位请求操作,读写器对卡片的其他操作将不会进行。
(2) 反碰撞操作
如果有多张Mifare卡片处在卡片读写器天线的工作范围之内,PCD天线将与每一张卡片进行通信,取得每一张卡片的系列号。由于每一张Mifare卡片都具有惟一的序列号(决不会相同),因此PCD天线将根据卡片的序列号来保证一次只对一张卡操作。该操作使PCD天线得到PICC的返回值作为卡的序列号。
(3) 卡选择操作
完成上述二个步骤之后,PCD天线必须对卡片进行选择操作。执行操作后,返回卡上的SIZE字节。
(4) 认证操作
经过上述三个步骤,确认已经选择了一张卡片,PCD天线在对卡进行读写操作之前,还必须对卡片上已经设置的密码进行认证。如果匹配,才允许进行读写操作。
(5) 读写操作
该写操作是对卡的最后操作,包括读、写、增值、减值、存储和传送等操作。
3.2.2 系统软件的部分代码
根据上面的流程,采用Keil C语言进行编程,由于篇幅有限,本文只对读卡程序的头文件的部分代码进行简单的介绍,主要介绍在程序中所要使用到的部分功能函数:
大多数射频卡的操作流程与Mifare卡类似,所用到的操作函数也差不多,所以,只要修改本系统所用到函数的少量代码就可应用到其他读卡器设计中。
4 可靠性对策
由于本系统是一台标准的射频读卡器设备,所以对其电磁兼容性要特别加以控制。本系统所采用的方法是,在PCB制板上除了要考虑一些能引起电池辐射干扰的信号线的走线外,还要在电路板上铺铜以增加地线对信号的屏蔽能力。此外,在电路板的四周还要多打一些过孔,以增加上下两层底线的导通能力,降低两层之间的阻抗,增加系统的抗EMC能力,降低系统的EMI。
该读写器最突出的特点是高性能、高稳定性和强兼容性,典型的读写距离为11厘米,在有效读写区域内无死区,读写操作可靠。而在桌面工作环境中,卡片在有效感应区域内连续读写出错率低于0.01%,其兼容性表现在不仅能够读取标准的卡片,对于偏离标准很多的卡片也能够进行读取。同时,因本系统作为一种带有实时时钟的特殊专用读卡器,在对一些需要计时检测的领域有着广泛的用途。例如在赛鸽比赛中,只需在鸽笼的开口处装上此设备,在鸽子的身上装上Mifare卡,就可以在比赛当中迅速得到比赛成绩。该方案已在某公司的设备上获得成功,相信还可以在其他领域获得更广阔的发展。