智能卡 ISO14443 协议 解读

MFRC522 芯片手册 参考资料:
《MFRC522数据手册.pdf》
《MFRC522中文.pdf》
《IC卡与RFID标签(第三版)王爱英.pdf》
《ISO14443协议中文版》
《ISO14443协议英文版》—《ISO14443_2011》
《中国金融集成电路(IC)卡与应用无关的非接触式规范.pdf》
《Cpu卡操作的基本方法指令.pdf》
《FM1216_ps_chs.pdf》

名词解释

PICC:接近式卡 Proximity Card(PICC) (卡片)
PCD : 接近式耦合设备 Proximity coupling device (PCD)(读卡器)

ATQA: Answer To Request ,Type A
ATQB : Answer To Request, Type B

REQA: REQuest command,Type A
REQB: REQuest command,Type B

UID : Unique IDentifier,Type A
WUPA: Wake-UP command,Type A
WUPB: Wake-UP command,Type B

ATS : Answer to Select

ATR:Answer to Reset 复位应答

PTS: Protocol Type Selection

PPS: Protocol and Parameter Selection
协议和参数选择
RATS: Request for Answer To Select
选择应答请求

MF:(Master File )主目录
DF:(Dedicated File)专用文件
EF:(Elementary File)

7.1 轮询

当 PICC 暴露于未调制的工作场内,它能在5ms 内接受一个请求。
例如:
当类型A PICC 接收到任何类型B 命令时,它能在5ms 内接受一个REQA。
当类型B PICC 接收到任何类型A 命令时,它能在5ms 内接受一个REQB。
为了检测进入其激励场的PICC,PCD 发送重复的请求命令并寻找ATQ。请求命令应按
任何顺序使用这里描述的REQA 和REQB,此外,也可能使用10.5 中描述的其他编码。这
个过程被称为轮询。

标准REQA 的数据内容是‘26’,WAKE-UP 请求的
数据内容是‘52’

这里写图片描述

POWER-OFF状态

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

IDLF状态

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

READY状态

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

ACTIVE状态

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

HALT状态

该状态通过7.2.3.4 中定义的HALT 命令或本部分中未定义的应用特定命令来进入。在
这种状态中,PICC 应仅响应使PICC 转换为READY 状态的WAKE-UP 命令。
注:处于HALT 状态的PICC 将不参与任何进一步的通信,除非使用了WAKE-UP 命令。

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

REQA
WAKE-UP
ANTICOLLISION
SELECT
HALT

REQA命令

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

WAKE-UP命令

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

ANTICOLLISION命令和SELECT命令

这些命令在防冲突环期间使用。ANTICOLLISION 和SELECT 命令由下列内容组成:
选择代码SEL(1 个字节)
有效位的数目NVB(1 个字节)
根据NVB 的值,UID CLn 的0 到40 个数据位
SEL 规定了串联级别CLn。
NVB 规定了PCD 所发送的CLn 的有效位的数目。
注:只要NVB 没有规定40 个有效位,若PICC 保持在READY 状态中,该命令就被称为ANTICOLLISION
命令。
如果NVB 规定了UID CLn 的40 个数据位(NVB=‘70’),则应添加CRC_A。该命令称
为SELECT 命令。如果PICC 已发送了完整的UID,则它从READY 状态转换到ACTIVE
状态并在其SAK-响应中指出UID 完整。否则,PICC 保持在READY 状态中并且该PCD 应
以递增串联级别启动一个新的防冲突环。

这里写图片描述

这里写图片描述

王爱英的书中,第4章:
在目前已经发表的非接触式卡国际标准中,主要讨论的是卡的物理特性,发射/接收的电信号,防冲突机制,复位应答和传输协议。
与接触式IC卡相比,非接触式IC卡还需要解决下述三个问题:
遇到问题:
(1) IC卡如何取得工作电压
(2) 读写器与iC卡之间如何交换信息
(3) 多张卡同时进入读写器发射的能量区域(发生冲突或者碰撞时候),如何处理。

在非接触式IC卡和RFID芯片中,使用的射频有低频的(125kHz和134.5kHz),高频(13.56MHz),超高频(433MHz和860 ~960MHz)和微波(2.45GHz和5.8GHz)等频段。

在非接触式IC卡中,采用的是负载调制方法。
非接触式IC卡和读写器之间的通信是通过空间介质(无线方式)实现的,通信从读写器发送载波信号开始。
国际标准规定的IC卡采用ID-1型卡片,
因此使用的IC卡是无源的,非接触式IC卡从天线接收到的载波信号(射频电磁波)中获取能量,经过检波(整流),倍压,稳压得到卡工作所需的直流电压。
这里写图片描述

读写器和IC卡之间,射频信号,有两种耦合方式:
电感耦合和电磁反响散射耦合。
IC卡是用的电感耦合。
IC卡用的是负载调制的方法。
根据电磁场基本理论,当射频信号加载到天线之后,在紧邻天线的空间区域内,其电场与磁场之间的转换类似于变压器中电场和磁场之间的转换,为电感耦合(闭合磁路)。

非接触式IC卡的载波频率是13.56Mhz。
1.负载调制:
如果将一个谐振频率与读写器发送频率相同的IC卡放入读写器天线的交变磁场中,
IC卡就能从磁场取得能量,这将导致读写器天线电流的增加和读写器内阻R上的压降增大。
IC卡天线上负载电阻的接通和断开会使读写器天线上的电压发生变化,如果用IC卡要发送的数据来控制负载电阻的接通和断开,那么这些数据就能从卡传输到读写器(在读写器天线上测到),这种数据传送方式称为负载调制。
但是在天线上测试得到的信号幅度很小。实践中,对于13.56Mhz的系统来说,当天线电压大约为100v时,有效信号,仅仅有10mv左右。
于是在国际标准中,采用副载波的负载调制。
在卡片中,将接收到的载波进行分频得到副载波。
假设载波频率为13.56Mhz,16分频得到副载波,频率为847Khz,卡要发送的数据采用曼彻斯特编码,ASK调制,传输率为106kb/s(847/8)。

