NFCEE Discovery and Mode Set

news2024/11/9 6:01:56

10.1 NFCEE ID

NFCC 动态为 NFCEE 分配 ID(称为“NFCEE ID”)。 DH 通过执行 NFCEE Discovery 来了解 ID 值。 在配置状态为 0x01 的 NFCC 重置之前,NFCEE ID 一直有效。

值为 0x00 的 ID 在本规范中称为 DH-NFCEE ID,并且应代表 DH-NFCEE。

除了静态 NFCEE ID 之外,NFCC 还为 NFCEE 动态分配 ID。 NFCEE 分为两组:

 HCI 网络外部的 NFCEE,其 ID 称为 NFCEE ID,范围为 0x10 到 0x7F。

 HCI 网络内部的 NFCEE,称为 HCI-NFCEE,其 ID 称为 HCI-NFCEE ID,范围为 0x80 到 0xFE。

DH 通过执行 NFCEE 发现来了解动态 ID 值。

 

注意 此版本的 NCI 规范当前不支持 HCI 网络 NFCEE ID (HCI-NTWK-NFCEE)。

注意 [ETSI_102622] 使用与本规范中使用的术语不同的术语:

- [ETSI_102622]中的“终端”对应于本规范中的DH。

- [ETSI_102622]中的“CLF”对应于本规范中的NFCC。

- [ETSI_102622]中的“主机控制器”由NFCC实现。

- “UICC”是 NFCEE 的特定实现,它还通过 HCI 访问接口与 DH 建立链接。

10.2 NFCEE 发现

这些控制消息用于发现一个或多个 NFCEE 是否连接到 NFCC。

 

0 – 255 表示在此响应之后应发送的 NFCEE_DISCOVER_NTF 数量

 

 

 

硬件/注册标识

DH 可以使用硬件/注册标识来验证 DH 和 NFCEE 之间的任何通信仅在有效 NFCEE 的情况下发生。 NFC 上层协议或 DH 应用程序可以使用它来实现与 NFCEE 通信的安全性。 值字段编码超出了本文档的范围,可以由每个 NFCEE 制造商定义。

ATR 字节

ATR信息包含NFCEE支持的传输参数,例如T=0和T=1。 它还携带 DH 可能需要的所有必要信息,例如数据传输速率、掩码版本号、NFCEE 序列号、NFCEE 硬件参数等。ATR 的格式在 [ISO/IEC_7816-3] 中定义。

T3T 命令集接口补充信息

当支持的 NFCEE 协议参数之一包含值类型 3 标签命令集时,T3T 命令集接口补充信息可能会出现。 否则它不得出现。 如果存在 T3T 命令集接口补充信息,则它应包含表 119 中概述的 PMm 和条目数字段。如果条目数的值大于 0,则其后应跟随相应的条目数。 每个条目应包含表 119 中定义的系统代码和 Idm 字段。

 

HCI 网络中的主机 ID

指示由NFCC/主机控制器分配给该NFCEE/主机的主机ID,如[ETSI_102622]中所定义。

该类型表示NFCEE支持NDEF存储。 应提供以下字段:

为了发现一个或多个NFCEE是否连接到NFCC,DH将NFCEE_DISCOVER_CMD发送到NFCC。

收到 NFCEE_DISCOVER_CMD 后,NFCC 应使用 NFCEE_DISCOVER_RSP 响应 DH,状态为 STATUS_OK 以及可以连接到 NFCC 的 NFCEE 的最大数量(包括 NFCC 内的 NFCEE)。 值0x00表示没有NFCEE可以连接到NFCC并且NFCC内部不存在NFCEE,0x01表示一个NFCEE可以连接到NFCC或存在于NFCC内部,等等。DHNFCEE应从该数字中排除。

在 NFCEE_DISCOVER_RSP 之后,对于每个 NFCEE,NFCC 应发送一个
NFCEE_DISCOVER_NTF 发送至 DH,指示以下内容:
 由NFCC 分配给NFCEE 的唯一NFCEE ID。
 当前 NFCEE 状态。
 NFCEE 支持的每个 NFCEE 协议
 零个或多个 NFCEE 信息记录,以提供有关 NFCEE 的附加信息

 

注意 NFCEE 协议和 NFCEE 接口具有一对一的映射,并且这些值在通用定义中定义。

