ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

2020-05-31 15:07:23 新垣结衣我的爱

防冲突原理

1 前言 
当2张或2张以上的同类型的PICC卡同时进入RF(Radio Frequency)区域时,多张卡同时接收到PCD机发出的查询命令。会根据卡上的控制逻辑,同时返回响应命令。这样就造成了卡之间的信号冲突,PCD机无法检测到正确的信号。必须在PICC卡和PCD机之间建立防冲突协议,以使PCD机能从多张卡中。

2.1 Type A防冲突流程 
 

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

下面算法应适用于防冲突环: 
步骤1:PCD为选择的防冲突类型和串联级别分配了带有编码的SEL,SEL第一次赋值‘93’,表示防冲突级别一。 
步骤2:PCD分配了带有值为‘20’的NVB。 
注:该值定义了该PCD将不发送UID CLn的任何部分。因此该命令迫使工作场内的所有PICC以其完整的UID CLn表示响应。 
步骤3:PCD发送SEL和NVB。 
步骤4:工作场内的所有PICC应使用它们的完整的UID CLn响应。 
步骤5:假设场内的PICC拥有唯一序列号,那么,如果一个以上的PICC响应,则冲突发生。如果没有冲突发生,则步骤6到步骤10可被过。 
步骤6:PCD应识别出第一个冲突的位置。 
步骤7:PCD分配了带有值的NVB,该值规定了UID CLn有效比特数。这些有效位应是PCD所决定的冲突发生之前被接收到的UID CLn的一部分再加上(0)b或(1)b。典型的实现是增加(1)b。 
步骤8:PCD发送SEL和NVB,后随有效位本身。 
步骤9:只有PICC的UID CLn中的一部分等于PCD所发送的有效位时,PICC才应发送其UID CLn的其余部分。 
步骤10:如果出现进一步的冲突,则重复步骤6~9,最大的环数目是32。 
步骤11:如果不出现进一步的冲突,则PCD分配带有值为‘70’的NVB。 
注:该值定义了PCD将发送完整的UID CLn。 
步骤12:PCD发送SEL和NVB,后随UID CLn的所有40个位,后面又 紧跟CRC_A校验和。 
步骤13:它的UID CLn与40个比特匹配,则该PICC以其SAK表示响 应。 
步骤14:如果UID完整,则PICC应发送带有清空的串联级别位的SAK, 并从READY状态转换到ACTIVE状态。 
步骤15:PCD应检验SAK(选择确认)的串联比特是否被设置,以检验UID是否完整,若完整则选中PICC,若不完整则进行下一串联级别的防冲突环。如果PICC的UID是完整的且已知的,则PCD可以跳过步骤2~10来选择 该PICC而无需执行防冲突环。 
2.2 防冲突流程举例 
 
明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

图所示:本例假设在PCD场内有两张PICC: 
PICC #l的UID大小:1,UID0是“10” 
PICC #2的UID大小:2 
比特帧防冲突选择时序如图所示。操作分三阶段进行: 
(1) 请求 
PCD发送REQA命令。 
所有PICC应答ATQA: 
PICC #1指明采用比特帧防冲突,UID大小:1 
PICC #2指明采用比特帧防冲突,UID大小:2 
(2)防冲突循环CascadeLevel 1(CL)) 
PCD发送防冲突(ANTICOLLISION)命令: 
SEL“93”指明是比特帧防冲突和CL1。NVB的值为“20”表示PCD不 
发送UIDCIL部分。 
在场的所有PICC以完整的UID CL1作为应答。 
由于级联标志CT=88,所以第一个冲突发生于第4位。 
PCD发送另一个ANITCOLILSION命令,包含UID CL1的开始3位,这是在冲突位发生前接收的,后面再跟随一位(‘1’):PCD指定NVB=‘24’。 
上述的4位等于PICC #2的UID CL1的前4位。 
PICC #2应答UDCL1的其余36位,因为IPCC #1不响应,所以不发生冲突。 
因为PCD己经知悉PICC #2 UID CL1的全部,所以它发出一个选择PICC #2的SELECT命令。 
PICC#2应答SAK,指出UID不完整。 
PCD增加cascade level2(CL2)。 
(3)防冲突循环caseade level2(CL2) 
PCD发送另外一个ANITCOLLISION命令: 
SEL‘95’指明是比特帧防冲突和CL2,NVB为‘20’,迫使PICC #2以完整的UID CL2作为应答。 
PICC #2以完整的UID CL2作为应答。 
PCD对PICC #2发出SELECT命令(UID CL2)。 
PICC应答SAK,指出UID完整,并从READY状态转换到ACITVE 
状态。

