iso14443协议中文版

 

 

 

 

 

 

 

中国金融集成电路(IC)卡

非接触式规范

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

二零零四年五月

 


  

技术的进步给银行卡支付业务带来了令人振奋的机会和更多的业务渠道,如:移动电话、电子商务、非接触IC卡技术等新的支付技术正在蓬勃发展,特别是非接触式IC卡技术在交通、门禁、快餐等行业得到了广泛应用。因此,愈来愈多的银行卡跨国公司、国家和地区都在积极进行非接触式金融IC卡试点,加大了对非接触式应用的开发和推广力度。

在国内,非接触式IC卡在行业应用中也获得了长足发展,由于《中国金融集成电路(IC)卡规范(V1.0)》针对接触式IC卡片,因此,各发卡机构没有统一的非接触式规范可以遵循,为了保持成员银行在卡支付领域的竞争优势、开拓新的支付市场、拓展金融IC卡应用、更加方便持卡人,“《中国金融集成电路(IC)卡规范》修订工作组”制订了《中国金融集成电路(IC)卡-非接触式规范》(以下简称《本规范》),作为《中国金融集成电路(IC)卡规范》修订标准的一部分。

《本规范》在内容上与与ISO/IEC 14443标准等同,增加了激活和关闭非接触式通道两条指令。

《本规范》适用于由银行发行或受理的带有非接触式金融IC卡应用。其使用对象是与非接触式金融IC卡应用相关的卡片设计、制造、发行、管理,及应用系统的研制、开发、集成和维护等部门(单位),也可供非金融IC卡应用参考。

本规范由×××提出。

本规范由×××批准。

本规范由×××归口。

本规范起草单位×××。

本规范主要起草人×××。

本规范得到×××的协助。

 


 

1 范围 1

2 引用标准 2

3 术语和定义 3

3.1 集成电路 Integrated circuit(s)IC 3

3.2 无触点的 Contactless 3

3.3 无触点集成电路卡 Contactless integrated circuit(s) card 3

3.4 接近式卡 Proximity cardPICC 3

3.5 接近式耦合设备 Proximity coupling devicePCD 3

3.6 位持续时间 Bit duration 3

3.7 二进制移相键控 Binary phase shift keying 3

3.8 调制指数 Modulation index 3

3.9 不归零电平 NRZ-L 3

3.10 副载波 Subcarrier 3

3.11 防冲突环 anticollision loop 3

3.12 比特冲突检测协议 bit collision detection protocol 3

3.13 字节 byte 3

3.14 冲突 collision 3

3.15 基本时间单元(etu elementary time unitetu 3

3.16  frame 3

3.17 高层 higher layer 4

3.18 时间槽协议 time slot protocol 4

3.19 唯一识别符 Unique identifierUID 4

3.20  block 4

3.21 无效块 invalid block 4

4 符号和缩略语 5

5 物理特性 8

5.1 一般特性 8

5.2 尺寸 8

5.3 附加特性 8

5.3.1 紫外线 8

5.3.2 X-射线 8

5.3.3 动态弯曲应力 8

5.3.4 动态扭曲应力 8

5.3.5 交变磁场 8

5.3.6 交变电场 8

5.3.7 静电 8

5.3.8 静态磁场 8

5.3.9 工作温度 9

6 射频功率和信号接口 9

6.1 PICC的初始对话 9

6.2 功率传送 9

6.2.1 频率 9

6.2.2 工作场 9

6.3 信号接口 9

6.4 A类通信信号接口 10

6.4.1 PCDPICC的通信 10

6.4.2 PICCPCD的通信 12

6.5 B类通信信号接口 13

6.5.1 PCDPICC的通信 13

6.5.2 PICCPCD的通信 13

6.6 PICC最小耦合区 14

7 初始化和防冲突 16

7.1 轮询 16

7.2 类型A-初始化和防冲突 16

7.2.1 字节、帧、命令格式和定时 16

7.2.2 PICC状态 20

7.2.3 命令集 21

7.2.4 选择序列 22

7.3 类型B  初始化和防冲突 27

7.3.1 比特、字节和帧的定时 27

7.3.2 CRC_B 29

7.3.3 防冲突序列 29

7.3.4 PICC状态描述 30

7.3.5 命令集合 32

7.3.6 ATQBSlot-MARKER响应概率规则 32

7.3.7 REQB命令 32

7.3.8 Slot-MARKER命令 34

7.3.9 ATQB(请求应答-类型B)响应 34

7.3.10 ATTRIB命令 35

7.3.11 ATTRIB命令的应答 37

7.3.12 HALT命令及应答 37

8 传输协议 39

8.1 类型A PICC的协议激活 39

8.1.1 选择应答请求 41

8.1.2 选择应答 41

8.1.3 协议和参数选择请求 44

8.1.4 协议和参数选择响应 46

8.1.5 激活帧等待时间 46

8.1.6 差错检测和恢复 46

8.2 类型B PICC的协议激活 47

8.3 半双工块传输协议 47

8.3.1 块格式 47

8.3.2 帧等待时间(FWT 50

8.3.3 帧等待时间扩展 50

8.3.4 功率水平指示 51

8.3.5 协议操作 51

8.4 类型A和类型B PICC的协议停活 53

8.4.1 停活帧等待时间 54

8.4.2 差错检测和恢复 54

9 数据元和命令 55

9.1 关闭非接触通道命令 55

9.1.1 定义和范围 55

9.1.2 命令报文 55

9.1.3 命令报文数据域 55

9.1.4 响应报文数据域 55

9.1.5 响应报文状态码 55

9.2 激活非接触通道命令 56

9.2.1 定义和范围 56

9.2.2 命令报文 56

9.2.3 命令报文数据域 56

9.2.4 响应报文数据域 56

9.2.5 响应报文状态码 56

  A 标准兼容性和表面质量 57

A.1. 标准兼容性 57

A.2. 印刷的表面质量 57

  B ISO/IEC其他卡标准参考目录 58

  C 类型A的通信举例 59

  D CRC_ACRC_B的编码 61

D.1. CRC_A编码 61

D.1.1. 通过标准帧发送的比特模式举例 61

D.2. CRC_B编码 61

D.2.1. 通过标准帧传送的比特模式实例 61

D.2.2. C语言写的CRC计算的代码例子 62

  E 类型A_时间槽-初始化和防冲突 65

E.1. 术语和缩略语 65

E.2. 比特、字节和帧格式 65

E.2.1. 定时定义 65

E.2.2. 帧格式 65

E.3. PICC状态 65

E.3.1. POWER-OFF状态 65

E.3.2. IDLE状态 66

E.3.3. READY状态 66

E.3.4. ACTIVE状态 66

E.3.5. HALT状态 66

E.4. 命令/响应集合 66

E.5. 时间槽防冲突序列 66

  F 详细的类型A PICC状态图 68

  G 使用多激活的举例 70

  H 协议说明书 71

H.1. 记法 71

H.2. 无差错操作 71

H.2.1. 块的交换 71

H.2.2. 等待时间扩展请求 71

H.2.3. DESELECT 71

H.2.4. 链接 72

H.3. 差错处理 72

H.3.1. 块的交换 72

H.3.2. 等待时间扩展请求 73

H.3.3. DESELECT 75

H.3.4. 链接 75

  I 块和帧编码概览 78

 


1  范围

本规范包括以下主要内容:

物理特性规定了接近式卡(PICC)的物理特性。本部分等同于ISO/IEC 14443-1内容

-射频功率和信号接口:规定了在接近式耦合设备(PCDs)和接近式卡(PICCs)之间提供功率和双向通信的场的性质与特征。本部分没有规定产生耦合场的方法,也没有规定遵循电磁场辐射和人体辐射安全的规章。本部分等同于ISO/IEC 14443-2内容

初始化和防冲突本规范描述了PICC进入PCD工作场的轮询;在PCDPICC之间通信的初始阶段期间所使用的字节格式、帧和定时;初始REQATQ命令内容;探测方法和与几个卡(防冲突)中的某一个通信的方法;初始化PICCPCD之间的通信所需要的其它参数容易和加速选择在应用准则基础上的几个卡中的一个(即,最需要处理的一个)的任选方法。本部分等同于ISO/IEC 14443-3内容

-传输协议:规定了以无触点环境中的特殊需要为特色的半双工传输协议,并定义了协议的激活和停活序列。这一部分适用于类型A和类型BPICC本部分等同于ISO/IEC 14443-4内容

-数据元和命令集:定义了金融应用中关闭和激活非接触式通道所使用的一般数据元、命令集和对终端响应的基本要求。

 


2  引用标准

下列标准中所包含的条文,通过在本标准中引用而构成为本标准的条文。本标准出版时,所示版本均为有效。所有标准都会被修订,使用本标准的各方应探讨使用下列标准最新版本的可能性。

ISO/IEC 3309:1993

信息技术-系统间的远程通信和信息交换-高级数据链接控制(HDLC)规程-帧结构

ISO/IEC 7810:1995

识别卡  物理特性

ISO/IEC 7816-3

识别卡  带触点的集成电路卡  第3部分:电信号和传输协议

ISO/IEC 7816-4

识别卡  带触点的集成电路卡  第4部分:行业间交换用命令

ISO/IEC 7816-5

识别卡  带触点的集成电路卡  第5部分:应用标识符的编号体系和注册规程

IEC 61000-4-2

电磁兼容性(EMC)  第4部分:测试和测量技术  第2节:抗静电放电测试

ISO/IEC 10373-6

识别卡-测试方法

ISO/IEC 14443:1997

识别卡-非接触式集成电路卡-接近式卡

《中国金融集成电路(IC)卡规范V1.0》

《中国金融集成电路(IC)卡规范V2.0》电子钱包/电子存折部分(简称为《电子钱包/电子存折规范》)


3  术语和定义

3.1  集成电路 Integrated circuit(s)IC

用于执行处理和/或存储功能的电子器件。

3.2  无触点的 Contactless

说明完成与卡交换信号和给卡供应能量,而无需使用通电流元件(即,不存在从外部接口设备到卡内所包含集成电路的直接通路)。

3.3  无触点集成电路卡 Contactless integrated circuit(s) card

一种ID-1型卡(如ISO/IEC 7810中所规定),在它上面已装入集成电路,并且与集成电路的通信是用无触点的方式完成的。

3.4  接近式卡 Proximity cardPICC

一种ID-1型卡,在它上面已装入集成电路和耦合电路,并且与集成电路的通信是通过与接近式耦合设备的电感耦合完成的。

3.5  接近式耦合设备 Proximity coupling devicePCD

用电感耦合给PICC提供能量并控制与PICC交换数据的读/写设备。

3.6  位持续时间 Bit duration

确定一逻辑状态的时间,在这段时间结束时,一个新的位将开始。

3.7  二进制移相键控 Binary phase shift keying

移相为180°的移相键控,从而导致两个可能的相位状态。

3.8  调制指数 Modulation index

定义为[a-b]/[a+b],其中ab分别是信号幅度的峰值和最小值。

3.9  不归零电平 NRZ-L

位编码的方式,借此,位持续期间的逻辑状态可以通过通信媒介的两个已定义的物理状态之一来表示。

3.10  副载波 Subcarrier

以频率fs调制载波频率fc而产生的RF信号。

3.11  防冲突环 anticollision loop

为了在PCD激励场中准备PCD和几个PICC中的一个或多个之间的对话所使用的算法。

3.12  比特冲突检测协议 bit collision detection protocol

在帧内比特级使用冲突检测的防冲突方法。冲突出现在至少两个PICC把互补比特模式发送给PCD时。在这种情况下,比特模式被合并,在整个(100%)位持续时间内载波以副载波来调制。

PCD检测出碰撞比特并按串联次序识别所有PICC ID

3.13  字节 byte

由指明的8位数据b1b8组成,从最高有效位(MSBb8)到最低有效位(LSBb1)。

3.14  冲突 collision

在同一PCD激励场中并且在同一时间周期内两个PICC的传输,使得PCD不能辨别数据是从哪一个PICC发出的。

3.15  基本时间单元(etu elementary time unitetu

对于本部分,基本时间单元(etu)定义如下:

1etu=128/fc,(即9.4 µs,标称的)。

3.16   frame

帧是一序列数据位和任选差错检测位,它在开始和结束处有定界符。

注:类型A PICC使用为类型A定义的标准帧,类型B PICC使用为类型B定义的标准帧。

3.17  高层 higher layer

属于应用或高层协议,它不在本部分描述。

3.18  时间槽协议 time slot protocol

PCD与一个或多个PICC建立逻辑通道的方法,该方法对于PICC响应使用时间槽定位,类似于slotted-Aloha 方法。

3.19  唯一识别符 Unique identifierUID

UID是类型A防冲突算法所需的一个编号。

3.20   block

帧的一种特殊类型,它包含有效协议数据格式。

注:有效协议数据格式包括I-块、R-块或S-块。

3.21  无效块 invalid block

帧的一种类型,它包含无效协议格式。

注:没有接收到帧的超时不被解释为一无效块。


4  符号和缩略语

ACK

肯定确认

AFI

应用族识别符,应用的卡预选准则。

APa

在ATQB中使用的防冲突前缀a

APc

在属性中使用的防冲突前缀c

APf

在REQB中使用的防冲突前缀f

APn

在Slot-MARKER命令中使用的防冲突前缀n

ASK

移幅键控

ATA

属性应答

ATQ

请求应答

ATQA

请求应答,类型A

ATQB

请求应答,类型B

ATS

选择应答

ATTRIB

PICC选择命令

BCC

UID CLn校验字节, 4个先前字节的“异或”值

BPSK

二进制移相键控

CID

卡标识符

CLn

串联级n,3≥n≥1

CRC

循环冗余校验,如第7章中为每种类型的PICC所定义的

CRC_A

7.2.1.10中定义的循环冗余校验差错检测码

CRC_B

7.3.2中定义的循环冗余校验差错检测码

CT

串联标记,‘88’

D

除数

DESEL

取消选定命令

DR

接收的除数(PCD到PICC)

DRI

接收的除数整数(PCD到PICC)

DS

发送的除数(PICC到PCD)

DSI

发送的除数整数(PICC到PCD)

E

通信结束,类型A

EDC

差错检测码

EGT

额外保护时间

EOF

帧结束,类型B

etu

基本时间单元,1比特数据传输的持续时间

fc

载波频率(作场的频率,13.56MHz)

FGT

帧保护时间

fs

副载波调制频率

FSC

接近式卡帧长度

FSCI

接近式卡帧长度整数

FSD

接近式耦合设备帧长度

FSDI

接近式耦合设备帧长度整数

FWI

帧等待时间整数

FWT

帧等待时间

FWTTEMP

临时帧等待时间

HALT

类型A PICC暂停命令

I-block

信息块

ID

标识号

INF

属于高层的信息字段

LSB

最低有效位

MAX

最大值

MIN

最小值

MSB

最高有效位

N

防冲突槽的数目或每个槽内PICC响应的概率

n

变量整数值,如特定条款中所定义

NAD

结点地址

NAK

否定确认

NRZ-L

不归零电平,(L为电平)

NVB

有效位的数目

OOK

on/off keying,开/关键控

OSI

开放系统互连

P

奇校验位

PARAM

属性格式中的参数

PCB

协议控制字节

PCD

接近式耦合设备(读写器)

PICC

接近式卡

PPS

协议和参数选择

PPS0

协议和参数选择参数0

PPS1

协议和参数选择参数1

PPSS

协议和参数选择开始

PUPI

伪唯一PICC标识符

R

防冲突序列期间PICC所选定的槽号

R(ACK)

包含肯定确认的R-块

R(NAK)

包含否定确认的R-块

RATS

选择应答请求

R-block

接收准备块

REQA

请求命令,类型A

REQB

请求命令,类型B

RF

射频

RFU

保留供将来使用

rms

有效值

S

通信开始,类型A

SAK

选择确认

S-block

管理块

SEL

选择命令

SFGI

启动帧保护时间整数

SFGT

启动帧保护时间

SOF

帧的开始,类型B

TR0

PCD off和PICC on之间静默的最小延迟。(仅类型B)

TR1

PICC数据传输之前最小副载波的持续期。(仅类型B)

UID

唯一标识符

UIDn

唯一标识符的字节数目n,n≥0

WTX

等待时间延迟

WTXM

等待时间延迟乘数

WUPA

类型A PICC唤醒命令

本部分使用下列记法:

(xxxxx)b 数据位表示

‘XY’ 十六进制记法,等同于基数16XY

 


5  物理特性

5.1  一般特性

PICC应具有与ISO/IEC 7810中为ID-1型卡规定的要求相应的物理特性。

5.2  尺寸

PICC的额定尺寸应是ISO/IEC 7810中规定的ID-1型卡的尺寸。

注:根据国内生产情况,PICC的厚度可以为0.76±0.08mm(双界面卡除外)。

5.3  附加特性

5.3.1  紫外线

本标准不包括保护PICC不受到超出正常水平剂量紫外线的影响。需要加强防护的部分应是卡制造商的责任并应注明可以承受紫外线的程度。

5.3.2  X-射线

卡的任何一面暴露于100KeV的中等能量X-射线(每年0.1Gy的累积剂量)后,应不引起该卡的失效。

注:这相当于人暴露其中能接受的最大值的年累积剂量的近似两倍。

5.3.3  动态弯曲应力

按照ISO/IEC 10373-6中描述的测试方法(其中短边和长边的最大偏移为hwA=20mmhwB=10mm)测试后,PICC应能继续正常工作。

5.3.4  动态扭曲应力

按照ISO/IEC 10373-6中描述的测试方法(其中旋转角度α等于15°)测试后,PICC应能继续正常工作。

5.3.5  交变磁场

a)在下表给出的平均磁场强度的磁场内暴露后,PICC应能继续正常工作。

表格 51:磁场强度与频率

频率范围(MHz

平均磁场强度(A/m

平均时间(min

0.3~3.0

1.63

6

3.0~30

4.98/f

6

30~300

0.163

6

磁场的峰值强度被限制在磁场平均强度的30倍。

b)在12A/m13.56MHz频率的磁场中暴露后,PICC应能继续正常工作。

5.3.6  交变电场

在下表给出的平均电场强度的电场内暴露后,PICC应能继续正常工作。

表格 52:电场强度与频率

频率范围(MHz

平均电场强度(V/m

平均时间(min

0.3—3.0

0.614

6

3.0—30

1842/f

6

30—300

61.4

6

电场的峰值强度被限制在电场平均强度的30倍。

5.3.7  静电

按照ISO/IEC 10373-6中描述的测试方法(其中测试电压为6kV)测试后,PICC应能继续正常工作。

5.3.8  静态磁场

640kA/m的静态磁场内暴露后,PICC应能继续正常工作。

警告:磁条上的数据内容可能被这样的磁场擦去。

5.3.9  工作温度

0℃50℃的环境温度范围内,PICC应能正常工作。

6  射频功率和信号接口

6.1  PICC的初始对话

PCDPICC之间的初始对话通过下列连续操作进行:

——PCDRF工作场激活PICC

——PICC静待来自PCD的命令

——PCD传输命令

——PICC传输响应

这些操作使用下列条款中规定的射频功率和信号接口。

6.2  功率传送

PCD应产生给予能量的RF场,为传送功率,该RF场与PICC进行耦合,为了通信,该RF场应被调制。

6.2.1  频率

RF工作场频率(fc)应为13.56MHz±7kHz

6.2.2  工作场

最小未调制工作场为Hmin,其值为1.5A/mrms)。

最大未调制工作场为Hmax,其值为7.5A/mrms)。

PICC应按预期在HminHmax之间持续工作。

PCD应在制造商规定的位置(工作空间)处产生一个最小为Hmin,但不超过Hmax的场。

另外,在制造商规定的位置(工作空间),PCD应能将功率提供给任意的PICC

PICC的任何可能位置内,PCD应不产生高于在5.3.5中规定的交变磁场。

PCD工作场的测试方法在国际标准ISO/IEC 10373-6中规定。

6.3  信号接口

两种通信信号接口A类和B类在下列各条中予以描述。

在检测到A类或B类的PICC存在之前,PCD应选择两种调制方法之一。

在检测到A类或B类的PICC存在之前,PCD处于闲置状态时,PCD应该轮流使用A类和B的调制方式,来探测这两类PICC

在通信期间,直到PCD停止通信或PICC移走,只有一个通信信号接口可以是有效的。然后,后续序列可以使用任一调制方法。

图是下面几个部分描述概念的示意图。

*也可能数据反相

图表 61A类、B类接口的通信信号举例

6.4  A类通信信号接口

6.4.1  PCDPICC的通信

6.4.1.1 数据速率

在初始化和防冲突期间,传输的数据波特率应为fc/128~106kbps)。

6.4.1.2 调制

使用RF工作场的ASK100%调制原理来产生一个如图6-2所示的暂停(pause状态来进行PCDPICC间的通信。

PCD场的包络线应单调递减到小于其初始值HINITIAL5%并至少在t2时间内保持小于5%该包络线应符合图表 62

如果PCD场的包络线不单调递减,则当前最大值和在当前最大值前通过相同值的时间之间的时间应不超过0.5μs。如果当前最大值大于HINITIAL5%,这种情况才适用。

上冲应保持在HINITIAL90%110%之内。

在场超出HINITIAL5%之后和超出HINITIAL60%之前PICC应检测到暂停(pause)结束

注:在设计成一个时间内仅处理一张卡的系统中,t4不必加以考虑。

图表 62

暂停

注:该定义适用于所有调制包络定时。

图表 63暂停结束的定义

6.4.1.3 位的表示和编码

定义了下面的序列:

序列X

在64/fc时间后,一个“暂停(pause)”应出现。

序列Y

在整个位持续时间(128/fc),没有调制出现。

序列Z

在位持续时间开始时,一个“暂停(pause)”应出现。

上面的序列用于编码下面的信息:

逻辑“1”

序列X

逻辑“0”

序列Y带有下列两种异常情况:

序列Y,除了下列两种异常情况:

ⅰ)如果有两个或两个以上的连续“0”,则序列Z应从第二个“0”处开始被使用。

ⅰ)如果有两个或两个以上的连续“0”,则第二个“0”开始的所有连续的“0”序列Z表达

 

)如果在起始帧后的第一位是“0”,则序列Z应被用来表示它,并且以后直接紧跟着任何个“0”。

)如果在起始帧后的第一位是“0”,它以及它之后直接紧跟着的所有的“0”用序列Z表达

 

通信的开始

序列Z

通信的结束

逻辑“0”,后面跟随着序列Y

 

没有信息

至少两个序列Y

6.4.2  PICCPCD的通信

6.4.2.1 数据速率

在初始化和防冲突期间,传输的数据波特率应为fc/128~106kbps)。

