您的位置 首页 动态

非触摸式CPU卡的空中传输协议的软硬件规划

普通的逻辑加密卡,如Mifare1卡(即M1卡),由非易失性存储器和硬件加密逻辑组成,通过校验密码的方式来保护卡内的数据,其具有一定的安全性,但这只是低层次的安全保护,无法防范恶意性的攻击,因此无法满

一般的逻辑加密卡,如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 射频收发电路

图2 实物图

图2 实物图

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’。

图5 C-APDU 格局

图5 C-APDU 格局

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 块格局

图7 块格局

协议操控字节PCB用于传送操控数据传输所需求的信息,它的规划完结在本程序中起着至关重要的效果。依据PCB编码的不同,协议界说了块的三种根本类型:用于为运用层的运用传送信息的信息块(I-块);用于传送承认或不承认的接纳预备块(R-块);用于在 PCD 和 PICC 间交流操控信息的办理块(S-块)。PCB的编码依赖于它的类型,详细可参看协议ISO14443-4。需求胪陈的是这样一个要害点:I-块和R-块的 PCB中最低位表明块号,它遵从如图8所示的特定的编码规矩。详细描绘如下:

(1) PCD规矩:关于当时被激活的PICC,PCD块编号应初始化为0;当接纳到一个块编号与当时块编号持平的正确的I块或正确的R-块(ACK)时,PCD在发送恣意一个块之前,应回转当时的PICC块编号。

(2) PICC规矩:在激活时,PICC块编号应初始化为1;当接纳到一个I-块,PICC应在接纳I-块之后当即回转它的块编号;当接纳到一个块编号不等于现在的PICC的块编号的R-块(ACK)时,PICC应在接纳R-块(ACK)之后当即回转它的块编号。

图8 PCB中块编号规矩

图8 PCB中块编号规矩

要害部分代码如下:

void APDU_Handle(u8 *APDU_Data)

{

if((APDU_Data[0]PCB_BlkNo_Mask)==Blk_Info.PCB_BlkNo)

{Blk_Info.PCB_BlkNo ^= PCB_BlkNo_Mask;} //回转块号

else { return; } //块号不对!

switch(APDU_Data[0]PCB_Type_Mask)

{

case 0x00: //收到I块

{

if(!(APDU_Data[0]I_PCB_Link_Mask))

{ }//PICC发送的最终一块数据,后续无链接

else

{ }//PICC分段发送呼应数据,后续有链接。PCD需求发送R-块承认

break;

}

case 0x80: //收到R块

{

//阐明PCD分段发送恳求数据,需经过链接位。

break;

}

case 0xC0: //收到S块

{

if((APDU_Data[0]0x30)==0x30) //PICC恳求等候时刻扩展

{

//今后的等候超时时刻(Timeout)需求随之改动!

}

break;

}

default:

{ break; }

}

}

4 测验

咱们选取复旦微电子的非触摸式CPU卡做测验。点击“寻觅卡片”,顺次履行图3中的寻卡,防抵触,选卡等三个过程,取得卡片序列号和卡片类型;点击“RATS”,发送挑选应对恳求来激活CPU形式,PICC回来ATS呼应 “107880B0022090000000000026BAB4A2”,详细意义如表1所示;发送表2所示的取随机数指令,PICC回来表3所示的四字节随机数;发送表4所示的挑选MF主文件指令,PICC回来表5所示的嵌套TLV格局的文件操控信息(FCI)。测验效果图如图9所示。

图9 上位机测验效果图

图9 上位机测验效果图

图9 上位机测验效果图

结语

本文硬件电路选用ARM内核的32位微处理器芯片STM32F103RBT6和NXP公司的RC632来完结,软件开发则从物理层和协议层两个层面临PCD 和PICC之间的无线射频通讯进行规划完结。经实践测验证明,该读写设备作业安稳,抗干扰能力强,读卡精确且操作间隔大于5cm。由此可见,对空中传输协议进行了较好的完结。别的,还能够进行扩展改善,如添加GPRS模块再结合相关的非触摸式IC卡付出标准,便可完结便利快捷的移动付出。

参阅文献

[1] ISO/IEC14443-3. Identification cards — Contactless integrated circuit cards — Proximity cards — Part 3: Initialization and anticollision[S].

[2] 潘新娜,鲍可进,唐宏斌. 依据ARM的双界面IC卡读写器的规划与完结[J]. 计算机工程与科学,2014,36(5):991—996.

[3] NXP Semiconductors. CL RC632 Multiple protocol contactless reader IC Product data sheet[R]. Rev. 3.5—10 November 2009.

[4] JR/T 0025.3—2013. 中国金融集成电路(IC)卡标准 第3部分:与运用无关的IC卡与终端接口标准[S].

[5] JR/T 0025.8—2013. 中国金融集成电路(IC)卡标准 第8部分:与运用无关的非触摸式标准[S].

[6] ISO/IEC14443-4. Identification cards — Contactless integrated circuit cards — Proximity cards — Part 4: Transmission protocol[S].

[7] JR/T 0025.11—2013. 中国金融%&&&&&%(IC)卡标准 第11部分:非触摸式%&&&&&%卡通讯标准[S].

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/dongtai/296441.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部