3.1 Type B防冲突流程 
 明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B
步骤一:首先读卡器发单时隙带AFI应用标识符的REQB/WUPB命令,PICC卡接收到命令后,立刻回复ATQB命令。当读卡器检测到冲突后,发送多时隙带AFI应用标识符的REQB或者WUPB命令. 
步骤二:那些与AFI相匹配的卡片,产生一个内部随机数R,R的取值范围在1~N之间。 
步骤三:若R=1的卡片即处在1时隙的卡片,立刻回复ATQB给读卡器.若R>1,则要等待SLOT-MARKER命令来匹配时间片。 
步骤四:读卡器发SLOT-MARKER命令,由小到大一次检查2~N这N-1个时隙,选取卡片的原理和过程同第一步。当PCD机发出相一致的时间片时,再发送ATQB命令 
步骤五:PCD机接收到正确的ATQB命令,发出ATTRIB命令。 
步骤六:PICC等待匹配ATTRIB/HALT命令,若匹配ATTRIB命令,则发送ATTRIB命令的响应值后进入ACTIVE状态,这样PICC便进入高层模式。若收到HALT命令,则发送HALT命令的响应值后进入HALT状态。 
3.2 防冲突过程举例: 

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B
  设同时有3张卡进入RF场中,3张卡片的应用类型各不相同。首先读卡器发单时隙REQB命令,卡片1和卡片3都回复了ATQB,读卡器检测大冲突后,改发4时隙的REQB命令,卡片1选择了时隙2,这次不回复ATQB;卡片3选择了1时隙,马上回复ATQB;卡片2类型符不对,所以不做反应。然后读卡器发时隙2的SLOTMAEKER命令,卡片1回复AT2QB;卡片2类型不符,还是不做回复,卡片3时隙不符也不做回复。读卡器接着发出时隙3和时隙4的SLOTMARKER命令,卡片1和3不在这2个时隙内,不做回复;卡片2类型不对,也不做回复;此时卡片1和3等待这HLTB或者ATTRIB,所以这2个时隙内没有回复。

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

一、介绍

本博文介绍了PCDProximity Coupling Device)使用ISO14443-3 TypeA协议检测匹配的PICCPolling ForProximity Cards)命令以及防碰撞过程(Anticollision Proccess)。

二、命令

2.1 REQA和 WUQA

2.1.1 命令概要

REQA命令和WUPA命令是PCD用来检测Type A类型卡是否在无线射频场(RF)。区别在于REQA命令是用PCD在刚开始检测PICC是否在RF中,而WUPA是用在PCDPICC由停止态(HALT State)回到类准备态(READY* State)。

2.1.2 命令格式

REQA命令和WUPA命令只有一个字节(短帧格式),它们的格式如下(b表示bit;B表示Byte):

A、REQA命令:0x26

b8

b7

b6

b5

b4

b3

b2

b1

RFU

0

1

0

0

1

1

0

注:RFUReserved for Future ISO/IEC Use的缩写,我喜欢称之为预留或者未使用

B、WUPA命令:0x52

b8

b7

b6

b5

b4

b3

b2

b1

RFU

1

0

1

0

0

1

0

2.2 ANTICOLISION和SELECT

2.2.1 命令概要

