ISO/IEC 14443、射频、PICC

 

目录

一、非接触IC卡简介

二、ISO/IEC14443简介

2.1调制解调与编码解码技术

2.2 防冲突机制

2.2.1 什么是防冲突?为什么要防冲突?

2.2.2 怎么防冲突?

三、TYPE A和TYPE B的基本通信命令

3.1 Type A类型卡通信

3.2 Type B类型卡通信

四、通信协议(RTF、TTF)

五、参考文献


一、非接触IC卡简介

          非接触IC卡又称射频卡,是射频识别技术和IC卡技术有机结合的产物。它解决了无源(卡中无电源)和免接触这一难题,具有更加方便、快捷的特点,广泛用于电子支付、通道控制、公交收费、停车收费、食堂售饭、考勤和门禁等多种场合。
          非接触IC卡与条码卡、磁卡、接触式IC卡比较具有高安全性、高可靠性、使用方便快捷。这主要是由其技术特点决定,在近距耦合应用中主要遵循的标准是ISO/IEC14443。

二、ISO/IEC14443简介

         ISO/IEC14443规定了邻近卡(PICC)的物理特性;需要供给能量的场的性质与特征,以及邻近耦合设备(PCDs)和邻近卡(PICCs)之间的双向通信;卡(PICCs)进入邻近耦合设备(PCDs)时的轮寻,通信初始化阶段的字符格式,帧结构,时序信息;非接触的半双功的块传输协议并定义了激活和停止协议的步骤。传输协议同时适用于TYPEA和TYPEB。
         TYPEA和TYPEB型卡片主要的区别在于载波调制深度及二进制数的编码方式和防冲突机制。

2.1调制解调与编码解码技术

         根据信号发送和接收方式的不同,ISO/IEC14443-3定义了TYPEA、TYPEB两种卡型。它们的不同主要在于载波的调制深度及二进制数的编码方式。
         从PCD向PICC传送信号时,二者是通过13.56Mhz的射频载波传送信号。从PICC向PCD传送信号时,二者均通过调制载波传送信号,副载波频率皆为847KHz。
         TypeA型卡在读写机上向卡传送信号时,是通过13.65MHz的射频载波传送信号。其采用方案为同步、改进的Miller编码方式,通过100%ASK传送;当卡向读写机具传送信号时,通过调制载波传送信号。使用847kHz的副载波传送Manchester编码。简单说,当表示信息“1”时,信号会有0.3微妙的间隙,当表示信息“0”时,信号可能有间隙也可能没有,与前后的信息有关。这种方式的优点是信息区别明显,受干扰的机会少,反应速度快,不容易误操作;缺点是在需要持续不断的提高能量到非接触卡时,能量有可能会出现波动。
         TypeB型卡在读写机具向卡传送信号时,也是通过13.65MHz的射频载波信号,但采用的是异步、NRZ编码方式,通过用10%ASK传送的方案;在卡向读写机具传送信号时,则是采用的BPSK编码进行调制。即信息“1”和信息“0”的区别在于信息“1”的信号幅度大,即信号强,信息“0”的信号幅度小,即信号弱。这种方式的优点是持续不断的信号传递,不会出现能量波动的情况;
        根据二者的设计方案不同,可看出,TYPEA和TYPEB有以下不同:
              ◆ TYPEB接收信号时,不会因能量损失而使芯片内部逻辑及软件工作停止。在NPAUSE到来,TYPEA的芯片得不到时钟,而TYPEB用10%ASK,卡片可以从读写器获得持续的能量;TYPEB时容易稳压,所以比较安全可靠。TYPEA卡采用100%调制方式,在调制发生时候无能量传输,仅仅靠卡片内部电容维持,所以卡片的通讯必须达到一定的速率,在电容电量耗完之前结束本次调制,否则卡片会复位。
              ◆ 负载波采用BPSK调制技术,TYPEB较TYPEA方案降低了6dB的信号燥声,抗干扰能力更强。
              ◆ 外围电路设计简单。读写机具到卡及卡到读写机具的编码方式均采用NRZ方案,电路设计对称,设计时可使用简单的UARTS,TYPEB更容易实现。

2.2 防冲突机制

