使用高级蓝牙 5.2 SoC 构建安全的低功耗 IoT 设备
投稿人:DigiKey 北美编辑
2020-04-09
对于物联网 (IoT)、可穿戴设备、互联家居和楼宇自动化应用,蓝牙连接和低功耗性能是大规模产品中电池供电设计的关键要求。在构建这些设计时,开发人员很难在紧张的功耗预算内,找到能够提供高性能功能的低成本蓝牙片上系统 (SoC) 器件。为了满足低成本、低功耗设计解决方案的需求,开发人员常常不得不在性能方面做出妥协,甚至牺牲安全性等日益重要的功能。
为了降低所需的妥协程度,蓝牙 5.2 规格包含了一些节能特性,如 LE 功率控制、周期性广播同步传输 (PAST),以及先进的低功耗网状网络和位置跟踪功能。现在需要的是支持这些功能的单一集成 IC,以及支持该 IC 的相关开发套件和软件,以便允许开发人员使用蓝牙 5.2 的低功耗增强功能快速高效地启动和运行。
本文介绍了 Silicon Labs 的 EFR32BG22 蓝牙低功耗 5.2 SoC 系列如何能满足电池供电产品的各种功耗和性能要求。通过使用 EFR32BG22 SoC 系列及其关联的开发生态系统,开发人员可以构建 IoT 设备和其他电池供电的产品,让其能够借助单个 CR2032 钮扣电池持续运行超过 5 年,或者借助 CR2354 电池持续运行 10 年以上。
利用高级 BLE 功能优化功率
蓝牙连接已成为大众市场消费产品中的一项常见功能,但更高级的低功耗蓝牙 (BLE) 功能的出现,有望带来一系列更先进的物联网产品、可穿戴设备和其他移动产品。不过,在提供这些功能的同时,开发人员也面临着延长电池寿命和增强产品安全性的潜在期望。
在任何蓝牙数据交换、网状网络交易或定位服务操作底层,发射器功率设置的选择对于实现高信噪比 (SNR) 至关重要。如果发射器功率设置过低,降低的 SNR 会导致错误率升高。如果设置过高,发射器件不仅会浪费功率,而且其高功率信号会由于增加多节点网络中的干扰,或使附近的接收器饱和,而导致通信故障。
功率控制:在蓝牙 5.2 中引入 LE 功率控制功能后,即可解决这些问题,其中使用协议让 BLE 器件与其接收器交互,以实现最佳的发射器功率设置。而接收器件可以使用 LE 功率控制协议来请求兼容的发射器更改发射功率水平,以改善接收器的 SNR。同样,发射器可以根据需要使用 LE 功率控制数据,将发射功率降至仍可用于接收器的水平。其中,发射器可以利用接收器提供的接收信号强度指示器 (RSSI) 来独立调整发射功率输出。
在某些应用中,开发人员更关心的是确保他们的设备有足够的发射功率来到达某个远程主机或通信中心,而不是优化发射功率。传统上,确保远距离有效无线连接的需求一直与功耗和安全性背道而驰,尤其是在处于电池供电产品核心的资源受限设计中。
网状网络:使用 BLE 网状网络,将无需通过高发射功率到达远程主机。此时,电池供电的设备使用低功耗通信方式与附近的线路供电节点进行通信。由于消息是从一个节点转发到另一个节点,因此甚至在使用设备最大发射功率和接收器最高灵敏度都无法达到的远距离上,低功率设备也可以进行通信。在家庭或楼宇自动化等应用中,开发人员可以进一步利用蓝牙的广播功能,让多个设备响应单个命令进行操作,例如调整区域照明。这些网状网络协议使用低功耗蓝牙技术后,有助于满足扩展工作范围和低功耗运行这对相互矛盾的需求。
定位服务:蓝牙定位服务需要有效的信号处理能力,这就更难实现高效的无线电操作。蓝牙中无线电测向功能的推出,让开发人员可以实施用于资产跟踪的实时定位系统 (RTLS),或用于在建筑物内导航的室内定位系统 (IPS)。随着蓝牙 5.1 中引入到达角 (AoA) 和出发角 (AoD) 的测向支持,RTLS 和 IPS 应用可以达到早期基于 RSSI 的方法所无法实现的定位精度。
AoA 和 AoD 方法本质上提供了互补功能。多天线接收器可使用 AoA 计算来跟踪移动资产的位置,而该资产会广播来自单天线的测向信号。相反,多天线发射器可使可穿戴设备等设备使用 AoD 计算来确定其位置(图 1)。
图 1:蓝牙的 AoA 方法允许接收器使用天线阵列来精确确定发射资产的位置,而 AoD 方法允许接收设备(例如可穿戴设备)找到自身相对于天线阵列的位置。(图片来源:Bluetooth SIG)
在每种方法中,AoA 接收器或 AoD 设备都使用正交信号处理功能,分别确定与多天线阵列接收或广播信号相关的相移。反过来,对于使用 AoA 方法跟踪的资产,或使用 AoD 方法确定其位置的设备,设备要求也有所不同。跟踪的资产需要尽可能低的功耗,以确保在发射信号的同时延长电池寿命。相比之下,定位设备需要足够的处理能力,以使用发射的同相 (I) 和正交 (Q) 分量来处理相移计算,这些分量与在移动时保持精确位置信息所需的 IQ 采样相关联。
附加的蓝牙功能使开发人员可以降低功耗,而不会损失定位精度。例如,为了在可穿戴设备中实现 AoD,蓝牙协议允许发射器和接收器同步各自的活动,以便两者可同时唤醒以完成位置扫描。借助这种方法,设备便不必浪费能量来随机发送或侦听广播数据包。无线处理器只需在低功耗模式下休眠,直到内置的定时器在需要的时间唤醒它们。在使用这种同步方法时,若大量发射器和接收器彼此邻近工作,则也会缓解可能发生的冲突和效率损失问题。
蓝牙的周期性广播同步传输 (PAST) 提供了一种方法,能进一步降低配对设备(如可穿戴设备和智能手机)的功耗(图 2)。
图 2:可穿戴设备不需要消耗功率来维持与发射器的同步连接(左),而是可以使用蓝牙的 PAST 机制,通过依靠配对的智能手机来提供所需的同步数据,实现功耗降低(右)。(图片来源:Bluetooth SIG)
借助 PAST,可穿戴设备依赖于智能手机与发射器的周期性广播同步。因此,功耗受限的可穿戴设备可避免与唤醒并执行与发射器的同步广播交易相关的功率成本。如果在电池电量不足的情况下有需求,可穿戴设备还可以进一步降低与智能手机更新定位数据的速率,以牺牲定位精度为代价换取更长的运行时间。
不过,要充分利用 BLE 的高级功能,开发人员需要蓝牙 SoC 能够满足相关的冲突要求:既要降低功耗,又要提供高性能计算能力。Silicon Labs 的 EFR32BG22 低功耗蓝牙 5.2 SoC 系列经过特别设计,可在大批量的电池供电产品中支持这些要求。
满足功耗和性能要求
Silicon Labs 的 EFR32BG22 低功耗蓝牙 5.2 SoC 系列架构基于 Arm® Cortex®-M33 内核构建而成,集成了电池供电 IoT 设备、可穿戴设备和其他移动产品设计中所需的全套特性和功能(图 3)。
图 3:Silicon Labs 的 EFR32BG22 SoC 架构结合使用 Arm Cortex-M33 内核和一整套外设,产品功能可用于在低功耗设计中优化 BLE 通信、增强安全性并最小化功耗。(图片来源:Silicon Labs)
除了 Arm Cortex-M33 内核和关联内存外,基本 EFR32BG22 SoC 架构还组合了各种串行接口、GPIO 通道、时钟和计时器。集成的 12 位模数转换器 (ADC) 支持单端或差分输入处理,采样速率高达 1 兆样本/秒 (MSPS),其新颖的架构还将逐次逼近寄存器 (SAR) 和三角积分转换器的元素组合在一起。
在 EFR32BG22 系列中,不同系列产品可用于满足特定的处理和蓝牙运行要求。例如,对于有更多计算密集型需求的设计,开发人员可以选择 EFR32BG22C222 SoC,它提供了更高速度的内核、更多 GPIO 和更高的发射 (TX) 功率。而对于为 RTLS 或 IPS 应用而构建的设计,开发人员可以转向 EFR32BG22C224 SoC,它具有内置 IQ 采样支持和增强的接收器 (RX) 灵敏度。
在 EFR32BG22 系列中,每个产品的基础元素包括完整的无线电子系统、安全模块和能源管理单元,这些能提供安全的低功耗蓝牙通信所需的各种服务。
低功耗蓝牙无线电子系统
EFR32BG22 系列无线电子系统通过独立的 TX 和 RX 信号路径来支持低功耗蓝牙 5.2,而这些路径由专用超低功耗 Arm Cortex-M0+ 处理器内核进行控制。该无线电子系统设计采用了专用的模块来补充此内核的处理能力,其中包括帧控制器 (FRC)、循环冗余校验 (CRC) 模块,以及可管理 RAM 缓冲区的专用无线电缓冲区控制器 (BUFC)(图 4)。
图 4:EFR32BG22 SoC 集成了由专用 Arm Cortex-M0+ 处理器内核所控制的完整 BLE 无线电子系统。(图片来源:Silicon Labs)
在直接转换发射器架构的基础之上,TX 路径组合了片上功率放大器 (PA)、调制器 (MOD) 和频率合成器。在执行任何所需的载波侦听多路访问及冲突检测 (CSMA/CA) 或先听后说 (LBT) 协议时,Arm Cortex-M0+ 无线电控制器会自动管理必要的帧传输时序。
RX 路径使用低中频 (IF) 接收器架构,其中集成了低噪声放大器 (LNA)、自动增益控制 (AGC) 和 IF ADC,后者使该设备能够数字化执行解调 (DEMOD) 并进行抽取和滤波(可配置为支持 0.1 至 2530 千赫 (kHz) 的接收器带宽)。最后,RX 信号链生成用于各种服务的接收器 RSSI 值,这些服务包括功耗优化、信号质量控制和接近检测等。
Silicon Labs 的 RFSENSE 模块与 RX 信号路径并行运行,可监视输入信号,并在检测到射频能量超过定义的阈值时唤醒设备。为了帮助减少在电噪声环境中工作时的假警报,RFSENSE 模块还提供了一种选择性模式,仅在检测到某种能量模式而不是某些随机射频能量猝发时才生成唤醒信号。在这种情况下,该能量模式对应于发射数据包中的开关键控 (OOK) 前导码,因此 RFSENSE 模块检测到的能量更有可能发出实际的通信事务信号。
构建安全系统的硬件支持
要确保电池供电互联设备的安全,解决方案必须与早期设计中所用传统处理器的特性和功能有所不同。传统处理器是针对不易受攻击的环境下运行而设计,因此缺乏一些必需的物理和功能性能力,无法保护如今的物联网设备和可穿戴设备。例如,物联网和可穿戴设计具有现成可用的特点,这使得黑客可以轻松通过差分功率分析 (DPA) 等边信道方法来攻击这些设计,从而会暴露机密数据和私钥。使用这些密钥,黑客可以利用各种方法来欺骗实际设备,并获得对安全网络和本该受保护资源的访问权限。更容易的是,黑客们已例行性地渗透到无线网络中,接触到安全性较差的连接设备,以此拉开类似攻击的序幕。
面对尽量减少 BOM 和延长电池寿命的要求,设计人员常常不得不采用基于软件的安全方法。可惜的是,这些方法仍然像应用软件和操作系统一样脆弱。也许更糟的是,从用户的角度来看,纯粹以软件实现的安全机制在通信和应用的感知响应能力方面带来了明显的滞后。为了在不牺牲性能的情况下增强安全性,互联设计依赖于基于硬件的安全机制。
EFR32BG22 系列结合使用基于硬件的安全机制,有助于开发人员保护设备设计。这些机制的核心是加密加速器,该器件使用各种高级加密标准 (AES) 密钥长度和模式来加快数据加密和解密。对于身份验证和签名操作,该加速器支持常用的椭圆曲线加密 (ECC) 曲线和哈希值。
在较低级别,真随机数发生器 (TRNG) 提供了所需的非确定性数字模式,可减轻因使用已知会重复数字模式的随机数发生器而带来的威胁。一种更低级别的机制可以保护加速器免受前文提到的边信道 DPA 攻击。
对于任何互联产品而言,使用这些机制实现系统安全性只是成功的一半。事实上,在已部署的系统中减少威胁是一项持续的艰巨任务,而在复杂的电池供电设计中,这变得更加困难。在部署一项原本安全的设计后,开发人员过去会让设计暴露在恶意软件注入攻击中,或甚至通过开放式调试接口遭到渗透。EFR32BG22 系列可解决这两个问题,它们通过专门功能设计来减少恶意固件和调试接口渗透。
这些 SoC 提供了一种安全功能,即使用信任根和安全加载程序 (RTSL) 的安全启动。该加载程序使用二级引导程序,可确保基于 EFR32BG22 的系统只能使用经过身份验证的固件进行启动(图 5)。
图 5:Silicon Labs 的 EFR32BG22 SoC 系列支持使用 RTSL 的安全启动,该功能会在从 ROM 启动的受信任固件上建立信任根。(图片来源:Silicon Labs)
从概念上讲,使用 RTSL 的安全启动解决了旧单级引导程序系统中的一个弱点,该弱点使黑客可以通过使用受损固件进行引导,来完全控制所连接的系统。使用签名固件似乎可以解决此问题。但是,实际上,若不法分子利用伪造的证书来对固件签名或使用由其通过欺诈获得的合法证书,即使经过签名的引导方法也会暴露于攻击中。
相比之下,基于 EFR32BG22 的系统所构建的信任根,是在第一级引导程序上打造而成,该引导程序从 ROM 中提取受信任的固件。接下来,此受信任的软件使用严格的身份验证方法来验证第二级引导程序代码的来源和完整性,进而验证并加载应用程序代码。
由于能够在信任根上构建系统解决方案,开发人员在交付产品时可确保软件完整性高度可信,即使通过空中 (OTA) 固件更新周期,软件也持续保持完好无损。但是,有时开发人员需要对系统调试端口级别提供的那些系统进行更深入的访问。
当然,部署具有开放调试端口的系统解决方案将会带来灾难。有些复杂软件系统开发人员需要能够在不损害整个系统安全性的情况下跟踪故障,而 EFR32BG22 系列的安全调试功能可为他们提供一种实用的解决方案。通过安全调试,开发人员可以使用安全身份验证机制来解锁调试端口,并能获得故障分析所需的可见性,而不会损害已部署系统中用户数据的机密性。
优化功耗
如果无法延长电池寿命,最有效的蓝牙通信和安全机制仍会使电池供电设备处于不利地位。实际上,在 EFR32BG22 SoC 架构的基础之上内置了能源管理和功耗优化功能。这些 SoC 充分利用了低功耗 Arm Cortex-M33 内核,在禁用所有外设的完全活动模式下以最高频率 (76.8 MHz) 运行时,每兆赫兹下仅消耗 27 微安 (μA/MHz)。
在空闲期间,开发人员可以将 SoC 置于几种低功耗模式之一,包括睡眠 (EM1)、深度睡眠 (EM2)、停止 (EM3) 和关闭 (EM4) 模式。随着 SoC 转换到低功耗模式,集成能源管理单元 (EMU) 会关闭越来越多的功能模块,直到只有唤醒 SoC 所需的最少模块组保持供电(同样参见图 3)。此外,在切换到低功耗模式时,EMU 会自动降低电压调节级别。因此,在使用内部 DC-DC 转换器并禁用所有外设的 3.0 V 系统中,功耗在睡眠模式下会大幅下降至 17 μA/MHz(运行频率 76.8 MHz),在深度睡眠模式下功耗为 1.4 μA 且保留 RAM 全部数据,在停止模式下为 1.05 μA,在关闭模式下为 0.17 μA。
在早期的处理器中,由于唤醒这些处理器所需的时间较长,因此开发人员在选择低功耗模式时面临着艰难的决定。较长的唤醒时间不仅会迫使系统在唤醒期间保持无响应状态,还会因执行与唤醒进程相关的“非生产性”操作而导致能源浪费。通常,开发人员不得不选择本来不需要的较高功耗模式,以确保处理器能够及时唤醒。相比之下,基于 EFR32BG22 的系统若从 RAM 运行,则从 EM1 睡眠模式唤醒仅需 1.42 微秒 (μs),从 EM2 深度睡眠或 EM3 停止模式唤醒也只要 5.15 μs。即使从关闭模式唤醒也仅需 8.81 毫秒 (ms),这通常低于许多电池供电可穿戴设备或物联网设备的最小更新周期。
能否充分利用这些相对较快的唤醒时间,取决于是否存在一些机制,即使在 SoC 处于 EM3 停止功耗模式下也能够保持一定程度的活动。除了前文介绍的 RFSENSE 等功能,其他功能块(如 SoC 的实时时钟 (RTC))使设备能够在睡眠时保持真实时间,而低能耗计时器 (LETIMER) 使设备能够产生不同的波形或为其他外设提供计数器。实际上,凭借 SoC 的外设反射系统 (PRS),片上外设可以继续运行,该系统可在不同的片上外设之间路由信号并执行基本的逻辑操作——所有这些操作都不需要任何 CPU 介入。
高效系统开发
为了帮助加速实施基于 EFR32BG22 的解决方案,开发人员可以利用围绕 Silicon Labs 的 Simplicity Studio 集成开发环境 (IDE) 构建的一整套开发工具和库。在其低功耗蓝牙软件开发套件 (SDK) 中,Silicon Labs 为一些高级功能提供了支持,包括蓝牙网状网络、AoA 和 AoD 处理,以及安全空中固件更新。除全套蓝牙配置文件外,该 SDK 还包括用于实现自定义软件的样例应用程序和源代码。
总结
电池供电移动产品对高级 BLE 功能的需求快速增长,这给开发人员带来越来越大的压力,需要解决所需性能与可用功率之间的矛盾。在过去,这些相互冲突的要求往往会导致在系统性能、规模和成本方面做出妥协。不过,使用先进的蓝牙 SoC,开发人员可以构建大批量物联网设备和其他电池供电的产品,这些产品能够支持下一代功能(例如室内导航和网状网络),同时使用一粒钮扣电池就可运行数年。
EFR32BG22 系列的其他产品包括:
免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。