Bluetooth® Channel Sounding 技术概览

蓝牙®信道探测是一项新的安全精确测距功能,旨在提升蓝牙连接设备的便利性、安全性和保障性。该功能在BLE 6.0中使用了两种经过验证的测距方法:基于相位的测距(PBR)和往返时间(RTT)。

蓝牙®通道探测:技术概述 | 蓝牙®技术网站

通过:https://www.bluetooth.com/channel-sounding-tech-overview/ 技术概述

版本:

1.0

修订日期:

2024 年 7 月 9 日

作者:

马丁·伍利,蓝牙 SIG

1. 介绍

蓝牙®低能耗(LE)在全球范围内以提供无线数据传输和音频功能而闻名。这项技术因其在我们日益智能的手机中的应用而进入我们的口袋。它在我们的手腕上,出现在智能手表和健身追踪器中。它在我们的汽车中,允许免提控制和通信。它在我们的耳朵中,使个人音乐设备和通过新的蓝牙 LE 音频功能的广播源流式传输高质量音频成为可能,Auracast™广播音频

但多年来,蓝牙低能耗(Bluetooth LE)也已确立为一种普遍且可靠的技术,成为构建设备定位应用的基础。蓝牙低能耗可以用于检测和报告周围环境中另一个设备的存在,估计设备之间的距离,并计算可以找到另一个设备的方向。这些设备定位功能已被用于启用广泛的应用,包括数字钥匙、资产追踪、查找我的(Find My)和室内导航。

蓝牙技术在其 25 年的历史中不断改进。它走上了一条积极的演变道路,带来了系列显著的新特性和产品可以实现的改进。

对蓝牙核心规范的更新增加了一项名为蓝牙信道探测的新功能,该功能使得两个蓝牙设备之间能够进行安全的精确测距,这也是本文的主题。本文并不打算替代或作为蓝牙核心规范的替代品。

2. 背景

2.1 设备定位和蓝牙低能耗

蓝牙低能耗(Bluetooth LE)首次在 2010 年被规定。从那时起,可以识别出蓝牙低能耗作为定位服务技术演变中的一些关键事件。

2.1.1 蓝牙® 找我

在蓝牙核心规范首次包含蓝牙低能耗(Bluetooth LE)的同一年,首个正式的与位置相关的蓝牙低能耗配置文件规范发布了。这就是“寻找我”配置文件。

查找我个人资料定义了一种标准的方法来寻找个人物品,也称为_查找我的_。一个设备承担查找我定位器的角色。这通常是智能手机。其他设备,用户可能有丢失历史的设备(带有蓝牙钥匙扣的钥匙是一个热门选择),与查找我定位器设备配对,并各自承担查找我目标的角色。

目标设备实现了一个名为即时警报服务的 GATT1 服务。

当用户需要帮助寻找丢失的设备时,他们在智能手机上运行一个应用程序。该应用程序通过扫描缺失设备广播的广告数据包来执行设备发现程序。在发现目标设备后,定位器与其连接。应用程序的用户界面(UI)指示这一操作已完成。用户通常会在用户界面上按下一个按钮。这会导致应用程序写入属于即时警报服务的警报级别特征。目标设备以某种合适的方式响应警报级别值的变化,可能发出响亮的蜂鸣声,闪烁的 LED 灯或两者兼而有之。此时,用户意识到他们的钥匙一直在他们的夹克口袋里,掉到了沙发的后面,或者在某个不太可预测的地方。无论如何,蓝牙技术拯救了这一切,用户和他们丢失的物品重聚。

Bluetooth® Find Me 是一个存在应用的例子。蓝牙 LE 用于确定丢失的设备在附近,但不提供其与定位器的方向或距离的指示。

2.1.2 信标和第一代距离估计

蓝牙信标利用蓝牙低能耗的广告功能。广告涉及广播小数据包,任何在范围内的设备都可以通过扫描接收。

在 2013 年,苹果发布了 iBeacon 格式的规范。这成为了信标设备广播的有效载荷内容的一个流行格式。iBeacon 消息中的数据包括一个名为 TX Power 的字段,该字段包含一个值,表示在距离信标一米的地方测量时可以预期的信号强度。正是 iBeacon 消息中 TX Power 字段的存在,以及在其他可比信标数据格式中,如谷歌的 Eddystone,预示着第一代蓝牙低能耗距离估计的到来。

这个早期版本的蓝牙距离估计涉及使用两个数据值和一些简单的物理原理,工作原理如下:

  • 信标消息中的 TX 功率字段提供了在已知距离(例如一米)处的参考功率水平。
  • 与每个接收到的信标消息相关的接收信号强度指示器(RSSI)量化了接收设备的信号强度。
  • 物理学定义了信号强度随离发射器距离增加而减弱的速率之间的理论关系。具体而言,接收器的信号强度与其距离发射器的平方成反比。
  • 随着我们离发射器越来越远,测量到的信号强度的降低被称为路径损耗或衰减。在 iBeacon 传输的情况下,路径损耗 = 发射功率 - 接收信号强度指示。
  • 因此,知道在固定距离下的参考功率水平、接收到的信标传输的测量 RSSI 以及距离与路径损耗之间的反平方关系,可以利用衰减来估计信标与接收器之间的距离。
Figure 1

图 1 – 路径损失和距离

能够像这样估算距离是一个相当大的突破,信标在零售、旅行和博物馆等各种应用中变得越来越受欢迎。

虽然信标非常适合某些需求,但基于 RSSI 和路径损耗的距离测量对于其他应用来说并不够准确。当需要位置数据而不仅仅是接近度时,缺乏发射器方向的指示也是一个限制。此外,各种专有信标类型,如 iBeacon,并未包含任何明确的安全保障。

2.1.3 蓝牙® 定位与到达角(AoA)和离开角(AoD)

在 2019 年,蓝牙核心规范的 5.1 版本包含了一项重大新功能,蓝牙方向查找。

蓝牙方向查找功能使应用能够通过蓝牙低能耗控制器进行的相位测量准确计算接收信号的方向。定义了两种方法。

在到达角(AoA)方法中,接收设备具有天线阵列,并且在不同天线上接收到的信号的测量显示出相位差,这是由于每个天线与发射设备中的单个天线之间的距离略有不同。

在离角(AoD)方法中,发射设备具有天线阵列。接收设备只有一个天线,但拥有远程发射设备中天线阵列的详细信息。这使得它能够根据在其单个天线上进行的相位测量进行类似的计算。

Figure 2
图 2 – 使用 AoA 和 AoD 进行方向查找

相位测量以同相和正交(IQ)样本的形式从蓝牙控制器传递到应用程序。IQ 样本由相位和幅度值的对组成,应用程序可以利用这些值计算发射器的位置方向。

Figure 3
图 3 - IQ 样本

2.1.4 蓝牙信道探测

新的蓝牙通道探测功能使得能够创建具有计算两个蓝牙设备之间距离能力的产品,其准确性显著优于使用 RSSI 和路径损耗第一代方法所能达到的水平。它以完全不同的方式工作,并包括多种安全保障措施,以降低各种风险。

预计蓝牙信道探测将有利于“查找我的”解决方案、数字钥匙产品以及更多蓝牙连接设备。

2.2 蓝牙信道探测简介

在讨论蓝牙低能耗中的蓝牙信道探测之前,本节将首先介绍该功能背后的基本理论。已经熟悉该主题的读者应跳过到第 3 节,蓝牙信道探测。

2.2.1 无线电波的基本特性

无线电是一种电磁辐射,物理学家通常用波的形式来描述它。无线电波具有各种基本特性,理解这些特性是很重要的。

2.2.1.1 振幅和波周期

无线电波的振幅对应于它携带的能量,或者用更常见的术语来说,就是信号强度。它在一个中心参考值上方和下方振荡。这种上下振荡定期且规律地重复。一次从峰值振幅上升到谷值,再回到起始参考值的过渡称为一个波周期。图 4 描绘了两个完整的波周期,振幅在垂直坐标上。第一个波周期的范围被突出显示。

Figure 4图 4 – 波动周期,垂直尺度为振幅

2.2.1.2 波长

一个波周期具有物理长度。波长与频率相关,在蓝牙技术的情况下,波长大约在 12.0 厘米到 12.5 厘米之间。

Figure 5图 5 – 波长

2.2.1.3 频率

无线电在真空中的传播速度是光速。每秒钟通过空间中固定点的完整波周期数量称为频率。频率以赫兹(Hz)为单位测量,其中 1 Hz 代表每秒一个波周期。蓝牙信号的工作频率要高得多,以千兆赫(GHz)为单位测量。

Figure 6图 6 – 频率

2.2.1.4 阶段

在单个波周期内的某些点通过称为相位的角度测量来表示。相位值的范围为 0 – 360 度或 0 – 2π弧度。图 7 通过在波周期的适当点上标记多个相位值(以弧度表示)来说明相位的概念。

Figure 7图 7 – 阶段

2.2.1.5 频率与波长之间的数学关系

频率 (f) 和波长 (λ) 彼此成反比。波长越短,频率越高,反之亦然。此外,这两个变量与光速 (c) 之间的关系由一组简单的公式定义,允许从已知的其他两个量计算出任一数量。光速是一个常数,值为 299792458 m/s。

公式

使用

根据已知频率和光速常数计算未知波长。

根据已知波长和光速常数计算未知频率。

使用频率值和相应波长计算光速。

表 1 - 频率和波长公式

2.2.2 距离测量方法

无线距离测量技术中最常用的两种方法是基于相位的测距(PBR)和往返时间测量(RTT)。本节将概述这两种方法背后的理论。

2.2.2.1 基于相位的测距 (PBR)

2.2.2.1.1 理论

很容易将距离可视化为信号波长的函数,具体来说,就是信号从发射器到接收器所需的波周期数。

Figure 8图 8 - 波长与波周期的距离

在图 8 中,插图左侧传输的信号明显距离接收器十个半波长。如果我们知道信号的频率,那么我们就知道波长。如果我们知道波长,那么知道波周期的数量,我们可以使用乘法来找到两个设备之间的距离。

如果传输频率为 2402 MHz,那么波长为 12.48095162 厘米。这个数字是通过将光速除以频率得出的。

然而,发射设备无法知道其天线与接收器天线之间的波周期数。因此,PBR 方法涉及一种技术,允许根据其他数据推断发射器和接收器之间的距离。它的工作原理如下。

我们将把希望计算距离测量的设备称为设备 A。另一个设备将是设备 B。

  1. 设备 A 以已知频率 f1 发射信号。设备 A 已知该信号的初始相位,为了说明,假设该信号以零弧度的相位发射。
  2. 设备 B 在其天线接收到 f1 信号并记录其相位,我们将其称为接收相位。
  3. 设备 B 然后通过在相同频率 f1 上发射,将接收到的信号回传给设备 A,并且关键的是确保该传输的初始相位与从设备 A 接收到的信号的接收相位完全相同。这导致返回信号在相位和频率上是设备 A 信号的延续。
  4. 设备 A 测量来自设备 B 的信号接收相位。我们将这个值称为 Pf1。

