PBOC第八部分和第十一部分关于TYPEA总结(二)——传输协议(ISO14443-4)

二、传输协议(ISO14443-4)(8,P50 11,P30)

1、选择应答请求(RATS)

使用RATS命令和PICC协商通讯的最大帧长度(FSD和FSC)、帧等待时间(FWT)和启动帧保护时间(SFGT)。

RATS命令使用带有CRC_A的标准帧进行传输

格式 开始字节+参数(FSDI和CID)(1个字节) +CRCA16

(1)开始字节 E0

参数高4位 FSDI,它用于编码FSD。FSD定义了PCD能收到的帧的最大长度。 一般为5,64字节

低4位 CID ,它定义编址了的PICC的逻辑号在0到14范围内。值15为RFU。

CID由PCD规定,并且对同一时刻处在ACTIVE状态中的所有PICC,它应是唯一的。

CID在PICC被激活期间是固定的,并且PICC应使用CID作为其逻辑标识符,它包含在接收到的第一个无差错的RATS。

PCD设置CID为0表示每次仅支持对一张PICC进行定位。一般为1,

所这参数这个字节普通设置为51。

注意:第十一部分 P30 PCD应设置FSDI为FSDIMIN。FSDIMIN的取值见附录A ,FSDIMIN值为8,即为256字节,PCD的FIFO的长度一般为64字节,此处为什么要设置成8??

一般设置成51。

2、RATS响应(ATS)

ATS使用带有CRC_A的标准帧进行传输

(1)长度字节TL

长度字节TL是必备的,它规定了ATS(包括TL自身)的长度,不包括两个CRC_A字节。

(2)格式字节T0 当长度大于1时便出现,

b8 为0

b7 为1时代表TC(1)被传输

b6 为1时,代表TB(1)被传输

b5 为1时,代表TA(1)被传输

b4~b1 FSCI编码,定义了PICC能接收的帧的最大长度。FSCI的缺省值为2 即32字节

(3)TA(1) 接口字节

传送了PICC支持的位速率能力信息

最高有效位b8编码了为每个方向处理不同除数的可能性。当该位被置为1时,PICC不能为每个方向处理不同除数;

如果b8=1,则仅支持两个方向上相同的位速率除数D((DPICC→PCD) = (DPCD→PICC))如果b8=0,则支持每个方向上不同的位速率除数D应为1

—位b7到b5为PICC到PCD方向编码了PICC的位速率能力,称为DS。缺省值应为(000)b;

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

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

(4)接口字节TB(1)

传送了定义帧等待时间(FWT)和启动帧保护时间(SFGT)的信息。

(5)接口字节TC(1)

指出PICC是否支持NAD和CID

——最高有效位b8到b3为000000b,所有其他值为RFU;

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

(6)历史字节:

历史字节T1到Tk是可选的并包含了通用信息。ATS的最大长度给出了历史字节的最大可能数目15个字节。

 

3、半双工块传输协议

半双工块传输协议符合无触点卡环境的特殊需要

块格式,由一个头域(必备)、一个信息域(可选)和一个尾域(必备)组成

PCD发送的块的总长度应小于或等于FSC(FSC在协议安装时由PICC指定)

(1) 头域

最多由三个字节构成:协议控制字节PCB(必备); 卡标识符CID(可选); 结点地址NAD(可选)。

(2)协议控制字节域PCB

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

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

——用于为应用层的使用传送信息的信息块(I-块);

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

——用于在PCD和PICC间交换控制信息的管理块(S-块)。两种不同类型的S-块定义如下:

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

● 不包含INF域的DESELECT

(3)卡标识符CID

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

——最高有效位b8,b7用于从PICC到PCD的功率水平指示。对于PCD到PICC的通信,这两位应被置为0。、

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

——位b4到b1编码CID。

(4)结点地址域NAD

在头域里的NAD被保存用于建立和编址不同的逻辑连接。当位b8和b4被置为0时

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

——NAD域应仅用于I-块;

——当PCD使用NAD时,PICC也应使用NAD;

——在链接期间,NAD仅在链的第一个块内传输;

