物联传媒 旗下网站
登录 注册
RFID世界网 >  技术文章  >  制造  >  正文

高频RFID读卡器软件设计

作者:沈忱,胡明
来源:RFID世界网
日期:2011-06-07 16:02:28
摘要:文中主要阐述了基于Philips 系统的RFID读卡器的设计,并着重于软件部分程序的设计。对初始化、发送请求、防冲突、选择卡、三重认证、读卡和写卡模块都给出了详细的程序流程图,并作了相应的说明。
关键词:高频读卡器RFID
    一、引言

    RFID(Radio Frequency Identification)即无线射频识别系统达,也称为无线IC 标签、电子标签、感应式电子芯片、非接触卡等,它是一种透过无线电波来到非接触的资料获取和存取的技术,即一种非接触式的自动识别技术,通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于各种恶劣环境。RFID 技术可识别高速运动物体并可同时识别多个标签,操作快捷方便。自2004 年以来,与RFID 技术相关的文章在各个媒体上不断涌现相关的报道让这个历史其实并不短的技术在短时间内成为国际追逐的焦点。从全球巨型商业帝国沃尔玛,到国际IT 巨头IBM、HP、微软等等,从美国国防部到中国国家标准委,全都在RFID魔棒的指挥下舞蹈起来。本文所论述的工作,主要是在基于Philips系统的RFID 读卡器的软件设计及其调试。具体来说,主要是在利用AT89S51 单片机控制Philips 的RFID 芯片,读取射频卡上的信息,并将其显示在数码管上。

    二、基本原理及相关理论

    1.RFID 标签的组成

    (1)读写器:也是由天线、信号收发报机与译码器组成。RFID 标签上的芯片被激活启动后,就进行需要的读出、写入数据操作,读写器可把通过天线得到的标签芯片中的数据,经过译码器进行译码,送往主计算机处理。
    (2)天线:标签和读写器收发报机之间的管道,通过天线来控制系统信号的获得与交换。天线的形状和大小有多种多样,例如可以装在门框上,接收从该门通过的人或物品的相关数据;还可安装在适当地点监控道路上的交通情况等。
    (3)标签:其核心部分是发射机应答器,能够接收并发送信号,一般被做成低功率的集成电路,与外部的电磁波或电磁感应相互作用,产生RFID 标签工作时所需的功率并进行数据传输。RFID 标签通常是由印刷层、芯片层与底层构成。芯片层在印刷层与底层之间,是标签的核心部分,芯片层不能承受印刷压力,因此通常的做法是先印好印刷层,做好底层,再与芯片层复合。

    2.RFID 读卡器工作原理

    RFID(射频识别)系统由两部分组成:读/写单元和电子收发器。读写器通过天线发出一定频率的射频信号,当射频卡进入发射天线工作区域时产生感应电流,射频卡获得能量被激活;射频卡将自身编码等信息通过卡内置发送天线发送出去。系统接收天线接收到从射频卡发送来的载波信号,经天线调节器传送到读写器,读写器对接收的信号进行解调和解码然后送到后台主系统进行相关处理;主系统根据逻辑运算判断该卡的合法性,针对不同的设定做出相应的处理和控制,发出指令信号控制执行机构动作。读写器的控制单元的功能包括:与应用系统软件进行通信,并执行应用系统软件发来的命令;控制与射频卡的通信过程(主—从原则);信号的编解码。对一些特殊的系统还有执行防冲突算法,对射频卡与读写器间要传送的数据进行加密和解密,以及进行射频卡和读写器间的身份验证等附加功能。射频识别系统的读写距离是一个很关键的参数。目前,长距离射频识别系统的价格还很贵,因此寻找提高其读写距离的方法很重要。影响射频卡读写距离的因素包括天线工作频率、读写器的射频输出功率、读写器的接收灵敏度、射频卡的功耗、天线及谐振电路的Q 值、天线方向、读写器和射频卡的耦合度,以及射频卡本身获得的能量及发送信息的能量等。大多数系统的读取距离和写入距离是不同的,写入距离大约是读取距离的40%~80%。系统工作原理如图1 所示。

    三、读卡器软件部分设计

    本次设计的目的是设计一款应用于13.56MHz 的射频读卡器,使其能非接触地读取IC 卡信息,使信息准确无误地显示在数码管上,并保证一定的读卡距离。

    编程平台:Keil uVision2;程序烧录软件:AtmelMicrocontroller ISP Software

    1.对IC卡操作的流程如图2 所示。

    (1)初始化:初始化就是对MF RC500 的32 个寄存器进行设置。MF RC500 在复位引脚RSTPD 脚由高变低的时候复位,延时的长度由系统晶振频率决定, 本系统的晶振频率是13.56MHz。初始化程序流程图如图3 所示。

    (2)发送请求:发送请求命令过程为ISO/IEC14443 TYPE A 通信协议中的REQA 命令。借助RC500 的TRANSCEIVE 命令将REQA 命令发送至IC 卡,并接收返回的数据。发送请求命令的作用就是搜寻有无IC 卡靠近,跟据返回得数据判断有无需要与之通信的IC 卡。

    请求模式有Request all 和Request std 两种。Request all 指令是非连续性的读卡指令,只读一次。但有个例外,当某一次Request all 指令读卡片失败时,例如,卡片没能通过密码认证或其它原因而出错时,Request all 指令将连续地读卡,直到读卡成功才进入非连续性的读卡模式。