图 9 说明了频率为 f1 的信号交换。

图 9 – 使用频率 f1 的双向测距

设备 A 现在选择一个新的频率 f2,并重复这四个步骤。这四个步骤的第二次执行结果是设备 A 对从设备 B 接收到的信号进行的新相位测量,我们称之为 Pf2。

图 10 说明了频率为 f2 的信号交换。

图 10 – 使用频率 f2 的双向测距

设备 A 现在计算 f1 和 f2 的相位值之间的差,即计算 Pf2 - Pf1。凭借相位差和频率 f1 与 f2 之间的差异,现在可以使用以下公式计算距离:

2405 Channel Sounding Formulas 4

其中 c 是光速,(Pf2 – Pf1) 是相位差,(f2 – f1) 是频率间隔。

这种方法称为双向测距,其中第二个设备向原始设备发送信号,以便它可以进行相位测量。

现实世界可能会带来一些在本基本理论解释中未反映的挑战。我们将在本节后面遇到这些挑战。

2.2.2.1.2 示例

让我们尝试一个简单的示例来看看这个是如何运作的。我们将使用一个相当人工的案例,在这个案例中我们已经知道两个设备之间的距离,以便我们可以看到公式是如何正确得出相同的结果的。

图 11 显示了两个设备,设备 A 和设备 B,它们之间的距离正好是 1.248095162 米。设备 A 发射了频率为 2.402 MHz、波长为 12.48095162 厘米的信号。由于一个真正了不起的巧合,这两个设备之间的距离正好是这个波长的十倍。

Figure 9图 11 - 设备之间正好相隔十个 f1 波周期

由于设备 A 以零的初始相位发送此信号,并且由于设备 B 与波长的距离是一个整数倍,因此设备 B 的接收相位也是零。如图所示,设备 B 将信号传回设备 A,将初始相位设置为与其最初接收到的信号的接收相位相同的值,从而有效地实现了延续。

图 12 显示了设备 A 以频率 f2 传输的第二个信号。这次选择的频率高于 f1,值为 f2 = 2.432 MHz。设备 A 的初始相位再次为零。

Figure 10图 12 – 设备相距十个 f2 波周期左右

f2 的波长比 f1 的波长短,因为 f2 的频率更高。这导致设备 B 的接收相位非零。实际上,它是 0.784744210 弧度。当信号被设备 B 重新传输时,保持相同的初始相位并被设备 A 接收,它的相位将是 1.56948842 弧度。

在这种情况下,我们如何知道设备 B 和设备 A 的相位值?

在实际实现中,相位值将由接收设备测量。在这个例子中,我们已经知道设备之间的距离,并且只是展示主公式如何得出该距离估计,我们有幸能够使用以下公式从已知的距离和波长计算预期的相位值:

2405 Channel Sounding Formulas 5

其中 λ 是波长,r 是已知距离。

设备 A 现在拥有计算设备 B 距离所需的所有信息。频率差为 30 MHz,相位差为 1.56948842。将这些值代入 r 的公式,计算出的距离为 2.49 米,保留两位小数。但这是设备 A 到设备 B 再返回的往返距离,因此两个设备之间的实际距离是该数值的一半,即 1.24 米。这是预期的结果,展示了基于光速和已知的两个传输信号的相位和频率差异的 r 公式如何用于准确计算两个设备之间的距离。

然而,这里有一个复杂性,这在相位的公式和(2 * π)的模除中有所暗示。相位值随着距离的增加而变化,但它们是周期性的,这意味着当相位值达到(2 * π)弧度时,它会重置为零,并且相同的值开始重复。这可能导致在确定两个设备之间的距离时出现歧义,因为同一个相位差值可能暗示多个距离。这被称为距离歧义。

距离模糊出现的确切时间取决于频率分离。一般来说,距离模糊在较大的频率差异下会更早出现。幸运的是,可以通过将 PBR 与第二种距离测量方法——往返时延结合使用来解决这个问题。

2.2.2.2 往返时间 (RTT)

2.2.2.2.1 理论

使用往返时间计算两个设备之间距离的理论非常简单。无线电(RF)传输以光速传播,这是一个已知的常数。因此,如果我们能够计算传输在两个设备之间所需的时间,我们就可以计算出距离。我们所要做的就是将往返时间乘以光速。

例如,如果一个射频信号从设备 A 到设备 B 再返回到设备 A 需要 20 纳秒,那么简单地将光速乘以 20 纳秒将给我们一个总的双向距离,略低于六米,因此这两个设备之间的距离略低于三米。

双向距离 2r = c * 0.00000002

其中 c 是光速(299792458 米/秒),0.00000002 是双向飞行时间(ToF),单位为秒。这给我们带来了以下结果:

2r = 299792458 * 0.00000002
= 5.99584916

因此设备 A 和设备 B 之间的距离是

2.99792458 米

但是,虽然这个基本公式是正确的,但在蓝牙设备的上下文中使用它要复杂一些,目前所呈现的理论是不完整的。

形成和传输射频信号的过程需要时间,接收、处理和传输往返响应的过程也是如此。一个设备可能需要大约 200 微秒的时间来形成和传输一个数据包,并且考虑到无线电波在一个微秒内可以传播不到 300 米,这些看似短暂的时间段在距离测量的背景下可能具有重要意义。

图 13 显示了这一细分,并标记了时间线上的关键点。

2405 Channel Sounding Figure 13

图 13 – RTT 分解(不按比例 - 信号内容不具代表性)

瞬间

解释

ToDA

从设备 A 出发的时间。

这是设备 A 通过空气传输信号的时间。

ToAB

设备 B 的到达时间。

这是信号到达设备 B 天线的时间。

ToDB

从设备 B 出发的时间。

这是设备 B 通过无线传输的时间。

ToAA

设备 A 的到达时间。

这是设备 B 的信号在设备 A 的天线接收到的时间。

绿色虚线(· · · · · · · · · · · ·)表示在这段时间内两个信号都没有_在空中_。

往返时间(RTT)可以通过图 13 中所示的时间瞬间表示如下:

RTT = 2 * ToF (ToAA – ToDA) – (ToDB – ToAB)

为了让设备 A 计算 RTT,它需要知道设备 B 的周转时间(即 ToDB—ToAB)。理论上,有多种方法可以实现这一点。在实践中,最简单的解决方案是设备 A 和设备 B 事先达成固定的周转时间协议。设备 B 必须保证在处理完成后,正好在该周转时间到期时传输其响应。设备 A 随后使用该预先商定的值作为(ToDB—ToAB)。

2.2.2.3 现实世界的挑战

对于 PBR 和 RTT 距离测量方法所提出的理论足以让人对该主题有初步的了解,并且在纯理论的背景下是完整的。然而,在现实世界中,准确的距离测量要复杂得多。如果要通过在现实世界中使用的真实设备产生令人满意的结果,就必须解决几个挑战。

无线距离测量技术应解决的挑战类型示例包括:

  • 无线信号多径传播引起的复杂情况
  • 生成信号频率的准确性和稳定性
  • 内部时钟的稳定性以及时间戳的准确性和分辨率
  • 基于相位的测距中的距离模糊性
  • 安全

在本文的剩余部分,我们将学习蓝牙技术中的高精度距离测量,并了解该技术是如何设计以有效应对这些现实世界问题的。

3. 蓝牙®信道探测

3.1 概述

蓝牙信道探测提供了产品实现比以往更高精度距离测量的潜力。测量的准确性取决于环境条件以及应用层如何利用蓝牙信道探测功能。它还取决于实施选择,具体细节超出了蓝牙核心规范的范围,但可以提高用于计算的原始数据的质量。

蓝牙信道探测为应用提供了一套灵活的工具包,用于距离测量,支持多种不同的配置。规范中支持基于相位的测距(PBR)和往返时间(RTT)距离测量方法。在大多数情况下,预计 PBR 将作为主要和最准确的距离测量方法使用,而 RTT 将与之一起使用以提供额外的安全性。

PBR,作为蓝牙信道探测使用的,可以测量大约 150 米的距离,之后会出现距离模糊。通过在 PBR 的基础上使用 RTT,应用程序可以识别并消除距离模糊,从而测量更长的距离。

应用程序可能会对准确性、安全性、延迟和功耗等问题赋予不同的优先级。蓝牙通道探测功能的可配置性使应用程序能够控制或影响系统的许多关键能力和行为,从而使其操作专注于使用它的应用程序的正确优先级。

在本节中,我们将继续研究蓝牙信道探测功能及其依赖的核心蓝牙协议栈能力。

3.2 架构

3.2.1 设备角色

蓝牙信道探测功能定义了两个设备角色。第一个是发起者,第二个是反射者。

发起器是希望计算自身与另一个设备之间距离的设备。另一个设备是反射器。

发起者或反射者都可以启动蓝牙信道探测程序,具体细节将在本文后面介绍。

Figure 14图 14 - 角色

3.2.2 拓扑

蓝牙信道探测在一对一拓扑中进行,通信发生在一个充当发起者角色的设备和一个充当反射者角色的设备之间。

需要注意的是,蓝牙通道探测发起者角色可以由充当链路层 LE 中心角色的设备或 LE 外设承担。蓝牙通道探测反射器角色也是如此,可以由 LE 中心设备或 LE 外设设备承担。

3.2.3 天线阵列

使用蓝牙信道探测的设备可能包括天线阵列。这提供了一系列替代路径,用于交换用于基于相位的测距的蓝牙信道探测传输,并通过减少多路径传播的影响来提高距离测量的准确性。

3.2.4 应用程序

蓝牙信道探测要求应用层使用蓝牙控制器提供的数据计算距离。这些数据是在执行蓝牙信道探测程序期间由控制器获取的,是每个设备之间信号交换和低级测量的结果。数据通过 HCI 事件传递给应用层。

应用层还负责向蓝牙控制器提供配置选项和偏好,这些选项和偏好用于建立一个由两个设备上的应用程序支持和适合的蓝牙通道探测配置。

为了使两个设备能够参与一个系统,其中一个设备担任发起者角色,另一个设备担任反射者角色,两个设备都必须具有支持蓝牙通道探测功能的蓝牙低能耗控制器。

Figure 15 New图 15 – 蓝牙信道探测应用和蓝牙协议栈

3.2.5 数据传输架构

Figure 16图 16 - 蓝牙通用数据传输架构

蓝牙核心规范从多个角度定义了蓝牙技术的架构。在第一个角度中,定义了一种通用的数据传输架构。其在核心规范中的描述在此图 16 中重现。