6.4.2.2 负载调制

PICC应能经由电感耦合区域与PCD通信,在该区域中,所加载的载波频率能产生频率为fs的副载波。该副载波应能通过切换PICC中的负载来产生。

在以测试方法描述的方法测试时,负载调制幅度应至少为30/H1.2 mV(峰值),其中H是以A/m为单位的磁场强度的(rms)值。

PICC负载调制的测试方法在国际标准ISO/IEC 10373-6中定义。

6.4.2.3 副载波

副载波负载调制的频率fc应为fc/16~847kHz),因此,在初始化和防冲突期间,一个位持续时间等于8个副载波周期。

6.4.2.4 副载波调制

每一个位持续时间均以已定义的与副载波相关的相位开始。位周期以已加载的副载波状态开始。

副载波由接通”/“断开键控按6.4.2.5定义的序列来调制。

6.4.2.5 位的表示和编码

位编码应是带有下列定义的曼彻斯特编码:

序列D

对于位持续时间的第1个1/2(50%),载波应以副载波来调制。

序列E

对于位持续时间的第2个1/2(50%),载波应以副载波来调制。

序列F

对于1个位持续时间,载波不以副载波来调制。

逻辑“1”

序列D

逻辑“0”

序列E

通信开始

序列D

通信结束

序列F

没有信息

没有副载波

6.5  B类通信信号接口

6.5.1  PCDPICC的通信

6.5.1.1 数据速率

在初始化和防冲突期间,传输的数据波特率应为fc/128~106kbps)。容差和位边界在7中定义。

6.5.1.2 调制

借助RF工作场的ASK10%调幅来进行PCDPICC间的通信。

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

调制波形应符合图表 64,调制的上升、下降沿应该是单调的。

图表 64

类调制波形

6.5.1.3 位的表示和编码

位编码格式是带有如下定义的逻辑电平的NRZ-L

逻辑“1” 载波场高幅度(没有使用调制)。

逻辑“0” 载波场低幅度。

6.5.2  PICCPCD的通信

6.5.2.1 数据速率

在初始化和防冲突期间,传输的数据波特率应为fc/128~106kbps)。

6.5.2.2 负载调制

PICC应能经由电感耦合区域与PCD通信,在该区域中,所加载的载波频率能产生频率为fs的副载波。该副载波应能通过切换PICC中的负载来产生。

在以测试方法描述的方法测试时,负载调制幅度应至少为30/H1.2 mV(峰值),其中H是以A/m为单位的磁场强度的rms值。

PICC负载调制的测试方法在国际标准ISO/IEC 10373-6中定义。

6.5.2.3 副载波

副载波负载调制的频率fc应为fc/16~847KHz),因此,在初始化和防冲突期间,一个位持续时间等于8个副载波周期。

PICC仅当数据被发送时才产生一副载波。

6.5.2.4 副载波调制

副载波应按图表 65中所描述的进行BPSK调制。移相应仅在副载波的上升或下降沿的标称位置发生。

图表 65允许的移相(PICC内部副载波负载切换)

6.5.2.5 位的表示和编码

位编码应是NRZ-L,其中,逻辑状态的改变应通过副载波的移相(180°)来表示。

PICC帧的开始处,NRZ-L的初始逻辑电平是通过下面的序列建立的:

在来自PCD的任何命令之后,在保护时间TR0内,PICC应不生成副载波。TR0应大于64/fs

然后,在延迟TR1之前,PICC应生成没有相位跃变的副载波,建立了副载波相位基准Φ0TR1应大于80/fs

副载波的初始相位状态Φ0应定义为逻辑“1”,从而第一个相位跃变表示从逻辑“1”到逻辑“0”的跃变。

随后逻辑状态根据副载波相位基准来定义:

Φ0

逻辑状态1

Φ0+180°

逻辑状态0

6.6  PICC最小耦合区

PICC耦合天线可以有任何形状和位置,但应如图表 66所示围绕区域。

图表 66PICC最小耦合区

 


7  初始化和防冲突

7.1  轮询

PICC暴露于未调制的工作场内(见6  ),它能在5ms内接受一个请求。

例如:

当类型A PICC接收到任何类型B命令时,它能在5ms内接受一个REQA

当类型B PICC接收到任何类型A命令时,它能在5ms内接受一个REQB

为了检测进入其激励场的PICCPCD发送重复的请求命令并寻找ATQ。请求命令应按任何顺序使用这里描述的REQAREQB,此外,也可能使用10.5中描述的其他编码。这个过程被称为轮询。

7.2  类型A-初始化和防冲突

本章描述了适用于类型A PICC的比特冲突检测协议。

7.2.1  字节、帧、命令格式和定时

本章定义了通信初始化和防冲突期间使用的字节、帧与命令的格式和定时。关于比特表示和编码,参考6  

7.2.1.1 帧延迟时间

