摘 要:提出一种可以排斥复制卡的125 kHz ID卡读卡器设计方案。以51单片机为控制核心,HTRC110作为射频接口芯片,配以适当的天线电路、串口通讯电路和声光指示电路组成读卡器硬件,软件通过控制HTRC110天线的开闭实现对射频场中的卡片复位,然后打开读卡通道限时接收,利用复制卡进入磁场后开始发送卡号信息的时间滞后于原版卡的特性,实现读卡器对复制卡的排斥抑制。实际测试效果良好,证明方案设计合理可行。
关键词:读卡器;排斥;复制ID卡;天线复位;限时读取
中图分类号:TP368 文献标识码:A 文章编号:2095-1302(2015)02-00-03
0 引 言
125 kHz ID卡结构简单,40位的卡片序列号包含在卡内一个64位的卡号信息中,与读卡器使用TTF(Tag Talk First)方式通讯,广泛应用于考勤、门禁、微金额支付等系统中。由于卡片向读写器传送数据时使用了非加密的明码方式,使得复制、伪造卡片十分容易且成本低廉。
根据常见复制卡的特点,本文设计了一种新型125 kHz防复制ID卡读卡器,可以对使用Temic、Hitags、EM系列等可读写卡复制的ID卡进行屏蔽排斥,从而有效保护用户系统的安全。
1 理论分析
原版的ID卡功能单一,出厂时已将64位的卡号信息固化在卡片的非易失性存储器内。卡片进入125 kHz的射频场后得电复位,立即主动将64位卡号信息持续循环向读卡器发送。原版卡的上电复位时间极短,我们以EM4100卡片为例[1],其说明书中虽然没有给出准确的卡片复位时间,但经大量实际测试表明该值小于1 ms。
用于复制ID卡的卡片一般是125 kHz的可读写识别卡,最常见的有Temic、Hitags、EM系列可读写卡片。相对于原版的ID卡,这些卡片的共同特点是,一方面可读写卡片比同类型只读卡片的电路结构复杂,相同情况下电路复位比只读卡需要更的时间;另一方面,这些可读写卡由于既可以工作在RTF(Reader Talk First)模式,又可以工作在TTF模式,通常还可以设定通讯的数据编码和速率,故卡片电路复位完成后还要读出配置信息,以便决定进入哪种工作模式,执行何种通讯数据编码和通讯速率。因此,从进入射频场,到开始向读写器发送数据,复制的ID卡所用的时间要远远大于原版的ID卡。
上述三种常用于复制的卡片,从其数据说明书中可以查得准确的卡片从进入磁场到开始以TTF模式发送数据的时间[2-4],与原版卡对比可以得到表1。
普通125 kHz ID卡工作时数据传输速率是2 Kb/s,传送1位的时间是512 μs,传送64位的卡号信息共需32.768 ms。根据表1中数据可以得出结论,若原版卡和复制卡同时进入射频场,复制卡开始主动发送数据的时间至少比原版卡滞后2ms,即滞后约4个数据位(512 μs×4≈2 ms)。根据这一差别,设计读卡器时如果在打开射频场后延时1 ms开始读取数据,则在之后的32.768 ms时间内可读到原版卡的全部64位卡号信息,而复制ID卡只能读取约60位。利用这一特性,就可以设计出屏蔽复制卡的ID卡读卡器。
2 硬件设计
从前述理论分析可看出,屏蔽复制卡的机制主要在于软件,硬件方面没特殊要求。如图1所示,整个系统以普通的51单片机STC89C52为核心,外围电路包括HTRC110接收模块、串行口通讯模块、声光指示模块及电源模块等。STC89C52控制HTRC110芯片实现卡片信息读取,读到的64位卡号信息经解码后得到40位有效卡号通过串口输出,并驱动声光电路动作。此外串口还可以实现单片机的ISP功能,电源电路实现对整个系统稳定可靠供电。
2.1 主控芯片电路
主控芯片完成系统各模块的软件初始化、读卡解码、串行通信及声光控制等功能,其中除读卡解码外其他任务都比较简单。读卡解码虽然工作量较大,但在普通ID卡2 Kb/s的通讯速率下,技术成熟、物美价廉的51系列单片机就可以满足设计要求。
图1 系统硬件框图
系统选用宏晶科技STC89C52RC单片机作为主控芯片[5],STC89C52RC的最高时钟频率可达80 MHz,内部自带8 KB FLASH程序存储器和512字节数据存储器,有3个定时器和1个串口,并可通过串口实现ISP程序下载与更新。
STC89C52RC外围配以简单的阻容复位电路,为获得较为准确的定时时间和串行通讯波特率,使用22.118 4 MHz晶振。
2.2 HTRC110模块电路
卡号信息接收模块选用125 kHz射频接口芯片HTRC110[6]。HTRC110支持所有工作频率为125 kHz,使用AM写数据、AM/PM读数据的射频卡片(标签),可以对数据实现调制与解调,根据系统或卡片(标签)的需要设置芯片增益、带宽等参数,并可通过软件打开或关闭天线。110芯片通过三线串行通讯与CPU连接。
HTRC110模块电路如图2所示。芯片时钟选用4 MHz晶振,SCLK、DOUT、DIN加上拉电阻后与微处理器的I/O口相连接,ANT插座用于外接天线。
图2 HTRC110模块电路
2.3 通讯及声光指示电路
通讯电路实现有效卡片序列号的输出,并实现ISP程序下载功能。系统中选用一片MAX232实现串口通讯,其电路采用经典的4电容接法。声光指示电路用于读卡信息指示,当读到有效卡号时,LED闪烁并伴蜂鸣器动作。
3 软件设计
防复制ID卡读卡器的软件主要由系统初始化程序、卡片信息接收、卡片信息解码、数据输出与状态指示等部分组成。系统软件总框图如图3所示,开机初始化完成后即进入无限循环读卡,每次先复位射频场中的卡片,接着在限定时间内持续接收64位卡号信息,如果接收成功则从接收的卡片信息中解码卡片序列号,并将卡片序列号从串口输出,同时驱动声光指示。
图3 软件总流程图 图4 HTRC110初始化配置流程图
3.1 HTRC110初始化配置程序
HTRC110初始化在开机后的系统初始化阶段进行,其流程图见图4。首先通过HTRC110的4个配置页设置芯片相关工作参数,包括:通过配置页0,设置通频带为160Hz~3kHz,设置放大器增益为500;通过向配置页1写入0打开天线;向配置页3写入0设置HTRC110的外部晶振为4 MHz。之后的AST设置和通用设置都是HTRC110厂家指定必须执行的序列[6]。经过上述步骤,HTRC110初始化设置完成,开始准备从天线射频场中接收卡片信息。
3.2 卡号信息接收程序
卡号信息接收程序用来接收64位卡号信息,其流程如图5所示。首先通过设置配置页1的TXDIS位关闭天线,射频场中的所有卡片因为失去能量来源而全部断电,5 ms后清除TXDIS位打开天线,射频场内的所有卡片得电复位,原版卡直接进入TTF模式循环发送64位卡号信息,复制卡读取配置页数据,根据配置参数开始进入TTF模式循环发送64位卡号信息。
HTRC110在打开天线后立即设置为数据接收模式,然后延时1 ms以等待原版卡复位,之后开始限时接收数据。接收64位卡号信息需要32.768 ms,为增加接收的可靠性,接收时间设置为接收65位数据的时间,即512 μs×65=33.28ms,在此时间内CPU循环查询HTRC110的DOUT引脚。64位ID卡的数据采用曼彻斯特编码,上升沿表示数据“1”,下降沿表示数据“0”,发送连续的“0”或“1”时,两个数据沿之间增加一个状态转换沿[7]。在DOUT端,捕捉到数据沿则立即将数据移位进入数据缓冲区,如果是状态转换沿则继续监测DOUT端的下一个电平跳变。如果在33.28 ms时间内接收到64个有效数据位则转去解码程序,否则继续进行下一次复位天线接收数据的循环。根据前述理论分析,只有原版卡可以在33.28 ms的时间内送出完整的64位卡号信息,复制卡无法全部送出,从而实现了对复制卡的屏蔽抑制。
图5 卡号信息接收程序流程图
3.3 卡片序列号解码程序
卡片序列号解码程序实现从接收的64位卡号信息中提取40位有效的卡片序列号并校验其正确性。卡片内卡号信息的结构如表2所示,其中9个“1”的头部用于识别卡序列号的开始,之后是50位的卡序列号及其校验位(卡序列号5字节共40位,每4位增加一个行偶校验位),最后是4位列偶检验及1位停止位“0”。
卡号解码程序的流程图如图6所示。通常的ID卡接收程序中一般先识别接收9个“1”的卡片信息头部,然后接收其余部分。这种方法的好处是解码简单,而且可以边接收边解码,缺点是由于要先识别卡号信息的头部,导致接收时间变长。本设计由于要利用复制卡发送卡号信息起始时间的滞后性实现对复制卡的抑制,允许接收的时间严格控制为33.28ms,故不能先识别头部,而是有数据就接收,先存储后解码。这样接收到的数据可能并不是以9个“1”开头,因此第一步先找出缓存中64位卡号数据的头部,方法是将64位卡号数据做大循环右移,每移1位立即检查开始的9位是不是9个“1”且第64位是不是结束位“0”,不是则继续移位直至找到头部。如果移位64次后都没有找到头部则说明接收的数据有误,返回接收程序继续接收。
图6 卡片序列号解码程序流程图
找到数据的头部后,从头部的下一位(第10位)开始到第59位,每5位正好对应半个字节卡序列号数据及1位偶校验位,因此可以每5位提取作为一个字节,50位共提取10个字节。第60位到64位是列校验位和停止位,此5位提取作为第11个字节。
数据提取完成后先对前10个字节作行偶校验,再将前10个字节与第11字节进行列偶校验,校验通过说明接收到正确的卡号,将前10个字节中除校验位之外的数据提取组合为5个字节,即为最后有效的16进制卡片序列号。
4 实验测试
使用EM4100、HITAGS32、EM4205、TEMIC5567四种典型卡片各200张进行测试,所有的EM4100原版卡片均可正常读取卡号,其他三种复制卡片全部被屏蔽,证明本文讨论的方法是正确可行的。
5 结 语
本文讨论了根据复制卡在进入磁场后发送卡片信息的时间滞后于原版卡的特性实现读卡器屏蔽复制卡的方法和主要技术。系统硬件结构简单,软件实现容易。随着技术的发展,复位时间更短的复制卡,本系统可能会发生误读,另外使用更快的CPU代替51单片机可以大大提高系统性能。
参考文献
[1] The Data Sheet of EM4100 Read Only Contactless Identification Device [R]. EM Microelectronic-Marin SA,2004.
[2] The Data Sheet of HITAG S HTS IC H32/ HTS IC H56/HTS IC H48 Transponder IC [R].NXP Semiconductors,2006.
[3] The Data Sheet of Multifunctional 330-bit Read/Write RF-Identification IC ATA5567 [R].Atmel Corporation,2008.
[4] The Data sheet of EM4205-EM4305 512 bit Read/Write Multi-purpose Contactless Identification Device [R].EM Microelectronic-Marin SA,2013.
[5] STC89C51RC/RD+系列单片机器件手册 [R].宏晶科技,2014.
[6] Application note of Read/write devices based on the HITAG read/write IC HTRC110 [R].NXP Semiconductors,2010.
[7] The Data Sheet of HTRC110 Hitag Reader Chip [R]. NXP Semiconductors,2010.
[8] 康文广,王辉映. 一种RFID的曼彻斯特解码技术[J]. 单片机与嵌入式系统应用,2010(12):20-22.