技术概述

Bluetooth® Channel Sounding

1. 导言

2.背景情况

2.1 设备定位和Bluetooth LE

2.1.1 找到我

2.1.2 信标和第一代距离估计

2.1.3 利用 AoA 和 AoD 确定方向

2.1.4Channel Sounding

2.2 简介Channel Sounding

2.2.1 无线电波的基本特性

2.2.1.1 振幅和波浪周期

2.2.1.2 波长 

2.2.1.3 频率

2.2.1.4 阶段

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

2.2.2 距离测量方法

2.2.2.1 基于相位的测距(PBR)

2.2.2.1.1 理论

2.2.2.1.2 工作示例

2.2.2.2 回程定时 (RTT)

2.2.2.2.1 理论

2.2.2.3 现实世界的挑战

3.Bluetooth® Channel Sounding

3.1 概述

3.2 结构

3.2.1 设备角色

3.2.2 拓扑

3.2.3 天线阵列

3.2.4 应用

3.2.5 数据传输架构

3.2.6Bluetooth LE 协议栈中的Channel Sounding

3.3Channel Sounding 控制程序

3.3.1Channel Sounding 安全启动

3.3.2Channel Sounding 能力交换

3.3.3Channel Sounding 配置

3.3.4 模式 0 FAE 表请求

3.3.5Channel Sounding 启动

3.3.6Channel Sounding

3.4 事件、子事件和步骤

3.4.1 LE-ACL 连接和时间划分

3.4.2 时间划分

3.4.2.1 结构

3.4.2.2 时间安排

3.5 CS 步骤

3.5.1 关于步骤

3.5.2 数据包和音调

3.5.3 阶跃模式

3.5.3.1 模式-0

3.5.3.2 模式-1

3.5.3.3 模式-2

3.5.3.4 模式-3

3.6 确定相位差

3.7 天线切换

3.8 模式排序

3.8.1 模式排序概述

3.8.2 模式组合

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

3.8.4 主模式重复

3.8.5 应用和模式排序注意事项

3.9 射频信道和信道选择

3.9.1 CS 通道图

3.9.2 信道过滤

3.9.3 跳频

3.9.4 频道选择

3.9.4.1 概述

3.9.4.2 信道索引洗牌

3.9.4.3 CSA #3a

3.9.4.4 CSA #3b

3.9.4.5 CSA #3c

3.10 RTT 选项和精度

3.10.1 基于访问地址的定时

3.10.2 分数定时估算

3.10.3 RTT 方法比较

3.11 LE 2M 2BT PHY

3.11.1 调制方案

3.11.2 带宽比特周期Product

3.11.3 LE 2M 2BT

3.12Channel Sounding 步的信噪比控制

3.13 安全

3.13.1 概述

3.13.2 PBR 和 RTT 交叉检查

3.13.3 启动 CS 安全系统

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

3.13.4.1 安全访问地址

3.13.4.2 RTT 小数计时随机序列

3.13.4.3 鸣响序列标记信号

3.13.4.4 单调扩展槽随机传输

3.13.4.5 随机选择天线路径

3.13.5 响声序列

3.13.6 攻击检测和报告

3.13.7 LE 2M 2BT

3.13.8 SNR 控制和 RTT 安全

3.13.9 CS 安全级别

3.13.10 针对特定供应商的实施和附加安全功能

3.14Host 应用程序

3.14.1 距离测量算法

3.14.2Controller 与Host 之间的 CS 数据通信

3.14.2.1 HCI 事件类型

3.14.2.2 HCI 事件定时

3.14.2.3 HCI 事件内容

3.14.3 模式组合和模式排序

3.14.4应用 安全

4.Bluetooth核心规范 变化概述

4.1 结构

4.2Host

4.2.1 通用访问配置文件

4.2.2Host Controller 接口

4.3Controller

4.3.1 物理层

4.3.2 链路层

4.3.3Channel Sounding

5.结论

6.参考文献


版本:   1.0
修订日期 2024 年 7 月 9 日
作者:   

马丁-伍利Bluetooth SIG

1. 导言

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

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

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

Bluetooth核心规范 更新增加了一项名为 Bluetooth®Channel Sounding 新功能,可在两台蓝牙设备之间实现安全的精细测距,这也是本文的主题。本文无意取代或替代Bluetooth核心规范。

2.背景情况

2.1 设备定位和Bluetooth LE

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

2.1.1Bluetooth® 查找我

就在Bluetooth LE 首次纳入Bluetooth核心规范的同一年,第一个正式的与定位相关的Bluetooth LE 配置文件 规范发布了。这就是 Find Me配置文件。

查找我配置文件 定义了个人物品查找的标准方法,也称为 "查找我的"。一个设备承担查找我的定位器的角色。通常是智能手机。用户可能有遗失记录的其他设备(带有Bluetooth 钥匙扣的钥匙是最受欢迎的)与 "Find Me Locator "设备配对,各自扮演 "Find Me Target "的角色。

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

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

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

2.1.2 信标和第一代距离估计

蓝牙信标利用Bluetooth LE 的广告功能。广告包括广播小数据包,范围内的任何设备都能通过扫描接收到这些数据包。

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

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

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

图 1

图 1 - 路径损耗和距离

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

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

2.1.3 使用 AoA 和 AoD 的Bluetooth® 寻向功能

2019 年,Bluetooth核心规范 5.1 版本包含了一项重要的新功能--蓝牙寻向。

蓝牙方向查找功能使应用程序能够利用Bluetooth LE 控制器进行的相位测量来准确计算接收信号的方向。该功能定义了两种方法。

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

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

图2
图 2 - 使用 AoA 和 AoD 查找方向

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

图 3
图 3 - IQ 样本

2.1.4 蓝牙®Channel Sounding

新的 Bluetooth®Channel Sounding (蓝牙Channel Sounding )功能使我们能够制造出能够计算两台蓝牙设备之间距离的产品,其精确度远远高于使用 RSSI 和路径损耗第一代方法所能达到的精确度。它以完全不同的方式工作,包括各种安全保障措施,可降低各种类型的风险。

预计 Bluetooth®Channel Sounding 将使 "查找我的 "解决方案、数字钥匙产品以及更多蓝牙连接设备受益。

2.2 蓝牙®Channel Sounding简介

在讨论Bluetooth LE 中的Bluetooth LE Channel Sounding 之前,本节将首先介绍该功能背后的一些基本理论。已经熟悉该主题的读者可跳至第 3 节 "Bluetooth®Channel Sounding。

2.2.1 无线电波的基本特性

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

2.2.1.1 振幅和波浪周期

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

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

2.2.1.2 波长

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

图 5图 5 - 波长

2.2.1.3 频率

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

图 6图 6 - 频率

2.2.1.4 阶段

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

图 7图 7 - 阶段

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

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

Formula Use
2405 Channel Sounding Formulas 1

Calculate an unknown wavelength from a known frequency and the constant speed of light.

2405 Channel Sounding Formulas 2

Calculate an unknown frequency from a known wavelength and the constant speed of light.

2405 Channel Sounding Formulas 3

Calculate the speed of light using a frequency value and the corresponding wavelength.

表 1 - 频率和波长公式

