如何使用智能蓝牙 4.0 构建低功耗无线系统

低功耗、便携式无线设备市场正在经历爆发式发展,其中低功耗蓝牙 4.0 规范在开发此类系统时起着关键作用。 本文将探讨如何使用 Laird Wireless、connectBlue 和 Bluegiga 等制造商提供的支持蓝牙 4.0 规范的模块,在象 CSR 提供的开发环境中开发可穿戴和低功耗医疗设备。

随着对可穿戴计算关注的不断增加,低功耗蓝牙 4.0 低功耗连接正使得从便携式健身系统到智能篮球之类广泛的设备成为现实。

每天都有象手表、手镯、手套、甚至是牙刷之类物品在使用蓝牙无线技术更新升级,使它们能够获取数据并送回智能手机或平板电脑上的应用。 2013 年售出的运动和健身追踪器 96% 由可穿戴设备组成,ABI Research 预计 2014 年会有 3 千 2 百万这种采用智能蓝牙技术的设备售出。

从一块小小的可充电电池供电是可穿戴设备和运动市场的关键。利用一块电池运行嵌入式链路多年的能力,正促使智能蓝牙不断被采用。这需要对设计,无论是硬件还是软件,做一些关健的考量。

智能蓝牙的核心就是其能够与现有智能手机或平板电脑的应用一起工作。 尽管低功耗蓝牙使用与以前传统蓝牙相同的 2.4 GHz ISM 频带,但它采用了更简单的高斯频移协议来降低功耗。 此外,它还采用了较小的 2 MHz 信道和直接序列扩频 (DSSS) 调制功能。

这种组合意味着无法直接兼容低功耗和传统规范。 然而,这对开发人员来说不是问题,因为获得蓝牙兼容性认证的所有芯片和模块都能在适用于旧设备的传统蓝牙模式或具有 DSSS 功能的智能蓝牙模式下工作。 起初,“智能蓝牙就绪”指的是双模设备,一般是一台笔记本电脑或是智能手机,硬件同时兼容传统和低功耗蓝牙外设,而“智能蓝牙”标签则只指低功耗蓝牙设备。

智能蓝牙通过采用四十个 2 MHz 信道而获得低功耗优势,达到 1 Mbit/s 链路比特率和 270 kbit/s 应用吞吐率。 尽管这些指标低于传统蓝牙,但是将延迟从 100 ms 缩短至 6 ms,弥补了应用比特率方面的不足。 最大传输功耗也降至 10 mW,覆盖距离缩短至 50 m 以内,这对于短程可穿戴和家庭应用来说绰绰有余。 同样,这使得 BLE4.0(低功耗蓝牙)系统更易实现,因为几乎不需要担心总链路预算。

这种复杂性中的多数可以通过象 Laird Wireless 这样的模块制造商来隐藏。 Laird Wireless BL600 模块将 Nordic Semiconductor 的收发器与天线和接口集合在一起,全部器件封装在一个紧凑的 19 mm x 12.5 mm 外壳中。 该模块包含了支持 BLE 应用开发所需的全部硬件和固件,包括用于连接外设和传感器的 UART、SPI、I²C、ADC 和 GPIO 接口。 经过这些接口连接单线、双线或者多线链路会相对简单。

Laird Wireless 的 BL600 智能蓝牙模块

图 1:利用 Laird Wireless 的 BL600 智能蓝牙模块能很容易在现有设计中添加连接。

从这些连接获取数据由一系列规范来完成,具体规范包括血压、心率、体温计、接近和 Find Me(找到我)。 这些规范称作通用属性规范 (GATT),在操作系统中提供了一个客户服务器应用编程接口 (API),以及服务和描述符。

服务就是相关特征的集合,一起工作,执行特定功能。 体温计服务包括温度值测量特征和测量时间间隔特征。 描述符提供有关特征的详细信息,如其单位指示(如摄氏度),以及传感器可以测量的最大和最小值。

服务、特性和描述符的属性由通用识别符 (UUID) 集中识别。 蓝牙 SIG 为标准属性预留了一个 UUID 范围(其格式为 xxxxxxxx-0000-1000-8000-00805F9B34FB),这些通用识别符在协议中采用 16 位或 32 位短格式值表示,而非 128 位,以保持较小代码长度并减少复杂性。

