4.1、4.2 和 5 版标准中对低功耗蓝牙射频协议软件(“堆栈”)做出了重要升级改进,除了其根本的消费性,还大大提高了针对各种应用的实用性,特别是物联网 (IoT) 相关的应用。
然而,技术的快速发展,加上低功耗蓝牙及常规(或“经典”)蓝牙的功能和互操作性模糊不清,已导致了一些混淆。设计人员和开发人员若要优化其设计,同时确保充分利用蓝牙的功能,需要充分了解哪种技术最适合其特定应用。
本文章拥有两部分,将通过定义低功耗蓝牙来解决这种混淆。然后介绍规范 4.1、4.2 和 5 中对该技术所做的增强,使其适合于不是原本目标的应用。这些应用包括超低功耗、更大范围、更高吞吐量以及新增广告扩展。文章还介绍了与规范最新版本完全兼容的低功耗蓝牙片上系统 (SoC) 示例。
该两部分系列文章的第二部分将说明,射频经验极少的设计人员如何使用众多供应商提供的 SoC、模块、固件及硬件和软件开发套件 (SDK) 来设计低功耗蓝牙无线产品。
针对低功耗进行优化
随着蓝牙 4.0 在 2010 年被采用,低功耗蓝牙作为超低功耗、可互操作式的蓝牙短距离无线技术而引入。该技术将蓝牙生态系统扩展到可穿戴电子设备等电池容量较小的应用。其在目标应用中的平均电流是微安级,补充了传统蓝牙。原规范的主要特点:
- 轻型协议栈。
- 与 4.0 以上版本蓝牙的互操作性。
- 1 Mbps 的原始数据速率。
- 10 米左右的传输距离。
- 对其他 2.4 GHz 无线电源的高抗扰度。
该技术适用于传输来自紧凑型无线传感器或其他可使用完全异步通信的外设的数据。这些设备很少发送少量数据(即少数字节)。其占空比范围从每秒几次到每分钟一次,或者更长。
在蓝牙 4.0 内核规范中,轻型低功耗蓝牙堆栈包括物理层 (PHY)(负责传输比特)、链路层 (LL)(负责定义数据包结构和控制)和主机控制接口 (HCI)。这三层统称为低功耗蓝牙链路控制器(或“控制器”)。控制器之上的主机层包括逻辑链路控制和适配协议 (L2CAP),主要负责为应用和服务提供基于通道的抽象。其可通过共享逻辑链路进行应用数据的碎片化和去碎片化,以及复用和去复用多通道。
主机层还包括安全管理器协议 (SMP) 和属性协议 (ATT)。SMP 使用固定 L2CAP 通道实现设备间的安全功能。ATT 提供了一个通过固定 L2CAP 通道进行少量数据通信的方法。另外,ATT 还会用于确定其他设备的服务和功能。通用属性 (GATT) 配置文件指定了交换配置文件数据的结构。这种结构定义了应用中使用的服务和特征等基本要素。最后,通用访问配置文件 (GAP) 定义了蓝牙设备的基本要求。应用软件位于堆栈的顶部(图 1)。
图 1: 显示了控制器、主机和应用的低功耗蓝牙协议栈。通用属性配置文件 (GATT) 定义了蓝牙设备的基本要求。(图片来源: “Bluetooth Low Energy: The Developer’s Handbook,” Robin Heydon)
开发人员中的混淆可能始于 4.0 版本,蓝牙内核规范定义了两种芯片类型:
- 上述低功耗蓝牙芯片和堆栈。
- 采用经修改堆栈的蓝牙芯片,加上集成以前版本的基本速率 (BR)/增强型数据速率 (EDR) PHY 以及低功耗 (LE) PHY(“BR/EDR + LE”),使其可与该标准的所有版本和芯片变体进行互操作。
本文(和第 2 部分)主要讨论了低功耗蓝牙设备。在许多消费应用中,该设备可与蓝牙芯片协同工作,但由于 4.1、4.2 和 5 版中增强了标准,其正越来越多地作为一个独立的物联网应用设备使用。
低功耗蓝牙芯片可以与蓝牙 4.0 或更高版本的其他低功耗蓝牙芯片和蓝牙芯片互操作。请注意,蓝牙芯片用于智能手机、平板电脑和个人电脑等应用,而对这些应用来说,带宽比功耗更为重要。不过,他们也可以与蓝牙 3.0 及更早版本的蓝牙芯片互操作(图 2)。
图 2: 蓝牙 4.0 基于两个设备,蓝牙芯片(带 BR/EDR + LE PHY)和低功耗蓝牙芯片 (LE PHY)(图片的中间和右侧)。这些设备可互操作。蓝牙芯片也可以与蓝牙 3.0 及更早版本的经典蓝牙芯片互操作(左)。(图片来源: Nordic Semiconductor。)
低功耗蓝牙通过最大化待机时间以及使用快速连接和低峰值发射/接收功率来节省功耗。其超低功耗的关键是,传统蓝牙是一种具有固定连接间隔的“面向连接”无线电,而低功耗蓝牙通常处于省电的“未连接”状态,链路的两端能感知彼此,但只在必要时连接,而且连接时间会尽可能短。
与蓝牙的 32 个广告通道相比,低功耗蓝牙仅使用三个就可搜索其他设备或宣告其自身的存在。低功耗蓝牙启动 0.6 到 1.2 毫秒扫描其他设备,而蓝牙需要 22.5 毫秒扫描 32 个通道,多消耗高达 20 倍的能量。
连接后,低功耗蓝牙会切换到其 37 个数据通道之一,然后使用原蓝牙规范首创的采用 79 个通道的自适应跳频 (AFH) 技术,在伪随机模式下于通道间进行切换,从而避免干扰。低功耗蓝牙可在 3 毫秒内完成其连接 - 扫描、链路、发送数据、验证和终止,相比蓝牙使用的几百毫秒,又一次节约了能耗。
该技术还使用了比蓝牙更多的“宽松”射频参数,从而也节省了功耗。这两种技术均使用高斯频移键控 (GFSK) 调制;不过,智能蓝牙使用了 0.5 的调制指数而非经典蓝牙的 0.35,因此降低功耗要求。较低的调制指数也有助于扩大范围以及增强坚固性。
最后,低功耗蓝牙使用的数据包比蓝牙使用的短。这有助于避免芯片过热,也可规避使用功耗高的重新校准程序和闭环架构。
为物联网做准备
在消费应用中,智能手机通常作为低功耗蓝牙设备的数据到达云的“网关”。这适用于健身腕带等以人为本的应用,但对于家庭或工业自动化等应用则不太理想,因为这些应用不太可能会一直都能使用智能手机。在物联网应用中实现该技术时,引入了蓝牙 4.1(部分)以解决这一弱点。
蓝牙 4.1 增加了一项功能,即让设备可同时作为低功耗蓝牙“外设”和“枢纽”。例如,智能手表现在可以作为枢纽,从低功耗蓝牙心率监视器收集信息;同时也可作为智能手机的外设,显示来自手持设备的新消息通知。其次,蓝牙 4.1 增加了一个标准方法来创建可用于 IPv6(最新版本的互联网通信协议)的专用通道。
此次软件升级引入的其他增强功能包括: 低功耗蓝牙和蜂窝 LTE 之间的共存改进;因开发人员可以改变重新连接的时间间隔,从而优化连接;以及大量数据传输。
同时,互联网工程任务组 (IETF) 将低功耗无线个人局域网 (6LoWPAN) 规范新增至 IPv6。IPv6 的 128 位寻址功能超越了 IPv4 的 32 位寻址功能,可确保添加到物联网的几十亿微型传感器都有唯一的 IP 地址。这样一来,他们就能直接连接到网络上的其他设备。如为低功耗蓝牙,则传感器无需网关服务即可进行 IP 连接和转换。作为广泛使用的网关,智能手机是一个很好的示例。
IETF 的发展加上专用通道在蓝牙 4.1 中的引入,使蓝牙 4.2 可以在低功耗蓝牙堆栈中采用互联网协议支持配置文件 (IPSP)。IPSP 使设备可以发现其他支持 IPSP 的设备,并通过低功耗蓝牙传输层使用 IPv6 数据包来与之通信。现在大多数主要低功耗蓝牙芯片供应商在其堆栈中采用这种传输层。
由于增加了 IPSP,低功耗蓝牙设备现在可以通过简单便宜的路由器或网关来与任何其他支持 IPv6 的设备进行通信(图 3)。由于这种路由器作为中立设备,中继 IPv6 数据包而不做任何分析或操作,数百万已投入使用但以前不兼容的低功耗蓝牙(如机顶盒 (STB) 或 Wi-Fi 路由器)现在也可以作为路由器使用,并且价格低廉。
图 3: 蓝牙 4.2 将互联网协议支持配置文件 (IPSP) 引入低功耗蓝牙(以前称为“智能蓝牙”),使设备可以使用简单便宜的路由器与互联网连接,进而与任何其他支持 IPv6 的设备连接。如有这样的设备,也可以通过智能手机网关进行互联网接入。(图片来源: Nordic Semiconductor)
蓝牙 4.2 打击黑客
蓝牙 4.2 还引入了一些安全元素,因此,对于智能灯这类需要经常连接到互联网且无人工干预的低功耗蓝牙设备,不必再担忧会遭到黑客攻击。
第一个是低功耗 (LE) 安全连接。直到蓝牙 4.2,安全简单配对已是蓝牙安全的基本构件,只在生成并分配几个加密密钥后才会进行设备连接:用于链路层加密和认证的一个短期密钥 (STK) 和三个长期密钥 (LTK)、连接签名分辨率 (CSRK) 以及身份分辨率 (IRK)。
蓝牙 4.2 引入了更高强度的安全性。对于密钥管理,规范添加了不对称椭圆曲线加密法 (ECC),该加密法采用的是联邦信息处理标准 (FIPS) 所推荐的椭圆曲线。另外,该规范还使用 FIPS 认可的高级加密标准计数器,采用了 CBC-MAC (AES-CCM) 加密法进行信息加密。其结果是加强了相邻设备间链路层的安全性,保护无线链路免受无源窃听和中间人 (MITM) 攻击。
蓝牙 4.2 中增加的第二个安全性功能是 LE 隐私。其可管理控制器设备及主机设备中的私人地址解析,同时支持控制器层的私有地址白名单。
此外,蓝牙 4.2 将 1 类功率的最大发射功率模式从 +10 增加到 +20 dB,使设计人员能够取消外部电源适配器,从而节省空间和成本。相比蓝牙 4.1,数据包的容量也从 27 个字节增加到 251 个字节,数据范围增加了 2.5 倍。这些改进使互联网上设备到设备的通信和连接更高效,上传更快,无线 (OTA) 固件更新更频繁。
升级后不久,解决方案便迅速问世
低功耗蓝牙的开放标准和市场的成功导致了采用蓝牙 4.0、4.1 和 4.2 后不久,大量供应商和产品即遍布市场。一般来说,这些都采用了 SoC 路由。2012 年推出的 Nordic Semiconductor nRF51系列 就是一个很好的例子。该系列基于 ARM Cortex-M0 处理器,并采用低功耗蓝牙收发器、闪存和 RAM 内存、板载电源管理和少量 I/O。
Dialog Semiconductor 的 DA14680 SoC 遵循类似的公式。该芯片是符合蓝牙 4.2 的一个设备,包括一个 ARM Cortex-M0 处理器、低功耗蓝牙无线电、8 Mb 闪存、64 kB OTP ROM、128 kB 数据 SRAM、128 kB ROM、片上电源管理和其他一些外设(图 4)。
图 4: Dialog Semiconductor 的 DA14680 是符合蓝牙 4.2、基于嵌入式 ARM 处理器、敏感的 2.4 GHz 无线电、闪存、RAM 和 ROM 的 BLE SoC 的一个典型示例。(图片来源: Dialog Semiconductor)
除 Nordic 和 Dialog 外,还有许多其他蓝牙 4.1 和 4.2 IC 供应商为开发人员提供解决方案。其中值得注意的是 Texas Instruments (TI) 和 Cypress Semiconductor。
蓝牙 5 增加范围和带宽
2016 年 12 月推出的蓝牙技术最新版本蓝牙 5(不是预计的“5.0”),使低功耗蓝牙在成为物联网基础技术的道路上更进一步。其扩大了范围和带宽,增强的功能极为显著。
与以前版本的低功耗蓝牙使用的 1 Mbps PHY 相比,2 Mbps PHY 令带宽有所增加。由于蓝牙 5 数据包结构中的固定开销,PHY 带宽的加倍不会直接转化为数据传输加倍,但与蓝牙 4.2 的1 Mbps PHY 提供的 800 kbps相比,开发人员可以预计达到约 1.4 Mbps 的数据传输速率(图 5)。
图 5: 蓝牙 5 保留了蓝牙 4.2 的 251 字节有效载荷,但 2 Mbps PHY 减少了传输时间,增加了带宽。蓝牙 4.2 可以使用 1 Mbps PHY 达到 800 kbps,而蓝牙 5 可以使用 2 Mbps PHY 达到 1.4 Mbps。采用蓝牙 5 的范围增加功能时,即失去带宽的优势。(图片来源: Bluetooth.com)
更快的吞吐量对许多应用虽然有益,但物联网的优势在于更快速的 OTA 更新,这是物联网传感器的一个重要考虑因素,有可能需要定期增强功能,以提供更多功能和更高的安全性。此外,使用 2 Mbps PHY 可节省能耗,原因是在发送特定数据量时,无线电活跃的时间比 1 Mbps 设备短。无线电处于深度休眠模式的时间也更为长久,这就进一步降低了功耗。
蓝牙 5 提供比 4.2 高 4 倍的范围,在许多物联网应用中具有优势。例如,这样的范围可以让一个房子里所有的智能灯通过一个星形拓扑结构与中央集线器通信,而不是较为复杂、且常用于提高低功耗无线技术范围的网状网络。通过使用可检测和修复接收器中通信错误的前向纠错功能 (FEC) 改进范围。关键是谨记该技术的超低功耗特性,范围并不是通过增加发射功率来提高的。
对于工程师和开发人员来说,“范围”定义为从接收的信号中正确提取数据的最大距离。范围增加时,信噪比 (SNR) 也会随之增加,且开始产生解码错误。蓝牙接收器的最大位误差率 (BER) 容差为 0.1%,超过此值即会发生通信故障。要使最大 BER 发生在更大的范围内,因为提高接收器的灵敏度而不是增加发射器的功率。
蓝牙 4.2 使用循环冗余检查 (CRC) 来检查数据包错误。接收器会重新计算 CRC 并将值与发射器增补到数据包的值作比较。CRC 值之间的差异指示发生了错误。然而,4.2 没有在接收器上采用纠错机制。相反,接收器通常要求重发数据包,因此减慢了整体吞吐量。
蓝牙 5 的 FEC 提高了接收器的灵敏度,而未改变硬件。缺点是,为方便纠错,该技术在数据包中增加了冗余位。将有效数据速率降低到 500 kbps 或 125 kbps,取决于采用两个可用的编码方案中的哪一个。不幸的是,2 Mbps PHY 不支持 FEC,因此不能用来补偿冗余位造成的较低有效吞吐量。
由于 FEC 减少有效吞吐量,对给定数据量进行 4 倍长距离操作时,蓝牙无线必须处于高功率状态的时间要长得多。根据不同的编码方案,与未编码传输相比,可能需要高达 13 倍的时间来传输标准低功耗蓝牙数据包的有效载荷。虽然峰值功耗不会受到影响,但平均功耗会飞涨,因此消耗电池电量的速度更快。
在其他改进中,蓝牙 5 还引入了广告扩展。广告扩展将有效载荷从 27 字节增加到 251 字节,从而提高了数据传输效率。该功能最有可能的应用是信标应用,使零售商可以在广告包中发送更多的信息到消费者的智能手机。最新版本的另一个功能是能够使用数据通道进行广播。
符合蓝牙 5 的商业 BLE 芯片刚刚起步。一种解决方案是 TI 的CC2640R2F SimpleLink 低功耗蓝牙 SoC。 这种蓝牙 5 芯片集成了 ARM Cortex-M3 处理器、符合蓝牙 4.2 和 5 的 2.4 GHz 无线电(具有 -97 dBm 的灵敏度),片上 DC/DC 转换器和一个不错的 I/O 和外设选择。SoC 还采用 TI 公司丰富的 SDK 支持、参考设计和其他软件工具。
蓝牙 5 目前不支持诸如 ZigBee 和 ANT+ 等竞争技术的网状网络功能。一些制造商已经实施了基于低功耗蓝牙的专有网格技术,特别是现已成为 Qualcomm 一部分的 CSR。由于网格很可能是物联网应用的一个关键要求,蓝牙 SIG 正在努力实现它就不显得奇怪了。下一次的蓝牙标准更新(2017 年底)将有望支持网状网络。
总结
4.1、4.2 和 5 版标准中对低功耗蓝牙射频协议软件(“堆栈”)做出了诸多重要升级改进,使接口在需要较低功耗、更大范围和更高吞吐量的应用中更加实用。然而,这些改变也造成了一些混淆。开发人员需要对更新及其含义进行全面了解才能在其应用中充分利用最适当的蓝牙版本。
可以看到,蓝牙早期版本的产品解决方案是广泛可用的,而蓝牙 5 正在迅速攀升。这些解决方案使任何传感器、产品或设备可以通过一个简单便宜的路由器连接到物联网,而不是通过智能手机等复杂的网关。利用这种连接,即便是最普通的当代产品都可具有显著增强的功能,也可以在设备使用中频繁更新。
第 2 部分简介: 记住,本两部分系列的第 2 部分将说明如何使用符合蓝牙 4.2 和 5 的、广泛的 SoC 和模块进行产品设计。
结合成熟的堆栈、开源应用软件、参考设计和工厂提供的开发工具,这些组件已摒弃了射频设计的魔法。本文将说明,虽然低功耗蓝牙无线产品开发仍非易事,但工程师可以避免陷阱,想出一个既符合监管标准和蓝牙规范,又能令客户满意的设计。
参考资料:
- “Getting Started with Bluetooth Low Energy,” Kevin Townsend, Carles Cufí, Akiba, and Robert Davidson, O’Reilly.
- “Bluetooth Low Energy: The Developer’s Handbook,” Robin Heydon.
- “Exploring Bluetooth 5 - Going the Distance,” Martin Woolley, Bluetooth.com.
- “A look in to Bluetooth v4.2 for Low Energy Products”