注:如果 NFCEE 支持通过 NFCEE_DISCOVER_NTF 报告的某些 NFCEE 协议,则受支持的协议之一可用于 DH 和 NFCEE 之间的通信。 该通信通道的创建称为“NFCEE 接口激活”。

分配的 NFCEE ID 一直有效,直到使用配置状态 0x01 重置 NFCC。

在NFCC执行NCI初始化后,所有NFCEE的初始状态应被禁用(NFCEE状态值设置为0x01)。

如果新的 NFCEE 连接到 NFCC,则该 NFCEE 的初始状态应为禁用(NFCEE 状态值设置为 0x01)或无响应(NFCEE 状态值设置为 0x02)。

如果 NFCEE 发现过程失败,则应发送 NFCEE_DISCOVER_RSP,状态为 STATUS_FAILED(参见表 129)。 在失败情况下,NFCEE 的数量应为 0。

无论任何报告的 NFCEE 状态如何,DH 都可以发送 NFCEE_DISCOVER_CMD。

收到有效的 NFCEE_DISCOVER_CMD 后,如果 NFCC 尚未发送先前 NFCEE_DISCOVER_CMD 的所有预期 NFCEE_DISCOVER_NTF,NFCC 应使用状态为 STATUS_SEMANTIC_ERROR 的 NFCEE_DISCOVER_RSP 进行响应。 否则,NFCC 应使用状态为 STATUS_OK 的 NFCEE_DISCOVER_RSP 进行响应

下图显示了 NFCEE 状态转换。 注意,NFCEE_MODE_SET_NTF(启用)符号指示与NFCEE_MODE_SET_CMD(启用)相关联的NFCEE_MODE_SET_NTF。

 

10.2.1 HCI-NFCEE 具体处理

如果 NFCC 实现了 CORE_INIT_RSP 中报告的 HCI 主机控制器,则以下规则适用于 HCI-NFCEE 的 NFCEE_DISCOVER_NTF:

 NFCC 应将协议信息条目数设置为 0

 NFCC 应在 HCI 网络中使用主机 ID 值的 NFCEE 信息 TLV。

 NFCC 不应提供任何硬件/注册标识; 硬件/注册标识的长度应设置为 0。HCI 网络中不同主机的硬件/注册标识信息可以通过 HCP 数据包接收(如[ETSI_102622]中定义)。

此外,以下规则也适用:

 DH 不得使用 NFCEE_DISCOVER_NTF 中的 NFCC 返回的 HCI-NFCEE ID 来创建到此 HCI-NFCEE 的逻辑连接。 DH 应使用静态 HCI 连接。

 如果 NFCEE 状态字段的值为“0x00 – NFCEE 已启用”,则允许 HCI-NFCEE 执行 RF 通信(在 RF 状态机给定的条件下)。

如果 NFCEE 状态字段的值为“0x01 – NFCEE 禁用”或“0x02 – NFCEE 无响应”,则不允许此 HCI-NFCEE 进行 RF 通信。

10.2.2 NDEF-NFCEE 具体处理

对于支持 NDEF 存储的 NFCEE,以下规则适用于 NFCEE_DISCOVER_NTF:

 NFCC 应将协议信息条目数设置为 1 并使用以下 NFCEE 协议值:

o 对于 T4T 仿真:NFCEE 协议 = APDU

o 对于 T3T 仿真:NFCEE 协议 = 类型 3 标签命令集

 NFCC 应添加类型 0x04 的 NFCEE 信息 TLV,以通知 DH 有关可存储在 NFCEE 上的 NDEF 消息的最大大小,以及该 NFCEE 可以运行的电源状态。

 如果模拟 T3T,NDEF-NFCEE 应使用以 0x02FE 开头的 NFCID2(如 [DIGITAL] 中定义)。 NFCC 应通过在 NFCEE_DISCOVER_NTF 中包含 T3T 命令集接口补充信息 TLV 来向 DH 通知有关 T3T 参数的信息。

10.3 NFCEE 启用和禁用

这些控制消息用于启用或禁用 NFCEE。

为了启用或禁用 NFCEE,DH 向 NFCC 发送 NFCEE_MODE_SET_CMD。 NFCEE ID 标识发生操作的 NFCEE,NFCEE 模式标识该 NFCEE 是启用还是禁用。

