版本: 1.0
修订日期 2024 年 7 月 9 日
作者: Martin Woolley,蓝牙技术联盟

低功耗蓝牙™(Bluetooth LE)因其为用户提供无线数据传输 和音频功能而闻名全球。我们的口袋里装有这项技术,因为我们的手机越来越智能。在我们的手腕上,智能手表和健身追踪器中都有这项技术。在我们的汽车里,它可以实现免提控制和通信。在我们的耳朵里,它可以通过全新的蓝牙低功耗音频 功能Auracast™ 广播音频,从个人音乐设备和广播信号源串流高品质音频。

但多年来,蓝牙低功耗(Bluetooth LE)也已逐渐确立其作为一种广泛应用且可靠的技术地位,成为构建设备定位应用的基础。蓝牙低功耗可用于检测并报告附近环境中其他设备的存在,估算设备之间的距离,以及计算其他设备所在的方向。这些设备定位功能已被应用于多种场景,包括数字钥匙、资产追踪、“查找我的”以及室内导航。

蓝牙技术在其 25 年的发展历程不断改进。它走过了一条积极进化的道路,产生了一系列令人瞩目的新功能,提升了产品所能达到的效果。

本次对《蓝牙核心规范》的更新新增了一项名为“蓝牙®信道探测”的功能,该功能可实现两台蓝牙设备之间安全、精确的测距,这也是本文的主题。本文并非旨在取代或替代《蓝牙核心规范》。

低功耗蓝牙于2010年首次推出。从那时起,低功耗蓝牙就作为定位服务技术的发展经历了一系列关键事件。

就在低功耗蓝牙首次被纳入蓝牙核心规范的同一年,第一份正式的与位置相关的低功耗蓝牙配置文件规范发布了。这就是”查找“配置文件。

“Find Me”配置文件定义了一种查找个人物品的标准方法,也称为“查找我的”。其中一台设备担任“Find Me”定位器,通常是一部智能手机。其他设备(例如用户经常弄丢的物品,带蓝牙钥匙扣的钥匙就是典型的例子)则与“Find Me”定位器配对,并各自担任“Find Me”目标设备。

目标设备实现了 GATT1 服务,名为“即时警报服务”。

当用户需要帮助寻找丢失的设备时,他们会在智能手机上运行应用 。应用通过扫描丢失设备广播的广播数据包来执行设备发现程序。发现目标设备后,定位器会与之连接。应用的用户界面(UI)会显示连接已完成。用户通常会按下用户界面上的一个按钮。这将导致应用 写入属于即时警报服务的警报级别特性 。目标设备会以某种适当的方式对警报级别值的变化做出反应,例如发出响亮的蜂鸣声、LED 灯闪烁或同时闪烁。此时,用户会意识到自己的钥匙可能一直在上衣口袋里,也可能掉到了沙发后面,还可能在某个不太容易找到的地方。无论如何,蓝牙技术拯救了用户,让他们失而复得。

蓝牙™”查找“是一种存在检测应用。低功耗蓝牙可确定丢失的设备就在附近,但无法指示其方向或与定位器的距离。

蓝牙信标(Beacon)使用低功耗蓝牙的广播功能。广播功能包括广播小数据包,范围内的任何设备都能通过扫描接收到这些数据包。

2013 年,苹果公司发布了 iBeacon 格式规范。这成为信标设备广播有效载荷内容的流行格式。iBeacon 信息中的数据包括一个名为 "发射功率"(TX Power)的字段,该字段包含一个值,代表在距离信标一米远的地方测量到的信号强度。正是 iBeacon 信息以及谷歌 Eddystone 等其他类似信标数据格式中 TX Power 字段的出现,预示着第一代低功耗蓝牙距离估计技术的到来。

蓝牙这个早期版本的距离估算使用了两个数据值和一些简单的物理学原理,工作原理是这样的:

  • 信标信息中的 TX 功率字段提供了已知距离(如一米)的参考功率电平。
  • 与每个接收到的信标信息相关的接收信号强度指示器(RSSI)可量化接收设备的信号强度。
  • 物理学定义了一种理论关系,即信号强度在距离发射器 越远的地方减弱的速度越快。具体来说,接收器 的信号强度与其与发射器距离的平方成反比。
  • 当我们远离发射器 时,测量到的信号强度降低,这就是所谓的路径损耗或衰减。就 iBeacon 发射而言,路径损耗 = 发射功率 - RSSI。
  • 因此,只要知道固定距离上的参考功率电平、所测得的接收信标传输的 RSSI 以及距离与路径损耗之间的反平方关系,就可以利用衰减来估算信标与接收器之间的距离。

图 1

图 1 - 路径损耗和距离

能够像这样估算距离是一项重大突破,信标已在零售、旅游和博物馆等各种应用中大受欢迎。

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

2019年,蓝牙核心规范5.1版本加入了一项重要的新功能——蓝牙寻向功能。

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

在到达角(AoA)方法中,接收设备有一个天线阵列,由于每个天线与发射设备中的单个天线的距离略有不同,因此在不同天线上测量接收信号会出现相位差。

在出发角方法中,发射装置有一个天线阵列。接收装置只有一个天线,但拥有远程发射装置天线阵列的详细信息。这样,接收设备就能根据其单个天线的相位测量结果进行类似的计算。

图2

图 2 - 使用到达角和出发角的寻向功能

蓝牙控制器将同相和正交(IQ)采样形式的相位测量值传递给应用。IQ 样本包括一对相位和振幅值,应用 可利用这些值计算发射器 方向。

图 3

图 3 - IQ 样本

全新的蓝牙®信道测距功能使得能够开发出具备测距能力的产品,其测距精度远高于以往采用RSSI和路径损耗的第一代方法所能达到的水平。该功能的工作原理截然不同,并包含多种安全防护措施,可有效降低各类风险。

预计蓝牙™ 信道探测 将使查找 解决方案、数字钥匙产品和更多蓝牙连接设备受益。

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

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

无线电波的振幅与其携带的能量相对应,通俗地说,就是信号强度。它在一个中心参考值上下摆动。这种上下振荡有规律地定期重复。波幅上升到峰值、下降到谷值、再上升到起始参考值的单次过渡称为一个波周期。图 4 显示了两个完整的波浪周期,振幅在垂直刻度上。第一个波周期的范围突出显示。

图 4

图 4 - 波浪周期与垂直方向上的振幅

一个波周期有一个物理长度。波长与频率有关,就 Bluetooth 技术而言,大约在 12.0 厘米到 12.5 厘米之间。

图 5

图 5 - 波长

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

图 6

图 6 - 频率

位于一个波周期内某处的点用称为相位的角度测量值来表示。相位值的范围为 0 - 360 度或 0 - 2π 弧度。图 7 展示了相位的概念,并在波周期的适当位置标注了一些相位值(以弧度表示)。

图 7

图 7 - 阶段

频率(f)和波长(λ)成反比。波长越短,频率越高,反之亦然。此外,这两个变量与光速(c)之间的关系是由一组简单的公式定义的,可以根据其他两个变量的已知值计算出这三个量中的任何一个。光速是一个常数,其值为 299792458 米/秒。

公式使用
2405 航道测深公式 1根据已知的频率和光速常数,计算未知波长。
2405 航道测深公式 2根据已知的波长和光速常数,计算未知频率。
2405 航道测深公式 3利用频率值和相应的波长计算光速。

表 1 - 频率和波长公式

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

用信号从发射器延伸到接收器所需的波周期数来表示信号波长的函数,很容易将距离可视化。

图 8

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