帧延迟时间(FDT定义为在相反方向上所发送的两个帧之间的时间

7.2.1.2 帧保护时间

帧保护时间(FGT)定义为最小帧延迟时间。

7.2.1.3 PCDPICC的帧延迟时间

PCD所发送的最后一个暂停的结束与PICC所发送的起始位范围内的第一个调制边沿之间的时间,它应遵守图表 71中定义的定时,此处n为一整数值。

图表 71PICCPCD的帧延迟时间

                       图表 71PCDPICC的帧延迟时间

表格 71定义了n和依赖于命令类型的FDT的值以及这一命令中最后发送的数据位的逻辑状态。

表格 71PCDPICC的帧延迟时间

 

命令类型

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应确保起始位范围内的第一个调制边沿与图表 71中定义的位格对齐。

7.2.1.4 PICCPCD的帧延迟时间

PICC所发送的最后一个调制与PCD所发送的第一个暂停之间的时间,它应至少为1172/fc

7.2.1.5 请求保护时间

请求保护时间定义为两个连续请求命令的起始位间的最小时间。它的值为7000/fc

7.2.1.6 帧格式

对于比特冲突检测协议,定义下列帧类型:

7.2.1.7 REQAWAKE-UP

请求和唤醒帧用来初始化通信并按以下次序组成:

通信开始

7个数据位发送,LSB首先发送。(标准REQA的数据内容是‘26’WAKE-UP请求的数据内容是‘52’

通信结束

不加奇偶校验位。

图表 72REQA

7.2.1.8 标准帧

标准帧用于数据交换并按以下次序组成

通信开始

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

通信结束

图表 73标准帧

 

7.2.1.9 面向比特的防冲突帧

当至少两个PICC发送不同比特模式到PCD时可检测到冲突。这种情况下,至少一个比特的整个位持续时间内,载波以副载波进行调制。

面向比特的防冲突帧仅在比特帧防冲突环期间使用,并且事实上该帧是带有7个数据字节的标准帧,它被分离成两部分:第1部分用于从PCDPICC的传输,第2部分用于从PICCPCD的传输。

下列规则应适用于第1部分和第2部分的长度:

规则1:数据位之和应为56

规则2:第1部分的最小长度应为16个数据位

规则3:第1部分的最大长度应为55个数据位

从而,第2部分的最小长度应为1个数据位,最大长度应为40个数据位。

由于该分离可以出现在一个数据字节范围内的任何比特位置,故定义了两种情况:

FULL BYTE情况:在完整数据字节后分离。在第1部分的最后数据位之后加上一个奇偶校验位。

SPLIT BYTE情况:在数据字节范围内分离。在第1部分的最后数据位之后不加奇偶校验位。

下面全字节情况和分离字节情况的例子定义了位的组织结构和位传输的次序。

注:这些例子包含NVB和BCC的正确值。

 

图表 74面向比特的防冲突帧的比特组织结构和传输,FULL BYTE情况

图表 75

面向比特的防冲突帧的比特组织结构和传输,SPLIT BYTE情况

对于SPLIT BYTEPCD应忽略第二部分的第一个奇偶校验位。

7.2.1.10 CRC_A

CRC_A编码和校验过程在ITU-T建议的V.412段中定义。用来生成校验位的生成多项式为x16 + x12 + x5 + 1。初始值应为‘6363’CRC_A应被添加到数据字节中并通过标准帧来发送。

注:其他描述可以从考虑了如下修改后的ISO/IEC 3309派生:

·初始值:‘6363’而不是‘FFFF’

·计算后寄存器内容应不取反。

示例参考  D

7.2.2  
PICC状态

下列各部分提供了专门针对比特冲突检测协议的类型APICC状态的描述。

 

图表 76类型A PICC状态图(提示的)

注:更详细的类型A PICC状态图可以在  F中得到。

7.2.2.1 POWER-OFF状态

POWER-OFF状态中,由于缺少载波能量,PICC不能被激励并且应不发射副载波。

7.2.2.2 IDLE状态  

IDLE状态

7.1  中定义的最大延迟内激活工作场后,PICC应进入其IDLE状态。在这种状态中,PICC被加电,并且能够解调和识别从PCD来的有效REQAWAKE-UP命令。

7.2.2.3 READY状态

一旦收到有效REQAWAKE-UP报文则立即进入该状态,用其UID选择了PICC时则退出该状态。在这种状态中,比特帧防冲突或其他任选的防冲突方法都可以使用。所有串联级别都在这一状态内处理以取得所有UID CLn

7.2.2.4 ACTIVE状态

通过使用其完整UID选择PICC来进入该状态。

7.2.2.5 HALT状态

该状态通过7.2.3.4中定义的HALT命令或本部分中未定义的应用特定命令来进入。在这种状态中,PICC应仅响应使PICC转换为READY状态的WAKE-UP命令。

注:处于HALT状态的PICC将不参与任何进一步的通信,除非使用了WAKE-UP命令。

7.2.3  命令集

PCD用来管理与几个PICC通信的命令是:

REQA

WAKE-UP

ANTICOLLISION

SELECT

HALT

这些命令使用上面描述的字节和帧格式。

7.2.3.1 REQA命令

REQA命令由PCD发出,以探测用于类型A PICC的工作场。

7.2.3.2 WAKE-UP命令

WAKE-UP命令由PCD发出,使已经进入HALT状态的PICC回到READY状态。它们应当参与进一步的防冲突和选择规程。

表格 72示出了使用请求帧格式的REAQAWAKE-UP命令的编码。

表格 72请求帧的编码

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’ =任选时间槽方法

 

 

 

 

 

 

 

见10.5

1

0

0

×

×

×

×

‘40’ to ‘4F’ = 专有的

1

1

1

1

×

×

×

‘78’ to ‘7F’ = 专有的

所有其他

RFU

 

7.2.3.3 ANTICOLLISION命令SELECT命令

这些命令在防冲突环期间使用。ANTICOLLISIONSELECT命令由下列内容组成:

选择代码SEL1个字节)

有效位的数目NVB1个字节)

根据NVB的值,UID CLn040个数据位

SEL规定了串联级别CLn

NVB规定了PCD所发送的CLn的有效位的数目。

注:只要NVB没有规定40个有效位,若PICC保持在READY状态中,该命令就被称为ANTICOLLISION命令。

如果NVB规定了UID CLn40个数据位(NVB=‘70’),则应添加CRC_A该命令称为SELECT命令。如果PICC已发送了完整的UID,则它从READY状态转换到ACTIVE状态并在其SAK-响应中指出UID(唯一标识符)完整。否则,PICC保持在READY状态中并且该PCD应以递增串联级别启动一个新的防冲突环。

7.2.3.4 HALT命令

HALT命令由四个字节组成并应使用标准帧来发送。

图表 77

HALT命令帧

如果PICCHALT帧结束后1ms周期期间以任何调制表示响应,则该响应应解释为不确认

7.2.4  选择序列

选择序列的目的是获得来自PICCUID以及选择该PICC以便进一步通信。

7.2.4.1 
选择序列流程表

图表 78PCD的初始化和防冲突流程图

7.2.4.2 ATQA-请求应答

PCD发送请求命令(REQA)之后,所有处于IDLE状态的PICC以其在两个数据字节中编码了可用防冲突类型的请求应答(ATQA)表示同步地进行响应,。

如果有多个卡应答,冲突可能出现。PCD应把ATQA内的冲突解码为一个(1)b,其结果是所有ATQA逻辑

有关例子在  F中给出。

7.2.4.2.1 ATQA的编码

表格 73ATQA的编码

MSB                                                                                                                                                  LSB

b16

b15

b14

b13

b12

b11

b10

b9

b8

b7

b6

b5

b4

b3

b2

b1

RFU

UID长度比特帧

RFU

比特帧防冲突

7.2.4.2.2 比特帧防冲突的编码规则

规则1:位b7b8编码了UID长度(单个、两个或三个)

规则2b1b2b3b4b5中的一个应置为(1)b以指出比特帧防冲突。

表格 74比特帧防冲突用的b7b8的编码

b8

b7

含义

0

0

UID长度:单个

0

1

UID长度:两个

1

0

UID长度:三个

1

1

RFU

表格 75比特帧防冲突用的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

7.2.4.3 防冲突和选择

7.2.4.3.1 每个串联级别范围内的防冲突环

下面算法应适用于防冲突环:

步骤1:PCD为选择的防冲突类型和串联级别分配了带有编码的SEL。

步骤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(选择确认)的串联比特是否被设置,以决定带有递增串联级别的进一步防冲突环是否应继续进行。

如果PICCUID是已知的,则PCD可以跳过步骤2~10来选择该PICC,而无需执行防冲突环。

图表 79PCD防冲突环流程图

注:循环编号对应算法步骤。

7.2.4.3.2 SEL的编码(选择代码)

长度:1字节

可能值:‘93’‘95’‘97’

表格 76SEL的编码

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

7.2.4.3.3 NVB的编码(有效比特的数)

长度:1字节

较高4位称为字节计数,规定所有被8分开的有效数据位的数,包括被PCD发送的NVBSEL。这样,字节计数的最小值是2而最大值是7

较高4位称为字节计数,定所有有效数据位包括被PCD发送的NVBSEL的数8除后所得的整数。这样,字节计数的最小值是2而最大值是7

较低4位称为比特计数,规定由PCD发送的模8所有有效数据位的数。

较低4位称为比特计数,定所有有效数据位包括被PCD发送的NVBSEL的数8除后所得的余数

 

表格 77NVB的编码

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

 

7.2.4.3.4 SAK的编码(选择确认)

NVB规定40个有效位并且当所有这些数据位与UID CLn相配时,SAKPICC来发送。

SAK通过标准帧来发送,后随CRC_A

SAK

CRC_A

1字节

2字节

图表 710选择确认(SAK

PCD应校验位b3以判定UID是否完整。位b3b6的编码在表7-8中给出。

 

表格 78SAK的编码

b8

b7

b6

b5

b4

b3

b2

b1

含义

×

×

×

×

×

1

×

×

串联比特设置:UID不完整

×

×

1

×

×

0

×

×

UID完整,PICC遵循ISO/IEC 14443-4

×

×

0

×

×

0

×

×

UID完整,PICC不遵循ISO/IEC 14443-4

如果UID不完整,PICC应保持READY状态并且PCD应以递增的串联级别来初始化新的防冲突环。

如果UID完整,PICC应发送带有清空的串联比特的SAK并从READY状态转换到ACTIVE状态。当提供了附加信息时,PICC应设置SAK的第6b6

附加信息的定义不是本标准本部分的课题,将在8中定义。

7.2.4.4 UID内容和串联级别

UID4710UID字节组成。因此,PICC最多应处理3个串联级别,以得到所有UID字节。在每个串联级别内,5个数据字节组成的UID的一部分应被发送到PCD3个或4UID字节被发送到PCD。根据最大串联级别,定义了UID长度的三个类型。该UID长度必须与下表一致。

表格 79UID长度

最大串联级别

UID长度

字节数

1

单个

4

2

两个

7

3

三个

10

对于UID内容,使用下列定义:

UID CLn: 根据串联级别n,UID的一部分,由5个字节组成,3≥n≥1

UIDn UID的字节#nn≥0

BCCUID CLn校验字节,4个先前字节的异或

CT串联标记,‘88’

UID是一固定的唯一数或由PICC动态生成的随机数。UID的第一个字节(uid0)分配后随UID字节的内容。

表格 710单个长度的UID

uid0

描述

‘08’

uid1uid3是动态生成的随机数

‘x0’-‘x7’

 

‘x9’-‘xE’

专有的固定数

 

‘18’-‘F8’

‘xF’

RFU

串联标记CT的值‘88’应不用于单个长度UID中的uid0

表格 711两个和三个长度的UID

uid0

描述

制造商ID

根据ISO/IEC 7816-6/AM1

每一制造商对唯一编号的其他字节的值的唯一性负责

ISO/IEC 7816-6/AM1中为私用标出的值‘81’‘FE’在本上下文中应不予允许。

图表 711

串联级别的使用

注:串联标记的用途是迫使造成与具有较小UID长度的PICC冲突。因此,UID0UID3都不应具有串联标记的值。

下列算法应适用于PCD以获得完整UID

步骤1PCD选择串联级别1

步骤2:应执行防冲突环

步骤3PCD应检验SAK的串联比特

步骤4:如果设置了串联比特,PCD应增加串联级别并初始化一个新的防冲突环

步骤5:当使用其完整UID来选择PICC时,PICC应发送带有清空串联比特的SAK,并从READY状态转换到ACTIVE状态

7.3  类型B  初始化和防冲突

7.3.1  比特、字节和帧的定时

本章定义了类型B PICC防冲突和通信初始化期间使用的字节、帧和命令的定时。关于比特表示和编码参考6  

7.3.1.1 字符传输格式

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

一个低电平起始位

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

一个高电平停止位

因此,用一个字符执行一个字节的发送需要10etu,如下图所示

图表 712字符格式

一个字符范围内的比特边界应出现在(n–0.125)etu(n+0.125)etu之间,其中n是起始比特的下降沿之后的比特边界数(1≤N≤9)

7.3.1.2 字符间距

一个字符与下一个发送的字符利用额外的保护时间(EGT)来隔开。

PCD发送给PICC的两个连续字符之间的EGT应为057µs之间的任何值。

PICC发送给PCD的两个连续字符之间的EGT应具有019µs之间的任何值。

7.3.1.3 帧定界符

PCDPICC按帧发送字符。帧通常用SOF(帧的起始)和EOF(帧的结束)定界。关于异常情况见7.3.10.2

SOF

字符

EOF

图表 713帧格式

7.3.1.4 SOF

SOF包括:

一个下降沿,

后面紧跟10etu的逻辑0

后面紧跟位于下一个etu内任何地方的一个上升沿,

后面紧跟至少为2etu(但不超过3etu)的逻辑1

图表 714SOF

7.3.1.5 EOF

EOF包括:

一个下降沿,

后面紧跟10etu的逻辑0

后面紧跟位于下一个etu内任何地方的一个上升沿,

图表 715EOF标识符

注:收到假EOF的概率很低,并且对应于在错误收到停止位的情况下传输的‘00’字符。

7.3.1.6 PICCPCD的副载波和SOF

PCD数据传输之后,PICC开始的通信应遵守图中定义的定时。

最小延迟TR0(在PCD EOFPICC副载波接通之间的)和TR1(在PICC副载波接通和第一个比特传输之间的)可在防冲突会话开始时定义(见ATTRIB命令的编码)。TR0TR1的最小值在6中定义。TR1的最大值为200/fsTR0的最大值在7.3.10中定义。

图表 716PICC副载波SOF

仅当PICC打算开始发送信息时,它才可以接通副载波。

7.3.1.7 PICCPCD的副载波和EOF

PICC数据传输和EOF之后,PCD开始的通信应遵守图中的定时。

EOF传输之后,PICC应断开它的副载波。副载波信号应

EOF结束之前不能停止

EOF结束之后的2etu内被停止。

PICC EOF开始(下降沿)和PCD SOF开始(下降沿)之间的最小延迟为14etu

图表 717PICCPCDEOF

7.3.2  CRC_B

Data字节

(N 字节)

CRC_B

(2字节)

图表 718帧范围内CRC_B的位置

如果接收到的帧带有一个有效的CRC_B值,该帧才应被认为是正确的。

CRC_Bk个数据位的函数,该k个数据位由帧中的所有数据位组成,但不包括起始位、停止位、字节间的延迟、SOFEOF以及CRC_B本身。由于数据按字节编码,因此比特数k8的倍数。

对于差错校验,帧包括了两个CRC_B字节,在数据字节之后,EOF之前。CRC_BISO/IEC 3309中定义。寄存器初始内容为全1‘FFFF’。这两个CRC_B字节出现在k/8个数据字节之后和在EOF之前。

举例参考  D

7.3.3  防冲突序列

PCD通过在本章中详述的命令集合对防冲突序列进行管理。

PCD是与一个或多个PICC通信时的主控方,它通过发出REQB命令来启动卡的通信活动,以便提示PICC进行响应。

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

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

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

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

命令集合允许在PCD级实现不同的防冲突管理策略。这个策略处在应用设计者的控制下,并且可包括:

概率的(响应概率小于或等于1的重复性单个时间槽提示),

伪确定性的(扫描所有多个时间槽,以便在防冲突序列期间使所有在场的卡应答的概率最大),

可动态进行的这些方法的组合。

7.3.4  PICC状态描述

在防冲突序列期间,PICC具体的行为是根据不同的状态及状态间的转换条件确定的。

7.3.4.1 状态转换图

图表 719PICC状态转换流程图举例(提示的)

1:R是PICC在1到N(N的编码见7.3.7.4)范围内选择的一个随机数。

2:选项1-对于PICC不支持Slot-MARKER命令(概率接近方法)。

选项2-对于PICC支持Slot-MARKER命令(时间槽接近方法)

7.3.4.2 状态描述和转换的概述

下述退出条件和转换适用于任何状态:

如果RF场消失,则PICC返回到POWER-OFF状态。

下列备注适用于专门针对防冲突序列的任何状态(除ACTIVE状态外):

使用前几节中定义的缺省通信参数。

除发送前几节中规定的响应帧, PICC应不发射副载波。

PICC加电并正确复位时,它收听从PCD收到的任何命令帧。

若来自PCD的帧是有效的(正确的CRC_B),则PICC执行要求的动作和/或根据其状态进行响应。注意,在防冲突命令中,帧中数据的前三位是(101)b(防冲突前缀字节的前三位)。

PICC不应答任何不以(101)b(防冲突前缀字节的前三个位)开始的命令帧。

PICC仅对收到的有效帧进行反应(当检测到传输差错时不发送响应)。

7.3.4.3 POWER-OFF状态

描述:

POWER-OFF状态下,PICC因缺乏载波能量而不加电。

状态退出条件和转换:

如果PICC处于一个能量大于Hmin(见6)的激励磁场,则它应在不大于tORB的延迟范围内进入其IDLE状态。

7.3.4.4 IDLE状态

描述:

IDLE状态下,PICC是加电的,它收听帧并应识别REQB信息。

状态退出条件和转换:

一旦收到一个有效REQB命令帧,如果有ATQB的话,PICC就定义一个唯一的时间槽用来发送它的ATQB(有效的请求意味着具有REQB命令和正确匹配AFI应用族识别符,应用的卡预选准则的有效帧。见REQB命令规范)。

如果定义的时间槽是第一个时间槽,则PICC应发送一个ATQB响应帧。

PICCATQB一被发送,它就进入READY-DECLARED状态。

如果定义的时间槽不是第一个时间槽,当用时间槽接近方法时,PICC进入READY-REQUESTED状态。

如果定义的时间槽不是第一个时间槽,当用概率接近方法时,返回IDLE状态。

7.3.4.5 READY-REQUESTED状态

描述:

READY-REQUESTED状态下,PICC是加电的,并且定义了一个唯一的时间槽用来发送其ATQB(如果有)。

它收听帧并应识别REQBSlot-MARKER报文。

状态退出条件和转换:

    当用时间槽接近方法时,一旦收到一个有效Slot-MARKER帧,如果PICC定义的时间槽与时间槽标记匹配。则它应对ATQB进行响应。在特定时间槽内,应答的概率应不大于1/NN是收到的最后一个REQB的参数)。