2.2.2 距离测量方法

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

2.2.2.1 基于相位的测距(PBR)

2.2.2.1.1 理论

很容易将距离想象成信号波长的函数,即信号从发射器延伸到接收器所需的波周期数。

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

在图 8 中,插图左侧发射的信号距离接收器明显有 10.5 个波长。如果我们知道信号的频率,就能知道波长。如果我们知道了波长,再知道波周期数,就可以用乘法计算出两个设备之间的距离。

例如,如果传输频率为 2402 兆赫,那么波长就是 12.48095162 厘米。这个数字是用光速除以频率得出的。

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

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

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

图 9 展示了这种频率为 f1 的信号交换。

图 9图 9 - 频率 f1 的双向测距

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

图 10 展示了这种频率为 f2 的信号交换。

图 10图 10 - 频率 f2 的双向测距

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

2405Channel Sounding 公式 4

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

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

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

2.2.2.1.2 工作示例

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

图 11 显示了两个相距 1.248095162 米的设备,即设备 A 和设备 B。设备 A 发射的信号频率为2.402 兆赫,波长为 12.48095162 厘米。非常巧合的是,两个设备之间的距离正好是这个波长的 10 倍。

图 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 弧度。

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

在实际应用中,相位值将由接收设备测量。在这个例子中,我们已经知道设备之间的距离,只需展示主公式如何得出距离估计值,我们就可以根据已知的距离和波长,利用这个公式计算出预期的相位值:

2405Channel Sounding 公式 5

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

 

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

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

距离模糊的确切发生时间取决于频率间隔。一般来说,频率差异越大,距离模糊越早出现。幸运的是,通过将 PBR 与第二种距离测量方法 Round- Trip Timing 结合使用,可以解决这个问题。

2.2.2.2 回程定时 (RTT)

2.2.2.2.1 理论

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

例如,如果射频信号从设备 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 米

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

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

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

2405Channel Sounding 图 13

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

 

Instant in Time Explanation

ToDA

Time of Departure from Device A.

This is the time at which the signal is transmitted over the air by Device A.

ToAB

Time of Arrival at Device B.

This is the time at which the signal arrives at the antenna of Device B.

ToDB

Time of Departure from Device B.

This is the time at Device B transmits over the air.

ToAA

Time of Arrival at Device A.

This is the time at which the signal from Device B is received at Device A’s antenna.

绿色虚线(--------------------------------------------------------------------------------------------)表示两个信号都不在空中的时间。