在图8中,图示左侧发射的信号显然距离接收器十个半波长。如果我们知道信号的频率,就能算出波长。而如果知道波长,再结合已知的波数,我们就可以通过乘法计算出两台设备之间的距离。

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

然而,发射装置无法知道其天线与接收器天线之间的波周期数。因此,PBR 涉及一种技术,可以根据其他数据推算出发射器 与接收器 之间的距离。具体操作如下。

我们将希望计算距离测量值的设备称为设备 A。

  1. 设备 A 以已知频率 f1 发射信号。设备 A 知道该信号的初始相位,为便于说明,假设该信号的相位为零弧度。
  2. 设备 B 在其天线上接收 f1 信号并记录其相位,我们将其称为接收相位。
  3. 然后,设备 B 以相同的频率 f1 发射接收到的信号,并将其回传给设备 A,关键是要确保该发射的初始相位与设备 A 接收到的信号的接收相位完全相同。
  4. 设备 A 测量从设备 B 到达的信号的接收相位,我们称之为 Pf1。

图 9

图 9 - 频率 f1 的双向测距

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

图 10

图 10 - 频率 f2 的双向测距

设备 A 现在计算 f1 和 f2 的相位差,即 Pf2 - Pf1。有了相位差以及频率 f1 和 f2 之间的差值,就可以用以下公式计算距离了:

2405信道探测 公式 4

其中 c 表示光速,(Pf2 – Pf1) 表示相位差,(f2 – f1) 表示频率差,r表示两个设备之间的双向测距距离。

这种方法称为双向测距,即第二个设备将信号传回始发设备,以便进行相位测量。

现实世界可能会带来一些挑战,而这些挑战并没有反映在对一些基本理论的解释中。我们将在本节稍后部分遇到这些挑战。

让我们通过一个简单的实际例子来了解一下。我们将使用一个比较人为的情况,即我们已经知道两个设备之间的距离,这样我们就可以看到公式是如何正确得出相同结果的。

图11展示了两个设备,即设备A和设备B,它们之间的距离恰好为1.248095162米。设备A发射了一个频率为2.402 MHz、波长为12.48095162厘米的信号。一个极其奇妙的巧合是,这两个设备之间的距离恰好是该波长的十倍。

图 9

图 11 - 恰好相隔 10 个 f1 波周期的设备

由于设备 A 发射信号时的初始相位为零,而设备 B 相距波长的整数倍,因此设备 B 的接收相位也为零。如图所示,设备 B 将信号发送回设备 A,并将初始相位设置为与其最初接收到的信号相同的接收相位值,这样我们实际上就有了一个延续信号。

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

图 10

图 12 - 相隔十多个 f2 波周期的设备

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

设备 A 现在掌握了计算到设备 B 的距离所需的所有信息。频率差为 30 兆赫,相位差为 1.56948842。将这些数值代入 r 的计算公式,计算出的距离为 2.49 米(精确到小数点后两位)。但这是从设备 A 到设备 B 的往返距离,所以两个设备之间的实际距离是这个数字的一半,即 1.24 米。这是预期的结果,说明了如何利用基于光速和已知两个传输信号的相位和频率间隔的 r 公式来精确计算两个设备之间的距离。

不过,还有一个复杂的问题,这在相位公式和 (2 * π) 的模数除法中有所暗示。相位值会随着距离的增加而变化,但它们是周期性的,也就是说,当相位值达到 (2 * π) 弧度时,它就会重置为零,相同的值开始重复出现。这可能会导致在确定两个设备之间的距离时产生歧义,因为相同的相位差值可能意味着不止一个距离。这就是所谓的距离模糊。

何时会遇到距离模糊问题,取决于频率间隔。一般而言,频率差越大,距离模糊问题出现的越早。幸运的是,通过将PBR与第二种距离测量方法——往返时延测量法结合使用,可以解决这一问题。

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

例如,如果射频信号从设备 A 传播到设备 B 再返回到设备 A 需要 20 纳秒,那么只要将光速乘以 20 纳秒,就能得出双向总距离略低于 6 米,因此两个设备之间的距离略低于 3 米。

双向距离 2r = c * 0.00000002

其中,c 是光速(299792458 米/秒),0.00000002 是双向飞行时间(ToF),单位为秒。由此得出以下结果:

2r = 299792458 * 0.00000002
= 5.99584916

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

2.99792458 米

不过,虽然这个基本公式是正确的,但在蓝牙设备中使用这个公式就比较复杂了,而且目前提出的理论还不完整。

制定和发送射频信号需要时间,接收、处理和发送往返响应也需要时间。考虑到无线电波在一微秒内的传播距离不到 300 米,这些看似短暂的时间在距离测量中可能非常重要。

2405信道探测 图 13

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

时间瞬间说明
ToDA设备A的发送时间。这是设备A通过无线方式发送信号的时间。
ToAB信号到达设备 B 的时间。这是信号到达设备 B 天线的时间。
ToDB从设备 B 发出的时间。这是设备 B 通过无线电波发送数据的时间。
ToAA设备A的到达时间。这是设备A的天线接收到来自设备B的信号的时间。

绿色虚线表示在这段时间内,两个信号均未在空中传输。

往返时间(RTT)可以参照图13中所示的时间点,按以下方式表示:

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

为了计算RTT,设备A需要知道设备B的响应时间(即ToDB—ToAB)。理论上,实现这一点的方法有多种。 实际上,最简单的解决方案是设备 A 和设备 B 事先商定一个固定的处理周期。设备 B 必须保证在该处理周期结束时完成处理,并准确地在周期结束时发送响应。随后,设备 A 便使用该预先商定的值来计算 (ToDB—ToAB)。

所介绍的 PBR 和 RTT 法的理论足以让我们对这一主题有一个初步的了解,而且从纯理论的角度来看,这些理论是完整的。然而,在现实世界中,精确测量距离更为复杂。在现实世界中使用的真实设备要想取得令人满意的结果,必须解决几个难题。

无线距离测量技术需应对的挑战类型如下:

  • 无线电信号多路径传播引起的复杂问题
  • 生成信号频率的准确性和稳定性
  • 内部时钟的稳定性以及时间戳的准确性和分辨率
  • PBR 距离模糊性
  • 安全

在本文的剩余部分中,我们将了解蓝牙技术中的高精度距离测量技术,并领会该技术是如何设计以有效解决现实世界中的此类问题的。

蓝牙™信道探测技术为产品实现比以往更高精度的距离测量提供了可能。测量的精确度取决于环境条件以及应用如何利用蓝牙™ 信道探测功能 。它还取决于实施选择,其细节不属于蓝牙核心规范的范围,但可以提高计算中使用的原始数据的质量。

蓝牙™信道探测为应用提供了灵活的测距工具包,可以进行多种不同的配置。本规范支持 PBR 和 RTT 方法。在大多数情况下,预计 PBR 将被用作主要和最精确的测距方法,同时使用 RTT 来提供额外的安全性。

用于蓝牙™信道探测的 PBR 在测距模糊出现之前,可以测量长达约 150 米的距离。除了使用 PBR 外,还可通过使用 RTT 识别和消除距离模糊,从而测量更远的距离。

应用程序可能会对准确性、安全性、延迟和功耗等问题给予不同程度的优先考虑。蓝牙™信道探测功能的可配置性为应用提供了对系统许多关键功能和行为的控制或影响,从而使系统的运行集中在应用 所需的正确优先级上。

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

蓝牙™ 信道探测功能定义了两种设备角色。第一个是启动器,第二个是反射器。

启动器 是希望计算从自己到另一个装置的距离的装置。另一个设备就是反射器。

