ISO144433.docx
《ISO144433.docx》由会员分享,可在线阅读,更多相关《ISO144433.docx(64页珍藏版)》请在冰豆网上搜索。
ISO144433
识别卡—无触点集成电路卡—接近式卡—
第3部分:
初始化和防冲突
1范围
ISO/IEC14443的这一部分描述了
·PICC进入PCD工作场的轮询;
·在PCD和PICC之间通信的初始阶段期间所使用的字节格式、帧和定时;
·初始REQ和ATQ命令内容;
·探测方法和与几个卡(防冲突)中的某一个通信的方法;
·初始化PICC和PCD之间的通信所需要的其它参数。
·容易和加速选择在应用准则基础上的几个卡中的一个(即,最需要处理的一个)的任选方法。
高层和应用使用的以及在初始阶段之后使用的协议和命令将在ISO/IEC14443-4中给出。
ISO/IEC14443的这一部分适用于类型A和类型B(如ISO/IEC14443-2中所描述)的PICC。
2引用标准
下列标准中所包含的条文,通过在本标准中引用而构成为本标准的条文。
本标准出版时,所示版本均为有效。
所有标准都会被修订,使用ISO/IEC14443这一部分的各方应探讨使用下列标准最新版本的可能性。
ISO/IEC3309:
1993信息技术-系统间的远程通信和信息交换-高级数据链接控制(HDLC)规程-帧结构
ISO/IEC7816-3:
1997识别卡-带触点的集成电路卡-第3部分:
电信号和传输协议
ISO/IEC14443-2识别卡-无触点集成电路卡-接近式卡-第2部分:
射频功率和信号接口
ITU-T建议V.41
3术语和定义
ISO/IEC14443-2、ISO/IEC7816-3中给出的术语、定义和下列术语、定义适用于本国际标准:
3.1防冲突环anticollisionloop
为了在PCD激励场中准备PCD和几个PICC中的一个或多个之间的对话所使用的算法。
3.2比特冲突检测协议bitcollisiondetectionprotocol
在帧内比特级使用冲突检测的防冲突方法。
冲突出现在至少两个PICC把附加比特模式发送给PCD时(见ISO/IEC14443-2的8.4.2)。
在这种情况下,比特模式被合并,在整个(100%)比特持续时间内载波以副载波来调制。
PCD检测出碰撞比特并按串联次序识别所有PICCID。
3.3字节byte
由指明的从最高有效位(MSB,b8)到最低有效位(LSB,b1)的8比特数据b1到b8组成。
3.4冲突collision
在同一PCD激励场中并且在同一时间周期内两个PICC的传输,使得PCD不能辨别数据是从哪一个PICC发出的。
3.5基本时间单元(etu)elementarytimeunit(etu)
对于ISO/IEC14443的本部分,基本时间单元(etu)定义如下:
1etu=128/fc,(即9.4µs,标称的)。
3.6帧frame
帧是一序列数据比特和任选差错检测比特,它在开始和结束处有定界符。
3.7高层higherlayer
属于应用或高层协议,它不在ISO/IEC14443本部分描述。
3.8时间槽协议timeslotprotocol
PCD与一个或多个PICC建立逻辑通道的方法,该方法对于PICC响应使用时间槽定位,类似于slotted-Aloha方法。
3.9唯一识别符UIDUniqueidentifierUID
UID是类型A防冲突算法所需的一个号。
4符号(和缩略语)
ISO/IEC14443本部分使用下面的缩略语:
AFI应用族识别符,应用的卡预选准则。
APa在ATQB中使用的防冲突前缀a
APc在属性中使用的防冲突前缀c
APf在REQB中使用的防冲突前缀f
APn在Slot-MARKER命令中使用的防冲突前缀n
ATA属性应答
ATQ请求应答
ATQA类型A的请求应答
ATQB类型B的请求应答
ATTRIBPICC选择命令
BCCUIDCLn对于4个先前的字节进行“异或”运算出来的校验字节
CLn串联级n,3≥n≥1
CT串联标记,‘88’
CRC_A6.1.10中定义的循环冗余校验差错检测码
CRC_B7.2中定义的循环冗余校验差错检测码
DESEL取消选定命令
E通信结束,类型A
EGT额外保护时间
EOF帧结束,类型B
etu基本时间单元,1比特数据传输的持续时间
FGT帧保护时间
fc载波频率(13.56Hz)
fs副载波频率
ID标识号
INF属于高层的信息字段
LSB最低有效位
MSB最高有效位
N防冲突槽的数目或每个槽内PICC响应的概率
n变量整数值,如特定条款中所定义
NAD结点地址
NVB有效位的数目
P奇数奇偶校验位
PARAM属性格式中的参数
PCD接近式耦合设备(读写器)
PICC接近式卡
PUPI伪唯一PICC标识符
R防冲突序列期间PICC所选定的槽号
REQA请求命令,类型A
REQB请求命令,类型B
RFU留作将来ISO/IEC使用
S通信开始,类型A
SAK选择确认
SEL选择命令
SOF帧的开始,类型B
TR0PCDoff和PICCon之间静默的最小延迟。
(仅类型B)
TR1PICC数据传输之前持续期的最小副载波。
(仅类型B)
UID唯一标识符
UIDn唯一标识符的字节数目n,n≥0
ISO/IEC14443本部分使用下列记法:
(xxxxx)b数据比特表示
‘XY’十六进制记法,等同于基数16的XY
5轮询
当PICC暴露于未调制的工作场内(见ISO/IEC14443-2),它能在5ms内接受一个请求。
例如:
当类型APICC接收到任何B型命令时,它能在5ms内接受一个REQA。
当类型BPICC接收到任何A型命令,它能在5ms内接受一个REQB。
为了检测进入其激励场的PICC,PCD发送重复的请求命令并寻找ATQ。
请求命令应按任何顺序使用这里描述的REQA和REQB,此外,也可能使用附录C中描述的其他编码。
这个过程被称为轮询。
6类型A-初始化和防冲突
本章描述了适用于类型APICC的比特冲突检测协议。
6.1字节、帧、命令格式和定时
本章定义了通信初始化和防冲突期间使用的字节、帧与命令的格式和定时。
关于比特表示和编码,参考ISO/IEC14443-2。
6.1.1帧延迟时间
帧延迟时间(FDT)定义为在相反方向上所发送的两个帧之间的时间。
6.1.2帧保护时间
帧保护时间(FGT)定义为最小帧延迟时间。
6.1.3PCD到PICC的帧延迟时间
PCD所发送的最后一个暂停的结束与PICC所发送的起始位范围内的第一个调制边沿之间的时间,它应遵守图6.1中定义的定时,此处n为一整数值。
图6.1PICC到PCD的帧延迟时间
表6.1定义了n和依赖于命令类型的FDT的值以及这一命令中最后发送的数据比特的逻辑状态。
表6.1PICC到PCD的帧延迟时间
命令类型
n(整数值)
FDT
最后一位=
(1)b
最后一位=(0)b
REQA命令
WAKE-UP命令
ANTICOLLISION命令
SELECT命令
9
1236/fc
1172/fc
所有其它命令
≥9
(n*128+84)/fc
(n*128+20)/fc
注:
值n=9意味着场中的所有PICC应以防冲突所需的同步方式进行响应。
对于所有的其他命令,PICC应确保起始位范围内的第一个调制边沿与图6.1中定义的位格对齐。
6.1.4PICC到PCD的帧延迟时间
PICC所发送的最后一个调制与PCD所发送的第一个暂停之间的时间,它应至少为1172/fc。
6.1.5请求保护时间
请求保护时间定义为两个连续请求命令的起始位间的最小时间。
它的值为7000/fc。
6.1.6帧格式
对于比特冲突检测协议,定义下列帧类型:
6.1.7REQA和WAKE-UP帧
请求和唤醒帧用来初始化通信并由以下次序组成:
·通信开始
·7个数据比特的LSB首先发送。
(标准REQA的数据内容是‘26’,WAKE-UP请求的数据内容是‘52’)
·通信结束
不加奇偶校验位。
图6.2REQA帧
6.1.8标准帧
标准帧用于数据交换并由以下次序组成
·通信开始
·n*(8个数据比特+奇数奇偶校验位),n≥1。
每个数据字节的LSB首先被发送。
每个数据字节后面跟随一个奇数奇偶校验位。
·通信结束
图6.3标准帧
6.1.9面向比特的防冲突帧
当至少两个PICC发送不同比特模式到PCD时可检测到碰撞。
这种情况下,至少一个比特的整个比特持续时间内,载波以副载波进行调制。
面向比特的防冲突帧仅在比特帧防冲突环期间使用,并且事实上该帧是带有7个数据字节的标准帧,它被分离成两部分:
第1部分用于从PCD到PICC的传输,第2部分用于从PICC到PCD的传输。
下列规则应适用于第1部分和第2部分的长度:
规则1:
数据比特之和应为56
规则2:
第1部分的最小长度应为16个数据比特
规则3:
第1部分的最大长度应为55个数据比特
从而,第2部分的最小长度应为1个数据比特,最大长度应为40个数据比特。
由于该分离可以出现在一个数据字节范围内的任何比特位置,故定义了两种情况:
全字节情况:
在完整数据字节后分离。
在第1部分的最后数据比特之后加上一个奇偶校验位。
分离字节情况:
在数据字节范围内分离。
在第1部分的最后数据比特之后不加奇偶校验位。
下面全字节情况和分离字节情况的例子定义了比特的组织结构和比特传输的次序。
注:
这些例子包含NVB和BCC的正确值。
图6.4面向比特的防冲突帧的比特组织结构和传输,全字节情况
图6.5面向比特的防冲突帧的比特组织结构和传输,分离字节情况
对于分离字节,PCD应忽略第二部分的第一个奇偶校验位。
6.1.10CRC_A
CRC_A编码和校验过程在ITU-T建议的V.41第2段中定义。
用来生成校验位的发生器多项式为x16+x12+x5+1。
初始值应为‘6363’。
CRC_A应被添加到数据字节中并通过标准帧来发送。
注:
其他描述可以从考虑了如下修改后的ISO/IEC3309派生:
·初始值:
‘6363’而不是‘FFFF’
·计算后寄存器内容应不取反。
示例参考附录B。
6.2PICC状态
下列各部分提供了专门针对比特冲突检测协议的类型A的PICC状态的描述。
图6.6类型APICC状态图(提示的)
注:
更多详细的类型APICC状态图可以在附录D中得到。
6.2.1POWER-OFF状态
在POWER-OFF状态中,由于缺少载波能量,PICC不能被激励并且应不发射副载波。
6.2.2IDLE状态
在第5章中定义的最大延迟内激活工作场后,PICC应进入其IDLE状态。
在这种状态中,PICC被加电,并且能够解调和识别从PCD来的有效REQA和WAKE-UP命令。
6.2.3READY状态
一旦收到有效REQA或WAKE-UP报文则立即进入该状态,用其UID选择了PICC时则退出该状态。
在这种状态中,比特帧防冲突或其他任选的防冲突方法都可以使用。
所有串联级别都在这一状态内处理以取得所有UIDCLn。
6.2.4ACTIVE状态
通过使用其完整UID选择PICC来进入该状态。
6.2.5HALT状态
该状态通过6.3.4中定义的HALT命令或ISO/IEC14443本部分中未定义的应用特定命令来进入。
在这种状态中,PICC应仅响应使PICC转换为READY状态的WAKE-UP命令。
注:
处于HALT状态的PICC将不参与任何进一步的通信,除非使用了WAKE-UP命令。
6.3命令集
PCD用来管理与几个PICC通信的命令是:
·REQA
·WAKE-UP
·ANTICOLLISION
·SELECT
·HALT
这些命令使用上面描述的字节和帧格式。
6.3.1REQA命令
REQA命令由PCD发出,以探测用于类型APICC的工作场。
6.3.2WAKE-UP命令
WAKE-UP命令由PCD发出,使已经进入HALT状态的PICC回到READY状态。
它们应当参与进一步的防冲突和选择规程。
表6.2示出了使用请求帧格式的REAQA和WAKE-UP命令的编码。
表6.2请求帧的编码
b7
b6
b5
b4
b3
b2
b1
含义
0
1
0
0
1
1
0
‘26’=REQA
1
0
1
0
0
1
0
‘52’=WAKE-UP
0
1
1
0
1
0
1
‘35’=任选时间槽方法
见附录C
1
0
0
×
×
×
×
‘40’to‘4F’=专有的
1
1
1
1
×
×
×
‘78’to‘7F’=专有的
所有其他
RFU
6.3.3ANTICOLLISION命令,SELECT命令
这些命令在防冲突环期间使用。
ANTICOLLISION和SELECT命令由下列内容组成:
·选择代码SEL(1个字节)
·有效比特的数目NVB(1个字节)
·根据NVB的值,UIDCLn的0到40个数据比特
SEL规定了串联级别CLn。
NVB规定了PCD所发送的CLn的有效比特的数目。
注:
只要NVB没有规定40个有效比特,若PICC保持在READY状态中,该命令就被称为ANTICOLLISION命令。
如果NVB规定了UIDCLn的40个数据比特(NVB=‘70’),则应添加CRC_A。
该命令称为SELECT命令。
如果PICC已发送了完整的UID,则它从READY状态转换到ACTIVE状态并在其SAK-响应中指出UID完整。
否则,PICC保持在READY状态中并且该PCD应以递增串联级别启动一个新的防冲突环。
6.3.4HALT命令
HALT命令由四个字节组成并应使用标准帧来发送。
图6.7HALT命令帧
如果PICC在HALT帧结束后1ms周期期间以任何调制表示响应,则该响应应解释为‘不确认’。
6.4选择序列
选择序列的目的是获得来自PICC的UID以及选择该PICC以便进一步通信。
6.4.1选择序列流程表
图6.8PCD的初始化和防冲突流程图
6.4.2ATQA-请求应答
在PCD发送请求命令(REQA)之后,所有PICC以其在两个数据字节中编码了可用防冲突类型的请求应答(ATQA)表示同步地进行响应,。
如果有多个卡应答,冲突可能出现。
PCD应在ATQA内把冲突解码为a
(1)b。
这导致了所有ATQA的逻辑“或”。
有关例子在附录D中给出。
6.4.2.1ATQA的编码
表6.3ATQA的编码
MSBLSB
b16
b15
b14
b13
b12
b11
b10
b9
b8
b7
b6
b5
b4
b3
b2
b1
RFU
UID长度比特帧
RFU
比特帧防冲突
6.4.2.2比特帧防冲突的编码规则
规则1:
位b7和b8编码了UID长度(单个、两个或三个)
规则2:
b1、b2、b3、b4或b5中的一个应置为
(1)b以指出比特帧防冲突。
表6.4比特帧防冲突用的b7和b8的编码
b8
b7
含义
0
0
UID长度:
单个
0
1
UID长度:
两个
1
0
UID长度:
三个
1
1
RFU
表6.5比特帧防冲突用的b1-b5的编码
b5
b4
b3
b2
b1
含义
1
0
0
0
0
比特帧防冲突
0
1
0
0
0
比特帧防冲突
0
0
1
0
0
比特帧防冲突
0
0
0
1
0
比特帧防冲突
0
0
0
0
1
比特帧防冲突
所有其它
RFU
6.4.3防冲突和选择
6.4.3.1每个串联级别范围内的防冲突环
下面算法应适用于防冲突环:
步骤1:
PCD为选择的防冲突类型和串联级别分配了带有编码的SEL。
步骤2:
PCD分配了带有值为‘20’的NVB。
注:
该值定义了该PCD将不发送UIDCLn的任何部分。
因此该命令迫使工作场内的所有PICC以其完整的UIDCLn表示响应。
步骤3:
PCD发送SEL和NVB。
步骤4:
工作场内的所有PICC应对它们的完整的UIDCLn响应。
步骤5:
假设场内的PICC拥有唯一串行号,那么,如果一个以上的PICC响应,则冲突发生。
如果没有冲突发生,则步骤6到步骤10可被跳过。
步骤6:
PCD应识别出第一个冲突的位置。
步骤7:
PCD分配了带有值的NVB,该值规定了UIDCLn有效比特数。
这些有效比特应是通过a(0)b或
(1)b所增加,PCD所决定的冲突发生之前被接收到的UIDCLn的一部分。
典型的实现增加了
(1)b。
步骤8:
PCD发送SEL和NVB,后随有效比特本身。
步骤9:
只有PICC的UIDCLn中的一部分等于PCD所发送的有效比特时,PICC才应发送其UIDCLn的其余部分。
步骤10:
如果出现进一步的冲突,则重复步骤6~9。
最大的环数目是32。
步骤11:
如果不出现进一步的冲突,则PCD分配带有值为‘70’的NVB。
注:
该值定义了PCD将发送完整的UIDCLn。
步骤12:
PCD发送SEL和NVB,后随UIDCLn的所有40个比特,后面又紧跟CRC_A校验和。
步骤13:
UIDCLn匹配了40个比特的PICC以其SAK表示响应。
步骤14:
如果UID完整,则PICC应发送带有清空的串联级别的SAK,并从READY状态转换到ACTIVE状态。
步骤15:
PCD应检验SAK的串联比特是否被设置,以决定带有递增串联级别的进一步防冲突环是否应继续进行。
如果PICC的UID是众所周知的,则PCD可以跳过步骤2~10来选择该PICC,而无需执行防冲突环。
图6.19PCD防冲突环流程图
注:
循环编号对应算法步骤。
6.4.3.2SEL的编码(选择代码)
长度:
1字节
可能值:
‘93’,‘95’,‘97’
表6.6SEL的编码
b8
b7
b6
b5
b4
b3
b2
b1
含义
1
0
0
1
0
0
1
1
‘93’:
选择串联级别1
1
0
0
1
0
1
0
1
’95’:
选择串联级别2
1
0
0
1
0
1
1
1
’97’:
选择串联级别3
1
0
0
1
所有其他
RFU
6.4.3.3NVB的编码(有效比特的数)
长度:
1字节
较高4比特称为字节计数,规定所有被8分开的有效数据比特的数,包括被PCD发送的NVB和SEL。
这样,字节计数的最小值是2而最大值是7。
较低4比特称为比特计数,规定由PCD发送的模8所有有效数据比特的数。
表6.7NVB的编码
b8
b7
b6
b5
b4
b3
b2
b1
含义
0
0
1
0
-
-
-
-
字节计数=2
0
0
1
1
-
-
-
-
字节计数=3
0
1
0
0
-
-
-
-
字节计数=4
0
1
0
1
-
-
-
-
字节计数=5
0
1
1
0
-
-
-
-
字节计数=6
0
1
1
1
-
-
-
-
字节计数=7
-
-
-
-
0
0
0
0
比特计数=0
-
-
-
-
0
0
0
1
比特计数=1
-
-
-
-
0
0
1
0
比特计数=2
-
-
-
-
0
0
1
1
比特计数=3
-
-
-
-
0
1
0
0
比特计数=4
-
-
-
-
0
1
0
1
比特计数=5
-
-
-
-
0
1
1
0
比特计数=6
-
-
-
-
0
1
1
1
比特计数=7
6.4.3.4SAK的编码(选择确认)
当NVB规定为40个有效比特并且当所有这些数据比特与UIDCLn相配时,SAK由PICC来发送。
SAK通过标准帧来发送,后随CRC_A。
SAK
CRC_A
1字节
2字节
图6.10选择确认(SAK)
PCD应校验比特b3以判定UID是否完整。
比特b3和b6的编码在表6.8中给出。
表6.8SAK的编码
b8
b7
b6
b5
b4
b3
b2
b1
含义
×
×
×
×
×
1
×
×
串联比特设置:
UID不完整
×
×
1
×
×
0
×
×
UID完整,PICC遵循ISO/IEC14443-4
×
×
0
×
×
0
×
×
UID完整,PICC不遵循ISO/IEC14443-4
如果UID不完整,PICC应保持READY状态并且PCD应以递增的串联级别来初始化新的防冲突环。
如果UID完整,PICC应发送带有清空的串联比特的SAK并从READY状态转换到ACTIVE状态。
当提供了附加信息时,PICC应设置SAK的比特b6。
附加信息的定义不是本标准本部分的课题,将在ISO/IEC14443-4中定义。
6.4.4UID内容和串联级别
UID由4、7或10个UID字节组成。
因此,PICC应处理高达3个串联级别,以得到所有UID字节。
在每个串联级别内,由5个数据字节组成的UID的一部分应被发送到PCD。
根据最大串联级别,定义了UID长度的三个类型。
该UID长度必须与表6.4一致。
表6.9UID长度
最大串联级别
UID长度
字节数
1
单个
4
2
两个
7
3
三个
10
对于UID内容,使用下列定义:
UIDCLn:
根据串联级别n,UID的一部分,由5个字节组成,3≥n≥1
UIDn:
UID的字节#n,n≥0
BCC:
UIDCLn对4个先前的字节进行“异或”运算计算出来的校验字节。
CT:
串联标记,‘88’
UID是一固定的唯一数或由PICC动态生成的随机数。
UID的第一个字节(uid0)分配后随UID字节的内容。
单个长度的UIDs
uid0
描述
‘08’
uid1到uid3是动态生成的随机数
‘x0’-‘x7’
‘x9’-‘xE’
专有的固定数
‘18’-‘F8’
‘xF’
RFU
串联标记CT的值‘88’应不用于单个长度UID中的uid0。
两个和三个长度的UIDs
uid0
描述
制造商ID
根据ISO/IEC7816-6/AM1
每一制造商对唯一数的其他字节的值的唯一性负责
在ISO/IEC7816-6/AM1中为“私用”标出的值‘81’到‘FE’在本上下文中应不予允许。
图6.11串联级别的使用
注:
串联标记的用途是迫使造成与具有较小UID长度的PICC碰撞。
因此,UID0或UID