这两个命令用在防碰撞过程,他们共同包含以下三部分: 
1选择代码(SEL),占一个字节。 
2有效字节(NVB),占一个字节。 
3 0~40Unique IdentifierUID)比特位。 
其中,选择代码分成三个层次,根据防碰撞的级别使用(根据参与防碰撞的UID长度使用)。级别一选择代码为0x93,级别二为0x95,级别三为0x97 
有效字节是指PCD传输了的字节数和比特位数。NVB的高四个比特位表示已经传输的比特数除8得到的结果,它包含SELNVB字节。所以字节数最小值为2(只有SELNVB),最大值为7(含有SELNVB5个字节的UID);NVB的低四个比特位表示已经传输的比特位数模8,它包含SELNVB字节,因此它的最小值为0,最大值为7

2.2.2 命令格式

B1

B2

B3~B7

SEL

NVB

UID

注:UID传输的长度根据具体的碰撞请情况而定,传输范围在0~40个比特位之间。它会由NVB指出。

2.3 HLTA

2.3.1 命令概要

该命令用于PICC不响应PCD的解调命令,它占两个字节,后面跟着一个CRC_A。第一个字节为0x50,第二个字节为0x00CRC_A的计算方法参见ISO14443-3文档。

2.3.2 命令格式

1st Byte

2nd Byte

3rdByte 4th Byte

0x50

0x00

CRC_A

2.4 ATQA

2.4.1 命令概要

ATQA命令是PICCPCD发出的REQAWUPA命令的响应命令。当PCD发出REQA命令时,多张PICC都有响应时,该命令可以指出防撞的发生情况。

2.4.2 命令格式


注: 
A
、所有的RFU都默认设置为0. 
B
、专有编码(Proprietary Coding)根据制造厂商而定,由PICC自己响应。 
C
UID类型(UID size bitframe)分成三种。 
 
其中UID为单尺寸时,表示PICCUID长度为4个字节;双尺寸表示PICCUID长度为7个字节;三尺寸表示PICCUID长度为10个字节。 
D
、防撞比特位,该区域的值不为0时表示有多张卡响应REQA命令。 

三、PCD检测PICC过程

3.1 描述

PCD检测PICCUID包含卡检测、防碰撞和具体PICC类型识别三个部分。 
——
第一部分是卡检测。主要是由PCD发出REQA命令,在RF场中的PICC发出ATQA进行响应的部分。如果有PICC响应ATQA,则表示RF场中含有ISO14443 Type A类型的PICC。若ATQA中的碰撞比特位不为零,表示有多张PICC存在RF中,需要进行多次防碰撞。 
——
第二部分是防碰撞。防碰撞的过程分成三个级别,第一个级别必须要有,第二和第三级别视具体情况而定(ATQA的碰撞比特位和UID的长度)。如果只有一张PICC,那么只进行第一级别的防碰撞过程;多张相应REQA,才会进行第二第三级别的防碰撞过程。 
——
第三部分是具体PICC类型识别。该部分主要由PICC发送SAK,由PCD解析SAK从而确定PICC的具体类型。

3.2 流程图

 明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B
说明:该流程图包含三个部分:卡检测、防碰撞、卡具体类型识别。

四、防碰撞

4.1 描述