IC卡中的能量来自读写器发送的载波,因此在设计读写器数据的编码和调试方式的时候,要尽量保证不间断的供给能量。

PCD和PICC开始对话的操作顺序如下。
(1) PCD 能量场激活PICC
(2) PICC等待PCD命令
(3) PCD发出一个命令
(4) PICC发出一个应答
从PCD传送到PICC的信号
(1) 载波信号为13.56Mhz,在初始化和防冲突期间,数据传输率 = 13.56Mhz/128 = 106Kb/s,一位数据所占的时间周期为9.4us。

(2) 副载波的频率为13.56Mhz/16 = 847khz,在初始化和防冲突期间,一位时间等于8个副载波时间。

(3) PICC仅仅在数据传送时候产生副载波。

IS0/IEC 14443-3 初始化和防冲突
(1) PICC进入PCD场的轮询过程(polling)。
(2) 在PCD和PICC之间进行通信的初始化阶段所用的字节格式,帧和时序
(3) 初始化REQ和ATQ(命令和应答)的内容
(4) 在多张卡中检出1张卡,并与之通信的方法
当PICC进入尚未调制的射频场后,应该能在5ms时间内接收PCD的请求命令。
PCD为了检出PCD能量场中的PICC,PCD重复发出请求命令REQA/REQB,
并且应答ATQA,这一过程称为polling。

防冲突:

当PICC接收到REQA命令或者WUPA命令后,
在PCD能量场范围内的所有PICC,同步发出ATQA响应。
ATQA长度为2个字节。
‘26’ = REQA
‘52’ =WUPA

PCD 接收ATQA应答,PICC进入READY状态,执行防冲突循环操作。

ANTICOLLISION命令和SELECT命令。
这两条命令用于防冲突循环。
(1) 选择代码SEL(1字节)。
(2) 有效位数量NVB(1字节)
(3) 由NVB指定的UID CLn(0到40位)

  1. PCD 发送 REQA命令,所有卡片回送ATQA
  2. PCD 发送 SEL = ‘93’,NVB = ‘20’两个字节
    迫使所有的在场的PICC发回完整的UID CLn作为应答。
    3.所有在场的PICC发回完整的UID CLn作为应答
  3. 多于一张PICC发回应答,发送冲突。
  4. PCD认出发生第一个冲突的位置。
  5. PCD 发送SEL + NVB +部分 UID CLn
    部分UID CLn是指的发生冲突之前的部分,
    后面加上由PCD决定加一位“0”或者“一位1”,
    一般加“1”。
  6. 只有与PCD发送的UID CLn部分的位,完全相同的PICC,才会发送UID CLn的其余位。
    8. 假设还有冲突,重复上一步,最大循环是32。
  7. 假设没有冲突,PCD 指定NVB为70,此值表示PCD将发送完整的UID CLn。
  8. 与40位UID CLn 匹配的PICC,以SAK作为应答。

卡片如果收到完整的UID Cln那么回复SAK,
如果收到的不是完整的UID Cln,如果该不完整的UID Cln的内容,如果和自己的相同,就回复剩下部分的UID Cln内容。可以有两个卡片同时回复,又有冲突,然后进一步,调整UID Cln部分内容,再次判断。

SAK 表示已经根据UID选中了一张PICC,
PCD 将发送RATS— request for answer to select,
以后PICC 发送ATS 来回答RATS。

当PICC接收到REQA命令或者WUPA命令后,在PCD能量场范围内的所有PICC同步发出ATAQ响应。
ATQA的长度为2个字节,
其编码如表4.3所示:
这里写图片描述

这里写图片描述

#

MFRC522 是干嘛的?

读写器,支持 ISO 14443A / MIFARE®

MFRC522 的内部发送器部分可驱动读写器天线与ISO 14443A/MIFARE®卡和应答机
的通信,无需其它的电路。接收器部分提供一个功能强大和高效的解调和译码电路,用来
处理兼容ISO 14443A/MIFARE®的卡和应答机的信号。数字电路部分处理完整的ISO
14443A 帧和错误检测(奇偶&CRC)。MFRC522 支持MIFARE® Classic(如,MIFARE®标
准)器件。MFRC522 支持MIFARE®更高速的非接触式通信,双向数据传输速率高达
424kbit/s。

MFRC522 特性?
  • 高度集成的模拟电路,解调和译码响应。
  • 缓冲的输出驱动器与天线的连接使用最少的外部元件。
  • 支持 ISO 14443A/MIFARE®。
  • 读写器模式中与 ISO 14443A/MIFARE®的通信距离高达50mm,取决于天线的长 度和调谐。
  • 读写器模式下支持 MIFARE® Classic 加密
  • 支持 ISO 14443 212kbit/s 和424kbit/s 的更高传输速率的通信。
  • 64 字节的发送和接收FIFO 缓冲区。
  • 灵活的中断模式。
  • 低功耗的硬复位功能。
  • 软件掉电模式。
  • 可编程定时器。
  • 内部振荡器,连接 27.12MHz 的晶体。
  • 3.3V 的电源电压。
  • CRC 协处理器
  • 自由编程的 I/O 管脚
  • 内部自测试

这里写图片描述

这里写图片描述

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wowocpp/article/details/79910800
个人分类: 智能卡
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

智能卡 ISO14443 协议 解读

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