发送 NFCEE_MODE_SET_CMD 后,DH 不得发送另一个 NFCEE_MODE_SET_CMD,直到收到状态失败的 NFCEE_MODE_SET_RSP 或 NFCEE_MODE_SET_NTF。

收到有效的 NFCEE_MODE_SET_CMD 后,如果 NFCC 尚未发送先前 NFCEE_MODE_SET_CMD 的 NFCEE_MODE_SET_NTF,则 NFCC 应使用状态为 STATUS_SEMANTIC_ERROR 的 NFCEE_MODE_SET_RSP 响应 DH。 否则,NFCC 应使用状态为 STATUS_OK 的 NFCEE_MODE_SET_RSP 响应 DH。

在 NFCC 通过向 DH 发送 NFCEE_MODE_SET_NTF 指示操作是成功还是不成功之前,NFCC 应等待必要的处理(可能包括初始化序列)完成。 在失败情况下,如果相应的 NFCEE 无响应,状态应设置为 STATUS_FAILED(参见表 129)或 NFCEE_TRANSMISSION_ERROR。

如果 NFCEE 被禁用,则 DH 和 NFCC 不应考虑 NFCEE 已启用,直到 DH 在 NFCEE_MODE_SET_CMD(启用)之后收到状态设置为 STATUS_OK 的 NFCEE_MODE_SET_NTF。

如果启用了 NFCEE,DH 和 NFCC 不得考虑禁用 NFCEE,直到

DH 在 NFCEE_MODE_SET_CMD(禁用)后获取 NFCEE_MODE_SET_NTF,或者 DH 接收 NFCEE_STATUS_NTF(不可恢复错误),如第 10.5 节中所定义。

如果 DH 收到状态为 NFCEE_TRANSMISSION_ERROR 的 NFCEE_MODE_SET_NTF,则 NFCEE 应被视为无响应。

如果 NFCEE 无响应,DH 不得尝试启用或禁用该 NFCEE。 如果NFCC收到具有无响应元素的NFCEE ID的NFCEE_MODE_SET_CMD,则NFCC应使用状态为STATUS_SEMANTIC_ERROR的NFCEE_MODE_SET_RSP来响应DH。

NFCC 不得将通信路由至禁用或无响应的 NFCEE 或从其接收。 这还包括来自远程 NFC 端点或通过 NFCC 路由的另一个 NFCEE 的任何通信。

NFCC 仅应在由 NFCEE_MODE_SET_CMD 触发时启用 NFCEE。

如果 DH 使用 NFCEE_MODE_SET_CMD 禁用 NFCEE,则应隐式关闭到该 NFCEE 的逻辑连接(不发送 CORE_CONN_CLOSE_CMD),并且应立即停用相应的 NFCEE 接口。

10.3.1 HCI-NFCEE 具体处理

如果NFCEE_MODE_SET_CMD的NFCEE模式字段设置为“启用NFCEE”,则允许HCI-NFCEE执行RF通信。 因此,如果尚未激活,则应激活 HCI-NFCEE 的通信接口。 如果在接收 NFCEE_MODE_SET_CMD(启用)时 HCI-NFCEE 已启用,NFCC 应激活 HCI-NFCEE 的通信接口(通信接口可能已提前停用,例如出于功耗原因)。 如果 NFCEE_MODE_SET_CMD 的 NFCEE 模式字段设置为“禁用 NFCEE”,则不允许 HCI-NFCEE 执行任何进一步的 RF 通信。 因此,可能不再需要保持 HCI-NFCEE 的通信接口处于激活状态。

对于 HCI-NFCEE,第 10.5 节中引用的初始化序列是 HCI 会话初始化(在 [ETSI_102622] 中定义)。

10.4 NDEF-NFCEE

