Bluetooth® Channel Sounding
技术概览
版本: | 1.0 |
修订日期 | 2024 年 7 月 9 日 |
作者: |
马丁-伍利Bluetooth SIG |
1.导言
Bluetooth® 低能耗(LE)因其为用户提供无线数据传输和音频功能而闻名于世。我们的口袋里装有这项技术,因为我们的手机越来越智能。在我们的手腕上、智能手表和健身追踪器中都有它的身影。它在我们的汽车里,实现免提控制和通信。在我们的耳朵里,它可以通过全新的Bluetooth 低功耗音频 功能Auracast™ 广播音频,从个人音乐设备和广播信号源串流高品质音频。
但多年来,Bluetooth LE 也已成为一种普遍而可靠的 可靠的技术,并以此为基础构建设备定位应用。Bluetooth LE 可用于检测和报告周围环境中是否存在另一个设备,估算设备之间的距离,以及计算可以找到另一个设备的方向。这些设备定位功能已被广泛应用于数字钥匙、资产追踪、"查找我的"和室内导航等领域。
Bluetooth 在其 25 年的发展历程中,"虹吸管 "技术不断改进。它走过了一条积极进化的道路,产生了一系列令人瞩目的新功能,并改进了产品所能达到的效果。
Bluetooth 核心规范的更新版增加了一项名为Bluetooth Channel Sounding 的新功能,可实现两个Bluetooth 设备之间的安全精细测距,这也是本文的主题。本文无意取代或代替Bluetooth 核心规范。
2.背景情况
2.1 设备定位和Bluetooth LE
Bluetooth LE 于 2010 年首次被指定。从那时起,Bluetooth LE 作为一种定位服务技术的演变过程中发生了一系列关键事件。
2.1.1Bluetooth® Find Me
Bluetooth LE 首次被纳入Bluetooth 核心规范的同一年,首个与位置相关的正式Bluetooth LE配置文件 规范发布。这就是查找我配置文件 。
查找我配置文件 定义了个人物品查找的标准方法,也称为 "查找我的"。一个设备承担查找我的定位器的角色。通常是智能手机。用户可能有遗失记录的其他设备(带有Bluetooth 钥匙扣的钥匙是最受欢迎的)与 "Find Me Locator "设备配对,各自扮演 "Find Me Target "的角色。
目标设备实现了GATT1 服务 ,称为即时警报服务 。
当用户需要帮助寻找丢失的设备时,他们会在智能手机上运行一个应用程序。该应用程序通过扫描丢失设备广播的广告数据包来执行设备发现程序。发现目标设备后,定位器就会与之连接。应用程序的用户界面(UI)会显示连接已完成。用户通常会按下用户界面上的一个按钮。这将导致应用程序写入属于即时警报服务 的警报级别特性。目标设备会以某种适当的方式对警报级别值的变化做出反应,可能会发出响亮的蜂鸣声、LED 灯闪烁或同时闪烁。此时,用户会发现自己的钥匙原来一直在上衣口袋里,或者掉到了沙发后面,或者在某个不太容易发现的地方。无论是哪种情况,Bluetooth 技术都拯救了用户,让他们失而复得。
Bluetooth® 查找我 "是存在应用的一个示例。Bluetooth LE 用于确定丢失的设备就在附近,但不会指示其方向或与定位器的距离。
2.1.2 信标和第一代距离估计
Bluetooth 信标利用Bluetooth LE 的广告功能。广告包括广播小数据包,范围内的任何设备都能通过扫描接收到这些数据包。
2013 年,苹果公司发布了 iBeacon 格式规范。这成为信标设备广播有效载荷内容的流行格式。iBeacon 信息中的数据包括一个名为 "发射功率"(TX Power)的字段,该字段包含一个值,代表在距离信标一米远的地方测量到的信号强度。正是 iBeacon 信息以及谷歌 Eddystone 等其他类似信标数据格式中 TX Power 字段的出现,预示着第一代Bluetooth LE 距离估计技术的到来。
Bluetooth 这个早期版本的距离估算使用了两个数据值和一些简单的物理学原理,工作原理是这样的:
- 信标信息中的 TX 功率字段提供了已知距离(如一米)的参考功率电平。
- 与每个接收到的信标信息相关的接收信号强度指示器(RSSI)可量化接收设备的信号强度。
- 物理学定义了一种理论关系,即距离发射器越远,信号强度减弱的速度越快。具体来说,接收器的信号强度与其与发射器距离的平方成反比。
- 当我们远离发射器时,测量到的信号强度降低,这就是所谓的路径损耗或衰减。在 iBeacon 传输中,路径损耗 = 发射功率 - RSSI。
- 因此,只要知道固定距离上的参考功率电平、接收信标传输的测量 RSSI 以及距离和路径损耗之间的反平方关系,就可以利用衰减来估算信标和接收器之间的距离。
图 1 - 路径损耗和距离
能够像这样估算距离是一项重大突破,信标已在零售、旅游和博物馆等各种应用中大受欢迎。
虽然信标非常适合某些要求,但基于 RSSI 和路径损耗的距离测量对于其他应用来说不够精确。当需要位置数据而不仅仅是近距离数据时,缺乏发射器方向指示也是一个限制因素。此外,各种专有信标类型(如 iBeacon)都没有明确的安全保障措施。
2.1.3Bluetooth® 利用 AoA 和 AoD 查找方向
2019 年,Bluetooth 核心规范 5.1 版包含了一项重要的新功能,即Bluetooth 方向查找。
Bluetooth Direction Finding(方向查找)功能使应用能够利用Bluetooth LE 控制器进行的相位测量精确计算接收信号的方向。该功能定义了两种方法。
在 "到达角"(AoA)方法中,接收设备有一个天线阵列,由于每个天线与发射设备中单个天线的距离略有不同,在不同天线上测量接收信号时会出现相位差。
在偏离角(AoD)方法中,发射装置有一个天线阵列。接收设备只有一个天线,但拥有远程发射设备天线阵列的详细信息。这样,接收设备就能根据其单个天线的相位测量结果进行类似的计算。
Bluetooth 控制器将同相和正交 (IQ) 采样形式的相位测量值传递给应用程序。IQ 样本包括成对的相位和振幅值,应用程序可利用这些值计算出发射机的方向。
2.1.4Bluetooth Channel Sounding
新的Bluetooth Channel Sounding 功能使我们能够制造出能够计算两个Bluetooth 设备之间距离的产品,其精确度远远高于使用 RSSI 和路径损耗第一代方法所能制造出的产品。它以完全不同的方式工作,包括各种安全保障措施,可降低各种类型的风险。
预计Bluetooth Channel Sounding 将使 "查找我的 "解决方案、数字钥匙产品和更多Bluetooth 联网设备受益。
2.2 简介Bluetooth Channel Sounding
在讨论Bluetooth LE 中的Bluetooth Channel Sounding 之前,本节将首先介绍该功能背后的一些基本理论。已经熟悉该主题的读者可跳至第 3 节Bluetooth Channel Sounding 。
2.2.1 无线电波的基本特性
无线电波是电磁辐射的一种形式,物理学家通常用波来描述它。无线电波具有各种基本特性,了解这些特性非常重要。
无线电波的振幅与其携带的能量相对应,通俗地说,就是信号强度。它在一个中心参考值上下摆动。这种上下振荡有规律地定期重复。波幅上升到峰值、下降到谷值、再上升到起始参考值的单次过渡称为一个波周期。图 4 显示了两个完整的波浪周期,振幅在垂直刻度上。第一个波周期的范围突出显示。
一个波周期有一个物理长度。波长与频率有关,就Bluetooth 技术而言,大约在 12.0 厘米到 12.5 厘米之间。
无线电在真空中以光速传播2。一秒钟内经过空间中某一固定点的完整波周期数称为频率。频率以赫兹(Hz)为单位,1 Hz 表示每秒一个波周期。Bluetooth 信号的工作频率要高得多,单位为千兆赫(GHz)。
位于一个波周期内某处的点用称为相位的角度测量值来表示。相位值的范围为 0 - 360 度或 0 - 2π 弧度。图 7 展示了相位的概念,并在波周期的适当位置标注了一些相位值(以弧度表示)。
频率(f)和波长(λ)成反比。波长越短,频率越高,反之亦然。此外,这两个变量与光速(c)之间的关系是由一组简单的公式定义的,可以根据其他两个变量的已知值计算出这三个量中的任何一个。光速是一个常数,其值为 299792458 米/秒。
Formula | Use |
---|---|
Calculate an unknown wavelength from a known frequency and the constant speed of light. |
|
Calculate an unknown frequency from a known wavelength and the constant speed of light. |
|
Calculate the speed of light using a frequency value and the corresponding wavelength. |
表 1 - 频率和波长公式
2.2.2 距离测量方法
无线距离测量技术中最常用的两种方法是相位测距法(PBR)和往返定时法(RTT)。本节将概述这两种方法背后的理论。
很容易将距离想象成信号波长的函数,即信号从发射器延伸到接收器所需的波周期数。
在图 8 中,插图左侧发射的信号距离接收器明显有 10.5 个波长。如果我们知道信号的频率,就能知道波长。如果我们知道了波长,再知道波周期数,就可以用乘法计算出两个设备之间的距离。
例如,如果传输频率为 2402 兆赫,那么波长就是 12.48095162 厘米。这个数字是用光速除以频率得出的。
然而,发射装置无法知道其天线与接收器天线之间的波周期数。因此,PBR 方法涉及一种技术,可以根据其他数据推断发射器和接收器之间的距离。下面是它的工作原理。
我们将希望计算距离测量值的设备称为设备 A。
- 设备 A 以已知频率 f1 发射信号。设备 A 知道该信号的初始相位,为便于说明,假设该信号的相位为零弧度。
- 设备 B 在其天线上接收 f1 信号并记录其相位,我们将其称为接收相位。
- 然后,设备 B 以相同的频率 f1 发射接收到的信号,并将其回传给设备 A,关键是要确保该发射的初始相位与设备 A 接收到的信号的接收相位完全相同。
- 设备 A 测量从设备 B 到达的信号的接收相位,我们称之为 Pf1。
图 9 展示了这种频率为 f1 的信号交换。
设备 A 现在选择一个新的频率 f2,然后重复上述四个步骤。这四个步骤的第二次执行结果是设备 A 对从设备 B 接收回来的信号进行新的相位测量,我们称之为 Pf2。
图 10 展示了这种频率为 f2 的信号交换。
设备 A 现在计算 f1 和 f2 的相位差,即 Pf2 - Pf1。有了相位差以及频率 f1 和 f2 之间的差值,就可以用以下公式计算距离了:
其中,c 是光速,(Pf2 - Pf1) 是相位差,(f2 - f1) 是频率间隔。
这种方法称为双向测距,即第二个设备将信号传回始发设备,以便进行相位测量。
现实世界可能会带来一些挑战,而这些挑战并没有反映在对一些基本理论的解释中。我们将在本节稍后部分遇到这些挑战。
让我们通过一个简单的实际例子来了解一下。我们将使用一个比较人为的情况,即我们已经知道两个设备之间的距离,这样我们就可以看到公式是如何正确得出相同结果的。
图 11 显示了两个相距 1.248095162 米的设备,即设备 A 和设备 B。设备 A 发射的信号频率为2.402 兆赫,波长为 12.48095162 厘米。非常巧合的是,两个设备之间的距离正好是这个波长的 10 倍。
由于设备 A 发射信号时的初始相位为零,而设备 B 相距波长的整数倍,因此设备 B 的接收相位也为零。如图所示,设备 B 将信号发送回设备 A,并将初始相位设置为与其最初接收到的信号相同的接收相位值,这样我们实际上就有了一个延续信号。
图 12 显示设备 A 以频率 f2 发送的第二个信号。这次选择的频率高于 f1,为 f2 =2.432 MHz。设备 A 的初始相位再次为零。
f2 的波长比 f1 的波长短,因为 f2 的频率更高。这导致设备 B 的接收相位不为零。事实上,它是 0.784744210 弧度。当设备 B 以相同的初始相位重新传输信号并由设备 A 接收时,其相位将为 1.56948842 弧度。
在这种情况下,我们如何知道设备 B 和设备 A 的相位值? 在实际应用中,相位值将由接收设备测量。在这个例子中,我们已经知道设备之间的距离,只需展示主公式如何得出距离估计值,我们就可以根据已知的距离和波长,利用这个公式计算出预期的相位值: 其中,λ 是波长,r 是已知距离。 |
设备 A 现在掌握了计算到设备 B 的距离所需的所有信息。频率差为 30 兆赫,相位差为 1.56948842。将这些数值代入 r 的计算公式,计算出的距离为 2.49 米(精确到小数点后两位)。但这是从设备 A 到设备 B 的往返距离,所以两个设备之间的实际距离是这个数字的一半,即 1.24 米。这是预期的结果,说明了如何利用基于光速和已知两个传输信号的相位和频率间隔的 r 公式来精确计算两个设备之间的距离。
不过,还有一个复杂的问题,这在相位公式和 (2 * π) 的模数除法中有所暗示。相位值会随着距离的增加而变化,但它们是周期性的,也就是说,当相位值达到 (2 * π) 弧度时,它就会重置为零,相同的值开始重复出现。这可能会导致在确定两个设备之间的距离时产生歧义,因为相同的相位差值可能意味着不止一个距离。这就是所谓的距离模糊。
距离模糊的确切发生时间取决于频率间隔。一般来说,频率差异越大,距离模糊越早出现。幸运的是,通过将 PBR 与第二种距离测量方法 Round- Trip Timing 结合使用,可以解决这个问题。
使用往返计时来计算两个设备之间距离的理论非常简单。无线电 (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 显示了这一细分,并标出了时间轴上的关键点。
图 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)。
所介绍的 PBR 和 RTT 两种距离测量方法的理论足以让我们对这一主题有一个初步的了解,而且从纯理论的角度来看,这两种方法是完整的。然而,在现实世界中,精确测量距离的工作更为复杂。在现实世界中使用的真实设备要想取得令人满意的结果,必须解决几个难题。
无线距离测量技术应应对的挑战类型包括
- 无线电信号多路径传播引起的复杂问题
- 生成信号频率的准确性和稳定性
- 内部时钟的稳定性以及时间戳的准确性和分辨率
- 基于相位的测距中的距离模糊性
- 安保
在本文的剩余部分中,我们将了解Bluetooth 技术中的高精度距离测量技术,并领会该技术是如何设计以有效解决现实世界中的此类问题的。
3.Bluetooth® Channel Sounding
3.1 概述
Bluetooth Channel Sounding 为产品实现比以往更高精度的距离测量提供了可能。测量的精确度取决于环境条件以及应用层如何利用Bluetooth Channel Sounding 功能。这也取决于实施选择,其细节不在Bluetooth 核心规范的范围内,但可以提高计算中使用的原始数据的质量。
Bluetooth Channel Sounding 为应用提供了灵活的距离测量工具包,可进行多种不同的配置。该规范支持基于相位的测距(PBR)和往返定时(RTT)两种距离测量方法。在大多数情况下,预计 PBR 将被用作最主要、最精确的距离测量方法,而 RTT 则与之并用,以提供额外的安全性。
Bluetooth Channel Sounding 所使用的 PBR 可以在出现距离模糊之前测量长达约 150 米的距离。通过在 PBR 之外使用 RTT,应用程序可以识别并消除距离模糊性,从而测量更远的距离。
应用程序可能会对准确性、安全性、延迟和功耗等问题给予不同程度的优先考虑。Bluetooth Channel Sounding 功能的可配置性为应用程序提供了对系统许多关键功能和行为的控制或影响,从而使系统的运行集中于使用它的应用程序的正确优先级。
在本节中,我们将着手研究Bluetooth Channel Sounding 功能及其所依赖的核心Bluetooth 栈功能。
3.2 结构
3.2.1 设备角色
Bluetooth Channel Sounding 功能定义了两种设备角色。第一个是启动器,第二个是反射器。
启动器是希望计算自身到另一设备之间距离的设备。另一个设备是反射器。
启动器或反射器均可启动Bluetooth Channel Sounding 程序,本文稍后将详细介绍该程序。
3.2.2 拓扑
Bluetooth Channel Sounding 在一对一拓扑结构中,通信在一个扮演启动器角色的设备和一个扮演反射器角色的设备之间进行。
需要注意的是,Bluetooth Channel Sounding 启动器角色可由担任链路层 LE 中心角色的设备或 LE 外围设备担任。Bluetooth Channel Sounding 反射器角色也是如此,可由 LE 中心设备或 LE 外围设备担任。
3.2.3 天线阵列
使用Bluetooth Channel Sounding 的设备可包括天线阵列。这为用于相位测距的Bluetooth Channel Sounding 传输交换提供了一系列备用路径,并可通过减少多径传播的影响来提高距离测量的精度。
3.2.4 应用
Bluetooth Channel Sounding 要求应用层使用Bluetooth 控制器提供的数据计算距离。这些数据由控制器在执行Bluetooth Channel Sounding 程序时获取,是每个设备进行信号交换和底层测量的结果。数据通过人机交互事件传递给应用层。
应用层还负责向Bluetooth 控制器提供配置选择和偏好,这些选择和偏好用于建立Bluetooth Channel Sounding 配置,该配置由两个设备上的应用支持并适合这两个设备上的应用。
要使两台设备都能参与系统,其中一台设备扮演启动器角色,另一台设备扮演反射器角色,两台设备都必须有一个支持Bluetooth Channel Sounding 功能的Bluetooth LE 控制器。
图 15 -Bluetooth Channel Sounding 应用程序和Bluetooth 堆栈
3.2.5 数据传输架构
Bluetooth 核心规范从多个角度定义了Bluetooth 技术的架构。第一个角度定义了通用数据传输架构。图 16 再现了核心规范中的描述。
参照Bluetooth 核心规范中的定义,图 16 中的术语描述如下:
- L2CAP 是逻辑链路控制和适配协议。L2CAP 信道是两个设备之间 L2CAP 层的逻辑连接,服务于单个应用或更高层协议。
- 逻辑链路是 "用于向Bluetooth 系统客户提供独立数据传输服务的最低架构层"。
- 逻辑传输涉及发送和接收例程、流量控制机制、确认协议和链路识别等问题。逻辑传输可以是同步、异步或等时的。
- 物理链路是设备之间在链路层建立的连接。链路层是Bluetooth 协议栈的其中一层。
- 物理信道定义了一个或多个通信设备占用射频载波的模式。
- 物理传输定义了普遍适用的问题,如用于编码数字数据的空中数据包结构和调制方案,以便使用无线电信号作为载体进行传输。
通用数据传输架构适用于Bluetooth LE 和Bluetooth 基本速率/增强数据速率 (BR/EDR)。
定义了一系列特定类型的物理传输、物理信道、物理链路、逻辑传输和 L2CAP 信道。只允许各种类型的某些组合。Bluetooth 核心规范中定义了具体的数据传输架构组件类型和允许的组合,用于支持不同的应用类型。每种类型在拓扑结构、传输定时模式、可靠性、功耗和射频信道使用等方面都有所区别。
图 17 显示了数据传输架构的一个子集。蓝色突出显示的是为Channel Sounding 定义的新物理信道类型和新物理链路类型。
图 17 - CS 和数据传输架构
LEChannel Sounding 物理链路未关联逻辑传输类型或逻辑链路类型。
3.2.6Channel Sounding Bluetooth LE 堆栈
定义Bluetooth LE 的更全面的方法是使用完整的协议栈及其层。Bluetooth 核心规范的大部分内容都用于定义各层。图 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 核心规范的物理层、链路层、主机控制器接口和通用访问配置文件 部分都受到了Bluetooth Channel Sounding 的影响。第4节 "核心规范变更摘要 "进一步解释了这一点。 Bluetooth 核心规范变更摘要对此作了进一步解释。
此外,还引入了专为Bluetooth Channel Sounding 设计的新安全功能。第3.13节 "安全性"专门讨论了Bluetooth Channel Sounding 安全性问题。
3.3Bluetooth Channel Sounding 控制程序
在启动Bluetooth Channel Sounding 之前,处于链路层 LE 中心角色的设备必须连接处于链路层 LE 外围角色的设备。然后在建立的 LE-ACL 连接上启动安全机制,以便在准备和启动Bluetooth Channel Sounding 的若干程序中为交换各种链路层协议数据单元 (PDU) 提供安全传输。
准备和启动Bluetooth Channel Sounding 的主要程序是:
- 安全启动
- 能力交流
- 配置
- 开始
并非所有这些程序都是强制性的,这取决于两个设备之前是否交换过可能已缓存的信息等问题。 图 19显示了程序和相关 PDU 的可能顺序。
下面将对启动Bluetooth Channel Sounding 时经常涉及的四个关键程序进行更深入的研究。
3.3.1Bluetooth 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 安全参数
当两个设备都拥有两套Bluetooth Channel Sounding 安全参数时,每个中央/外设对的值都会被各自的链路层串联起来。这样,两个设备就拥有了三个Bluetooth Channel Sounding 安全参数 CS_IV、CS_IN 和 CS_PV 的相同值。
有关使用这些参数的更多信息,请参见第3.13 节 "安全"。
3.3.2Bluetooth Channel Sounding 能力交换
两台设备的Bluetooth 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.3Bluetooth Channel Sounding 配置
该过程涉及 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)表示。所有设备在这方面都有一定程度的误差,通常,误差的大小会因使用的射频信道而异。
为了获得尽可能精确的距离测量结果,支持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.5Bluetooth Channel Sounding 启动
当Bluetooth Channel Sounding 安全性已启动、设备掌握了彼此的能力信息、发起者拥有反射者的模式-0 FAE 表(如果有的话)并且设备已就合适的配置达成一致时,就可以启动Channel Sounding 启动程序。这可通过 LL_CS_REQ、LL_CS_RSP 和 LL_CS_IND PDU 实现。
LL_CS_REQ 和 LL_CS_RSP PDU 包括每个设备建议的定时和结构参数。这些参数规定了时间的分配方式以及在Bluetooth Channel Sounding 期间如何使用时间。LL_CS_IND PDU 由中心设备在收到外设的 LL_CS_REQ 或 LL_CS_RSP PDU 后发送。LL_CS_IND 表示Bluetooth Channel Sounding 现在应该开始,并包含两个设备根据之前交换的 PDU 中包含的建议可以接受的参数值。
3.3.6Bluetooth Channel Sounding
Bluetooth Channel Sounding 程序在Bluetooth Channel Sounding 启动程序完成后启动。这是两个设备交换射频信号的机制,其目的是进行测量,以便应用软件进行距离计算。本文将在后续章节中探讨其工作原理。
3.4 事件、子事件和步骤
3.4.1 LE-ACL 连接和时间划分
在 ACL 连接中,数据包可在连接事件期间传输。连接事件的时间取决于 ACL 连接的连接间隔参数值。在连接事件期间,中心设备和外围设备轮流发送数据包,中心设备先发送,外围设备再响应。根据其他连接参数的不同,外围设备可能只允许响应一组数据包,而中心设备可能只允许在一组事件中进行传输。
在每次连接事件中,每一方传输的数据包大小和数量可能会有所不同。
如 3.3Bluetooth Channel Sounding 控制程序所述,在Bluetooth Channel Sounding 的启动程序中使用 LE-ACL 连接。
3.4.2 时间划分
Bluetooth Channel Sounding 在一系列程序中进行。每个程序由若干个 CS 事件组成,每个 CS 事件又被进一步划分为 CS 子事件。在这一分级方案中,时间的最终细分是 CS 步。数据包或音调就是在步骤内发送和接收的。图 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 配置参数示例
程序、事件、子事件和步骤的时间、持续时间和调度由Bluetooth Channel Sounding 配置和Bluetooth Channel Sounding 启动程序中配置的一系列参数控制。
所有过程、事件、子事件和步骤的开始时间都直接或间接锚定在底层 LE ACL 连接中的选定连接事件上,在该连接上执行链路层过程以启动Bluetooth Channel Sounding 。在第一个Bluetooth Channel Sounding 程序实例中,其第一个事件和子事件都在同一时间开始,计划在所选连接事件锚点的偏移处发生。第一步发生在第一个子事件 T_FCS 开始的偏移量处。T_FCS 的值范围为 15 μs 至 150 μs,它所覆盖的时间段用于通过跳频改变频率。3.9 射频信道和信道选择可提供更多相关信息。
程序和事件都以间隔发生,其值用 ACL 连接间隔数表示。图 22 显示了一个示例,其中程序间隔的值为 4,事件间隔的值为 2。 如图所示,这将导致新的程序间隔从第 4 个 ACL 连接事件开始,事件间隔从第 2 个连接事件开始。程序及其事件在各自的时间间隔内实际上是从相关连接事件锚点的偏移量开始的。偏移值以微秒为单位。
图 22 - 程序和事件调度,程序间隔 = 4,事件间隔 = 2
每个事件中的第一个子事件与事件同时开始,与相关 ACL 连接事件偏移。每个事件的子事件数是一个配置参数,如图 23 所示,每个子事件间隔发生一次子事件。
每个子事件至少包括两个步骤。各子事件的步骤可能有所不同,这取决于应用程序如何使用channel sounding 。步骤的持续时间也会有所不同,这同样取决于配置。步骤的调度以及分配给它们的射频发送和接收时隙都要遵守严格的定时规则,更多详情可查阅Bluetooth 核心规范。
3.5Bluetooth Channel Sounding 步骤
3.5.1 关于步骤
图 21 显示了Bluetooth Channel Sounding 程序的事件、子事件和步骤结构。在步骤中,发起方和接收方之间进行射频信号交换。根据应用层选择使用的channel sounding 方法(PBR 和/或 RTT),细节会有所不同。
一般来说,这些步骤要么涉及校准,要么涉及获取应用层可在距离测量算法中使用的低层测量值。
3.5.2 数据包和音调
在使用 RTT 时,启动器和反射器会交换名为 CS_Sync 的数据包。
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。
模式 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 - 时隙参数
必须支持模式 0 步骤。
在模式-1 步骤中,计算从启动器发送到反射器再返回的 CS_Sync 数据包的往返时序 (RTT)。
启动程序在传输初始 CS_Sync 数据包时记录一个时间戳,称为 "出发时间"(ToD)。启动程序在接收反射程序发回的 CS_Sync 数据包时记录第二个时间戳。这被称为到达时间(ToA)。
图 26 显示了启动程序以模式 1 发送 CS_Sync 数据包,然后由反射程序发送 CS_Sync 作为回应的过程。各种时隙的持续时间用符号名称表示,如表 5 所示。
间歇期 T_IP1 是一个已知的固定长度,其持续时间足以让反射器准备并传输其数据包。在交换的这一部分使用预先商定的固定时间段,意味着发起方知道接收方的周转时间,并可将其用于 RTT 计算。
ToD 和 ToA 时间戳有多种定义方法。不同的方法可提供不同的精确度。其他方法在 3.10 RTT 选项和精度中进行了说明。
必须支持模式-1 步骤。
模式-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 计时参数
启动器测量在 T_PM 期间从反射器接收到的 CS 音调的相位,每个天线路径测量一次。使用模式 0 步骤中计算的补偿值进行调整。相位测量结果以 IQ 样本数组的形式在人机交互事件中传递给应用层。
需要注意的是,CS 提示音传输总时长的表达式包括以下项 N_AP + 1.这是因为在为每条天线路径分配的 T_PM 时长时隙之后,还有一个称为 CS Tone 扩展时隙的额外时间段。出于安全原因(见 3.12 安全性),使用该时隙进行传输是随机的,但在使用该时隙时,CS Tone 将使用紧接着的 T_PM 时隙中使用的同一天线进行传输。
必须支持模式-2 步骤。
模式-3 步骤使用 CS_Sync 数据包和 CS 提示音的组合交换,支持 RTT 计算和 PBR。
对模式-3 的支持不是强制性的。应用程序希望将 PBR 和 RTT 结合起来,但通过能力交换程序发现启动程序和反射程序都不支持模式-3,则可以使用结合模式-2 和模式-1 步骤的模式序列。有关Bluetooth Channel Sounding 这一功能的更多信息,请参阅 3.8 模式序列。
模式-3 梯级包括一个扩展槽,与模式-2 梯级相同。
3.6 确定相位差
在前面关于模式-0、模式-1、模式-2 和模式-3 步骤的章节中,重点介绍了每种类型的单步中如何分配和使用时间的细节。但是,距离计算需要多次交换,这可能是为了提高计算距离的准确性,也可能是所使用的方法要求这样做。根据定义,PBR 至少需要两次交换。
要测量相位差,必须有一个以上的传输信号和一个以上的频率。单步涉及在单个选定信道和频率上交换单个 CS Tone。因此,PBR 方法显然要求在支持 PBR 方法的模式下至少执行两个步骤。Bluetooth 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 - 天线配置
图 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 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 程序总是涉及多个步骤序列的执行和至少两种模式的混合。Bluetooth 核心规范定义了模式组合和排序规则,本节将探讨其中的关键方面。
Bluetooth Channel Sounding 当Bluetooth 控制器提供的数据来自更多的数据包和音调交换时,应用将产生质量更好、更准确的距离测量结果。
3.8.2 模式组合
Bluetooth 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 命令配置步进模式序列。这在Bluetooth 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 - 模式排序控制参数
通过使用这些参数,应用程序可以指定序列中出现的步进模式。
一般来说,步进模式排序遵循这种模式:
- 一个或多个模式 0 步骤启动子事件
- 随后是一连串 n 个主要模式步骤,其中 n 是随机选择的,范围在 Min_Main_Mode_Steps 至 Max_Main_Mode_Steps 之间(含)。
- 由于Bluetooth 核心规范称之为子模式插入的过程,一个子模式步骤紧跟 n 个主模式步骤的序列
除子事件必须始终以一个或多个模式 0 步开始这一一般规则外,步进模式序列与子事件边界无关。完整序列可以跨越多个子事件。
图 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 应用和模式排序注意事项
利用子模式插入和主模式重复配置模式组合和控制阶跃模式序列的能力,可以让应用系统对Bluetooth 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,那么在与其他模式配合使用时,模式-3 可以提供优势。如果应用需要一定数量的相位测量和一定比例的 RTT 测量,那么使用模式-2 和模式-3 的组合,而不是模式-2 和模式-1 的组合,就能以较少的步骤实现这一目标。
图 34 显示了使用模式-2 的主模式和模式-1 的子模式实现的 3:1 PBR 与 RTT 测量比。在此示例中,9 次 PBR 测量和 3 次 RTT 测量是通过一系列 3 个子事件进行的。
图 34 - 使用模式 2 和模式 1,PBR 与 RTT 的比率为 3:1
图 35 显示了在 2 个子事件中使用模式-2 的主模式(但这次使用模式-3 的子模式)交付的 PBR 和 RTT 测量值的相同数量和比率。请注意,这两幅图均未按比例绘制,可能无法反映实际通话时间。假设子事件的长度足以容纳两个插图中所示的步骤,并且只涉及一条天线路径,则两个设备之间的步骤和交换次数是正确的,插图应有助于解释这两种看似相似的配置之间的潜在差异。
图 35 - 使用模式 2 和模式 3,PBR 与 RTT 的比率为 3:1
3.9 射频信道和信道选择
3.9.1Bluetooth Channel Sounding 频道图
通常,Bluetooth LE 将 2.4 GHz ISM 频段划分为 40 个信道,每个信道宽 2 MHz。但使用Bluetooth Channel Sounding 时,情况并非如此。
为了Bluetooth Channel Sounding ,定义了 72 个信道,每个信道宽度为 1 兆赫,信道索引值独一无二。这些信道的安排可确保避开 LE 一级广告信道。
信道宽度为 1 兆赫而非通常的 2 兆赫,可确保使用相邻信道的 PBR 信号之间的频率间隔在 150 米左右才会出现距离模糊。相比之下,频率间隔为 2 兆赫的信号在 75 米左右就会在 PBR 计算中产生距离模糊。
转载自Bluetooth 核心规范, 表 10 显示了用于Bluetooth Channel Sounding 的信道索引值及其相关的射频中心频率。第三列表示一个信道是否可用于Bluetooth Channel Sounding 交换。
CS Channel Index | RF Center Frequency | Allowed |
---|---|---|
1 |
2402 MHz |
No |
2 |
2403 MHz |
No |
3 |
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 信道索引和射频物理信道
3.9.2 信道过滤
维护通道索引过滤位图。这是一份为Bluetooth Channel Sounding 定义的信道索引列表,如 3.9.1Bluetooth Channel Sounding 信道图所述,每个信道都标有包含或排除。Bluetooth Channel Sounding 信道索引过滤图由链路层过程维护,该过程称为Channel Sounding 信道图更新过程,它允许发起方或反射方根据其对本地信道条件的评估,通知对方使用或避免使用哪些信道。任何信道选择算法都不会选择被排除的信道。
3.9.3 跳频
如图 36 所示,跳频一般发生在执行一个步骤之前。
如果在配置模式重复时为 Main_Mode_Repetition 参数指定了一个非零值,则此规则例外。因模式重复而重复的步骤将使用与其重复的前一个子事件中的步骤相同的通道索引。
3.9.4 频道选择
Bluetooth Channel Sounding 中定义了一套新的三通道选择算法(CSA)。它们统称为 CSA #3,单独称为 CSA #3a、CSA #3b 和 CSA #3c。
CSA #3a 仅用于选择在模式 0 步骤中使用的通道。
CSA #3b 和 CSA #3c 都设计用于非模式 0 步骤,但在Bluetooth Channel Sounding 程序实例中只能使用其中之一。
因此,在任何时候,两种不同的信道选择算法都会主动与Bluetooth Channel Sounding 。
通道选择涉及两个不同的通道索引列表。第一个用于 CSA #3a 和模式 0 梯级的通道选择。第二个用于 CSA #3b 或 CSA #3c 的非模式-0 步骤。
CSA #3a 和 CSA #3b 几乎完全相同。
创建频道索引列表的方法是随机调整标注为包含在频道地图中的频道的顺序,从而创建一个洗牌频道列表。CSA #3a 和 CSA #3b 的方法完全相同。CSA #3c 采用了不同的方法,但依赖于相同的原始洗牌函数,在Bluetooth 核心规范中称为 cr1。
如 3.9.4.1 信道 索引洗牌所述,CSA #3a 的模式-0 信道选择算法使用洗牌信道列表。用于模式-0 阶跃跳频的洗牌信道列表不同于用于非模式-0 信道跳频的相应信道列表。
洗牌频道列表中的每个条目都是唯一的,只能使用一次。当洗牌频道列表中的所有条目都被用完后,它将重新生成,创建一个新的随机频道列表。
非模式 0 信道选择算法 CSA #3b 使用的洗牌信道列表与用于模式 0 信道跳频的相应信道列表不同。CSA #3b 允许信道索引列表在重新生成前重复多次,这由一个名为 CSNumRepetitions 的参数控制,应用可对该参数进行设置。
CSA #3c 算法与 CSA #3b 算法有很大不同。信道图中包含的信道子集被组织成组,并生成形成形状的信道模式。CSA #3c 在某些情况下可在检测反射信号路径方面提供一些优势。详情请查阅Bluetooth 核心规范。CSA #3c 支持是可选的。
3.10 RTT 选项和精度
RTT 方法包括以模式-1 和/或模式-3 为步骤交换 CS_Sync 数据包。图 24 显示了 CS_Sync 数据包的结构。
计算往返时间所需的到达时间(ToA)时间戳有多种确定方法。在Bluetooth Channel Sounding 配置过程中,应用程序可使用 RTT_Type 参数,通过人机交互命令指明要使用的方法。
可供选择的方法有:根据访问地址字段进行定时测量,使用长度为 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 的选择决定),持续时间为一微秒或半微秒。
接收信号的过程包括对输入信号进行采样,采样由以一定速率运行的本地振荡器驱动。信号的传输同样由另一台设备中的振荡器驱动。
有多种方法可以获得入站信号中接收到接入地址的时间戳。具体细节由实施方案决定,但可以包括将数据包到达Bluetooth 控制器的时间,然后根据数据包长度、符号率和采样率进行调整,以得出接收到接入地址的估计时间。另一种方法是在无线电信号处理期间计算 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 方法比较
Bluetooth Channel Sounding 应用开发人员可根据三种不同方法之一的测量结果推导出往返时间。可以选择使用访问地址的 ToA,或使用 CS_Sync 数据包中的随机序列或发声序列的两种分数方法之一。
Bluetooth Channel Sounding 功能的实施者必须实施该功能的强制方面,但如果愿意,也可以选择性地实施可选功能。实施的复杂程度各不相同,这可能是做出决定时要考虑的因素之一。
这三种 RTT 方法可为应用开发人员提供不同程度的距离测量精度、安全性和延迟。一般来说,分数法有可能提供最准确的结果和最佳的安全性。
3.11 LE 2M 2BT PHY
3.11.1 调制方案
调制方案定义了一种利用信号的一种或多种物理特性对信号中的数字信息进行编码的方法。调制方案产生的符号在模拟世界中承载信息,就像比特在数字世界中承载信息一样。一个符号代表一个或多个比特,具体取决于调制方案的工作方式。
频移键控 (FSK) 是调制方案的一个简单例子。它是一种二进制调制方案,即一个数字比特对应一个模拟符号。
FSK 是通过将载波信号的频率上移一定量(称为频率偏差)或下移同样的量来产生代表二进制 0 的二进制值 1 的符号。
图 37 举例说明了将基本 FSK 应用于特定比特值流的情况。
图 37 - 频移键控 (FSK) 编码比特流 01010101010
频率之间的突然切换是基本 FSK 的一个特点,其结果是产生的噪声会传播到比理想频率更宽的范围。为了解决这个问题,Bluetooth 技术采用了 FSK 的一种特殊变体,称为高斯频移键控 (GFSK)。
GFSK 与基本 FSK 的不同之处在于,它涉及一个滤波器,使频率之间的转换遵循一条曲线。曲线的形状和频率转换率由各种参数决定,包括带宽-比特周期乘积或 BT。
3.11.2 带宽比特周期产品
带宽-比特周期乘积(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 只能与Bluetooth Channel Sounding 一起使用。如第 3.13.7 节所述,使用 LE 2M 2BT PHY 可以提高安全性。
BT=0.5 和 BT=2.0 时的脉冲形状如图 38 所示。
3.12Bluetooth Channel Sounding 步的信噪比控制
某些无线电发射机能够调整信噪比 (SNR),使其在指定范围内。如果启动器和反射器设备都支持这种功能,则可用于提高与 RTT 距离测量方法(即模式-1 和模式-3 步骤)相关的Bluetooth Channel Sounding 步骤的安全性。第3.13.8节SNR 控制和 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 Capabilities Exchange(能力交换)过程(见 3.3.2Bluetooth Channel Sounding Capabilities Exchange)中交换有关 SNR 输出控制支持和 SOI 支持值的信息,并在Bluetooth Channel Sounding Start(开始)过程中发送的 LL_CS_REQ 链路层 PDU 中交换是否使用 SNR 控制和 SOI 值的信息。
3.13 安全
3.13.1 概述
距离测量解决方案所独有的安全问题通常涉及到这样一种威胁:不受信任的设备以某种方式欺骗一个受信任的设备,使其认为另一个受信任的设备距离足够近,从而允许或采取某些行动。例如,在无钥匙进入系统中,如果一个恶意设备能够欺骗门锁,使其认为相关的可信无线钥匙卡离门很近,可以自动解锁,那么未经授权的一方就可以进入系统。
安全专家认识到一系列与距离测量有关的攻击。其中一些涉及独立的恶意设备伪造来自受信任设备的通信(称为欺骗),另一些则是中间人(MITM)攻击类型,这些攻击转发来自受信任设备的信号,通常在此过程中操纵信号或其数字内容,导致受信任设备错误计算其与受信任设备之间的距离。此类攻击的复杂程度、实施的复杂性和成本各不相同。
Bluetooth Channel Sounding 包括一系列功能,可作为应对一系列距离测量安全威胁的对策。这些功能可分为四类:
- 结合使用 PBR 和 RTT 方法
- 位流和传输模式的随机化
- 抵御符号操纵
- 射频信号分析技术,包括攻击检测
此外,如果需要,Bluetooth 控制器实施者和应用程序开发者还可以使用额外的保障措施来增强Bluetooth Channel Sounding 安全功能提供的标准安全功能。
本节概述了Bluetooth Channel Sounding 安全性的主要方面。
3.13.2 PBR 和 RTT 交叉检查
Bluetooth Channel Sounding 支持两种距离测量方法,即基于相位的测距(PBR)和往返定时(RTT)。这两种方法的工作原理完全不同。
应用程序可通过选择合适的模式组合(如模式 2 作为 PBR 的主模式,模式 1 作为 RTT 的子模式)来同时使用这两种方法。有关模式组合和排序的更多信息,请参阅 3.8 模式排序。
安全专家认为,同时攻击这两种方法,使Bluetooth Channel Sounding 信号的相位和计算出的往返时间都被篡改,从而得出误导性的一致结果,其复杂程度非常高。
3.13.3 初始化Bluetooth Channel Sounding 安全性
第 3.3.1节 Bluetooth Channel Sounding 安全性启动描述了初始化Bluetooth Channel Sounding 安全性的程序。该程序启用Bluetooth Channel Sounding 安全性和自身安全性的方式有几个方面。
首先,设备之间必须已配对。这是创建加密 LE-ACL 链接的必要条件。
CS 安全启动通过加密的 LE-ACL 链路进行,这意味着Bluetooth Channel Sounding 安全密钥数据的交换不会被窃听。
最后,中央和外围设备对Bluetooth Channel Sounding 安全数据的部分值进行安全交换。这样,两台设备都能获得相同的数据,并据此为 CS 初始化向量 (CS_IV)、CS 实例非密钥 (CS_IN) 和 CS 个性化向量 (CS_PV) 中的每一个构建一个完整的通用值。
CS_IV、CS_IN 和 CS_PV 是确定性随机比特发生器 (DRBG) 的输入,而确定性随机比特发生器是Bluetooth Channel Sounding 许多安全功能的基本组成部分。
3.13.4 确定性随机比特发生器 (DRBG)
Bluetooth 核心规范定义了一种 "与 NIST 特别出版物 800-90Ar1 中定义的建议一致 "的随机比特发生器。它被称为确定性随机比特发生器或 DRBG。
安装 DRBG 需要将三个Bluetooth Channel Sounding 安全参数 CS_IV、CS_IN 和 CS_PV 作为输入。执行Bluetooth Channel Sounding 安全启动程序后,启动器和反射器设备将拥有相同的参数值。当使用相同的参数值进行初始化时,DRBG 的两个实例将在一系列调用中产生完全相同的比特序列,正是这一点使算法具有确定性。
对于不具备 CS_IV、CS_IN 和 CS_PV 值的设备,使用 DRBG 的启动器和反射器设备对生成的比特序列看起来是随机的,而且比特序列越长,不受信任的设备就越难匹配该序列中的比特值。
使用 DRBG 随机化Bluetooth Channel Sounding 比特流和传输调度的某些方面,可降低恶意设备欺骗可信设备的风险。
利用 DRBG 的 CS 安全功能如下。
访问地址字段出现在所有Bluetooth 链路层数据包中。其目的是让设备决定数据包是否相关。例如,广告广播(ADVB)数据包使用一个特殊的访问地址值,用于识别数据包是否与接收它的任何设备相关,而通过 LE-ACL 连接交换的数据包则使用一个访问地址值,该值实际上是该连接的唯一标识符。
在Bluetooth Channel Sounding 的情况下,每个设备在每个模式-0、模式-1 和模式-3 CS 步骤中都会更改 CS_Sync 数据包中的访问地址字段。因此,每个设备在每一步都有一个唯一的访问地址。新的访问地址值是通过涉及 DRBG 的选择规则生成的,两个设备都知道对方将使用的访问地址。接收设备会检查访问地址值,并向主机报告任何问题。
访问地址字段的长度为 32 位,可以有 4,294,967,296 个不同的值。因此,想要欺骗 CS_Sync 数据包的恶意设备只有 1 分之 4,294,967,296 的机会猜到所交换的多个 CS_Sync 数据包中每个数据包的正确访问地址值。
如 3. 12.4.2 RTT 小数定时的随机序列所述,CS_Sync 数据包可包括一个可选的随机序列字段。该字段支持其中一种小数 RTT 方法。
随机序列字段的内容使用 CS DRBG 为每个传输的 CS_Sync 数据包(重新)生成。随机序列字段的长度可以是 32、64、96 或 128 比特。
发声序列由 32 位或 96 位的可预测交替模式组成,用于计算分数 RTT。为了降低这种已知比特模式被利用的风险,DRBG 用于在序列中选择位置,插入两个随机选择的 4 位值中的一个,称为标记信号。DRBG 选择的标记信号值为 0b1100 或 0b0011。
在发声序列中随机插入随机比特模式可防止发声序列被欺骗。
模式-2 和模式-3 的阶跃包括一个音调扩展时隙(见 3. 5.3 阶跃模式),音调扩展时隙总是保留的,但是否在该时隙进行传输是随机的,由 DRBG 决定。接收设备知道何时需要、何时不需要在音调扩展时隙进行传输,但攻击设备不知道。
相位测距可与 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 攻击检测和报告
Bluetooth Channel Sounding 链路层规范部分包括对攻击检测器系统的描述。这是供Bluetooth 控制器实施者遵循的概要架构和一般方法,而不是详细的规定性规范。
Bluetooth Channel Sounding Bluetooth 控制器中的攻击检测基于根据参考信号定义对接收到的信号进行评估,并检查接收到的信号是否存在可能的攻击迹象,如意外的位转换或相位调整。规范提供的指导基于 CS_Sync 数据包,其中包括随机序列、发声序列或两者。
Bluetooth 核心规范定义了一个标准化指标,用于以形容词形式报告正在发生攻击的概率,称为归一化攻击探测器指标或 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 展示了攻击探测器系统的轮廓。
控制器的 NADM 算法分配的 NADM 值会在名为 Packet_NADM 的字段中向 HCI 事件中的主机报告。攻击检测算法适用于接收到的 NADM 值,并向用户应用程序报告威胁级别。
未来的Bluetooth 配置文件 规范可能会促进设备之间在Bluetooth Channel Sounding 期间共享 NADM 数据,如图 39 中设备 B 到设备 A 的虚线所示。
Bluetooth 核心规范包括测试定义,可正确识别已知攻击模式的信号。不过,图 39 中描述的攻击检测算法和用户应用程序的细节并未具体说明。
3.13.7 LE 2M 2BT
有许多已知的物理层攻击涉及中间人(MITM)攻击者预测从合法发射设备接收到的部分符号的值,并转发这些符号的完整、生成版本,同时操纵时间,使合法接收者误算往返时间,从而误算距离。攻击者的信号通常会被放大,这样目标设备就会将被操纵的信号视为主要信号,而不是较弱的原始信号,因为原始信号很可能看起来像反射信号。持续时间较长的符号比持续时间较短的符号更容易受到这种攻击。
LE 2M 2BT PHY 的带宽比特周期乘积值为 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) 部分定义了安全模式和安全级别。其中包括Bluetooth Channel Sounding 四个安全级别的正式定义。未来的Bluetooth 配置文件 规范可能会参考这些定义。
3.13.10 针对特定供应商的实施和附加安全功能
控制器实施者可选择进一步引入针对特定供应商的安全措施。
3.14 主机应用程序
创建Bluetooth 范围广泛的应用程序和产品需要利用控制器的Bluetooth Channel Sounding 功能,并将其与自定义的应用层代码相结合。解决方案中应用程序组件的开发人员必须注意本节强调的各种问题。
3.14.1 距离测量算法
Bluetooth 堆栈不会直接生成距离测量值。相反,在Bluetooth 控制器执行 CS 步骤期间,会对相位和/或定时进行低级测量,应用程序可根据这些数据计算距离测量值。
Bluetooth 核心规范没有指定应用程序用于计算距离的算法。因此,这也是供应商可以区别对待的一个领域。卓越的算法将产生卓越的结果。
控制器获取并报告给应用层的数据是标准化的,因此原则上所有应用距离测量算法都可以处理相同类型的输入数据。实际上,向应用层提供哪些数据取决于Bluetooth Channel Sounding 程序中使用的模式组合和排序。数据质量也可能有所不同,这取决于Bluetooth 核心规范之外的控制器实施细节。
3.14.2 控制器与主机之间的Bluetooth Channel Sounding 数据通信
主机控制器接口功能规范》定义了两个事件,控制器使用这两个事件将Bluetooth Channel Sounding 数据传送到主机,用于距离测量计算和评估当前安全条件。这两个事件分别称为 LE CS 子事件结果和 LE CS 子事件结果继续。
控制器汇总在Bluetooth Channel Sounding 子事件中执行步骤期间生成的测量结果。使用 LE CS 子事件结果 HCI 事件报告完整或部分结果集。如果报告的是不完整的结果集,则会在随后发送的一个或多个 LE CS 子事件结果继续事件中报告其余结果。HCI 事件字段 Subevent_Done_Status 和 Procedure_Done_Status 向应用层表明,是否已报告了子事件或过程的所有数据,或者是否还将报告更多数据。
图 40 -Bluetooth Channel Sounding HCI 数据报告示例
人机交互事件的报告与子事件相关,但不一定与子事件的边界严格保持一致。子事件中的步骤数将是影响控制器如何报告结果的一个因素。如果步骤数意味着控制器必须聚合超过其能力的数据,那么控制器就会将人机交互报告分成多个事件。单个事件可容纳的步数限制为 160 步,这也是控制器需要考虑的另一个限制因素。
Bluetooth Channel Sounding HCI 事件从控制器向主机传递一系列类型的数据。详情请查阅Bluetooth 核心规范主机控制器接口功能规范。本文介绍了部分关键字段和数据结构。
频率补偿
模式 0 步骤的目的是确定启动器和反射器产生的想要频率和实际频率之间的差异。该值用于计算小数频率偏移(FFO),然后用来补偿这种差异对频率和定时值的影响,最终提高距离测量的准确性。HCI CS 事件的频率补偿(Frequency_Compensation)字段包含此控制器计算值。
报告的步数
该字段表示 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节 应用程序和模式排序考虑因素解释了应用程序控制步进模式组合和Bluetooth Channel Sounding 程序中步进模式 排序的方法。应用层负责决定使用哪种步进模式,以及在同时使用主模式和子模式的情况下,每种选定模式的步进数之间的比例。应用或产品开发人员在得出结论时需要考虑距离测量精度要求、安全性和延迟,以及本地控制器支持的功能。
3.14.4 应用层安全
应用层在选择模式组合和 RTT 参数时,可对整体解决方案的安全性进行一定程度的控制。开发人员应首先了解和评估 3.12.9Bluetooth Channel Sounding 安全级别中所述的通用接入配置文件 (GAP) 所定义的 安全级别,以此作为确定采用何种安全选项的起点。
建议将 PBR 和 RTT 结合使用,以便交叉检查基于这两种方法的距离计算。Bluetooth Channel Sounding 支持 PBR,以提供最精确的距离测量,而同时支持 RTT 的主要原因是作为一种安全措施。应用层有责任做出这种选择。
Bluetooth 控制器中的 NADM 算法创建了 NADM 值,并为这些值定义了标准化的形容词含义形式。但应用层必须决定对每个可能的 NADM 值采取什么措施(如果有的话)。
4.Bluetooth 核心规范变更摘要
为引入Bluetooth Channel Sounding 功能,对Bluetooth 核心规范的几个层进行了修改。本节概述了主要变更,旨在提供逐章的高层参考,仅供参考。详细内容请查阅Bluetooth 核心规范。
4.1 结构
Bluetooth 核心规范第 1 卷 A 部分描述了该技术的架构。
- 第 3 节 "传输架构 "为Bluetooth Channel Sounding 引入了新的数据包结构和信令格式。它还定义了新的 LEChannel Sounding 物理信道和 LEChannel Sounding 物理链路。
- 第 9 节,Bluetooth Channel Sounding 使用Bluetooth 低能耗,简要介绍了Bluetooth Channel Sounding 功能。
4.2 东道方
4.2.1 通用访问配置文件
第 3 卷 C 部分定义了通用接入配置文件 。
- 第 9 节介绍 GAPBluetooth Channel Sounding 程序以及启动器和反射器的作用。
- 第 10 节Bluetooth Channel Sounding 四个安全级别。
4.2.2 主机控制器接口
第 4 卷 E 部分包含主机控制器接口功能规范。
- 更新了第 7.7.6.5 节 LE 元事件,以添加与Bluetooth Channel Sounding 有关的各种新事件类型,包括 LE CS 子事件结果事件和 LE CS 子事件结果继续事件。
- 第 7.8 节 "LE 控制器命令 "中新增了用于Channel Sounding 的命令,如 LE CS 读取远程 FAE 表命令、LE CS 创建配置命令、LE CS 安全启用命令和 LE CS 程序启用命令。
4.3 控制器
4.3.1 物理层
第 6 卷 A 部分包含物理层规范。
- 第 1 节介绍新型 LE 2M 2BT PHY。
- 第 2 节介绍了Bluetooth Channel Sounding 的新通道安排。
- 第 3 节定义了新的信噪比控制功能。
- 第 3.4 节为支持Bluetooth Channel Sounding 的设备增加了稳定阶段要求。
- 第 3.5 节介绍了Bluetooth Channel Sounding 中对频率测量和生成的要求。其中包括分数频率偏移 (FFO) 测量要求规范。
- 第 5.3 节是一个新章节,介绍了Bluetooth Channel Sounding 的天线切换。
- 第 6 节涉及相位测量要求,包括参考接收器定义、相位测量精度要求说明、频率致动误差补偿要求和相位测量计时规则。
- 附录 B 提供了一个测试设备设置示例,用于Bluetooth Channel Sounding 。
4.3.2 链路层
第 6 卷 B 部分包含链路层规范。
- 第 2.4.2 节定义了与Bluetooth Channel Sounding 功能相关的新链路层控制器 PDU 类型及其操作码。
- 第 4 节包含对信道Bluetooth 声音的链路层空中接口协议的更新。其中包括第 4.2 节中更新的睡眠时钟精度要求,以及第 4.5.18 节中对Bluetooth Channel Sounding 程序、事件、子事件和步骤的规范。与Bluetooth Channel Sounding 相关的 ACL 链路及其可能传输的控制 PDU 的安全要求载于第 4.5.18.2 节。
- 第 5.1 节涉及链路层控制主题。该节已经更新,纳入了与Bluetooth Channel Sounding 有关的新控制程序,如Bluetooth Channel Sounding 启动程序、Bluetooth Channel Sounding 能力交换程序、Bluetooth Channel Sounding 配置程序和Bluetooth Channel Sounding 启动程序。
4.3.3Bluetooth Channel Sounding
第 6 卷 H 部分是专门介绍Bluetooth Channel Sounding 新功能的新章节。它涵盖了与Bluetooth Channel Sounding 一起使用的物理射频信道的定义、新的 CS_Sync 数据包格式、RTT 测量以及获取到达或出发时间戳的各种方法。本节还定义了Bluetooth Channel Sounding 的新信道选择算法,以及步进模式、步进组合和排序规则、相位测量规则和使用 DRBG 生成随机比特。
5.结论
通过Bluetooth Channel Sounding ,开发人员可以利用该功能的安全精细测距能力创建令人兴奋的产品和应用。
基于世界上最普遍的低功耗无线技术的 "查找我的 "和数字密钥解决方案的最终用户将享受到性能的提升,这要归功于使用Bluetooth Channel Sounding 功能的设备所能实现的高质量结果。此外,产品开发商还可利用一套全面的安全功能来解决相关问题,这将使他们高枕无忧。
Bluetooth Channel Sounding 在技术上的灵活性意味着开发人员可以优先考虑测距中最重要的方面,无论是安全性、准确性还是延迟。并非所有的应用都是一样的,这一点在Bluetooth Channel Sounding 功能的设计中得到了认可和满足。开发人员可以自由决定在产品实施过程中什么对他们和他们的用户最重要。
Bluetooth 支持的设备每年出货量超过 50 亿台。这带来了巨大的规模经济效益,使产品和元件制造商受益,并最终使他们的客户受益。
Bluetooth Channel Sounding 以及执行安全精细测距的能力为提高许多Bluetooth 连接设备的便利性、安全性和保密性提供了机会。存在检测、方向查找以及现在的channel sounding 可单独使用或结合使用,以创建空间感知产品和应用,让最终用户和商业企业从中受益。
Bluetooth 技术绝对是无处不在的,而且它是基于广泛采用和精心指定的技术标准。对于希望在其Bluetooth 产品中添加多种功能的开发人员来说,采用Bluetooth Channel Sounding 是一个简单、安全的选择。下载Bluetooth Core Specification(核心规范),了解有关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.高斯频移键控