GATT 操作

GATT 协议为客户端提供了大量命令,用于发现与服务器有关的信息。 具体包括,发现所有主要服务的 UUID,用已知 UUID 查找服务,然后发现辅助服务,以及为已知服务查找全部特征。

指令用来将有关特征数据从服务器传输至客户端(“读取”),以及从客户端传输至服务器(“写入”)。 读取某个值时,既可通过指定该特征的 UUID 来读取,也可以由来自信息发现指令的句柄值来读取。 写操作始终会通过句柄识别特征,但都可以选择是否需要服务器做出响应。

GATT 也提供通知和指示。 客户端可为来自服务器的特定特征请求一个通知,然后,只要相关的值进入有效状态,服务器就会将其发送至客户端。 例如,温度传感器服务器会在每次测量时通知其客户端。 这样可避免客户端对服务器进行轮询,从而省去了常规无线链路。 除需要客户端做出响应以确认客户端收到该信息外,指示和通知类似。

Laird 增加了一种可使模块独立运行的事件驱动型编程语言,因此能通过任何接口直接连接传感器,而不必依赖外部处理器。 一个简单的 smartBASIC 应用包含了完整的传感器数据读取、写入和处理的端到端过程,并随后利用 BLE 将其传输至任何蓝牙 4.0 设备——智能手机、平板或计算机。

除了拥有 FCC 模块、IC、CE 和 MIC 认可,这些模块可以算是拥有完全蓝牙终端产品资质认可。 这能够让设计人员在其现有设备中集成这些模块,无需作进一步的蓝牙资质认可,大大提升了开发速度。

其它模块制造商如 Bluegiga 和 connectBlue,均使用 Texas Instruments 提供的 BLE 硅器件,实现可支持蓝牙 4.0 的模块。 Bluegiga BLE112 模块可以由标准 3 V 钮扣电池或两节 AAA 电池供电,适合从电子锁匙扣至 iPhone 配件之类的最小设计。 在最低功耗休眠模式下,其电流消耗仅 500 nA,并会在几百毫秒内唤醒,从而延长了电池寿命。 该 connectBlue 模块集成了温度传感器和加速计,用一个钮扣电池即可连续工作达 10 年之久。

ConnectBlue 的 OLP425 模块是一合格的控制器子系统,并支持由客户开发的低功耗蓝牙规范、服务和属性。 该模块基于同时运行应用和低功耗蓝牙协议堆栈的 TI CC2540 片上系统。 这包括对象代码,带有支持多个连接的最新 BLE 协议堆栈、示例项目以及覆盖广泛规范集的应用,并提供源代码。

该 connectBlue OLP425 示例代码包包括用于接入 LED 、温度传感器和加速计的示例项目,带有使用 IAR 针对 8051 芯片内核的 Embedded Workbench 开发的嵌入式软件。

收发器

CC2540 的设计分为三大类:CPU 相关模块、与电源、测试和时钟分配有关的模块和无线电相关模块(图 2)。

Texas Instruments 的  CC2540 智能蓝牙 4.0 收发器图片

图 2:TI 的 CC2540 智能蓝牙 4.0 收发器框图。

CPU 和存储器

从开发者角度看,SoC 的心脏就是兼容单周期 8051 兼容的 CPU 内核。 它拥有三个不同的存储器访问总线(SFR、DATA 和 CODE/XDATA)、一个调试接口和一个 18 输入扩充中断单元。

内存仲裁器是系统的心脏,因为它将 CPU 和 DMA 控制器通过 SFR 总线与物理存储器和所有外设相连。 它拥有四个存储器访问点,每个都可以映射到三个物理存储器之一:SRAM、闪存和 XREG/SFR 寄存器,并负责对相同物理存储器执行同步存储器访问之间的仲裁和定序。