——PCD应不使用NAD编址不同的PICC(CID应被用于编址不同的PICC);

——当PCD不支持NAD时,应忽略任何包含NAD的块。

(5)信息域

信息域是可选的。当出现在I块中时,信息域传送的是应用数据,当出现在S块中时,它传送的是非应用数据和状态信息。信息域的长度可以通过计算整个块的长度减去头域和尾域的长度来得到。

(6)尾域

该域包含传输块的EDC。EDC为第7章中定义的CRC。

每个设置链接位的I块必须用R(ACK)块确认

当PCD发送一组链接的I块,每个指示了链接的块的大小应等于FSC

(7)帧等待时间(FWT)

FWT给PICC定义了在PCD帧结束后开始其响应帧的最大时间

注:在任何方向上两个帧之间的最小时间在第7章中定义。 FWT通过下面的公式计算: FWT=(256×16/fc)×2FWI

其中FWI的值在0到14之间,15为RFU。对于Type A,若TB(1)被省略,则FWI的缺省值为4,

给出的FWT值约为4.8ms。

对于FWI=0,FWT= FWTMIN (~302μs)

对于FWI=14,FWT= FWTMAX (~4949μs)

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

(8)帧等待时间扩展

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

——最高有效位b8,b7编码功率水平指示(见8.3.4);

——最低有效位b6到b1编码WTXM。WTXM在1到59范围内编码。值0和60到63为RFU。

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

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

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

FWT的响应的临时值通过下面的公式计算: FWTTEMP= FWT×WTXM PICC需要的时间FWTTEMP在PCD发送了S(WTX)响应之后开始。 当公式得出的结果大于FWTMAX时,应该使用FWTMAX。 临时FWT仅在下一个块被PCD接收到时才应用

(9)功率水平指示

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

(00)b PICC不支持功率水平指示

(01)b 对于完整功能性,功率不充分

(10)b 对于完整功能性,功率充分

(11)b 对于完整功能性,功率超出

4、协议操作

(1)多激活

多激活特征允许PCD保持几个PICC同时在ACTIVE状态。对于停活PICC和激活另一张PICC,这允许几个PICC间直接转换而无须另外的时间。多激活的举例见附录G。

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

(2)链接

链接过程允许PCD或PICC通过把信息划分成若干块来传输不符合分别由FSC或FSD定义的单块的信息。每一块的长度应分别小于或等于FSC或FSD。 块的链接通过链接I-块中PCB的位(M)来控制。每一个带链接位集的I-块应被R-块确认。

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

5、块处理规则

一般规则

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

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

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

6、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可以被忽视。

7、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、差错检测和恢复

当检测到差错时,应试图使用下列恢复规则。本章中的定义支配块处理规则(见8.3.5.3)。 下列差错应被PCD检测到: a)传输差错(帧差错或EDC差错)或FWT超时 PCD应试图通过以下顺序示出的技术进行差错恢复:

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

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

——忽视PICC。

b)协议差错(违反了PCB编码或违反了协议规则) PCD应试图通过以下顺序示出的技术进行差错恢复:

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

——忽视PICC。

当PCD发送了S(DESELECT)请求并接收到了S(DESELECT)响应,则PICC已被成功地置为了HALT状态并且分配给它的CID也被释放。 当PCD没有接收到S(DESELECT)响应,则PCD可以重新进行停活序列。

时间: 2024-07-29 01:49:38

PBOC第八部分和第十一部分关于TYPEA总结(二)——传输协议(ISO14443-4)的相关文章

PBOC第八部分和第十一部分关于TYPEA总结(一)——初始化和防冲突(ISO14443-3)

PBOC第八部分和第十一部分关于TYPEA总结(一) ——初始化和防冲突(ISO14443-3) 第八部分 与应用无关的非接触式规范 ISO14443(1~4) 第十一部分 非接触式IC卡通讯规范 在第八部分的基础上,详细规定了非接触式设备和非接触式卡片之间无线通讯协议的有关要求. PBOC规范,因为不同单位所写,规范中各部分会有重叠和冲突,这篇文档对第八部分和第十一部分进行总结,此部分作用可用于对PCD(读卡器)和PICC(IC卡)数据通讯的底层编写(关于TYPEA协议部分). 一.初始化和防