PICCATQB一被发送,它就进入READY-DECLARED状态。

当用时间槽接近方法时,如果PICC定义的时间槽与时间槽标记不匹配,则该PICC就保持在READY-REQUESTED状态。

一旦收到有效REQB命令帧,状态退出条件和转换按在IDLE状态下接收到有效REQB命令帧。

7.3.4.6 READY-DECLARED状态

描述:

READY-DECLARED状态下,PICC是加电的,并且发送了与收到的最后一个有效REQB报文相对应的其ATQB

它收听帧并应识别REQBATTRIB报文。

状态退出条件和转换:

一旦收到带有ATTRIB命令的有效帧,当且仅当ATTRIB命令中的PUPIPICCPUPI匹配时,PICC才应进入ACTIVE状态。

ATTRIB命令中的PUPIPICCPUPI不匹配,则PICC仍保持在READY-DECLARED状态。

一旦收到有效REQB命令帧,状态退出条件和转换按在IDLE状态下接收到有效REQB命令帧。

一旦收到匹配的HALT命令,PICC应进入HALT状态。

7.3.4.7 ACTIVE状态

描述:

PICC是加电的,并且自从信道号(CID)已经通过ATTRIB命令已分配给该PICC以来,PICC便进入高层模式。

它收听正确格式化(正确的CID和有效的CRC_B)的任何高层报文。

PICC应不在收到任何带有无效CRC_B或带有另一个CID(不是所分配的那个CID)的帧以后发射副载波。

状态退出条件和转换:

当收到有效的HALT命令帧时,PICC进入HALT状态。

特定备注:

应该不应答有效REQBSlot-MARKER帧。

应该不应答带有ATTRIB命令的有效帧。

在高层协议中,可以定义特定的命令用来把PICC返回到其他状态(IDLEHALT)。只有在收到这样的命令以后,PICC才可以返回到这些状态。

7.3.4.8 HALT状态

描述:

PICC仅响应使它回到IDLE状态的WAKE-UP命令。

状态退出条件和转换:

如果RF场消失,则PICC返回到POWER-OFF状态。

7.3.5  命令集合

四个基本的命令可用来管理多结点通信信道:

REQB

Slot-MARKER

ATTRIB

HALT

所有这四个命令都使用了上面详述的比特和字节格式。

这些命令以及PICC对这些命令的响应在下列各条中描述。

所收到的带有错误格式的帧(错误的帧标识符或无效的CRC_B)应忽略。

7.3.5.1 防冲突命令格式

为了区分防冲突命令和应用命令,所有用于防冲突阶段的命令都以序列:(101)b开始。

7.3.6  ATQBSlot-MARKER响应概率规则

一旦收到一个有效REQB帧(N为定义时间槽编号的REQB参数):

N=1并且AFI=0,则PICC应该应答ATQB并进入READY-DECLARED状态。

N不为1,则PICC应该以概率为1/N来应答ATQB

AFI不为0,则仅带有由AFI所指出的应用类型的PICC可以应答。

一旦收到一个有效Slot-MARKER帧:

PICC内部定义的时间槽与时间槽标记号匹配,则它应该应答ATQB

在一个特定的时间槽内的响应概率不应大于1/NN为收到的最后一个REQB的参数)。

7.3.7  REQB命令

PCD所发出的REQB命令用来探测类型B PICC的场。

时间槽编号(或每个时间槽内的响应概率)N作为一个参数包含在REQB命令中,以优化给定应用的防冲突算法。每个不处于ACTIVEHALT状态(即处于IDLEREADY状态)的PICC应处理该报文,并选择它将在哪个时间槽(每个时间槽被选中的概率都为1/N)内返回它的ATQB响应信息。

7.3.7.1 REQB命令格式

REQB命令由PCD发出,长度为5个字节,格式为:

Apf(在REQB中使用的防冲突前缀f)

(1字节)

AFI(应用族识别符,应用的卡预选准则。)

(1字节)

PARAM(属性格式中的参数)

(1字节)

CRC_B

(2字节)

图表 720REQB命令格式

注:为了有更多的时间在线地处理信息,要求经常处理的信息位置靠前。

7.3.7.2 防冲突前缀字节APf的编码

防冲突前缀字节APf=‘05’=(0000 0101)b

7.3.7.3 AFI的编码

AFI(应用族标识符)代表由PCD所瞄准的应用类型。AFI可用来在ATQB之前预先选择PICC:只有那些具有由AFI所指出的类型的应用的PICC才可以应答AFI不等于‘00’REQB命令。

AFI等于‘00’,所有PICC应处理REQB

AFI的最高有效半字节可用来编码按表定义的某个特定的应用族或所有应用族。

AFI的最低有效半字节可用来编码某个特定应用子族或所有应用子族。不同于0的子族代码是专有的。

表格 712AFI的编码

AFI

最高有效半字节

AFI

最低有效半字节

含义-PICC

响应来自

举例/注释

‘0’

‘0’

所有族和子族

没有应用预选

‘X’

‘0’

族X的所有子族

广泛的应用预选

‘X’

‘Y’

仅族X的第Y个子族

 

‘0’

‘Y’

仅专有的子族Y

 

‘1’

‘0’, ‘Y’

运输

集团运输,汽车,航空公司,…

‘2’

‘0’, ‘Y’

金融

IEP,银行,零售,…

‘3’

‘0’, ‘Y’

标识

门禁控制,…

‘4’

‘0’, ‘Y’

电信

公用电话,GSM,…

‘5’

‘0’, ‘Y’

医学

 

‘6’

‘0’, ‘Y’

多媒体

因特网服务,…

‘7’

‘0’, ‘Y’

博彩

 

‘8’

‘0’, ‘Y’

数据存储

可移植文件,…

‘9’-‘F’

‘0’, ‘Y’

RFU

 

注:1、 如果AFI=‘00’,则所有的PICC都应响应(没有预先选择)。

2、X=‘1’到‘F’,Y=‘1’到‘F’。

7.3.7.4 PARAM的编码

RFU

 

 

 

 

b8=0

b7=0

b6=0

b5=0

b4=0

b3

b2

b1

图表 721PARAM的编码

b4=0正常请求PICCIdle状态或Ready状态下处理该请求)

b4=1请求所有PICCIdle状态或Ready状态或HALT状态下处理该请求)

b1b3用来编码对应下表的时间槽N的数。

表格 713N的编码

b3b2b1

N

000

001

010

011

100

101

11×

1=20

2=21

4=22

8=23

16=24

RFU

RFU

注:对于每个PICC,在第一个时间槽内响应(ATQB)的概率应为1/N。因此,如果PCD中使用了概率接近的方法,则N不可用来调整时间槽的编号,而是在这个唯一的时间槽内PICC返回它的ATQB的概率。

7.3.8  Slot-MARKER命令

REQB命令之后,PCD可发送至多(N-1)个时间槽标记来定义每个时间槽的开始。为了确保良好的可靠性,每个时间槽标记包含两个CRC_B字节。

不强制PICC支持该命令。在这种情况下(概率接近方法)PICC应忽略任何Slot-MARKER命令。PICC仅可在第一个时间槽内发送其ATQ

时间槽标记可以:

PCD收到的ATQB报文结束之后被发送,以便标记下一个时间槽的开始。

如果没有收到ATQB(如果已知该时间槽为空,则不必等到该时间槽结束),则较早地被发送。

7.3.8.1 Slot-MARKER命令格式

该命令由PCD发送,大小为3字节,格式:

APn

(1字节)

CRC_B

(2字节)

图表 722Slot-MARKER命令格式

7.3.8.2 防冲突前缀字节APn的编码

Slot-MARKER的第一个字节不同于REQB字节APf

APn=nnnn 0101b,其中nnnn是时间槽标记的编号,范围从115范围从216

注:不强制时间槽标记按递增的时间槽编号顺序来发送。

7.3.9  ATQB(请求应答-类型B)响应

REQBSlot-MARKER命令的响应都被称作ATQB(请求应答)。

ATQB有固定长度(14个字节)和限定的持续时间。

仅对于ATQB 6  中定义的TR0应不大于256/fs

7.3.9.1 ATQB格式

ATQB的格式为:

‘50’

(1字节)

PUPI

(4字节)

应用数据

(4字节)

协议信息

(3字节)

CRC_B

(2字节)

图表 723ATQB格式

7.3.9.2 PUPI(伪唯一PICC标识符)

伪唯一PICC标识符(PUPI)可用来区分防冲突期间的不同PICC。这4字节数可以是PICC动态产生的一个数或一个多样化的固定数PUPI只能在IDLE状态时改变。

7.3.9.3 应用数据

该字段用来通知PCDPICC上当前安装了哪些应用。这个信息使得在有多个PICC存在时,PCD能选择想要的PICC

7.3.9.4 协议信息

该字段指示了卡所支持的参数。它的具体格式如下:

比特速率能力

(8位)

最大帧长度

(4位)

协议类型

(4位)

FWI

(4位)

RFU

(2位)

FO

(2位)

图表 724协议信息格式

比特速率能力8位)

表格 714PICC支持的比特速率

b8

b7

b6

b5

b4

b3

b2

b1

含义

0

0

0

0

0

0

0

0

在两个方向上PICC仅支持106kbits/s

1

-

-

-

0

-

-

-

从PCD到PICC和从PICC到PCD强制相同的比特速率

-

-

-

1

0

-

-

-

PICC到PCD,1etu=64/fc,支持的比特速率为212kbit/s

-

-

1

-

0

-

-

-

PICC到PCD,1etu=32/fc,支持的比特速率为424kbit/s

-

1

-

-

0

-

-

-

PICC到PCD,1etu=16/fc,支持的比特速率为847kbit/s

-

-

-

-

0

-

-

1

PCD到PICC,1etu=64/fc,支持的比特速率为212kbit/s

-

-

-

-

0

-

1

-

PCD到PICC,1etu=32/fc,支持的比特速率为424kbit/s

-

-

-

-

0

1

-

-

PCD到PICC,1etu=16/fc,支持的比特速率为847kbit/s

最大帧长度4位):见

表格 715最大帧长度

PICC可接收的最大帧长度编码如下:

ATQB中的最大帧长度代码

0

1

2

3

4

5

6

7

8

9-F

最大帧长度(字节)

16

24

32

40

48

64

96

128

256

RFU>256

协议类型4位):见表7-14

表格 716PICC支持的协议类型

PICC支持的协议类型定义如下:

b4

b3

b2

b1

含义

0

0

0

1

PICC支持ISO/IEC14443-4

0

0

0

0

ISO/IEC14443-4除外  不支持ISO/IEC14443-4

其他值是RFU

FWI:帧等待时间整数(4位),见8  

FO:帧选项(2位)

表格 717PICC支持的帧选项

b2

b1

含义

-

1

PICC支持的NAD   PICC支持CID

1

-

PICC支持的CID   PICC支持NAD

7.3.10  ATTRIB命令

PCD发送的ATTRIB命令应包括选择单个PICC所要求的信息。

收到一个带有其标识符的ATTRIB命令的PICC就成为选中的,并分配到一个专用信道。在选中之后,该PICC仅响应8中定义的包括其唯一CID的命令。

7.3.10.1 ATTRIB格式

PCD发出的ATTRIB的格式如下:

‘1D’

(1字节)

标识符

(4字节)

参数1

(1字节)

参数2

(1字节)

参数3

(1字节)

CID

(1字节)

高层INF

(任选-可变长度)

CRC_B

(2字节)

图表 725ATTRIB格式

7.3.10.2 标识符的编码

该标识符是PICC发送的ATQB中的PUPI的值。

7.3.10.3 参数1的编码

TR0

TR1

EOF

SOF

RFU