根据蓝牙核心规范中的定义,图 16 中的术语描述如下:

  • L2CAP 是逻辑链路控制和适配协议。L2CAP 通道是两个设备之间在 L2CAP 层的逻辑连接,用于单个应用程序或更高层协议。
  • 逻辑链路是“用于向蓝牙系统的客户端提供独立数据传输服务的最低架构级别”。
  • 逻辑传输处理诸如传输和接收例程、流控制机制、确认协议和链路识别等问题。逻辑传输可以是同步的、异步的或等时的。
  • 物理链路是设备之间在链路层级建立的连接。链路层是蓝牙协议栈的层之一。
  • 物理通道定义了一个或多个通信设备对射频载波的占用模式。
  • 物理传输定义了一般适用的问题,例如用于通过无线信号作为载体传输数字数据的空中数据包结构和调制方案。

通用数据传输架构适用于蓝牙低能耗(Bluetooth LE)和蓝牙基本速率/增强数据速率(BR/EDR)。

定义了一系列特定类型的物理传输、物理通道、物理链接、逻辑传输和 L2CAP 通道。仅允许某些类型的组合。特定的数据传输架构组件类型和允许的组合在蓝牙核心规范中定义,以支持不同的应用类型。它们在拓扑、传输时序模式、可靠性、功耗和射频通道使用等方面有所不同。

图 17 显示了数据传输架构的一个子集。蓝色突出显示的是为通道探测定义的新物理通道类型和新物理链接类型。

Figure 17

图 17 - CS 和数据传输架构

没有与 LE 通道声测物理链路关联的逻辑传输类型或逻辑链路类型。

3.2.6 蓝牙低能耗协议栈中的信道探测

定义蓝牙低能耗(Bluetooth LE)更全面的方式是从完整的协议栈及其层次来考虑。蓝牙核心规范的大部分内容致力于定义每一层。图 18 描绘了蓝牙低能耗栈。

Figure 18图 18 - 蓝牙低能耗协议栈

蓝牙低能耗堆栈每一层的职责总结包含在表 2 中。

主要职责

通用接入配置文件 (GAP)

定义在非连接状态下可使用的操作模式和程序,例如如何使用广告进行无连接通信和设备发现。

定义安全级别和一些用户界面标准。

通用属性配置文件 (GATT)

定义高层数据类型,称为服务、特征和描述符,基于属性表中的基本属性。

属性协议 (ATT)

一种用于发现和使用服务器中以称为属性表的逻辑数据结构保存的数据的协议。

安全管理协议 (SMP)

在配对等安全程序执行期间使用的协议。

逻辑链路控制和适配协议 (L2CAP)

通过射频连接提供数据通道复用服务、大型 SDU 的分段和重组,以及增强的错误检测和重传功能。

主控制器接口 (HCI)

提供主机组件与控制器之间命令和数据的双向通信接口。

等时适配层 (ISOAL)

允许使用等时通道的设备使用不同的帧持续时间。

链路层

定义空中接口数据包格式、比特流处理程序(如错误检查)、状态机和空中通信及链路控制的协议。

定义了几种使用底层无线电进行无连接、面向连接和等时通信的不同方式,称为逻辑传输。

物理层

定义与无线电(RF)使用相关的蓝牙技术的所有方面,包括调制方案、频段、信道使用、发射器和接收器特性。

定义了三种物理层参数组合,称为 LE 1M、LE 2M 和 LE 2M 2BT PHY。LE 2M 2BT 首次在蓝牙核心规范的 6.0 版本中定义,仅可与蓝牙信道探测一起使用。有关 LE 2M 2BT PHY 的更多详细信息,请参见3.11 LE 2M 2BT PHY部分。

定义了进一步的 PHY,LE 编码。尽管名称如此,LE 编码使用与 LE 1M 相同的物理层参数,但在链路层应用前向错误纠正编码和模式映射。

表 2 - 蓝牙低能耗协议栈各层的主要职责和特征总结

蓝牙核心规范的物理层、链路层、主控制器接口和通用访问配置文件部分都受到蓝牙信道探测引入的影响。4. 蓝牙核心规范变更摘要部分对此进行了进一步说明。

还引入了专门为蓝牙信道探测设计的新安全功能。第3.13 节 安全专门讨论蓝牙信道探测安全性的话题。

3.3 蓝牙信道探测控制程序

在开始蓝牙信道探测之前,链接层 LE 中央角色的设备必须连接到链接层 LE 外设角色的设备。然后在建立的 LE-ACL 连接上启动安全性,以便为在准备和启动蓝牙信道探测的多个过程中交换各种链接层协议数据单元(PDU)提供安全传输。

准备和启动蓝牙信道探测的主要程序是:

  1. 安全启动
  2. 能力交换
  3. 配置
  4. 开始

并非所有这些程序都是强制性的,这取决于一些问题,例如两个设备是否之前交换过可能已被缓存的信息。图 19 中显示了可能的程序序列和相关的 PDU。

Figure 19图 19 - 可能的 CS 启动程序序列

对启动蓝牙信道探测时通常涉及的四个关键程序进行更深入的检查。

3.3.1 蓝牙信道探测安全启动

蓝牙信道探测具有其独特的安全能力,这些能力与执行初始化程序的 LE-ACL 连接相关的安全能力不同。蓝牙信道探测启动程序允许两个设备安全地交换参数,这些参数随后用于蓝牙信道探测安全功能。

蓝牙信道探测安全启动程序从 LE 中央设备生成三个随机数开始,并将它们发送到 LE 外设设备的 LL_CS_SEC_REQ PDU 中。LE 外设设备生成三个自己的随机数,遵循与中央设备的随机数相同的规则,并将它们通过 LL_CS_SEC_RSP PDU 发送回中央设备。

每个设备生成的随机数在表 3 中命名和描述。

名字

描述

长度(位)

CS_IV_C

中央生成的初始化向量。

64

CS_IN_C

中央生成的实例化随机数。

32

CS_PV_C

中央生成的个性化向量。

64

CS_IV_P

由外设生成的初始化向量。

64

CS_IN_P

外围生成的实例化随机数。

32

CS_PV_P

由外设生成的个性化向量。

64

表 3 – CS 安全参数

当两个设备都拥有两组蓝牙信道探测安全参数时,每对中央/外设的值由各自的链路层连接。这导致两个设备在三个蓝牙信道探测安全参数 CS_IV、CS_IN 和 CS_PV 上拥有相同的值。

有关这些参数使用的更多信息,请参见3.13 安全性部分。

3.3.2 蓝牙信道探测能力交换

两个设备的蓝牙信道探测能力可能会有显著差异,为了在开始之前达成一个相互支持的配置,这两个设备必须各自掌握关于对方设备能力的信息。

能力交换是通过一个设备在 LL_CS_CAPABILITIES_REQ PDU 中发送其详细信息,另一个设备在 LL_CS_CAPABILITIES_RSP PDU 中响应其详细信息来实现的。设备可以缓存之前接收到的能力数据,因此可以选择不与另一个设备交换能力。然而,任一设备都可以发起此过程。

能力可能有所不同的示例包括 PHY 支持、RTT 精度、支持的蓝牙信道探测模式、攻击检测支持以及支持的最大天线路径数量。蓝牙核心规范提供了 LL_CS_CAPABILITIES_REQ PDU 和 LL_CS_CAPABILITIES_RSP PDU 的完整细节。

3.3.3 蓝牙信道探测配置

该过程涉及 LL_CS_CONFIG_REQ 和 LL_CS_CONFIG_RSP PDU 的交换。实质上,利用先前交换的能力,该过程允许设备选择将要使用的特定配置。

可以维护多个配置参数集。每个这样的配置由主机分配一个标识符。该标识符在这对设备使用的标识符中必须是唯一的,并且可以在链路层程序中用于引用给定的参数集。

设备上用于传输 LL_CS_CONFIG_REQ PDU 的应用程序能够选择它想要承担的发起者或反射者角色。另一个设备以 LL_CS_CONFIG_RSP 响应,并必须承担另一个角色。

3.3.4 模式-0 FAE 表请求

分数频率偏移激励误差(FAE)是生成频率与预期或请求频率之间差异的度量,以百万分之一(ppm)表示。所有设备在这方面都有一定程度的不准确性,通常,其大小会根据所使用的射频通道而有所不同。

为了实现尽可能准确的距离测量结果,支持蓝牙通道探测的设备可能会有一个称为模式 0 FAE 表的数据表。该表包含每个通道的 FAE 值,并在制造过程中设置。模式 0 的含义将在 3.5.3 步骤模式中阐明。

模式 0 FAE 表请求程序允许发起者请求反射器的模式 0 FAE 表。这涉及到发起者发送一个 LL_CS_FAE_REQ PDU,反射器则回复一个包含其 FAE 表的 LL_CS_FAE_RSP PDU。

一旦获得,FAE 表可以存储以便将来与相同的反射器一起使用,这样对于给定的设备对,此过程只需执行一次。

3.3.5 蓝牙信道探测开始

当蓝牙信道探测安全已启动时,设备掌握彼此的能力信息,发起者拥有反射器的模式 0 FAE 表(如果有的话),并且设备已就合适的配置达成一致,则可以启动信道探测开始程序。这是通过 LL_CS_REQ、LL_CS_RSP 和 LL_CS_IND PDU 完成的。

LL_CS_REQ 和 LL_CS_RSP PDU 包含来自每个设备的提议时间和结构参数。这些参数决定了时间的划分方式以及在蓝牙信道探测期间如何使用时间。在接收到来自外设的 LL_CS_REQ 或 LL_CS_RSP PDU 后,中央角色的设备会发送 LL_CS_IND PDU。LL_CS_IND 表示蓝牙信道探测现在应该开始,并包含基于先前 PDU 交换中包含的提议,两个设备都可以接受的参数值。

3.3.6 蓝牙信道探测

蓝牙信道探测程序在蓝牙信道探测启动程序完成后开始。这是两个设备交换射频信号以进行测量的机制,这些测量可以被应用程序用于距离计算。此过程的工作原理将在本文的后续部分进行探讨。

3.4 事件、子事件和步骤

3.4.1 LE-ACL 连接和时间分配

在 ACL 连接中,数据包可以在连接事件期间传输。连接事件的时机基于该 ACL 连接的连接间隔参数的值。在连接事件期间,中央设备和外设轮流传输数据包,中央设备首先传输,外设进行响应。根据其他连接参数,外设可能仅被允许响应部分数据包,而中央设备可能仅被允许在部分事件期间传输。

在每个连接事件中,双方传输的数据包的大小和数量可能会有所不同。

3.3 蓝牙信道探测控制程序中描述的蓝牙信道探测的初始化过程中使用 LE-ACL 连接。

Figure 20图 20 - LE-ACL 连接中的连接事件和间隔

3.4.2 时间划分

3.4.2.1 结构

蓝牙信道探测是在一系列程序中进行的。每个程序由多个 CS 事件组成,每个 CS 事件又进一步划分为 CS 子事件。在这个分层方案中,时间的最终细分是 CS 步骤。在步骤中,数据包或音调被传输和接收。图 21 展示了通过一个示例进行时间划分的结构方案。