2.2.1 什么是防冲突?为什么要防冲突?

         正常情况下读写器某一时刻只能对磁场中的一张射频卡进行读写操作。但是当多张卡片同时进入读写器的射频场时,读写器怎么办呢?读写器需要选出唯一的一张卡片进行读写操作,这就是防冲突。

2.2.2 怎么防冲突?

          防冲突机制是非接触式智能卡特有的问题。在接触式智能卡的操作中是不存在冲突的,因为接触式智能卡的读写器有一个专门的卡座,而且一个卡座只能插一张卡片,不存在读写器同时面对两张以上卡片的问题。常见的非接触式智能卡中的防冲突机制主要有以下几种:
       (1)面向比特的防冲突机制。
         ISO14443 type A中使用这种防冲突机制,其原理是基于卡片有一个全球唯一的序列号。比如Mifare1卡,每张卡片有一个全球唯一的32位二进制序列号。显而易见,卡号的每一位上不是“1”就是“0”,而且由于是全世界唯一,所以任何两张卡片的序列号总有一位的值是不一样的,也就说总存在某一位,一张卡片上是“0”,而另一张卡片上是“1”。
         当两张以上卡片同时进入射频场,读写器向射频场发出卡呼叫命令,问射频场中有没有卡片。这些卡片同时回答“有卡片”;
         然后读写器发送防冲突命令“把你们的卡号告诉我”,收到命令后所有卡片同时回送自己的卡号。
         可能这些卡片卡号的前几位都是一样的。比如前四位都是1010,第五位上有一张卡片是“0”而其他卡片是“1”,于是所有卡片在一起说自己的第五位卡号的时候,由于有卡片说“0”,有卡片说“1”,读写器听出来发生了冲突。
         读写器检测到冲突后,对射频场中的卡片说,让卡号前四位是“1010”,第五位是“1”的卡片继续说自己的卡号,其他的卡片不要发言了。
         结果第五位是“1”的卡片继续发言,可能第五位是“1”的卡片不止一张,于是在这些卡片回送卡号的过程中又发生了冲突,读写器仍然用上面的办法让冲突位是“1”的卡片继续发言,其他卡片禁止发言,最终经过多次的防冲突循环,当只剩下一张卡片的时候,就没有冲突了,最后胜出的卡片把自己完整的卡号回送给读写器,读写器发出卡选择命令,这张卡片就被选中了,而其他卡片只有等待下次卡呼叫时才能再次参与防冲突过程。
        上述防冲突过程中,当冲突发生时,读写器总是选择冲突位为“1”的卡片胜出,当然也可以指定冲突位为“0”的卡片胜出。
        上述过程有点拟人化了,实际情况下读写器是怎么知道发生冲突了呢?在前面的数据编码中我们已经提到,卡片向读写器发送命令使用副载波调制的曼侧斯特(Manchester)码,副载波调制码元的右半部分表示数据“0”,副载波调制码元的左半部分表示数据“1”,当发生冲突时,由于同时有卡片回送“0”和“1”,导致整个码元都有副载波调制,读写器收到这样的码元,就知道发生冲突了。
        这种方法可以保证任何情况下都能选出一张卡片,即使把全世界同类型的所有卡片都拿来防冲突,最多经过32个防冲突循环就能选出一张卡片。缺点是由于卡序列号全世界唯一,而卡号的长度是固定的,所以某一类型的卡片的生产数量也是一定的,比如常见的Mifare1卡,由于只有4个字节的卡序列号,所以其生产数量最多为2的32次方,即4294967296张。
     (2)面向时隙的防冲突机制
        ISO14443 Type B中使用这种防冲突机制。这里的时隙(timeslot)其实就是个序号。这个序号的取值范围由读写器指定,可能的范围有1-1、1-2、1-4、1-8、1-16。当两张以上卡片同时进入射频场,读写器向射频场发出卡呼叫命令,命令中指定了时隙的范围,让卡片在这个指定的范围内随机选择一个数作为自己的临时识别号。然后读写器从1开始叫号,如果叫到某个号恰好只有一张卡片选择了这个号,则这张卡片被选中胜出。如果叫到的号没有卡片应答或者有多于一张卡片应答,则继续向下叫号。如果取值范围内的所有号都叫了一遍还没有选出一张卡片,则重新让卡片随机选择临时识别号,直到叫出一张卡片为止。

       这种办法不要求卡片有一个全球唯一序列号,所以卡片的生产数量没有限制,但是理论上存在一种可能,就是永远也选不出一张卡片来。
       Felica采用的也是这种机制。
     (3)位和时隙相结合的防冲突机制
        ISO15693中使用这种机制。一方面每张卡片有一个8字节的全球唯一序列号,另一方面读写器在防冲突的过程中也使用时隙叫号的方式,不过这里的号不是卡片随机选择的,而是卡片唯一序列号的一部分。
        叫号的数值范围分为0-1和0-15两种。其大体过程是,当有多张卡片进入射频场,读写器发出清点请求命令,假如指定卡片的叫号范围是0-15,则卡片序列号最低4位为0000的卡片回送自己的7字节序列号。如果没有冲突,卡片的序列号就被登记在PCD中。然后读写器发送一个帧结束标志,表示让卡片序列号最低4位为0001的卡片作出应答;之后读写器每发送一个帧结束标志,表示序列号的最低4位加1,直到最低4位为1111的卡片被要求应答。如果此过程中某一个卡片回送序列号时没有发生冲突,读写器就可选择此张卡片;如果巡检过程中没有卡片反应,表示射频场中没有卡片;如果有卡片反应的时隙发生了冲突,比如最低4位是1010的卡片回送卡号时发生了冲突,则读写器在下一次防冲突循环中指定只有最低4位是1010的卡片参与防冲突,然后用卡片的5-8位作为时隙,重复前面的巡检。如果被叫卡片的5-8位时隙也相同,之后再用卡片的9-12位作为时隙,重复前面的巡检,依次类推。读写器可以从低位起指定任意位数的序列号,让卡号低位和指定的低位序列号相同的卡片参与防冲突循环,卡片用指定号前面的一位或4位作为时隙对读写器的叫号作出应答。由于卡片的序列号全球唯一,所以任何两张卡片总有某个连续的4位二进制数不一样,因而总能选出一张卡片。需要指出的是,当选定的时隙数为1时,这种防冲突机制等同于面向比特的防冲突机制。
         另外需要说明的是,TTF(Tag Talk First)的卡片一般是无法防冲突的。这种卡片一进入射频场就主动发送自己的识别号,当有多张卡片同时进入射频场时就会发生不读卡的现象。这时只有靠卡片的持有者自己去避免冲突了。
         ISO/IEC14443-3规定了TYPEA,TYPEB的防冲突机制。二者防冲突机制的原理完全不同。前者是基于BIT冲突检测协议,后者则是通过字节、帧及命令完成防冲突。
         TYPEB与TYPEA相比,具有传输能量不中断、速率更高、抗干扰能力更强的优点。RFID的核心是防冲突技术,这也是和接触式IC卡的主要区别。