一旦 DH 发现可以嵌入到 NFCC 内的 NDEF-NFCEE,就可以使用定义用于管理 NFCEE 的所有 NCI 机制:

 DH 可以使用 NFCEE_MODE_SET_CMD 启用/禁用 NDEF-NFCEE。 NDEF-NFCEE 中的 NDEF 消息应在禁用/启用序列上保持不变。

 对于 NFCEE 支持的电源状态,DH 可以在侦听路由表中包含 NDEF-NFCEE ID。

 NFCC 将使用 RF_NFCEE_ACTION_NTF 向 DH 通知 NDEF-NFCEE 发生的操作(例如,报告为 T4T 选择的 AID)

 NFCC 将通过 RF_NFCEE_DISCOVERY_REQ_NTF 向 DH 通知 NDEFNFCEE 的 RF 发现要求(通常为 T4T 的 NFC-A/Listen 或 NFC-B/Listen 和 T3T 的 NFC-F/Listen)

 DH 可以创建到 NDEF-NFCEE 的动态逻辑连接,以读取或写入 NDEF 消息的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/677777.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

五、Docker本地镜像发布到阿里云/发布到私有库

目录 前言一、本地镜像发布到阿里云1.1 流程图1.2 注册阿里云创建容器服务个人实例1.3 创建命名空间1.4 创建镜像仓库1.5 将镜像推送到阿里云本地仓库 二、从阿里云仓库拉去自己推送的镜像三、本地镜像发布到阿里云总结四、本地镜像发布到私有库4.1 流程图4.2 下载镜像Docker R…

Shell编程从入门到实践——实践篇

欢迎关注 「Android茶话会」 回 「学习之路」 取Android技术路线经典电子书回 「pdf」 取阿里&字节经典面试题、Android、算法、Java等系列武功秘籍。回 「天涯」 取天涯论坛200精彩博文,包括小说、玄学等 背景 之前在搞一些CI/CD,使用到了shell脚本,shell的开…

nvdiffrec在Windows上的配置及使用

nvdiffrec是NVIDIA研究院开源的项目,源代码地址:https://github.com/NVlabs/nvdiffrec ,论文为《Extracting Triangular 3D Models, Materials, and Lighting From Images》,从图像中提取三角形三维(三角网格)模型、空间变化的材质…

uni-app微信小程序获取手机号授权登录(复制即用,js完成敏感数据对称解密,无需走服务端处理)

目录 一、示例 二、具体实现说明 一、示例 获取到的手机号 二、具体实现说明 属性说明 属性名说明生效时机getphonenumber获取用户手机号回调open-type"getPhoneNumber" 按钮写法 <template><view class"login"><view class"content…

为什么要写这个带点玄幻气息的英语单词记忆博客

&#x1f31f;博主&#xff1a;命运之光 ☀️专栏&#xff1a;英之剑法&#x1f5e1; ❤️‍&#x1f525;专栏&#xff1a;英之试炼&#x1f525; ☀️博主的其他文章&#xff1a;点击进入博主的主页 &#x1f433; 开篇想说的话&#xff1a;开学就大三了&#xff0c;命运之光…

DMA详解及应用(嵌入式学习)

DMA 0. 前言1. DMA作用2. DMA特性3. DMA寄存器4. DMA的增量或者循环模式5. 练习 0. 前言 DMA&#xff08;Direct Memory Access&#xff0c;直接内存访问&#xff09;是一种计算机系统中用于高效地实现数据传输的技术。它允许数据在外设和内存之间直接传输&#xff0c;而无需C…

GEE:为每个对象(斑块/超像素)添加属性

作者:CSDN @ _养乐多_ 本文将介绍为每个对象(斑块/超像素)添加属性的代码。并举例将最近距离作为属性添加到每个对象(斑块/超像素)特征中。 结果如下图所示, 文章目录 一、代码二、代码链接一、代码 这段代码的目的是对动态世界土地覆盖图像进行分析,并提取出其中的目…

贪婪算法简介-数据结构和算法教程

贪婪算法是一种算法范例&#xff0c;它遵循在每个阶段进行局部最优选择的问题求解启发式&#xff0c;希望找到全局最优值。换句话说&#xff0c;贪婪算法在每一步都选择最好的可能选项&#xff0c;而不考虑该选择对未来步骤的影响。 当一个问题可以被划分成更小的子问题&#…

1.GPIO的工作原理

1.stm32引脚说明&#xff1a; 对于stm32f103zet6&#xff1a; 一共有7组io口&#xff1b;每组io口有16个io&#xff1b;一共有16*7112个io&#xff1b;分组情况为&#xff1a;GPIOA&#xff0c;GPIOB~GPIOG&#xff1b; 2.GPIO的基本结构&#xff1a; 3.GPIO的工作模式&…