b8

b7

b6

b5

b4

b3

b2

b1

图表 726PARAM 1的编码

若无其他规定,所有RFU位应被置为0

EOF/SOF

b3b4指示PCD有能力抑制从PICCPCDEOFSOF中断,该能力可以减少通信开销。对PICC,抑制EOF/SOF是任选的。b3b4的编码如下:

表格 718SOF/EOF处理

b3

要求SOF断开

 

 

b4

要求EOF断开

0

 

 

0

1

 

 

1

TR0

TR0PICC指示在PCD发送的命令结束之后,进行响应之前的最小延迟。6.5.2.5规定了TR0的缺省值为64/fs

表格 719TR0编码

TR0

副载波传输前的最小延迟

00

01

10

11

64/fs(缺省值)

48/fs

16/fs

RFU

注:该延迟取决于PCD的性能:它是当从发送切换到接收时PCD所要求的。

TR1

TR1PICC指示副载波调制开始和数据传输开始之间的最小延迟。6.5.2.5规定了TR0的缺省值为80/fs

表格 720TR1编码

TR1

无调制的最小副载波持续时间

00

01

10

11

80/fs(缺省值)

64/fs

16/fs

RFU

注:该延迟取决于PCD的性能:它是PCD为与PICC同步所要求的。

7.3.10.4 参数2的编码

b1b4可用来编码表中规定的可被PCD接收到的最大帧长度。

表格 721参数2b1b4的编码

ATQB中最大帧长度代码

0

1

2

3

4

5

6

7

8

9-F

最大帧长度(字节)

RFU

RFU

32

40

48

64

96

128

256

RFU>256

b5b8用于比特速率选择,如表所规定。

表格 722参数2b5b8的编码

b6  b5

含义

00

01

10

11

PCD到PICC,letu=128/fc,比特速率为106kbit/s

PCD到PICC,letu=64/fc,比特速率为212kbit/s

PCD到PICC,letu=32/fc,比特速率为424kbit/s

PCD到PICC,letu=16/fc,比特速率为847kbit/s

b8  b7

含义

00

01

10

11

PICC到PCD,letu=128/fc,比特速率为106kbit/s

PICC到PCD,letu=64/fc,比特速率为212kbit/s

PICC到PCD,letu=32/fc,比特速率为424kbit/s

PICC到PCD,letu=16/fc,比特速率为847kbit/s

7.3.10.5 参数3的编码

b4 b3 b2 b1=0001

b8 b7 b6 b5=RFU=0000

7.3.10.6 CID的编码

最低有效半字节(b4b1)被称为卡识别符(CID),并定义了在014范围内寻址PICC的逻辑号。值15RFUCIDPCD规定并对所有在同一时刻处于ACTIVE状态的PICC是唯一的。

7.3.10.7 高层INF

任何高层命令都可以包括在内。

不强制PICC成功地处理在本上下文中的任何命令。

但是如果不包含任何应用命令,PICC仍应成功地处理这种报文。

7.3.11  ATTRIB命令的应答

PICC应使用高层协议格式对第一个正确地被标识出的PUPI(带有效CRC_BATTRIB命令进行应答。

PICC应使用下面描述的格式对任何有效的ATTRIB命令进行应答。

CID

(1字节)

高层响应

(任选-不同长度)

CRC_B

(2字节)

图表 727ATTRIB命令的应答格式

注:长度等于高层数据加上3个协议字节的总数。

如下图所示:PICC应使用一个空的高层响应来应答空的ATTRIB命令。

‘1D’

(1字节)

标识符

(4字节)

参数1到3

(1字节)

CID

(1字节)

CRC_B

(2字节)

图表 728PCD发送到PICCATTRIB命令

 

CID

(1字节)

CRC_B

(2字节)

图表 729PICCATTRIB的应答

注:

·对任何ATTRIB命令正确格式化的(有效CID和CRC_B字段)应答是PCD检测PICC选择已成功的手段。

·只要PICC响应满足上面描述的格式,就可以指示允许在本上下文中PICC不支持高层命令的高层响应。

7.3.12  HALT命令及应答

该命令用于将PICC置为HALT状态,因而对正常REQB没有更多的响应,从而不再响应REQB

对该命令应答后,PICC仅对Wake up REQB命令应答(见7.3.7  )。

PCD发出的HALT命令格式如下:

‘50’

(1字节)

识别符

(4字节)

CRC_B

(2字节)

图表 730HALT命令格式

标识符为PICC发送的ATQBPUPI的值。

对来自PICCHALT命令的应答的格式如下:

‘00’

(1字节)

CRC_B

(2字节)

图表 731PICCHALT的应答

 

 


8  传输协议

8.1  类型A PICC的协议激活

应使用下列激活序列:

——7  中所定义的PICC激活序列(请求、防冲突环和选择)。

——为获得ATS,在开始应校验到SAK字节。SAK7  中定义。

——如果没有获得ATS,使用7  中定义的HALT命令,PICC可被置为HALT状态。

——如果获得了ATS,在接收到SAK后,PCD可发送RATS作为下一条命令。

——PICC应发送其ATS作为对RATS的应答。如果在选择后直接接收到RATS,则PICC应仅应答RATS

——如果PICCATS中支持任何变化的参数,PCD可使用PPS请求作为接收到ATS后的下一条命令,并用其来改变参数。

——PICC应发送PPS响应作为对PPS请求的应答。

如果PICCATS中不支持任何变化的参数,则它无需执行PPS

下图示出了从PCD角度来看的类型A PICC激活序列。

 

图表 81PCD角度来看的类型A PICC激活

8.1.1  选择应答请求

定义了带有所有字段的RATS(见图)。

 

                                   开始字节

 

                                   参数字节

                                   编码FSDICID

 

 

 

 

 

图表 82选择应答请求

参数字节由两部分组成(见图):

——最高有效半字节b8b5称为FSDI,它用于编码FSDFSD定义了PCD能收到的帧的最大长度。FSD的编码在表8-1中给出。

——最低有效半字节b4b1命名为CID,它定义编址了的PICC的逻辑号在014范围内。值15RFUCIDPCD规定,并且对同一时刻处在ACTIVE状态中的所有PICC,它应是唯一的。CIDPICC被激活期间是固定的,并且PICC应使用CID作为其逻辑标识符,它包含在接收到的第一个无差错的RATS

 

图表 83RATS参数字节的编码

 

表格 81FSDFSDI的转换

FSDI

‘0’

‘1’

‘2’

‘3’

‘4’

‘5’

‘6’

‘7’

‘8’

‘9’-‘F’

FSD

(字节)

16

24

32

40

48

64

96

128

256

RFU

>256

 

8.1.2  选择应答

本章定义了带有其所有可用字段的ATS(选择应答)(见图)。

在已定义字段中的一个没有在PICC发送的ATS中出现的情况下,应应用该字段的缺省值。

 

图表 84ATS的结构

8.1.2.1 字节结构

长度字节TL以下面的顺序跟随着可选后续字节的可变号码:

——格式字节T0

——接口字节TA(1)TB(1)TC(1)

——应用信息字节T1TK

8.1.2.2 长度字节

长度字节TL是强制的,它规定了传送的ATS(包括其本身)的长度。两个CRC字节并不包括在TL中。ATS的最大长度应不超出指示的FSD。因此TL的最大值应不超过FSD-2

8.1.2.3 格式字节

格式字节T0强制的可选的,并且当长度字节大于1,它便出现。当该格式字节出现时,ATS能仅包含下列可选字节。仅仅当该格式字节存在时,ATS才可以包含紧随的可选字节。

T0由三部分组成(见图):

——最高有效位b8应置为0其他值为RFU等于1RFU

——包含Y(1)的位b7b5指示接口字节TC(1)TB(1)TA(1)的出现。

——最低有效半字节b4b1称为FSCI,它用于编码FSCFSC定义了PICC能接收的帧的最大长度。FSCI的缺省值为2,这导致了一32字节的FSCFSC的编码等于FSD的编码(见表格 81)。

 

图表 85格式字节的编码

8.1.2.4 接口字节TA(1)

接口字节TA(1)由四部分组成(见图):

——最高有效位b8编码了为每个方向处理不同除数(D)的可能性。当该位被置为1时,PICC不能为每个方向处理不同除数。D影响了位持续时间 etu 1 etu = 128 / ( D * fc )

——b7b5PICCPCD方向编码了PICC的位速率能力,称为DS。其缺省值应为(000)b

——b4被置为(0)b,其他值为RFU

——b3b1PCDPICC方向编码了PICC的位速率能力,称为DR。其缺省值应为(000)b

 

图表 86:接口字节TA(1)的编码

为每个方向选择特定除数可以使用PPSPCD来完成。

8.1.2.5 接口字节TB(1)

接口字节TB(1)运送信息以定义帧等待时间和启动帧保护时间。

接口字节TB(1)由两部分组成:

——最高有效半字节b8b5称为FWI,它编码FWT(见8.3.2)。

——最低有效半字节b4b1称为SFGI,它编码了一乘数值用于定义SFGTSFGT定义了在发送了ATS之后,准备接收下一个帧之前PICC所需的特定保护时间。SFGI014范围内编码。值15RFU。值0指示无需SFGT,在114范围内的值用于用下面给出的公式计算SFGTSFGI的缺省值为0

 

图表 87接口字节TB(1)的编码

SFGT用下面的公式计算:

SFGT=256×16/fc×2SFGI

SFGTMIN=7中所定义的最小值

SFGTDEFAULT=7中所定义的最小值

SFGTMAX=~4949ms

8.1.2.6 接口字节TC(1)

接口字节TC(1)规定了协议的参数。

特定接口字节TC(1)由两部分组成(见图):

——最高有效位b8b3000000b,所有其他值为RFU

——b2b1定义了在PICC支持的开端字段中的可选字段。允许PCD跳过已被指出被PICC支持的字段,但PICC不支持的字段应不被PCD传输。缺省值应为(10)b,它指出支持CID和不支持NAD

 

图表 88接口字节TC(1)

8.1.2.7 历史字节

历史字节T1Tk是可选的并包含了通用信息。ATS的最大长度给出了历史字节的最大可能数目。ISO/IEC 7816-4规定了历史字节的内容。

8.1.3  协议和参数选择请求

PPS请求包含着被格式字节和一参数字节跟随的开始字节(见图)。

 

 

 

 

 

 

 

 

 

 

图表 89协议和参数选择请求

8.1.3.1 开始字节

PPSS包含两部分(见图):

——最高有效半字节b8b5应置为‘D’并标识了PPS

——最低有效半字节b4b1称为CID,它定义了已编址的PICC的逻辑号。

 

图表 810PPSS的编码

8.1.3.2 参数字节0

PPS0指示可选字节PPS1的出现(见图)。

 

图表 811PPS0的编码

8.1.3.3 参数字节1

PPS1由三部分组成(见图):

——最高有效半字节b8b5(0000)b,所有其他值为RFU

——b4b3称为DSI,它编码了已选择的从PICCPCD的除数整数(D)

——b2b1称为DRI,它编码了已选择的从PCDPICC的除数整数(D)

 

图表 812PPS1的编码

对于可能的DSDR的定义,见8.1.2.4

D的编码在表中给出。

表格 82DRI,DSID的转换

DRI,DSI

(00)b

(01)b

(10)b

(11)b

D

1

2

4

8

 

8.1.4  协议和参数选择响应

PPS响应确认接收到的PPS请求(见图),并仅包开始字节(见8.1.3.1)。

 

 

 

 

 

 

 

图表 813协议和参数选择响应

8.1.5  激活帧等待时间

激活帧等待时间为PICC在接收到的来自PCD的帧的结尾之后开始发送其响应帧定义了最大时间,其值为65536/fc~4833μs)。

注:在任何方向上两个帧之间的最小时间在7章中定义。

8.1.6  差错检测和恢复

8.1.6.1 RATSATS的处理

8.1.6.1.1 PCD规则

PCD发送了RATS并接收到有效ATSPCD应继续工作。

在任何其他情况下,在它应使用如8.4中定义的停活序列前,PCD可以重新传输RATS。在停活序列失败的情况下,它可以使用7中定义的HLTA命令。

8.1.6.1.2 PICC规则

PICC被最后一条命令选择,并且

收到有效RATSPICC

——发送回其ATS,并且

——使RATS失效(停止响应接收到的RATS)。

收到其它的除了HALT命令的任何块(有效或无效),PICC

——忽略该块,并且

——保持在接收模式。

8.1.6.2 PPS请求和PPS响应的处理

8.1.6.2.1 PCD规则

PCD发送了PPS并接收到有效PPS响应,PCD应激活选择的参数并继续工作。

在任何其他情况下,PCD可以重新传输PPS请求并继续工作。

8.1.6.2.2 PICC规则

PICC接收到RATS,发送了其ATS,并且

a)接收到有效PPS请求,PICC

——发送PPS响应,

——使PPS请求失效(停止响应接收到的PPS请求)并

——激活接收到的参数。

b)接收到无效块,PICC

——使PPS请求失效(停止响应接收到的PPS请求)并

——保持在接收模式。

c)接收到除了PPS请求的有效块,PICC

——使PPS请求失效(停止响应接收到的PPS请求)并

——继续工作。

8.1.6.3 激活期间CID的处理

PCD发送了包含CID=n不等于0RATS,并且

a)接收到指示CID被支持的ATSPCD

——发送包含CID =n的块给该PICC,并

——当该PICC处于ACTIVE状态时,对于进一步的RATS,不使用CID=n

b)接收到指示CID不被支持的ATSPCD

——发送不包含CID的块给该PICC,并

——当该PICC处于ACTIVE状态时,不激活任何其他PICC

PCD发送了包含CID等于0RATS,并且

c)接收到指示CID被支持的ATSPCD

——发送包含CID等于0的块给该PICC,并

——当该PICC处于ACTIVE状态时,不激活任何其他PICC

d)接收到指示CID不被支持的ATSPCD

——发送不包含CID的块给该PICC,并

——当该PICC处于ACTIVE状态时,不激活任何其他PICC

8.2  类型B PICC的协议激活

类型B PICC的激活序列在7中描述。

8.3  半双工块传输协议

半双工块传输协议符合无触点卡环境的特殊需要,并使用7中定义的帧格式。

帧格式的其他相关元素有:

——块格式;

——最大帧等待时间;

——功率指示,和

——协议操作。

本协议根据OSI参考模型的原理压条法分层原理设计,需特别注意穿越边界的交互作用的最小限度。四层定义如下:

——根据7交换字节的物理层。

——按本章中定义进行交换块的数据链路层。

——为使系统开销最小而与数据链路层结合的会话层

