关注华体会智能掌握最新行业动态与资讯
当前位置:首页 >  新闻中心 >  公司新闻

华体会,非接触式CPU卡的空中传输协议的软硬件设计

发布日期:2024-01-07

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

图2 什物图

3 系统软件部门

与M1卡一样,非接触式CPU卡(今后称PICC)合适ISO14443-1、-2、-3尺度,分歧的是它经由过程RATS号令可进入到CPU模式,今后都依照ISO14443-4的块传输和谈与读写装备(今后称PCD)进行消息交互。PCD拜候PICC的工作流程如图3所示,激活CPU卡的进程总共包罗寻卡,防冲突,寻卡,RATS四步,此中RATS是在判定选卡号令的响应撑持ISO14443-4尺度的环境下发送的,以便进入CPU模式。

图3 读写装备拜候卡片工作流程

按照OSI参考模子分层道理设想的思惟,对PCD和PICC之间的半双工块传输和谈进行概况,可笼统出三层,如图4所示。物理层处在该条理布局的最底层,它操纵空中射频信道为上层和谈供给了一个传输数据的物理前言,在这一层数据的单元是bit;数据链路层起着承先启后的感化,它担任在物理层供给的传输前言大将利用层的数据加工后发送出去;利用层则是供给合适某行业尺度的APDU号令。因为利用层和数据链路层联系很慎密,故本节将两者归并为和谈层加以引见。

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

R-APDU由变长的前提体和两字节长的必备尾构成,如图6所示。此中,Data暗示响应中领受的数据串,SW1、SW2暗示卡片履行号令的前往代码。当SW1的高半字节为‘9’,且低半字节不为‘0’时,其寄义依靠在相干利用;当SW1的高半字节为‘6’,且低半字节不为‘0’时,其寄义与利用无关[5]。

图6 R-APDU 格局

PCD和PICC之间的半双工和谈撑持块格局传输,块格局由一个最先域(强迫),一个消息域(可选),一个竣事域(强迫)构成,如图7所示。此中,方括号中的数据为可选数据。本系统最先域中只含有强迫的PCB(和谈节制字节),消息域中的数据是基在某行业尺度的APDU号令,竣事域则是CRC校验,该校验值可由射频芯片RC632主动发生。

图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中块编号法则

要害部门代码以下:

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所�����APP示;发送表2所示的取随机数指令,PICC前往表3所示的四字节随机数;发送表4所示的选择MF主文件号令,PICC前往表5所示的嵌套TLV格局的文件节制消息(FCI)。测试结果图如图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部门:非接触式IC卡通信规范[S]。

Copyright © 2019 华体会智能技术股份有限公司.粤ICP备16017609号

粤公网安备44030402003674号

友情链接: 友情链接 | 网站地图

微信关注 微信关注
微博
0755-83218588
TOP