“查找中心”精确查找
“查找中心”精准查找 (FHPF) 规范包含实现要求,用于使支持测距技术的设备能够使用 Google 的“查找我的设备”应用支持精准查找功能。
精确定位发现结果的类型取决于参与精确定位的设备支持的测距技术类型。如需了解支持的测距技术,请参阅测距:带外消息序列和载荷规范。后续部分将探讨基于所用测距技术可以期待何种精度的查找体验。
“查找中心”网络配件
此规范是 Find Hub Network Accessory 规范 (FHNA) 的扩展版本。 此处适用 FHNA 文档中定义的 GATT 特征和身份验证的相同规则。除了 FHNA 规范中已有的操作之外,本文档还定义了新的操作类型。
测距技术专用载荷
此规范还参考了测距:带外消息序列和载荷规范,以定义包含在各个操作的附加数据字段中的测距技术专用载荷。
精确查找流程
本部分将探讨精确定位的 FHNA 消息流。图 1 显示了消息的流向,各段落更详细地说明了每条消息。
图 1. 精准查找的典型消息流
发起方设备是指安装了“查找中心”应用并从中启用了精准查找功能的设备。发起方是尝试查找另一台设备的设备。
响应方设备是指发起方设备尝试查找的设备。
发起方设备向响应方设备发送测距功能请求消息,其中会列出发起方设备希望从响应方设备了解的测距技术。响应方设备将回复测距功能响应通知,其中包含有关支持哪些测距技术及其功能的信息。回答者将仅提供发起者请求的信息。功能列表将根据响应方设备偏好的测距技术的优先级进行排序,列表中的第一个功能具有最高优先级。
然后,发起方设备将发送测距配置消息,其中将定义它要使用的每种测距技术的配置。在收到此消息后,Responder 设备必须使用提供的配置开始测距(针对适用的技术)。响应方设备将发回测距配置响应通知,其中包含每项测距技术是否成功启动的结果。有些测距技术必须在发起方设备和响应方设备上同时启动才能成功进行测距会话,而对于其他技术,只需在发起方设备上启动即可,但响应方设备仍必须回复成功结果。有关特定测距技术行为的更多信息,请参阅后面的部分。
当发起方设备准备好停止精准查找会话时,它会向响应方发送“停止测距”消息,指明哪些测距技术必须停止测距。响应方设备将发送“停止测距响应”通知,表明其已成功停止使用所请求的测距技术进行测距。
如果 FHNA BLE GATT 通信通道在精准查找会话期间断开连接,但部分测距技术仍在测距,则响应方设备将实现超时机制,以确保不会无限期测距。具体细节取决于每个用例。
请注意,响应方设备不得假定操作顺序始终相同。例如,响应方设备必须能够连续处理多个测距功能请求操作,甚至能够直接处理测距配置操作,而无需先进行功能请求。
运维
表 1 显示了本文档定义的、精确定位所需的 FHNA 操作。每个子部分都定义了每项操作的 FHNA 消息,而其他数据字段内容则参考测距:带外消息序列和载荷规范。
表 1:操作
操作 | 数据 ID | 说明 |
---|---|---|
测距功能请求 | 0x0A | 由发起方设备发送到响应方设备的功能请求操作。此操作的数据内容将列出发起方希望从响应方设备了解的所有测距技术。 |
测距功能响应 | 0x0A | 这是对测距功能请求操作的通知响应。它包含有关发起者请求的每种受支持的测距技术的功能的信息。 |
产品阵容配置 | 0x0B | 测距配置操作包含发起方设备想要开始与响应方设备进行测距的测距技术配置。 |
测距配置响应 | 0x0B | 这是对测距配置操作的通知响应。它包含有关 Responder 设备是否已根据提供的配置成功开始使用所请求的测距技术进行测距的数据。 |
RFU | 0x0C | 具有此数据 ID 的操作未使用,预留以供将来使用。 |
停止测距 | 0x0D | 发起方设备发送的“停止测距”操作包含有关响应方设备必须停止使用哪些测距技术进行测距的信息。 |
停止测距响应 | 0x0D | 这是对停止测距操作的通知响应。它包含有关特定测距技术的停止操作是否成功的数据。 |
测距功能请求消息
表 2 定义了测距功能请求消息。
表 2:测距功能请求
八位字节 | 数据类型 | 说明 | 值 |
---|---|---|---|
0 | uint8 | 数据 ID | 0x0A - 测距功能请求操作 |
1 | uint8 | 数据长度 | 不定 |
2 | 字节数组 | 一次性身份验证密钥 | HMAC-SHA256(Account Key, Protocol major version number || the last nonce read from the characteristic || Data ID || Data length || Additional Data) 的前 8 个字节。 |
10 | 字节数组 | 其他数据 | 测距:带外消息序列和载荷规范中定义的测距功能请求消息(包括标头和载荷) |
测距功能响应消息
表 3 定义了测距功能响应消息。
表 3:测距功能响应
八位字节 | 数据类型 | 说明 | 值 |
---|---|---|---|
0 | uint8 | 数据 ID | 0x0A:测距功能响应 |
1 | uint8 | 数据长度 | 不定 |
2 | 字节数组 | 一次性身份验证密钥 | HMAC-SHA256(Account Key, Protocol major version number || the last nonce read from the characteristic || Data ID || Data length || Additional Data || 0x01) 的前 8 个字节。 |
10 | 字节数组 | 其他数据 | 测距功能响应消息,如测距:带外消息序列和载荷规范(包括标头和载荷)中所定义 |
测距配置消息
表 4 定义了测距配置消息。
表 4:测距配置
八位字节 | 数据类型 | 说明 | 值 |
---|---|---|---|
0 | uint8 | 数据 ID | 0x0B - 设置测距配置 |
1 | uint8 | 数据长度 | 不定 |
2 | 字节数组 | 一次性身份验证密钥 | HMAC-SHA256(Account Key, Protocol major version number || the last nonce read from the characteristic || Data ID || Data length || Additional Data) 的前 8 个字节。 |
10 | 字节数组 | 其他数据 | 测距:带外消息序列和载荷规范中定义的测距配置消息(包括标头和载荷) |
测距配置响应消息
表 5 定义了测距配置响应消息。
表 5:测距配置响应
八位字节 | 数据类型 | 说明 | 值 |
---|---|---|---|
0 | uint8 | 数据 ID | 0x0B - 设置测距配置响应 |
1 | uint8 | 数据长度 | 不定 |
2 | 字节数组 | 一次性身份验证密钥 | HMAC-SHA256(Account Key, Protocol major version number || the last nonce read from the characteristic || Data ID || Data length || Additional Data || 0x01) 的前 8 个字节。 |
10 | 字节数组 | 其他数据 | 测距:带外消息序列和载荷规范中定义的测距配置响应消息(包括标头和载荷) |
停止测距消息
表 6 定义了停止测距消息。
表 6:停止测距
八位字节 | 数据类型 | 说明 | 值 |
---|---|---|---|
0 | uint8 | 数据 ID | 0x0D - 测距停止 |
1 | uint8 | 数据长度 | 不定 |
2 | 字节数组 | 一次性身份验证密钥 | HMAC-SHA256(Account Key, Protocol major version number || the last nonce read from the characteristic || Data ID || Data length) 的前 8 个字节。 |
10 | 字节数组 | 其他数据 | 停止测距消息,如测距:带外消息序列和载荷规范(包括标头和载荷)中所定义 |
停止测距响应消息
表 7 定义了停止测距响应消息。
表 7:停止测距响应
八位字节 | 数据类型 | 说明 | 值 |
---|---|---|---|
0 | uint8 | 数据 ID | 0x0D - 测距停止响应 |
1 | uint8 | 数据长度 | 不定 |
2 | 字节数组 | 一次性身份验证密钥 | HMAC-SHA256(Account Key, Protocol major version number || the last nonce read from the characteristic || Data ID || Data length || Additional Data || 0x01) 的前 8 个字节。 |
10 | 字节数组 | 其他数据 | 停止测距响应消息,如 Ranging: Out-of-band message sequence and payload 规范(包括标头和载荷)中所定义 |
恶意追踪防护
当不需要的跟踪保护模式激活时,如 FHNA 规范中所述,适用于跳过响铃消息的身份验证检查的相同流程也适用于本文档中为想要支持此功能的设备定义的所有精准查找消息。
根据 FHNA 规范:
如果提供方未预配为 FHNA 信标或验证失败,则返回未经身份验证的错误。不过,如果提供方启用了不需要的跟踪保护,并且触发不需要的跟踪保护的请求已开启跳过响铃身份验证标志,提供方应跳过该检查。身份验证数据仍应由 Seeker 提供,但可以设置为任意值。
测距技术具体信息
此部分包含特定于测距技术的详细信息。
超宽带 (UWB) 规格
UWB 特定详细信息。
精确定位级别
使用 UWB 作为测距技术的精准定位会话可以显示距离和方向信息。测距间隔至少需要 240 毫秒,最好为 96 毫秒,以便获得最佳引导效果。
配置 ID
为 UWB 交换的带外配置数据不包含 UWB 启动 UWB 测距会话所需的完整的一组可用可配置参数。所选配置 ID 会隐式选择某些形参。
每个配置 ID 都是一组预定义的 UWB 配置参数,这些参数已公开记录。 对于“精准查找”使用情形,响应方设备必须支持 config ID 6,并且可以选择性地支持 config ID 3。
UWB 启动器和响应器
对于“精准查找”使用情形,本文档中标记为“发起方”的设备将是 UWB 应答方,而本文档中标记为“应答方”的设备将是 UWB 发起方。这是因为 UWB 启动器设备比 UWB 应答器设备消耗的电量更少,而且在大多数情况下,应答器设备都是电池电量有限的外围设备。
这意味着,响应方设备需要在测距功能响应消息中指明其支持作为 UWB 发起方角色。
其他与 UWB 相关的参数
- 必须支持频道 9
- 为了获得最佳指导,建议使用 96 毫秒的测距间隔,否则必须支持 240 毫秒的测距间隔。
- 建议使用 1 毫秒的时隙时长以节省电池电量,但系统也支持 2 毫秒的时隙时长。
- UWB 芯片必须至少符合 FIRA v1.2 + P-STS 标准。
- BPRF 为强制性,HPRF 为建议性但可选。支持的模式或所选模式由支持的或所选的前导序列索引确定。
- 会话安全类型:P-STS
BLE 信道探测 (CS) 规范
BLE CS 特有的详细信息。
精确定位级别
使用 CS 作为测距技术的精确查找会话只会提供距离测量结果,目前不提供方向性信息。
设备之间所需的配对
如果设备未配对,则无法使用通道探测进行精确定位。发起方设备与响应方设备之间必须存在现有绑定。此规范未提供在设备之间创建绑定的方法。相反,用例的开发者需要负责在设备之间建立这种关联。
客服人员需要采取行动
与 UWB 不同的是,在 UWB 中,两个设备都需要显式调用 UWB 启动测距和停止测距 API;而在 CS 中,只有发起方设备需要通过调用蓝牙堆栈来启动 CS 测距,响应方设备上的其余初始化操作通过蓝牙 (BT) 带内进行。这意味着,在收到 CS 的测距配置消息或停止测距消息后,如果已启用 BT,响应方无需执行任何操作,只需回复测距配置响应消息通知即可。响应方设备可能会使用这些消息作为触发器来更新显示屏上的界面,或者无论是否有显示屏,都可以使用这些消息来提供有关设备状态的视觉反馈,例如闪烁设备 LED。
Wi-Fi NAN RTT
Wi-Fi NAN RTT 的具体详情。
精确定位级别
使用 Wi-Fi NAN RTT 作为测距技术的精准查找会话只会测量距离,目前不提供方向性信息。
BLE RSSI
BLE RSSI 具体详情。
精确定位级别
如果仅使用 BLE RSSI 作为测距技术,精准查找会话将无法获取距离或方向信息,因为 BLE RSSI 并非精确的测距技术。用户会看到指示设备靠近或设备远离的指导信息。