1PCD设置SEL编码和选择碰撞级别。(当SEL编码为0x93时,表示碰撞级别一;当SEL编码为0x95时,表示碰撞级别二;当SEL编码为0x97时,表示碰撞级别三)。 
2PCD设置NVB的初始值为0x20。表示传输的字节(SELNVB)数为2*8 / 8 = 2,传输的比特位为 2*8 % 8 = 0 
3PCD发送SELECT命令,传输SELNVB 
4)所有在RF中的PICC发送ATQA进行响应REQA 
5)假定所有的PICC都有自己独特的UID序列。如果只有一张PICC进行响应,那么ATQA中的碰撞比特位为0;否则进行第(6)步到第(10)步。 
6PCD根据ATQA识别PICCUID中碰撞的位置。 
7)根据传输的字节数和比特位数重新设置NVB的值,PCD需要设置碰撞响应规则是以比特位1进行,还是以比特位0进行。 
8PCD发送SELECT命令,传输重新设置好的SELNVB 
9)只有PICCUID等于PCD发送SELECT命令的UID时,表示防碰撞过程成功。 
10)如果还没选出PICC中的UID,即还有多张卡响应,那么重复第(6)步到第9步,进行更高级别的碰撞。 
11)如果更高级别的碰撞发生了,PCD应将NVB设置成0x70,表示传输了7字节。7 = 1 + 1 + 51个字节SEL1个字节NVB5个字节【可能是1个字节的CT0x88)加上3个字节的UID,再加上一个字节的BCC(前面四个传输字节异或结果);也可能是四个字节的UID加上一个字节的BCC(前面四个字节UID异或的结果)】)。 
12PCD发送SELECT命令,传输1个字节SEL1个字节NVB5个字节UID 
13PICC响应SAKPCD匹配5个字节的UID 
14)如果UID是完整的,PICC传输的SAK清除碰撞级别比特位和从准备态(READY State)切换到激活态(ACTIVE State)或者从类准备态(READY* State)切换到类激活态(ACTIVE* State)。 
15PCD会检查SAK去决定是否进行更高层次的防碰撞过程,如果需要则会提升碰撞级别。

注: 
A、如果PCD一开始就知道PICC的UID是完整的,那么PCD会跳过步骤(2)到(10),也就是没有防碰撞过程。 
B、如果含有更高级别的防碰撞过程,那么也就表示PICC的UID长度不止4个字节。因为4个字节的UID只能进行级别一的防碰撞过程;7个字节的UID最多能进行级别二的防碰撞过程;10字节的UID最多能进行级别三的防碰撞过程。 
C、同一碰撞级别里可能发生多次碰撞。

4.2 流程图

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

五、碰撞级别

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

六、防碰撞过程示例(和前面那个例子一样)

 明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B
注: 
A、PICC #1是单尺寸UID,uid0的值是0x10;PICC #2是双尺寸UID。 
B、该实例的碰撞响应规则是按比特位1响应。


 

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

一、介绍

本博文介绍了PCDProximity Coupling Device)使用ISO14443-3 TypeB协议检测匹配的PICCPolling For ProximityCards)命令以及防碰撞过程(Anticollision Proccess)。

二、命令

2.1 REQB和WUPB

2.1.1 概要

REQB命令和WUPB命令是PCD用来检测PICC是否在无限射频场(RF)的命令。其中REQB命令用在PCD刚开始检测RF中的PICC时,而WUPB使用在PCD唤醒处于停止态(HALT State)的PICC时。

2.1.2 命令格式

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

说明
1)防碰撞前缀APf的值为0x05,即(0000 0101b 
2Application FamilyIdentifierAFI)表示PCD检测的PICC类型,如果AFI的值为0,则表示PCD检测所有支持的PICC类型。AFI所支持的类型如下图所示

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

注:XY的取值范围都为0x1~0xF 
3PARAM的编码格式如下图所示。

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B 
注: 
A
、所有的Reserved for Future ISO/IEC UseRFU)比特位都为0 
B
、如果b4比特位为0,表示该命令是REQB命令,PCD可以在空闲态(Idle State)或者准备态(Ready State)使用该命令去检测PICC;如果b4比特位是1,表示是WUPB命令,PCD可以在空闲态(Idle State)、准备态(Ready State)或者停止态(HALT State)使用该命令检测PICC 
C
b1b2b3共同组成槽序号(Number of slots)。它的编码以及含义如下图所示。 
 明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B
注:对于每一个PICC而言,用ATQB响应REQB第一个槽序号的概率都为1/N。因此,如果PCD使用的是概率响应的办法,N不作为调节槽序号的值,但是PICC会在特定ATQB槽序号里返回它的UID。即N只是槽序号总数,但是每个PICC0~N的响应概率都为1/NN不为ATQB中的b1b2b2的编码。