Figure 21

图 21 - 示例配置中蓝牙信道探测程序的结构

3.5 CS Steps 解释了 CS Steps 期间发生的活动的更多信息。

有多个参数可以控制蓝牙信道探测程序的结构方面,特别是关于不同层次元素之间关系的基数。一些关键的可配置变量如表 4 所示。

可配置变量

范围/值

描述

CS 程序重复次数

0 到 65535

在终止蓝牙信道探测之前要执行的蓝牙信道探测(CS)程序重复次数。值为 0 是一个特殊值,表示 CS 程序应运行直到通过主机可以调用的蓝牙信道探测程序重复终止程序终止。

每个事件的子事件数量

1 到 16

与同一 ACL 事件相关联的子事件数量。

子事件间隔

0 或在 625 微秒到 40959.375 毫秒的范围内。

同一 CS 事件中,CS 子事件开始与下一个 CS 子事件开始之间的时间间隔。

0 表示没有分成子事件。

可配置变量

范围/值

描述

每个子事件的持续时间

变量

每个子事件的持续时间。

每个子事件的步骤数

2 到 160

从配置的范围中随机选择。

每个程序最多有 256 个步骤。

表 4 - 示例蓝牙信道探测配置参数

3.4.2.2 定时

程序、事件、子事件和步骤的时机、持续时间和调度由多个参数控制,这些参数在蓝牙信道探测配置和蓝牙信道探测开始程序中进行配置。

所有程序、事件、子事件和步骤的开始时间都直接或间接地锚定在基础 LE ACL 连接中选择的连接事件上,通过该连接事件执行了启动蓝牙信道探测的链路层程序。在第一次蓝牙信道探测程序实例中,其第一个事件和子事件同时开始,计划在与选定连接事件锚点的偏移量处发生。第一个步骤在第一个子事件开始的偏移量处发生,称为 T_FCS。T_FCS 的值范围为 15 微秒到 150 微秒,覆盖的周期用于通过跳频改变频率。3.9 RF 通道和通道选择提供了更多关于此主题的信息。

程序和事件以间隔发生,其值以 ACL 连接间隔的数量表示。图 22 显示了一个示例,其中程序间隔的值为 4,事件间隔的值为 2。如图所示,这导致每第 4 个 ACL 连接事件开始一个新的程序间隔,每第 2 个连接事件开始一个事件间隔。程序及其事件实际上在各自的间隔内相对于相关连接事件锚点以偏移量开始。偏移量的值以微秒表示。

Figure 22图 22 - 程序和事件调度,程序间隔 = 4,事件间隔 = 2

每个事件中的第一个子事件与事件同时开始,偏移量来自相关的 ACL 连接事件。每个事件的子事件数量是一个配置参数,子事件在每个子事件间隔内发生一次,如图 23 所示。

Figure 23图 23 - CS 事件调度中 CS 子事件的示例

每个子事件至少包括两个步骤。这可能因子事件而异,具体取决于应用程序如何使用通道声学。步骤的持续时间也可能不同,同样取决于配置。步骤的调度以及分配给它们的射频传输和接收时隙受严格的时间规则的约束,更多细节可以在蓝牙核心规范中找到。

3.5 蓝牙信道探测步骤

3.5.1 关于步骤

图 21 显示了蓝牙信道探测程序的结构,包括事件、子事件和步骤。在步骤中,发起者和接收者之间会进行射频信号的交换。根据应用层选择使用的信道探测方法(PBR 和/或 RTT),细节会有所不同。

一般来说,步骤要么与校准有关,要么与获取可以被距离测量算法的应用层使用的低级测量值有关。

3.5.2 数据包和音调

当 RTT 在使用时,发起者和反射者之间会交换一种称为 CS_Sync 的类型的数据包。

A CS_SYNC packet has the following structure:

Figure 24图 24 - CS_Sync 数据包

在 CS_Sync 数据包末尾包含声音序列或随机序列是可选的。这些术语将在 3.10 RTT 选项和准确性中解释。

CS_Sync 数据包可以使用 LE 1M、LE 2M 或 LE 2M 2BT PHY 进行传输。与其他蓝牙 LE 数据包一样,使用 GFSK4 调制方案。

当 PBR 在使用时,称为 CS 音调的信号在发起者和反射者之间交换。这些信号使用幅度键控(ASK)来创建一个在指定时间段内频率固定的符号。

3.5.3 步骤模式

步骤具有相关的模式,决定了步骤的目标和其中进行的活动类型。定义了四种模式,分别称为模式 0、模式 1、模式 2 和模式 3。

3.5.3.1 模式-0

模式 0 与校准有关。所有设备都会表现出一定程度的时钟漂移和频率生成不准确。这是 RTT 和 PBR 距离测量方法的一个问题。

模式 0 步骤的目的是允许发起者测量反射器传输的信号频率与发射器生成的信号频率之间的差异。

发起者在选定的频道和频率上发送一个 CS_Sync 数据包。反射器回复一个 CS_Sync 数据包和一个 CS 音调。两者都需要在与从发起者接收到的信号相同的频率上进行传输。

CS_Sync 数据包为发起者提供了一个前导,用于调整接收器并设置其增益。CS 音调用作测量频率偏移的基础,如下所述。

在接收到来自反射器的响应信号后,发起者计算一个称为分数频率偏移(FFO)的值。FFO 的计算涉及从反射器接收到的音调频率和反射器的模式 0 FAE 表(见3.3.4 模式 0 FAE 表请求)。

FFO 随后用于计算,以补偿两个设备之间的差异并提高结果的准确性。

图 25 显示了发起者发送 CS_Sync 数据包,随后反射器响应发送 CS_Sync 和 CS 音调。各种时间槽的持续时间由符号名称表示,具有以下含义:

T_SY

同步序列的时间。持续时间取决于 CS_Sync 数据包的长度和使用的物理层。

T_RD

传输降幅时间。这个时间是 5 微秒,用于发射器从射频通道中移除能量。

T_IP1

在发起者传输结束和反射器传输开始之间的插曲时间。持续时间在 10 微秒到 145 微秒之间,具体由能力交换程序确定。

T_GD

保护时间。始终为 10 微秒。

T_FM

频率测量的时间。步进模式-0 的持续时间始终为 80 微秒。

表 5 – 时间段参数

Figure 25图 25 - 模式 0 传输和时间槽

对模式 0 步骤的支持是强制性的。

3.5.3.2 模式-1

在模式 1 步骤中,从发起者发送到反射者的 CS_Sync 数据包的往返时间(RTT)被计算。

在发送初始 CS_Sync 数据包时,发起者记录一个时间戳,称为出发时间(ToD)。发起者在接收到反射器发送回的 CS_Sync 数据包时记录第二个时间戳,这被称为到达时间(ToA)。

图 26 显示了发起者对 CS_Sync 数据包的模式 1 传输,随后反射器响应发送的 CS_Sync。各种时间槽的持续时间由符号名称表示,这些名称在表 5 中进行了描述。

Figure 26图 26 - 模式 1 传输和时间槽

插曲期 T_IP1 是一个已知的固定长度,足以让反射器准备并传输其数据包。在交换的这一部分使用预先商定的固定时间段意味着发起者知道接收方的周转时间,并可以在其 RTT 计算中使用这一点。

定义了几种用于 ToD 和 ToA 时间戳的方法。不同的方法选择提供了不同程度的准确性。替代方法在 3.10 RTT 选项和准确性中进行了说明。

对模式 1 步骤的支持是强制性的。

3.5.3.3 模式-2

模式 2 步骤的目的是支持基于相位的测距(PBR)。

模式 2 步骤开始时,发起者在选定的频道上通过每个可用的天线路径发送一个 CS 音调。在降幅时间和间隔期之后,反射器以 CS 音调回复,选择与从发起者接收到的音调相同的频率,并通过其每个天线路径发送。图 27 说明了这一交换。时间槽持续时间涉及表 5 中描述的术语以及此处表 6 中定义的附加术语。

T_SW

天线切换保留的时间段。

T_PM

相位测量音的传输时间。

T_IP2

CS 音调之间的插曲时间。

N_AP

天线路径数量。

表 6 – 附加步骤模式-2 时间参数

Figure 27图 27 - 模式 2 传输和时间槽

发起器在每个天线路径上测量在时间段 T_PM 内从反射器接收到的 CS 音调的相位。使用在模式 0 步骤中计算的补偿值进行调整。相位测量结果以 IQ 样本数组的形式通过 HCI 事件传递给应用层。

需要注意的是,CS 音调传输的总持续时间的表达式包括术语_N_AP + 1_。这是因为一个额外的时间段称为 CS 音调扩展时隙,跟在为每个天线路径分配的 T_PM 持续时间时隙之后。出于安全原因(见 3.12 安全),该时隙的传输使用是随机的,但在使用时,CS 音调是通过在紧接着的 T_PM 时隙中使用的相同天线进行传输的。

对模式 2 步骤的支持是强制性的。

3.5.3.4 模式-3

模式 3 步骤支持通过 CS_Sync 数据包和 CS 音调的组合交换进行 RTT 计算和 PBR。

图 28 – 模式 3 传输和时间槽

对模式 3 的支持不是强制性的。希望结合 PBR 和 RTT 的应用程序,如果通过能力交换程序发现发起者和反射者都不支持模式 3,可以改为使用结合模式 2 和模式 1 步骤的模式序列。有关蓝牙信道探测此功能的更多信息,请参见 3.8 模式序列。

模式-3 步骤包括一个扩展插槽,正如模式-2 步骤中所描述的那样。

3.6 建立相位差

在前面的关于模式 0、模式 1、模式 2 和模式 3 步骤的部分中,重点是每种类型的单个步骤中时间如何划分和使用的细节。但距离计算需要多次交换,或者是为了提高计算距离的准确性,或者是因为所使用的方法要求这样。根据定义,PBR 至少需要两个交换。

为了能够测量相位差,需要有多个传输信号,并且必须涉及多个频率。单个步骤涉及在单个选定的通道和频率上交换一个 CS 音调。因此,很明显,PBR 方法需要执行至少两个支持 PBR 方法的步骤。在蓝牙通道探测程序中的步骤序列及其重复和模式变化的模式是 3.8 模式序列的主题。需要注意的是,通常情况下,使用相应更大数量的 RF 通道进行更多的 CS 音调交换将为应用程序提供更多数据,并有机会产生更准确的距离测量。然而,更多的交换将需要更多的时间来执行。

3.7 天线切换

如 3.2.3 天线阵列中所述,设备可能包括多个天线,用于相位基测距交换期间。设备在 PBR 交换(即模式 2 或模式 3 步骤)期间可使用的天线最大数量为四个。给定的一对天线配置,一个属于发起者,一个属于反射者,提供了两个设备之间的多个天线路径。

