IC卡的读写过程详解
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
08.08.2020
6
.
1.6 Request和Wake-Up帧用来初始化通信并按 以下次序组成:
起始位 7个数据位发送,LSB首先发送。(标准REQA的数据内 容是‘26’,WAKE-UP请求的数据内容是‘52’) 终止位 不加奇偶校验位。
起始位 命令:26(Request)或52(Wake-Up) 图二
b7b6b5b4b3b2b1
08.08.2020
0100110 1010010
说明
“26”=REAQ
“52”=Wake-up
20
.
(2)ANTICOLLISION命令与SELECT命令
-用于防冲突循环,组成如下:
选择代码SEL(1字节) 有效位数量NVB(1字节) 由NVB指定的UID CLn(0~40位)
.
Select过程
❖步骤12:PCD发送SEL和NVB,后随UID CLn的 所有40个位,后面又紧跟CRC_A校验和。
❖步骤13:它的UID CLn与40个比特匹配,则该 PICC以其SAK表示响应。
b8b7
b6
b5b4
b3
b2b1
RFU
b6=1, PICC兼 容14443
RFU b3=0, UID 完整
SAK UID完整
定义在ISO/IEC
32
14443-4中命. 令
UID内容和串联级别
UID由4、7或10个UID字节组成。因此,PICC最 多应处理3个串联级别,以得到所有UID字节。在 每个串联级别内,由5个数据字节组成的UID的一 部分应被发送到PCD。根据最大串联级别,定义 了UID长度的三个类型。
Select过程的目的是获得来自PICC的UID以及选择 该PICC以便进一步通信,见下图。
下面算法应适用于防冲突环: ❖ 步骤1:PCD赋值编码了串联级别的SEL。
SEL的编码
b8b7b6b5b4b3b2b1
说明
10010011 10010101 10010111
“93”选择UID CL1 “95”选择UID CL2 “97”选择UID CL3
08.08.2020
22
.
(3)HALT 命令 HALT 命令由4个字节组成:
S 50 00 CRC(循环校验码) E
1字节 1字节 2字节
如果PICC在HALT帧结束后1ms周期期 间以任何调制表示响应,则该响应应解 释为‘不确认’。
08.08.2020
23
.
ATQA-请求应答
所有PICC以其在两个数据字节中编码了可用防 冲突类型的请求应答(ATQA)表示同步地进行 响应。 如果有多个卡应答,冲突可能出现。PCD应把 ATQA内的冲突解码为一个(1)b,其结果是所有 ATQA的逻辑“或”。
08.08.2020
2
.
PCD不断轮寻进入能量场的PICC
PCD:
为实时检出进入PCD能量场的PICC,PCD重复 发出请求命令REQA,并查寻应答ATQA,这一 过程称为“轮寻”。
PICC:
在进入PCD能量场的5ms内,PICC应能接受到 REQA。
08.08.2020
3
.
位、字节、时序和帧格式
RFU
b3=1, 还有部分UID CLn 需确认
SAK的编码
08.08.2020
30
.
❖ 步骤14:如果UID完整,则PICC应发送带有清空 的串联级别位的SAK,并从READY状态转换到 ACTIVE状态。
❖ 步骤15:PCD应检验SAK的串联比特是否被设置, 以决定带有递增串联级别的进一步防冲突环是否 应继续进行。
08.08.202026源自.Select过程
❖ 步骤2:PCD分配了带有值为‘20’的NVB。 注:该值定义了该PCD将不发送UID CLn的任何部
分。因此该命令迫使工作场内的所有PICC以其完 整的UID CLn表示响应。 ❖ 步骤3:PCD发送SEL和NVB。 ❖ 步骤4:工作场内的所有PICC应使用它们的完整 的UID CLn响应。 ❖ 步骤5:假设场内的PICC拥有唯一序列号,那么, 如果一个以上的PICC响应,则冲突发生。如果没 有冲突发生,则步骤6到步骤10可被跳过。
08.08.2020
7
.
1.7 标准帧用于数据交换并按以下次序组成 :
起始位 n*(8个数据位+奇数奇偶校验位),n≥1。每个数据字节的LSB首先被发送。 每个数据字节后面跟随一个奇数奇偶校验位。 终止位
08.08.2020
8
.
面向比特的防冲突
当至少两个PICC同时发送不同比特到PCD时 PCD将检测到比特冲突。这种情况下,至少一个 比特的整个位持续时间内,载波以副载波进行调 制。
如果PICC的UID是已知的,则PCD可以跳过步骤 2~10来选择该PICC,而无需执行防冲突环。
08.08.2020
31
.
开始
PCD初始化和防冲突
发送REQA 接收ATQA
比特帧防冲突
专用防冲突 专用帧和
协议
08.08.2020
检测 ATQA
选择UID CL1
CL+1
完成比特帧防冲突
UID不完整 检测
08.08.2020
27
.
Select过程
❖ 步骤6:PCD应识别出第一个冲突的位置。
❖ 步骤7:PCD分配了带有值的NVB,该值规定了 UID CLn有效比特数。这些有效位应是PCD所决 定的冲突发生之前被接收到的UID CLn的一部分 再加上(0)b或(1)b。典型的实现是增加(1)b。
NVB编码(1字节):
17
.
Wake-up 命令
08.08.2020
POWER OFF
IDLE 状态
REQA命令
READY 状态
防冲突循环
Select 命令
ACTIVE 状态
应用
HALT 命令 HALT 状态
PICC状态图(图1)
18
.
命令集
PCD 管理进入能量场的多张卡的命令
REQA WAKE-UP ANTICOLLISION SELECT HALT
当PICC的UID被PCD选中时就进入本状态。 在激活状态,完成本次应用的全部操作。
08.08.2020
16
.
(5)HALT(停止)状态
该状态通过HALT命令或本部分中未定义的应用 特定命令来进入。在这种状态中,PICC应仅响应 使PICC转换为READY状态的WAKE-UP命令。
08.08.2020
PCD所发送的有效位时,PICC才应发送其UID CLn的其余部分。 ❖ 步骤10:如果出现进一步的冲突,则重复步骤 6~9。最大的环数目是32。 ❖ 步骤11:如果不出现进一步的冲突,则PCD分配 带有值为‘70’的NVB。 注:该值定义了PCD将发送完整的UID CLn。
08.08.2020
29
面向比特的防冲突帧仅在防冲突循环期间使用, 并且事实上该帧是带有7个数据字节的标准帧, 它被分离成两部分:第1部分从PCD到PICC传输, 第2部分从PICC到PCD传输。
08.08.2020
9
.
面向比特的防冲突
下列规则应适用于第1部分和第2部分的长度: ❖ 规则1:数据位之和应为56 ❖ 规则2:第1部分的最小长度应为16个数据位 ❖ 规则3:第1部分的最大长度应为55个数据位 从而,第2部分的最小长度应为1个数据位,最大长
08.08.2020
33
.
UID内容和串联级别
❖UID CLn:根据串联级别n,UID的一部分,由5 个字节组成,3≥n≥1
❖ UIDn:UID的字节#n,n≥0 ❖BCC:UID CLn校验字节,4个先前字节的“异或”
值 ❖ CT:串联标记,‘88’ ❖ UID是一固定的唯一数或由PICC动态生成的随机
度应为40个数据位。
08.08.2020
10
.
面向比特的防冲突
从而,第2部分的最小长度应为1个数据位,最大 长度应为40个数据位。 由于该分离可以出现在一个数据字节范围内的任 何比特位置,故定义了两种情况:
❖FULL BYTE情况:在完整数据字节后分离。在第 1部分的最后数据位之后加上一个奇偶校验位。
至少为1172 / fc. (fc载波频率)
08.08.2020
4
.
08.08.2020
图1:Frame delay time PICC to PCD
5
.
表一:Frame delay time PICC to PCD
1.5 Request Guard Time(RGT):定义为 两个连续Request命令的起始位间的最小时 间。它的值为7000/fc。
较高4位称为字节计数,规定所有被8分开的有效 数据位的数,包括被PCD发送的NVB和SEL。这 样,字节计数的最小值是2而最大值是7。
较低4位称为比特计数,规定由PCD发送的所有 有效数据位模8后的数。
08.08.2020
28
.
Select过程
❖ 步骤8:PCD发送SEL和NVB,后随有效位本身。 ❖步骤9:只有PICC的UID CLn中的一部分等于
08.08.2020
19
.
(1)REQA命令和WAKE-UP命令
这两条命令都是使卡进入Ready状态,差别是 REQA命令从IDLE进入Ready状态,而Wake-up 从Halt进入Ready状态。
PICC接收到REQA命令或WAKE-UP命令 后,在PCD能量场范围内的所有PICC同步发 出ATQA应答,长度为2字节。
ISO 14443-3
Type A初始化和防冲突算法
应用系统事业部测试组
2010.7
内容介绍
ISO/IEC 14443-3 包括:
1. PCD不断轮寻进入能量场的PICC; 2. 在PCD与PICC之间进行通信的初始化阶段用
的字节格式、帧和时序; 3. 初始化REQA和ATQA(命令和应答)的内容; 4. 多张卡中检出1张卡并与之通信的方法; 5. PCD与PICC进行初始化通信的其他参数; 6. 加速从多卡中选出1张卡的可选方法。
08.08.2020
24
.
b16 ~b9 RFU 置0
b8b7 UID大小比特帧
b6 RFU
ATQA的编码
b5b4b3b2b1 比特帧防冲突 (只有1位置1)
ATQ的b8b7
00 01 10
UID的大小 最大级联CL UID的字节数
1
1
4
2
2
7
3
3
10
UID的大小
08.08.2020
25
.
Select过程
13
.
CRC_A
CRC_A编码和校验过程在ITU-T建议的V.41第2 段中定义。用来生成校验位的生成多项式为x16 + x12 + x5 + 1。初始值应为‘6363’。CRC_A应被 添加到数据字节中并通过标准帧来发送。
08.08.2020
14
.
PICC各状态
(1)POWER OFF
PICC由于缺少载波能量而处于断电状态, 也不发射副载波。
1. 位、字节和帧格式 2. 1.1 Frame Delay Time(FDT):相反方向
的相邻两帧之间的间隔 3. 1.2 Frame Guard Time(FGT):保证通
信正常的最小FDT 4. 1.3 PCD帧传输完毕到PICC响应帧开始之间
的 FGT见图一及表一; 5. 1.4 PICC帧传输完毕到PCD帧之间的FGT
❖如果NVB规定了UID CLn的40个数据位 (NVB=‘70’),则应添加CRC_A。该命令称为 SELECT命令。如果PICC已发送了完整的UID, 则它从READY状态转换到ACTIVE状态并在其 SAK-响应中指出UID完整。否则,PICC保持在 READY状态中并且该PCD应以递增串联级别启动 一个新的防冲突环。
命令格式:
SEL NVB UID CLn 数据位
BCC校验位
1字节 1字节
0~4字节
1字节
校验位仅当UID的数据位为4字节时(完整)才有。
PCD发出防冲突命令的目的是想从PICC得到卡的 UID CLn的一部分或全部,从而选出一张卡。
08.08.2020
21
.
❖ 只要NVB没有规定40个有效位,若PICC保持在 READY状态中,该命令就被称为 ANTICOLLISION命令。
wwwfmshcom18201347piccpicc状态图图状态图图11poweroffidle状态halt状态reqa命令ready状态active状态防冲突循环select命令halt命令wakeup命令wwwfmshcom19201347命令集命令集pcdpcd管理进入能量场的多张卡的命令管理进入能量场的多张卡的命令reqareqawakewakeupupanticollisionanticollisionselectselecthalthaltwwwfmshcom2020134711reqareqa命令和命令和wakewakeupup命令命令这两条命令都是使卡进入ready状态差别是reqa命令从idle进入ready状态而wakeup从halt进入ready状态
❖SPLIT BYTE情况:在数据字节范围内分离。在 第1部分的最后数据位之后不加奇偶校验位。 下面全字节情况和分离字节情况的例子定义了位 的组织结构和位传输的次序。对于SPLIT BYTE, PCD应忽略第二部分的第一个奇偶校验位。
08.08.2020
11
.
08.08.2020
12
.
08.08.2020
(2)IDLE (闲置)状态
电磁场激活后,PICC进入IDLE状态。
08.08.2020
15
.
(3)READY (就绪)状态
当收到一个有效的REQA或WAKE-UP命令, 就进入READY状态。
当PICC的UID(唯一标识符)被PCD发来的 Selection命令选中时,就退出本状态。
(4)ACTIVE(激活)状态