编者按: 4.1、4.2 和 5 版蓝牙标准对低功耗蓝牙做出了重要升级改进,旨在让短距离无线标准成为物联网 (IoT) 无线应用的更优选择。 该系列内容包括两部分,第 1 部分介绍升级内容并概述其优势。此处为第 2 部分,介绍了低功耗蓝牙 SoC、模块和套件,并讨论实现各部分相对平衡的设计方法。在了解系列内容后,有能力的设计人员应能够轻松开展低功耗蓝牙设计。
虽然现在已有数家芯片厂商提供符合最新版标准的低功耗蓝牙收发器片上系统 (SoC),但要利用所有新功能却十分困难。如果从零开始设计,开发人员必须面对相对复杂的射频外围电路设计,然后编写软件来优化其应用程序,如此才能与制造商经测试和验证的低功耗蓝牙协议软件(“堆栈”)平稳对接。然后,他们还必须确保无线设计原型合规。虽然可以选择不需要外围电路设计和合规性测试的模块来简化开发过程,但这会增加成本和解决方案基底面方面的难题。
本文通过商业低功耗蓝牙芯片和模块、堆栈、开源应用软件、参考设计和供应商所提供开发工具的示例,介绍了射频设计专业知识有限的工程师解决各种挑战,及最大限度利用无线连接优势的方法。
硬件设计
本文章第 1 部分介绍了芯片供应商如何在其低功耗蓝牙产品中普遍采用高度集成的 SoC。SoC 几乎完全基于 2.4 GHz 无线电,搭载 ARM Cortex-M0、M3 或 M4F 嵌入式处理器,使用闪存和 RAM 来存储堆栈固件和应用软件。其他片上资源通常包括电源管理,多种外围设备和 I/O,例如脉冲宽度调制 (PWM)、模数转换 (ADC) 和一个通用异步接收器/发送器 (UART)。
在推出单芯片硬件的同时,芯片供应商正努力为缺乏射频专业知识的工程师提供参考设计、应用说明和设计工具,来简化其无线产品的设计工作。当然,拥有一些射频知识具备一定优势,但经验不足的工程师也可以设计和开发功能齐全的无线产品。
Cypress Semiconductor 的 CYBL1xx7x 蓝牙 4.2 收发器 SoC、设计工具和说明文档,是供应商提供的此类完整解决方案的很好示例。Cypress 的 SoC 将五个子系统集成到单个集成电路中。这样,低功耗蓝牙解决方案以前需要的很多外设元器件如今不再需要。(图 1)。
图 1: 低功耗蓝牙芯片制造商普遍采取高度集成的 SoC 方法。此类解决方案只需要极少的外设元器件,使用 ARM Cortex-M[x] 处理器运行堆栈和应用代码。原理图介绍了 Cypress Semiconductor 的 CYBL1xx7x 低功耗蓝牙 SoC。(图片来源:Cypress Semiconductor)
这些子系统中最重要的是 CPU 子系统,通常包括嵌入式 ARM 处理器和存储块。直接存储器访问 (DMA) 控制器支持在不占用 MCU 资源的情况下执行特定操作。嵌入式 ARM 内核具备诸多优势。包括广泛的适用范围、强大的生态系统,并且支持几种常见的集成设计环境 (IDE)。内核具有专门设计的低功耗特点,且器件具有足够的计算开销,可以同时运行堆栈和复杂的应用代码。如此,降低了复杂性,并消除了独立应用处理器的成本和空间需求。
CYBL1xx7x 的低功耗蓝牙子系统包括链路层 (LL) 引擎和物理层 (PHY)。(请参阅本文第 1 部分,了解更多关于堆栈的详细信息。)LL 引擎支持蓝牙中心和外围功能。射频收发器包含一个集成平衡不平衡转换器,该转换器用作单端射频端口引脚,通过匹配网络驱动 50 Ω 天线端子(见下文)。可通过编程实现所需输出功率,以满足具体应用程序,输出功率范围为 –18 dBm 至 +3 dBm。
Cypress SoC 的其他子系统包括系统资源,如电源管理和时钟控制、外设和 I/O。所选的外设和 I/O 很大程度上都匹配低功耗蓝牙 SoC 的典型传感器应用。
尽管 Cypress CYBL1xx7x 等 SoC 包含实现完整低功耗蓝牙解决方案的所有硬件(和固件),但仅将芯片焊接到印刷电路板并通电不太可能形成有效的解决方案。与所有射频设计一样,功能完备的系统需要由无源元器件构成的附加匹配电路(图 2)。
图 2: 许多低功耗蓝牙 SoC 高度集成,减少了实现良好运行性能所需的外部元器件的数量,如 Texas Instruments 的 CC2640 SoC 的应用电路所示。然而,外部电路的设计仍然很棘手,推荐参考制造商提供的参考设计。(图片来源:Texas Instruments)
区分优劣射频电路的关键参数是电路阻抗 (Z)。在使用 2.4 GHz 无线电等高频率时,射频电路迹线上某一点的阻抗与迹线的特征阻抗 (Z0) 有关,而特征阻抗又取决于印刷电路板基底和电路迹线尺寸、与负载间的距离及负载的阻抗。
实际上,当负载阻抗 (ZL)(在发射系统中是天线,在接收系统中是低功耗蓝牙 SoC)等于 Z0 时,迹线上距离负载任意间距处测得的阻抗 (Z) 均相同。其结果是,线路损耗降到最小,实现发射器与天线间的最大功率传输。鉴于此,通常使用匹配网络来确保射频器件的阻抗等于迹线的特征阻抗。
供应商在优化低功耗蓝牙 SoC 的性能时,将基于芯片所连接的迹线具有 50 Ω 的特征阻抗这一假设。为此,SoC 集成了标称阻抗为 50 Ω 的平衡不平衡转换器。然而,与外部电路的调谐通常需要确保 SoC 的阻抗精确到 50 Ω。使用包括分流电感器和串联电容器的电路来实现调谐(反义亦然,具体取决于补偿前测得的阻抗值)。
天线的类型取决于应用:例如,无线鼠标等低功耗蓝牙应用需要相对较短的射频范围和带宽。在这种情况下,常见的解决方案是使用曲流倒 F 天线 (MIFA)。MIFA 使用印刷电路板迹线成形。基底面小,价格实惠,具有中等增益(图 3)。
然而,通过语音识别应用实现的远程控制需要更大的范围和带宽,使有线天线成为更好的选择。其提供比 MIFA 更大的范围和增益,但需要权衡成本和空间。
图 3: MIFA 天线是低功耗蓝牙应用的常见解决方案,因为它可以使用印刷电路板迹线成形,基底面小,价格实惠并提供中等增益。(图片来源:Cypress Semiconductor)
大多数低功耗蓝牙 SoC 都包含一个阻容 (RC) 电路来提供 16 或 32 kHz 的信号用于定时。这是一种价格实惠、能效高的选择。如果需要更高的定时精度,则必须添加一个外部 32.768 kHz 晶体振荡器 (XTAL)。此外,通常需要外部高频 16 或 32 MHz XTAL 来提供参考频率和系统时钟。
模块优势
使用分立元件设计低功耗蓝牙电路具有一些优势,特别是较低的物料清单 (BoM) 以及更多地节省空间。然而,此设计方法易出错,会损害产品性能,并且更加难以符合规范。
幸运的是,低功耗蓝牙 SoC 制造商提供的参考设计大有助益。适合从可穿戴设备到遥控和信标的众多常见应用。遵从参考设计是首个原型获得合理性能的好方法,更容易针对特定应用进行优化。
另一种方法是使用第三方模块。这样做的好处很多。这些装置通常采用相同的低功耗蓝牙 SoC,以 SoC 为基础进行分立设计,优化外部元器件和电路以实现所需性能,最重要的是模块大多能够通过蓝牙 SIG 和 FCC(例如)认证。缺点也很多。成本更高(取决于体积)、尺寸更大、更加依赖单个供应商及其量产能力、以及(有时)可用引脚数量相对于模块所基于的 SoC 有所减少。
模块通常由多种开发工具支持。u-blox 的 NINA-B111 蓝牙 4.2 收发器模块是可用模块的典型示例。模块基于 Nordic Semiconductor nRF52832 SoC,并且与 Bluetooth 4.2 完全兼容。除 Nordic SoC 外,模块还配有内置天线(或通过专用引脚连接的外部天线),并包含 32 MHz 和 32.786 kHz 晶体振荡器(图 4)。范围规格为 300 米以上,模块通过蓝牙 SIG 和国际射频合规性的全球认证。NINA-B111 采用 10 x 14 mm 封装(内置天线型号)。
图 4:u-blox 的 NINA-B111/2 是经过测试和认证的低功耗蓝牙模块,无需硬件开发,并提供了若干方法来简化软件开发。(使用 Digi-Key Scheme-it® 绘制的原理图。图片来源:u-blox)
NINA-B111(以及基于低功耗蓝牙 SoC 的类似模块)使得具备很少或不具备射频硬件专业知识的工程师能够使用完全认证的硬件和射频协议栈。让他们专注于应用软件,使其产品脱颖而出。
射频协议栈通常预编程到 SoC 中。闪存通常用于存储堆栈,它可以随着低功耗蓝牙规范的演变在工厂或现场更新。使用这种方法,客户不再需要分配资源进行堆栈开发。堆栈得到安置后,下一步是应用代码开发。
蓝牙应用代码开发
开发成功的应用代码有两种方法。蓝牙 SIG 首先鼓励开发和采用“配置文件”。它们是用于定制低功耗蓝牙产品以实现特定目的的软件应用程序,例如人机界面设备 (HID)。软件定义运行相同配置文件的器件的一般特性,它们的通信方式以及交换哪种数据。配置文件通常还包含对其他配置文件的依赖性以及推荐的用户界面格式等信息。除了 HID,还有几十种配置文件可用于健康和保健监测、环境感测和电话状态警报等应用。设计人员可以使用低功耗蓝牙所采用的配置文件,或使用通用属性配置文件 (GATT) 来创建自定义配置文件。
然而,即使有很多配置文件和创建自定义配置文件的选项,总会存在无法满足开发人员预期应用的情况。此时,可以在 SoC 制造商或 ARM 等第三方的开发套件 (DK) 和软件 DK (SDK) 上编写应用软件。
将应用软件与射频协议栈集成时,可能会遇到不必要的复杂性。若不够谨慎,精巧的低功耗蓝牙固件会在编译应用代码时遭到破坏。这会大大延长调试过程。
一些供应商已经解决了这一挑战。例如,u-blox NINA-B111 在 nRF52832 SoC 上利用了 Nordic 的分离软件架构。Nordic 的堆栈称为“SoftDevices”,并作为经测试和认证的二进制文件提供,与开发人员的应用代码保持分离。其优势在于,工程师不必担心在开发过程中破坏堆栈。该公司的 DK 和 SDK 在编译期间将应用代码与射频协议栈对接。
对于简单应用,NINA-B111 预先存储有 u-blox 自有的连接软件,可以获得该公司的低功耗串行端口服务 (SPS)。使用公司提供的免费 s-center 软件,可以通过器件的 UART 接口(列表 1)使用 AT 命令配置模块。
设置中心(器件 A)
启用中心功能: AT+UBTLE=1
默认与串行端口服务配对并保持连接(使用器件 B的地址): AT+UDDRP=0,sps://112233445566,2
在数据模式中启动 NINA-B1: AT+UMSM=1
存储配置: AT&W
重启 NINA-B1: AT+CPWROFF
设置外设(器件 B)(默认启用 SPS)
在数据模式中启动: AT+UMSM=1
存储配置: AT&W
重启: AT+CPWROFF
列表 1。此代码示例展示了可以轻松连接两个 u-blox 模块,其中一个具备中心功能,而另一个具备外设功能。(代码来源:u-blox s-center)
NINA-B111 还支持照明、资产跟踪和计量等复杂应用。有三种设计工具可以支持更具挑战性的应用软件开发。第一个是 Nordic 的 nRF5 SDK,其中包括各种驱动程序、库和示例应用。第二个是在开源 ARM mbed 操作系统 (OS) 中开发应用代码的能力。mbed 操作系统包括设计连接产品所需的全部功能,包括安全性、连接性、RTOS 以及传感器和 I/O 设备的驱动程序。第三个是供应商提供的许可软件包,如 Wirepas。如果模块设计用于大型网状网络应用,则可以使用软件堆栈来配置(图 5)。
图 5: NINA-B111 软件架构利用 Nordic 的分离射频协议栈和应用代码(左)。这种分离方式可防止在应用开发和编译期间损坏堆栈。Nordic SoftDevice(堆栈)和 u-blox 连接软件已预先存储到模块中。Nordic、ARM 和 Wirepas 网状网络开发工具可用于构建更复杂的应用。(图片来源:u-blox)
利用蓝牙 5 标准
本文第 1 部分介绍了蓝牙 5 标准具备的范围、吞吐量和其他增强功能。一些支持新版标准的商业芯片现已上市。Texas Instruments 的 CC2640R2F SimpleLink 低功耗蓝牙 SoC 是其中之一,并受各种开发工具的支持。
值得一提的是,CC2640R2F 是 TI 的 SimpleLink 微控制器平台的一部分,因此可以与其他 SimpleLink MCU 控制的无线(和非无线)芯片共享开发环境。这样的布局支持再利用无线应用代码,尽管需要针对低功耗蓝牙应用进行适当修改。
TI 的 CC2640R2 的主要设计工具是 LaunchPad DK。它比其前代产品拥有更大的闪存来运行应用代码,并支持在 Code Composer Studio 和 IAR Embedded Workbench IDE 上编程和调试。
要开始开发工作,首先下载低功耗蓝牙堆栈,然后通过练习低功耗蓝牙外围应用来熟悉 DK。应用具有示例代码,演示了如何通过 TI SimpleLink SensorTag 套件 iOS 应用程序或支持低功耗蓝牙连接的任何兼容器件来控制 LaunchPad DK 的 LED。项目还展示了堆栈的灵活性,并使用 DK 的板载 USB 串行端口显示低功耗蓝牙连接的诊断信息。
Nordic Semiconductor 是另一家宣布推出兼容蓝牙 5 的 BLE SoC 的供应商。nRF52840(目前只有样品)基于 ARM® Cortex®-M4F 处理器和重新设计的低功耗蓝牙无线电。相对于上述 nRF52832,闪存和 RAM 分别增加到 1 Mb 和 256 Kb。nRF52840 计划于 2017 年中期全面投产,此外现已发售预览开发套件 (PDK),供希望探索芯片功能及开始编写应用代码的开发人员使用(图 6)。
图 6: Nordic Semiconductor 的 nRF52840 PDK(配有 nRF SDK)支持开发人员重新配置低功耗蓝牙参数来探索蓝牙 5 的范围和吞吐量增强功能。(图片来源:Nordic Semiconductor)
PDK 包括硬件、固件源代码、说明文档、硬件原理图和布局文件。DK 基于 nRF52840 SoC,并启用了 ARM mbed。包括用于用户交互的按钮和 LED、USB、闪存和拖放式大容量存储器件编程。Nordic 还提供 DK 附带的示例源代码和用于应用开发的代码库。
通过使用运行 ATT_MTU 吞吐量示例的两个 nRF52840 PDK 和 Nordic 的 nRF SDK (13.0.0-1.alpha),开发人员可以配置各种低功耗蓝牙参数,如最大传输单位 (MTU)、连接间隔、数据长度扩展和 PHY 数据速率来测试其对吞吐量和范围的影响。这样,他们可以熟悉蓝牙 5 的关键增强功能。
总结
本文的第 1 部分介绍了蓝牙 4.1、4.2 和 5 标准对蓝牙内核规范的增强,帮助该技术成为各种物联网 (IoT) 应用的实用之选。这些增强包含在芯片供应商随低功耗蓝牙 SoC 提供的经过测试和认证的堆栈中。蓝牙 5 还需要一些硬件调整,包括 2 Mbit/s PHY,因此并不是所有的当前芯片都能支持此版本。
文章的第 2 部分介绍了设计和运行简单应用程序的基本步骤,同时讨论了此期间需要权衡考虑的要素。
高度集成的低功耗蓝牙 SoC 不需要外部微处理器,简化了硬件设计,但需要一些外围电路来确保良好的范围和吞吐量性能。或者,很多第三方公司提供了围绕最新 SoC 构建的经测试和认证的模块,无需设计外部电路,但需要权衡更高成本和封装尺寸。
工厂提供的堆栈负责无线协议要求,还有许多官方和开源库,提供经过验证的应用代码,用于最常见的低功耗蓝牙应用。此外,供应商和第三方 DK 和 SDK 的普及,结合应用广泛的用户友好 IDE,使得有能力的工程师的新应用开发工作变得更加简单。