根据蓝牙核心规范,共定义了八种天线排列。与核心规范中的类似表格相对应,表 7 列出了这些配置。表格后面的数字显示了几个示例。

天线配置索引 (ACI)

设备 A 多根天线

设备 B 的天线数量

天线路径数量 (N_AP)

0

1

1

1

1

2

1

2

2

3

1

3

3

4

1

4

4

1

2

2

5

1

3

3

6

1

4

4

7

2

2

4

表 7 - 天线配置

图 29 – 1:1 天线配置(ACI=0,N_AP=1)

图 30 – 1:2 天线配置(ACI=4,N_AP=2)

图 31 – 3:1 天线配置(ACI=2,N_AP=3)

图 32 – 2:2 天线配置(ACI=7,N_AP=4)

天线切换发生在模式 2 步骤(PBR)和每个模式 3 步骤的 PBR 相关部分。具体来说,在发送 CS 音调时,可以根据发射设备的天线配置应用天线切换。模式 2 和模式 3 步骤中 CS 音调传输时间槽的持续时间计算考虑了天线切换和多个天线路径:

(T_SW+T_PM)*(N_AP+1)

→ T_SW 提供天线切换所需的时间,其值为 0、2、4 或 10 微秒。

→ T_PM 是 CS 音调传输的时间。

→ N_AP 是天线路径的数量。+1 项是为了允许扩展插槽。

3.8 模式排序

3.8.1 模式序列概述

蓝牙信道探测程序始终涉及执行多个步骤的序列和至少两种模式的混合。蓝牙核心规范定义了模式组合和排序规则,本节将探讨其中的关键方面。

蓝牙信道探测应用在获得来自蓝牙控制器的数据时,能够通过更多的包和音调交换产生更高质量、更准确的距离测量。

3.8.2 模式组合

在蓝牙信道探测过程中,总是涉及至少两种不同模式类型的步骤。第一步是用于频率偏移测量的模式 0 步骤,第二步必须是其他任何一种模式。但也可以使用两种非模式 0 模式与强制的模式 0 类型的组合。在所有情况下,主要的非模式 0 模式称为主模式(Main_Mode)。如果有的话,次要的非模式 0 模式称为子模式(Sub_Mode)。表 8 摘自蓝牙核心规范,列出了六种允许的非模式 0 模式组合。

Main_Mode

Sub_Mode

模式-1

模式-2

模式-3

模式-2

模式-1

模式-2

模式-3

Mode-3

模式-2

表 8 - 允许的非模式 0 模式组合

3.8.3 模式序列配置和子模式插入

应用程序能够使用 HCI 命令配置步进模式序列。这发生在蓝牙信道探测配置和启动程序期间。设备之间可能请求和达成一致的关键参数包括表 9 中所示的参数。

HCI 参数

目的

Mode_0_Steps

定义在每个 CS 子事件开始时要执行的连续模式 0 步骤的数量。允许的值为 1、2 或 3。

Main_Mode_Type

指示将作为主要模式的模式(1、2 或 3)。

Sub_Mode_Type

指示将成为子模式的模式(1、2 或 3)。

Min_Main_Mode_Steps

确定在子模式步骤之前必须始终执行的主模式步骤的最小数量。

Max_Main_Mode_Steps

确定在子模式步骤之前必须始终执行的主模式步骤的最大数量。

表 9 – 模式序列控制参数

通过使用这些参数,应用程序可以指定将在序列中发生的步骤模式。

一般来说,步进模式序列遵循以下模式:

  1. 一个或多个模式 0 步骤开始子事件
  2. 接下来是一系列 n 个主要模式步骤,其中 n 是随机选择的,范围在 Min_Main_Mode_Steps 到 Max_Main_Mode_Steps 之间(包括这两个值)
  3. 由于蓝牙核心规范称为子模式插入的过程,单个子模式步骤跟随 n 个主模式步骤的序列

步骤模式序列与子事件边界没有直接关联,除了一个一般规则,即子事件必须始终以一个或多个模式 0 步骤开始。完整序列可以跨越多个子事件。

图 33 显示了一些模式序列参数影响的简单示例。

Figure 32图 33 - 步骤模式序列示例

子事件 1 以两个连续的模式 0 步骤开始。所有子事件至少以一个模式 0 步骤开始,在这个例子中,Mode_0_Steps 参数的值为 2。

接下来,我们有一系列三个模式 2 步骤。它们是模式 2 步骤,因为主模式类型为 2。序列化的主模式步骤数量是随机选择的,最小主模式步骤和最大主模式步骤作为上下限。在这种情况下,随机选择的值是三个。

在三个主要模式步骤之后,由于 Sub_Mode_Type 的值为 1,并且所需的主要模式步骤已完成,因此包含一个类型为模式-1 的单个子模式步骤。

在子事件中还有足够的时间(其持续时间在 CS 启动过程中通过 Subevent_Len 参数指定)可以包含一个步骤。前一个步骤是子模式步骤,因此主模式/子模式序列再次开始,但这次随机选择两个主模式步骤作为必需计数。子事件 1 中的最后一步是模式-2 的主模式步骤,它开始了新的序列。

子事件 2 以两个模式 0 步骤开始。上一个子事件中启动的主要模式序列随后继续进行一个主要模式步骤,完成所需的两个步骤计数。这个序列以一个子模式步骤完成。

再次,一个新的主模式/子模式序列开始,这次随机选择了五个主模式步骤。三个步骤在当前子事件结束之前包含在内。子事件三以这个示例的两个模式 0 步骤开始,然后是所需的五个步骤中的另外两个主模式步骤,最后是一个子模式步骤。

该模式继续,每次需要新序列时随机选择主要模式步骤的数量,直到完成程序指定的子事件数量。

3.8.4 主模式重复

还有另一个可以被应用程序使用的模式序列参数。Main_Mode_Repetition 指定从上一个子事件到当前子事件要重复的最近主模式步骤的数量。

当主模式重复适用时,当前子事件中重复的步骤使用与前一个子事件中相应步骤相同的通道索引。这确保了重复步骤的传输具有相同的预期频率。然而,重复传输的其他方面,特别是与安全性相关的方面,在每一步中都是重新生成的。请注意,在相同频率上重复主模式步骤的目的是解决可能的频率漂移以及多普勒效应。

主模式重复为应用程序提供了关联某些交换属性的机会,并可能使跟踪移动设备的速度变得更容易。

由于主模式重复而纳入模式序列的步骤不计入在3.8.3 模式序列配置和子模式插入中描述的子模式插入过程。

3.8.5 应用程序和模式排序考虑事项

能够通过子模式插入和主模式重复来配置模式组合和控制步进模式序列,使应用程序在蓝牙信道探测过程中拥有很大的控制权。应用程序可能有多种目标,以寻求从这种灵活性中受益。

PBR 是两种距离测量方法中最准确的一种,同时使用 RTT 为系统增加了相当大的安全性。它还允许处理使用 PBR 方法可能出现的距离模糊性。

步骤模式-3 在单一模式类型中同时支持这两种方法,但对模式-3 的支持是可选的。因此,在能力交换过程中发现模式-3 不可用的设备,必须混合模式-1(RTT)和模式-2(PBR)步骤。这可以通过选择模式-2 作为主模式,模式-1 作为子模式来实现。

另一个应用考虑因素是延迟。每次信号交换都需要时间。根据天线路径的数量,模式 1 的 RTT 交换有时比模式 2 的 PBR 交换花费更长时间。鉴于 RTT 的作用是通过使整体蓝牙信道探测过程更安全来补充 PBR,因此需要将延迟保持在某个阈值以下的应用可能会选择在蓝牙信道探测过程中包含较低比例的 RTT 交换。这可以通过选择模式 2(PBR)作为主要模式,模式 1(RTT)作为子模式,并将 Min_Main_Mode_Steps 和 Max_Main_Mode_Steps 参数设置为合适的值,以便展现所需的主模式与子模式步骤的最小比例。

在两台设备都支持模式 3 的情况下,延迟和 PBR 与 RTT 交换的比例仍然是应用需要考虑的问题。模式 3 中的所有交换都以相等的比例包含 PBR 相关的 CS 音调和 RTT 相关的 CS_Sync 数据包。这对于某些应用来说可能被认为是次优的。

另一方面,如果得到支持,模式 3 在与其他模式一起使用时可以提供优势。如果应用程序需要一定数量的相位测量和一定比例的 RTT 测量,那么可以通过结合模式 2 和模式 3 来实现,而不是模式 2 和模式 1,从而减少步骤。

图 34 显示了使用模式 2 的主模式和模式 1 的子模式实现的 3:1 PBR 与 RTT 测量比。在这个例子中,9 个 PBR 测量和 3 个 RTT 测量通过一系列 3 个子事件交付。

Figure 33图 34 - 使用模式 2 和模式 1 的 3:1 PBR 与 RTT 比率

图 35 显示了在主模式为模式 2 但这次子模式为模式 3 的情况下,在两个子事件中交付的 PBR 和 RTT 测量的相同数量和比例。请注意,这两个插图都不是按比例绘制的,可能无法反映实际的空中时间。假设子事件的长度足以容纳两个插图中所示的步骤,并且只涉及一条天线路径,则两个设备之间的步骤和交换数量是正确的,这些插图应有助于解释这两种看似相似的配置之间的潜在差异。

Figure 34图 35 - 使用模式 2 和模式 3 的 3:1 PBR 与 RTT 比率

3.9 RF 通道和通道选择

3.9.1 蓝牙信道探测信道映射

通常,蓝牙低能耗将 2.4 GHz ISM 频段划分为 40 个频道,每个频道宽 2 MHz。然而,使用蓝牙频道探测时情况并非如此。

为了蓝牙信道探测的目的,定义了 72 个信道,每个信道宽度为 1 MHz,并具有唯一的信道索引值。这些信道的排列确保避免了 LE 主要广告信道。

1 MHz 的信道宽度而不是通常的 2 MHz,确保使用相邻信道的 PBR 信号之间的频率间隔,使得距离模糊性直到大约 150 米才会出现。相比之下,频率间隔为 2 MHz 的信号在 PBR 计算中大约在 75 米时会产生距离模糊性。

从蓝牙核心规范中复制,表 10 显示了用于蓝牙信道探测的信道索引值及其相关的射频中心频率。第三列指示某个信道是否可以用于蓝牙信道探测交换。

CS 频道索引

射频中心频率

允许

1

2402 MHz

2

2403 MHz

3

2404 MHz

22

2424 MHz

23

2425 MHz

24

2426 MHz

25

2427 MHz

26

2428 MHz

76

2478 MHz

77

2479 MHz

78

2480 MHz

表 10 - 蓝牙信道测量信道索引和射频物理信道

3.9.2 通道过滤