SFR 总线在图 2 中按概念绘制成将所有硬件外设连接到存储器仲裁器的通用总线。 框图中的 SFR 总线也提供到无线电寄存器库中无线电寄存器的访问,即使这些寄存器确实是映射到 XDATA 存储器空间的。 8 KB SRAM 映射到 DATA 存储器空间和部分 XDATA 存储器空间。 这是一个超低功耗 SRAM,即使在数字零件断电后(即电源模式 2 和 3)仍能保持其内容。 128/256 KB 的闪存块为设备提供了在线可编程非易失性程序存储器,并映射到 CODE 和 XDATA 存储器空间。

外设

闪存块的写入通过闪存控制器来执行,允许页面智能擦除和 4 B 智能编程,且系统提供一个通用五通道 DMA 控制器。 它使用 XDATA 存储器空间访问存储器,并因此可以访问所有物理存储器。 每个通道(触发器、优先级、传输模式、寻址模式、来源和目的地指针和传输计数)均配置有 DMA 描述符,可以在存储器任何位置定位。 许多硬件外设(AES 内核、闪存控制器、USART、定时器、ADC 接口等等)都可以与 DMA 控制器一起使用,通过在单一 SFR 或 XREG 地址与闪存/SRAM 之间执行数据传输来实现高效运行。

每个 CC2540 均包含唯一的 48 位 IEEE 地址,可以用作蓝牙设备的公共设备地址。 设计人员可自由使用这个地址,或按照蓝牙规范要求提供其自已的地址。

中断控制器服务于总共十八个中断源,分为六个中断组,每个组关联四个中断优先级中的一个。 通过将 CC2540 带回活动模式,I/O 和睡眠定时器中断请求即使在设备处于睡眠模式(电源模式 1 和 2)时仍有效。

调试接口实现了一个专属的两线接口,用于在线调试。 通过这个调试接口,有可能实现对整个闪存进行擦除或编程,控制启用哪个振荡器,停止和启动用户程序的执行,在 8051 内核上执行指令,设置代码断点,以及单步执行代码中的指令。 使用这些技术,可以悠哉悠哉地执行在线调试和外部闪存编程。

I/O 控制器负责所有通用 I/O 引脚。 CPU 可以将某些引脚配置成由外设模块控制或由软件来控制,而且当焊盘上接有上拉或下拉电阻时,每个引脚还可以配置成输入或输出。 每个连接到 I/O 引脚的外设都可以选择两个不同的 I/O 引脚位置,以确保在各种应用下的灵活性。

睡眠定时器是一种超低功耗定时器,既可以使用一个外部 32.768 kHz 晶体振荡器,也可以使用一个内部 32.753 kHz RC 振荡器。 睡眠定时器在除电源模式 3 之外的所有工作模式下均是连续运行的。 此定时器的典型应用有:作为实时计数器,或作为唤醒定时器,以摆脱电源模式 1 或 2。

内置看门狗定时器允许 CC2540 在固件挂起时将自身重置。 当看门狗定时器由软件启动时,必须定期清除,否则,它会在超时时重置设备。

定时器 1 是一个 16 位的定时器,带有定时器/计数器/PWM 功能。 它带有一个可编程预分频器、一个 16 位期间值和五个独立的可编程计数器/捕获通道,每个都有一个 16 位的比较值。 每个计数器/捕获通道都可以用作 PWM 输出,或用于捕获输入信号上的边沿时间。 它还可以配置为 IR 发生模式,此时对定时器 3 的期间进行计数并将输出与定时器 3 的输出进行“与”操作,以生成经过调制且只需最少 CPU 交互的消费者 IR 信号。

定时器 2 是一个供低功耗蓝牙堆栈使用的 40 位定时器。 它带一个提供可配置定时器期间的 16 位计数器和一个可用来跟踪已发生期间数的 24 位溢出计数器。 也可以使用一个 40 位捕获寄存器来记录收到/发出帧起始分隔符时的精确时间,或者传输结束时的精确时间。 有两个 16 位定时器比较寄存器和两个 24 位溢出比较寄存器,可以用来提供向无线电和一般中断发出 RX 或 TX 开始的精确时间。

定时器 3 和定时器 4 均为 8 位定时器,具有定时器/计数器/PWM 功能。 它们都有一个可编程预分频器、一个 8 位期间值和一个带一个 8 位比较值的可编程计数器通道。 每个计数器通道都可以用作 PWM 输出。