——处理命令的应用层,它涉及在两个方向上至少一个块或块链的交换。

注:应用选择的使用如ISO/IEC 7816-5中所定义。不推荐在多应用的PICC中使用隐含的应用选择。

8.3.1  块格式

块格式(见图)由一个开端域(强制)、一个信息域(可选)和一个结束域(强制)组成。

开端域

信息域

结束域

PCB

[CID]

[NAD]

[INF]

EDC

1字节

1字节

1字节

 

2字节

 

 

注:括弧中的项目指示可选需求。

图表 814块格式

8.3.1.1 开端域

开端域是强制的,最多由三个字节构成:

——协议控制字节(强制),

——卡标识符(可选),

——结点地址(可选)。

8.3.1.1.1 协议控制字节域

PCB用于传送控制数据传输所需要的信息。

协议定义了块的三种基本类型:

——用于为应用层的使用传送信息的I-块。

——用于传送确认或不确认的R-块。R-块不包含INF域。确认涉及最后接收到的块。

——用于在PCDPICC间交换控制信息的S-块。两种不同类型的S-块定义如下:

1)包含1字节长INF域的等待时间延迟扩展,和

2)不包含INF域的DESELECT

PCB的编码依赖于它的类型,如下图所定义。此处没有定义的PCB编码在567的其他章节使用或为RFUI-块、R-块和S-块的编码在图表 815图表 816图表 817中给出。

 

图表 815I-PCB的编码

 

图表 816R-PCB的编码

 

图表 817S-PCB的编码

8.3.1.1.2 卡标识符域

CID域用于识别特定的PICC,它由三部分组成(见图):

——最高有效位b8b7用于从PICCPCD的功率水平指示。对于PCDPICC的通信,这两位应被置为0。功率水平指示的定义见8.3.4  

——b6b5用于传送附加信息,它没有被定义并应置为(00)b,所有其他值为RFU

——b4b1编码CID

 

图表 818卡标识符的编码

类型A CID的编码在8.1.1中给出,类型B 的在7中给出。

PICCCID的处理描述如下:

不支持CIDPICC

——忽略任何包含CID的块。

支持CIDPICC

——通过使用其CID响应包含其CID的块。

——忽略包含其他CID的块。

——假若其CID0,亦通过不使用CID响应不包含CID的块。

8.3.1.1.3 结点地址域

在开端域里的NAD被保存用于建立和编址不同的逻辑连接。当位b8b4被置为0时,NAD的用途应为适应来自ISO/IEC 7816-3的定义。所有其他值为RFU

下列定义应适用NAD的用途:

aNAD域应仅用于I-块。

b)当PCD使用NAD时,PICC也应使用NAD

c)在链接期间,NAD仅在链的第一个块内传输。

dPCD应不使用NAD编址不同的PICCCID应被用于编址不同的PICC)。

8.3.1.2 信息域(INF

INF于是可选的。当它存在时,INF域传送I-块中的应用数据或非应用数据和S-块中的状态信息。信息域的长度通过计算整个块的字节数减去开端域和结束域得出。

8.3.1.3 结束域

该域包含传输块的EDCEDC为如7中定义的CRC

8.3.2  帧等待时间(FWT

FWTPICC定义了在PCD帧结束后开始其响应帧的最大时间(见图)。

 

图表 819帧等待时间

注:在任何方向上两个帧之间的最小时间在7中定义。

FWT通过下面的公式计算:

FWT=256×16/fc×2FWI

其中FWI的值在014之间,15RFU。对于类型A,若TB(1)被省略,则FWI的缺省值为4,给出的FWT值约为4.8ms

对于FWI=0FWT= FWTMIN ~302μs

对于FWI=14FWT= FWTMAX ~4949μs

FWT应用于检测传输差错或无响应的PICC。如果来自PICC的响应的开始没有在FWT内被接收到,则PCD收回发送的权利可以重新发送

类型B FWI域的值在ATQB中的设置如7中所定义。类型A FWI域的值在ATS中设置(见8.1.2.5)。

8.3.3  帧等待时间扩展

PICC需要比定义的FWT更多的时间用于处理接收到的块时,应使用S(WTX)请求等待时间扩展。S(WTX)请求包含1字节长INF域,它由两部分组成(见图):

——最高有效位b8b7编码功率水平指示(见8.3.4)。

——最低有效位b6b1编码WTXMWTXM159范围内编码。值06063RFU

 

图表 820S(WTX)请求的INF域编码

PCD应通过发送包含1字节长INF域的S(WTX)来确认,该INF域由两部分组成(见图)并包含了与在请求中接收到的相同的WTXM

——最高有效位b8b7(00)b,所有其他值为RFU

——最低有效位b6b1编码了用于定义临时FWT的确认的WTXM值。

 

图表 821S(WTX)响应的INF域编码

FWT的响应的临时值通过下面的公式计算:

FWTTEMP= FWT×WTXM

PICC需要的时间FWTTEMPPCD发送了S(WTX)响应之后开始。

当公式得出的结果大于FWTMAX时,应该使用FWTMAX

临时FWT仅在下一个块被PCD接收到时才应用。

临时FWT的作用时间仅持续到PCD接收到下一个块为止。

8.3.4  率水平指示

功率水平指示通过使用插入在CID(当存在时)中的两位来编码,并在S-块中被PICC发送(见8.3.1.1.28.3.3  )。

表格 83功率水平指示的编码

(00)b

PICC不支持功率水平指示

(01)b

对于完整功能性,功率不充分

(10)b

对于完整功能性,功率充分

(11)b

对于完整功能性,功率超出

注:由PCD进行的功率水平指示的解释是可选的。

8.3.5  协议操作

在激活序列后,PICC应等待一仅PCD才有权力发送的命令。在发送了块之后,PCD应转换到接收模式并在转换回传输模式之前等待块。PICC可以传输块仅响应接收到的块(对时间延迟是察觉不到的)。在响应后,PICC应返回到接收模式。

在当前命令/响应对没有完成或帧等待时间超出而没有响应时,PCD不应初始化一新的命令/响应对。

8.3.5.1 多激活

多激活特征允许PCD保持几个PICC同时在ACTIVE状态。对于停活PICC和激活另一张PICC由于省去了停活和激活操作这允许几个PICC间直接转换而无须另外的时间。

多激活的举例见 G

注:对每个已激活的PICC,PCD需要处理分离的块号。

8.3.5.2 链接

链接过程允许PCDPICC通过把信息划分成若干块来传输不符合分别由FSCFSD定义的单块的信息。每一块的长度应分别小于或等于FSCFSD

块的链接通过链接I-块中PCB的位(M)来控制。每一个带链接位1I-块应被R-块确认。

链接的特性在图表 822中给出,16字节长字符串分成三块来传输。

记号:

I(1)x

带链接位设置和块号xI-

I(0)x

链接位未设置的带块号xI-

R(ACK)x

指示确认的R-

 

 

 

注:本例没有使用可选字段NAD和CID。

图表 822链接

8.3.5.3 块编号规则

8.3.5.3.1 PCD规则

规则A:对每一张激活的PICCPCD块号应被初始化为0

规则B:当带有的块号等于当前块号的I-块或R(ACK)块被接收到时,PCD在可选地发送块前为该PICC锁定当前块号。PCD在发送块前,令该PICC的当前块号取反。

8.3.5.3.2 PICC规则

规则C:在激活时,PICC块号应被初始化为1

规则D:当I-块被接收到(独立于其块号),PICC在发送块前锁定其块号。

规则E:当带有块号不等于当前PICC的块号的R(ACK)块被接收到时,PICC在发送块前锁定其块号。

8.3.5.4 块处理规则

8.3.5.4.1 一般规则

规则1:首块应由PCD来发送。

规则2I-块指示链接当被标识为链接的I-已被接收到时,块应由R(ACK)块来确认。

规则3S-块仅成对使用。S(…)请求块总是跟随着S(…)响应块(见8.3.38.4)。

8.3.5.4.2 PCD规则

规则4:当接收到无效块或FWT超时,则R(NAK)块被发送(PCD链接或S(DESELECT)情况除外)。

规则5:在PICC链接的情况下,当接收到无效块或FWT超时,R(ACK)块被发送。

规则6:当接收到R(ACK)块,如果其块号不等于PICC的当前块号,则最后的I-块被重新传送。

规则7:当接收到R(ACK)块,如果其块号等于PCD的当前块号,则继续链接。

规则8:如果S(DESELECT)请求没有被无差错S(DESELECT)响应进行回答,则S(DESELECT)请求可以被重新传送或PICC可以被忽视。

8.3.5.4.3 PICC规则

规则9:允许PICC发送S(WTX)块而不发送I-块或R(ACK)块。

规则10:当I-块没有指示链接已被接收到时,块应由I-块来确认。

规则11:当接收到R(ACK)块或R(NAK)块,如果其块号等于PICC的当前块号,则最后的块被重新传送。

规则12:当接收到R(NAK)块,如果其块号不等于PICC的当前块号,则R(ACK)块被发送。

规则13:当接收到R(ACK)块,如果其块号不等于PICC的当前块号,则继续链接。

8.3.5.5 差错检测和恢复

当检测到差错时,应试图使用下列恢复规则。本章中的定义支配块处理规则(见8.3.5.3)。

下列差错应被PCD检测到:

a)传输差错(帧差错或EDC差错)或FWT超时

PCD应试图通过以下顺序示出的技术进行差错恢复:

——块的重新传输(可选),

——S(DESELECT)请求的使用,

——忽视PICC

b)协议差错(违反了PCB编码或违反了协议规则)

PCD应试图通过以下顺序示出的技术进行差错恢复:

——S(DESELECT)请求的使用,

——忽视PICC

下列差错应被PICC检测到:

a)传输差错(帧差错或EDC差错),

b)协议差错(违反了协议规则)。

PICC应尽量没有差错恢复。当传输差错或协议差错发生时,PICC始终应返回接收模式,在任何时候它都应接收S(DESELECT)请求。

注:R(NAK)块不由PICC发送。

 

8.4  类型A和类型B PICC的协议停活

PCDPICC间的交易完成之后,PICC应被置为HALT状态。

PICC的停活通过使用DESELECT命令来完成。

DESELECT命令象协议的S-块那样编码,并由PCD发送的S(DESELECT)请求块和PICC作为确认发送的S(DESELECT)响应组成。

8.4.1  停活帧等待时间

停活帧等待时间给PICC定义了接收到来自PCDS(DESELECT)请求帧的末端后开始发送其S(DESELECT)响应的最时间,其值为65536/fc~4833μs)。

注:在任何方向上帧之间的最短时间在7章中定义。

8.4.2  差错检测和恢复

PCD发送了S(DESELECT)请求并接收到了S(DESELECT)响应,则PICC已被成功地置为了HALT状态并且分配给它的CID也被释放。

PCD没有接收到S(DESELECT)响应,则PCD可以重新进行停活序列。


9  数据元和命令

参见《电子钱包电子存折规范》卡片部分“数据元和命令”章节。

本节描述以下的命令-响应APDU

——关闭非接触通道

——激活非接触通道

9.1  关闭非接触通道命令

9.1.1  定义和范围

此命令的目的是将卡片的非接触方式暂时关闭。此时,卡片如果有接触接口,则接触接口的操作应该不受任何影响。当卡片的非接触通道被关闭以后,除了激活非接触通道指令和取随机数指令,其它任何指令以非接触方式送入卡片后,卡片都响应6D00

此命令使用应用维护密钥保护。

9.1.2  命令报文

关闭非接触通道命令报文编码见下表: 

表格 91:关闭非接触通道命令报文

代码

CLA

‘84’

INS

‘70’

P1

‘80’

P2

‘04’

Lc

‘04’

Data

报文鉴别码(MAC)数据元;根据《电子钱包/电子存折规范》中的规定编码

Le

不存在

9.1.3  命令报文数据域

命令报文数据域包括根据《电子钱包/电子存折规范》中的规定进行编码的报文鉴别码(MAC)数据元。

9.1.4  响应报文数据域

响应报文数据域不存在。

9.1.5  响应报文状态码

此命令执行成功的状态码是9000’。

IC卡可能回送的警告状态码如下表所示:

表格 92:关闭非接触通道警告状态

SW1

SW2

含义

62

00

无信息提供

62

81

EEPROM错误

IC卡可能回送的错误状态码如下表所示:

表格 93:关闭非接触通道错误状态

SW1

SW2

含义

64

00

状态标志未变

65

81

内存失败

69

82

不满足安全状态

69

87

安全报文数据项丢失

69

88

安全报文数据项不正确

6A

88

P1,P2不正确

6A

81

卡片锁定

9.2  激活非接触通道命令

9.2.1  定义和范围

此指令的目的是将关闭的非接触方式激活。此指令允许以接触和非接触两种方式发到卡片中。当卡片收到此指令,并且卡片的当前状态符合执行此指令的安全要求,卡片将激活非接触通道。

此命令使用应用维护密钥保护。

9.2.2  命令报文

激活非接触通道命令报文编码见下表: 

表格 94:激活非接触通道命令报文

代码

CLA

‘84’

INS

‘70’

P1

‘00’

P2

‘04’

Lc

‘04’

Data

报文鉴别码(MAC)数据元;根据《电子钱包/电子存折规范》中的规定编码

Le

不存在

9.2.3  命令报文数据域

命令报文数据域包括根据《电子钱包/电子存折规范》中的规定进行编码的报文鉴别码(MAC)数据元。

9.2.4  响应报文数据域

响应报文数据域不存在。

9.2.5  响应报文状态码

此命令执行成功的状态码是9000’。

在非接触通道工作正常的情况下,卡片收到此指令,卡片返回9000

IC卡可能回送的错误状态码如下表所示:

表格 95:激活非接触通道错误状态

SW1

SW2

含义

64

00

状态标志未变

65

81

内存失败

69

82

不满足安全状态

69

87

安全报文数据项丢失

69

88

安全报文数据项不正确

6A

88

P1,P2不正确

6A

81

卡片锁定


A
标准兼容性和表面质量

A.1. 标准兼容性

本标准并不排斥把其它现有标准附加到PICC,一些限制可以适用于PICC的凸印。

A.2. 印刷的表面质量

在制造过程通过附加印刷之后,要求按规格定制PICC,应注意确保用于印刷的区域具有适合于印刷技术或所使用印刷机的足够质量。


  B
ISO/IEC其他卡标准参考目录

 

ISO/IEC 7811-11995

识别卡——记录技术——1部分:凸印。

ISO/IEC 7811-21995

识别卡——记录技术——2部分:磁条。

ISO/IEC 7811-31995

识别卡——记录技术——3部分:ID-1型卡上凸印字符的位置。

ISO/IEC 7811-41995