启动器或反射器均可启动蓝牙™信道探测程序,本文稍后将详细介绍该程序。

图 14

图 14 - 角色

蓝牙™信道探测在一对一拓扑结构中进行,通信在一个扮演启动器角色的设备和一个扮演反射器角色的设备之间进行。

需要注意的是,蓝牙™信道探测启动器角色可由担任链路层 LE 中心角色的设备或作为 LE 外围设备的设备担任。这同样适用于蓝牙™ 信道探测 反射器角色,该角色可由 LE 中心设备或 LE 外围设备担任。

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

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

应用还负责为蓝牙控制器提供配置选择和偏好,这些选择和偏好用于建立蓝牙™信道探测配置,该配置由两个设备上的应用支持并适合这两个设备上的应用。

要使两台设备都能参与一个系统,其中一台设备扮演启动器角色,另一台设备扮演反射器角色,则两台设备都必须有一个支持蓝牙™ 信道探测功能的低功耗蓝牙控制器。

图 15

图 15 -蓝牙™信道探测应用程序和蓝牙协议栈

《蓝牙核心规范》从多个角度定义了蓝牙技术的架构。在第一个角度下,定义了一种通用的数据传输架构。

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

  • L2CAP是逻辑链路控制与自适应协议。L2CAP 信道是指两个设备之间在 L2CAP 层建立的逻辑连接,用于支持单个应用程序或更高层协议。
  • 逻辑链路是指“用于向蓝牙系统客户端提供独立数据传输服务的最低架构层”。
  • 逻辑传输层负责处理发送和接收例程、流控制机制、确认协议以及链路标识等问题。逻辑传输层可以是同步的、异步的或等时性的。
  • 物理链路 链路层建立的设备间连接。链路层 蓝牙协议栈中的一个层。
  • 物理信道定义了一个或多个通信设备对射频载波的占用模式。
  • 物理传输定义了普遍适用的问题,例如空中数据包结构和调制方案,这些方案用于将数字数据编码,以便利用无线电信号作为载波进行传输。

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

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

图 17

图 17 - CS 和数据传输架构

低功耗信道探测物理链路未关联逻辑传输类型或逻辑链路类型。

更全面的低功耗蓝牙定义方式是完整的协议栈及其层。蓝牙核心规范的大部分内容都用于定义每一层。图 18 描述了低功耗蓝牙协议栈。

图 18

图 18 - 低功耗蓝牙协议栈

低功耗蓝牙协议栈各层的作用摘要见表 2。

层数主要职责
通用访问配置文件 (GAP)定义了可在非连接状态下使用的运行模式和流程,例如如何利用广播实现无连接通信和设备发现。定义了安全级别以及一些用户界面标准。
通用属性配置文件 (GATT)根据属性表中的底层属性,定义了称为“服务”、“特征”和“描述符”的高级数据类型。
属性协议 (ATT)一种用于发现和使用服务器中存储在称为“属性表”的逻辑数据结构中的数据的协议。
安全管理协议 (SMP)执行配对等安全程序时使用的协议。
逻辑链路控制与自适应协议(L2CAP)通过射频连接提供数据信道复用服务,支持大型SDU的分段与重组,并具备增强的错误检测和重传功能。
主机控制器接口 (HCI)提供了一个用于主机组件与控制器之间进行命令和数据双向通信的接口。
等时适配层 (ISOAL)允许使用等时通道的设备采用不同的帧时长。
链路层定义了空中接口数据包格式、比特流处理程序(如错误检查)、状态机以及用于无线通信和链路控制的协议。定义了利用底层无线电进行无连接、面向连接和等时通信的几种不同方式,这些方式被称为逻辑传输。
物理层定义了蓝牙技术中与无线电(RF)使用相关的所有方面,包括调制方案、频段、信道使用、发射机和接收机特性。定义了三种物理层参数组合,分别称为 LE 1M、LE 2M 和 LE 2M 2BT 物理层。 LE 2M 2BT 首次在蓝牙核心规范 6.0 版中定义,且仅可与蓝牙®信道探测功能配合使用。此外还定义了另一种物理层方案:LE Coded。尽管名称不同,LE Coded 采用与 LE 1M 相同的物理层参数,但在链路层应用了前向纠错编码和模式映射。

表 2 - 低功耗蓝牙协议栈各层的主要职责和功能摘要

《蓝牙核心规范》中的物理层、链路层、主机控制器接口以及通用访问配置文件等章节均受到了蓝牙®信道探测功能引入的影响。第 4 节对此进行了进一步说明。

在启动蓝牙™ 信道探测之前,处于链路层 LE 中心角色的设备必须连接处于链路层 LE 外围角色的设备。然后在已建立的 LE-ACL 连接上启动安全机制,以便在准备和启动蓝牙™信道探测若干程序中,为交换各种链路层协议数据单元(PDU)提供安全传输。

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

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

并非所有这些步骤都是强制性的,这取决于诸如两个设备之前是否曾交换过可能已被缓存的信息等因素。图 19 展示了一种可能的步骤序列及其相关的 PDU。

图 19

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

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

蓝牙™ 信道探测安全功能启动程序首先由 LE 中央设备生成三个随机数,并通过 LL_CS_SEC_REQ PDU 发送给 LE 外围设备。LE 外围设备根据与中心设备随机数相同的规则自行生成三个随机数,并通过 LL_CS_SEC_RSP PDU 将其发送回中心设备。

表 3 对每个设备生成的随机数进行了命名和描述。

名称费用项目长度(位)
CS_IV_C由中央生成的初始化向量。64
CS_IN_C由中央生成的实例化非ce。32
CS_PV_C由中央生成的个性化向量。64
CS_IV_P由外设生成的初始化向量。64
CS_IN_P由外设生成的实例化非ce。32
CS_PV_P由 Peripheral 生成的个性化向量。64

表 3 - CS 安全参数

当两台设备都拥有两组蓝牙™ 信道探测安全参数时,每个中央/外围设备对的值都会被各自的链路层串联起来。这样,两个设备就都拥有了 CS_IV、CS_IN 和 CS_PV 这三个蓝牙™ 信道探测安全参数的相同值。

两台设备的蓝牙™ 信道探测能力可能相差很大,为了在启动前达成相互支持的配置,两台设备必须各自掌握另一台设备的能力信息。

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

功能差异的示例包括物理层(PHY)支持、往返时间(RTT)精度以及蓝牙®信道探测模式3 、攻击检测支持以及支持的天线路径最大数量。

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

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

发送 LL_CS_CONFIG_REQ PDU 的设备上的应用 可以选择它希望承担的启动器或反射器角色。另一个设备响应 LL_CS_CONFIG_RSP,并必须承担另一个角色。

分数频率偏移执行误差(FAE)是指生成的频率与预期或要求的频率之间的差值,以百万分率(ppm)表示。所有设备在这方面都有一定程度的误差,通常,误差的大小会因使用的射频信道而异。

为了获得尽可能精确的测距结果,支持蓝牙®信道测深功能的设备可能包含一个名为“模式0 FAE 表”的数据表。该表包含每个信道的 FAE 值,并在制造过程中预先设定。

模式-0 FAE 表请求过程允许启动器 请求反射器的模式-0 FAE 表。这涉及到启动器 传输一个 LL_CS_FAE_REQ PDU,而反射器 则回复一个包含其 FAE 表的 LL_CS_FAE_RSP PDU。

获取 FAE 表后,可将其保存为相同的反射器 ,以便将来使用,这样对于给定的设备对,该程序只需执行一次。

蓝牙™ 信道探测安全功能已启动、设备拥有彼此的能力信息、启动器拥有反射器的模式-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 中包含的建议可以接受的参数值。

