0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ISO14443相关的协议

嵌入式软件开发交流 来源:嵌入式软件开发交流 作者:嵌入式软件开发交 2022-10-24 09:08 次阅读

前言

之前《【NFC专栏】ISO14443A协议》和《【NFC专栏】ISO14443B协议》两篇中我们都有提到ISO14443-4协议,所以ISO14443-4协议是适用于二者的。但并不是所有A卡或B卡都支持ISO14443-4协议。

ISO14443-4简介

ISO14443-4定义了半双工块传输协议,该协议适用于Type-A和Type-B两种卡。该协议还定义了激活与去激活的流程。

名词解析

ATS: Answer To Select,选择应答

PPS: Protocol and Parameter Selection,协议和参数选择 RATS:Request for answer to select,选择应答请求 FSD: Frame Size for proximity coupling Device, PCD的接收帧大小 FWI: Frame Waiting time Integer, 帧等待时间值

SFGI: Start-up Frame Guard time Integer,启动帧保护时间值

NAD:Node Address,节点地址

PCB:Protocol Control Byte,协议控制字节

命令介绍

RATS

该命令用于获取PICC的更详细的信息,格式定义如下:

835cc528-5331-11ed-a3b6-dac502259ad0.png

总共4个字节,我们主要关注Parameter字段,它由两部分组成。

83963f38-5331-11ed-a3b6-dac502259ad0.png

(1) FSDI: FSD编码值,即PCD能接收的最大帧大小。定义如下:

83a63136-5331-11ed-a3b6-dac502259ad0.png

(2)CID:用于PICC的寻址,值为0~14。ISO14443B协议中有提到过。

ATS

该命令用于应答RATS。格式定义如下:

83bed614-5331-11ed-a3b6-dac502259ad0.png

(1) TL:TL到Tk的字节数(包含TL本身)。

(2)T0:定义了后面的字段是否存在,以及PICC能接收的帧大小。

83dd28ee-5331-11ed-a3b6-dac502259ad0.png

b5~b7每个位表示TA~TC字段是否出现,为1则表示出现。

b1~b4为FSCI,表示PICC能接收的帧的大小,定义和上面的FSDI一样。

(3)TA:跟速率有关的信息。

83ee7d10-5331-11ed-a3b6-dac502259ad0.png

bit8定义了不同方向使用不同bit速率处理数据的能力,当该位设置成1时,PICC不支持不同方向的速率不一致。

b5~b7定义了PICC到PCD的速率(DS)。

b1~b3定义PCD到PICC的速率(DR)。

(4) TB:帧等待时间以及启动帧保护时间。

84099fb4-5331-11ed-a3b6-dac502259ad0.png

FWI:帧等待时间(即两个帧之间的等待时间),计算公式如下:

841a03fe-5331-11ed-a3b6-dac502259ad0.png

SFGI:启动帧保护时间(PICC发送ATS之后PCD多久才能继续发), 计算公式如下:

84268d86-5331-11ed-a3b6-dac502259ad0.png

(5) TC: 是否支持CID和NAD。

8433535e-5331-11ed-a3b6-dac502259ad0.png

(6) T1~Tk:可选字段,在ISO7816-4中定义。

PPS

该命令用于协议和参数的选择。格式定义如下:

84485308-5331-11ed-a3b6-dac502259ad0.png

(1) PPSS: 起始字节,定义如下:

84524dcc-5331-11ed-a3b6-dac502259ad0.png

高4位固定为1101,CID就是上面介绍的,没有则为0000。

(2)PPS0: 用于指示PPS1是否出现。

846bd47c-5331-11ed-a3b6-dac502259ad0.png

b5为1则表示PPS1字段有出现。

(3)PPS1:选择的速率。

8483e90e-5331-11ed-a3b6-dac502259ad0.png

DSI: PICC到PCD的速率

DRI:PCD到PICC的速率

具体定义如下:

848fcf6c-5331-11ed-a3b6-dac502259ad0.png

1对应的就是106kbit/s, 2对应212kbit/s, 以此类推。

PPS应答

PPS的应答格式如下:

84a2d2ce-5331-11ed-a3b6-dac502259ad0.png

PPSS: 起始字节, 在PPS命令中解释了。

TypeA激活协议

84b6f1e6-5331-11ed-a3b6-dac502259ad0.png

(1) 前面几步就是我们在ISO14443A协议中讲过的,主要是看是否支持ISO14443-4,判断是否支持在《【NFC专栏】ISO14443A协议》中有提到。接下来我们主要看支持ISO14443-4的流程。

(2) PCD发送RATS命令,PICC则应答ATS。

(3) 如果卡支持PPS命令,PCD可以PPS命令来修改参数。

(4)进行半双工协议传输,如果想结束传输,PCD可以发送DESELECT命令。

TypeB激活协议 ISO14443B的激活流程在《【NFC专栏】ISO14443B协议》中已经讲过了,在ISO14443-4中没有新增的内容。

半双工块传输协议

进行半双工传输的块格式(帧格式)有两种:标准块格式和增强型块格式。定义如下:

标准块格式

84d778f8-5331-11ed-a3b6-dac502259ad0.png

增强型块格式

8510985e-5331-11ed-a3b6-dac502259ad0.png

两者的区别就在于是否有Length字段,这个字段是用于纠错的。

(1)Length

表示总长度,包含Length,Prologue, Information三个字段。

(2)Prologue

可以包含PCB, CID, NAD,PCB是强制的,CID和NAD是可选的。

PCB:控制传输的信息,它定义了三种不同的block。