识别卡——记录技术——4部分:ID-1型卡上只读磁道——磁道12的位置。

ISO/IEC 7811-51995

识别卡——记录技术——5部分:ID-1型卡上读写磁道——磁道3的位置。

ISO/IEC 7811-61995

识别卡——记录技术——6部分:磁条——高矫顽磁性。

ISO/IEC 7812-11993

识别卡——发卡者的标识——1部分:编码体系。

ISO/IEC 7812-21993

识别卡——发卡者的标识——2部分:应用和注册规程。

ISO/IEC 78131995

识别卡——金融交易卡。

ISO/IEC 7816-11998

识别卡——带触点的集成电路卡——1部分:物理特性。

ISO/IEC 7816-21998

识别卡——带触点的集成电路卡——2部分:接触的尺寸和位置。

ISO/IEC 7816-31997

识别卡——带触点的集成电路卡——3部分:电信号和传输协议。

ISO/IEC 10373-6

识别卡——测试方法。

ISO/IEC 10536-11992

识别卡——无触点集成电路卡——1部分:物理特性。

ISO/IEC 10536-21995

识别卡——无触点集成电路卡——2部分:耦合区域的尺寸和位置。

ISO/IEC 10536-31992

识别卡——无触点集成电路卡——3部分:电信号和重设置过程。


C
类型A的通信举例

本例示出了在下列假设基础上该场内两个PICC的选择序列:

·PICC#1带有UID长度:单个,UID0的值为‘10’

·PICC#2带有UID长度:两个

注:通信开始,通信结束和奇偶校验位为简单起见没有示出。

C-1  比特帧防冲突的选择序列

C-1的说明

请求

PCD发送REQUEST命令

所有的PICC以它们的ATQA进行响应:

PICC#1指示比特帧防冲突,UID长度:单个

PICC#2指示比特帧防冲突,UID长度:两个

防冲突循环

PCD发送ANTICOLLISION命令:

串联级别1

SEL规定了比特帧防冲突和串联级别1

NVB的值‘20’规定PCD不会发送UID CL1

因此,场内所有的PICC都会以它们的UID CL1进行响应

由于串联标记的值‘88’引起第一次冲突发生在比特位置# 4

PCD发送另一个包括UID CL1的前三位的ANTICOLLISION命令,该UID CL1是冲突发生前收到的,UID CL1后面紧跟一个(1)b

从而,PCD将值‘24’赋给NVB

4位对应于PICC#2UID CL1的前4

PICC#2以它的UID CL1的其余36位进行响应。由于PICC#1不响应,因此没有冲突发生

由于PCD“知道”PICC#2UID CL1的所有比特,因此它对PICC#2发送SELECT命令

PICC#2SAK进行响应,指出UID是不完整的

因此,PCD增加串联级别

防冲突循环,

PCD发送另一个ANTICOLLISION命令:

串联级别2

SEL规定了比特帧防冲突和串联级别2

NVB复位到‘20’以迫使PICC#2以它的完整的UID进行响应

PICC#2以它的UID CL2的全部40位进行响应

PCD对串联级别2PICC#2发送SELECT命令,

PICC#2SAK进行响应,指出UID是完整的,并且从READY状态转换到ACTIVE状态


  D
CRC_ACRC_B的编码

D.1. CRC_A编码

本附录用于解释说明,同时表示了存在于物理层的比特模式。之所以包括本附录,是为了检验7中类型ACRC_A编码的实现情况。

编码和解码的过程可由带有合适的反馈门的16级循环移位寄存器方便地完成。根据ITU-T的建议,附件1、图I-1/V.41和图I-2/V.41,寄存器的触发器应编号为FF0FF15FF0是最左边的触发器,数据从FF0移入。FF15是最右边的触发器,数据从FF15移出。

D-1定义了寄存器的初始内容。

D-1  初始值为‘6363’16位移位寄存器的初始内容

FF0

FF1

FF2

FF3

FF4

FF5

FF6

FF7

FF8

FF9

FF10

FF11

FF12

FF13

FF14

FF15

0

1

1

0

0

0

1

1

0

1

1

0

0

0

1

1

因此,FF0对应于最高有效位,FF15对应于最低有效位。

D.1.1. 通过标准帧发送的比特模式举例

1: 数据的传输,第1个字节=‘00’,第2个字节=‘00’,附加的CRC_A

计算出的CRC_A=‘1EA0’

1个发送的比特

S

0000 0000

1

0000 0000

1

0000 0101

1

01111 1000

1

E

 

‘00’

P

‘00’

P

‘A0’

P

‘1E’

P

 

D-1  CRC_A编码举例1

D-2  值为‘1EA0’16位移位寄存器的内容

FF0

FF1

FF2

FF3

FF4

FF5

FF6

FF7

FF8

FF9

FF10

FF11

FF12

FF13

FF14

FF15

0

0

0

1

1

1

1

0

1

0

1

0

0

0

0

0

 

2: 数据块的传输,第1个字节=‘12’,第2个字节=‘34’,附加的CRC_A

计算出的CRC_A=‘CF26’

1个发送的比特

 

S

0100 1000

1

0010 1100

0

0110 0100

0

11111 0011

1

E

 

‘12’

P

‘34’

P

‘26’

P

‘CF’

P

 

D-2  CRC_A编码举例2

 

7B-3  值为‘CF26’16位移位寄存器的内容

FF0

FF1

FF2

FF3

FF4

FF5

FF6

FF7

FF8

FF9

FF10

FF11

FF12

FF13

FF14

FF15

1

1

0

0

1

1

1

1

0

0

1

0

0

1

1

0

D.2. CRC_B编码

本附录用于解释说明,同时表示了存在于物理层的比特模式。之所以包括本附录,是为了检验7中类型BCRC_B编码的实现情况。更详细的内容参考ISO/IEC 3309CCITT X.25V.48#8.1.1.6.1

初始值=‘FFFF’

D.2.1. 通过标准帧传送的比特模式实例

1:数据的传输,第1个数据字节=‘00’,第2个数据字节=‘00’,第3个数据字节=‘00’,附加的CRC_B

计算出的CRC_B=‘CCC6’

 

 

第1个数据字节

第2个数据字节

第3个数据字节

CRC_B

 

帧=

SOF

‘00’

‘00’

‘00’

‘CC’

‘C6’

EOF

D-3  CRC_B编码举例1

 

2:数据的传输,第1个数据字节=‘0F’,第2个数据字节=‘AA’,第3个数据字节=‘FF’,附加的CRC_B

计算出的CRC_B=‘FCD1’

 

 

第1个数据字节

第2个数据字节

第3个数据字节

CRC_B

 

帧=

SOF

‘0F’

‘AA’

‘FF’

‘FC’

‘D1’

EOF

D-4  CRC_B编码举例2

 

3:数据的传输,第1个数据字节=‘0A’,第2个数据字节=‘12’,第3个数据字节=‘34’, 第4个数据字节=‘56’,附加的CRC_B

计算出的CRC_B=‘2CF6’

 

 

第1个数据字节

第2个数据字节

第3个数据字节

第4个数据字节

CRC_B

 

帧=

SOF

‘0A’

‘12’

‘34’

‘56’

‘2C’

‘F6’

EOF

D-5  CRC_B编码举例3

 

D.2.2. C语言写的CRC计算的代码例子

#include

#include

#include

#include

 

#define CRC_A 1

#define CRC_B 2

#define BYTE unsigned char

 

unsigned short UpdateCrc(unsigned char ch, unsigned short *lpwCrc)

{

ch = (ch^(unsigned char)((*lpwCrc) & 0x00FF));

ch = (ch^(ch<<4));

 

*lpwCrc = (*lpwCrc >> 8)^((unsigned short)ch << 8)^((unsigned

short)ch<<3)^((unsigned short)ch>>4);

return(*lpwCrc);

}

 

void ComputeCrc(int CRCType, char *Data, int Length,

BYTE *TransmitFirst, BYTE *TransmitSecond)

{

unsigned char chBlock;

unsigned short wCrc;

 

switch(CRCType) {

case CRC_A:

wCrc = 0x6363; // ITU-V.41

break;

case CRC_B:

wCrc = 0xFFFF; // ISO 3309

break;

default:

return;

}

do {

chBlock = *Data++;

UpdateCrc(chBlock, &wCrc);

} while (--Length);

if (CRCType == CRC_B)

wCrc = ~wCrc; // ISO 3309

*TransmitFirst = (BYTE) (wCrc & 0xFF);

*TransmitSecond = (BYTE) ((wCrc >> 8) & 0xFF);

 

return;

}

 

BYTE BuffCRC_A[10] = {0x12, 0x34};

BYTE BuffCRC_B[10] = {0x0A, 0x12, 0x34, 0x56};

unsigned short Crc;

BYTE First, Second;

FILE *OutFd;

int i;

 

int main(void)

{

printf("CRC-16 reference results 3-Jun-1999\n");

 

printf("by Mickey Cohen - [email protected]\n\n");

printf("Crc-16 G(x) = x^16 + x^12 + x^5 + 1\n\n");

 

printf("CRC_A of [ ");

for(i=0; i<2; i++) printf("%02X ",BuffCRC_A[i]);

ComputeCrc(CRC_A, BuffCRC_A, 2, &First, &Second);

printf("] Transmitted: %02X then %02X.\n", First, Second);

 

printf("CRC_B of [ ");

for(i=0; i<4; i++) printf("%02X ",BuffCRC_B[i]);

ComputeCrc(CRC_B, BuffCRC_B, 4, &First, &Second);

printf("] Transmitted: %02X then %02X.\n", First, Second);

 

return(0);

}

 


  E
类型A_时间槽-初始化和防冲突

 

本附录描述了应用于类型A PICC的时间槽检测协议。不要求支持类型A和类型B的轮询的PCD支持该检测协议以作为强制性防冲突协议,如7.1中所描述。

E.1. 术语和缩略语

见第4章。下列术语和缩略语是专门针对7的。

ATQA_t 对类型A_时间槽请求的应答

ATQ-ID REQ-ID的应答

CID_t 类型A_时间槽的卡识别符

HALT_t 类型A_时间槽的HALT命令

REQA_t 类型A_时间槽的REQuest命令

REQ-ID REQuest-ID命令

SAK_t 类型A_时间槽的选择确认

SEL_t 类型A_时间槽的SELect命令

E.2. 比特、字节和帧格式

E.2.1. 定时定义

E.2.1.1. 轮询复位时间

Type A_时间槽轮询复位时间等于7.1中的类型A轮询复位时间

E.2.1.2. REQA_tATQA_t的时间间隔

一旦收到REQA_t,等待32+/-2etu后,PICC返回ATQA_tPCD可能识别不出ATQA_t的编码。

E.2.1.3. 请求保护时间

请求保护时间定义为两个连续请求命令的起始比特之间的最短时间,其值应为0.5ms

E.2.1.4. 帧保护时间

帧保护时间定义为在相反方向上两个连续帧的最后一位的上升沿和起始位的下降沿之间的最短时间。其值应为10etu

E.2.1.5. 时间槽长度

第一个时间槽开始于REQ-ID后的32etu内。每个时间槽长度为104etu,包括94etuATQ-ID接收和其后的10etu的帧保护时间。

E.2.2. 帧格式

E.2.2.1. REQA_t

7.2.1.7和表7-2REQA_t的数据内容为‘35’

E.2.2.2. 标准帧

每个数据字节的LSB首先被发送。每个数据字节没有奇偶校验位。CRC_B7.3.2中定义。

S

数据:n*8数据比特(没有奇偶校验位)

CRC_B

2字节

E

1字节

命令或响应

(0或1字节)

(参数1)

(0或1字节)

(参数1)

(0或18字节)

(参数1)

E.3. PICC状态

下面条款提供了类型A_时间槽PICC的状态。

E.3.1. POWER-OFF状态

POWER-OFF状态下,由于缺少载波,PICC不被激活并且不发射副载波。

E.3.2. IDLE状态

该状态在场被激活5ms延迟后进入。

E.3.3. READY状态

该状态通过REQA_t进入。

E.3.4. ACTIVE状态

该状态通过带有完整UIDCID_tSEL_t进入。PCDPICC获得SAK_t信息。

E.3.5. HALT状态

这一状态通过HALT_tACTIVE状态进入。在这一状态下,PICC是静默的。

E.4. 命令/响应集合

用到了4对命令和响应的集。

类型

名称

编码(b8-b1)

含义

命令

REQA_t

(b7-b1)

(0110101)b(=‘35’)

请求PICC类型A时间槽来应答ATQA_t。REQA_t伴随着两个参数。

响应

ATQA_t

 ‘00’到‘FF’的任何一个字节内容

对REQA_t的应答。PCD能识别出类型A时间槽PICC的存在。然而,不要求PCD识别出ATQA_t的编码。

命令

REQ-ID

(00001000)b(=‘08’)

请求PICC向若干时间槽中的某一个应答它的UID。

REQ-ID跟随者2个参数。

响应

ATQ-ID

(00000110)b(=‘06’)

向4个时间槽中的某一个应答8字节UID。ATQ-ID伴随着8字节UID。

命令

SEL_t

(01000NNN)b,(NNN=CID_t No.(0-7))

(01100NNN)b,(NNN+8=CID_t No.(8-15))

选择带有其UID的PICC并设置CID_t。SEL_t伴随着8字节UID。

响应

SAK_t

(1000XXX)b(=’8X’,除非另有规定,否则’X’=’0’)

确认SEL_t*

命令

HALT_t

(00011NNN)b,(NNN=CID_t No.(0-7))

(00111NNN)b,(NNN+8=CID_t No.(8-15))

暂停带有其CID_t的PICC并释放其CID_t。

响应

对HALT_t的响应

(00000110)b=(‘06’)

确认HALT_t

*附加信息可用。详细内容在8中规定。

REQ_ID命令的参数

参数

含义

P1

b8-b7

时间槽长度,b7=1:对于8字节UID,b8=0

b6-b1

时间槽的数目,b3=1:对于4个时间槽,其他的=0

    P2

‘00’

E.5. 时间槽防冲突序列

序列流程图由下面的图E-1示出。

E-1  时间槽-类型A  PCD 防冲突流程图

 


  F
详细的类型A PICC状态图

 

本提示附录描述了类型A的详细状态图,包括没有在本标准主要部分定义的子状态。该状态图考虑了本部分的若干命令引起的所有可能的状态转换。传输差错处理并不包括在内。

下列符号应用于图F-1示出的详细状态图。

REQA

REQA命令

WUP

WAKE-UP命令

AC

ANTICOLLISION命令(与UID匹配)

nAC

ANTICOLLISION命令(与UID不匹配)

SEL