在“蓝牙®信道探测启动”流程完成后,“蓝牙®信道探测”流程随即开始。这是两台设备交换射频信号的机制,旨在进行测量,以便应用程序利用这些测量结果计算距离。

在 ACL 连接中,数据包可在连接事件期间传输。连接事件的时间取决于 ACL 连接的连接间隔参数 。在连接事件期间,中心设备和外围设备轮流发送数据包,中心设备先发送,外围设备再响应。根据其他连接参数,外围设备可能只允许响应子集 的数据包,而中心设备可能只允许在子集 事件期间传输数据包。

如第3.3节“蓝牙®信道探测控制程序”所述,在蓝牙®信道探测的初始化过程中会使用LE-ACL连接。

图 20

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

蓝牙™信道探测 是通过一系列程序进行的。每个程序由若干 CS 事件组成,每个 CS 事件又进一步划分为 CS 子事件。在这一分级方案中,时间的最终细分是 CS 步。数据包或音调就是在步骤内发送和接收的。图 21 举例说明了这一时间划分结构方案。

图 21

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

有若干参数可用于控制蓝牙®信道探测程序的结构方面。表 4 列出了部分关键的可配置变量。

可配置变量范围/值费用项目
CS 程序的重复次数0 至 65535在终止蓝牙®信道探测之前需执行的CS过程重复次数。值为0表示CS过程应持续运行,直至通过“蓝牙®信道探测过程重复终止”过程予以终止。
每个事件包含的子事件数量1 至 16锚定在同一ACL事件下的子事件数量。
子事件间隔0 或介于 625 微秒至 40959.375 毫秒之间。同一CS事件内,从一个CS子事件开始到下一个CS子事件开始之间的时间间隔。0表示不划分为子事件。
每个子活动的时长变量每个子事件的持续时间。
每个子事件的步数2 至 160从配置的范围内随机选取。每个过程最多包含 256 个步骤。

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

程序、事件、子事件和步骤的时间、持续时间和调度由一系列参数控制,这些参数在蓝牙™信道探测配置和蓝牙™ 信道探测启动程序中进行配置。

所有过程、事件、子事件和步骤的开始时间都直接或间接地锚定在底层 LE ACL 连接中的某个选定连接事件上。在第一个蓝牙®信道探测过程实例中,其第一个事件和子事件均在同一时间开始,并被安排在距离选定连接事件锚点一定偏移量处发生。 第一个步骤发生在名为 T_FCS 的第一个子事件开始时间之后的一个偏移量处。T_FCS 的值范围为 15 μs 至 150 μs,其覆盖的时段用于通过跳频来改变频率。

过程和事件均按一定间隔发生,其间隔值以ACL连接间隔的数量来表示。图22展示了一个示例,其中过程间隔的值为4,事件间隔的值为2。

图 22

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

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

图 23

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

每个子事件至少包括两个步骤。不同的子事件可能会有不同的步骤,这取决于应用如何使用信道探测 。步骤的持续时间也会因配置而异。步骤的调度以及分配给它们的射频发射和接收时隙都要遵守严格的定时规则,更多详情可参阅蓝牙核心规范。

启动器 接收器之间的射频信号交换就在这几步之内完成。具体细节因应用层所选用的信道探测方法(PBR 和/或 RTT)而异。

一般来说,这些步骤不是涉及校准,就是涉及获取应用在距离测量算法中可以使用的低层测量值。

当使用RTT 时,启动器和反射器会交换名为 CS_Sync 的数据包。

图 24

图 24 - CS_Sync 数据包

在 CS_Sync 数据包末尾添加探测序列或随机序列是可选的。CS_Sync 数据包可使用 LE 1M、LE 2M 或 LE 2M 2BT PHY 进行传输。GFSK4 调制方案,与其他蓝牙低功耗数据包一致。

使用PBR 时,启动器和反射器交换称为 CS Tones 的信号。这些信号使用振幅偏移键控(ASK)来创建一个在指定时间内频率固定的符号。

步骤有一个相关的模式,该模式决定了步骤的目标以及在步骤中开展的活动类型。定义了四种模式,分别为模式-0、模式-1、模式-2 和模式-3。

模式-0 与校准有关。所有设备在频率生成时都会出现一定程度的时钟漂移和误差。这对于 RTT 和 PBR 测量方法都是一个问题。

模式-0 步骤的目的是让启动器 测量由反射器 发射的信号频率与由发射器产生的信号频率之间的差异。

启动器在选定的信道和频率上发送 CS_Sync 数据包。反射器回复一个 CS_Sync 数据包和一个 CS Tone。这两个数据包必须在与从启动器接收到的信号相同的频率上传输。

启动器 接收到来自反射器响应信号后,启动器 一个称为“分数频率偏移”(FFO)的值。FFO的计算涉及从反射器 接收到的音频频率反射器 反射器FAE表。随后,FFO将用于计算中,以补偿两台设备之间的差异,并提高结果的准确性。

图 25 显示了启动器 发送 CS_Sync 数据包后,反射器响应发送 CS_Sync 和 CS Tone 的过程。各种时隙的持续时间用符号名称表示,其含义如下:

符号含义
T_SY现在进入同步序列。持续时间取决于 CS_Sync 数据包的长度以及所使用的物理层。
T_RD传输斜坡下降时间。该时间为 5 μs,用于发射器 消除射频信道中的能量。
T_IP1从启动器传输结束到反射器开始传输之间的间歇时间。持续时间从 10 μs 到 145 μs 不等,由能力交换程序决定。
T_GD保护时间。持续时间始终为 10 μs。
T_FM频率测量时间。对于步进模式-0,持续时间始终为 80 μs。

表 5 – 时段参数

图 25

图 25 - 模式 0 传输和时隙

必须支持模式 0 步骤。

在模式-1 步骤中,计算 CS_Sync 数据包从启动器发送到反射器再返回的往返RTT)。

启动器 在传输初始 CS_Sync 数据包时会记录一个时间戳,称为 "出发时间"(ToD)。启动器 在收到反射器发回的 CS_Sync 数据包时记录第二个时间戳,称为到达时间(ToA)。这就是所谓的到达时间(ToA)。

图 26

图 26 - 模式 1 传输和时隙

间歇期 T_IP1 是已知的固定长度,足够反射器准备和传输其数据包。在这部分交换中使用预先商定的固定时间,意味着启动器知道接收器 的周转时间,并可将其用于 RTT 的计算。

必须支持模式-1 步骤。

模式-2 步骤的目的是支持 PBR。

模式 2 步骤始启动器 在选定信道上,并通过每个可用天线路径启动器 CS 音。经过一个衰减时间和间隔期后,反射器 以 CS 音反射器 ,其频率与从启动器 接收到的音相同启动器 其每个天线路径发送启动器 图 27 说明了这一通信过程。时隙持续时间涉及表 5 中描述的术语以及表 6 中定义的附加术语。

符号含义
T_SW为天线切换预留的时间段。
T_PM传输相位测量音的时间。
T_IP2CS 音调之间的间歇时间。
N_AP天线路径数量。

表 6 - 额外的步进模式-2 计时参数

图 27

图 27 - 模式-2 传输和时隙

启动器 测量 T_PM 期间从反射器 接收到的 CS Tone 的相位,每个天线路径测量一次。调整使用在模式-0 步骤中计算的补偿值。相位测量结果以 IQ 样本阵列的形式在 HCI 事件中传递给应用 。