维护一个通道索引过滤位图。这是一个为蓝牙通道探测定义的通道索引列表,如3.9.1 蓝牙通道探测通道图中所述,每个通道标记为包含或排除。蓝牙通道探测通道索引过滤图由一个称为通道探测通道图更新程序的链路层过程维护,该过程允许发起者或反射者根据其对本地通道条件的评估,通知另一个设备使用或避免哪些通道。任何通道选择算法都不会选择被排除的通道。

3.9.3 频率跳变

频率跳变通常发生在步骤执行之前,如图 36 所示。

Figure 35图 36 - 执行步骤前的频率跳变

当主模式重复参数被配置为非零值时,此规则有例外。由于模式重复而重复的步骤将使用与它们重复的前一个子事件中的步骤相同的通道索引。

3.9.4 通道选择

3.9.4.1 概述

一组新的三通道选择算法(CSA)已被定义用于蓝牙信道探测。它们统称为 CSA #3,分别为 CSA #3a、CSA #3b 和 CSA #3c。

CSA #3a 仅用于选择在模式 0 步骤中使用的通道。

CSA #3b 和 CSA #3c 都是为非模式 0 步骤设计的,但在蓝牙信道探测程序实例中只能使用其中一个。

因此,任何时候都有两种不同的信道选择算法与蓝牙信道探测积极相关。

3.9.4.1 通道索引洗牌

频道选择涉及两个不同的频道索引列表。第一个由 CSA #3a 使用,用于模式 0 步骤的频道选择。第二个用于 CSA #3b 或 CSA #3c 的非模式 0 步骤。

CSA #3a 和 CSA #3b 几乎相同。

通道索引列表是通过随机化通道图中标记为包含的通道的顺序来创建的,从而生成一个打乱的通道列表。CSA #3a 和 CSA #3b 以完全相同的方式执行此操作。CSA #3c 采用不同的方法,但依赖于相同的基本打乱函数,称为 Bluetooth Core Specification 中的 cr1。

3.9.4.2 CSA #3a

模式 0 通道选择算法 CSA #3a 使用了一个洗牌的通道列表,如3.9.4.1 通道索引洗牌中所述。用于模式 0 步频跳频的洗牌通道列表与用于非模式 0 跳频的相应通道列表不同。

洗牌频道列表中的每个条目都是唯一的,仅使用一次。当洗牌频道列表中的所有条目都被使用后,它会被重新生成,创建一个新的随机频道列表。

3.9.4.3 CSA #3b

非模式 0 通道选择算法 CSA #3b 使用一个与模式 0 通道跳跃所用的通道列表不同的洗牌通道列表。CSA #3b 允许通道索引列表在重新生成之前迭代多次,这由一个名为 CSNumRepetitions 的参数控制,应用程序可以设置该参数。

3.9.4.3 CSA #3c

算法 CSA #3c 与 CSA #3b 有显著不同。通道图中包含的通道子集被组织成组,并生成形成形状的通道模式。支持两种模式类型,分别称为帽子和 X。CSA #3c 在某些情况下可能在检测反射信号路径方面提供一些优势。有关更多详细信息,请参阅蓝牙核心规范。对 CSA #3c 的支持是可选的。

3.10 RTT 选项和准确性

RTT 方法涉及在模式 1 和/或模式 3 的步骤中交换 CS_Sync 数据包。图 24 显示了 CS_Sync 数据包的结构。

定义了几种建立到达时间(ToA)时间戳的方法,这些时间戳用于计算往返时间。应用程序可以通过使用 RTT_Type 参数的 HCI 命令在蓝牙信道探测配置过程中指示要使用的方法。

选项是基于访问地址字段进行时间测量,使用长度为 32 或 96 位的探测序列,或使用长度为 32、64、96 或 128 位的随机序列。时间估计的准确性根据所使用的方法和用于计时目的的字段长度而有所不同。使用探测序列和使用随机序列都允许进行一种更准确的估计形式,称为分数时间估计。

3.10.1 基于访问地址的定时

CS_Sync 数据包包含一个 32 位的访问地址字段。建立 ToA 值的最简单方法是控制器使用其时钟在接收到 CS_Sync 数据包中的访问地址字段时捕获时间戳。

接入地址是链路层的 32 位二进制值,但在传输时,其值由一系列模拟符号表示,这些符号是通过对这些数字位应用 GFSK 调制形成的。单个符号由一个频率的无线传输组成,该频率表示 0 位或 1 位值,并且根据符号速率(由选择 LE 1M 或 LE 2M PHY/LE 2M 2BT PHY 决定),持续时间为一微秒或半微秒。

接收信号的过程涉及对 incoming 信号的采样,这由以某一速率运行的本地振荡器驱动。该信号的传输同样由另一设备中的振荡器驱动。

获取入站信号中访问地址接收的时间戳有多种方法。具体细节留给实现,但可能包括记录数据包到达蓝牙控制器的时间,然后根据数据包长度、符号速率和采样率进行调整,以估算访问地址接收的时间。或者,实施可能能够在无线信号处理期间计算 ToA 时间戳,但在解调和检查访问地址值后需要验证时间戳,然后才能将其用于 RTT 计算中的 ToA。

发射器的振荡器和接收器的振荡器不太可能彼此同步,这可能是该过程中的不准确来源。为了改善结果,建议在一系列交换的数据包中进行测量,并计算值的分布。然后可以使用该分布来提高到达时间(ToA)时间戳的准确性。

链路层规范,部分 H,第 3.2.2 节提供了有关如何通过确定由于最佳采样点与实际采样点之间的差异而导致的访问地址采样中的分数定时误差来改进使用此方法创建的时间戳的信息。这种误差是由于本地振荡器与远程设备不同步造成的。

3.10.2 分数时间估计

在链路层规范 H 部分的 3.3 和 3.4 节中描述了两种可选方法,这些方法提供更好的 ToA 时间戳精度。两者都提供分数时间估计。

CS_Sync 数据包可以在数据包末尾容纳额外的可选数据。如果使用此选项,可以将两个字段中的一个附加到 CS_Sync 数据包:随机序列或声波序列。

第一种分数定时方法涉及分析 CS_Sync 数据包中的可选随机序列字段,以确定分数定时误差。这与3.10.1 基于接入地址的定时中描述的技术类似,用于确定最佳采样点与实际采样点之间的差异。从随机序列计算的分数定时误差同样用于优化接入地址时间戳。

第二种分数定时方法基于对附加在 CS_Sync 数据包上的声测序列字段的分析。声测序列是在链路层上交替出现的 0 和 1 的模式,当使用 GFSK 调制时,会产生两个具有不同频率和相位的不同无线电音调。对声测序列产生的两个音调所表现出的相位差的分析可以计算出分数定时误差,并用于优化 ToA 时间戳。

3.10.3 RTT 方法的比较

蓝牙信道探测应用程序开发人员可以根据三种不同方法产生的测量值推导往返时间。选择包括使用接入地址的到达时间(ToA)或使用基于随机序列或在 CS_Sync 数据包中的探测序列的两种分数方法之一。

蓝牙通道探测功能的实施者必须实现该功能的强制性方面,但在可选功能方面可以选择性实施,前提是他们愿意。实施复杂性各不相同,可能是做出该决定时考虑的因素之一。

这三种 RTT 方法为应用开发者提供了不同程度的距离测量准确性、安全性和延迟。一般来说,分数方法有潜力提供最准确的结果和最佳的安全性。

3.11 LE 2M 2BT PHY

3.11.1 调制方案

调制方案定义了一种通过信号的一个或多个物理属性对数字信息进行编码的方法。调制方案产生的符号在模拟世界中承载信息,就像比特在数字世界中包含信息一样。符号表示一个或多个比特,具体取决于调制方案的工作方式。

频移键控(FSK)是调制方案的一个简单示例。它是一种二进制调制方案,其中一个数字位对应一个模拟符号。

FSK 涉及通过将载波信号的频率向上移动一定量(称为频率偏移)来产生表示二进制值 1 的符号,或者向下移动相同的量来表示二进制 0。

图 37 提供了基本频移键控(FSK)应用于特定比特值流的示例。

Figure 36图 37 – 频移键控(FSK)编码比特流 01010101010

基本频移键控(FSK)的一个特征是频率之间的突然切换,这会产生噪声,噪声的频率范围比理想情况要宽。为了应对这一点,蓝牙技术使用了一种特殊的 FSK 变体,称为高斯频移键控(GFSK)。

GFSK 与基本的 FSK 不同,它涉及一个滤波器,使得频率之间的过渡遵循一个曲线。曲线的形状和频率过渡的速率由各种参数决定,包括带宽-比特周期乘积或 BT。

3.11.2 带宽-比特周期乘积

带宽-比特周期乘积(BT)是信号的一个属性,提供有关其带宽与符号持续时间之间关系的信息。

BT 影响构成符号的无线电脉冲的形状和跨度。较高的 BT 值会导致脉冲更窄、更方,而较低的值则会导致脉冲形状更宽、更圆。

3.11.3 LE 2M 2BT

即将发布的蓝牙核心规范更新引入了一种新的物理层,称为 LE 2M 2BT。LE 2M 2BT 目前可能仅与蓝牙信道探测一起使用。

表 11 中突出显示了 PHY 与 LE 2M 2BT 关键方面的比较。

LE 1M

LE Coded

LE 2M

LE 2M 2BT

符号率

1 Msym/s

1 Msym/s

2 Msym/s

2 Msym/s

BT

0.5

0.5

0.5

2.0

最小频率偏差

185 kHz

185 kHz

370 kHz

420 kHz

错误检测

CRC

CRC

CRC

不适用

错误修正

FEC

不适用

需求

强制性

可选

可选

可选。仅用于通道探测。

表 11 - 蓝牙低能耗物理层的比较

LE 2M 2BT PHY 只能与蓝牙信道探测一起使用。它的使用可以增强安全性,如第 3.13.7 节中所述。

当 BT=0.5 与 BT=2.0 时脉冲的形状如图 38 所示。

Figure 37图 38 - 脉冲形状

3.12 蓝牙信道探测的信噪比控制步骤

一些无线电发射器具有调整其信噪比(SNR)以位于指定范围内的能力。如果发起器和反射器设备都支持此功能,则可以用于提高与 RTT 距离测量方法相关的蓝牙通道探测步骤的安全性,即模式 1 和模式 3 步骤。第3.13.8 节 SNR 控制和 RTT 安全性对此进行了详细说明。

蓝牙核心规范定义了一些与以分贝(dB)测量的相关信噪比输出水平对应的信噪比输出指数(SOI)值。表 12 重现了这些定义。

SNR 输出指数(SOI)

信噪比输出水平(分贝)

0

18

1

21

2

24

3

27

4

30

表 12 – SNR 输出指标和水平

在信道探测能力交换过程中(见3.3.2 蓝牙信道探测能力交换),设备之间交换有关 SNR 输出控制和支持的 SOI 值的信息,以及在蓝牙信道探测开始过程中发送的 LL_CS_REQ 链路层 PDU 中指示是否使用 SNR 控制及其 SOI 值。

3.13 安全

