使用蓝牙5.1的室内定位系统
投稿人:DigiKey 北美编辑
2019-08-14
编者按:本系列文章包含两个部分,第 1 部分介绍蓝牙 5.1 测向功能,作为低功耗蓝牙固件的附加功能,它能够让设计人员开发出基于到达角 (AoA) 和出发角 (AoD) 的定位应用,例如资产跟踪和室内定位系统 (IPS)。本文将探讨用于构建和配置蓝牙 5.1 测向应用的合适开发平台和 SoC,这是这个系列文章的第 2 部分和最后一部分。
最新版本的蓝牙核心规范(5.1 版)能够让开发人员更轻易地实现资产跟踪和室内定位系统 (IPS)。具体而言,该规范为蓝牙数据包添加了固定频率扩展信号 (CTE),以便让接收器能够从射频信号中提取 "IQ" 数据(计算收发器位置所需的同相和正交相位信息),而不会对调制产生干扰效果。此外,开发人员现在只需使用主机控制接口 (HCI) 配置采样控制器,即可轻松配置协议以执行 IQ 采样。
不过,提取 IQ 数据仍然比较复杂,需要将设计合理的天线阵列与无线微处理器配合使用。即便 IQ 数据成功提取,仍然必须对其进行处理,充分考虑多路径接收、信号极化和传播延迟、噪声和抖动后,才能用于计算发射器的位置。
本文阐示了实际解决方案中所需注意的事项,并介绍了 Dialog Semiconductor、Silicon Labs 和 Nordic Semiconductor 推出的适用于构建蓝牙 5.1 测向应用的开发平台和模块。此外,本文还阐示了如何使用这些平台着手原型开发、测试和验证设计。
蓝牙 5.1 数据包结构
蓝牙 5.1 数据包中包含由一串数字 "1" 组成的 CTE,从而确保天线以恒定频率接收该部分信号(而非常用于传输蓝牙数据的调制频率)。此外,该数据串未白化(即去相关)。配置得当的低功耗 (LE) 蓝牙无线电接收包含 CTE 信号的数据包后,将在 CTE 信号期间进行 IQ 采样。单个 IQ 样本由信号幅度和的相位角组成,并以笛卡尔坐标表示(图 1)。
图 1:低功耗蓝牙接收设备会获取阵列中每个天线的蓝牙数据包 CTE 部分时间段内的相位角和幅度 IQ 样本,测向应用的第一步正从这一采样过程开始。这些样本均以笛卡尔坐标 (I,Q) 表示。(图片来源:Bluetooth SIG)
蓝牙核心规范 v5.1 详细说明了对低功耗蓝牙控制器的变更,使 AoA 和 AoD 技术能够使用连接(“配对”)或无连接通信。不过,AoA 常用于资产跟踪等连接应用,而 AoD 将用于 IPS 等无连接应用。
连接式测向使用标准蓝牙 5.1 数据包,并在末尾附加 CTE。相比之下,无连接测向则在蓝牙周期性广播数据包末尾添加 CTE(图 2)。
图 2:蓝牙 5.1 数据包结构显示了 CTE 的位置和持续时间。连接式应用在标准数据包末尾添加 CTE,而无连接应用则使用广播数据包。(图片来源:Bluetooth SIG)
无论是连接式应用,还是无连接应用,开发人员都必须执行一些设置和配置步骤,才能启动发射器的 CTE 和接收器的 IQ 采样,而具体步骤取决于应用是基于 AoA 还是 AoD。
构建测向解决方案
在 AoA 适用的资产跟踪等应用中,发射器是像低成本简单标签之类可移动物体,而接收器(或定位器)则是固定参考点。AoA 实现的优点在于,标签只需使用单个天线(而非阵列)传输蓝牙 5.1 协议数据包,并且不需要运行计算密集型算法以最终确定发射器的位置(参见第 1 部分)。
虽然资产跟踪系统的标签设计遵循相对简单的射频 (RF) 设计原则,但标签需要配备蓝牙 5.1 收发器,才能配置数据包以包含 CTE。收发器选型时,值得注意的是,CTE 发送不能采用蓝牙低功耗编码式 PHY(用于实现蓝牙 5 技术的远程无线电),而须采用未编码 PHY。
市面上有些商用蓝牙 5.1 产品可供使用,例如 Dialog Semiconductor 的 DA14691 低功耗蓝牙 5 SoC 适用于定位服务应用。该芯片采用 Arm® Cortex®-M33 微处理器,包括 512 KB 的随机存取存储器 (RAM)。Dialog 为 DA14691 提供了蓝牙 5.1 堆栈。Silicon Labs 也为 EFR32BG13 低功耗蓝牙 SoC 发布了蓝牙 5.1 堆栈;该芯片采用 Arm Cortex-M4 微处理器,提供 64 KB 的 RAM 和 512 KB 的闪存。此外,Nordic Semiconductor 更进一步,他们发布了全新“测向”硬件和软件解决方案 nRF52811。这款低功耗蓝牙 SoC 可以兼容蓝牙 5.1,集成了 Arm Cortex -M4 微处理器,并结合了来自 Nordic 的高端器件 nRF52840 的多协议无线电。该芯片提供 192 KB 的闪存和 24 KB 的 RAM。
这些器件在蓝牙测向应用中适合用于发射器和接收器。每个器件均支持 CTE 传输,并能借助指定发射器天线布局的配置文件信息获取 IQ 样本。从理论上讲,这些器件也能执行复杂计算,从而计算传入无线电信号的入射角和收发器的位置。不过,尽管这些 SoC 使用的 Arm Cortex-M33 和 M4 处理器功能相对强大,但是若在运行复杂测向算法的同时,还需监控无线协议,可能就会造成应用性能不佳。
根据应用对性能和延迟的要求,开发人员可以考虑使用协处理器(可提供额外的 RAM 和闪存),尤其是针对应用软件。例如,Nordic 的 nRF52811 设计可通过内部集成电路 (I2C) 接口和串行外设接口 (SPI) 与协处理器连接。
另一个设计挑战是,为了降低成本,低功耗蓝牙 SoC 通常不具备多个天线端口,或不具备在阵列中各个天线之间进行系统化切换的能力。因此,在低功耗蓝牙 SoC 的单天线端口与多天线阵列之间需要接入射频开关,从而在各个天线之间切换以收集各天线的 IQ 数据(图 3)。
图 3:在 AoA 测向资产跟踪系统中,标签使用单天线和传统低功耗蓝牙 SoC 来发送包含 CTE 的蓝牙 5.1 数据包。主要计算在系统的多天线定位器端执行,定位器收集的信号数据将发送至运行测向算法的定位引擎。(图片来源:Bluetooth SIG)
接收器(或定位器)需要通过天线阵列的 IQ 数据来检测信号的相位差,这种相位差是由于阵列中的每个天线与单一信号发射天线的距离差异导致的。而应用是采用 AoA 还是 AoD,正是取决于各个天线的相位角差异。
天线设计通常分为三种类型:均匀直线阵列 (ULA)、均匀矩形阵列 (URA) 和均匀圆形阵列 (UCA)。设计天线阵列需要大量经验,因而对于开发人员而言,交由第三方专家来配置最佳阵列,并提供物料清单 (BoM) 以便批量构建,往往是更为有效的做法,如第 1 部分所述。
应用对天线阵列、协处理器、额外存储器和天线管理的要求,不仅增加了资产跟踪解决方案定位器端的复杂性,也增加了成本和功耗。所幸定位器通常安装在固定位置,因此可由市电供电。对于大多数解决方案,所需的设备数量比标签数量少得多。
AoD 实现则略微复杂。在这种情况下,发射器包含天线阵列。接收器执行 IQ 采样,对各个天线进行测量,并根据远程发射器天线阵列的设计细节追溯所测量的特定天线。
在 AoD 实现中,固定的定位器信标需要配备蓝牙 5.1 收发器、射频开关和多个天线来传输信标信号,但与 AoA 实现不同,由于链路这一端不需执行信号分析,因此不需另增处理器和存储器。然而,移动接收器虽然只需单个天线,却需要配备相应的硬件和软件来执行测向计算(图 4)。例如,在 IPS 应用中,接收器通常是兼容蓝牙 5.1 的智能手机,因而处理器和存储器资源足以完成该任务。
图 4:在 AoD 测向 IPS 系统中,固定信标使用天线阵列发送包含 CTE 的蓝牙 5.1 数据包。主要计算由消费者的智能手机等移动设备执行。(图片来源:Bluetooth SIG)
使用蓝牙 5.1 进行原型开发
Dialog Semiconductor、Silicon Labs 和 Nordic Semiconductor 目前推出的解决方案主要集中在 AoA 和 AoD 应用中的 CTE 传输、数据包接收和 IQ 采样执行等环节。因此,开发人员需要确定执行实际测向计算所需的资源(即硬件和定位引擎固件)。不过,随着供应商争相发布增强型测向解决方案,这一情况可能不久后就会发生变化。
例如,针对 AoA 资产跟踪应用,各家公司都推出了相应的开发工具以支持标签原型开发。开发过程通常遵循传统低功率无线设备的开发过程。例如,开发套件中包含由工厂提供的基于蓝牙 5.1 目标设备和外设的全功能收发器,将其连接至 PC 或 Mac 构建合适的集成开发环境 (IDE),并利用芯片供应商的软件工具以实现应用开发。
Dialog 建议使用 DA14695-00HQDEVKT-P-ND 开发套件来开发基于蓝牙 5.1 的应用。该套件包括母板、基于 DA14695 蓝牙 5.1 SoC 的子板,以及用于连接 PC 的电缆。此外,该开发套件还支持 Arduino 和 MikroElektronika mikroBUS 盾板,并具有功率测量功能。
Silicon Labs 推出了 SLWSTK6006A 无线 Gecko 入门套件。该开发套件配备了 6 个以上基于 EFR32BG21 蓝牙 5.1 SoC 的子板,可实现具有多个标签的资产跟踪系统原型开发。该开发套件可与该公司的 Simplicity Studio 配合使用,后者支持 Flex SDK 应用和配置软件开发工具。
Nordic 推出基于该公司 nRF52840 SoC 的 nRF52840-DK 评估板,该 SoC 可与 nRF52811 蓝牙 5.1 SoC 完全兼容。该公司的 nRF5 SDK 是一款受众多常用 IDE 支持的软件开发工具,可用于执行应用开发和系统配置。(有关低功耗蓝牙应用开发的详细信息,请参见 DigiKey 文章“兼容蓝牙 4.1、4.2 和 5 的低功耗蓝牙 SoC 和工具可应对物联网挑战”。)
由于蓝牙 5.1 默认不发送包含 CTE 的数据包或执行 IQ 采样,开发人员必须通过供应商的开发工具配置系统以添加这些功能。这些工具可以访问主机控制器接口 (HCI),之后主机就可使用该接口配置控制器以生成 CTE 和执行 IQ 采样。
对于无连接应用(AoD 适用的应用类型),主机将执行以下控制器初始化步骤(图 5):
- 配置扩展广播
- 配置周期性广播
- 配置 CTE 发送
- 启用 CTE 广播
- 启用周期性广播
- 启用扩展广播
- 设置广播数据
图 5:无连接方案(AoD 适用的应用类型)主机执行的控制器初始化步骤。(图片来源:Bluetooth SIG)
扫描设备旨在接收 CTE 数据,获取广播发送的 IQ 样本,因而必须采用如下配置:
- 配置扩展扫描
- 启动扩展扫描
- 与接收的周期性广播同步数据包同步
- 启用无连接 IQ 采样
对于连接方案(AoA 适用的应用类型),由主设备或从设备请求其他设备发送包含 CTE 的数据包。通过发送链路层 (LL) CTE 请求数据包来执行请求,该数据包中的许多参数可用于配置 CTE 创建。若远程设备不支持 CTE,则会通知本地设备。于是,本地设备就不会使用当前连接进一步发送 CTE 请求。
具体过程如下,请求设备将:
- 在控制器中配置 CTE 接收参数
- 在控制器中启用 CTE 请求
- 接收和处理 IQ 报告
- 不再需要时禁用 CTE 请求发送
响应设备将:
- 在控制器中配置 CTE 发送参数
- 在控制器中启用 CTE 响应
- 接收并响应来自其他设备的 LL CTE 请求
在蓝牙 5.1 规范中,HCI 具有一条新命令“低功耗读取天线信息”,允许主机获取其控制器所支持天线的信息。用于获取远程设备中天线阵列信息的程序尚未定义。
使用天线阵列执行 IQ 采样时,获取的每个样本都必须追溯至特定天线,并且以系统化方式完成采样。使用 HCI 配置命令中指定的模式并严格遵循时序规则有助于系统化采样。这些规则的应用以及具体设备对应的具体规则,均取决于应用是基于 AoA 还是 AoD,设备属于发送设备还是接收设备。例如,单天线发送设备可连续发送包含 CTE 的数据包。不过,IQ 采样总是由接收设备执行,无论设备使用的天线数量多寡。
CTE 处理时间可分为 4 µs 起始保护周期 、8 µs 参考周期,之后的序列则由切换时隙、采样时隙,或切换时隙和采样时隙交替排列组成(图 6)。
图 6:该例说明了 AoA 应用中 1 µs 和 2 µs 的切换及采样时序。单天线发送设备连续发送包含 CTE 的数据包,而接收设备根据切换和采样序列执行 IQ 采样。(图片来源:Bluetooth SIG)
在参考周期内,不切换天线,一次性获取 8 个 IQ 样本。主机可以使用参考样本来估算信号频率并推断波长,从而提高角相位角计算的精度。[1]
总结
蓝牙核心规范 5.1 版的增强功能要求生成使用 CTE 和 IQ 采样进行测向所需的原始数据。该规范使用经过验证的工程技术来确定信号方向,并将接口、配置和交互标准化。另一个优势在于,如今所有芯片供应商提供的蓝牙解决方案均可实现高精度测向。
各大芯片制造商争相提供各种硬件解决方案、软件、开发套件和软件开发套件,让开发人员能够尽快熟悉如何配置使用蓝牙测向功能的系统。商用资产跟踪和 IPS 应用仍要求较高水平的开发专业知识,尤其是在天线阵列和定位引擎固件的设计方面。不过,今后的蓝牙测向配置有望进一步简化这一难题。
参考文献
1: Bluetooth Direction Finding: A Technical Overview, Martin Wooley, Bluetooth SIG, March 2019.
免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。