往返时间 (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 两种距离测量方法的理论足以让我们对这一主题有一个初步的了解,而且从纯理论的角度来看,这两种方法是完整的。然而,在现实世界中,精确测量距离的工作更为复杂。在现实世界中使用的真实设备要想取得令人满意的结果,必须解决几个难题。

无线距离测量技术应应对的挑战类型举例如下:地址

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

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

3.Bluetooth® Channel Sounding

3.1 概述

Bluetooth®Channel Sounding (蓝牙Channel Sounding 为产品实现比以往更高精度的距离测量提供了可能。测量的精确度取决于环境条件以及应用 如何利用蓝牙®Channel Sounding 功能。这也取决于实施选择,其细节不属于Bluetooth核心规范 范畴,但可以提高计算中使用的原始数据的质量。

Bluetooth®Channel Sounding (蓝牙Channel Sounding )为应用提供了灵活的距离测量工具包,可进行多种不同的配置。该规范支持基于相位的测距(PBR)和往返定时(RTT)两种距离测量方法。在大多数情况下,预计 PBR 将被用作最主要、最精确的距离测量方法,而 RTT 则与之并用,以提供额外的安全性。

Bluetooth®Channel Sounding 所使用的 PBR 可以在出现距离模糊之前测量长达约 150 米的距离。通过在 PBR 之外使用 RTT,应用程序可以识别并消除距离模糊性,从而测量更远的距离。

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

在本节中,我们将着手研究 Bluetooth®Channel Sounding 功能及其所依赖的核心蓝牙协议栈功能。

3.2 结构

3.2.1 设备角色

Bluetooth®Channel Sounding 功能定义了两种设备角色。第一种是启动器,第二种是反射器。

启动器是希望计算自身到另一设备之间距离的设备。另一个设备是反射器。

启动器或反射器均可启动蓝牙®Channel Sounding 程序,本文稍后将详细介绍该程序。

图 14 图 14 - 角色

3.2.2 拓扑

Bluetooth®Channel Sounding 采用一对一拓扑结构,通信在一个扮演启动器角色的设备和一个扮演反射器角色的设备之间进行。

需要注意的是,蓝牙®Channel Sounding 发射器的角色可以由担任链路层 LE 中心角色的设备或作为 LE 外围设备的设备来承担。同样,LE 中心设备或 LE 外围设备也可担任 Bluetooth®Channel Sounding Reflector(蓝牙Channel Sounding 反射器)角色。

3.2.3 天线阵列

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

3.2.4 应用

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

应用 还负责为蓝牙控制器提供配置选择和偏好,这些选择和偏好用于建立蓝牙®Channel Sounding 配置,该配置由两台设备上的应用支持并适合这两台设备上的应用。

要使两台设备都能参与一个系统,其中一台设备扮演启动器角色,另一台设备扮演反射器角色,两台设备都必须有一个支持蓝牙®Channel Sounding 功能的Bluetooth LE 控制器。

图 15 新 图 15 - 蓝牙®Channel Sounding 应用和蓝牙协议栈

3.2.5 数据传输架构
图 16图 16 -Bluetooth 通用数据传输架构

Bluetooth核心规范 从多个角度定义了蓝牙技术的架构。首先,定义了通用数据传输架构。其在核心规范中的描述如图 16 所示。

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

  • L2CAP 是逻辑链路控制和适配协议。L2CAP 通道是两个设备之间的 L2CAP 层逻辑连接,服务于单个应用 或更高层协议。
  • 逻辑链路是 "用于向Bluetooth 系统客户提供独立数据传输服务的最低架构层"。
  • 逻辑传输涉及发送和接收例程、流量控制机制、确认协议和链路识别等问题。逻辑传输可以是同步、异步或等时的。
  • 物理链路是设备之间在链路层建立的连接。链路层是Bluetooth 协议栈的其中一层。
  • 物理信道定义了一个或多个通信设备占用射频载波的模式。
  • 物理传输定义了普遍适用的问题,如用于编码数字数据的空中数据包结构和调制方案,以便使用无线电信号作为载体进行传输。

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

定义了一系列特定类型的物理传输、物理信道、物理链路、逻辑传输和 L2CAP 信道。只允许各种类型的某些组合。Bluetooth核心规范 中定义了具体的数据传输架构组件类型和允许的组合,用于支持不同的应用 类型。每种类型都在拓扑结构、传输定时模式、可靠性、功耗和射频信道使用等方面有所区别。

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

图 17

图 17 - CS 和数据传输架构

LEChannel Sounding 物理链路未关联逻辑传输类型或逻辑链路类型。

3.2.6Bluetooth LE 协议栈中的Channel Sounding

更全面的Bluetooth LE 定义方式是从整个协议栈及其层的角度进行定义。Bluetooth核心规范 》的大部分内容都用于定义每一层。图 18 描述了Bluetooth LE 协议栈。

图 18图 18 -Bluetooth LE 协议栈

Bluetooth LE 协议栈各层的职责摘要见表 2。

Layer Key Responsibilities

Generic Access Profile (GAP)

Defines operational modes and procedures that may be used in a non-connected state, such as how to use advertising for connectionless communication and device discovery.

Defines security levels and some user interface standards.

Generic Attribute Profile (GATT)

Defines high-level data types known as services, characteristics, and descriptors in terms of underlying attributes in the attribute table.

Attribute Protocol (ATT)

A protocol used for the discovery and use of data held by the server in a logical data structure known as the attribute table.

Security Manager Protocol (SMP)

A protocol used during the execution of security procedures such as pairing.

Logical Link Control and Adaptation Protocol (L2CAP)

Provides data channel multiplexing services over RF connections, segmentation and reassembly of large SDUs, and enhanced error detection and retransmission facilities.

Host Controller Interface (HCI)

Provides an interface for bi-directional communication of commands and data between the host component and the controller.

Isochronous Adaptation Layer (ISOAL)

Allows different frame durations to be used by devices using isochronous channels.

Link Layer

Defines air interface packet formats, bit stream processing procedures such as error checking, a state machine and protocols for over-the-air communication, and link control.

Defines several distinct ways of using the underlying radio for connectionless, connection-oriented, and isochronous communication known as logical transports.

Physical Layer

Defines all aspects of Bluetooth technology that are related to the use of radio (RF), including modulation schemes, frequency bands, channel use, transmitter, and receiver characteristics.

Three combinations of Physical Layer parameters are defined and are referred to as the LE 1M, LE 2M, and LE 2M 2BT PHYs. LE 2M 2BT was defined for the first time in the version 6.0 of the Bluetooth Core Specification and may only be used with Bluetooth® Channel Sounding. Further details about the LE 2M 2BT PHY are provided in section 3.11 The LE 2M 2BT PHY.

A further PHY, LE Coded, is defined. Despite the name, LE Coded uses the same Physical Layer parameters as LE 1M but applies forward error-correction coding and pattern mapping in the Link Layer.

表 2 -Bluetooth LE 协议栈各层的主要职责和功能摘要

Bluetooth核心规范 的物理层、链路层、Host 控制器接口和通用访问配置文件 部分都受到了蓝牙®Channel Sounding技术的影响。第4.Bluetooth核心规范 更改摘要》进一步解释了这一点。

此外,还引入了专为蓝牙®Channel Sounding 设计的新安全功能。第3.13节 "安全"专门讨论蓝牙®Channel Sounding 的安全问题。

3.3 蓝牙®Channel Sounding 控制程序

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

准备和启动蓝牙®Channel Sounding 的主要程序是

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

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

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

下面将对启动 Bluetooth®Channel Sounding 时经常涉及的四个关键程序进行更深入的研究。

3.3.1 蓝牙®Channel Sounding 安全启动

Bluetooth®Channel Sounding 有自己的安全功能,与执行初始化程序的 LE-ACL 连接相关的安全功能不同。Bluetooth®Channel Sounding 启动程序允许两台设备安全地交换参数,这些参数随后将用于 Bluetooth®Channel Sounding 安全功能。

Bluetooth®Channel Sounding 安全启动程序首先由 LE 中央设备生成三个随机数,并通过 LL_CS_SEC_REQ PDU 发送给 LE 外围设备。LE 外围设备根据与中心设备随机数相同的规则生成自己的三个随机数,并通过 LL_CS_SEC_RSP PDU 将其发回给中心设备。

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

Name Description Length (bits)

CS_IV_C

Initialization Vector generated by the Central.

64

CS_IN_C

Instantiation Nonce generated by the Central.

32

CS_PV_C

Personalization Vector generated by the Central.

64

     

CS_IV_P

Initialization Vector generated by the Peripheral.

64

CS_IN_P

Instantiation Nonce generated by the Peripheral.

32

CS_PV_P

Personalization Vector generated by the Peripheral.

64

表 3 - CS 安全参数

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

有关使用这些参数的更多信息,请参见第3.13 节 "安全"。

3.3.2 蓝牙®Channel Sounding 功能交换

两台设备的 Bluetooth®Channel Sounding (蓝牙Channel Sounding )能力可能相差很大,为了在启动前达成相互支持的配置,两台设备必须各自掌握另一台设备的能力信息。

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

功能可能不同的示例包括 PHY 支持、RTT 精确度、支持的 Bluetooth®Channel Sounding 模式3、攻击检测支持以及支持的最大天线路径数。Bluetooth核心规范 提供了 LL_CS_CAPABILITIES_REQ PDU 和 LL_CS_CAPABILITIES_RSP PDU 的全部详细信息。

3.3.3 蓝牙®Channel Sounding 配置

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

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

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

3.3.4 模式 0 FAE 表请求

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

为了获得尽可能精确的距离测量结果,支持 Bluetooth®Channel Sounding 设备可能会有一个名为 Mode-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 蓝牙®Channel Sounding 启动

当蓝牙®Channel Sounding 安全启动后,设备掌握了彼此的功能信息,启动者拥有反射者的模式-0 FAE 表(如果有的话),并且设备已就合适的配置达成一致,那么就可以启动Channel Sounding 启动程序。这可通过 LL_CS_REQ、LL_CS_RSP 和 LL_CS_IND PDU 实现。

LL_CS_REQ 和 LL_CS_RSP PDU 包括每个设备建议的定时和结构参数。这些参数规定了时间的分配方式以及在蓝牙®Channel Sounding期间如何使用时间。中心设备从外设接收到 LL_CS_REQ 或 LL_CS_RSP PDU 后,会发送 LL_CS_IND PDU。LL_CS_IND 表示 Bluetooth®Channel Sounding (蓝牙Channel Sounding )现在应该开始,并包含两个设备都能接受的参数值,这些参数值基于之前交换的 PDU 中包含的建议。

3.3.6 蓝牙®Channel Sounding

Bluetooth®Channel Sounding 程序在 Bluetooth®Channel Sounding Start 程序完成后启动。这是两个设备交换射频信号的机制,目的是测量应用 可用于计算距离的数据。本文将在后续章节中探讨其工作原理。

3.4 事件、子事件和步骤

3.4.1 LE-ACL 连接和时间划分

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

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

根据 3.3 Bluetooth® Channel Sounding Control Procedures(蓝牙®Channel Sounding 控制程序)的描述,LE-ACL 连接用于蓝 牙®Channel Sounding 启动程序。

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

3.4.2 时间划分

 3.4.2.1 结构

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

图 21

图 21 - 示例配置中 Bluetooth®Channel Sounding 程序的结构

3.5 CS 步骤详细介绍了 CS 步骤中开展的活动。

有许多参数可以控制 Bluetooth®Channel Sounding 程序的结构方面,特别是不同层次元素之间关系的核心度。表 4 列出了一些关键的可配置变量。

Configurable Variable Range/Value Description

Number of CS procedure repetitions

0 to 65535

The number of Bluetooth® Channel Sounding (CS) procedure repetitions to execute before Bluetooth® Channel Sounding is terminated. A value of 0 is a special value indicating that CS procedures should run until terminated via the Bluetooth® Channel Sounding Procedure Repeat Termination procedure, which the host may invoke.

Number of subevents per event

1 to 16

The number of subevents anchored off the same ACL event.

Subevent Interval

0 or in the range 625 us to 40959.375 ms.

Time interval between the beginning of a CS subevent and the beginning of the next CS subevent within the same CS event.

0 means no division into subevents.

Configurable Variable

Range/Value

Description

Duration of each subevent

Variable

The duration of each subevent.

Number of steps per subevent

2 to 160

Randomly selected from a configured range.

There are a maximum of 256 steps per procedure.

表 4 - Bluetooth®Channel Sounding 配置参数示例

3.4.2.2 时间安排

程序、事件、子事件和步骤的时间、持续时间和调度由一些参数控制,这些参数在 Bluetooth®Channel Sounding Configuration 和 Bluetooth®Channel Sounding Start 程序中进行配置。

所有程序、事件、子事件和步骤的开始时间都直接或间接锚定到底层 LE ACL 连接中的选定连接事件,通过该连接执行链路层程序以启动蓝牙®Channel Sounding 。在第一个 Bluetooth®Channel Sounding 程序实例中,其第一个事件和子事件都在同一时间开始,计划在选定连接事件锚点的偏移位置发生。第一步发生在第一个名为 T_FCS 的子事件开始时的偏移量处。T_FCS 的值范围为 15 μs 至 150 μs,它所覆盖的时间段用于通过跳频改变频率。3.9 射频信道和信道选择可提供更多相关信息。

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

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

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

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

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

3.5 蓝牙®Channel Sounding 步骤

3.5.1 关于步骤

图 21 按事件、子事件和步骤显示了 Bluetooth®Channel Sounding 程序的结构。在步骤中,启动器和接收器之间进行射频信号交换。根据应用 选择使用的channel sounding 方法(PBR 和/或 RTT)的不同,细节也有所不同。

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

3.5.2 数据包和音调

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

CS_SYNC 数据包的结构如下:

图 24 图 24 - CS_Sync 数据包

在 CS_Sync 数据包末尾加入鸣音序列或随机序列是可选的。这些术语将在 3.10 RTT 选项和精度中解释。

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

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

3.5.3 阶跃模式

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

3.5.3.1 模式-0

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

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

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

CS_Sync 数据包为启动程序提供前导信号,以便接收机调谐和设置增益。CS 音调将作为测量频率偏移的基础,如下所述。

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

随后在计算中使用 FFO 来补偿两个设备之间的差异,提高结果的准确性。

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

T_SY Time for synchronization sequence. Duration depends on CS_Sync packet length and the PHY used.

T_RD

Time for transmission ramp down. This is 5 μs and is used by the transmitter to remove energy from the RF channel.

T_IP1

Time for interlude period between the end of the Initiator’s transmission and the start of the transmission by the Reflector. Durations vary between 10 μs and 145 μs and are determined in the capabilities exchange procedure.

T_GD

Guard time. Always 10 μs in duration.

T_FM

Time for frequency measurement. Always 80 μs in duration for step mode-0.

表 5 - 时隙参数

图 25 图 25 - 模式 0 传输和时隙

必须支持模式 0 步骤。

3.5.3.2 模式-1

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

启动程序在传输初始 CS_Sync 数据包时记录一个时间戳,称为 "出发时间"(ToD)。启动程序在接收反射程序发回的 CS_Sync 数据包时记录第二个时间戳。这被称为到达时间(ToA)。

图 26 显示了启动程序以模式 1 发送 CS_Sync 数据包,然后由反射程序发送 CS_Sync 作为回应的过程。各种时隙的持续时间用符号名称表示,如表 5 所示。

图 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 Time period reserved for antenna switching.

T_PM

Time for the transmission of a phase measurement tone.

T_IP2

Time for interlude period between CS Tones.

N_AP

Number of antenna paths.

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

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

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

需要注意的是,CS 提示音传输总时长的表达式包括以下项 N_AP + 1.这是因为在为每条天线路径分配的 T_PM 时长时隙之后,还有一个称为 CS Tone 扩展时隙的额外时间段。出于安全原因(见 3.12 安全性),使用该时隙进行传输是随机的,但在使用该时隙时,CS Tone 将使用紧接着的 T_PM 时隙中使用的同一天线进行传输。

必须支持模式-2 步骤。

3.5.3.4 模式-3

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

图 28 - 模式 3 传输和时隙

对模式-3 的支持不是强制性的。如果应用程序希望将 PBR 和 RTT 结合起来,但通过能力交换程序发现启动器和反射器都不支持模式-3,则可以使用结合模式-2 和模式-1 步骤的模式序列。有关 Bluetooth®Channel Sounding 功能的更多信息,请参阅 3.8 模式序列。

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

3.6 确定相位差

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

要测量相位差,必须有一个以上的传输信号和一个以上的频率。单步涉及在单个选定信道和频率上交换单个 CS Tone。因此,PBR 方法显然要求在支持 PBR 方法的模式下至少执行两个步骤。蓝牙®Channel Sounding 程序中的步骤序列以及管理其重复和模式变化的模式是 3.8 模式序列的主题。应该注意的是,一般来说,使用相应的更多射频信道进行更多的 CS Tone 交换将为应用 提供更多的数据,并有机会进行更精确的距离测量。不过,更多的交换需要更多的时间来执行。

3.7 天线切换

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

Bluetooth核心规范共定义了八种天线排列方式。表 7 列出了这些配置,与核心规范中的类似表格一致。表后的数字显示了几个示例。

Antenna Configuration Index (ACI) Device A number of antennas Device B number of antennas Number of antenna paths (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 - 天线配置

2405Channel Sounding 图 28 图 29 - 1:1 天线配置(ACI=0,N_AP=1)

2405Channel Sounding 图 29 图 30 - 1:2 天线配置(ACI=4,N_AP=2)

2405Channel Sounding 图 30 图 31 - 3:1 天线配置(ACI=2,N_AP=3)

2405Channel Sounding 图 31 图 32 - 2:2 天线配置(ACI=7,N_AP=4)

天线切换发生在模式 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项是为了预留扩展槽。

3.8 模式排序

3.8.1 模式排序概述

Bluetooth®Channel Sounding (蓝牙Channel Sounding )程序总是涉及多个步骤的执行顺序和至少两种模式的混合。Bluetooth核心规范 定义了模式组合和排序规则,本节将探讨其中的关键方面。

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

3.8.2 模式组合

蓝牙®Channel Sounding 程序中始终包含至少两种不同模式类型的步骤。第一个步骤是用于频率偏移测量的模式-0 步骤,第二个步骤必须是其他任何一种模式。但也可以将两种非模式-0 模式与强制模式-0 类型结合使用。在所有情况下,主要的非模式-0 模式都称为主模式(Main_Mode)。次要非模式-0(如果有的话)称为 Sub_Mode(子模式)。表 8 摘自Bluetooth核心规范 ,列出了六种允许的非模式-0 模式组合。

Main_Mode Sub_Mode

Mode-1

None

Mode-2

None

Mode-3

None

Mode-2

Mode-1

Mode-2

Mode-3

Mode-3

Mode-2

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

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

应用程序可使用 HCI 命令配置步进模式序列。这需要在蓝牙®Channel Sounding 配置和启动过程中进行。表 9 所示为设备之间可请求和商定的关键参数。

HCI Parameter Purpose

Mode_0_Steps

Defines the number of consecutive mode-0 steps to be executed at the start of each CS subevent. Permitted values are 1, 2, or 3.

Main_Mode_Type

Indicates the mode which will be the main mode (1, 2, or 3).

Sub_Mode_Type

Indicates the mode which will be the submode (1, 2, or 3).

Min_Main_Mode_Steps

Determines the minimum number of main mode steps that must always be executed before a submode step.

Max_Main_Mode_Steps

Determines the maximum number of main mode steps that must always be executed before a submode step.

表 9 - 模式排序控制参数

通过使用这些参数,应用程序可以指定序列中出现的步进模式。

一般来说,步进模式排序遵循这种模式:

  1. 一个或多个模式 0 步骤启动子事件
  2. 随后是一连串 n 个主要模式步骤,其中 n 是随机选择的,范围在 Min_Main_Mode_Steps 至 Max_Main_Mode_Steps 之间(含)。
  3. 由于Bluetooth核心规范 称之为子模式插入(sub_mode insertion)的过程,在 n 个主模式步骤序列之后会出现一个子模式步骤。

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

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

图 32图 33 - 梯级模式序列示例

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

接下来,我们有一系列三个模式-2 步骤。由于 Main_Mode_Type 是 2,所以它们是模式-2 步。要排序的主模式步数是随机选择的,Min_Main_Mode_Steps 和 Max_Main_Mode_Steps 分别作为上限和下限。在本例中,随机选择的值为 3。

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

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

子事件 2 以两个模式 0 步开始。然后,在上一个子事件中启动的主模式序列继续执行,再执行一个主模式步进,完成所需的两个步进。该序列以一个子模式步骤结束。

新的主模式/子模式序列再次启动,这次将根据需要随机选择五个主模式步骤。在当前子事件结束之前,其中三个步骤被包含在该子事件中。子事件三以本例中通常的两个模式-0 步骤开始,然后是所需五个步骤中的其余两个主模式步骤,接着是一个子模式步骤。

每次需要一个新的序列时,该模式都会以随机选择的主模式步骤数继续进行,直到程序指定的子事件数完成为止。

3.8.4 主模式重复

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

主模式重复时,当前子事件中重复的步骤使用的信道索引与上一个子事件中相应步骤使用的信道索引相同。这就确保了重复步骤传输具有相同的预定频率。不过,重复传输的其他方面,特别是与安全有关的方面,在每一步都会重新生成。请注意,在同一频率上重复主模式步骤的目的是为了地址 可能的频率漂移和多普勒频移效应。

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

3. 8.3 模式序列 配置和子模式插入 3. 8.3 模式序列配置和子模式插入 3. 8.3 模式序列配置和子模式插入 3. 8.3 模式序列配置和子模式插入 3. 8.3 模式序列配置和子模式插入 3.8.3 模式序列配置和子模式插入 3.8.3 模式序列配置和子模式插入 3.8.3 模式序列配置和子模式插入

3.8.5 应用和模式排序注意事项

通过子模式插入和主模式重复来配置模式组合和控制步进模式序列的能力,使应用程序能够对蓝牙®Channel Sounding过程进行大量控制。应用 要从这种灵活性中获益,可能会有各种不同的目标。

PBR 是两种距离测量方法中最精确的一种,同时使用 RTT 可以大大提高系统的安全性。此外,它还能解决使用 PBR 方法时可能出现的距离模糊问题。

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

应用的另一个考虑因素是延迟。每次信号交换都需要时间。根据天线路径的数量,模式-1 RTT 交换有时比模式-2 PBR 交换耗时更长。鉴于 RTT 的作用是通过使整个 Bluetooth®Channel Sounding 流程更加安全来补充 PBR,因此需要将延迟保持在一定阈值以下的应用程序可能会选择在 Bluetooth®Channel Sounding 流程中包含较低比例的 RTT 交换。为此,可以选择模式-2(PBR)作为主模式,模式-1(RTT)作为子模式,并将 Min_Main_Mode_Steps 和 Max_Main_Mode_Steps 参数设置为合适的值,从而达到主模式与子模式步骤的最小比例要求。

在两个设备都支持模式 3 的情况下,延迟和 PBR 与 RTT 交换的比例仍然是应用需要考虑的问题。模式-3 中的所有交换都包括与 PBR 相关的 CS Tones 和与 RTT 相关的 CS_Sync 数据包,两者的比例相同。对于某些应用来说,这可能是次优的。

另一方面,如果支持模式-3,那么它在与其他模式配合使用时也有优势。如果应用 需要一定数量的相位测量和一定比例的 RTT 测量,那么使用模式-2 和模式-3 的组合,而不是模式-2 和模式-1 的组合,就可以用较少的步骤实现这一要求。

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

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

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

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

3.9 射频信道和信道选择

3.9.1 蓝牙®Channel Sounding 图

通常,Bluetooth LE 将 2.4 GHz ISM 频带划分为 40 个信道,每个信道宽 2 MHz。但在使用 Bluetooth®Channel Sounding 时,情况并非如此。

为实现蓝牙®Channel Sounding目的,定义了 72 个信道,每个信道宽度为 1 MHz,并具有唯一的信道索引值。这些信道的排列可确保避开 LE 一级广告信道。

信道宽度为 1 兆赫而非通常的 2 兆赫,可确保使用相邻信道的 PBR 信号之间的频率间隔在 150 米左右才会出现距离模糊。相比之下,频率间隔为 2 兆赫的信号在 75 米左右就会在 PBR 计算中产生距离模糊。

表 10 显示了用于Bluetooth核心规范 Channel Sounding 的信道索引值及其相关的射频中心频率。第三列表示某个信道是否可用于 Bluetooth®Channel Sounding 发声交换。

CS Channel Index RF Center Frequency Allowed

0

2402 MHz

No

1

2403 MHz

No

2

2404 MHz

Yes

22

2424 MHz

Yes

23

2425 MHz

No

24

2426 MHz

No

25

2427 MHz

No

26

2428 MHz

Yes

76

2478 MHz

Yes

77

2479 MHz

No

78

2480 MHz

No

表 10 - Bluetooth®Channel Sounding 指数和射频物理Channel Sounding

3.9.2 信道过滤

维护通道索引过滤位图。如 3.9.1 蓝牙®Channel Sounding 所述,这是一份为蓝牙 ®Channel Sounding 定义的声道索引列表,每个声道都标有包含或排除。Bluetooth® ChannelChannel Sounding 信道索引过滤图由链路层程序维护,该程序称为Channel Sounding 信道图更新程序,它允许发起方或反射方根据对本地信道条件的评估,通知对方使用或避免使用哪些信道。任何信道选择算法都不会选择被排除的信道。

3.9.3 跳频

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

图 35图 36- 在执行步骤前跳频

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

3.9.4 频道选择

3.9.4.1 概述

为蓝牙® 声道Channel Sounding定义了一套新的三通道选择算法(CSA)。它们统称为 CSA #3,单独称为 CSA #3a、CSA #3b 和 CSA #3c。

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

CSA #3b 和 CSA #3c 都设计用于非模式 0 梯级,但在蓝牙®Channel Sounding 程序实例中只能使用其中之一。

因此,两种不同的信道选择算法在任何时候都与 Bluetooth®Channel Sounding 相关联。

3.9.4.1 频道索引洗牌

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

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

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

3.9.4.2 CSA #3a

如 3.9.4.1 信道 索引洗牌所述,CSA #3a 的模式-0 信道选择算法使用洗牌信道列表。用于模式-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 算法有很大不同。信道图中包含的信道子集被组织成组,并生成形成形状的信道模式。CSA #3c 在某些情况下可能会在检测反射信号路径方面提供一些优势。详情请查阅Bluetooth核心规范 。CSA #3c 支持为可选项。

3.10 RTT 选项和精度

RTT 方法包括以模式-1 和/或模式-3 为步骤交换 CS_Sync 数据包。图 24 显示了 CS_Sync 数据包的结构。

计算往返时间所需的到达时间(ToA)时间戳有多种确定方法。应用 可通过人机交互指令,应用 RTT_Type 参数指出蓝牙®Channel Sounding 配置过程中要使用的方法。

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

3.10.1 基于访问地址的定时

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

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

接收信号的过程包括对输入信号进行采样,采样由以一定速率运行的本地振荡器驱动。信号的传输同样由另一台设备中的振荡器驱动。

有多种方法可以获得接收到入站信号中接入地址 的时间戳。具体细节由实施方案决定,但可以包括获取数据包到达Bluetooth controller 的时间,然后根据数据包长度、符号率和采样率对其进行调整,以估算接收到访问地址 的时间。另一种方法是在无线电信号处理过程中计算 ToA 时间戳,但需要在解调和检查访问地址 值后验证时间戳,然后将时间戳用作 RTT 计算中的 ToA。

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

链路层规范》H 部分第 3.2.2 节介绍了如何通过确定由于最佳采样点和实际采样点之间的差异而造成的 Access地址 采样中的零星时间误差,来改进使用这种方法创建的时间戳。这些误差是由于本地振荡器和远程设备的振荡器不同步造成的。

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 方法比较

Bluetooth®Channel Sounding 应用 开发人员可根据三种不同方法之一的测量结果推导出往返时间。可以选择使用接入地址 的 ToA,或使用 CS_Sync 数据包中的随机序列或探测序列的两种分数方法之一。

蓝牙®Channel Sounding 功能的实施者必须实施该功能的强制方面,但如果他们愿意,也可以选择性地实施可选功能。实施的复杂程度各不相同,这可能是做出决定的考虑因素之一。

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

3.11 LE 2M 2BT PHY

3.11.1 调制方案

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

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

FSK 是通过将载波信号的频率上移一定量(称为频率偏差)或下移同样的量来产生代表二进制 0 的二进制值 1 的符号。

图 37 举例说明了将基本 FSK 应用于特定比特值流的情况。

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

频率之间的突然切换是基本 FSK 的一个特点,其结果是产生的噪声会传播到比理想频率更宽的范围。为了解决这个问题,Bluetooth 技术采用了 FSK 的一种特殊变体,称为高斯频移键控 (GFSK)。

GFSK 与基本 FSK 的不同之处在于,它涉及一个滤波器,使频率之间的转换遵循一条曲线。曲线的形状和频率转换率由各种参数决定,包括带宽-比特周期Product 或 BT。

3.11.2 带宽比特周期Product

带宽-比特周期Product (BT)是信号的一种属性,它提供了信号带宽与符号持续时间之间关系的信息。

BT 会影响构成符号的无线电脉冲的形状和跨度。BT 值越高,脉冲越窄、越方;BT 值越低,脉冲越宽、越圆。

3.11.3 LE 2M 2BT

即将更新的Bluetooth核心规范 引入了名为 LE 2M 2BT 的新 PHY。LE 2M 2BT 目前只能与 Bluetooth®Channel Sounding 一起使用。

表 11 列出了 PHY 与 LE 2M 2BT 关键方面的比较。

  LE 1M LE Coded LE 2M LE 2M 2BT

Symbol Rate

1 Msym/s

1 Msym/s

2 Msym/s

2 Msym/s

BT

0.5

0.5

0.5

2.0

Min. Frequency Deviation

185 kHz

185 kHz

370 kHz

420 kHz

Error Detection

CRC

CRC

CRC

N/A

Error Correction

NONE

FEC

NONE

N/A

Requirement

Mandatory

Optional

Optional

Optional. Only to be used with Channel Sounding.

表 11 -Bluetooth LE PHY 的比较

LE 2M 2BT PHY 只能与蓝牙®Channel Sounding一起使用。如第 3.13.7 节所述,使用它可以提高安全性。

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

图 37图 38 - 脉冲形状

3.12 蓝牙®Channel Sounding 步骤的信噪比控制

某些无线电发射器能够调整信噪比(SNR),使其在指定范围内。如果启动器和反射器设备都支持这种功能,则可用于提高与 RTT 距离测量方法(即模式-1 和模式-3 步骤)相关的蓝牙®Channel Sounding 步骤的安全性。第3.13.8SNR 控制和 RTT 安全将详细说明这一点。

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

SNR Output Index (SOI) SNR Output Level (dB)

0

18

1

21

2

24

3

27

4

30

表 12 - SNR 输出指数和等级

设备在 "Channel Sounding 能力交换 "过程中交换有关支持 SNR 输出控制和支持的 SOI 值的信息(请参阅 3.3.2 Bluetooth®Channel Sounding Sounding Capabilities Exchange),并在 Bluetooth® ChannelChannel Sounding Start(蓝牙信Channel Sounding 启动)过程中发送的 LL_CS_REQ 链路层 PDU 中指明是否使用 SNR 控制以及 SOI 值。

3.13 安全

3.13.1 概述

距离测量解决方案所独有的安全问题通常涉及到这样一种威胁:不受信任的设备以某种方式欺骗一个受信任的设备,使其认为另一个受信任的设备距离足够近,从而允许或采取某些行动。例如,在无钥匙进入系统中,如果一个恶意设备能够欺骗门锁,使其认为相关的可信无线钥匙卡离门很近,可以自动解锁,那么未经授权的一方就可以进入系统。

安全专家认识到一系列与距离测量有关的攻击。其中一些涉及独立的恶意设备伪造来自受信任设备的通信(称为欺骗),另一些则是中间人(MITM)攻击类型,这些攻击转发来自受信任设备的信号,通常在此过程中操纵信号或其数字内容,导致受信任设备错误计算其与受信任设备之间的距离。此类攻击的复杂程度、实施的复杂性和成本各不相同。

蓝牙®Channel Sounding 包含一系列功能,可作为应对一系列距离测量安全威胁的对策。这些功能可分为四类:

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

此外,蓝牙控制器实施者和应用 开发者还可根据需要,通过额外的保障措施来增强蓝牙®Channel Sounding 安全功能所提供的标准安全功能。

本节总结了蓝牙®Channel Sounding 安全的主要方面。

3.13.2 PBR 和 RTT 交叉检查

Bluetooth®Channel Sounding 支持两种距离测量方法,即相位测距 (PBR) 和往返定时 (RTT)。这两种方法的工作原理完全不同。

应用 可通过选择合适的模式组合(如模式 2 作为 PBR 的主模式,模式 1 作为 RTT 的子模式)来同时使用这两种方法。有关模式组合和排序的更多信息,请参阅 3.8 模式排序

安全专家认为,同时攻击这两种方法,使蓝牙Channel Sounding 信号的相位和计算出的往返时间被篡改,从而得出误导性的一致结果,其复杂程度非常高。

3.13.3 初始化蓝牙®Channel Sounding 安全性

第 3.3.1 Bluetooth®Channel Sounding 安全启动描述了初始化 Bluetooth®Channel Sounding 安全的程序。该程序启用 Bluetooth®Channel Sounding 安全性的方式有几个方面,其本身也是安全的。

首先,设备之间必须已配对。这是创建加密 LE-ACL 链接的必要条件。

CS 安全启动通过加密的 LE-ACL 链路进行,这意味着蓝牙®Channel Sounding 安全密钥数据的交换受到保护,不会被窃听。

最后,中央设备和外围设备对蓝牙®Channel Sounding 安全数据的部分值进行安全交换。这样,两台设备就能获得相同的数据,并据此为 CS 初始化向量 (CS_IV)、CS 实例化非密钥 (CS_IN) 和 CS 个性化向量 (CS_PV) 各建立一个完整的通用值。

CS_IV、CS_IN 和 CS_PV 是确定性随机比特发生器 (DRBG) 的输入,而确定性随机比特发生器 (DRBG) 是许多蓝牙®Channel Sounding 安全功能的基本组成部分。

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

Bluetooth核心规范 定义了一种 "与 NIST 特别出版物 800-90Ar1 中定义的建议一致 "的随机比特发生器。它被称为确定性随机比特发生器或 DRBG。

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

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

使用 DRBG 随机化蓝牙®Channel Sounding 比特流和传输调度的某些方面,可降低恶意设备欺骗可信设备的风险。

利用 DRBG 的 CS 安全功能如下。

3.13.4.1 安全访问地址

访问地址 出现在所有Bluetooth 链路层数据包中。其目的是让设备决定数据包是否相关。例如,广告广播(ADVB)数据包使用一个特殊的 "访问地址 "值,该值可将数据包识别为与接收它的任何设备都有潜在相关性,而通过 LE-ACL 连接交换的数据包具有一个 "访问地址 值,该值可有效地作为该连接的唯一标识符。

在 Bluetooth®Channel Sounding 的情况下,每个设备都会在每个模式-0、模式-1 和模式-3 CS 步骤中更改 CS_Sync 数据包中的 Access地址 字段。因此,每个设备在每个步骤都有一个唯一的 Access地址 。新的接入点地址 值是通过涉及 DRBG 的选择规则生成的,两个设备都知道对方将使用的接入点地址 。接收设备会检查 Access地址 值,并向host报告任何问题。

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

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 随机选择天线路径

相位测距可与 8 种配置之一的天线阵列配合使用,详见 3.7 天线切换。在基于相位的测距过程中,两个设备之间存在的每个可用天线路径都会传输一个音频。在每个 Bluetooth®Channel Sounding 步骤中,使用 DRBG 对路径顺序进行随机化。

3.13.5 响声序列

正如 3.10.2 分数定时估算中所描述的,发声序列由 0 和 1 的交替比特值序列组成。这相当于在应用 GFSK 调制之前,数字域中交替出现的二进制 0 和 1 的序列。

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

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

3.13.6 攻击检测和报告

链路层规范的蓝牙®Channel Sounding 探测部分包括对攻击检测系统的描述。这只是提供了一个架构大纲和一般方法,供蓝牙控制器实施人员参考,而不是一个详细的规定性规范。

蓝牙控制器中的 Bluetooth®Channel Sounding 攻击检测是根据参考信号定义对接收信号进行评估,并检查接收信号中是否存在可能的攻击迹象,如意外的位转换或相位调整。规范提供的指导基于 CS_Sync 数据包,其中包括随机序列、发声序列或两者。

Bluetooth核心规范 定义了一个标准化指标,用于以形容词的形式报告正在发生攻击的概率,该指标被称为归一化攻击检测器指标(Normalized Attack Detector Metric 或 NADM)。NADM 值由控制器根据对接收信号的评估进行分配,采用滑动量表的形式,在一定范围内显示攻击可能性,从攻击极不可能开始,增加到最上限的攻击极有可能。表 13 包含 NADM 值定义,转载自Bluetooth核心规范。

NADM Value Description

0x00

Attack is extremely unlikely

0x01

Attack is very unlikely

0x02

Attack is unlikely

0x03

Attack is possible

0x04

Attack is likely

0x05

Attack is very likely

0x06

Attack is extremely likely

0xFF

Unknown NADM.

Default value for RTT types that do not have a random sequence or sounding sequence.

表 13 - NADM 值

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

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

controller的 NADM 算法分配的 NADM 值会在 HCI 事件中的 Packet_NADM 字段中报告给host 。攻击检测算法应用于接收到的 NADM 值,并向用户应用报告威胁级别。

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

Bluetooth核心规范 包括测试定义,可正确识别显示已知攻击模式的信号。不过,图 39 中描述的攻击检测算法和用户应用 的细节没有具体说明。

3.13.7 LE 2M 2BT

有许多已知的物理层攻击涉及中间人(MITM)攻击者预测从合法发射设备接收到的部分符号的值,并转发这些符号的完整、生成版本,同时操纵时间,使合法接收者误算往返时间,从而误算距离。攻击者的信号通常会被放大,这样目标设备就会将被操纵的信号视为主要信号,而不是较弱的原始信号,因为原始信号很可能看起来像反射信号。持续时间较长的符号比持续时间较短的符号更容易受到这种攻击。

LE 2M 2BT PHY 的带宽比特周期product 值为 2.0,其符号脉冲的持续时间比其他 PHY 的相关脉冲短,从而降低了此类攻击的风险。

3.13.8 SNR 控制和 RTT 安全

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

3.12.7 LE 2M 2BT中提到的这一类 MITM 攻击依赖于攻击者能够在比一个符号的整个持续时间短得多的时间内快速分离和操纵合法信号。通过向信号中注入噪音,攻击者完成分析的难度和速度都会降低,从而降低此类攻击成功的可能性。另一方面,启动器和反射器设备预先商定了信噪比,能够轻松过滤人为添加的噪音。

3.13.9 CS 安全级别

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

3.13.10 针对特定供应商的实施和附加安全功能

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

3.14Host 应用程序

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

3.14.1 距离测量算法

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

Bluetooth核心规范并未规定应用软件用于计算距离的算法。因此,这也是供应商可以实现差异化的一个领域。卓越的算法将产生卓越的结果。

控制器获取并报告给应用 的数据是标准化的,因此原则上所有应用 距离测量算法都可以处理相同类型的输入数据。实际上,向应用 传输哪些数据取决于蓝牙®Channel Sounding 程序中使用的模式组合和排序。数据的质量也可能不同,这取决于Bluetooth核心规范之外的控制器实施细节。

3.14.2 控制器与Host 之间的蓝牙®Channel Sounding 数据通信

3.14.2.1 HCI 事件类型

Host 控制器接口功能规范》定义了两个事件,控制器使用这两个事件将 Bluetooth®Channel Sounding 数据传输到host ,用于距离测量计算和评估当前安全条件。这两个事件分别称为 LE CS 子事件结果和 LE CS 子事件结果继续。

3.14.2.2 HCI 事件定时

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

图 39图 40 - 蓝牙®Channel Sounding 人机交互数据报告示例

人机交互事件的报告与子事件相关,但不一定与子事件的边界严格一致。子事件中的步骤数将是影响controller 如何报告结果的一个因素。如果步骤数意味着controller 必须聚合超过其能力的数据,那么controller 就会将人机交互报告分成多个事件。单个事件可容纳的步数限制为 160 步,这也是controller 需要考虑的另一个限制因素。

3.14.2.3 HCI 事件内容

Bluetooth®Channel Sounding HCI 事件从控制器向host传递一系列类型的数据。有关详细信息,请参阅《Bluetooth核心规范 Host 控制器接口功能规范》。此处介绍部分关键字段和数据结构。

频率补偿

模式 0 步骤的目的是确定启动器和反射器产生的想要频率和实际频率之间的差异。该值用于计算小数频率偏移(FFO),然后用来补偿这种差异对频率和定时值的影响,最终提高距离测量的准确性。HCI CS 事件的频率补偿(Frequency_Compensation)字段包含此controller值。

报告的步数

该字段表示 HCI 事件中报告的步数。它还表示四个步骤相关数据数组的大小,即步骤模式(Step_Mode)、步骤通道(Step_Channel)、步骤数据长度(Step_Data_Length)和步骤数据(Step_Data)。

步进模式 [ ]

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

步骤 频道 [ ]

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

步进数据长度 [ ]

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

步骤数据 [ ]

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

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

3.14.3 模式组合和模式排序

第 3.8.5 应用程序和模式排序注意事项说明了应用程序如何控制蓝牙®Channel Sounding 程序中涉及的步进模式组合和排序。应用 负责决定使用哪种步进模式,以及在同时使用主模式和子模式的情况下,每种所选模式的步进数之间的比例。应用或product 开发人员在得出结论时需要考虑距离测量精度要求、安全性和延迟,以及本地控制器支持的功能。

3.14.4应用 安全

应用 在选择模式组合和 RTT 参数时,可对整体解决方案的安全性进行一定程度的控制。开发人员应首先了解和评估通用访问配置文件 (GAP)所定义的安全级别(见 3.12.9 蓝牙®Channel Sounding 安全级别),以此作为确定采用何种安全选项的起点。

建议始终结合使用 PBR 和 RTT,以便交叉检查基于这两种方法的距离计算。蓝牙®Channel Sounding 支持 PBR,以提供最精确的距离测量,而同时支持 RTT 的主要原因是作为一种安全措施。作出这一选择是应用 的责任。

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

4.Bluetooth核心规范 变化概述

为引入 Bluetooth®Channel Sounding 功能,对Bluetooth核心规范的多个层进行了修改。本节概述了主要变化,旨在提供逐章的高层次参考,仅供参考。有关详细信息,请参阅《Bluetooth核心规范 》。

4.1 结构

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

- 第 3 节 "传输架构 "介绍了蓝牙®Channel Sounding的新数据包结构和信令格式。它还定义了新的 LEChannel Sounding 物理信道和 LEChannel Sounding 物理链路。

- 第 9 节 "使用蓝牙低功耗的 Bluetooth®Channel Sounding "简要介绍了 Bluetooth®Channel Sounding 功能。

4.2Host

4.2.1 通用访问配置文件

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

- 第 9 节介绍 GAP Bluetooth®Channel Sounding 程序以及启动器和反射器的作用。

- 第 10 节 四种蓝牙®Channel Sounding 安全等级。

4.2.2Host Controller 接口

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

- 更新了第 7.7.6.5 节 LE 元事件,以添加与 Bluetooth®Channel Sounding 有关的各种新事件类型,包括 LE CS 子事件结果事件和 LE CS 子事件结果继续事件。

- 第 7.8 节 LEController 命令现在包括与Channel Sounding 一起使用的其他命令,如 LE CS 读取远程 FAE 表命令、LE CS 创建配置命令、LE CS 安全启用命令和 LE CS 程序启用命令。

4.3Controller

4.3.1 物理层

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

  • 第 1 节介绍新型 LE 2M 2BT PHY。
  • 第 2 节介绍了蓝牙®Channel Sounding的新Channel Sounding安排。
  • 第 3 节定义了新的信噪比控制功能。
  • 第 3.4 节为支持 Bluetooth®Channel Sounding设备增加了稳定阶段要求。
  • 第 3.5 节介绍了蓝牙®Channel Sounding中的频率测量和生成要求。其中包括小数频率偏移 (FFO) 测量要求规范。
  • 第 5.3 节是一个新章节,介绍了用于蓝牙®Channel Sounding的天线切换。
  • 第 6 节涉及相位测量要求,包括参考接收器定义、相位测量精度要求说明、频率致动误差补偿要求和相位测量计时规则。
  • 附录 B 提供了蓝牙®Channel Sounding测试设备设置示例。
4.3.2 链路层

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

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

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

5.结论

有了蓝牙®Channel Sounding功能,开发人员就能利用该功能的安全精细测距能力,创造出令人兴奋的产品和应用。

基于世界上最普遍的低功耗无线技术的 "查找我的 "和数字密钥解决方案的最终用户将享受到性能的提升,这要归功于使用蓝牙®Channel Sounding 功能的设备所能实现的高质量结果。此外,product 开发商还可获得一套全面的安全功能,以解决相关的地址 问题,这将使他们高枕无忧。

Bluetooth®Channel Sounding 的技术灵活性意味着开发人员可以优先考虑测距中最重要的方面,无论是安全性、准确性还是延迟。并不是所有的应用都是一样的,蓝牙®Channel Sounding 功能在design 时就考虑到了这一点。开发人员可以自由决定在产品实施过程中什么对他们和他们的用户最重要。

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

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

蓝牙技术绝对是无处不在的,它基于被广泛采用和精心指定的技术标准。对于希望为其蓝牙产品添加多种功能的开发人员来说,采用 Bluetooth®Channel Sounding 是一个简单、安全的选择。下载Bluetooth核心规范 ,了解蓝牙技术广泛功能中这一令人兴奋的新增功能的全部详情!

6.参考文献

Item Location

Bluetooth® Core Specification v6.0

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

Find Me Profile

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

Immediate Alert Service

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

 

注释


1.通用属性配置文件
2.速度因信号通过的材料而异。不过,在理论计算中通常使用光速。
3.3. CS 模式将在第 3.5 节中解释。
4.高斯频移键控