SELECT命令(与UID匹配)

nSEL

SELECT命令(与UID不匹配)

HALT

HALT命令

DESEL

DESELECT命令,在8中定义

遵循7但不使用8PICC可以通过专有命令跳出SELECTED状态。

 

F-1  详细的PICC类型A状态图


G
使用多激活的举例

 

下表描述了对三张PICC使用多激活的例子。

G-1  多激活

PCD动作

PICC1状态

PICC2状态

PICC3状态

给场提供功率

 

 

 

三张PICC进入该场

IDLE

IDLE

IDLE

激活带CID=1的PICC

ACTIVE(1)

IDLE

IDLE

带CID=1的任何数据传输

ACTIVE(1)

IDLE

IDLE

 

 

 

激活带CID=2的PICC

ACTIVE(1)

ACTIVE(2)

IDLE

带CID=1,2的任何数据传输

ACTIVE(1)

ACTIVE(2)

IDLE

 

 

 

激活带CID=3的PICC

ACTIVE(1)

ACTIVE(2)

ACTIVE(3)

带CID=1,2,3的任何数据传输

ACTIVE(1)

ACTIVE(2)

ACTIVE(3)

 

 

 

带CID=3的S(DESELECT)命令

ACTIVE(1)

ACTIVE(2)

HALT

带CID=2的S(DESELECT)命令

ACTIVE(1)

HALT

HALT

带CID=1的S(DESELECT)命令

HALT

HALT

HALT

 

 

 


  H
协议说明书

 

本附录给出了一些无差错操作和差错处理的设定。

H.1. 记法

任何块 ===> 正确接收到

任何块 > 错误接收到

任何块 > 没有接收到(FWT超时)

分界线 最小协议操作的结束

I(1)x 带链接位设置和块号xI-

I(0)x 链接位未设置的带块号xI-

R(ACK)x 指示确认的R-

R(NAK)x 指示不确认的R-

S(…) S-

对目标PICC,设定中的块编号都以PCD的当前块号开始。为便于表述,PICC激活序列后设定才开始,因此当前块号对PCD来说以0开始,对PICC来说以1开始。

 

H.2. 无差错操作

H.2.1. 块的交换

设定1  I-块交换

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(0)0

===>

 

0

规则D

2. 规则B

1

 

<===

I(0)0

 

规则10

3.

 

I(0)1

===>

 

1

规则D

4. 规则B

0

 

<===

I(0)1

 

规则10

 

H.2.2. 等待时间扩展请求

设定2  等待时间扩展

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(0)0

===>

 

0

规则D

2.

 

 

<===

S(WTX) 请求

 

规则9

3. 规则3

 

S(WTX) 响应

===>

 

 

 

4. 规则B

1

 

<===

I(0)0

 

规则10

5.

 

I(0)1

===>

 

1

规则D

6. 规则B

0

 

<===

I(0)1

 

规则10

 

H.2.3. DESELECT

设定3  DESELECT

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(0)0

===>

 

0

规则D

2. 规则B

1

 

<===

I(0)0

 

规则10

3.

 

S(DESELECT)请求

===>

 

 

 

4.

 

 

<===

S(DESELECT)响应

 

规则3

 

H.2.4. 链接

设定4  PCD使用链接

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(1)0

===>

 

0

规则D

2. 规则B

1

I(0)1

<===

R(ACK)0

 

规则2

3. 规则7

 

I(0)1

===>

 

1

规则D

4. 规则B

0

 

<===

I(0)1

 

规则10

5.

 

I(0)0

===>

 

0

规则D

6. 规则B

1

 

<===

I(0)0

 

规则10

 

设定5  PICC使用链接

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(0)0

===>

 

0

规则D

2. 规则B

1

 

<===

I(1)0

 

规则10

3. 规则2

 

R(ACK)1

===>

 

1

规则E

4. 规则B

0

 

<===

I(0)1

 

规则13

5.

 

I(0)0

===>

 

0

规则D

6. 规则B

1

 

<===

I(0)0

 

规则10

 

H.3. 差错处理

H.3.1. 块的交换

设定6  协议开始

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(0)0

=≠=>

 

0

 

2. 超时

 

 

<= =

-

 

 

3. 规则4

 

R(NAK)0

===>

 

 

 

4.

无变化

 

<===

R(ACK)1

 

规则12

5. 规则6

 

I(0)0

===>

 

0

规则D

6. 规则B

1

 

<===

I(0)0

 

规则10

7.

 

I(0)1

===>

 

1

规则D

8. 规则B

0

 

<===

I(0)1

 

规则10

 

设定7  I-块交换

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(0)0

===>

 

0

规则D

2. 规则B

1

 

<===

I(0)0

 

规则10

3.

 

I(0)1

=≠=>

 

 

 

4. 超时

 

 

<= =

-

 

 

5. 规则4

 

R(NAK)1

===>

 

 

 

6.

无变化

 

<===

R(ACK)0

 

规则12

7. 规则6

 

I(0)1

===>

 

1

规则D

8. 规则B

0

 

<===

I(0)1

 

规则10

9.

 

I(0)0

===>

 

0

规则D

10. 规则B

1

 

<===

I(0)0

 

规则10

 

设定8  I-块交换

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(0)0

===>

 

0

规则D

2.

 

 

<=≠=

I(0)0

 

规则10

3. 规则4

 

R(NAK)0

===>

 

 

 

4. 规则B

1

 

<===

I(0)0-

 

规则11

5.

 

I(0)1

===>

 

1

规则D

6. 规则B

0

 

<===

I(0)1

 

规则10

 

设定9  I-块交换

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(0)0

===>

 

0

规则D

2.

 

 

<=≠=

I(0)0

 

规则10

3. 规则4

 

R(NAK)0

=≠=>

 

 

 

4. 超时

 

 

<= =

-

 

 

5. 规则4

 

R(NAK)0

===>

 

 

 

6. 规则B

1

 

<===

I(0)0

 

规则11

7.

 

I(0)1

===>

 

1

规则D

8. 规则B

0

 

<===

I(0)1

 

规则10

 

H.3.2. 等待时间扩展请求

设定10  等待时间扩展请求

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(0)0

===>

 

0

规则D

2.

 

 

<=≠=

S(WTX)请求

 

规则9

3. 规则4

 

R(NAK)0

===>

 

 

 

4.

 

 

<===

S(WTX)请求

 

规则11

5. 规则3

 

S(WTX)响应

===>

 

 

 

6. 规则B

1

 

<===

I(0)0

 

规则10

7.

 

I(0)1

===>

 

1

规则D

8. 规则B

0

 

<===

I(0)1

 

规则10

 

设定11  等待时间扩展请求

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(0)0

===>

 

0

规则D

2.

 

 

<=≠=

S(WTX)请求

 

规则9

3. 规则4

 

R(NAK)0

=≠=>

 

 

 

4. 超时

 

 

<= =

-

 

 

5. 规则4

 

R(NAK)0

===>

 

 

 

6.

 

 

<===

S(WTX)请求

 

规则11

7. 规则3

 

S(WTX)响应

===>

 

 

 

8. 规则B

1

 

<===

I(0)0

 

规则10

9.

 

I(0)1

===>

 

1

规则D

10. 规则B

0

 

<===

I(0)1

 

规则10

 

设定12  等待时间扩展请求

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(0)0

===>

 

0

规则D

2.

 

 

<===

S(WTX)请求

 

规则9

3. 规则3

 

S(WTX)响应

=≠=>

 

 

 

4. 超时

 

 

<= =

-

 

 

5. 规则4

 

R(NAK)0

===>

 

 

 

6.

 

 

<===

S(WTX)请求

 

规则11

7. 规则3

 

S(WTX)响应

===>

 

 

 

8. 规则B

1

 

<===

I(0)0

 

规则10

9.

 

I(0)1

===>

 

1

规则D

10. 规则B

0

 

<===

I(0)1

 

规则10

 

设定13  等待时间扩展请求

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(0)0

===>

 

0

规则D

2.

 

 

<===

S(WTX)请求

 

规则9

3. 规则3

 

S(WTX)响应

===>

 

 

 

4.

 

 

<=≠=

I(0)0

 

规则10

5. 规则4

 

R(NAK)0

===>

 

 

 

6. 规则B

1

 

<===

I(0)0

 

规则11

7.

 

I(0)1

===>

 

1

规则D

8. 规则B

0

 

<===

I(0)1

 

规则10

 

设定14  等待时间扩展请求

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(0)0

===>

 

0

规则D

2.

 

 

<===

S(WTX)请求

 

规则9

3. 规则3

 

S(WTX)响应

===>

 

 

 

4.

 

 

<=≠=

I(0)0

 

规则10

5. 规则4

 

R(NAK)0

=≠=>

 

 

 

6. 超时

 

 

<= =

-

 

 

7. 规则4

 

R(NAK)0

===>

 

 

 

8. 规则B

1

 

<===

I(0)0

 

规则11

9.

 

I(0)1

===>

 

1

规则D

10. 规则B

0

 

<===

I(0)1

 

规则10

 

H.3.3. DESELECT

设定15  DESELECT

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(0)0

===>

I(0)0

0

规则D

2. 规则B

 

 

<===

I(0)0

 

规则10

3.

 

S(DESELECT)请求

=≠=>

 

 

 

4. 超时

 

 

<= =

-

 

 

5. 规则8

 

S(DESELECT)请求

===>

 

 

 

6.

 

 

<===

S(DESELECT)响应

 

规则3

 

H.3.4. 链接

设定16  PCD使用链接

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(1)0

===>

 

0

规则D

2.

 

 

<=≠=

R(ACK)0

 

规则2

3. 规则4

 

R(NAK)0

===>

 

 

 

4. 规则B

1

 

<===

R(ACK)0

 

规则11

5. 规则7

 

I(1)1

===>

 

1

规则D

6. 规则B

0

 

<===

R(ACK)1

 

规则2

7. 规则7

 

I(0)0

===>

 

0

规则D

8. 规则B

1

 

<===

I(0)0

 

规则10

9.

 

I(0)1

===>

 

1

规则D

10. 规则B

0

 

<===

I(0)1

 

规则10

 

设定17  PCD使用链接

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(1)0

===>

 

0

规则D

2. 规则B

1

 

<===

R(ACK)0

 

规则2

3. 规则7

 

I(1)1

=≠=>

 

 

 

4. 超时

 

 

<= =

-

 

 

5. 规则4

 

R(NAK)0

===>

 

 

 

6.

无变化

 

<===

R(ACK)0

 

规则12

7. 规则6

 

I(1)1

===>

 

1

规则D

8. 规则B

0

 

<===

R(ACK)1

 

规则2

9. 规则7

 

I(0)0

===>

 

0

规则D

10. 规则B

1

 

<===

I(0)0

 

规则10

11.

 

I(0)1

===>

 

1

规则D

12. 规则B

0

 

<===

I(0)1

 

规则10

 

设定18  PCD使用链接

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(1)0

===>

 

0

规则D

2.

 

 

<=≠=

R(ACK)0

 

规则2

3. 规则4

 

R(NAK)0

=≠=>

 

 

 

4. 超时

 

 

<= =

-

 

 

5. 规则4

 

R(NAK)0

===>

 

 

 

6. 规则B

1

 

<===

R(ACK)0

 

规则11

7. 规则7

 

I(1)1

===>

 

1

规则D

8. 规则B

0

 

<===

R(ACK)1

 

规则2

9. 规则7

 

I(0)0

===>

 

0

规则D

10. 规则B

1

 

<===

I(0)0

 

规则10

11.

 

I(0)1

===>

 

1

规则D

12. 规则B

0

 

<===

I(0)1

 

规则10

 

设定19  PICC使用链接

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(0)0

===>

 

0

规则D

2. 规则B

1

 

<===

I(1)0

 

规则10

3. 规则2

 

R(ACK)1

=≠=>

 

 

 

4. 超时

 

 

<= =

-

 

 

5. 规则5

 

R(ACK)1

===>

 

1

规则E

6. 规则B

0

 

<===

I(1)1

 

规则13

7. 规则2

 

R(ACK)0

===>

 

0

规则E

8. 规则B

1

 

<===

I(0)0

 

规则13

9.

 

I(0)1

===>

 

1

规则D

10. 规则B

0

 

<===

I(0)1

 

规则10

 

设定20  PICC使用链接

注释

块号 (0)

PCD

 

PICC

块号 (1)

注释

1. 规则1

 

I(0)0

===>

 

0

规则D

2. 规则B

1

 

<===

I(1)0

 

规则10

3. 规则2

 

R(ACK)1

===>

 

1

规则E

4.

 

 

<=≠=

I(1)1

 

规则13

5. 规则5

 

R(ACK)1

===>

 

无变化

 

6. 规则B

0

 

<===

I(1)1

 

规则11

7. 规则2

 

R(ACK)0

===>

 

0

规则E

8. 规则B

1

 

<===

I(0)0

 

规则13

9.

 

I(0)1

===>

 

1

规则D

10. 规则B

0

 

<===

I(0)1

 

规则10

 


  I
块和帧编码概览

 

本章给出了由PCD发送的不同的块和帧编码的概览。块的类型在各个帧的第一个字节指出。

7中的定义:

REQA (0100110)b7位)

WUPA (1010010)b7位)

REQB/WUPB (00000101)b

Slot-MARKER(仅Type B (××××0101)b

SELECT(仅Type A (1001××××)b

ATTRIB(仅Type B (00011101)b

HLTA (01010000)b

HLTB (01010000)b

本章中的定义:

RATS (11100000)b

PPS (1101××××)b

I- (00××××××)b(除了(00×××101)b

R- (10××××××)b(除了(1001××××)b

S- (11××××××)b(除了(1110××××)b(1101××××)b

 

下表描述了已定义的块和帧编码的第一个字节。

I-1  块和帧编码

I-块PCB

R-块PCB

DESELECT

S-块PCB

WTX

REQB/WUPB

Slot-MARKER

SELECT

ATTRIB

HLTA

HLTB

RATS

PPS

b8

0

1

1

0

×

1

0

0

0

1

1

b7

0

0

1

0

×

0

0

1

1

1

1

b6

0(RFU)

1

0

1

×

×

0

0

0

0

1

0

b5

链接

ACK/NAK

0

1

×

×

1

1

1

1

0

1

b4

CID

CID

CID

0

0

×

1

0

0

0

×

b3

NAD

0(无NAD)

0(无NAD)

1

1

×

1

0

0

0

×

b2

1

1(RFU)

1(RFU)

0

0

×

0

0

0

0

×

b1

块号

块号

0(RFU)

1

1

×

1

0

0

0

×

 

你可能感兴趣的:(iso14443协议中文版)