需要注意的是,CS音调传输总时长的表达式中包含项N_AP + 1。这是因为在为每个天线路径分配的T_PM时长时隙之后,还紧跟一个称为CS音调扩展时隙的额外时间段。 出于安全考虑,该时隙的传输使用是随机化的,但当其被使用时,CS Tone将通过与紧邻的T_PM时隙中使用的相同天线进行传输。

必须支持模式-2 步骤。

模式-3 步骤使用 CS_Sync 数据包和 CS Tones 的组合交换 RTT 支持 RTT 计算和 PBR 。

图 28

图 28 - 模式 3 传输和时隙

对模式 3 的支持并非强制要求。希望结合 PBR 和 RTT 的应用程序,若通过能力交换程序发现反射器 不支持模式 3,反射器 结合了模式 2 和模式 1 步骤的模式序列。

模式-3 梯级包括一个扩展槽,与模式-2 梯级相同。

在前面关于模式-0、模式-1、模式-2 和模式-3 步骤的章节中,重点介绍了每种类型的单步中如何分配和使用时间的细节。但是,距离计算需要多次交换,这可能是为了提高计算距离的准确性,也可能是所使用的方法要求这样做。顾名思义,PBR至少需要两次交换。

要能够测量相位差,必须存在多个发射信号,且必须涉及多个频率。单个步骤涉及在单个选定信道和频率上交换单个CS音调。因此,很明显,PBR方法要求至少执行两个支持该方法的模式步骤。 需要注意的是,一般而言,使用更多射频信道进行更频繁的CS Tone交换,将为应用程序提供更多数据,并有机会产生更精确的距离测量结果。然而,交换次数越多,执行所需的时间也就越长。

如 3.2.3 天线阵列所述,设备可包含多个天线,用于PBR 交换。在PBR 交换(即模式-2 或模式-3 步骤)期间,设备可使用的最大天线数量为四根。给定的一对天线配置(一个属于发射器,一个属于反射器)提供了两个设备之间的若干天线路径。

《蓝牙核心规范》共定义了八种天线配置。表 7 列出了这些配置。

天线配置指数 (ACI)设备 若干天线设备 B 的天线数量天线路径数 (N_AP)
0111
1212
2313
3414
4122
5133
6144
7224

表 7 - 天线配置

天线切换发生在模式-2 步骤(PBR)和每个模式-3 步骤 PBR 部分。具体来说,根据发射装置的天线配置,在发射 CS Tone 时可以进行天线切换。在模式-2 和模式-3 步骤中,CS Tone 传输时隙持续时间的计算要考虑到天线切换和多条天线路径:

(T_SW+T_PM)*(N_AP+1)

  • T_SW 用于确保天线切换有足够的时间,其取值为 0、2、4 或 10 微秒。
  • T_PM 是 CS 音调的传输时间。
  • N_AP 表示天线路径的数量。+1 项是为了预留扩展插槽。

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

当蓝牙控制器提供的数据来自更多的数据包和音频交换时,蓝牙™信道探测应用将产生更高质量、更精确的距离测量结果。

蓝牙®信道探测过程始终包含至少两种不同模式类型的步骤。第一个是用于频率偏移测量的模式-0步骤,第二个必须是其他模式中的任意一种。主要的非模式-0模式称为 Main_Mode。如果存在次要的非模式-0模式,则称为 Sub_Mode。表 8 列出了六种允许的非模式-0模式组合。

主要模式子模式
模式-1无
方式-2无
模式-3无
方式-2模式-1
方式-2模式-3
模式-3方式-2

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

应用程序可通过 HCI 命令配置步进模式序列。设备之间可请求并协商的关键参数包括表 9 所示的内容。