1112第十一章视图第十二章游标(转载)

1112第十一章视图第十二章游标 第十一章 视图 视图最多可以包含1024 列,创建视图时SELECT 查询中不能包含 COMPUTE 子句,COMPUTE BY 子句或INTO 关键字:除非SELECT 中包含TOP 或 FOR XML 子句,否则不能使用 ORDER BY 子句:定义视图的查询不能包含指定查询提示的OPTION子句,也不能包含TABLESAMPLE 子句. 1. 索引视图(物化视图) 必须创建一个唯一聚集索引 P296 创建索引视图时,不能引用其它视图,只能引用基表,并且基表

MiS603开发板 第十一章 CY7C68013A Slave FIFO回传输

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ MiS603开发板 第十一章 CY7C68013A Slave FIFO回传输 CY7C68013A提供了强大和灵活的外部接口通信方式,

android产品研发(十一)-->应用内跳转scheme协议

转载请标明出处:一片枫叶的专栏 上一篇文章中我们讲解了在Android App的实际开发中,尽量不在静态变量.全局变量中保存数据,这是因为App的进程可能是不安全的,在部分手机中其有可能被系统杀死,从而造成静态全局变量重新初始化.而这时候App当前页面的Activity还会被保存在内存中,从而造成App并没有被重启的假象,但是这只是显示的页面没有被杀死,而进程实际上是被重新启动了的.这时候在使用已被重新初始化的静态变量就会发生一些不可预知的错误,具体关于不在静态变量中保存数据的问题,可以参考这里

R in action读书笔记(15)第十一章 中级绘图 之二 折线图 相关图 马赛克图

第十一章 中级绘图 本节用到的函数有: plot legend corrgram mosaic 11.2折线图 如果将散点图上的点从左往右连接起来,那么就会得到一个折线图. 创建散点图和折线图: > opar<-par(no.readonly=TRUE) > par(mfrow=c(1,2)) > t1<-subset(Orange,Tree==1) > plot(t1$age,t1$circumference,xlab="Age(days)",yl

{Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session

本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx 七 xxx 八 xxx 一 会话跟踪 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.例如你给10086打个电话,你就是客户端,而10086服务人员就是服务器了.从双方接通电话那一刻起,会话就开始了,到某一方挂断电话表示会话结束.在通话过程中,你会向10086发出多个请求,那么这多个请

十一次作业加十二次作业

12.1#include<stdio.h> struct student { char sno[10]; char sname[20]; int age; char sex[3]; char xibie[5]; char tel[11]; int ach; }; int main() { int i; student class3[31]; for(i=0;i<31;i++) { scanf("%s %s %d %s %s %s %d",class[i].sno,cl

CSS学习(二十一)-flexbox模型之二

一.理论: 1.flex-flow a.flex-direction 设置伸缩容器的伸缩流方向 b.flex-wrap 设置伸缩容器中的伸缩项目在伸缩容器无足够空间时,伸缩项目在伸缩容器中是否换行排列 2.flex-pack a.具有与box-pack属性相同的参数 b.distribute 伸缩项目会平均分布在同一行里 c.start 伸缩容器中的第一个伸缩项目的起始边缘置于伸缩容器的主轴起始:下一个伸缩项目的起始边缘与第一个伸缩项目的末尾边缘紧挨在一起,其他伸缩项目依次沿着主轴依次排列.伸缩

一起talk C栗子吧(第一百四十八回:C语言实例--socket通信二)

各位看官们,大家好,上一回中咱们说的是socket通信的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在上一回中介绍了套接字的通信步骤,限于时间的原因, 我们只介绍了流套接字的通信步骤.这一回中我们将介绍数据报套接字的通信步骤. 下面是客户端和服务器端实现通信的详细步骤: 客户端实现通信的步骤: 1.创建客户端套接字(socket): 2.设置客户端套接字的属性:域,类型和协议: 3.通过操作客户端套接字来实现客户端与服务器的通信(sendto,r