三、TYPE A和TYPE B的基本通信命令

         从建立PCD与PICC(CPU卡)之间通信的方面来比较:
        TYPEA类型卡片需要的基本命令有:
               REQA对A型卡的请求或(WAKE-UP唤醒)
               ANTICOLLISION防冲突
               SELECT选择命令
               RATS应答响应
        TYPEB类型卡片需要的基本命令有:
              REQB对B型卡的请求
              ATTRIBPICC选择命
        从以上的比较可以看出:
        TYPEB类型卡片具有使用更少的命令,更快的响应速度来实现防冲突和选择卡片的能力。
        TYPEA的防冲突需要卡片上较高和较精确的时序,因此需要在卡和读写器中分别加更多硬件,而TYPEB的防冲突更容易实现。
        目前TYPEA和TYPEB孰优孰劣尚在争议中。TYPEA的产品(Mifare卡)具有更高的市场普及率;但是TYPEB应该在安全性、高速率和适应性方面有更好的前景,代表产品如二代身份证。

3.1 Type A类型卡通信

ISO14443 Type A类型卡的防碰撞过程以及命令解析

3.2 Type B类型卡通信

ISO14443 Type B类型卡的防碰撞过程以及命令解析

四、通信协议(RTF、TTF)

        通讯协议是通讯的双方或多方在交流时遵守的规矩,包括谁先发起通讯,先交流什么,后交流什么,一方如何问,另一方如何答等。在这里通迅的双方指的是读写器和卡片。

        首先是谁先发起通讯,很显然有两种,读写器先发言和卡片先发言。前一种叫Reader Talk First,简称为RTF;后一种叫Tag Talk First,简称为TTF。

        我们知道,卡片从读写器产生的射频场获得工作时需要的能量,一般认为应该是读写器主动,卡片被动才对,这也是人之常情。所以多数功能稍复杂的卡片都是采用RTF模式,即读写器问,卡片回答。读写器没有命令,卡片是无论如何也不能主动说话的。但是有些卡片功能单一,每次与读写器的交流中只会回答一个问题,而且每次内容都相同。对于这种卡片,似乎再让读写器每次先提问已经没有什么意义了,还不如每次与读写器交流直接让卡片先说它那永远不会变的一句话得了,于是就有了TTF模式。TTF模式的卡片一般都是我们常说的ID卡,即识别卡,ID卡每次说的相同的一句话都是一个识别号,读写器利用这个识别号确定持卡者的身份。

   其次是交流的秩序。对TTF卡片当然没什么秩序可言了,一进入射频场卡片就自说自话。但对RTF的卡片一般有严格的顺序,如下图所示:

 

         第一步是读写器呼叫卡,如果射频场中有读写器支持的卡片,卡片将回送一个应答,告诉读写器自己是什么类型的卡片。

         然后读写发出命令选中卡片,如果射频场中有多张卡片,通常还要进行防冲突循环以便决出唯一张卡片进行操作。

        第三步是进行认证,一方面读写器要认证卡片是合法的,另一方卡片也要认证读写器是合法的。如果认证顺利通过,就可以进行正常的读写数据操作了。

         这些步骤并不都是必须的,有些简单的卡片,要求操作前用户把卡片放到读写器上,读写器直接对其进行读写操作,前面的3步都省了;有些卡片没有密码,当然不需要相互认证;有些卡片不支持防冲突,同时有多张卡片时将无法操作;还有些卡片将呼叫和防冲突用一个步骤代替。所以对于具体的卡片,要仔细阅读其说明书,进行具体的分析。

          还有一类卡片既可以工作在TTF模式,又可以工作在RTF模式。两种模式之间的切换一般有两种方式:一种是卡片刚进入射频场上电复位后会等待一个固定时间,在这段时间内如果有读写器的命令,则工作在RTF模式,如果没有收到命令则进入TTF模式。另一种是卡片上电后主动在RTF与TTF之间不停的切换,在TTF模式下发送完一个识别号后,立即进入RTF模式等待读写器的命令,如果有命令则执行命令,没有命令则退出RTF模式返回TTF模式继续发送识别号,之后进行下一次的切换。

         最后还有一个全双工(Full Duplex,FDX)和半双工(Half Duplex,HDX)的概念。在有线通讯中,我们知道全双工就是通讯双方可以同时双向通讯,半双工就是虽能双向通讯,但某一时刻只能有一个方向通讯。一般来说当然是全双工好,如果技术上能实现全双工,当然最好不用半双工;成本上全双工贵,半双工便宜。但在射频识别技术中FDX和HDX并不是这个意思。在ISO11785中对FDX和HDX的定义如下:

       FDX:标签和读写器在读写器产生的磁场没有消失的情况下进行通讯。

       HDX:标签和读写器在读写器产生的磁场停止之后进行通讯。

       RFID技术中FDX的例子如Mifare系列卡片,HDX的例子如TI公司的134.2KHz标签,如RI-TRP-WR2B。目前的射频卡FDX比较多,因为射频卡无源,需要从读写器的射频场取电,射频场不消失,卡片可以源源不断的取电,对卡片内部的储能电路要求不高。缺点是卡片回送数据时因为自己不能产生射频场,只能被动发送,所以一般采取负载调制的方法回送数据。HDX在读写器的射频场停止后回送数据,读写器对卡片数据的识别解调容易。缺点是对卡片的储能电路要求较高,而且回送数据量有限。成本上HDX也未必比FDX便宜。

五、参考文献

射频识别技术漫谈
ISO14443 Type A类型卡的防碰撞过程以及命令解析
ISO14443 Type B类型卡的防碰撞过程以及命令解析

ISO14443A_中国金融集成电路(IC)卡非接触式规范

猜你喜欢

转载自blog.csdn.net/yangguoyu8023/article/details/111562134