您当前的位置:五五电子网电子知识通信技术射频技术-RFID非接触式CPU卡的空中传输协议的软硬件设计分析 正文
非接触式CPU卡的空中传输协议的软硬件设计分析

非接触式CPU卡的空中传输协议的软硬件设计分析

点击数:7581 次   录入时间:03-04 11:39:27   整理:http://www.55dianzi.com   射频技术-RFID

    普通的逻辑加密卡,如Mifare1卡(即M1卡),由非易失性存储器和硬件加密逻辑组成,通过校验密码的方式来保护卡内的数据,其具有一定的安全性,但这只是低层次的安全保护,无法防范恶意性的攻击,因此无法满足更高的安全性和更复杂的多应用的需求。而CPU卡内部具有微处理器芯片,且固化有COS操作系统,可执行严谨的加密运算,安全性极高,灵活性强,且存储容量大。来看一组金融领域的数据,截至2014年6月底,全国金融IC卡累计发行超过8.7亿张,其中上半年金融IC卡新增2.84亿张,占新增银行 卡总量的82%,商户POS和ATM实现全面受理,行业应用不断涌新。随着应用环境的日渐成熟,各商业银行将于年底前逐步关闭金融IC卡降级交易,并将在2015年后,发行纯芯片卡。可以看到,原本的磁条卡时代正在缓缓落幕,银行 卡“芯”时代已成大势所趋,与此同时,相应的终端机具需求量必将剧增,这给企业带来了巨大的商业契机。

    本文在研究了ISO/IEC14443标准以及相关的金融标准基础上,基于RC632射频收发芯片,对非接触式CPU卡和终端机具之间通信所采用的空中传输协议进行了设计与实现,并进行有关测试,给出测试结果。

    1 ISO14443协议简介

    ISO14443协议是13.56MHz下非接触式IC卡的国际标准协议,由以下4部分组成:(1)物理特性:规定了接近式IC卡(PICC)的物理特性;(2)射频功率和信号接口:规定了在接近式耦合设备(PCD)和接近式IC卡(PICC)之间提供功率和双向通信的场的性质与特征;(3)初始化和防冲突:描述了PICC进入PCD工作场的轮询,规定了在PCD和PICC之间通信的初始阶段所使用的字节格式、帧格式和帧时序,以及在冲突发生的情况下如何从多张卡片中选出一张(防冲突)的方法;(4)传输协议:规定了非接触式应用中具有特色的半双工传输协议。随着应用场景的不断多元化,尤其是在快速消费领域,由于卡片和终端机具的需求量与日俱增,ISO14443协议应用也越来越广泛,像国内很多行业标准,如中国金融集成电路(IC)卡规范等,都是在它的基础上修订的。

    2 系统硬件部分

    2.1 MCU控制电路

    本系统中MCU芯片我们选取STM32F103RBT6,它是基于Cortex-M3 ARM内核的高性能32位处理器,具有128KB Flash、20 KB SRAM,主频可达72 MHz,且具有功耗低、价格便宜、接口资源丰富等特点;与传统的8位单片机相比,32位的高性能ARM处理器拥有更高的通信效率、更强的控制功能,更加方便后期的系统扩展。

    2.2 射频收发电路

    射频收发电路是本系统的核心部分,由RC632应用电路和天线组成。RC632是NXP推出的一款多协议非接触式读写芯片,集成了在13.56MHz下所有类型的被动非接触式通信方式和协议,也就是说它支持ISO14443(包括Type A和Type B)和ISO15693(包括I·CODE1)两种国际标准。它的发送器电路设计成具有非常低的阻抗,只需要很少的用于匹配和滤波的无源器件就可以直接驱动天线,操作卡片的距离可达10cm,其引脚TX1和TX2上传递的信号是由包络信号调制的13.56MHz的载波信号,这两个信号可通过寄存器TxControl进行控制;它的接收器设计有一个正交调制电路,该电路从输入到RX引脚的13.56MHz的ASK调制信号中解析出副载波信号,该副载波信号经过放大滤波,然后输入到相关性电路,对相关性结果数字化后输入到数字电路。方便的并行接口可直接连接到任何8位微处理器,这给读写器及终端的设计带来了极大的灵活性;另外,RC632支持通过SPI方式连接到微处理器。

    本系统中我们采用SPI的方式将RC632连接到MCU,其原理图如图1所示。图中的MOSI_rf,MISO_rf,SCK_rf,NSS_rf四个脚需连接到MCU的SPI外设,C16f,C17f两端的GND_rf网络是需要绘制天线线圈(天线的设计不在本文范围内)的。硬件焊接调试完成后,其实物图如图2所示。

     