2.2 Slot-MARKER

2.2.1 概要

PCD发送完REQB/WUPB命令后,它可以在槽序号N发送(N-1)个Slot-MARKER命令。Slot-MARKER命令在如下两种情况会被发送。 
A
PCD接收到PICCATQB命令后开始下一个槽(时隙)时,即发送下一条命令时。 
B
、如果知道该槽是空的,并且没有ATQB到来,那么不需要等待ATQB,直到该槽结束的时候。即b1b2b3都为0时。 
注:该命令不是PICC强制要支持的。如果PICC不支持该命令,那么它将会忽视该命令。此时PICC只能通过概率的方法用ATQB去响应PCDREQB命令。

2.2.2 命令格式

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

说明: 
A
APnSlot-MARKER命令的第一个字节,它的二进制表示为(nnnn 0101b,即它的低四比特为固定位0x5,即(0101b;高四比特位编码如下所示。 
 明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B
注:slot-MARKER命令不强制要求随着槽序号递增而增加,只要在0~N之间即可。

2.3 ATQB

2.3.1 概要

ATQB命令是PICC对PCD发出的REQB/WUPB和Slot-MARKER命令的响应命令。

2.3.2 命令格式

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

说明: 
1)第一个字节值为0x50,是ATQB命令的前缀。 
2)第二到第五个字节表示PICCPseudo Unique PICC IdentifierPUPI),即Type B类型的卡号。表明Type B类型的卡号只有四个字节。 
3)第六到第九个字节是应用数据(Application Data),它的编码以及含义如下。 

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

注: 
A
、应用数据的第一个字节是AFI,表明卡片的用途。 
B
CRC_B的计算方法参照ISO14443-3文档。 
C
、应用序号(Number of Applications)占一个字节。高四个比特位与AFI一致,‘0’意味着无应用,‘0xF’意味着15种应用或者更多;低四比特位代表着应用总数,‘0’意味着没有应用,‘0xF’意味着15种应用或者更多。 
4)第十到第十二个字节是协议信息(Protocol Info)。它的编码以及含义如下。 
明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B
注: 
1
)第一个字节表示的是数据传输的速率。编码以及含义如下 
明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B
2
)第二个字节的高四比特位表示最大帧值(Max_Frame_Size),低四比特位是PICC所支持协议类型(Protocol_Type)。

A、最大帧值编码以及含义如下图所示。 
明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B
B
、协议类型编码以及含义如下图所示。 
明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B
3
)第三个字节分成FWIADCFO三部分。 
A
、第一部分是高四比特位的帧等待整数时间Frame Waiting time Integer(FWI),它是用来定义帧等待时间Frame Waiting TimeFWT)的。它表示PICC响应PCD的最大时间,FWIFWT之间的转换为:FWT = 256 * 16 / fc * 2^FWI,其中FWI的取值范围是0~14fc是射频场的频率13.56MHz

B、第二部分是b4b3比特位的PICC支持的应用数据编码(Application DataCoding)。它们的编码以及含义如下所示。 
 明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B
C
、第三部分是b2b1比特位的PICC支持的帧选项(Frame Option)。它们的编码以及含义如下图所示。 

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

2.4 ATTRIB

2.4.1 概要

该命令是由PCD发给PICC的命令,一旦该命令发送,意味着PICC已经确定。

2.4.2 命令格式

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

说明: 
1)第一个字节值为0x1D,它是ATTRIB命令前缀。 
2)第二到第五个字节是Type B的卡号Identifier,值和PUPI一样。。 
3)第六个字节我们称之为参数1,它的编码以及含义如下。 

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

说明: 
1
b8b7比特表示Minimum TR0,含义是PICC响应PCD命令的最小延迟时间。它的编码以及含义如下。 
 明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B
2
b6b5比特表示Minimum TR1,含义是PICC副载波调制开始到数据传输的最小延迟时间。它的编码以及含义如下。 
 明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B