{$page$}


    Request std 指令的使用和Request all 指令刚巧相反。Request std 指令是连续性的读卡指令。当某一张卡片在天线的有效的工作范围(距离)内,Request std 指令在成功地读取这一张卡片之后,进入对卡片的其它操作。如果其它操作完成之后,程序员又将程序进入Request std 指令操作,则Request std 指令将连续地再次进行读卡操作,而不管这些片卡是否被拿卡。只要有一张卡片进入天线的有效的工作范围内,Request std 指令将始终连续地再次进行读卡操作。对于Mifare One 卡,该函数反回值为0004H。发送请求程序流程图如图4 所示。

    (3)防冲突。防冲突原理:读卡器发送SELECT 命令至IC 卡,所有IC 卡返回其完整的UID(唯一标示)。如果有多于一张卡发回请求应答,则将产生冲突;此时读卡器收到的应答信息至少有一位既是0 又是1,即该位的前半部分和后半部分都有调制信号。此时,读卡器识别出第一个发生冲突的位置,并保留冲突位之前的UID,然后再由读卡器决定在冲突位添加1 个bit(0 或1),一般添加1,并将SEL 和有效位数据发送出去。只有当其UID 部分与读卡器发送的有效数据相同时,才发出UID 的其余位,这样就排除了冲突位为0 的IC 卡。其过程为ISO/IEC14443 TYPE A 协议中的ANTICOLLION 命令。MF RC500 将ANTICOLLION 命令发送给IC 卡后,将自动完成防冲突过程。此段程序执行完毕后,读卡器即可正确的接收到一张IC 卡的UID(唯一序列号)。防冲突程序流程图如图5 所示。

    (4)选择卡:选择卡的过程即为ISO/IEC14443 TYPE A 协议中的SELECT 命令。作用是选择一张卡。其程序流程图如图5 所示。 

    (5)三重认证。三重认证原理:三重认证就是读卡器对IC 卡的密码认证。认证过程原理示意图如图7 所示。

    认证步骤:
    ①由IC 卡向读卡器发送一个随机数据RB。
    ②读卡器收到RB 后,向IC 卡发送一个令牌数据TOKEN AB,其中包含了读卡器发出的一个随机数据RA。
    ③IC 卡收到TOKEN AB 后,对TOKEN AB 的加密部分进行解密,并校验第一次由步骤①中IC 卡发出的随机数RB 是否与步骤②中接收到的TOKEN AB 中的RB 相一致。
    ④如果步骤③中校验结果正确,则IC 卡向读卡器发送令牌TOKEN BA 给读卡器。
    ⑤读卡器收到令牌TOKEN BA 后,将对令牌TOKEN BA中的RB 进行解密;并校验由步骤②中读卡器发出的随机数RA是否与步骤④中接收到的TOKEN BA 中的RA 相一致。如果上述的每一个步骤都能正确通过验证。则整个认证过程将成功,读写器将能对刚通过认证的这一分区进行下一步的操作。反之,如果认证过程中的任何一个环节出错,则整个认证过程终止,认证过程必须重新开始。MF RC500 认证程序步骤是固定的,即采用LoadKeyE2或LoadKey 命令将密钥装入密钥缓冲区;采用Authent1 命令,结束时检测错误标志以获得该命令执行的状态,若所接收数据的最后一位为000B,表示由IC 卡读入的该字节是正确的;启动Authent2 命令,结束时检测错误标志和CryptolOn标志位,若CryptolOn 标志位为1,说明认证成功;若为0则认证失败。三重认证程序流程图8 所示。

    (6)读卡:在前面的工作完成之后,即可对IC 卡进行操作。一次读回一个块的16B 数据,只要不改变分区,则不必经过三重认证环节即可再读。读卡程序流程图如图9 所示。 

    (7)写卡:一次写入IC 卡一个块的16B 数据,只要不改变分区,则不必再经过三重认证环节即可再写。写卡程序流程图如图10 所示。

    四、结束语

    RFID 的应用范围非常的广泛,凡是我们日常生活中的食、衣、住、行、育、乐所有牵涉到的物品,皆能使用RFID。本文基于Philips 系统进行RFID 读卡器的设计,着重于整个软件设计流程。

    参考文献
    [1] 游战清,李苏剑.无线射频识别技术(RFID)理论与应用[J].北京:电子工业出版社,2004:101-103.
    [2] 曾隽芳.RFID 技术发展与应用现状分析及未来趋势展望[J].金卡工程,2007,11(1):55-59.
    [3] GINNY LU. 掀起的技术热潮.A&S:国际中文版,2007,(2):64-65.
    [4] 李素彩.RFID 技术在物流领域的应用——RFID 技术概述[J].物流技术与应用,2006,11(12):64-67.
    [5] 李成.RFID——实现生产过程自动化[J].汽车制造业,2007,(2):39-41.
    [6] 孙剑,陈琪明.RFID 中间件在世界及中国的发展现状[J].物流技术与应用,2007,12,(2):98-101.