C++入门:类和对象(后)

目录 前言&#xff1a; 一&#xff1a;static成员 (1)概念 (2)特性 (3)例子 二&#xff1a;explicit关键字 三&#xff1a;内部类 (1)概念 (2)特性 (3)实例 四&#xff1a;匿名对象 (1)概念 (2)特性 (3)实例 五&#xff1a;拷贝对象时的一些编译器优化 (1)引入 …

Spring整合MyBatis底层原理

Spring整合MyBatis底层原理 项目结构图 项目代码 build.gradle需要进入的依赖 // testImplementation(platform("org.junit:junit-bom:5.9.1")) // testImplementation("org.junit.jupiter:junit-jupiter")implementation("org.aspectj:aspect…

电池SOC和动力电池OCV功率联合估计研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

爱心方程(理科生的浪漫?)

目录 前言 C/C 源代码 扩展 Java Python HTML 前言 这个在大一的时候就想找了&#xff0c;然后后面是找到了一个&#xff0c;但是忘记出处了。我决定把可以找到的所有爱心给整理一下&#xff0c;为了实现“理科生的浪漫”&#xff01;&#xff01;&#xff01; C/C 首先…

你认为年轻人存款难吗?难啊难,难如上青天!!!

近日&#xff0c;有调查称“大概五分之一的年轻人存款在一万元以内。10万元存款是一个“坎”&#xff0c;存款超过10万就会超过53.7%的人。”“年轻人”“存款”两个词碰撞在一起&#xff0c;引来了广泛的关注和讨论。你认为年轻人存款难吗&#xff1f;可以从以下几个角度发表你…

Linux Nacos 设置systemctl service 并添加为开机启动

为方便在启动服务器时&#xff0c;不需要一个一个手动启动服务&#xff0c;需要把nacos设置为开机启动。方法如下&#xff1a; 在/usr/lib/systemd/system 目录下面添加nacos.service脚本&#xff1a; # 下面这一行必须有&#xff0c;不然会报错 #vim /usr/lib/systemd/system…

libevent(3)IO模型基础知识

一、用户态和内核态 我们知道现在的操作系统是分层的&#xff0c;内核封装了与底层的接口&#xff0c;通过系统调用提供给上层应用使用。 当进程运行在内核空间时&#xff0c;它就处于内核态&#xff1b;当进程运行在用户空间时&#xff0c;它就处于用户态。 当我们需要进行IO操…

【小沐学Python】网络爬虫之requests

文章目录 1、简介2、requests方法2.1 get2.2 post 3、requests响应信息4、requests的get方法4.1 url4.2 headers4.3 params4.4 proxies4.5 verify4.6 timeout4.7 cookies4.8 身份验证 3、测试代码3.1 获取网页HTML&#xff08;get&#xff09;3.2 获取网页HTML&#xff08;带he…

【LeetCode热题100】打卡第26天:最大矩形

文章目录 最大矩形⛅前言&#x1f512;题目&#x1f511;题解 最大矩形 ⛅前言 大家好&#xff0c;我是知识汲取者&#xff0c;欢迎来到我的LeetCode热题100刷题专栏&#xff01; 精选 100 道力扣&#xff08;LeetCode&#xff09;上最热门的题目&#xff0c;适合初识算法与数…

随着ChatGPT、文言一心的大火,未来可能的生活工作方式

前面的文章笼统的扯了一些ChatGPT、文言一心的差异化&#xff0c;感觉还是不够明白直观。特地找了一份资料&#xff0c;通过基础能力、进阶能力、和一些垂直领域的几百个各种问题&#xff0c;来对比分析两者的回答情况&#xff0c;让大家可以有个更接地气的了解。 由于问题太多…

无限脉动:释放音乐和区块链在音乐领域的力量

音乐是一种永恒的通用语言&#xff0c;它将人们聚集在一起&#xff0c;超越了边界&#xff0c;在我们灵魂深处产生共鸣&#xff0c;创造联系。在当今数字时代&#xff0c;随着区块链技术和去中心化网络的出现&#xff0c;音乐世界正在经历一场深刻的变革。 我们在与艺术家合作&…