3
b4比特表示是否需要帧结束标识,0表示需要,1表示不需要。 
4
b3比特表示是否需要帧开始标识,0表示需要,1表示不需要。 
4)第七个字节我们称之为参数2。它的编码以及含义如下。 
1
b8b7比特位的编码以及含义如下。 
 明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B
2
b6b5比特位的编码以及含义如下。 
明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B 
3
b4b1比特位表示PCD最大接收帧的大小,这四个比特位代表的含义如下。 
明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B
5)第八个字节我们称之为参数3。它的高四比特位为RFU,预留未来适用,值为0;低四比特位定义了PICC支持的协议类型。 
6)第九个字节我们称之为参数4。它的高四比特位为RFU,值为0;低四比特位为CID,它的取值范围为0~14PCD定义了每个激活的PICC必须要有各自独特的CID,如果PICC不支持CID,那么CID的值为(0000b 
10)剩余字节是高层信息,它可有可无,视具体情况而定。PICC不强制要求含有该部分信息。但是像身份证类型的卡,必须要有高层信息。

2.5 ATTRIB命令的响应

命令格式

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

说明: 
1)第一字节分成两部分:高四比特位为Maximum BufferLength IndexMBLI),它让PCD知道PICC内部缓冲到接收帧的限制。如果MBLI的值为0,意味着PICC没有提供信息给内部的输入缓冲;如果MBLI大于0,则MBL=PICC最大帧大小)*2^MBLI-1),PICC会在ATQB中返回PICC最大帧的大小。当PICC发送了MBL时,PCD应该确保帧的长度不会超过MBL。低四比特位为PICC返回给PCDCID,如果PICC不支持CID,则返回(0000b 
2)高层信息响应字节根据卡片本身情况而定,可能有也可能没有。

2.6 HLTB

2.6.1 概要

该命令用于设置PICC处于停止态(HALT State),并且让它不要响应REQB命令。发送该命令成功之后,其它命令都会被忽视,只有WUPB命令能够响应。

2.6.2 命令格式

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

说明: 
1)第一个字节值为0x50,它是HLTB的命令前缀。 
2)第二到第五个字节是PICC的卡号Identifier,即PUPI 
3)最后两个字节是CRC_B,计算方法参照ISO14443-3文档。

2.7 HLTB命令响应

命令格式

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

三、PCD检测PICC过程

流程图

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

注: 
A
R是一个由PICC随机生成的在1~N之间的数。 
B
Option 1是不支持Slot-MARKER命令的PICC分支。Option 2是支持Slot-MARKER命令的PICC分支。

四、防碰撞过程

4.1 描述

防碰撞过程是PCD通过一些命令控制执行的,PCD开始使用REQB命令,和一个或者多个发送ATQBPICC的通信。如果在PCD发送REQB,具有不止一个PICC发送ATQB响应REQB,那么我们称该现象为碰撞PCD在防碰撞过程执行的一系列命令就是为了选出一个特定的PICCPCD完成防碰撞过程后,被选中的PICC的通信就会被PCD所掌控

4.2 原理

防碰撞的过程的原理是基于时隙的,在防碰撞过程中,PICC会在最短的时间内传输应用数据。在PCD发送的REQB/WUPB命令中槽序号可能会变化,PICC在每一时隙等可能的响应槽序号,所有的的PICC都可以在防碰撞的过程中进行应答(发送ATQB)。PCD在防碰撞过程设置的命令取决于PCD的使用策略,它既可以使用概率法(重复单槽序号,使PICC的随机数等于1时响应),也可以使用伪确定法(多槽序号,在碰撞过程中所有PICC可以响应,在某个特定槽序号确定PICC)。

4.3 规则

PICC接收到REQB/WUPB命令后,处于READY-REQUESTEDsub-state时,PICC的响应应该遵循下面规则(NREQB/WUPB命令中的参数): 
—-
如果N=1PICC应该发送ATQB并且进入READY-DECLAREDsub-state 
—-
如果N>1:

PICC可以采用概率法(PCD检测PICC流程图中的Option 1),并且进入空闲态(Idle State); 
PICC
采用发送Slot-MARKER命令的方法(PCD检测PICC流程图中的Option 2),一直到槽序号等于R,然后PICC发送ATQB并且进入READY-DECLAREDsub-state

五、实例(与前面那个一样 这个是英文)

 明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B


 

ISO/IEC 14443协议浅谈:TYPEA与TYPE B

ISO/IEC14443规定了邻近卡(PICC)的物理特性;需要供给能量的场的性质与特征,以及邻近耦合设备(PCDs)和邻近卡(PICCs)之间的双向通信;卡(PICCs)进入邻近耦合设备(PCDs)时的轮寻,通信初始化阶段的字符格式,帧结构,时序信息;非接触的半双功的块传输协议并定义了激活和停止协议的步骤。传输协议同时适用于TYPE A 和 TYPE B。

  TYPE A和TYPE B型卡片主要的区别在于载波调制深度及二进制数的编码方式和防冲突机制。

  1、 调制解调与编码解码技术 ISO/IEC 14443-1

  根据信号发送和接收方式的不同,ISO/IEC14443-3定义了TYPEA、TYPEB两种卡型。它们的不同主要在于载波的调制深度及二进制数的编码方式。

 明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

图1:TYEP A、B 接口的通信信号

  从PCD向PICC传送信号时,二者是通过13.56Mhz的射频载波传送信号。从PICC向PCD传送信号时,二者均通过调制载波传送信号,副载波频率皆为847KHz。

  Type A型卡在读写机上向卡传送信号时,是通过13.65MHz的射频载波传送信号。其采用方案为同步、改进的Miller编码方式,通过100%ASK传送;当卡向读写机具传送信号时,通过调制载波传送信号。使用847kHz的副载波传送Manchester编码。简单说,当表示信息“1”时,信号会有0.3微妙的间隙,当表示信息“0”时,信号可能有间隙也可能没有,与前后的信息有关。这种方式的优点是信息区别明显,受干扰的机会少,反应速度快,不容易误操作;缺点是在需要持续不断的提高能量到非接触卡时,能量有可能会出现波动。

  Type B型卡在读写机具向卡传送信号时,也是通过13.65MHz的射频载波信号,但采用的是异步、NRZ编码方式,通过用10%ASK传送的方案;在卡向读写机具传送信号时,则是采用的BPSK编码进行调制。即信息“1”和信息“0”的区别在于信息“1”的信号幅度大,即信号强,信息“0”的信号幅度小,即信号弱。这种方式的优点是持续不断的信号传递,不会出现能量波动的情况;


明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

  图2 TYPE A 调制波形

  从PCD到PICC的通信信号接口主要区别在信号调制方面,TYPE A调制使用RF工作场的ASK100%调制原理来产生一个“暂停(pause)”状态来进行PCD和PICC间的通信。

  TYPE B调制使用RF工作场的ASK10%调幅来进行PCD和PICC间的通信。

  调制指数最小应为8%,最大应为14%。

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B  

图3 TYPE B 调制波形

  根据二者的设计方案不同,可看出,TYPE A 和 TYPE B有以下不同:

  ◆TYPE B接收信号时,不会因能量损失而使芯片内部逻辑及软件工作停止。在NPAUSE到来,TYPE A的芯片得不到时钟,而TYPE B用10%ASK,卡片可以从读写器获得持续的能量; TYPE B时容易稳压,所以比较安全可靠。TYPE A卡采用100%调制方式,在调制发生时候无能量传输,仅仅靠卡片内部电容维持,所以卡片的通讯必须达到一定的速率,在电容电量耗完之前结束本次调制,否则卡片会复位。

  ◆负载波采用BPSK调制技术,TYPE B较TYPEA方案降低了6dB的信号燥声,抗干扰能力更强。

  ◆外围电路设计简单。读写机具到卡及卡到读写机具的编码方式均采用NRZ方案,电路设计对称,设计时可使用简单的UARTS,TYPE B更容易实现。

  2、 防冲突机制

  ISO/IEC 14443-3规定了TYPEA,TYPEB 的防冲突机制。二者防冲突机制的原理完全不同。前者是基于BIT冲突检测协议,后者则是通过字节、帧及命令完成防冲突。

  RFID的核心是防冲突技术,这也是和接触式IC卡的主要区别。

  TYPE A PICC防冲突和通信使用标准帧用于数据交换,并按以下顺序组成:

  ——通信开始;

  ——n*(8个数据位+奇数奇偶校验位),n≥1。每个字节的LSB首先被发送。每个字节后面跟随

  一个奇数奇偶校验位。奇偶校验位P被设置,使在(b1到b8,P)中1s的数目为奇数;

  ——通信结束。

  

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