图1 射频收发电路

     

    图1 射频收发电路

    3 系统软件部分

    与M1卡一样,非接触式CPU卡(以后称PICC)符合ISO14443-1、-2、-3标准,不同的是它通过RATS命令可进入到CPU模式,以后都按照ISO14443-4的块传输协议与读写设备(以后称PCD)进行信息交互。PCD访问PICC的工作流程如图3所示,激活CPU卡的过程总共包括寻卡,防冲突,寻卡,RATS四步,其中RATS是在判断选卡命令的响应支持ISO14443-4标准的情况下发送的,以便进入CPU模式。

     

图3 读写设备访问卡片工作流程

     

    图3 读写设备访问卡片工作流程

    根据OSI参考模型分层原理设计的思想,对PCD和PICC之间的半双工块传输协议进行概况,可抽象出三层,如图4所示。物理层处在该层次结构的最底层,它利用空中射频信道为上层协议提供了一个传输数据的物理媒介,在这一层数据的单位是bit;数据链路层起着承上启下的作用,它负责在物理层提供的传输媒介上将应用层的数据加工后发送出去;应用层则是提供符合某行业标准的APDU命令。由于应用层和数据链路层联系很紧密,故本节将二者合并为协议层加以介绍。

     

图4 半双工传输协议软件设计的层次划分

     

    图4 半双工传输协议软件设计的层次划分

    3.1 物理层设计

    物理层的实现在双方通信过程中起着“桥梁”的作用,本系统中“担此重任”的角色就是射频收发芯片RC632。在程序初始化时,配置RC632的相关寄存器,使芯片工作在ISO14443 Type A模式;而针对不同的传输要求,需及时调整相关寄存器的值,使PCD和PICC之间的底层“对话”按照规定的比特流进行,比如通信采用短帧还是标准帧可通过调整BitFraming寄存器,有无奇偶校验或者CRC校验可通过调整ChannelRedundancy寄存器。RC632的状态由可执行特定命令集的内部状态机决定,这些命令通过将相应的命令码写入到Command寄存器来启动。本系统中主要用到了Transceive指令,其指令码是0x1E,该指令从FIFO缓冲区中取出数据并送到发送器发送出去,接收器在间隔约定时间后自动启动,所有从RF接口接收到的数据再通过FIFO缓冲区返回;而处理一个命令所需要的变量或者数据则要通过FIFOData寄存器写入到FIFO缓冲区,然后进行交换。概况起来,RC632的射频收发过程如下:在Idle命令有效时,将所有要发送到卡片的数据通过FIFOData寄存器写入到FIFO,之后将Transceive指令码写入到Command寄存器来启动收发过程,然后再通过FIFOData寄存器从FIFO中取出返回的数据。

    3.2 协议层设计

    要运行一个应用,还需要在终端上实现一个附加的应用协议层,这个协议层包括向卡片发送命令、卡片内处理命令和返回IC卡处理响应等步骤。应用层发出的命令报文和卡片返回到应用层的响应报文统称为应用协议数据单元(APDU);响应是和命令相对应的,通常被称为APDU命令-响应对;在一个APDU命令-响应对中,命令报文(C-APDU)或响应报文(R-APDU)都可能包含数据[4]。

    C-APDU由4字节长的必备头和变长的条件体构成,如图5所示。其中,CLA表示指令类型,INS表示指令码,P1表示指令参数1,P2表示指令参数2,Lc表示命令数据域中发送的数据字节数,Data表示命令发送的数据串,Le表示期望返回的数据字节数。当Le存在且值为0时,表示需要最大字节数(256字节);在命令报文需要时,Le可始终被设为‘00’。

    R-APDU由变长的条件体和两字节长的必备尾组成,如图6所示。其中,Data表示响应中接收的数据串,SW1、SW2表示卡片执行命令的返回代码。当SW1的高半字节为‘9’,且低半字节不为‘0’时,其含义依赖于相关应用;当SW1的高半字节为‘6’,且低半字节不为‘0’时,其含义与应用无关[5]。

     

图6 R-APDU 格式

     

    图6 R-APDU 格式

    PCD和PICC之间的半双工协议支持块格式传输,块格式由一个开始域(强制),一个信息域(可选),一个结束域(强制)组成,如图7所示。其中,方括号中的数据为可选数据。本系统开始域中只含有强制的PCB(协议控制字节),信息域中的数据是基于某行业标准的APDU命令,结束域则是CRC校验,该校验值可由射频芯片RC632自动产生。

     

图7 块格式

[1] [2]  下一页


本文关键字:暂无联系方式射频技术-RFID通信技术 - 射频技术-RFID