3.13.1 概述

与距离测量解决方案独特相关的安全问题通常涉及不受信任的设备以某种方式欺骗一个受信任的设备,使其得出另一个受信任的设备足够接近以便授予或采取某些行动的结论。例如,在无钥匙进入系统中,如果一个恶意设备能够欺骗门锁,使其认为相关的受信任无线钥匙卡足够接近以便门自动解锁,则未经授权的人员可能会获得进入权限。

一系列与距离测量相关的攻击被安全专家识别。一些涉及独立的恶意设备伪装成来自受信设备的通信(称为欺骗),而其他则是中间人攻击(MITM),它们中继来自受信设备的信号,通常在此过程中操纵信号或其数字内容,以导致受信设备错误计算与其受信对应设备之间的距离。这些攻击的细节在复杂性和实施成本上各不相同。

蓝牙信道探测包括一系列功能,可以作为多种距离测量安全威胁的对策。这些功能可以被视为分为四个类别:

  1. 结合使用 PBR 和 RTT 方法
  2. 比特流和传输模式的随机化
  3. 防御符号操作
  4. 射频信号分析技术,包括攻击检测

此外,蓝牙控制器实施者和应用程序开发者可以在需要时通过额外的保护措施增强蓝牙通道探测安全功能提供的标准安全特性。

本节总结了蓝牙信道探测安全的关键方面。

3.13.2 PBR 和 RTT 交叉检查

蓝牙信道探测支持两种距离测量方法:基于相位的测距(PBR)和往返时间测量(RTT)。这两种方法的工作原理完全不同。

应用程序可以通过选择合适的模式组合同时使用这两种方法,例如将模式-2 作为 PBR 的主要模式,将模式-1 作为 RTT 的子模式。有关模式组合和顺序的更多信息,请参见3.8 模式排序

同时攻击这两种方法的复杂性,使得蓝牙信道探测信号的相位和计算的往返时间被操控以产生误导性和一致的结果,被安全专家视为非常高。

3.13.3 初始化蓝牙通道探测安全性

3.3.1 蓝牙信道探测安全启动描述了初始化蓝牙信道探测安全的过程。这个过程在多个方面使蓝牙信道探测安全得以实现,并且本身也是安全的。

首先,设备必须彼此配对。这是创建加密的 LE-ACL 链接所必需的。

CS Security Start 然后通过加密的 LE-ACL 链接进行,这意味着蓝牙通道探测安全密钥数据的交换受到窃听者的保护。

最后,中央设备和外围设备安全地交换蓝牙信道探测安全数据的部分值。这为两个设备提供了相同的数据,以构建每个 CS 初始化向量(CS_IV)、CS 实例化随机数(CS_IN)和 CS 个性化向量(CS_PV)的完整和共同值。

CS_IV、CS_IN 和 CS_PV 是确定性随机比特生成器(DRBG)的输入,DRBG 是许多蓝牙信道探测安全功能的基本组件。

3.13.4 确定性随机比特生成器 (DRBG)

蓝牙核心规范定义了一种随机位生成器,该生成器“与 NIST 特别出版物 800-90Ar1 中定义的建议一致”。它被称为确定性随机位生成器或 DRBG。

实例化 DRBG 需要提供三个蓝牙信道探测安全参数,CS_IV、CS_IN 和 CS_PV 作为输入。在执行蓝牙信道探测安全启动程序后,发起者和反射器设备对这些参数具有相同的值。当使用相同的参数值初始化时,两个 DRBG 实例将在一系列调用中产生完全相同的比特序列,这使得该算法是确定性的。

对于不具备 CS_IV、CS_IN 和 CS_PV 值的设备,使用 DRBG 生成的启动器和反射器设备对的比特序列看起来是随机的,且比特序列越长,未受信任设备匹配该序列中的比特值就越困难。

使用 DRBG 对蓝牙信道探测比特流和某些传输调度方面进行随机化,可以降低恶意设备伪装可信设备的风险。

使用 DRBG 的 CS 安全特性如下。

3.13.4.1 安全访问地址

访问地址字段出现在所有蓝牙链路层数据包中。它的目的是让设备决定一个数据包是否相关。例如,广告广播(ADVB)数据包使用一个特殊的访问地址值,该值将数据包标识为对任何接收它的设备可能相关,而通过 LE-ACL 连接交换的数据包具有一个访问地址值,该值实际上充当该连接的唯一标识符。

在蓝牙信道探测的情况下,每个设备在每个模式 0、模式 1 和模式 3 的 CS 步骤中更改其 CS_Sync 数据包中的访问地址字段。因此,每个设备在每个步骤都有一个唯一的访问地址。新的访问地址值是使用涉及 DRBG 的选择规则生成的,并且两个设备都知道对方将使用的访问地址。接收设备检查访问地址值,并向主机报告任何问题。

访问地址字段长度为 32 位,可以有 4,294,967,296 个不同的值。因此,恶意设备想要伪造 CS_Sync 数据包,每个交换的多个 CS_Sync 数据包中都有 1/4,294,967,296 的机会猜测正确的访问地址值。

3.13.4.2 RTT 分数定时的随机序列

3.12.4.2 RTT 分数定时的随机序列中所述,CS_Sync 数据包可以包含一个可选的随机序列字段。该字段支持其中一种分数 RTT 方法。

随机序列字段的内容是使用 CS DRBG 为每个传输的 CS_Sync 数据包(重新)生成的。随机序列字段的长度可以是 32、64、96 或 128 位。

3.13.4.3 声音序列标记信号

声音序列由 32 位或 96 位的可预测交替模式组成,用于分数 RTT 计算。为了降低这种已知位模式被以某种方式利用的风险,使用 DRBG 在序列中选择位置插入两个随机选择的 4 位值之一,称为标记信号。DRBG 选择的标记信号的值为 0b1100 或 0b0011。

在声波序列中随机插入随机比特模式可以防止声波序列欺骗。

3.13.4.4 音调扩展插槽随机传输

模式 2 和模式 3 步骤包括一个音调扩展时隙(见3.5.3 步骤模式)。音调扩展时隙始终被保留,但在该时间时隙内是否进行传输是随机的,并由 DRBG 控制。接收设备知道何时预期传输以及何时不预期传输在音调扩展时隙内,但攻击设备则不知道。

3.13.4.5 随机选择天线路径

基于相位的测距可以与八种配置中的天线阵列一起使用,如3.7 天线切换中所讨论的。在基于相位的测距过程中,信号通过两个设备之间存在的每个可用天线路径进行传输。所使用的路径序列在每个蓝牙信道探测步骤中使用 DRBG 进行随机化。

3.13.5 声音序列

3.10.2 分数定时估计中所述,声波序列由交替的 0 和 1 的比特值序列组成。相应的射频信号可以视为由两种不同频率和不同相位的音调组成。这对应于在应用 GFSK 调制之前,数字域中交替的二进制 0 和 1 的序列。

因此,可以同时使用单个 CS_Sync 数据包中的 Sounding Sequence 字段编码的两个音调的相位差来进行 PBR 计算,同时使用 CS_Sync 数据包计算往返时间。

基于单个数据包同时计算 RTT 和 PBR 测量,使得攻击交换的尝试变得极其复杂。

3.13.6 攻击检测与报告

蓝牙链路层规范的蓝牙信道探测部分包括对攻击检测系统的描述。这作为蓝牙控制器实现者遵循的框架架构和一般方法提供,而不是作为详细的、规定性的规范。

蓝牙通道探测攻击检测在蓝牙控制器中是基于对接收信号与参考信号定义的评估,以及对接收信号进行检查以寻找可能攻击的指示,例如意外的比特转换或相位调整。规范提供的指导基于包含随机序列、探测序列或两者的 CS_Sync 数据包。

一个用于以形容词形式报告攻击正在进行的概率的标准化指标由蓝牙核心规范定义,称为标准化攻击检测器指标或 NADM。NADM 值由控制器根据接收到的信号的评估分配,采用滑动尺度的形式,表示攻击可能性,范围从攻击极不可能开始,到攻击极可能在上限处增加。表 13 包含 NADM 值定义,摘自蓝牙核心规范。

NADM Value

描述

0x00

攻击极不可能

0x01

攻击非常不可能

0x02

攻击不太可能

0x03

攻击是可能的

0x04

攻击可能会发生

0x05

攻击非常可能

0x06

攻击极有可能发生

0xFF

未知的 NADM。

对于没有随机序列或声序列的 RTT 类型的默认值。

表 13 – NADM 值

图 39 展示了轮廓攻击检测器系统。

Figure 38图 39 - 攻击检测系统概述

控制器的 NADM 算法分配的 NADM 值通过 HCI 事件在一个名为 Packet_NADM 的字段中报告给主机。对接收到的 NADM 值应用攻击检测算法,并将威胁级别报告给用户应用程序。

未来的蓝牙配置文件规范可能会促进设备之间在蓝牙通道探测期间共享 NADM 数据,如图 39 中从设备 B 到设备 A 的虚线所示。

蓝牙核心规范包括允许正确识别显示已知攻击模式的信号的测试定义。然而,图 39 中所示的攻击检测算法和用户应用的细节未被指定。

3.13.7 LE 2M 2BT

存在多种已知的物理层攻击,这些攻击涉及中间人(MITM)攻击者预测来自合法发送设备的部分接收符号的值,并中继这些符号的完整生成版本,同时操控时序,使得合法接收者错误计算往返时间,从而错误估计距离。攻击者的信号通常会被放大,以便目标设备将操控后的信号视为主要信号,而不是可能看起来像反射的较弱原始信号。持续时间较长的符号比持续时间较短的符号更容易受到这种类型的攻击。

LE 2M 2BT PHY 的带宽比特周期乘积值为 2.0,涉及的符号脉冲持续时间短于其他 PHY 相关的脉冲,这降低了这些类型攻击的风险。

3.13.8 SNR 控制和 RTT 安全

SNR 控制功能允许发起者和接收者将预先商定的随机噪声量混入信号中。这仅适用于在模式 1(RTT)和模式 3(RTT 和 PBR)步骤中进行的 CS_Sync 数据包传输。

3.12.7 LE 2M 2BT中提到的中间人攻击类别依赖于攻击者能够非常快速地隔离和操纵合法信号,所需时间远少于符号的完整持续时间。通过向信号中注入噪声,攻击者的分析完成变得更加困难和缓慢,从而降低了此类攻击成功的可能性。另一方面,发起者和反射器设备在预先商定信噪比的情况下,能够轻松过滤人工添加的噪声。

3.13.9 CS 安全级别

蓝牙核心规范的通用访问配置文件(GAP)部分定义了安全模式和安全级别。包括了蓝牙信道探测的四个安全级别的正式定义。未来的蓝牙配置文件规范可能会引用这些定义。

3.13.10 供应商特定实现和附加安全性

控制器实施者可以选择引入进一步的供应商特定安全措施。

3.14 主机应用程序