I-Block

852a75e4-5331-11ed-a3b6-dac502259ad0.png

R-Block

8547abc8-5331-11ed-a3b6-dac502259ad0.png

S-Block

855ecf60-5331-11ed-a3b6-dac502259ad0.png

I-Block用于传输应用层信息,R-Block用于传输ACK或NACK,S-Block用于交换控制信息。

CID定义如下:

857dd34c-5331-11ed-a3b6-dac502259ad0.png

NAD:定义在ISO7816-3。

(3)Information

传输过程中的数据,比如应用数据或状态码等。

(4)Epilogue

EDC: 就是CRC校验值

Chaining传输

Chaining传输可以理解为分段传输,当单个数据包超过帧的最大大小的时候,就要拆分成几个进行传输。比如下面的示意图:

859122c6-5331-11ed-a3b6-dac502259ad0.png

上半部分是发送端,下半部分是接收端。

(1)发送端将完整的数据包拆分成3个I-Block。

(2)接收端收到后判断出是Chaining,则发送R-Block进行应答。到最后一个包正常应答I-Block。

总结

到此,我们就将ISO14443相关的协议基本都讲完了,当然这是标准的协议,基于该标准的一些卡还有很多特殊的命令和特性,比如Mifare,所以在开发过程中,还要查看卡的datasheet。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码
    +关注

    关注

    6

    文章

    940

    浏览量

    54808
  • PICC
    +关注

    关注

    0

    文章

    23

    浏览量

    14006
  • ISO14443
    +关注

    关注

    0

    文章

    3

    浏览量

    6460

原文标题:【NFC专栏】ISO14443-4协议

文章出处:【微信号:嵌入式软件开发交流,微信公众号:嵌入式软件开发交流】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    求技术支持 ISO14443A通信协议 有大洋奉上

    本帖最后由 xiaoting085524 于 2014-5-15 15:36 编辑 本人有以项目需要ISO14443A通信协议的人才编写相关的软件程序,开发费用可面议。联系人赵工:***,
    发表于 05-15 15:19

    求懂ISO14443A协议方面的论坛 有大洋奉上

    本公司需要懂ISO14443a协议的人才开发有关的软件,事成以后必有大洋奉上,请大家积极与我联系,联系人赵工 :***!
    发表于 05-15 15:30

    ISO14443A

    哪位大神有ISO14443A的头文件?即ISO14443a.h.
    发表于 04-10 09:05

    读卡芯片FM1702SL相关资料推荐

    概述:FM1702SL是复旦微电子股份有限公司设计的,基于ISO14443标准的非接触卡读卡机专用芯片,采用0.6微米CMOSEEPROM工艺,支持ISO14443 type A协议,支持
    发表于 05-18 07:52

    请问怎样去设计一种空中传输协议系统?

    ISO14443协议是什么?空中传输协议的系统硬件设计空中传输协议的系统硬件设计
    发表于 05-21 06:12

    ISO14443介绍

    内容提纲1、ISO14443介绍-了解2、14443-A帧格式-掌握3、唤醒、防冲突、选卡-掌握认识14443ISO14443协议ISO14443
    发表于 07-27 07:10

    14443-A帧格式有哪几种?

    什么是ISO1444314443-A帧格式有哪几种?
    发表于 10-11 07:30

    STM32F103驱动THM3060读取二代身份证的方法

    THM3060简介THM3060 是一款同方微电子公司生产的13.56MHz 的非接触读写芯片,该芯片支持多种IC卡协议ISO14443 Type A, ISO14443 TypeB
    发表于 01-18 07:29

    ST25R3911-disco的demo代码读取ISO 14443协议的函数是什么?

    我今天在我的项目中使用 ISO 14443 协议,但我需要达到最高传输速率,我相信 ISO14443-4 可以给我那个速率。是否可以在 ST25R3911 中实施
    发表于 01-04 08:36

    如何使用套件ST25R3911B-disco和lib RFAL读取协议ISO14443A的信息?

    我正在尝试从另一张 RFID 卡读取信息,我的想法是发送一个请求并接收答案 00010203040506070809,发送此信息的卡是 SIC4310-full 使用 ISO14443 协议。我尝试
    发表于 01-05 07:57

    ISO/IEC14443-4 标准协议

    ISO/IEC CD 14443-4 ISO (the International Organisation for Standardisation) and IEC
    发表于 11-07 13:31 89次下载

    基于ISO14443A协议的RFID模拟前端设计

    实现基于ISO14443A协议的13.56 MHz RFID芯片的设计,本文讨论了RFID芯片模拟前端的实现方法,在电源产生、数据收发方面采用了新技术,并且从整个系统上作了优化,简化了模拟前端的设计
    发表于 08-04 11:49 4157次阅读
    基于<b class='flag-5'>ISO14443</b>A<b class='flag-5'>协议</b>的RFID模拟前端设计

    ISO/IEC_FCD_14443-1

    ISO/IEC 14443-1 Identification cards - Contactless integrated circuit(s) cards - Proximity cards Part 1: Physical characteristics
    发表于 06-08 13:50 36次下载

    射频卡协议ISO14443中文

    ISO1443的中文标准,写的非常详细
    发表于 03-15 10:46 92次下载

    ISO15693协议介绍

    之前介绍了ISO14443和Felica,接下来来介绍ISO15693协议,也就是我们平时说的V卡。它的出现是为了弥补 ISO14443 通信距离不足、同时读取标签数量不足的缺陷。
    的头像 发表于 12-09 11:41 1.3w次阅读