图4 TYPE A 标准帧

  TYPE A PICC的初始化和比特冲突检测协议是当至少两个PICC同时传输带有一个或多个比特位置(该位置内至少有两个PICC在传输补充值)的比特模式时,PCD会检测到冲突。在这种情况下,比特模式合并,并且在整个(100%)位持续时间内载波以负载波进行调制。

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

图5 TYPE A PICC状态图

  TYPE B PICC防冲突和通信初始化期间使用的字节、帧和命令的格式。

  PICC和PCD之间的字节通过字符来发送和接收,在防冲突序列期间,字符的格式如下:

  ——1个逻辑“0”起始位;

  ——8个数据位发送,首先发送LSB;

  ——1个逻辑“1”停止位。

  最高位 停止位 EGT

  起始位 最低位

  用一个字符执行一个字节的发送需要10etu,如图18示。

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

图6 TYPE B字符格式

  PCD和PICC按帧发送字符。帧通常用SOF(帧的起始)和EOF(帧的结束)定界。  

SOF

字符

EOF

图7 TYPE B帧格式

  在防冲突序列期间,可能发生两个或两个以上的PICC同时响应:这就是冲突。命令集和允许PCD处理冲突序列以便及时分离PICC传输。

  在完成防冲突序列后,PICC通信将完全处于PCD的控制之下,每次只允许一个PICC通信。

  防冲突方案以时间槽的定义为基础,要求PICC在时间槽内用最小标识数据进行应答。时间槽数被参数化,范围从1到某一整数。在每一个时间槽内,PICC响应的概率也是可控制的。在防冲突序列中,PICC仅被允许应答一次。从而,即便在PCD场中有多个卡,在一个时间槽内也仅有一个卡应答,并且PCD在这个时间槽内能捕获标识数据。根据标识数据,PCD能够与被标识的卡建立一个通信信道。

  防冲突序列允许选择一个或多个PICC以便在任何时候进行进一步的通信。

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

图8 TYPE B PICC状态图

  从建立PCD与PICC(CPU卡)之间通信的方面来比较:

  TYPE A类型卡片 需要的基本命令有:

  l REQA 对A型卡的请求或(WAKE-UP 唤醒)

  l ANTICOLLISION 防冲突

  l SELECT 选择命令

  l RATS 应答响应

明申智能卡/RFID ISO/IEC14443-3 防冲突、防碰撞算法、TypeA、Type B

图9 TYPE A PICC激活

  TYPE B类型卡片 需要的基本命令有:

  l REQB 对B型卡的请求

  l ATTRIB PICC选择命

  TYPE B PICC激活如图8 所示

  从以上的比较可以看出:

  u TYPE B类型卡片具有使用更少的命令,更快的响应速度来实现防冲突和选择卡片的能力。

  u TYPEA的防冲突需要卡片上较高和较精确的时序,因此需要在卡和读写器中分别加更多硬件,而TYPE B的防冲突更容易实现。

  目前TYPE A和TYPEB孰优孰劣尚在争议中。TYPE A的产品(Mifare卡)具有更高的市场普及率;但是TYPE B应该在安全性、高速率和适应性方面有更好的前景,代表产品如二代身份证。


首页
产品
动态
联系