USART 0 和 USART 1 每一个都可以配置成 SPI 主/从设备或 UART。 它们同时在 RX 和 TX 上提供双缓冲以及硬件流量控制,因此非常适合高吞吐量全双工应用。 每个 USART 都其自己的高精度波特率发生器,因此可以将常规定时器留作它用。 当配置为 SPI 从设备时,USART 直接使用 SCK 取代某些过采样方案对输入信号进行采样,因此非常适合高数据速率应用。

为获得更安全的应用,允许用户采用 AES 加密/解密内核使用采用 128 位密钥的 AES 算法进行数据加密和解密。 AES 内核也支持 ECB、CBC、CFB、OFB、CTR 和 CBC-MAC,同时对 CCM 提供硬件支持。

ADC 支持 7 至 12 位分辨率,分别对应带宽范围为 30 kHz 至 4 kHz。 可以进行高达 8 输入通道(I/O 控制器引脚)的 DC 和音频转换。 输入可以选择为单端或差分形式。 基准电压可以是内部、AVDD 或单端或差分外部信号。 ADC 也有湿度传感器输入通道。 ADC 可以按照通道顺序使定期采样或转换自动进行。

运算放大器用来为 ADC 提供前端缓冲和增益。 两个输入以及输出均在引脚上提供,因此可以完全定制反馈网络。 对于需要出色的高增益精度的应用,提供了斩波稳定模式。

超低功耗模块比较器能够让应用根据模拟信号从 PM2 或 PM3 唤醒。 两个输入均提供到引脚;基准电压必须外部提供。 比较器输出连接到 I/O 控制器的中断检测器,并可以由 MCU 作为常规 I/O 引脚中断来处理。

另个一个蓝牙收发器和 SoC 芯片制造商 CSR 还提供一整套软件开发工具,以支持使用其 uEnergy 芯片的板设计和生产测试。 该芯片固定在一个基准模块之上,带有一个 USB 编程接口和用于断开到应用特定传感器和致动器的输出 I/O 的接口。 这种全许可型 CSR xIDE 软件开发环境包括了各种应用以简化项目,具体如针对常见智能蓝牙规范的示例应用以及针对 iOS 和 Android 智能手机的主机应用。 目标板通常由主机 USB 连接供电,但也能从板载钮扣电池独立运行,以便进行功率测量。

CSR 智能蓝牙开发系统图片

图 3:CSR 智能蓝牙开发系统。

将模块集成到设计中相对容易,不过在使用电池向这些设备供电时需要做出几项关键选择。

来自 Bluegiga 的 BLE112 可以直接与钮扣电池一起使用。 由于钮扣电池具有相对较高的内阻,因此建议在该电池上并联一个 100 μF 电容器。 钮扣电池的内阻初始值在 10 欧姆以内,但会随着容量的使用而急剧增大。

电容值越高,电池的有效容量就越高,且应用的使用寿命越长。 电容器的最小值取决于终端应用和所用的最高传输功率。 一个 100 μF 电容器的漏泄电流为 0.5 μA 至 3 μA,一般情况下,陶瓷电容器的漏泄电流低于钽电容器或者铝电解电容器。

BlueGiga 的 BLE112 智能蓝牙模块

图 4:BlueGiga 的 BLE112 智能蓝牙模块。 在电池上并联电容器会延长电池寿命。

另一个选择是使用 DC/DC 转换器来减少 TX/RX 和数据处理期间的电流消耗。 当使用 3 V 钮扣电池时,有多种具有旁通模式的超低功耗 DC/DC 转换器能将正常传输期间的电流消耗减少约 20%。 推荐使用铁氧体磁珠过滤电源线路中的任何剩余噪声,以确保无线电性能。

结论

全新一代便携式、可穿戴和连网的家庭设备必定要利用到智能蓝牙技术。 有了 4.0 版的低功耗蓝牙技术,现有设计可以轻松升级,能够为广泛的新应用而连接到智能手机和平板电脑。 拥有预先资质、支持高集成度硅器件的模块和开发套件能够帮助开发人员快速、轻松地增加这种能力。

  • 如何使用智能蓝牙 4.0 构建低功耗无线系统已关闭评论
    A+
发布日期:2019年07月13日  所属分类:参考设计