HCI参数目的
模式_0_步数定义在每个 CS 子事件开始时要执行的连续模式 0 步骤的数量。允许的值为 1、2 或 3。
主模式类型表示将作为主模式的模式(1、2 或 3)。
子模式类型表示将作为子模式的模式(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. 由于蓝牙核心规范 称之为子模式插入(sub_mode insertion)的过程,在 n 个主模式步骤序列之后会出现一个子模式步骤。

除子事件必须始终以一个或多个模式 0 步开始这一一般规则外,步进模式序列与子事件边界无关。完整序列可以跨越多个子事件。

图 32

图 33 - 梯级模式序列示例

应用程序还可以使用另一种模式排序参数 。Main_Mode_Repetition 参数指定在当前子事件中重复上一个子事件中最近的主模式步骤的数量。

当主模式重复功能生效时,当前子事件中重复的步骤将使用与前一个子事件中相应步骤相同的信道索引。这确保了重复传输的步骤具有相同的预定频率。请注意,在同一频率上重复主模式步骤的目的是为了应对可能出现的频率漂移以及多普勒频移效应。

主模式重复使应用系统有机会将交换的某些特性联系起来,并能更容易地跟踪移动设备的速度。

由于主模式重复而纳入模式序列的步数,在子模式插入过程中不予计数。

通过配置模式组合,并利用子模式插入和主模式重复来控制步进模式序列,应用程序能够对蓝牙®信道探测过程进行精细控制。在两种距离测量方法中,PBR 的精度最高,而同时使用 RTT 则能显著增强系统安全性。此外,该方法还能解决使用 PBR 方法时可能出现的距离模糊问题。

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

应用程序还需考虑延迟问题。每次信号交换都需要时间。根据天线路径的数量,模式 1 的 RTT 交换有时会比模式 2 的 PBR 交换耗时更长。对于需要将延迟控制在一定阈值以下的应用程序,通常会选择在蓝牙®信道探测过程中降低 RTT 交换的比例。

图 34

图 34 - 使用模式 2 和模式 1 实现 3:1 的PBR 与 RTT 比

图 35

图 35 - 使用模式 2 和模式 3 实现 3:1PBR 与RTT 比

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

共为蓝牙™ 信道探测定义了 72 个信道,每个信道有1 MHz宽度和唯一的信道索引值。这些信道的排列可确保避开 LE 一级广播信道。

信道宽度为 1 兆赫,而不是通常的 2 兆赫,这就确保了使用PBR 信道PBR 信号之间的频率间隔在 150 米左右才会出现距离模糊。

CS 渠道指数射频中心频率允许
02402 兆赫不
12403 兆赫不
22404 兆赫是
………
222424 兆赫是
232425 兆赫不
242426 兆赫不
252427 兆赫不
262428 兆赫是
………
762478 兆赫是
772479 兆赫不
782480 兆赫不

表 10 -蓝牙™ 信道探测 指数和射频物理信道探测

系统维护着一个信道索引过滤位图。这是一个为蓝牙®信道探测定义的信道索引列表,其中每个信道都被标记为“包含”或“排除”。 蓝牙®信道探测的信道索引过滤器映射由一个名为“信道探测信道映射更新”链路层 维护,该过程允许启动器 反射器 根据对本地信道状况的评估反射器 另一设备应使用或避免哪些信道。任何信道选择算法都不会选择被排除的信道。

如图 36 所示,跳频一般发生在执行一个步骤之前。

图 35

图 36 – 执行步进前的频段跳转

如果在配置模式重复时为 Main_Mode_Repetition 参数指定了一个非零值,则此规则例外。因模式重复而重复的步骤将使用与其重复的前一个子事件中的步骤相同的信道索引。

蓝牙™信道探测中使用了一套新的三信道选择算法(CSA)。它们统称为 CSA #3,单独称为 CSA #3a、CSA #3b 和 CSA #3c。

CSA #3a 仅用于在模式 0 步骤中选择要使用的信道。CSA #3b 和 CSA #3c 均设计用于非模式 0 步骤,但在一次蓝牙®信道探测程序实例中,二者只能使用其中之一。因此,在任何时候,都有两种不同的信道选择算法与蓝牙®信道探测相关联。

信道选择涉及两个不同的信道索引列表。第一个用于 CSA #3a 和模式-0 梯级的信道选择。第二个用于 CSA #3b 或 CSA #3c 的非模式-0 步骤。

创建信道索引列表的方法是随机调整标注在信道图中的信道顺序,以创建一个洗牌信道列表。CSA #3a 和 CSA #3b 的方法完全相同。CSA #3c 采用了不同的方法,但依赖于相同的原始洗牌函数,在蓝牙核心规范中称为 cr1。

模式 0 信道选择算法 CSA #3a 使用一个打乱的信道列表。用于模式 0 步进频跳的打乱信道列表与用于非模式 0 信道跳转的相应信道列表不同。打乱信道列表中的每个条目都是唯一的,且仅使用一次。当打乱信道列表中的所有条目均已被使用后,该列表将重新生成,从而创建一个新的随机信道列表。

非模式-0 信道选择算法 CSA #3b 使用的洗牌信道列表与模式-0 信道跳频使用的相应信道列表不同。CSA #3b允许信道索引列表在重新生成前重复多次,这由一个名为CSNumRepetitions的参数 控制,应用程序可对该参数 进行设置。

算法 CSA #3c 与 CSA #3b 有显著差异。通道映射中包含的通道子集被组织成组,并生成形成特定形状的通道模式。该算法支持两种模式类型,分别命名为“hat”和“X”。在某些情况下,CSA #3c 在检测反射信号路径方面可能具有一定优势。对 CSA #3c 的支持为可选功能。

RTT 方法涉及在模式 1 和/或模式 3 的步骤中交换 CS_Sync 数据包。该方法定义了多种建立到达时间 (ToA) 时间戳的方式,这些时间戳是计算往返时间所必需的。应用程序可以通过在蓝牙®信道探测配置过程中使用 HCI 命令并设置 RTT_Type参数来指定要使用的方法。

可供选择的方法有:根据访问地址进行定时测量;使用长度为 32 或 96 比特的探测序列;或使用长度为 32、64、96 或 128 比特的随机序列。时间估计的精确度因所用方法和用于计时的字段长度而异。使用探测序列和随机序列都可以进行更精确的估算,即小数计时估算。

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

访问地址在链路层 是一个32位二进制值链路层 传输过程中,其值由一系列模拟符号表示,这些符号是通过将GFSK调制应用于这些数字位而形成的。单个符号由一次无线电传输组成,其频率代表0或1的二进制值,根据符号速率的不同,其持续时间为1微秒或0.5微秒。

发射器的振荡器和接收器的振荡器不可能彼此同相,这可能是这一过程不准确的原因。为改进结果,建议对按步骤交换的一系列数据包进行测量,并计算数值的分布。然后可以利用这种分布来提高 ToA 时间戳的准确性。

《链路层 》H部分第3.3节和第3.4节中描述了两种可选方法,这些方法能提供更高的到达时间(ToA)时间戳精度。这两种方法均提供分段时间估计。

CS_Sync 数据包可在数据包末尾添加额外的可选数据。如果使用该选项,CS_Sync 数据包可附加两个字段中的一个:随机序列或发声序列。

第一种分数时序方法涉及分析 CS_Sync 数据包中的可选“随机序列”字段,以确定分数时序误差。根据随机序列计算出的分数时序误差将用于优化访问地址的时间戳。

第二种分数级定时方法基于对附加在 CS_Sync 数据包后的探测序列字段的分析。探测序列是在链路层 上由 0 和 1 交替组成的模式链路层 使用 GFSK 调制链路层 产生两个频率和相位各不相同的无线电音调。通过分析这两个音调之间的相位差,可以计算出分数级定时误差,并利用该误差来优化到达时间(ToA)时间戳。

蓝牙™信道探测应用开发人员可根据三种不同方法之一得出的测量结果推算 RTT。可以选择使用接入地址 的 ToA,或使用 CS_Sync 数据包中的随机序列或探测序列的两种分数方法之一。

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

调制方案定义了一种利用信号的一个或多个物理特性对数字信息进行编码的方法。频移键控(FSK)是调制方案的一个简单例子。它通过将载波信号的频率上移一定量(即频率偏移)来表示二进制值1,或下移相同量来表示二进制值0,从而生成相应的符号。

图 36

图 37 - 频移键控 (FSK) 编码比特流 01010101010

基本频移键控(FSK)的特征在于频率之间的突然切换,这会导致噪声的产生,且其传播的频率范围比理想情况更广。为解决这一问题,蓝牙技术采用了一种名为高斯频移键控(GFSK)的特殊FSK变体。GFSK与基本FSK的不同之处在于,它使用了一个滤波器,使频率之间的过渡遵循一条曲线。 曲线的形状和频率转换速率由多种参数决定,其中包括带宽-比特周期积(BT)。

带宽-比特周期积(BT)是信号的一种属性,它反映了信号带宽与符号持续时间之间的关系。BT 影响构成符号的射频脉冲的波形和持续时间。BT 值越高,脉冲越窄、越方正;BT 值越低,脉冲越宽、越圆润。

《蓝牙核心规范》引入了一种名为 LE 2M 2BT 的新物理层(PHY)。目前,LE 2M 2BT 仅可用于蓝牙®信道探测。表 11 列出了各物理层的对比,并突出了 LE 2M 2BT 的关键特性。

LE 1M低功耗编码低功耗2M低功耗 2M 2BT
符号率1 兆样本/秒1 兆样本/秒2 Msym/s2 Msym/s
英国电讯公司0.50.50.52.0
最小频率偏差185 千赫185 千赫370 千赫420 千赫
错误检测儿童权利委员会儿童权利委员会儿童权利委员会不适用
纠错无选委会无不适用
要求强制性可选可选可选。仅适用于航道测深。

表 11 - 蓝牙 LE PHY 比较

图 37

图 38 - 脉冲形状

某些无线电发射器具备将信噪比(SNR)调节至指定范围内的能力。如果反射器 均支持此功能,则可用于提高与RTT距离测量方法相关的蓝牙®信道探测步骤(即模式1和模式3步骤)的安全性。

蓝牙核心规范定义了一系列 SNR 输出指数 (SOI) 值,这些值对应于以 dB 为单位测量的相关 SNR 输出水平。表 12 再现了这些定义。

信噪比输出指数(SOI)信噪比输出电平(dB)
018
121
224
327
430

表 12 - SNR 输出指数和等级

距离测量解决方案特有的安全问题通常涉及以下威胁:不可信设备通过某种方式欺骗某台受信任设备,使其误判另一台受信任设备已足够接近,从而批准或执行某项操作。

蓝牙™信道探测包括一系列功能,可作为应对一系列距离测量安全威胁的对策。这些功能可分为四类:

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

蓝牙®信道测距支持两种距离测量方法:基于相位的测距(PBR)和往返时间(RTT)。这两种方法的工作原理截然不同。应用程序可以通过选择合适的模式组合来同时使用这两种方法,例如将模式 2 作为 PBR 的主模式,并将模式 1 作为 RTT 的子模式。

安全专家认为,同时攻击这两种方法,从而操纵蓝牙™信道探测信号的相位和计算出的 RTT,以得出误导性的一致结果,其复杂程度非常高。

首先,设备之间必须已完成配对。这是建立加密的LE-ACL连接的必要条件。随后,CS Security Start将通过该加密的LE-ACL连接进行,这意味着蓝牙®信道探测(Bluetooth® Channel Sounding)安全密钥数据的交换将受到保护,防止被窃听。

最后,中央和外围设备对蓝牙™ 信道探测 安全数据的部分值进行安全交换。这为两个设备提供了相同的数据,从而为 CS 初始化矢量 (CS_IV)、CS 实例化唯一性数据 (CS_IN) 和 CS 个性化矢量 (CS_PV) 各自构建一个完整的通用值。

《蓝牙核心规范》定义了一种符合 NIST 特别出版物 800-90Ar1 中建议的随机位生成器。该生成器被称为确定性随机位生成器(DRBG)。

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

在蓝牙®信道探测过程中,每台设备都会在模式 0、模式 1 和模式 3 的每个 CS 步骤中,更改 CS_Sync 数据包中的“访问地址”字段。新的访问地址值是通过涉及 DRBG 的选择规则生成的,且两台设备都知晓对方将使用的访问地址。接收设备会检查访问地址值,并向主机报告任何问题。

访问地址的长度为 32 位,可以有 4,294,967,296 个不同的值。因此,想要欺骗 CS_Sync 数据包的恶意设备只有 1 分之 4,294,967,296 的机会猜到所交换的多个 CS_Sync 数据包中每个数据包的正确访问地址 值。

CS_Sync 数据包可包含一个可选的“随机序列”字段。该字段支持其中一种分数 RTT 方法。对于每个发送的 CS_Sync 数据包,“随机序列”字段的内容都会使用 CS DRBG 重新生成。随机序列字段的长度可以是 32、64、96 或 128 位。

探測序列由32位元或96位元的可預測交替模式組成,用於計算分數回程時間(RTT)。為降低此已知位元模式遭惡用之風險,會使用差分隨機位元組生成器(DRBG)在序列中選定位置,插入兩個隨機選取的4位元值之一,此值稱為標記訊號。 由DRBG选出的标记信号值为0b1100或0b0011。在探测序列中随机插入随机位模式,可防范探测序列伪造攻击。

模式 2 和模式 3 的时隙包含一个音调扩展时隙。该音调扩展时隙始终被保留,但该时隙内是否发生传输是随机的,并由 DRBG 控制。接收设备知道何时应预期在音调扩展时隙内收到传输、何时不应预期,但攻击设备则不知道。

在基于相位的测距过程中,会通过两个设备之间所有可用的天线路径发送一个音调。在每次蓝牙®信道探测步骤中,都会使用DRBG对所使用的路径序列进行随机化。

探測序列由交替的 0 和 1 位元值序列組成。相應的射頻信號可視為由兩個頻率不同且相位各異的音調組成。因此,可以利用單個 CS_Sync 封包中「探測序列」欄位所編碼的兩個音調之間的相位差,同時進行 PBR 計算,並利用該 CS_Sync 封包計算往返時間。 基于单个数据包同时计算往返时间(RTT)和峰值带宽(PBR)的测量值,使得针对该通信的攻击变得极其复杂。

链路层 “蓝牙®信道探测”部分包含了对攻击检测系统的描述。蓝牙控制器中的蓝牙®信道探测攻击检测,是基于将接收到的信号与参考信号定义进行比对,并检查接收信号中是否存在可能的攻击迹象(例如意外的比特跳变或相位调整)。

《蓝牙核心规范》定义了一种用于报告正在进行中的攻击概率的标准化指标,称为标准化攻击检测指标(NADM)。表 13 列出了 NADM 值的定义。

NADM 值费用项目
0x00攻击的可能性极小
0x01攻击的可能性很小
0x02袭击的可能性不大
0x03攻击是可能的
0x04袭击很可能发生
0x05攻击很有可能发生
0x06攻击极有可能发生
0xFF未知 NADM。适用于没有随机序列或探测序列的 RTT 类型的默认值。

表 13 - NADM 值

图 38

图 39 - 攻击探测器系统概要

目前已知存在多种物理层攻击,其中“中间人”(MITM)攻击者会预测合法发送设备发送的、仅部分接收到的符号值,并转发经过时间篡改的完整生成版本,从而导致合法接收方误判往返时间。 LE 2M 2BT 物理层(其带宽与比特周期乘积值为 2.0)所使用的符号脉冲持续时间比其他物理层相关的脉冲更短,这降低了此类攻击的风险。

SNR 控制功能允许启动器 将预先商定的随机噪声量混入信号中。此功能仅适用于模式 1(RTT)和模式 3(RTT 和 PBR)步骤期间发送的 CS_Sync 数据包。通过向信号中注入噪声,攻击者完成分析将变得更加困难且耗时,从而降低了此类攻击成功的可能性。 另一方面,由于反射器 已预先商定信噪比(SNR),因此能够轻松过滤掉人为添加的噪声。

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

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

基于振幅的抗攻击能力增强了蓝牙™ Channel Sounding的安全能力。通过定义精确的攻击模型、稳健的基于 DFT 的检测指标和全面的多阶段测试程序,它可确保经过认证的设备能够可靠地检测到操纵距离测量的复杂企图。

基于Channel Sounding 振幅的攻击弹性功能 与 HCI 和链路层 协议的必要更新相结合,为缓解不断变化的威胁提供了一个全面的框架。它体现了蓝牙对安全的承诺,有助于确保其精确测距技术在面对新的挑战时仍然准确可靠。

创建蓝牙精密应用和产品需要利用控制器的蓝牙™信道探测功能,并将其与定制的应用代码相结合。解决方案应用 组件的开发人员必须注意本节强调的各种问题。

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

蓝牙核心规范没有规定应用程序使用哪种算法来计算距离。因此,这也是供应商可以实现差异化的一个领域。卓越的算法将产生卓越的结果。

《主机控制器接口功能规范》定义了两个事件,控制器通过这些事件将蓝牙®信道探测数据传递给主机。这两个事件分别称为“LE CS 子事件结果”和“LE CS 子事件结果继续”。

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

图 39

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

蓝牙®信道探测 HCI 事件将各种类型的数据从控制器传输至主机。本文将介绍其中部分关键字段和数据结构。

频率补偿— 模式 0 步进的目的是启动器 反射器目标频率与实际频率之间的差异。这用于计算分数频率偏移(FFO),进而可用于补偿此类差异对频率和定时值的影响,最终提高距离测量的精度。

Num_Steps_Reported— 此字段表示该 HCI 事件中报告的步数。它还表示四个与步数相关的数据数组的大小:Step_Mode、Step_Channel、Step_Data_Length 和 Step_Data。

Step_Mode [ ]— 该数组包含每个步骤的模式,按步骤编号排序,并以 0 到 3 之间的数值表示。

Step_Channel [ ]— 该数组包含在执行相应步骤时所使用的射频通道的索引。

Step_Data_Length [ ]— 每个步骤报告的数据在内容和结构上各不相同。该数组包含关联的 Step_Data 数组中每个元素的长度。

Step_Data [ ]— 每个步骤报告的数据取决于步骤模式、设备角色(反射器)以及是否使用了探测序列。包含相关数据的结构称为 Mode_Role_Specific_Info 对象,该结构共定义了十一种变体。 可能包含的数据示例包括 Packet_Quality、Tone_Quality、接收信号强度指示器 (RSSI)、测得的频率偏移、NADM 值、天线标识符、相位校正项以及数据包发送与到达之间经过的时间测量值。时间值以半纳秒为单位表示。

应用层负责决定采用哪种步进模式;当同时使用主模式和子模式时,还需确定所选各模式的步数比例应如何设定。应用或产品开发人员在做出决策时,需要综合考虑距离测量精度要求、安全性、响应延迟,以及本地控制器所支持的功能。

应用层可以通过选择模式组合和往返时延(RTT)参数,对整体解决方案的安全性进行一定程度的控制。开发人员应首先了解并评估通用访问配置文件(GAP)所定义的安全级别,以此作为确定采用哪些安全选项的起点。

建议始终将PBR与RTT结合使用,以便通过这两种方法对距离计算结果进行交叉验证。PBR通过蓝牙®信道测距技术提供最精确的距离测量结果,而支持RTT的主要目的是作为一项安全措施。

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

蓝牙®信道探测被设计为一个可扩展的框架,通过核心规范更新中的增量功能增强持续演进。虽然核心架构和流程确立了共同的基础,但随着时间的推移,可能会引入额外功能,以应对新发现的需求、操作方面的考量或实现上的优化。 本节总结了蓝牙®信道探测功能的增强内容,这些增强扩展了《核心规范》第 6.0 版中第 1 版功能的特定方面。随着信道探测功能的持续演进,本节将不断扩展以纳入未来的增强内容。

蓝牙核心规范第 6.2 版针对一类利用幅度操纵来影响信道探测中距离测量的测距攻击,引入了增强的抗干扰能力。此类攻击采用与信道探测数据包的符号时序同步的周期性放大模式,通过模拟前端中的幅度-相位转换,在接收端引起可预测的相位失真。 为检测此类行为,该规范通过基于离散傅里叶变换(DFT)的检测方法,扩展了现有的标准化攻击检测指标(NADM)框架。该方法分析符号频率及其谐波处的能量分量——这些分量是周期性振幅操纵的特征——并将所得指标纳入现有的 NADM 报告中。 该增强功能强化了通道探测(Channel Sounding)在无需规定具体接收机实现方案的情况下,检测高级早期承诺测距攻击的能力,在应对新识别威胁向量的同时保持了灵活性。 

蓝牙核心规范第 6.3 版引入了对内联相位校正项(inline PCT)的支持,以此增强基于相位的信道探测测距流程。内联 PCT 允许反射器 在重传之前于无线电处理链中应用相位校正项,从而实现相位对齐的信号转发,而无需在启动器完全通过数字方式进行相位补偿。 通过在处理链中集成相位校正,该机制可在保留基本双向信道探测测量模型的同时,减少与相位误差补偿相关的控制和报告开销。对内联 PCT 的支持为可选功能,需由设备间协商确定,从而保持与依赖启动器数字相位校正的实现方案的互操作性。如需了解更多信息,请参阅《蓝牙®核心规范 v6.3》技术概述的第 3 节。

蓝牙核心规范第 6.3 版通过引入针对特定物理层(PHY)的 RTT 精度声明,增强了信道探测往返时间(RTT)的测量功能。在此增强之前,尽管各物理层的符号速率和时序特性各不相同,设备仍会报告一个适用于所有支持物理层的统一 RTT 精度目标值。 更新后的机制允许设备针对每种物理层(包括 LE 1M 以及 LE 2M 等可选的高速物理层)独立声明 RTT 精度要求。这使得 RTT 交换计数与每种物理层可实现的时序精度之间能够更精确地匹配,从而提高了多物理层环境中的效率和一致性。 该增强功能通过链路层 交换和版本化的主机控制器接口命令实现,同时保持与旧版实现的互操作性。如需了解更多信息,请参阅《蓝牙®核心规范 v6.3》技术概述的第 3 节。

为了引入蓝牙™信道探测功能,对蓝牙核心规范的几个层次进行了修改。本节概述了主要变化,旨在提供逐章的高层次参考,仅供参考。详细内容请查阅《蓝牙核心规范》。

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

  • 第 3 节“传输架构”介绍了用于蓝牙®信道探测的新数据包结构和信令格式。该节还定义了新的 LE 信道探测物理信道和 LE 信道探测物理链路。
  • 第 9 节“使用蓝牙低功耗(Bluetooth Low Energy)进行蓝牙®信道探测”简要概述了蓝牙®信道探测功能。

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

  • 第9节介绍了GAP蓝牙®信道测深程序以及反射器作用。
  • 第 10 节定义了蓝牙®信道探测的四个安全级别。

第 4 卷 E 部分包含Host Controller 接口功能规范。

  • 第 7.7.6.5 节“LE 元事件”已更新,新增了多种与蓝牙®信道探测相关的事件类型,包括“LE CS 子事件结果”事件和“LE CS 子事件结果继续”事件。
  • 第 7.8 节“LE 控制器命令”现已新增若干用于信道探测的命令,例如 LE CS 读取远程 FAE 表命令、LE CS 创建配置命令、LE CS 启用安全命令以及 LE CS 启用流程命令。

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

  • 第 1 节介绍新的低功耗2M 2BT PHY。
  • 第 2 节介绍了蓝牙™ 信道探测的新信道探测安排。
  • 第 3 节定义了新的 SNR 控制功能。
  • 第 3.4 节为支持蓝牙™信道探测的设备增加了稳定相位要求。
  • 第 3.5 节描述了蓝牙™ 信道探测中频率测量和生成的要求。其中包括分数频率偏移 (FFO) 测量要求的规范。
  • 第 5.3 节是一个新章节,介绍了蓝牙™ 信道探测的天线切换。
  • 第 6 节涉及相位测量要求,包括参考接收器 定义、相位测量精度要求说明、频率致动误差补偿要求和相位测量定时规则。
  • 附录 B 提供了蓝牙™ 信道探测的测试设备设置示例。

第 6 卷 B 部分包含《链路层 规范》。

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

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

有了蓝牙™信道探测功能,开发人员可以利用该功能的安全精细测距能力,创造出令人兴奋的产品和应用。

基于世界上最普遍的低功耗无线技术的查找 和数字密钥解决方案的最终用户将享受到性能的提升,这要归功于使用蓝牙™信道探测功能的设备所能实现的高质量结果。知道产品 开发人员已经获得了一套全面的安全功能,可以用来解决相关的问题,这将使他们高枕无忧。

蓝牙™ 信道探测技术的灵活性意味着开发人员可以优先考虑最重要的测距方面,无论是安全性、准确性还是延迟。并不是所有的应用都是一样的,蓝牙™信道探测功能的设计就认识到了这一点,并充分考虑到了这一点。开发人员可以自由决定他们和他们的用户在实施产品时最关心的问题。

蓝牙设备年出货量超过 50 亿件。这带来了巨大的规模经济效益,使产品和元件制造商受益,并最终使他们的客户受益。

蓝牙™信道探测和执行安全精密测距的能力为提高许多蓝牙连接设备的便利性、安全性和保密性提供了机会。存在检测、寻向和现在的信道探测可以单独使用,也可以结合使用,以创建空间感知产品和应用,让终端用户和商业企业从中受益。

蓝牙技术已无处不在,其基于广泛采用且规范严谨的技术标准。对于希望为蓝牙产品增添精细测距功能的开发者而言,采用蓝牙®信道探测技术是一个简单且安全的选择。请下载《蓝牙核心规范》,了解这一蓝牙技术功能体系中令人振奋的新增功能的完整详情!

项目地点
蓝牙®核心规范 v6.0https://www.bluetooth.com/specifications/specs/core60-html/
Find Me配置文件https://www.bluetooth.com/specifications/specs/find-me-profile-1-0/
即时警报服务https://www.bluetooth.com/specifications/specs/immediate-alert-service-1-0/

注释


1.通用属性配置文件
2.传播速度取决于信号穿过的介质。但在理论计算中,通常采用光速。
3.CS 模式在第 3.5 节中有详细说明
4.高斯频移键控