创建蓝牙精确测距应用程序和产品涉及利用控制器的蓝牙信道探测功能,并将其与自定义的应用层代码相结合。解决方案的应用组件开发人员必须注意本节所强调的各种问题。

3.14.1 距离测量算法

蓝牙协议栈并不直接生成距离测量。相反,在蓝牙控制器执行 CS 步骤期间,会进行相位和/或时序的低级测量,应用程序可以根据这些数据计算距离测量。

应用程序用于计算距离的算法并未在蓝牙核心规范中指定。因此,这是一个供应商可以区分的领域。更优越的算法将产生更优越的结果。

控制器获取的数据并报告给应用层是标准化的,因此原则上,所有应用距离测量算法可以处理相同类型的输入数据。在实践中,传递给应用层的数据取决于在蓝牙信道探测程序中使用的模式组合和顺序。数据的质量也可能有所不同,这取决于控制器实现的细节,这些细节超出了蓝牙核心规范的范围。

3.14.2 控制器与主机的蓝牙信道探测数据通信

3.14.2.1 HCI 事件类型

主控制器接口功能规范定义了两个事件,控制器用它们将蓝牙信道探测数据传递给主机,主机用于距离测量计算和评估当前的安全条件。这两个事件被称为 LE CS 子事件结果和 LE CS 子事件结果继续。

3.14.2.2 HCI 事件时序

控制器汇总在蓝牙信道探测子事件中执行的步骤生成的测量值。完整或部分结果集通过 LE CS 子事件结果 HCI 事件报告。如果报告了不完整的结果集,其余结果将在稍后发送的一个或多个 LE CS 子事件结果继续事件中报告。HCI 事件字段 Subevent_Done_Status 和 Procedure_Done_Status 指示应用层子事件或过程的所有数据是否已报告,或者是否还有更多数据要来。

Figure 39图 40 - 示例蓝牙信道探测 HCI 数据报告

使用 HCI 事件进行报告与子事件相关,但不一定严格与子事件边界对齐。子事件中的步骤数量将影响控制器报告结果的方式。如果步骤数量意味着控制器必须聚合超过其容量的数据,则控制器将把 HCI 报告拆分为多个事件。单个事件可以容纳的步骤数量限制为 160,这也是控制器需要考虑的另一个限制因素。

3.14.2.3 HCI 事件内容

蓝牙通道探测 HCI 事件将各种类型的数据从控制器传输到主机。应参考蓝牙核心规范主控制器接口功能规范以获取完整细节。这里描述了一些关键字段和数据结构。

频率补偿

模式 0 步骤的目的是确定发起器和反射器生成的期望频率与实际频率之间的差异。这用于计算一个分数频率偏移(FFO),然后可以用来补偿这些差异对频率和时间值的影响,最终提高距离测量的准确性。HCI CS 事件的频率补偿字段包含这个控制器计算的值。

Num_Steps_Reported

此字段指示在此 HCI 事件中报告了多少步。它还指示四个与步相关的数据数组的大小,Step_Mode、Step_Channel、Step_Data_Length 和 Step_Data。

步态模式 [ ]

该数组包含每个步骤的模式,按步骤编号排序,并以 0 到 3 的范围内的值表示。

步骤通道 [ ]

该数组包含在执行相应步骤时使用的 RF 频道的索引。

步骤数据长度 [ ]

每个步骤报告的数据在内容和结构上是可变的。该数组包含与相关步骤数据数组中每个元素的长度。

步骤数据 [ ]

每个步骤报告的数据取决于步骤模式、设备角色(发起者或反射器)以及是否使用声波序列进行基于相位的测距和 RTT 计算。包含相关数据的结构称为 Mode_Role_Specific_Info 对象,并定义了该结构的十一种变体。

在 Mode_Role_Specific_Info 对象中可能包含的数据示例包括字段 Packet_Quality 和 Tone_Quality、接收信号强度指示器 (RSSI)、测量的频率偏移、NADM 值、天线标识符、相位修正项以及数据包传输和到达之间的经过时间测量(或反之)。这些时间值以半纳秒单位的倍数表示。

3.14.3 模式组合和模式序列

3.8.5 应用程序和模式序列考虑解释了应用程序如何控制在蓝牙通道探测程序中涉及的步骤模式组合和序列。应用层负责决定使用哪些步骤模式,以及在使用主模式和子模式的情况下,所选模式的每个步骤数量之间的比例。应用程序或产品开发人员需要考虑距离测量精度要求、安全性和延迟,以得出结论,以及本地控制器支持的功能。

3.14.4 应用层安全

应用层可以通过选择模式组合和 RTT 参数对整体解决方案的安全性进行一定的控制。开发人员应首先了解和评估通用接入配置文件(GAP)中定义的安全级别,作为确定采用哪些安全选项的起点,具体内容见3.12.9 蓝牙信道探测安全级别

建议始终将 PBR 和 RTT 结合使用,以便可以基于这两种方法进行距离计算的交叉检查。PBR 通过蓝牙信道探测提供最准确的距离测量,而支持 RTT 的主要原因是作为安全措施。选择由应用层负责。

NADM 值是由蓝牙控制器中的 NADM 算法创建的,并为这些值定义了标准化的形容词形式的含义。但必须由应用层决定对每个可能的 NADM 值采取什么行动(如果有的话)。

4. 蓝牙核心规范变更摘要

为了引入蓝牙通道探测功能,蓝牙核心规范的多个层面进行了更改。本节提供了关键更改的摘要,旨在仅作为章节级别的高层参考以供定位。有关详细信息,请参阅蓝牙核心规范。

4.1 架构

蓝牙核心规范第 1 卷,第 A 部分描述了该技术的架构。

• 第 3 节,传输架构介绍了一种新的数据包结构和蓝牙信道探测的信令格式。它还定义了新的 LE 信道探测物理信道和 LE 信道探测物理链路。

• 第 9 节,使用蓝牙低能耗的蓝牙信道探测提供了蓝牙信道探测功能的简要概述。

4.2 主机

4.2.1 通用接入配置文件

第 3 卷,第 C 部分定义了通用接入配置文件。

• 第 9 节介绍了 GAP 蓝牙信道探测程序以及发起者和反射者的角色。

• 第 10 节 四个蓝牙信道探测安全级别。

4.2.2 主控制器接口

第 4 卷,第 E 部分包含主控制器接口功能规范。

• 第 7.7.6.5 节 LE 元事件已更新,增加了与蓝牙信道探测相关的多种新事件类型,包括 LE CS 子事件结果事件和 LE CS 子事件结果继续事件。

• 第 7.8 节 LE 控制器命令现在包括用于通道探测的额外命令,例如 LE CS 读取远程 FAE 表命令、LE CS 创建配置命令、LE CS 安全启用命令和 LE CS 程序启用命令。

4.3 控制器

4.3.1 物理层

第 6 卷,第 A 部分包含物理层规范。

  • 第 1 节介绍了新的 LE 2M 2BT PHY。
  • 第二节介绍了一种新的蓝牙信道探测通道安排。
  • 第 3 节定义了新的 SNR 控制功能。
  • 第 3.4 节为支持蓝牙信道探测的设备增加了稳定相位要求。
  • 第 3.5 节描述了蓝牙信道探测中频率测量和生成的要求。这包括对分数频率偏移(FFO)测量要求的规范。
  • 第 5.3 节是一个新章节,描述了蓝牙信道探测的天线切换。
  • 第 6 节涵盖了相位测量要求,包括参考接收器定义、相位测量精度要求的描述、频率激励误差补偿要求以及相位测量时序规则。
  • 附录 B 提供了蓝牙信道探测测试设备设置的示例。
4.3.2 链路层

第六卷,B 部分包含链路层规范。

  • 第 2.4.2 节定义了与蓝牙信道探测功能相关的新链路层控制器 PDU 类型及其操作码。
  • 第 4 节包含了对通道蓝牙探测的链路层空中接口协议的更新。这包括第 4.2 节中更新的睡眠时钟精度要求,以及第 4.5.18 节中关于蓝牙通道探测程序、事件、子事件和步骤的规范。第 4.5.18.2 节提供了与蓝牙通道探测相关的 ACL 链路的安全要求以及它可能传输的控制 PDU。
  • 第 5.1 节涵盖了链路层控制的主题。它已更新以包括与蓝牙信道探测相关的新控制程序,例如蓝牙信道探测启动程序、蓝牙信道探测能力交换程序、蓝牙信道探测配置程序和蓝牙信道探测启动程序。
4.3.3 蓝牙信道探测

第 6 卷,第 H 部分是一个专门介绍新蓝牙信道探测功能的新章节。它涵盖了用于蓝牙信道探测的物理射频信道的定义、新的 CS_Sync 数据包格式、测量往返时间(RTT)以及获取到达或离开时间戳的各种方法。本节定义了蓝牙信道探测的新信道选择算法,以及步进模式、步进组合和排序规则、相位测量规则和使用 DRBG 生成随机位。

5. 结论

通过蓝牙信道探测,开发人员可以创建令人兴奋的产品和应用,利用该功能的安全精确测距能力。

基于全球最普遍的低功耗无线技术的“查找我的设备”和数字钥匙解决方案的最终用户,将因使用蓝牙信道探测功能的设备所能实现的结果质量而享受性能提升。而且,知道产品开发者已经获得了一整套全面的安全功能来解决相关问题,将带来安心。

蓝牙信道探测的技术灵活性意味着开发者可以优先考虑最重要的测距方面,无论是安全性、准确性还是延迟。并非所有应用程序都是相同的,这在蓝牙信道探测功能的设计中得到了认可和照顾。开发者被赋予了自由,可以决定在其产品的实施中对他们和用户最重要的是什么。

每年出货超过五十亿个蓝牙设备。这导致了巨大的规模经济,惠及产品和组件制造商,最终也惠及他们的客户。

蓝牙信道探测和执行安全精确测距的能力为增强许多蓝牙连接设备的便利性、安全性和保障提供了机会。存在检测、方向查找以及现在的信道探测可以单独使用或结合使用,以创建空间感知的产品和应用,最终用户和企业都能从中受益。

蓝牙技术无处不在,基于广泛采用和精心制定的技术标准。采用蓝牙信道探测是开发者为其蓝牙产品添加精细测距功能的简单、安全选择。下载蓝牙核心规范以获取有关这一激动人心的蓝牙技术功能扩展的完整细节!

6. 参考文献

项目

位置

Bluetooth®核心规范 v6.0

https://www.bluetooth.com/specifications/specs/core60-html/

找到我个人资料

https://www.bluetooth.com/specifications/specs/find-me-profile-1-0/

即时警报服务

https://www.bluetooth.com/specifications/specs/immediate-alert-service-1-0/

脚注


通用属性配置文件
2. 信号通过的材料会影响速度。在理论计算中,通常使用光速。
3. CS 模式在 3.5 节中解释。
4. 高斯频移键控