ts_102622v150000p(译文)
ts_102622v150000p
智能卡; UICC - 非接触式前端 (CLF) 接口; 主机控制器接口 (HCI)(第 15 版)
1 范围
本文件规定了一个逻辑接口,支持在 UICC 上托管的非接触式应用程序。本文档涵盖了一个主机嵌入 UICC 的配置,该 UICC 连接到嵌入在 CLF 中的主机控制器。
接口分为两部分:
-
本文件第一部分(第 4 至第 8 条)中描述的 HCI 核心指定了与应用程序无关的逻辑接口;和
-
本文档第二部分(第 9 至 11 条)中描述的非接触式平台指定了使用 UICC 和 CLF 的非接触式应用的 HCI 核心的实现。
支持 HCI 的低层协议(如 ETSI TS 102 613 [2] 中规定的 SWP)不在本文件的范围内。
2 参考文献
2.1 规范性引用
参考文献要么是特定的(由出版日期和/或版本号或版本号标识),要么是非特定的。对于特定参考文献,仅适用引用版本。对于非特定引用,引用文件的最新版本(包括任何修订)适用。
- 在引用 TC SCP 文档的情况下,非特定引用隐含地引用与当前文档相同版本中的该文档的最新版本。
可以在 https://docbox.etsi.org/Reference/ 找到未在预期位置公开提供的参考文档。
注意:虽然本条款中包含的任何超链接在发布时都是有效的,但 ETSI 不能保证其长期有效性。
下列参考文件是本文件的应用所必需的。
[1] 无效。
[2] ETSI TS 102 613:“智能卡;UICC - 非接触式前端 (CLF) 接口;物理和数据链路层特性”。
[3] ETSI TS 102 223:“智能卡;卡应用工具包 (CAT)”。
[4] ISO/IEC 18092:“信息技术 - 系统之间的电信和信息交换 - 近场通信 - 接口和协议 (NFCIP-1)”。
[5] ISO/IEC 14443-2:“识别卡 - 非接触式集成电路卡 - 感应卡 - 第 2 部分:射频功率和信号接口”。
[6] ISO/IEC 14443-3:“用于个人识别的卡片和安全设备——非接触式接近物体——第 3 部分:初始化和防冲突”。
[7] ISO/IEC 14443-4:“用于个人识别的卡和安全设备——非接触式接近物体——第 4 部分:传输协议”。
[8] ISO/IEC 7816-4:“识别卡 - 集成电路卡 - 第 4 部分:交换的组织、安全和命令”。
[9] ETSI TS 101 220:“智能卡;电信应用提供商的 ETSI 编号系统”。
[10] ISO/IEC 7816-3:“识别卡 - 集成电路卡 - 第 3 部分:带触点的卡 - 电气接口和传输协议”。
[11] ETSI TS 102 221:“智能卡;UICC 终端接口;物理和逻辑特性”。
[12] GlobalPlatform:“多个非接触式卡仿真环境 - 管理实体 v1.0”。
注意:可从 http://www.globalplatform.org/ 获得。
[13] NFC 论坛:“NFC 控制器接口 (NCI) 技术规范 2.1”。
2.2 参考资料
参考文献要么是特定的(由出版日期和/或版本号或版本号标识),要么是非特定的。对于特定参考文献,仅适用引用版本。对于非特定引用,引用文件的最新版本(包括任何修订)适用。
在引用 TC SCP 文档的情况下,非特定引用隐含地引用与当前文档相同版本中的该文档的最新版本。
注意:虽然本条款中包含的任何超链接在发布时都是有效的,但 ETSI 不能保证其长期有效性。
以下参考文件对于本文件的应用不是必需的,但它们可以在特定主题领域帮助用户。
[i.1] JIS X 6319-4:2005:“集成电路卡的实施规范——第 4 部分:高速感应卡”。
3 术语、符号和缩写的定义
3.1 条款
就本文件而言,以下条款适用:
嵌入式安全元件主机 | 在不可移动的安全元件中实现的主机 |
gete | 进入在主机内部运行的服务的入口点 |
主机 | 运行一项或多项服务的逻辑实体 |
主机控制器 | 也负责管理主机网络的主机 |
主机网络 | 两台或多台主机的网络 |
管理主机(MH) | 负责解决 GlobalPlatform Card 中定义的不同主机提供的不同非接触式应用之间的冲突和互操作性问题的主机;多个非接触式安全元件 - 管理实体 [12] |
管道 | 来自不同主机的两个门之间的逻辑通信通道 |
注册表 | 与门相关的数据,存储为参数-值对的集合 |
服务 | 主机中相关原子功能的集合,用于管理目的或执行非接触式操作 |
3.2 符号
就本文件而言,以下符号适用:
GID | gate identifier |
HID | host identifier |
PID | pipe identifier |
PIPEx | PID值等于 x 的PIPE |
3.3 缩写
就本文件而言,以下缩写适用:
AFI | 应用程序族标识符(Application Family Identifier) |
AID | 应用标识符(Application IDentifier) |
APDU | 应用协议数据单元(Application Protocol Data Unit) |
ATR | 复位应答(Answer To Reset) |
BER-TLV | 基本编码规则 - 标签、长度、值(Basic Encoding Rules - Tag, Length, Value) |
C-APDU | 命令 APDU(Command APDU) |
CB | 链接位(Chaining Bit) |
CLF | 非接触前端(ContactLess Front-end) |
CLT | 非接触隧道(ContactLess Tunnelling) |
CRC | 循环冗余码(Cyclic Redundancy Code) |
HCI | 主机控制器接口(Host Controller Interface) |
HCP | 主机控制器协议(Host Controller Protocol) |
JIS | 日本工业标准(Japanese Industrial Standard) |
LEN | length |
MH | 管理主机(Managing Host) |
NCI | NFC Controller Interface |
NFC | Near Field Communication |
NFCEE | 近场通信执行环境(Near Field Communications Execution Environment) |
PA | 前言(PreAmble) |
PCD | 接近耦合装置(Proximity Coupling Device) |
PICC | 接近集成电路卡(Proximity Integrated Circuit Card) |
R-APDU | 响应 APDU(Response APDU) |
REF | 参考资料(REFerence data) |
RF | 射频(Radio Frequency) |
RFIN | 射频数据传入(RF data INcoming) |
RFU | 保留以备将来使用(Reserved for Future Use) |
RO | 只读(Read-Only) |
RST | reset |
RW | Read/Write |
SAK | 选择确认(Select AcKnowledge) |
SD | 安全数字(Secure Digital) |
SWP | 单线协议(Single Wire Protocol) |
UI | 用户界面(User Interface) |
WO | 只写(Write-Only) |
3.4 Void
本条的内容已移至第 3A 条。
3A 编码约定
就本文件而言,以下编码约定适用:
-
除非另有说明,否则所有长度均以字节表示。 每个字节由位 b8 到 b1 表示,其中 b8 是最高有效位,而 b1 是最低有效位。 在每个表示中,最左边的位是最高有效位。
-
十六进制值在单引号之间指定,例如 '1F'。 在字节序列中,字节 1 是最左边的字节。
-
指定为 RFU 的所有字节应设置为“00”,指定为 RFU 的所有位应设置为 0。
4 人机交互架构
4.1 概述
有效的主机网络具有星形拓扑结构,其中一台或多台主机物理连接到主机控制器。 HCI 定义了主机之间的接口。 更具体地说,HCI 具有三个级别:
-
交换命令、响应和事件的门的集合; 和
-
HCP 消息传递机制; 和
-
一种 HCP 路由机制,可以在需要时选择性地对消息进行分段。
图 1 说明了可能的主机网络中的 HCP 堆栈。
注意:为清楚起见,只显示了两个门。 特别是主机控制器还具有通过 HCP 连接到其他主机的门。
为了正常运行,HCP 要求底层数据链路层具有以下属性:
-
数据链路层(例如 SWP)应无差错,并应遵守接收/发送数据的顺序。
-
数据链路层提供自己的数据流控制。
-
数据链路层应将上层的数据包传送到特定于数据链路层的最大大小。
-
数据链路层应向上层报告每个接收到的数据包的大小。
-
如果数据链路层在 ETSI TS 102 613 [2] 中定义:
- 如果可用,数据链路层应报告功率模式和非接触式事务未决等附加信息。
- 数据链路层应能够交换身份参考数据。
4.2 主机
主机的身份以字节编码。 表 1 列出了主机标识符 HID 的保留值。
在本文档中,通用术语“主机”用于指除主机控制器之外的任何逻辑主机(例如终端主机、UICC 主机)。
主机控制器应使用动态分配的值范围将主机标识符分配给表 1 中未标识的任何主机。只要没有修改,主机控制器应始终在不同会话中为给定主机分配相同的 HID在设备的硬件配置中。当主机控制器为主机使用动态分配的 HID 时,主机将能够在管道创建时(ADM_CREATE_PIPE 命令的答案中的源 HID)或在主机控制器管理门注册表中检索其自己的 HID。
如果支持多个 UICC 主机,则 HID 值“02”适用于预发布 12 个 UICC。其他 UICC(如果存在)将使用动态分配的 HID 值。对于多个预发布 12 UICC,主机控制器应避免让这些 UICC 在呈现相同 HID 的同时处于活动状态。
注意:主机控制器可以通过 UICC 在主机控制器管理门中设置 HOST_TYPE 并使用主机在主机控制器管理门中设置的 HOST_VERSION 来检测支持版本 12 或更高版本的 UICC。
4.3 门(gate)
门为在主机内部运行的服务提供入口点。 HCP 使来自不同主机的门能够交换消息。有两种类型的门:
-
管理主机网络所需的管理门。
-
与主机网络管理无关的通用门。 HCI 核心中仅定义了这些门的通用方面。
门的类型由门标识符标识。门标识符列在表 2 中,并且在主机范围内是唯一的(“10”到“FF”),或者它们的值指代每个主机的相同门类型(“00”到“0F”)。
本文档中定义的主机(包括 RFU 的)的主机特定门保留用于本文档。
应用程序门的 GID 由运行应用程序门的主机动态分配。
以下规则适用于主机和门:
-
所有主机和主机控制器应有一个管理门(见第 7.1.1 条);和
-
所有主机可能有一个链路管理门(见第 7.1.2 节),主机控制器应有一个链路管理门;和
-
所有主机和主机控制器应有一个身份管理门(见第 7.1.3 条);和
-
所有主机和主机控制器应有一个回环门(见第 7.1.4 条);和
-
所有主机和主机控制器可能有一个或多个通用门(见第 7.2 节)。
4.4 管道(PIPE)
管道是两个门之间的逻辑通信通道。有两种类型的管道:
-
始终可用的静态管道,即它们不需要创建且无法删除;和
-
可以创建和删除的动态管道。
管道的状态为打开或关闭。如果主机断电再上电,该状态将保持不变。如果主机暂时从主机网络中删除并且在此期间没有被不同的设备替换,它也应保持持久性。动态管道创建后的状态和静态管道的初始状态应该是关闭的。
管道标识符 PID 有 7 位长。 PID 的值在 HCP 数据包的报头中用作路由信息(见第 5.1 节)。对于静态管道,管道标识符是用表 3 中定义的值预定义的。对于动态管道,管道标识符由主机控制器动态分配。
以下规则适用于闸门和管道:
-
静态管道总是将主机的门连接到主机控制器的门;
-
动态管道连接来自不同主机的两个门; 和
-
静态和动态管道连接到不同类型的闸门; 映射见表3; 和
-
动态管道标识符在主机网络中应该是唯一的。
图 2 说明了有效主机网络中的主机和门。
注意:为清楚起见,未显示身份管理和环回门。
4.5 注册表
每个门都可以关联一个注册模板,该模板定义与门相关的参数。参数由由一个字节组成的参数标识符标识。参数标识符在门的范围内是唯一的。
对于本文件中定义的所有门,在“00”到“EF”范围内的参数标识符被保留用于本文件中。 “F0”到“FF”范围内的参数标识符可用于专有目的。
除非另有规定,注册表参数在注册表的上下文中是强制性的。
为连接到门的每个管道创建一个新的注册表实例。在管道创建时,所有具有读写 (RW) 或只写 (WO) 访问权限的注册表参数都应初始化为其默认值。只读 (RO) 参数应由管理注册表的实体设置为适当的值,该值可能与默认值不同。除非明确指定,否则只读参数的值在相关管道的生命周期内不得更改。如果不存在可选的注册表,则管道两端的浇口应像参数设置为默认值一样工作。
主机负责管理其关联的注册表。每个注册表描述都应指明注册表的持久性和参数的默认值。
当管道被删除时,它的注册表实例也被删除。
5 HCP
5.1 HCP数据包
主机使用数据链路层与主机控制器交换数据包。数据包的格式在图 3 中定义。
包头中字段的解释如下:
CB 是链接位,其值等于 1,除非使用消息分段(见第 5.3 节); 和
PID 指定管道标识符。
主机控制器使用 PID 的值将数据包转发到目标主机。 目的主机将数据包转发到目的门。 使用这些机制,通过管道连接的任何两个门都可以交换消息。
主机控制器应验证管道标识符是否由参与管道创建的主机使用。
HCP 消息的大小是特定于应用程序的。 HCP 消息结构在第 5.2 节中描述,在 HCP 数据包中传输 HCP 消息的分段机制在第 5.3 节中描述。
5.2 HCP消息结构
一条消息携带一条指令和可选数据,如图 4 所示。
消息头中字段的含义如下:
-
TYPE 标识指令的类型;和
-
INSTRUCTION 标识指令。
定义了以下类型的指令:
-
命令(类型值 0);
-
事件(类型值 1);和
-
对命令的响应(类型值 2)。
类型值 3 是 RFU。指令值进一步限定命令、事件或响应。所有三种类型都可以携带数据。
以下规则适用于说明:
-
在接受事件的门的范围内定义事件。
-
在接受命令的门的范围内定义命令。
-
响应是在其相关命令的范围内定义的。
除非另有说明,否则当管道处于打开状态时,门只能接受管道上的命令或事件。除非另有说明,否则门在等待对管道上先前命令的响应时,不应在管道上发送命令或事件。即使在等待对先前发送的命令的响应时,门也应解释传入的事件和命令。
5.3 消息分片
当消息的大小大于底层数据链路层支持的大小时,应使用消息分段。消息应按照以下规则分片:
-
所有的消息片段都应该有一个包头。
-
包头中链接位的值等于 0,除了带有最后一个分片消息的包的值应为 1。
-
只有第一个消息片段应包含消息头。
图 5 说明了如何将一条消息拆分为两个片段。
源门负责对消息进行分片。 目标门负责从碎片消息中重建消息。
如果底层数据链路层发生复位,部分接收的消息的片段将被丢弃,部分发送的消息应从头开始重新发送。
6 说明
6.0 前言
指令的数据字段的结构在第 6 节的表格中定义为表格中字段的序列。
6.1 命令
6.1.1 概述
表 4 列出了将在 6.1.2 和 6.1.3 节中描述的所有命令。 对于第 7 节中指定的所有门,所有命令的解释应相同。 有两组命令:
-
通用命令适用于所有门; 和
-
管理主机网络所需的管理命令。
门 | 命令 | 描述 | 值 |
所有门 | RFU | ‘00’ | |
ANY_SET_PARAMETER | 在注册表中设置参数的命令 | ‘01’ | |
ANY_GET_PARAMETER | 从注册表中获取参数的命令 | ‘02’ | |
ANY_OPEN_PIPE | 打开管道的命令 | ‘03’ | |
ANY_CLOSE_PIPE | 关闭管道的命令 | ‘04’ | |
RFU | ‘05’to‘0F’ | ||
仅管理门 | ADM_CREATE_PIPE | 创建动态管道的管理命令 | ‘1’ |
ADM_DELETE_PIPE | 删除动态管道的管理命令 | ‘1’ | |
ADM_NOTIFY_PIPE_CREATED | 通知动态管道创建的管理命令 | ‘1’ | |
ADM_NOTIFY_PIPE_DELETED | 通知删除动态管道的管理命令 | ‘1’ | |
ADM_CLEAR_ALL_PIPE | 关闭/删除连接到请求主机的所有管道的命令 | ‘1’ | |
ADM_NOTIFY_ALL_PIPE_CLEARED | 通知关闭/删除连接到请求主机的所有管道的命令 | ‘1’ | |
RFU | ‘16’to‘3F’ | ||
其他非专有门 | 预订的 | ‘10’to‘3F’ |
为每个命令提供以下信息:
-
命令的描述; 和
-
命令的参数列表; 和
-
成功完成命令的响应(带有可选参数)。
可能的响应代码的映射在第 6.3 节中给出。
6.1.2 通用命令
6.1.2.1 ANY_SET_PARAMETER
命令 ANY_SET_PARAMETER 用于将参数值写入门注册表。
命令参数如下。
描述 | 长度 |
注册表中参数的索引 | 1 |
参数值; 参数的长度和内容取决于注册表 | N |
成功时,主机应以 ANY_OK 响应,不带任何参数。
6.1.2.2 ANY_GET_PARAMETER
命令 ANY_GET_PARAMETER 用于从门注册表中读取参数值。
命令参数如下。
描述 | 长度 |
注册表中参数的索引 | 1 |
成功时,主机应以 ANY_OK 与参数进行响应,如下所示。
描述 | 长度 |
参数值; 参数的长度和内容取决于注册表 | N |
6.1.2.3 ANY_OPEN_PIPE
命令 ANY_OPEN_PIPE 允许主机打开管道。
注意:此命令通过封闭管道发送。
该命令没有参数。
如果目标主机是主机控制器,并且管道成功打开,主机控制器应发送不带任何参数的 ANY_OK 响应。
对于主机控制器以外的主机,当管道成功打开时,目标主机应发送带有如下参数的 ANY_OK 响应。
描述 | 长度 |
执行命令前在此门上已打开的管道数 | 1 |
6.1.2.4 ANY_CLOSE_PIPE
命令 ANY_CLOSE_PIPE 允许主机关闭管道。
该命令没有参数。
当管道成功关闭时,目标主机将发送一个不带参数的 ANY_OK 响应。
6.1.3 管理命令
6.1.3.1 ADM_CREATE_PIPE
使用 ADM_CREATE_PIPE 命令,主机可以请求主机控制器在两个门之间创建一个新的动态管道。请求管道的主机应为源主机。成功后,将在源主机和目标主机之间创建管道。主机控制器应使用目标主机定义的 WHITELIST 来验证源主机是否有权创建管道。
可以在此管道上使用的服务仅由目标门决定。任何门标识符都可以用作源门;然而,对于源主机/源门和目的主机/目的门的每种组合,只允许创建一个管道。
命令参数如下。
当管道成功创建时,主机控制器应发送响应 ANY_OK 和参数如下。
6.1.3.2 ADM_NOTIFY_PIPE_CREATED
命令 ADM_NOTIFY_PIPE_CREATED 由主机控制器发送到目标主机以通知动态管道的创建。 源主机是从主机控制器请求创建管道的主机。
主机控制器可以使用该命令来启动到主机的管道的创建以用于其自身目的。 在这种情况下,源主机 ID 和门 ID 应为主机控制器的 ID。
命令参数如下。
如果主机接受管道,它将发送不带参数的响应 ANY_OK。
6.1.3.3 ADM_DELETE_PIPE
使用 ADM_DELETE_PIPE 命令,主机可以请求主机控制器删除动态管道。 请求删除管道的主机只能是源主机或目的主机。
命令参数如下。
当管道成功删除时,主控制器应发送不带参数的响应 ANY_OK。
6.1.3.4 ADM_NOTIFY_PIPE_DELETED
命令 ADM_NOTIFY_PIPE_DELETED 由主机控制器发送给主机以通知动态管道的删除。
命令参数如下。
当管道成功删除时,主机应发送不带参数的响应 ANY_OK。
6.1.3.5 ADM_CLEAR_ALL_PIPE
使用命令 ADM_CLEAR_ALL_PIPE 主机请求主机控制器:
-
删除所有连接到请求主机的动态管道; 和
-
关闭所有连接到请求主机的静态管道; 和
-
将与静态管道相关的所有注册表值设置为其默认值。
对于ETSI TS 102 613 [2]中规定的数据链路层,命令参数如下。
身份参考数据应用于初始化主机控制器用于检查 UICC 主机身份的参考数据。 身份参考数据应包含随机元素。
当成功时,主机控制器应以不带参数的 ANY_OK 响应。
6.1.3.6 ADM_NOTIFY_ALL_PIPE_CLEARED
如果请求主机不是主机控制器,则主机控制器将命令 ADM_NOTIFY_ALL_PIPE_CLEARED 在来自请求主机的 ADM_CLEAR_ALL_PIPE 命令之后发送到每个主机,该主机至少有一个管道到请求主机以通知:
- 它删除了主机和请求主机之间的所有动态管道。
如果请求主机是主机控制器,则主机控制器向主机发送命令 ADM_NOTIFY_ALL_PIPE_CLEARED 以通知:
-
它删除了主机控制器和主机之间的所有动态管道; 和
-
它关闭了主机和主机控制器之间的所有静态管道。
命令参数如下。
主机应以不带参数的 ANY_OK 响应。
6.2 响应
对于第 6.1 节中指定的命令,表 15 列出了可能的响应代码,表 16 列出了它们与每个命令的映射。 除非另有说明,否则这些响应不携带附加参数。 响应应发送到所有接收到的命令,即使是接收门未知的命令。 无序接收的响应(即,如果之前没有发送命令)应被丢弃。
值 | 响应 | 描述 |
'00' | ANY_OK | 命令成功完成(带有可选参数) |
'01' | ANY_E_NOT_CONNECTED | 目标主机未连接 |
'02' | ANY_E_CMD_PAR_UNKNOWN | 命令参数格式错误 |
'03' | ANY_E_NOK | 命令被拒绝 和/或 未完成 |
'04' | ADM_E_NO_PIPES_AVAILABLE | 无法创建更多动态管道 |
'05' | ANY_E_REG_PAR_UNKNOWN | 注册表参数标识符要么是注册表未知的,要么是可选的注册表参数未实现 |
'06' | ANY_E_PIPE_NOT_OPENED | 管道没有打开 |
'07' | ANY_E_CMD_NOT_SUPPORTED | 门不支持该命令 |
'08' | ANY_E_INHIBITED | 由于下层标识检查失败,命令被禁止 |
'09' | ANY_E_TIMEOUT | 发生应用程序级超时 |
'0A' | ANY_E_REG_ACCESS_DENIED | 向/从注册表写入/读取值的权限被拒绝 |
'0B' | ANY_E_PIPE_ACCESS_DENIED | 由于 WHITELIST 违规,创建管道的权限被拒绝 |
'0C'to'3F' | RFU |
6.3 事件
6.3.1 通用事件
表 17 中所列事件的解释对于第 7 节中规定的所有门应相同。接收到的未知事件应被丢弃。
值 | 事件 | 描述 |
‘01’ | EVT_HCI_END_OF_OPERATION | 当主机在发送事件时不需要 HCI 接口及其底层上的更多活动时,该事件应由主机发送到主机控制器。 此事件没有参数。 |
‘02’ | EVT_POST_DATA | 此事件应用于发送和接收带有包含可变大小数据块的参数的数据。 |
‘03’ | EVT_HOT_PLUG | 此事件应由主机控制器发送到任何其他连接的主机,以通知主机与主机控制器的连接或断开连接。 此事件的参数取决于目标主机的版本。 包含参数的条件和该事件的参数在第 6.3.2 节中描述。 |
‘04’ | EVT_TERMINAL_HOST_REQUEST | 该事件应由主机发送以请求主机控制器向终端主机发送请求。 该事件有一个参数,如第 6.3.3 节所述。 |
‘05’ | EVT_TERMINAL_HOST_INFORMATION | 该事件应由主机控制器发送到主机,以提供与该主机先前请求的交互相关的信息。 该事件有两个参数,在 6.3.3 节中描述。 |
本文档中未分配的所有其他非专有门的事件值都是 RFU。
6.3.2 EVT_HOT_PLUG 参数
主机控制器发送的 EVT_HOT_PLUG 发送到带有 HCI_VERSION '01' 的主机时不应有参数。
如果将 EVT_HOT_PLUG 发送到带有 HCI_VERSION '02' 的主机,则包含的参数是可选的。
主机控制器发送的 EVT_HOT_PLUG 在发送到 HCI_VERSION '03' 或更高版本的主机时应具有参数。
EVT_HOT_PLUG 参数(如果存在):
HID 标识生成事件的主机。
STATUS 字段的编码:
-
'00' = 主机已从 HCI 网络中删除; 和
-
'01' = 主机已插入 HCI 网络且下层身份检查已成功; 和
-
'02' = 主机已插入 HCI 网络且低层身份检查失败;
-
所有其他值都是 RFU。
6.3.3 EVT_TERMINAL_HOST_REQUEST 参数
EVT_TERMINAL_HOST_REQUEST 具有以下参数:
REQUEST_ID 字段的编码:
-
'00' = 请求唤醒终端主机;
-
其他值为 RFU。
6.3.4 EVT_TERMINAL_HOST_INFORMATION 参数
EVT_TERMINAL_HOST_INFORMATION 具有以下参数:
REQUEST_ID 字段是根据表 17b 定义的。
信息字段的编码:
-
对于 REQUEST_ID '00':
-
'00' = 终端主机已被唤醒并处于 'ACTIVE' 状态;
-
'01' = 终端暂时不能被唤醒并保持在'SLEEP'状态;
-
'02' = 终端无法唤醒,因为它处于 'DISCONNECTED' 状态;
-
其他值为 RFU。
-
-
对于 REQUEST_ID 的所有其他值,INFORMATION 字段的值为 RFU。
7 门
7.0 通用门事件和命令支持
接下来的条款定义了所有的门。 为每个门提供以下信息:
-
门的责任的简要说明; 和
-
门注册表的参数-值对列表。
门到支持的事件和命令的映射分别在表 18 和 19 中给出。
7.1 管理门
7.1.1 管理门
7.1.1.1 主机控制器管理门
主机控制器中的管理门提供对管理 HCI 网络中管道网络的服务的访问。 此外,该门提供对允许在首次启动时和主机网络配置发生变化时发现主机的服务的访问(见第 8 节)。 注册表应是持久的。
表 20 列出了登机口注册表中的条目。 如果主机连接到主机控制器或从主机控制器断开连接,则 HOST_LIST 和 HOST_TYPE_LIST 的值应更新。 MH_AVAILABILITY_STATE 的值应更新以反映当前的 MH 可用性。
类型 | 标识 | 参数 | 访问权限 | 描述 | 长度 | 默认值 |
强制的 | ‘01’ | SESSION_IDENTITY | RW | 用于检测连接的主机配置是否更改的会话标识符。 | 8 | 'FFFFFFFFFFFFFFFF' |
‘02’ | MAX_PIPE | RO | 每个主机的主机控制器支持的最大创建动态管道数。 最小值为“10”,最大值为“7D”。 | 1 | '10' | |
‘03’ | WHITELIST | RW | 可以与连接到此管理门的主机通信的主机列表。 | N0 | empty | |
‘04’ | HOST_LIST | RO | 可从此主机控制器访问的主机列表,包括主机控制器本身。 该数组包含主机标识符列表。 | N1 | '00' | |
强制性,在 Rel-11 及更早版本中不存在 | ‘05’ | HOST_ID | RO | 静态或动态分配在此管道上连接的主机的 HID。 | 1 | 无默认值 |
‘06’ | HOST_TYPE | RW | 此管道上连接的主机类型。 第一个字节定义主机类型系列,第二个字节定义该类型的变体,由各自的组织定义。 | 2 | 'FFFF' | |
‘07’ | HOST_TYPE_LIST | RO | 可从此主机控制器访问的主机类型列表,包括主机控制器本身。 该数组包含主机类型列表,并遵循与 HOST_LIST 相同的顺序。 | 2 × N1 | '0000' | |
强制性,在 Rel-12 及更早版本中不存在 | ‘08’ | MANAGING_HOST_ID | RO | 作为管理主机的主机的 HID。 | 0 or 1 | empty |
‘09’ | MH_CAPABILITY | WO | 指示写入此注册表项的主机是否具有管理主机功能。 | 1 | ‘00’ | |
‘0A’ | MH_AVAILABILITY_STATE | RO | 指示管理主机的当前可用性状态。 | 1 | 'FF' | |
强制性,在 Rel-14 及更早版本中不存在 | ‘0B’ | HOST_VERSION | RW | 在此管道上连接的主机的 HCI_VERSION,如表 23 中所定义。 | 1 | ‘FF’ |
每当主机执行配置的修改时,会话标识应由主机修改。会话标识的默认值不得由主机写入。会话标识应使用随机值。
每个主机将其 WHITELIST 写入主机控制器管理门,以通知主机控制器哪些主机可以与其通信。如果源主机未在目标主机的 WHITELIST 中列出,主机控制器应拒绝创建管道请求,除非另有规定(例如,对于管理主机)。
WHITELIST 不应包含访问 WHITELIST 的主机控制器标识符和主机标识符。
WHITELIST 是一个包含表 1 中定义的主机标识符列表的数组。
HOST_TYPE 的编码定义如下:
-
'0000' = 主机控制器;
-
'0100' = 终端主机;
-
'0200' = UICC;
-
'0300' = 嵌入式安全元件;
-
'04XX' = SD 协会定义的 SD 卡;
-
'FFFF' = 未知主机类型;
-
所有其他值都是 RFU。
SD 卡的 HOST_TYPE 的第二个字节由 SD Association 定义。
HOST_TYPE 和 HOST_VERSION 应由主机在会话初始化期间写入主机控制器管理门注册表,如第 8.4 节所述,在任何管道创建之前,不应进一步修改。
主机控制器应向每个主机管理门发送通知,可能包括触发连接通知的主机,在以下情况下使用 EVT_HOT_PLUG:
-
当主机连接到 HCI 网络并已完成第 8.4 节所述的会话初始化时。
-
当主机与 HCI 网络断开连接时。
如果已选择主机作为系统的管理主机,则 MANAGING_HOST_ID 注册表项指示 MH 的主机标识符,否则 MANAGING_HOST_ID 注册表项为空。
如果主机能够成为 MH,则它应在设置其 HOST_TYPE 之前在 MH_CAPABILITY 注册表项中写入一个非空值。否则,不应写入任何值。
注 1:主机控制器使用与系统中每个主机相关联的 MH_CAPABILITY 注册表项中写入的值来构建可以分配 MH 角色的主机列表。系统中 MH 的选择超出了本文件的范围。
注 2:当主机控制器创建并打开通向其平台管理门的管道时,所选的 MH 会被通知该选择。
注 3:如果主机控制器更改了 MH,它负责重新初始化 HCI 网络和所有连接的主机,例如通过停用所有主机的接口并清除它们的 SESSION_IDENTITY。
MH_AVAILABILITY_STATE 注册表指示 MH 的当前状态(如果有)。 MH_AVAILABILITY_STATE 的编码定义如下:
-
'00' = MH 处于 'ACTIVE' 状态,即能够执行处理;
-
'01' = MH 处于 'SLEEP' 状态,即无法执行处理(例如 MH 不可达)但可以使用唤醒
-
如果 MH 是终端主机,则 EVT_TERMINAL_HOST_REQUEST 的 REQUEST_ID 值为“00”,或者,
-
PRO_HOST_REQUEST 命令用于主机,不包括主机控制器和终端主机;
-
-
'02' = MH处于'DISCONNECTED'状态,即不能进行处理,不能被唤醒(例如MH在终端主机中,终端关机);
-
'FF' = MH 当前可用性状态未知;
-
所有其他值都是 RFU。
7.1.1.2 主机管理门
主机上的管理门提供对涉及到该主机的管道管理的服务的访问。
主机上的管理门没有定义注册表项。
7.1.2 链路管理门
7.1.2.1 主控链路管理门
主机控制器链路管理门提供有关底层的信息。注册表可能不是持久的。
表 21 列出了注册表中的条目。
标识 | 参数 | 访问权限 | 描述 | 长度 | 默认值 |
‘01’ | REC_ERROR | RW | 由于数据链路层的通信错误,主机先前发送的无效或丢失的帧数。 此参数只能设置为 0 以重新启动错误率测量。 当达到'FFFF'时,计数器停止。 | 2 | ‘0000’ |
7.1.2.2 主机链路管理门
主机链路管理门提供对与链路层相关的信息的访问。 注册表可能不是持久的。
表 22 列出了注册表中的条目。
标识 | 参数 | 访问权限 | 描述 | 长度 | 默认值 |
‘01’ | REC_ERROR | RW | 由于数据链路层的通信错误,主机控制器先前发送的无效或丢失帧的数量。 此参数只能设置为 0 以重新启动错误率测量。 当达到'FFFF'时,计数器停止。 | 2 | ‘0000’ |
7.1.3 身份管理门
身份管理门提供有关主机的软件和硬件信息。 注册表应是持久的。
该门应由所有主机和主机控制器提供。 作为目的地门,身份管理门应至少接受来自其白名单中每个主机的一个管道。
表 23 列出了注册表中的条目。 如果身份管理门主机或主机控制器更新,VERSION_SW 和 MODEL_ID 的值可能会更改。
根据本文档的主机应将 HCI_VERSION 参数设置为“03”。 HCI_VERSION 参数将针对此 HCI 规范的每个版本增加,该版本与先前版本不完全向后兼容。每个主机都应管理与先前 HCI 版本的向后兼容性,并且仅使用本文档中定义的命令和参数 n 具有由事务中涉及的 2 个主机公开的较低 HCI 版本号。连接到HCI 版本号更高的主机的主机将按照自己的版本运行。
主机控制器的 MAX_CURRENT 参数表示在为不同的非接触式操作模式定义的操作期间它能够提供给主机的最大电流。主机的 MAX_CURRENT 参数表示该主机在非接触模式操作期间允许最佳性能所需的电流。主机只能在本文件定义的时间段内使用此最大电流。
7.1.4 环回门
环回门提供对用于测试 HCI 网络的服务的访问。作为目标门,回送门应至少接受来自其白名单中每个主机的一个管道。
环回门没有定义注册表项。
7.2 通用门
通用门与主机网络的管理无关,但在其主机的上下文中提供功能。对于非接触式平台,功能和注册表在第 9、10 和 11 条中定义。
8 HCI 程序
8.1 管道管理
8.1.1 管道创建
图 6 说明了主机 A 如何请求在其一个门和主机 B 中的门之间创建动态管道。所有通信都使用 PIPE1。
序列流程如下:
-
主机 A 请求主机控制器创建管道 PIPEx。 主机控制器应验证主机 B 管理门 WHITELIST 包含主机 A 标识符。 如果主机 A 不是主机 B 的 WHITELIST 的一部分,则主机控制器应向主机 A 发送 ANY_E_PIPE_ACCESS_DENIED 响应并停止对该命令的任何进一步处理。
-
主机控制器分配一个未使用的管道标识符。
-
主机控制器通知主机 B 主机 A 请求创建 PIPEx
-
主机 B 响应以确认它接受 PIPEx。
-
主机控制器响应 PIPEx 已创建。
-
如果主机 B 不接受管道的创建,它将以适当的响应代码响应。
图 6a 说明了主机如何请求在其门之一和主机控制器的门之间创建动态管道。 通讯使用PIPE1
- 主机 A 请求主机控制器创建管道。
- 如果主机控制器接受请求,它会分配一个未使用的管道标识符并确认管道的创建。 否则,它会以适当的错误代码进行响应。
图 6b 说明了主机控制器如何请求在其门之一和主机 A 的门之间创建动态管道。通信使用 PIPE1。
-
主机控制器分配一个未使用的管道标识符,并将其创建 PIPEx 的请求通知主机 A。
-
主机 A 响应以确认它接受 PIPEx,或者如果管道的创建被拒绝,则使用适当的响应代码。
图 7 说明了 WHITELIST 如何影响来自主机的创建管道的请求。 在下文中,与主机 B 关联的 WHITELIST 最初不包含主机 A 的 HID,因此请求被拒绝。 在主机 B 更新白名单之后,进一步的请求被接受。
序列流程如下:
-
主机 A 请求主机控制器创建管道 PIPEx。 Host B 管理门所连接的主机控制器管理门中的 WHITELIST 中不包含主机 A 的主机标识符。 Host A 未经 Host B 授权。
-
主机控制器应向主机 A 发送 ANY_E_PIPE_ACCESS_DENIED 响应并停止对该命令的任何进一步处理。
-
主机 B 通过添加主机 A 标识符更新其在主机控制器管理门中的 WHITELIST 寄存器。
-
主机控制器返回 ANY_OK。
-
主机 A 请求主机控制器创建管道。主机控制器分配一个可用的管道标识符。
-
主机控制器通知主机 B 主机 A 请求创建 PIPEx。
-
主机 B 响应以确认它接受 PIPEx。
-
主机控制器响应 PIPEx 已创建。
如果主机 B 不接受管道的创建,它将以适当的响应代码响应。
8.1.2 管道删除
图 8 说明了主机 A 如何请求删除它的一个门和主机 B 中的门之间的动态管道 PIPEx。所有通信都使用 PIPE1。
序列流程如下:
-
主机 A 请求主机控制器删除 PIPEx。
-
主机控制器通知主机 B。
-
主机 B 确认它删除了 PIPEx。
-
主机控制器向主机 A 确认 PIPEx 已删除。
主机 B 不能拒绝管道删除。
主机 A 创建的管道也可以被主机 B 删除。
当 PIPEx 连接到主机控制器的门时:
-
连接主机可以请求删除,只需要步骤1和4; 或者
-
主机控制器可以请求删除,只需要步骤 2 和 3。
8.1.3 清除所有管道
图 9 说明了主机 A 如何请求主机控制器删除其所有动态管道并关闭其所有静态管道。 所有通信都使用 PIPE1。
序列流程如下:
-
主机 A 请求主机控制器清除连接到主机 A 的所有管道。
-
主机控制器向主机 B 发出信号,表示所有通往主机 A 的管道都已清除。
-
主机 B 确认。
-
主机控制器向主机 C 发出信号,所有管道都已清除到主机 A。
-
主持人 C 确认。
-
主机控制器向主机 A 确认管道已清除并且主机 A 关闭其静态管道。
8.2 注册表访问
图 10 显示了主机 A 如何读取/写入主机 B 注册表中的参数。
序列流程如下:
-
主机 A 向主机 B 的门请求注册参数。
-
主机 B 回复 ANY_OK,在其数据中包含参数值。
-
主机 A 更新主机 B 的门中的注册表参数。
-
主机 B 确认参数已更新。
8.3 主机和门发现
图 11 说明了主机如何发现主机网络中的主机以及主机支持的门。
序列流程如下:
-
主机 A 使用管理门,通过 PIPE1,请求连接的主机列表。
-
主机控制器返回列表。
-
主机 A 从列表中选择一个主机,即主机 B,并通过 PIPE1 请求主机控制器创建通向主机 B 身份门的管道。
-
主机控制器确认管道 PIPEx 的创建。 管道创建的详细信息在第 8.1.1 节中显示。
-
主机 A 打开 PIPEx。
-
主机 B 确认 PIPEx 已打开。
-
主机 A 请求主机 B 的门列表。
-
返回门列表。
-
主机 A 可以从注册表请求 VENDOR_NAME 参数。
-
返回 VENDOR_NAME 参数。
步骤 9 和 10 是可选的。
主机 A 可以选择关闭并删除 PIPEx。
8.4 会话初始化
由于管道状态是持久的,将主机(例如 UICC 主机)移动到不同的终端可能会导致配置不一致。 使用会话初始化过程允许主机检测到主机网络已更改,因为主机控制器本身已更改或因为配置已更改。 主机应仅在启动时且仅在没有非接触式事务未决时才执行此过程。
注 1:预期底层数据链路层规范描述了提供有关未决非接触式事务的信息的机制。
在根据 ETSI TS 102 613 [2] 的底层数据链路层的情况下,该程序仅应在全功率模式下的初始接口激活之后执行,并且仅当没有非接触式事务未决时才执行。
图12说明了主机A如何检测到主机控制器发生变化以及后续的恢复机制。
流程如下:
-
主机 A 通过 PIPE1 查询主机控制器管理门中的 SESSION_IDENTITY 参数(ANY_OPEN_PIPE 命令可以在此命令之前)。
-
如果返回值等于存储在主机中的先前值,则程序停止。
-
否则主机 A 需要重新初始化并请求主机控制器清除所有管道(见第 8.1.3 节)。
-
主机控制器确认,主机 A 应设置其 HOST_TYPE(如果其 HCI_VERSION 为“02”或更高)和 HOST_VERSION(如果其 HCI_VERSION 为“03”或更高)并且可以执行任何进一步的初始化。
-
主机 A 生成新的会话标识并存储其值并将其存储在主机控制器注册表中。
-
主机控制器确认。
如果主机控制器存储了主机 A 在 HCI 初始化之前使用的需要保护的配置(注册表值和管道状态),则下层应实施适当的身份检查机制。 这种身份检查机制超出了本文档的范围。 如果下层身份检查失败,主控制器应:
仅执行以下命令:ANY_OPEN_PIPE、ADM_CLEAR_ALL_PIPE、ANY_GET_PARAMETER,并且仅当这些命令在 PIPE1 上发送时。 所有其他命令应返回 ANY_E_INHIBITED 并且所有发送到主机控制器的事件应被忽略; 和
返回 SESSION_IDENTITY 的默认值(见表 20)。 但是,注册表中 SESSION_IDENTITY 的值保持不变。
在处理一个有效的 ADM_CLEAR_ALL_PIPE 命令后,这个禁止状态将被终止。
在卡模拟情况下主机控制器的附加行为在第 9.4.6 节中定义。
注 2:在下层进行后续成功的身份检查后是否保持禁止状态取决于主机控制器的实现。
8.5 环回测试
图 13 显示了主机 A 如何验证到主机 B 的管道连接。
序列流程如下:
-
主机 A 通过 PIPE1 请求在主机 B 中的任何门和回送门之间创建管道。
-
主机控制器确认管道 PIPEx 的创建。 管道创建的详细信息在第 8.1.1 节中显示。
-
主机 A 打开 PIPEx。
-
主机 B 接受开场。
-
主机 A 发送事件 EVT_POST_DATA 并带有一些数据作为参数。 环回门应支持最大为 250 字节的消息,也可能支持更长的消息。
-
主机 B 发回事件 EVT_POST_DATA,其数据与上一步中收到的数据相同。 接收到主机 A 后,可以将接收到的数据与原始数据进行比较。
主机 A 可以选择关闭并删除 PIPEx。
9 非接触式卡模拟
9.1 概述
本条款规定了如何在前面条款中描述的 HCI 核心之上仿真支持多种 RF 技术的非接触式卡。
支持的射频技术有:
-
ISO/IEC 14443 第 2 [5]、3 [6] 和 4 [7] 部分中定义的 Type A;或者
-
ISO/IEC 14443 第 2 [5]、3 [6] 和 4 [7] 部分中定义的 Type B;或者
-
Type B' 符合 ISO/IEC 14443-2 [5] 和 ISO/IEC 14443-3 [6] 中定义的标准框架;
-
在 ISO/IEC 18092 [4] 中定义的 Type F 为 212 kbps 和 424 kbps 被动模式。
注 1:日本工业标准 JIS X 6319-4 [i.1] 中也描述了 Type F 技术、帧和协议。 JIS 术语与 ISO/IEC 18092 [4] 不同,但技术相同。
卡仿真模式的非接触式平台实现为具有两个主机的主机网络;主机控制器和主机(例如 UICC 主机)。 CLF 应运行主机网络的主机控制器。使用 CLF 服务的其他主机超出了本文档的范围。
主机操作非接触式卡应用程序,CLF 处理与外部非接触式读卡器的 RF 通信层。
主机控制器为它支持的每一种射频技术都有一个卡射频门。对于每个要使用的卡射频门,主机都有一个卡应用门。
对于卡模拟模式的非接触式平台,主机应创建、打开、关闭和删除卡射频门的管道。当有一个开放的管道连接到它时,卡片射频门的射频技术就会被激活。主机不应为每个 RF 门创建一个以上的管道。
对于符合 ISO/IEC 14443-4 [7] 的非接触式卡应用,传输协议的处理(即直到 ISO/IEC 14443-4 [7] 中指定的层)在 CLF 中完成。卡应用门和卡 RF 门通过它们的管道交换 APDU。
对于 B' 类非接触式卡应用,主机控制器和主机交换原始帧。原始帧结构如 ISO/IEC 14443-3 [6] 中所定义;但数据在没有 CRC_B 的情况下传输。
如果根据 ETSI TS 102 613 [2] 的底层数据链路层用于 A 类非接触式卡应用: 如果外部读卡器不使用 ISO/IEC 14443-4 [7] 中定义的传输协议,则 CLF 和 UICC使用 ETSI TS 102 613 [2] 中定义的 CLT 交换数据。
对于 F 型非接触式卡应用,主机控制器和主机交换 ISO/IEC 18092 [4] 212 kbps/424 kbps 帧。帧结构如 ISO/IEC 18092 [4] 中所定义,但数据传输时没有 PA 和 SYNC 字段以及 E2。
除非受到底层的限制,否则主机可以在 RF 出现和消失之间消耗高达主机控制器在其身份管理门注册表中定义的最大值的电流。 ETSI TS 102 613 [2] 对低功耗模式和省电模式的限制仍然适用。
主机控制器根据主机对外部阅读器的请求激活一种或多种射频技术。此激活过程的更多详细信息超出了本文档的范围。
注 2:非接触式卡应用程序的应用程序选择(使用例如 AID)超出了本文档的范围。
图 14 说明了一个有效的非接触式平台。
注意:非标准应用是指不使用 ISO/IEC 14443-4 [7] 中定义的传输协议的 A 类非接触式卡应用。
9.2 Void
9.3 Gates
9.3.1 Void
表 24: Void
9.3.2 标识管理门
应将以下参数添加到第 7.1.3 节中定义的主机控制器的标识管理门中。
标识 | 参数 | 访问权限 | 描述 | 长度 | 默认值 |
'07' | LOW_POWER_SUPPORT | RO | 表示支持的电源模式; 其中“01”表示支持低功耗模式,“00”表示不支持。 | 1 | N/A |
9.3.3 卡射频门
9.3.3.1 概述
卡射频门位于主机控制器中。 卡射频门控制射频技术的行为。 射频门的注册表中提供了与射频技术相关的协议和参数设置。
除了第 7.2 节中定义的通用门的命令和事件之外,以下条款定义了卡射频门支持的命令和事件。
表 26 列出了已定义卡射频门的 GID。
9.3.3.2 命令
没有定义额外的命令。
9.3.3.3 事件
9.3.3.3.0 支持的事件
卡射频门支持表 27 中列出的事件。这些事件在以下条款中进行了描述。
9.3.3.3.1 EVT_SEND_DATA
此事件允许向 CLF 发送数据。
该事件具有如下参数。
9.3.3.4 注册表
9.3.3.4.0 注册表持久化
所有注册表都应该是持久的。
9.3.3.4.1 射频技术 Type A
表 29 定义了射频技术 Type A 的卡射频门的注册表项。
标识 | 参数 | 访问权限 | 描述 | 长度 | 默认值 |
"01" | MODE | RW | Type A 卡模拟启用指示器 | 1 | 'FF' |
"02" | UID_REG | WO | 在 ISO/IEC14443-3 [6] 中为 Type A 定义的 UID | N0=0, 4, 7, 10 | N0=0 |
"03" | SAK | RW | ISO/IEC 14443-3 [6] 中为 Type A 定义的预格式化 SAK | 1 | '00' |
"04" | ATQA | RW | 预先格式化的 ATQA; 字节 1 应包含在 ISO/IEC 14443-3 [6] 中为 Type A 定义的 ATQA 编码的 b8..1、字节 2 b16..9 | 2 | '0000' |
"05" | APPLICATION_DATA | RW | ISO/IEC 14443-4 [7] 中为 Type A 定义的历史字节 | N1 | N1=0 |
"06" | FWI, SFGI | RW | ISO/IEC 14443-4 [7] 中定义的 Type A 帧等待时间和启动帧保护时间 | 1 | 'EE' |
"07" | CID_SUPPORT | RW | 支持 ISO/IEC 14443-4 [7] 定义的 CID | 1 | '00' |
"08" | CLT_SUPPORT | RO | 支持 ISO/IEC 14443-4 [7] 非兼容协议的隧道模式 | 1 | '00' |
"09" | DATARATE_MAX | RW | 支持的最大数据速率 | 3 | '030300' |
MODE 的编码如下:
- 'FF' = 未启用 Type A 卡模拟; 和
- '02' = 启用 Type A 卡模拟; 和
- 所有其他值均为 RFU。
UID_REG 的编码如下:
- 如果长度等于 0,则 CLF 将生成一个单一大小的 UID,其中 uid0 = '08' 和 uid1 到 uid3 作为随机数。 随机数应仅在从 POWER-OFF 到 IDLE 状态(根据 ISO/IEC 14443-3 [6] 的状态定义)的状态转换时生成。 CLF 应将 RF 场的缺失解释为 POWER-OFF 状态。
- 如果长度等于 4、7 或 10,则 CLF 应使用 UID_REG 作为 UID。
CID_SUPPORT 参数的编码:
- '01' = 需要 CID 的支持; CLF 应在 ATS 中设置 CID 支持; 和
- '00' = 不需要 CID 的支持; CLF 可能会或可能不会在 ATS 中设置 CID 支持。
- 所有其他值均为 RFU。
CLT_SUPPORT 参数的编码:
- '01' = CLF 包含用于 Type A ISO/IEC 14443-4 [7] 非兼容协议支持的隧道模式功能; 和
- '00' = CLF 不包含用于 Type A ISO/IEC 14443-4 [7] 非兼容协议支持的任何隧道模式功能。
DATARATE_MAX 编码支持的最大除数,编码如下:
-
字节 1 定义了 PCD 到 PICC 方向支持的最大除数:
- '00' = 支持的最大除数为 1 (~106 kbit/s);
- '01' = 支持的最大除数为 2 (~212 kbit/s);
- '02' = 支持的最大除数为 4 (~424 kbit/s);
- '03' = 支持的最大除数为 8 (~848 kbit/s);
- 所有其他值都是 RFU。
-
字节 2 定义了 PICC 到 PCD 方向支持的最大除数:
- '00' = 支持的最大除数为 1 (~106 kbit/s);
- '01' = 支持的最大除数为 2 (~212 kbit/s);
- '02' = 支持的最大除数为 4 (~424 kbit/s);
- '03' = 支持的最大除数为 8 (~848 kbit/s);
- 所有其他值都是 RFU。
-
字节 3 定义了支持每个方向不同除数的限制:
-
'00' = 支持每个方向的不同除数(PICC 到 PCD 和 PCD 到 PICC);
-
'01' = 仅支持两个方向(PICC 到 PCD 和 PCD 到 PICC)的相同除数;
-
所有其他值都是 RFU。
注:由 ISO/IEC 14443-4 [7] 中定义的接口字节 TA(1) 指示的实际最大支持除数由以下最小值给出:
- 本注册表中指明的数值范围; 和
- CLF 中实现的最大除数。
-
9.3.3.4.2 Type B 射频技术
表 30 定义了射频技术 Type B 的 射频门的注册表项。
标识 | 参数 | 访问权限 | 描述 | 长度 | 默认值 |
"01" | MODE | RW | Type B 卡模拟启用指示器 | 1 | 'FF' |
"02" | PUPI_REG | WO | 在 ISO/IEC14443-3 [6] 中为 Type B 定义的 PUPI_REG | N0 | N0=0 |
"03" | AFI | RW | ISO/IEC 14443-3 [6] 中为 Type B 定义的应用程序族标识符 | 1 | '00' |
"04" | ATQB | RW | ATQB 的附加数据 | 4 | 详见表 31 |
"05" | HIGHER_LAYER_RESPONSE | RW | 响应 ATTRIB 命令的高层响应,如 ISO/IEC 14443-3 [6] 中定义的 Type B | N2 | N2=0 |
"06" | DATARATE_MAX | RW | 支持的最大数据速率 | 3 | '030300' |
MODE 参数的编码:
- 'FF' = 未启用 Type B 卡模拟; 和
- '02' = 启用 Type B 卡模拟; 和
- 所有其他值均为 RFU。
PUPI_REG 的编码如下:
- 如果 N=0,则 CLF 将生成 PUPI 作为动态生成的数字。 PUPI 应仅由从 POWER-OFF 到 IDLE 状态(根据 ISO/IEC 14443-3 [6] 的状态定义)的状态转换生成。 CLF 应将离开射频场解释为 POWER-OFF 状态。
- 在所有其他情况下,CLF 应使用 PUPI _REG 作为 PUPI。
ATQB 参数的结构。
参数 | 描述 | 长度 | 默认值 |
CRC_AID | ISO/IEC 14443-3 [6] 中描述的压缩的 CRC AID | 2 | '0000' |
NUMBER_APLI | ISO/IEC 14443-3 [6] 中描述的应用数量 | 1 | '00' |
PROTO_INFO | ISO/IEC 14443-3 [6] 中描述的协议信息的第三个字节 | 1 | 'E4' |
注意:PROTO_INFO 还编码 FWI 和对 CID 的支持,在 Type A 的情况下,它们是单独的注册表参数。 |
DATARATE_MAX 编码支持的最大比特率,编码如下:
-
字节 1 定义了 PCD 到 PICC 方向支持的最大比特率:
- '00' = 支持的最大比特率为 fc/128 (~106 kbps);
- '01' = 支持的最大比特率为 fc/64 (~212 kbps);
- '02' = 支持的最大比特率为 fc/32 (~424 kbps);
- '03' = 支持的最大比特率为 fc/16 (~848 kbps);
- 所有其他值均为 RFU。
-
字节 2 定义了 PICC 到 PCD 方向支持的最大比特率:
-
'00' = 支持的最大比特率为 fc/128 (~106 kbps);
-
'01' = 支持的最大比特率为 fc/64 (~212 kbps);
-
'02' = 支持的最大比特率为 fc/32 (~424 kbps);
-
'03' = 支持的最大比特率为 fc/16 (~848 kbps);
-
所有其他值均为 RFU。
-
-
字节 3 表示强制双向比特率的限制:
-
'00' = 支持两个方向(PICC 到 PCD 和 PCD 到 PICC)的不同比特率;
-
'01' = 仅支持两个方向(PICC 到 PCD 和 PCD 到 PICC)的相同比特率;
-
所有其他值均为 RFU。
注意:最终支持的实际最大比特率在 ISO/IEC 14443-3 [6] 中定义的协议信息的第一个字节中指示,由以下最小值给出:
- 本注册表中指明的价值和限制; 和
- CLF 中实现的最大除数。
-
9.3.3.4.3 射频技术 Type B'
表 32 定义了射频技术 Type “B” 的射频门的注册表项。
标识 | 参数 | 访问权限 | 描述 | 长度 | 默认值 |
"01" | MODE | RW | Type B’ 卡模拟启用指示器 | 1 | 'FF' |
"02" | PAT_IN | RW | 与传入数据匹配的模式 | N0 | N0=0 |
"03" | DAT_OUT | RW | 如果传入数据与 PAT_IN 模式匹配,则要回复的数据 | N1 | N1=0 |
MODE 参数的编码:
- 'FF' = 未启用 Type B 卡模拟; 和
- '02' = 启用 Type B 卡模拟; 和
- 所有其他值均为 RFU。
9.3.3.4.4 射频技术 Type F(仅限 ISO/IEC 18092 212 kbps/424 kbps 卡模拟)
表 33 定义了射频技术 Type F 的射频门的注册表项。
标识 | 参数 | 访问权限 | 描述 | 长度 | 默认值 |
"01" | MODE | RW | Type F 卡模拟启用指示器 | 1 | 'FF' |
"02" | SPEED_CAP | RO | Type F 的 CLF 速度能力 | 1 | '01' |
"03" | DAT_OUT | RO | 支持隧道模式用于 F 类卡仿真中的防冲突数据交换 | 1 | '00' |
MODE 参数的编码:
- 'FF' = 未启用 F 类卡模拟; 和
- '02' = 启用 F 类卡模拟; 和
- 所有其他值均为 RFU。
表 34 定义了 SPEED_CAP 参数的编码。
SPEED_CAP | 描述 |
b8 | 1:支持自动比特率检测 0:不支持自动比特率检测 |
b7..b3 | RFU |
b2 | 1:支持 424 kbps 比特率 0:不支持 424 kbps 比特率 |
b1 | 1:支持 212 kbps 比特率 0:不支持 212 kbps 比特率 |
CLT_SUPPORT 参数的编码:
- '01' = CLF 包含用于 Type F 卡仿真防冲突支持的隧道模式功能; 和
- '00' = CLF 不包含任何支持 Type F 卡模拟防冲突的隧道模式功能。
9.3.4 卡应用门
9.3.4.1 概述
卡应用门控制对非接触式卡应用的访问。
除了第 7.2 节中定义的通用门的命令和事件外,接下来的章节定义了卡片应用门支持的命令和事件。
9.3.4.2 命令
没有定义额外的命令。
9.3.4.3 事件
9.3.4.3.0 支持的事件
卡应用门支持表 35 中列出的事件。这些事件将在以下条款中描述。
9.3.4.3.1 EVT_FIELD_ON
此事件表示 CLF 检测到来自外部阅读器的射频载波。 如果卡射频门打开且 MODE 参数设置为“02”,则主机控制器应在检测到射频场后 2ms 内发送此事件。
在根据 ETSI TS 102 613 [2] 的底层数据链路层的情况下,以下例外适用:如果接口处于 DEACTIVATED 状态,CLF 应激活接口而不是发送 EVT_FIELD_ON。
该事件没有参数。
9.3.4.3.2 EVT_CARD_DEACTIVATED
此事件表示 CLF 已停用,如 ISO/IEC 14443-3 [6] 中定义的 Type B 或 ISO/IEC 14443-4 [7] 中的 Type A。
该事件没有参数。
9.3.4.3.3 EVT_CARD_ACTIVATED
此事件表示 CLF 已按照 ISO/IEC 14443-3 [6] 中定义的 Type B 或 ISO/IEC 14443-4 [7] 中定义的 Type A 激活。
该事件没有参数。
9.3.4.3.4 EVT_FIELD_OFF
此事件表示 CLF 检测到来自外部阅读器的射频载波丢失。
该事件没有参数。
9.3.4.3.5 EVT_SEND_DATA
此事件允许从 CLF 向主机发送数据。 该事件具有如下参数。
射频错误指示器的编码:
- “00” = 没有错误; 和
- '01' = 错误; 和
- 所有其他值均为 RFU。
注意:数据的结尾和射频错误指示符的开头可以明确地从消息大小中得出。射频错误指示符是最后一个参数,因为在发送方 (CLF) 可以对非接触式接口上接收到的原始消息进行完整性检查之前,长分段消息的第一段可能已经在接口上发送到主机。
当错误指示符设置为“01”时,主机将丢弃该事件。
9.3.4.4 注册表
卡应用程序门没有定义注册表项。
9.4 程序
9.4.0 概述和基本规则
第 9.4 节中的程序针对全功率模式进行了描述。 如果低功耗模式下的程序不同,则描述这些例外情况。
如果关联的卡射频门注册表中的MODE参数设置为'02'(启用),CLF仅应将表35中定义的事件发送到卡应用门或打开ETSI TS 102 613[2]中定义的对应射频技术的CLT会话。
9.4.1 非接触卡应用的使用
图 15 说明了进入读卡器字段时 Type A 和 Type B 卡射频门和卡应用门交换的消息。
序列流程如下:
-
当 CLF 检测到 RF 场时,如果卡 RF 门打开且 MODE 参数设置为“02”,则卡 RF 门应将事件 EVT_FIELD_ON 发送到第 9.3.4.3.1 节中指定的卡应用门。 当有多个打开的卡 RF 门且 MODE 参数设置为“02”时,CLF 应将 EVT_FIELD_ON 发送到对应的具有最低 GID 的卡应用门。 接下来,CLF 开始初始化和防冲突过程,如 ISO/IEC 14443-3 [6] 中所定义。
在低功耗模式下,事件 EVT_FIELD_ON 可以省略。
-
在 ISO/IEC 14443-4 [7] 定义的激活序列结束时,卡 RF 门应向卡应用门发送 EVT_CARD_ACTIVATED 以指示可以交换 APDU。
-
卡射频门应使用 EVT_SEND_DATA 将来自外部非接触式读卡器的 C-APDU 转发到卡应用门。
-
主机应通过在 EVT_SEND_DATA 事件中向卡射频门发送 R-APDU 来回复。 CLF 可以转发空的 C-APDU。 主机应使用空的 R-APDU 或包含错误代码的 R-APDU 对此进行回复。
-
可以重复步骤3和4。
-
在去激活序列结束时,卡射频门将发送一个 EVT_CARD_DEACTIVATED 以表示不能再交换 APDU。 仅当外部非接触式读卡器支持时才会发送此事件。
当 CLF 在上述序列中的任何时间检测到射频场关闭时,如果卡射频门打开且 MODE 参数设置为“02”,则卡射频门应向卡应用门发送 EVT_FIELD_OFF。 当有多个打开的卡射频门且 MODE 参数设置为“02”时,CLF 应将 EVT_FIELD_OFF 发送到交易期间使用的卡应用门或相应的具有最低 GID 的卡应用门。 在低功耗模式下,如果主机关闭,则事件 EVT_FIELD_OFF 可能会被忽略。
9.4.2 非 ISO/IEC 14443-4 Type A 应用
对于 Type A 非接触卡,外部读卡器不使用 ISO/IEC 14443-4 [7] 中定义的传输协议,流程如下:
-
卡射频门应发送第 9.4.1 节中规定的 EVT_FIELD_ON。 CLF 处理初始化和防冲突。
在低功耗模式下,事件 EVT_FIELD_ON 可以省略。
-
任何其他通信都使用 ETSI TS 102 613 [2] 中定义的 CLT 模式完成。
当 CLF 在上述序列中的任何时间检测到射频场关闭时,卡射频门应发送第 9.4.1 节中规定的 EVT_FIELD_OFF。 在低功耗模式下,如果主机关闭,则事件 EVT_FIELD_OFF 可能会被忽略。
建立 CLT 模式的规则在 ETSI TS 102 613 [2] 中定义。
9.4.3 Type B' 射频技术
对于 Type B' 非接触式卡应用,流程如下:
- 卡 RF 门应发送第 9.4.1 节中规定的 EVT_FIELD_ON。 在低功耗模式下,事件 EVT_FIELD_ON 可以省略。
- RF 传入原始帧与参数 PAT_IN 中的模式匹配。 匹配规则如下:
- PAT_IN 应具有偶数个字节。 前半部分是参考数据REF,后半部分是掩码M。如果RFIN代表接收到的帧(SOF和CRC之间的数据字节),如果下面的逐位计算结果为全1,则匹配成功:
- (RFIN XOR REF) OR M。
- PAT_IN 应具有偶数个字节。 前半部分是参考数据REF,后半部分是掩码M。如果RFIN代表接收到的帧(SOF和CRC之间的数据字节),如果下面的逐位计算结果为全1,则匹配成功:
- 如果匹配成功,则 CLF 应将接收帧的第一个字节作为参数 DAT_OUT 的字节作为前缀,添加 CRC 并将结果发送到射频阅读器。射频输入帧结束和阅读器应答开始之间的时间应小于 1 ms。
- 在成功匹配之前,传入的原始帧不会传输到主机。
当 CLF 在上述序列中的任何时间检测到射频场关闭时,卡射频门应将 EVT_FIELD_OFF 发送到第 9.4.1 节中规定的卡应用门。 在低功耗模式下,如果主机关闭,则事件 EVT_FIELD_OFF 可能会被忽略。
9.4.4 Type F 射频技术
对于在现有广泛基础设施中使用的 212 kbps/424 kbps 被动模式中基于 ISO/IEC 18092 [4] 的非接触式卡仿真应用,以下适用:
-
卡射频门发送第 9.4.1 节中指定的 EVT_FIELD_ON。 在低功耗模式下,事件 EVT_FIELD_ON 可以省略。
-
如果使用 ETSI TS 102 613 [2] 中定义的底层数据链路层,如果收到初始化命令,则使用 ETSI TS 102 613 [2] 中定义的 CLT 执行初始化数据交换。主机提供信息用于初始化。
-
卡射频门应使用 EVT_SEND_DATA 将 ISO/IEC 18092 [4] 212 kbps/424 kbps 帧从外部阅读器转发到卡应用门。 主机和主机控制器应能够接收 ISO/IEC 18092 [4] 212 kbps/424 kbps 帧,而无需在之前的步骤中进行先前的初始化。 如果来自主机的响应未决,则 CLF 不应将射频帧转发给主机。 如果接收到射频帧但来自主机的响应仍在等待中,则应丢弃接收到的射频帧。
生成的 HCP 数据包具有以下结构:
图 15a -
发送响应的主机应在 EVT_SEND_DATA 事件中封装 ISO/IEC 18092 [4] 212 kbps/424 kbps 帧并将其发送到卡 射频门。 如果没有要发送的应用程序数据,主机应向卡射频门发送一个空的 EVT_SEND_DATA 事件。 CLF 不应向射频发送任何内容,但应能够在从主机接收到空的 EVT_SEND_DATA 后接收射频帧。
-
可以重复步骤 3 和 4。
当 CLF 在上述序列中的任何时间检测到射频场关闭时,卡射频门应将 EVT_FIELD_OFF 发送到第 9.4.1 节中规定的卡应用门。 在低功耗模式下,如果主机关闭,则事件 EVT_FIELD_OFF 可能会被忽略。
ISO/IEC 18092 [4],212 kbps/424 kbps 帧,除了初始化命令和响应(命令代码“00”和“01”),应根据表 37中描述的帧的命令代码使用适当的门进行交换。命令代码 (CMD0) 是 ISO/IEC 18092 [4] 中定义的 LEN 之后的字节。 不应转发为 NFCIP-1 协议保留的命令代码。
命令编码(CMD0) | 发送途径 |
'00' (POLLING_REQUEST), '01' (POLLING_RESPONSE) |
CLT mode |
'D4' (NFCIP-1 REQ), 'D5' (NFCIP-1 RES) |
为 ISO/IEC 18092 保留 [4] NFCIP-1 |
其他 | ISO/IEC 18092 [4] 212 kbps/424 kbps 卡模拟应用门 |
9.4.5 更新射频技术设置
为避免参数设置不一致,建议在针对不同射频技术更新 CLF 中的设置时执行以下步骤:
-
主机首先将要更新的射频技术的 MODE 参数设置为'FF',以禁止主机的 CLF 使用该技术。
-
现在主机可以更新 CLF 中 RF 技术的所有其他参数。
-
最后,主机可以通过将 CLF 中的 MODE 参数设置为“02”来再次启用 RF 技术。
9.4.6 标识检查
对于 ETSI TS 102 613 [2] 中规定的数据链路层,以下内容应适用:
除了第 8.4 节中定义的内容外,如果下层标识检查失败,主机控制器应禁止 UICC 主机的卡模拟模式,即主机控制器不应使用卡中的任何参数响应外部非接触式读卡器 与 UICC 主机相关的仿真注册表。
10 非接触式读卡器
10.1 概述
本节规定了如何在 HCI 核心之上仿真支持多种射频技术的非接触式阅读器。
支持的射频技术有:
- ISO/IEC 14443 第 2 [5]、3 [6] 和 4 [7] 部分中定义的 Type A; 或者
- ISO/IEC 14443 第 2 [5]、3 [6] 和 4 [7] 部分中定义的 Type B。
读写器模式的非接触式平台实现为具有两台主机的主机网络; 主机控制器和主机(例如 UICC 主机)。 CLF 应运行主机网络的主机控制器。 使用 CLF 服务的其他主机超出了本文档的范围。
读卡器和卡仿真模式平台可以共存。
主机运行非接触式读卡器应用程序,CLF 处理面向外部非接触式卡的射频通信层。
主机控制器为它支持的每一种射频技术都有一个阅读器射频门。 对于每个想要使用的阅读器射频门,主机都有一个阅读器应用门。 主机不应为每个阅读器射频门创建一个以上的管道。
CLF 按照 ISO/IEC 14443-2 [5] 中的定义处理通信的 RF 层。
ISO/IEC 14443-3 [6] 中定义的防冲突和激活由主机控制下的 CLF 处理。
ISO/IEC 14443-4 [7] 中定义的射频协议由 CLF 处理。
阅读器射频门和阅读器应用门通过它们的管道交换 ISO/IEC 7816-4 [8] 中定义的 APDU。
在目标发现的通知和该目标上的操作结束之间,主机被允许消耗高达主机控制器在其身份管理门注册表中定义的最大值的电流,除非受底层限制,例如 ETSI TS 102 613 [2],其中对低功耗模式和省电模式的限制仍然适用 [7]。
图 16 说明了一个有效的非接触式平台。
10.2 阅读器射频门
10.2.1 概述
阅读器射频门控制射频技术的行为。 与阅读器射频技术相关的协议和参数设置在阅读器射频门的注册表中可用。 阅读器射频门可以接受阅读器领域中的单个目标,而与射频技术无关。
除了第 7.2 节中定义的通用门的命令和事件之外,以下条款定义了阅读器射频门支持的命令和事件。
表 38 列出了已定义阅读器射频门的 GID。
10.2.2 命令
10.2.2.1 WR_XCHG_DATA
此命令允许将数据从阅读器应用程序门发送到阅读器射频门; 此命令中发送的数据旨在通过射频传输。作为对该命令的响应,来自外部设备的回复被返回到阅读器应用门。
该命令具有以下参数:
CTR 字段定义如下:
- b8 到 b6:RFU。
- b5:超时激活:如果将b5 设置为零,则禁用应用程序级超时。 如果 b5 设置为 1,则在 b4 到 b1 中给出超时。
- b4 到 b1:超时。 此值(0 到 14)用于通过以下公式计算应用程序级别超时:
如果 CTR 字段的 b5 设置为 1,并且在 CLF 向目标无错误传输此命令后开始的超时时间内没有收到来自目标的响应,则 CLF 应响应主机 ANY_E_TIMEOUT 不带参数,之后应丢弃从目标接收的数据。
如果 CLF 检测到射频传输错误并且 ISO/IEC 14443-4 [7] 定义的错误检测和恢复过程没有成功,则 CLF 应以 ANY_OK 响应主机,错误指示符设置为“01”。
成功时,主机应以 ANY_OK 与参数进行响应,如下所示。
射频错误指示器的编码:
- '00' = 没有错误; 和
- '01' = 不可恢复的错误; 和
- 所有其他值均为 RFU。
注意:在主机控制器可以对非接触式接口上接收到的原始消息进行完整性检查之前,长分段消息的第一段可能已经在接口上发送到主机。 如果非接触式接口上的响应传输中断,则将使用相同的响应。
10.2.3 注册表
10.2.3.1 Type A 阅读器射频门
表 42 定义了射频门 ISO/IEC 14443 Type A 阅读器射频门的注册表。 注册表不是持久的。 UID、SAK、ATQA、APPLICATION_DATA、FWI、SFGT 的值在每次目标激活后更新。 OPERATING_STATUS 的值在运行状态改变时更新。
类别 | 标识 | 参数 | 访问权限 | 描述 | 长度 | 默认值 |
强制的 | '01' | DATARATE_MAX | RW | 支持的最大数据速率 | 1 | '00' |
'02' | UID | RO | ISO/IEC 14443-3 [6] 中为 Type A 定义的 UID | 4, 7, 10 | '08000000' | |
'03' | SAK | RO | ISO/IEC 14443-3 [6] 中为 A 型定义的预格式化 SAK | 1 | '00' | |
'04' | ATQA | RO | 预先格式化的 ATQA; 字节 1 应包含在 ISO/IEC 14443-3 [6] 中为类型 A 定义的 ATQA 编码的 b8..1、字节 2 b16..9 | 2 | '0000' | |
'05' | APPLICATION_DATA | RO | ISO/IEC 14443-4 [7] 中为类型 A 定义的历史字节 | N | N=0 | |
'06' | FWI, SFGT | RO | ISO/IEC 14443-4 [7] 中定义的 A 类帧等待时间和启动帧保护时间 | 1 | 'EE' | |
强制性,在 Rel-10 及更早版本中不存在 | '07' | OPERATING_STATUS | RO | 指示阅读器的当前运行状态 | 1 | '00' |
'08' | STATUS_EVENT_EN | RW | 启用阅读器状态事件 | 1 | '00' |
DATARATE_MAX 的编码如下:
-
仅支持两个方向(PICC 到 PCD 和 PCD 到 PICC)的相同除数(ISO/IEC 14443-4 [7]):
-
'00' = 支持的最大除数为 1。
-
'01' = 支持的最大除数为 2。
-
'02' = 支持的最大除数为 4。
-
'03' = 支持的最大除数为 8。
注意:实际支持的最大除数由以下最小值给出:
- 此注册表中指示的值; 和
- CLF 中实现的最大除数。
-
所有其他值都是 RFU。
-
OPERATING_STATUS 的编码如下:
b8-2:RFU
b1:读卡器状态
当 Type A 读卡器模式对主机不可用时,CLF 应将 b1 设置为 0(例如,CLF 专门为另一台主机激活)。
当主机可以使用 Type A 读卡器模式时,CLF 应将 b1 设置为 1。
STATUS_EVENT_EN 的编码如下:
b8-2 : RFU
b1 : 读卡器状态事件使能
读卡器状态事件使能 (b1) 向 CLF 指示当读取器状态发生变化时主机请求发送事件,并且可以通过相同的方法向 CLF 指示它不希望接收此类事件,如子句中详细指定的 10.3.4.2.
10.2.3.2 Type B 读卡器射频门
表 43 定义了射频门 ISO/IEC 14443 Type B 读卡器射频门的注册表。 注册表不是持久的。 HIGHER_LAYER_RESPONSE、PUPI、APPLICATION_DATA 和 AFI(读取值)的值在每次目标激活后更新。 OPERATING_STATUS 的值在运行状态改变时更新。
类别 | 标识 | 参数 | 访问权限 | 描述 | 长度 | 默认值 |
强制的 | '01' | HIGHER_LAYER_RESPONSE | RW | 支持的最大数据速率 | 1 | '00' |
'02' | AFI | RO | ISO/IEC 14443-3 [6] 中为 Type A 定义的 UID | 4, 7, 10 | '08000000' | |
'03' | PUPI | RO | ISO/IEC 14443-3 [6] 中为 Type A 定义的预格式化 SAK | 1 | '00' | |
'04' | APPLICATION_DATA | RO | 预先格式化的 ATQA; 字节 1 应包含在 ISO/IEC 14443-3 [6] 中为 Type A 定义的 ATQA 编码的 b8..1、字节 2 b16..9 | 2 | '0000' | |
'05' | HIGHER_LAYER_DATA | RO | ISO/IEC 14443-4 [7] 中为 Type A 定义的历史字节 | N | N=0 | |
强制性,在 Rel-10 及更早版本中不存在 | '07' | OPERATING_STATUS | RO | ISO/IEC 14443-4 [7] 中定义的 Type A 帧等待时间和启动帧保护时间 | 1 | 'EE' |
'08' | STATUS_EVENT_EN | RW | 指示读卡器的当前运行状态 | 1 | '00' |
AFI 的编码如下:
- 读取器应使用写入注册表的值来轮询目标。
- 一旦目标被激活,注册表值应反映目标的 AFI 值。
OPERATING_STATUS 的编码如下:
b8-2 : RFU
b1 : 读卡器状态
当 Type B 读卡器模式对主机不可用时,CLF 应将 b1 设置为 0(例如,CLF 专门为另一台主机激活)。
当 Type B 读卡器模式可用于主机时,CLF 应将 b1 设置为 1。
STATUS_EVENT_EN 的编码如下:
b8-2 : RFU
b1 : 读卡器状态事件使能
读卡器状态事件使能 (b1) 向 CLF 指示当读取器状态发生变化时主机请求发送事件,并且可以通过相同的方法向 CLF 指示它不希望接收此类事件,如子句中详细指定的 10.3.4.2.
10.2.4 事件
10.2.4.0 支持的事件
读卡器射频门支持表 44 中列出的事件。这些事件将在以下条款中描述。
10.2.4.1 EVT_READER_REQUESTED
在此事件中,主机向 CLF 发出信号,表明阅读器应用程序门正在请求激活射频轮询(打开射频载波)。 读卡器射频门用于实现目标轮询的方法和算法依赖于实现,超出了本文档的范围。 此事件没有参数,可以通过任何读卡器射频门的任何开放管道发送。
10.2.4.2 EVT_END_OPERATION
主机发送此事件以通知 CLF 控制器操作结束。 在接收到事件后,如果 EVT_TARGET_DISCOVERED 先前已发送到该特定主机,则 CLF 控制器应关闭射频场,否则 CLF 可关闭射频场并在其内部处理中继续前进。
10.2.5 响应
对于条款 10.2.2.1 中指定的命令,表 45 列出了可能的响应代码。 除非另有说明,否则这些响应不携带附加参数。
数值 | 响应 | 描述 |
'00' | ANY_OK | 命令成功完成(带有可选参数) |
'03' | ANY_E_NOK | 命令被拒绝和/或未完成 |
'09' | ANY_E_TIMEOUT | 发生应用程序级超时 |
'10' | WR_RF_ERROR | 目标已返回射频错误 |
10.3 读卡器应用门
10.3.1 概述
读卡器应用门用于控制对非接读卡器应用的访问。
除了第 7.2 节中定义的通用门的命令和事件之外,以下子句定义了读卡器应用门支持的命令和事件。
10.3.2 命令
没有定义额外的命令。
10.3.3 注册表
读卡器应用门没有定义注册表项。
10.3.4 事件
10.3.4.0 支持的事件
读卡器应用门支持表 46 中列出的事件。该事件将在以下条款中描述。
10.3.4.1 EVT_TARGET_DISCOVERED
该事件向读卡器应用门发送信号,表明在激活的射频场中存在射频目标。该事件通知读卡器应用门有关注册表中射频信息的可用性。目标的激活成功,相关联的注册表可以通知应用关于应用的射频特征。
此事件有一个参数:
状态字段的编码:
-
'00' = 当读卡器感应区中有一个目标并且目标激活完成时; 和
-
'03' = 当场中有多个目标时,与射频技术无关。
10.3.4.2 EVT_READER_STATUS
此事件向主机指示特定射频技术的读卡器射频门的可用性状态已更改。
CLF 应发送此事件(另见附件 A):
在 STATUS_EVENT_EN 中的读卡器状态事件使能位 (b1) 更改为 1 后一次,并且
只要读卡器射频门的可用性状态改变时,相应 STATUS_EVENT_EN 中的读卡器状态事件启用位 (b1) 保持为 1。
即使从一台主机到读卡器射频门的多条管道打开,该事件也只能通过这些管道之一发送。
如果不同类型的读卡器模式在不同的时间点对主机可用/不可用,CLF 应为每次更改发送一个事件。
如果相应 STATUS_EVENT_EN 中的阅读器状态事件使能位 (b1) 设置为 0,则 CLF 不应发送 EVT_READER_STATUS。
此事件有一个参数。
读卡器状态字段的编码:
b8-3:RFU
b1:Type A 读卡器状态
- 0 = Type A 目标的读卡器模式不可用于此主机。
- 1 = 该主机可使用 Type A 目标的读取器模式。
b2 : Type B 读卡器状态
- 0 = Type B 目标的读卡器模式不可用于此主机。
- 1 = 该主机可使用 Type B 目标的读卡器模式。
10.4 读卡器模式程序
10.4.1 非接触式读卡器应用的使用
图 17 说明了在检测目标时,Type A 和 Type B 读卡器射频门和读卡器器应用门交换的消息。
序列流程如下:
-
当主机向 CLF 发送 EVT_READER_REQUESTED 以启用射频轮询时。CLF 根据所有具有开放管道的主机的读卡器射频门开始检测目标。主机应仅在单个管道上发送 EVT_READER_REQUESTED。
-
目标已被检测并激活。CLF 通过事件 EVT_TARGET_DISCOVERED 通知主机。 如果现场有多个目标,则程序将停止。 主机可以读取读卡器射频门注册表以获取射频特定信息(例如 AFI 等)。
-
读卡器应用门可以通过使用命令 WR_XCHG_DATA 通过管道发送 C-APDU。
-
读卡器射频门回复 R-APDU。
可以重复步骤 3 和 4。
- 当操作完成时,主机应发送 EVT_END_OPERATION 以关闭上述定义的射频载波。 主机应仅在单个管道上发送 EVT_END_OPERATION。
10.4.2 非接触式读卡器不可用
图 17a 说明了当读卡器不可用时,Type A 和 Type B 读卡器射频门和读卡器应用门可以交换的消息。
序列流程如下:
-
在启动读卡器模式之前,主机检查读卡器是否可用。
-
如果读卡器不可用,主机启用读卡器状态事件。
注意:步骤 1 是可选的。 主机也可以直接启动读卡器状态事件。
-
作为回应,CLF 报告读者(仍然不可用)。
-
主机发送请求的事件读卡器并等待读卡器变为可用。
-
一旦读卡器可供主机使用,CLF 会激活主机的读卡器,读卡器射频门将通过事件读卡器状态发出信号。
主机可能决定始终激活读卡器状态事件并跳过步骤 1 中的状态检查。如果在发送请求的事件读卡器时读卡器可用,则主机将立即接收事件读卡器状态作为确认。
10.4.3 错误管理
图 17b 说明了在 CLF 在响应 WR_XCHG_DATA 命令时报告射频错误时主机应遵循的顺序。
序列流程如下:
-
假设主机已经通过发送 EVT_READER_REQUESTED 触发了读卡器射频门,并且 CLF 已经通过 EVT_TARGET_DISCOVERED 事件通知主机,则主机可以发送 WR_XCHG_DATA 命令。
-
当 CLF 检测到不可恢复的射频错误,并且读卡器射频门在发送响应 ANY_OK 时进行回复,参数“错误指示器”设置为“01”。
-
主机通过发送 EVT_END_OPERATION 停止读卡器操作。
-
主机可能希望通过发送 EVT_READER_REQUESTED 来重新启动读卡器操作。
11 连接
11.1 概述
本章节定义:
- 允许 UICC 启动 ETSI TS 102 223 [3] 中定义的主动会话的机制,无论何时在非接触式事务的上下文中都需要这样做。
- 主机在终端主机中启动与主机中运行的应用程序相关的应用程序的机制。
- 终端主机执行系统电源管理所需的命令和事件。
- 表明终端用户界面可用性的注册表。
从主机的角度来看,这些命令和事件被寻址到终端主机中的连接门。 然而,终端是否存在真正的 HCI 或者它是否在 CLF 中虚拟实现取决于实现,并且 CLF 和终端之间的专有机制用于触发命令的发送和注册信息的存储。
连接门的支持对于终端主机是可选的。
11.2 连接门
11.2.0 概述
连接门是第 7.2 节中定义的通用门。 作为目的地门,连接门应至少接受来自其白名单中每个主机的一个管道。
表 48 列出了连接门的 GID。
以下章节中定义的命令和事件将被发送到这个连接门。
11.2.1 命令
11.2.1.1 PRO_HOST_REQUEST
该命令允许主机请求终端主机在有限的时间内激活一个或多个其他主机以便与它们交互。本程序不适用于请求激活主机控制器或终端主机。
该命令有以下参数:
当所有请求的主机都成功时,终端主机应以不带参数的 ANY_OK 响应。 在过期的激活持续时间之后,主机不得与另一台主机交互。
11.2.2 事件
11.2.2.0 支持的事件
连接门支持表 51 中列出的事件。这些事件将在以下章节中描述。
11.2.2.1 EVT_CONNECTIVITY
这个事件通知终端主机它应该发送一个在 ETSI TS 102 223 [3] 中定义的 “HCI 连接事件”。
此事件没有参数。
11.2.2.2 Void
11.2.2.3 EVT_OPERATION_ENDED
该事件通知终端主机在激活持续时间限制之前结束与 PRO_HOST_REQUEST 命令中列出的主机的交互。
此事件没有参数。
11.2.2.4 EVT_TRANSACTION
该事件通知终端主机它应该启动一个应用程序,该应用程序与由参数列表上的 AID 标识的 UICC 托管应用程序相关联。
注意:这种启动应用程序的方法不能替代 ETSI TS 102 223 [3] 中定义的主动会话支持的启动应用程序。
此事件发送在 ETSI TS 101 220 [9] 中定义的 BER-TLV 字段中编码的参数列表。 这些字段的标签和长度在表 52 中定义。
终端主机应向启动的应用程序提供参数。
11.2.2.5 EVT_MH_NOTIFICATION
该事件应仅在管理主机为终端的配置中使用。 在 MH 不是终端的仅 HCI 系统配置中,应使用为平台管理门定义的相同事件。
此事件由主机在以下任何时间发送到终端主机:
- 主机或其非接触卡仿真应用程序的非接触卡仿真配置发生了变化; 或者
- 此主机的首选模式(聚合/非聚合)已更改; 或者
- 主机进入 HCI 网络。
接收到该事件后,MH 应相应地调整系统的配置。
此事件发送 GlobalPlatform Card 中定义的参数列表; 多个非接触式安全元件 - 管理实体 [12]。
11.2.3 注册表
连接门提供有关终端用户界面状态的信息(即屏幕向最终用户显示消息的可用性以及最终用户输入信息的触摸板或键盘的可用性)。
表 52a 列出了注册表中的条目。 UI_STATE 值在每次终端用户状态更改后更新。
标识 | 参数 | 访问权限 | 描述 | 长度 | 默认值 |
"01" | UI_STATE | RO | 终端的用户界面可用性 | 1 | '00' |
UI_STATE 的编码如下:
- '00' = UI 可用性未知。
- '01' = UI 完全可用,即屏幕当前处于活动状态,终端应用程序可以向用户显示消息和/或要求用户输入。
- '02' = UI 被锁定,无法通知用户。
- '03' = 用户界面被锁定并且可以通知用户。
- '04' = UI 已解锁,但无法通知用户。
- 所有其他值均为 RFU。
终端提供的信息仅在终端交付时才是准确的。每当 UI 的可用性状态被修改时,终端都应更新此信息。
11.3 连接应用门
11.3.0 概述
第 11.3 节定义了连接应用门支持的命令和事件,以及第 7.2 节中定义的通用门的命令和事件。
11.3.1 命令
没有额外的命令。
11.3.2 事件
11.3.2.0 支持的事件
连接应用门支持表 53 中列出的事件。该事件将在以下章节中描述。
11.3.2.1 EVT_STANDBY
终端主机或主机控制器应使用此事件通知主机它应在 100 毫秒后停止与其他主机和主机控制器的任何正在进行的通信。 终端主机应注意不要中断正在进行的非接触式交易。
此事件没有参数。
11.3.2.2 EVT_HOST_NOTIFICATION
只有在管理主机是终端的配置中,连接门才应使用该事件。 在 MH 不是终端的仅 HCI 系统配置中,应使用为平台管理应用程序门定义的相同事件。
该事件由终端主机在其非接触式卡仿真应用程序的配置必须更改时或为了向主机指示首选模式(聚合/非聚合)已更改时发送。 接收到此事件后,主机应相应地调整其卡仿真功能的配置。
此事件发送 GlobalPlatform Card 中定义的参数列表; 多个非接触式安全元件 - 管理实体 [12]。
11.3.3 注册表
没有定义注册表项。
11.4 连通门程序
11.4.1 连接门的使用
图 18 说明了 UICC 主机和终端主机之间使用 EVT_CONNECTIVITY 事件的消息。 其他活动同理。
序列流程如下:
-
UICC 主机请求创建一个管道到终端主机中的连接门。
-
终端主机按照第 8.1.1 条的规定进行确认。
-
UICC 主机打开管道。
-
终端主机接受开通。
-
UICC 向终端主机发送 EVT_CONNECTIVITY。
12 APDU 传输
12.1 概述
本节定义了一种机制,允许 HCI 主机向另一个 HCI 主机发送 APDU 命令并接收应答。
发送 APDU 命令的主机称为 “客户端APDU主机”,接收并处理 APDU 命令的主机称为 “服务器 APDU 主机”。
客户端 APDU 主机不应创建一个以上的管道到服务器 APDU 主机的 APDU 门。
在发送事件 EVT_END_OF_APDU_TRANSACTION 之后,客户端 APDU 主机应该关闭到服务器 APDU 主机的 APDU 门的管道。
任何主机都可选择支持 APDU 门和 APDU 应用门。
按照 ISO/IEC 7816-4 [8] 中的定义支持 APDU。 具有扩展长度字段的 APDU 的使用是可选的,并且仅当 MAX_C-APDU_SIZE 注册表参数的值超过第 12.2.3 节中指示的默认值时才允许。允许使用基本逻辑信道和进一步的逻辑信道。
12.2 APDU 门
12.2.0 介绍
第 12.2 节定义了除了第 7.2 节中定义的通用门的命令和事件之外,服务器 APDU 主机的 APDU 门支持的命令和事件。
APDU 门可能只接受来自其他主机的实现特定的最大并发管道数。
表 54 列出了 APDU 门的 GID。
以下章节中定义的命令和事件将被发送到这个 APDU 门。
12.2.1 命令
没有额外的命令。
12.2.2 事件
12.2.2.0 支持的事件
APDU 门支持表 55 中列出的事件。这些事件在以下章节中进行了描述。 可以发送每个事件的状态在第 12.4 节中定义。
12.2.2.1 EVT_C-APDU
客户端 APDU 主机应使用此事件来发送 APDU 命令以供服务器 APDU 主机处理。
此事件具有以下参数。
事件中命令 APDU 字段的长度不应超过门注册表中指定的长度。
12.2.2.2 EVT_ABORT
收到此事件后,服务器 APDU 主机应将 APDU 门的状态重置为 “INIT”,并应在逻辑上表现得好像信号输入 (RST) 在 ETSI TS 102 221 [11] 接口上已重置。 特别是,只有连接到 APDU 服务器门的管道的应用上下文会受到影响,而不会对其他 HCI 管道或其他接口上的任何应用上下文产生任何影响。
处理此事件后,服务器 APDU 主机应向客户端 APDU 主机发送 EVT_ATR 事件。
此事件没有参数。
12.2.2.3 EVT_END_OF_APDU_TRANSACTION
当在服务器 APDU 主机上不再请求活动时,客户端 APDU 主机将发送此事件。
注意:接收到此事件的主机然后可以进入省电模式,通过发送事件 EVT_HCI_END_OF_OPERATION 通知主机控制器。
此事件没有参数。
12.2.3 注册表
APDU 门提供以下注册表。 注册表应是持久的。
标识 | 参数 | 访问权限 | 描述 | 长度 | 默认值 |
"01" | MAX_C-APDU_SIZE | RO | EVT_C-APDU 事件中命令 APDU 字段的最大可接受总长度。 | 2 | 261 |
"02" | MAX_WAIT_TIME | RO | 执行命令 APDU 的最长等待时间(以毫秒为单位)。 | 2 | 1000 |
注意:如果需要互操作性,强烈建议 MAX_C-APDU_SIZE 值至少为 261(以支持具有完整负载的 APDU)。
12.3 APDU 应用门
12.3.0 介绍
第 12.3 节定义了除了第 7.2 节中定义的通用门的命令和事件之外,客户端 APDU 主机的 APDU 应用门支持的命令和事件。
12.3.1 命令
没有额外的命令。
12.3.2 事件
12.3.2.0 支持的事件
APDU 应用程序门支持表 58 中列出的事件。这些事件在以下条款中描述。 可以发送每个事件的状态在第 12.4 节中定义。
12.3.2.1 EVT_R-APDU
在处理在 EVT_C-APDU 中接收到的 APDU 命令之后,该事件应由服务器 APDU 主机发送。
EVT_R-APDU 应由服务器 APDU 主机在收到 EVT_C-APDU 或发送最后一个 EVT_WTX 后不迟于 APDU 门注册表中指定的最大等待时间发送。
该事件的参数如下。
12.3.2.2 EVT_WTX
如果命令的处理超过 APDU 门注册表中指定的最大等待时间,则该事件应由服务器 APDU 主机在处理 APDU 命令期间发送。收到此事件后,收到额外时间请求的 APDU 应用程序门将重新启动其计时器,并将其值设置为最大等待时间。如果处理需要更多时间,可以重复发送该事件。
此事件没有参数。
12.3.2.3 EVT_ATR
该事件应由服务器 APDU 主机发送,以向客户端 APDU 主机指示服务器可用于 APDU 处理。 EVT_ATR 应在以下事件发生后不迟于 100 毫秒发送:
- 由客户端 APDU 主机打开管道; 或者
- 接收EVT_ABORT; 或者
- 会话初始化的结束,如第 8.4 节所述,如果管道已经打开。
EVT_ATR 不应在会话初始化结束之前发送。
服务器 APDU 主机应注意在发送 EVT_HCI_END_OF_OPERATION(如果已发送)之前发送 EVT_ATR。
如果客户端 APDU 主机可以控制底层数据链路层的可用性(例如激活和停用),则应注意在上述事件发生后至少 100 毫秒内保持底层数据链路层对服务器 APDU 主机可用 或直到收到 EVT_ATR。
此事件具有以下参数。
ATR 的值按照 ISO/IEC 7816-3 [10] 中的定义进行编码。 接口字符可能存在,但在本文档的上下文中没有意义。
注 1:预期 ATR 字符将不会被任何应用程序使用,除非用于识别服务器 APDU 主机的类型。
注 2:虽然接口字符在本文档的上下文中没有意义,但建议将它们设置为反映服务器 APDU 主机实际能力的值。
12.3.3 注册表
没有定义注册表项。
12.4 APDU 门的状态图
图 19 指定了 APDU 门在其操作期间应采取的状态和转换。
在 APDU 门上接收到的其他事件或命令不应改变其状态,但可以在任何状态下接收的 ANY_CLOSE_PIPE 除外。
在服务器 APDU 主机上电时,如果管道已经打开,则初始状态应为 “INIT”,这意味着一旦准备好处理 APDU,服务器 APDU 主机将发送 EVT_ATR。
13 管理主机界面
13.1 概述
对于仅使用 HCI 与 CLF 接口的管理主机,必须支持平台管理门。 如果 MH 和 CLF 之间的接口基于另一种技术(例如 NCI),则不应实现该门。
本章节定义:
- MH 的接口,负责管理主机和这些主机支持的应用程序。 MH 特别负责解决不同主机支持的卡仿真应用程序之间的潜在冲突。
- MH 和 CLF 之间的接口,以便在 CLF 中配置卡模拟应用程序路由配置。
CLF 应创建并打开通向 MH 的平台管理门的管道。 CLF 将只在这个门上创建一个管道到一个 MH,在这个门上的任何其他主机上创建的所有其他管道都将被删除。 使用卡模拟功能并支持多执行环境的主机应请求创建并打开通往此门的管道。
当主机请求创建到 MH 上的该门的管道时,主机控制器应忽略由 MH 设置的 WHITELIST。
13.2 平台管理门
13.2.1 介绍
平台管理门是第 7.2 节中定义的通用门。 作为目的地门,平台管理门应至少接受来自 HCI 网络中每个主机的一个管道。
表 61 列出了平台管理门的 GID。
以下章节中定义的命令和事件将被发送到这个门。
13.2.2 命令
没有额外的命令。
13.2.3 事件
13.2.3.1 支持的事件
平台管理门支持表 62 中列出的事件。这些事件将在以下条款中描述。
13.2.3.2 EVT_MH_NOTIFICATION
在以下情况下,主机会随时向 MH 发送此事件:
- 主机或其非接触卡仿真应用程序的非接触卡仿真配置发生了变化; 或者
- 此主机的首选模式(聚合/非聚合)已更改; 或者
- 主机进入 HCI 网络。
接收到该事件后,MH 应相应地调整系统的配置。
此事件发送 GlobalPlatform Card 中定义的参数列表; 多个非接触式安全元件 - 管理实体 [12]。
13.2.4 注册表
没有定义注册表项。
13.3 平台管理应用门
13.3.1 介绍
第 13.3 节定义了平台管理应用程序门支持的命令和事件,以及第 7.2 节中定义的通用门的命令和事件。
13.3.2 命令
没有额外的命令。
13.3.3 事件
13.3.3.1 支持的事件
平台管理应用程序门支持表 63 中列出的事件。该事件将在以下条款中描述。
13.3.3.2 EVT_HOST_NOTIFICATION
当必须更改其非接触式卡仿真应用程序的配置或为了向主机指示首选模式(聚合/非聚合)已更改时,该事件由 MH 发送。 接收到此事件后,主机应相应地调整其卡仿真功能的配置。
此事件发送 GlobalPlatform Card 中定义的参数列表; 多个非接触式安全元件 - 管理实体 [12]。
13.3.4 注册表
13.3.4.1 介绍
当 CLF 创建到管理主机的平台管理门的管道时,此注册表应仅由 CLF 支持。
CLF 的平台管理应用程序门为将非接触式卡仿真应用程序路由到连接到 CLF 的不同主机提供配置。 CLF 使用这个注册表来向 MH 提供它的路由能力,而 MH 使用这个注册表来配置 CLF 提供的路由机制。
MH 也使用该注册表以指示应使用哪组卡仿真非接触式参数。
13.3.4.2 CLF 功能
表 64 列出了注册表中指示 CLF 功能的条目。
标识 | 参数 | 访问权限 | 描述 | 长度 | 默认值 |
"01" | ROUTING_CAPABILITY | RO | CLF 路由功能描述 | 1 | "00" |
"02" | MODE | RW | 卡模拟启用指示器 | 1 | "FF" |
"03" | HOST_RF_CONFIG | RW | 设置射频参数的主机的 Host ID | 0 or 1 | empty |
"04"to"0F" | RFU | RO |
ROUTING_CAPABILITY 的编码如下:
当这些位之一设置为 1 时,这表明 CLF 支持此路由类型。
HOST_RF_CONFIG 参数指示可由管理主机设置的主机 ID,以向 CLF 指示与 MH 不同的主机,CLF 应针对每种类型的技术使用非接触式卡仿真射频参数集。 MH 应使用此参数来允许在一个主机上的卡模拟服务不能与 MH 协作。
空值向 CLF 指示 MH 将根据表 66 提供射频参数。
MODE 的编码如下:
- 'FF' = 所有类型和所有主机的卡模拟未启用; 和
- '02' = 根据卡 RF 门注册表中设置的 MODE 参数值,为所有主机启用卡模拟; 和
- 所有其他值均为 RFU。
13.3.4.3 路由注册
表 65 列出了注册表中指示路由信息的条目。
标识 | 参数 | 访问权限 | 描述 | 长度 | 默认值 |
"10" | ROUTING_ENTRY_1 | RW | 第一个路由条目 | 2 to n | |
"11" | ROUTING_ENTRY_2 | RW | 第二个路由条目 | 2 to n | |
... | |||||
"7F" | ROUTING_ENTRY_112 | RW | 第112条路由表项 | 2 to n | |
"80" | RFU |
每个 ROUTING_ENTRY_N 的编码与 NFC 控制器接口 (NCI) 技术规范 [13] 的表 51“配置侦听模式路由的控制消息” 中为路由条目定义的编码相同,但以下例外:
-
“More” 字段始终设置为“00”; 和
-
“NFCEE ID” 被 HID 取代。
13.3.4.4 射频参数注册
表 66 定义了当 HOST_RF_CONFIG 未设置(即为空)时,用于设置 Type A、Type B、Type B' 和 Type F 的射频参数的注册表项,因此,CLF 应忽略卡射频门中主机提供的值 .
13.4 路由机制说明
路由机制在 NFC 控制器接口 (NCI) 技术规范 [13] 的第 6.3 章“侦听模式路由配置”中进行了描述。
13.5 程序
平台管理门描述了以下程序。
序列流程如下:
-
主机 A 检测到其一个或多个应用程序的非接触式卡仿真配置发生变化,或检测到新应用程序的安装或其首选模式(聚合/非聚合)的更改。
-
主机 A 应向管理主机的平台管理门发送 EVT_MH_NOTIFICATION 以通知这些更改。
-
管理主机应收集与主机 A 托管的应用程序相关的所需信息,并在需要时执行系统的新配置。
-
如果Managing Host需要对一台主机进行新的配置,Managing Host应该向平台管理应用门发送EVT_HOST_NOTIFICATION来执行操作。
附录 A(规范性):非接触式读卡器模式的状态图
图 A.1 显示了 CLF 中读卡器模式操作的状态变化和相关事件。
附录 B(资料性):变更历史
本附件列出了适用于本文件的所有变更请求 (CR)。
译者笔记:该附录请直接阅读规范,当前译文的原件是 ts_102622v150000p