90 分钟内的结果:利用 Blue Gecko 完成 BLE 开发

90 分钟内的结果:利用 Blue Gecko 完成 BLE 开发

90 分钟内的结果:利用 Blue Gecko 完成 BLE 开发

过去几年中,随着智能电表、无线传感器、可穿戴设备、家庭自动化设备、报警系统等各种产品的涌现,物联网 (IoT) 应用的发展呈爆炸性趋势。无线连接是物联网的核心。多个无线标准协同工作,覆盖各种应用。

特别是,也称为蓝牙智能 (Bluetooth Smart) 的蓝牙低功耗 (BLE) 技术是专为健身、医疗保健、安全、家庭娱乐以及基于地理位置的零售营销(信标)领域的应用而设计的。与传统蓝牙技术相比,蓝牙智能技术可降低功耗和成本、缩短连接时间,并且具有较高的可靠性和安全性。

凭借 Blue Gecko — Silicon Lab 的 Wireless Gecko SoC 系列的最新成员,开发人员可以使用全面的工具包、工具和演示软件,在短短 90 分钟内针对一个新的想法进行原型设计,或开发出一个新的 BLE 应用程序。

Silicon Labs Wireless Gecko 系列

凭借 Wireless Gecko 系列 (EFR32),Silicon Labs 可提供高度集成、强大、可靠、易用的无线和射频片上硅 (SoC) 解决方案。Wireless Gecko 设备基于 ARM Cortex-M4 32 位内核和浮点单元,在高达 40MHz 频率下运行,带有高达 256kB 闪存程序存储器和 32kB RAM 数据存储器。外围设备包括模数转换器、比较器、PWM 通道、AES、ECC 和 SHA 加密、I2C 通信等装置,具体因设备而异。

Blue Gecko 针对蓝牙智能而优化;其他的 SoC 包括用于 ZigBee® 和 Thread 协议的 Mighty Gecko,以及用于 2.4 GHz 专有应用的 Flex Gecko。

Blue Gecko 概述

Blue Gecko SoC 系列 (EFR32BG) 为蓝牙智能应用提供可扩展性、能效、安全性和设计简洁性。除了无线 SoC,Blue Gecko 产品组合还包括预认证的无线模块、蓝牙智能软件堆栈和易于使用的 C 语言软件开发工具包 (SDK)。

Blue Gecko 硬件:SoC 或模块?

Blue Gecko 硬件:SoC 或模块?

图 1:Blue Gecko BGM113 模块与 SoC 参考设计之间的比较(来源:Silicon Labs 公司)

在涉及到硬件时,有两个主要选项:

1) 使用包含 SoC 的预先设计无线模块

2) 使用无线系统芯片 (SoC),并将其集成到自定义的印刷电路板 (PCB) 上。

该模块配备了一个完全表征 PCB 设计,其中包括 RF 优化和天线布局、屏蔽、定时元件以及外部物料清单 (BOM)。模块有更高的前期成本,与自定义 SoC 设计方案相比,可能会占用更多的空间。Silicon Labs 的 Blue Gecko 模块包括监管部门的批准和标准认证,这些批准和标准认证为开发周期的后续工作节省了时间和成本。

SoC 比无线模块更小、更便宜,总 BOM 成本也可能更低。但是,前期设计带来的隐形成本需要认真加以考虑。有些基于 SoC 的设计的隐形成本包括:

- 射频工程师和设计:蓝牙设计涉及高度专业的设计技巧。有很多因素会影响性能,包括 PCB 绝缘材料、布线形状,甚至螺钉位置。一名 RF 工程师的年薪可能高达 200,000 美元。

- 实验室设备和设施:一间消声室可能会花费 20,000 美元甚至更多,而且还需要 3 万到 5 万美元购置设备。RF 测试设备每天的运行可能花费数千美元。

- PCB 布局和天线选择:尽管 SoC 制造商通常会提供详细的参考设计和布局指南,但 RF 的开发很少完全根据计划来进行。几次快速的 PCB 流转设计就会大大提升成本。

- 监管审批和认证:蓝牙智能产品必须满足 FCC、EU 或其他部门的监管要求。它还需要 Bluetooth SIG 的认证。使用预认证模块可使得最终产品跳过很多测试步骤。

- 减少因 TTM 延迟导致的收入降低:在当今市场环境中,开发周期不断缩短,即使是很短的延迟也会导致收入损失。

- 供应管理和保证:对于小批量生产运行,模块可以减轻供应风险。采购单个模块要比采购所有元器件以组装 SoC 并放到电路板上简单得多。

尽管每个设计都有所不同,但有些大批量手机制造商也选择了模块式解决方案。下面提供了 SoC 与模块式设计选择这两种方案的详细对比分析。

蓝牙智能无线入门套件

无论您决定采用哪条技术路线,蓝牙智能无线入门套件 (WSTK) 均提供了一种快速、方便的方式来评估 Blue Gecko 硬件和启动软件开发。它由主板、插件无线板和可选扩展板组成。

主板提供以太网和 USB 连接、Si7021 温度和湿度传感器、128 x 128 像素显示器、纽扣电池座,以及其他外围设备。

蓝牙智能无线入门套件

图 2:配有 BGM111 Blue Gecko 无线模块和扩展板的无线入门套件 (WSTK)。(来源:Silicon Labs)

对于 Blue Gecko 开发,可选择无线射频板。对于模块,提供两种具有不同规格的版本:BG111 和 BG113;对于 SoC 工作,还提供了 EFR32BG 无线射频板。扩展板提供了额外的功能,如加速度计、操纵杆、LED 和两个按钮。

Blue Gecko 软件开发选项

对于采用 Blue Gecko SoC 或模块的蓝牙智能代码开发,您可以从两种灵活的开发环境中选择一种,以随同 WSTK 使用。

对于带有标准功能的简单应用,或者希望以尽可能小的工作量对一个想法进行原型设计,可考虑使用 BGScript。这个 BASIC 风格的脚本语言提供了快速简便的软件开发环境。BGScript 创建了在 BGM111 或 BGM113 上运行的蓝牙智能应用程序。

对于更为复杂的要求,或者您正在设计自定义硬件,您可以利用嵌入式 C 语言,使用带有基于 Eclipse 的 IDE 和整套优化工具的 Simplicity Studio,从底层开始开发应用程序。编译后的代码在 Blue Gecko 蓝牙智能 SoC 上以本地方式运行。

为快速评估 Blue Gecko 代码,可在采用蓝牙 4.0 或更高版本的智能手机或平板电脑上运行 Blue Gecko App。它包括四个示例应用程序:健康温度计、零售信标、秘钥卡检测以及一个 BLE 堆栈和配置文件检测。

利用 BGScript 进行软件开发

BGScript 可访问立即启动编码所必需的一切功能,而无需担心蓝牙协议、嵌入式硬件、调度、内存管理等方面的复杂性。可使用应用程序来自动执行常见的蓝牙智能功能,如打开一个连接、侦听 GPIO 中断,甚至包括通过 UART、SPI、I2C 或 GPIO 接口来读写数据。

利用 BGScript 进行软件开发

图 3:BGScript 编程模型来源 (Silicon Labs)

BGScript 应用程序还可以使用提供的 BGScript 算数、位、缓冲和数据比较操作来执行简单的数据处理任务。

BGScript 构建在蓝牙智能软件栈的 BGAPI 层之上,直接在 BGM111 或 BGM113 无线模块上执行。

它是一种事件驱动型编程语言;像系统启动、蓝牙连接或 I/O 中断这类事件都会触发与该事件关联的应用程序代码。在运行期间由 BGScript 解释器解释的脚本代码被作为固件的一部分包含。

完整的应用程序的执行无需外部主机控制器,这降低了 BOM 成本并最大限度减少了电路板尺寸。

90 分钟软件开发

90 分钟软件开发

图 4:BGScript 代码示例,其中展示了启动事件侦听器及其对 BGAPI 的调用(来源:Silicon Labs)

由于 BGScript 应用程序主要由对 BGAPI 的调用组成,因此可以很快组装一个应用程序。图 4 展示了一个代码示例:健康温度计的启动事件侦听器,这是在 Blue Gecko SDK 中包含的 4 个示例应用程序之一。启动事件应用程序代码由对 BGAPI 的几个调用组成:

-- 将 GPIO 引脚设置为高电平,以启用评估板上的 LED 的控制

-- 将播发参数设置为 100 毫秒间隔

-- 开始广播可连接的播发数据包,以允许远程 BLE 设备扫描和连接

-- 设置一个 1 秒重复定时器,以设定温度读数。

下面提供了关于此应用程序的更为详细的讨论。关于 Blue Gecko BGScript 开发,有两个文件很有用:BGScript 开发指南,它讲述了语言功能、语法和内置运算符;以及用于 BGM111 或 BGM113 的API 参考指南,它详细阐述了堆栈中的每个可用的 API 方法。

BGScript 的优势和局限性

作为一种解释型语言,BGScript 既有优势,也存在不足。

它的一些优势包括:

- 创建在模块上直接运行的独立应用程序

- 使用简单的语法,并且只需要很少的编程经验

- 使用标准编程语言功能和操作

- 包括可简化复杂任务的函数,并且可访问常用 BGAPI 功能

- 无需定制的 C 语言编程或编译器许可

一些限制如下所示:

- 由于是解释型语言,在运行时需要额外的开销,与外部 API 控制相比, BGScript 的性能受到了限制。BGScript 每秒可运行数千个指令。尽管 BGScript 既可在模块上,也可在 SoC 上运行,但它的 SDK 不允许对底层硬件外设进行全面访问。

采用 Simplicity Studio 和蓝牙智能 C-SDK 进行基于 C 语言的软件开发

采用 Simplicity Studio 和蓝牙智能 C-SDK 进行基于 C 语言的软件开发

图 5:Simplicity Studio 是一个构建于 Eclipse IDE 之上的强大软件开发框架(来源:Silicon Labs)

BGScript 处理很多标准操作,并为蓝牙智能栈提供了一个抽象层,但它最适合相对简单的应用程序,因为 BGScript API 不提供对底层硬件的无限制访问。

如果您有一个带有快速定时器或中断的复杂应用程序,或者您的应用程序必须通过 UART 与外部设备(如微控制器)进行通信,那么您需要 Simplicity Studio 这个构建在基于 Eclipse 的 IDE 之上的完整开发环境。IDE 支持 IAR 的嵌入式工作台 ARM 编译器,从而为开发人员提供了灵活性。它还提供与各种优化工具之间的无缝集成,如:

- AppBuilder,一款交互式工具,可配置 Silicon Labs 提供的代码模块,以实现应用程序

- Profiler,它通过测量功耗来支持代码的实时功率分析

- Network Analyzer,它捕捉无线网络活动的踪迹

- Hardware Configurator,它自动为硬件外设和端口 I/O 生成代码

- Bluetooth Smart C-SDK 使得您可以在一个微控制器上利用 C 语言来开发片上系统 (SoC) 软件。

采用 Simplicity Studio 进行蓝牙智能开发

图 6:采用 Simplicity Studio 进行蓝牙智能开发(来源:Silicon Labs)

图 6 展示了采用 Simplicity Studio 进行的蓝牙智能开发的模型。与 BGScript 版本相比,应用程序直接与 BGAPI 交互。

对于 Blue Gecko 开发,必需的 Simplicity Studio 组件包括:

- 带有 EFR32BG Support Package 的 Simplicity Studio Framework

- 蓝牙智能 C-SDK

- IAR Embedded Workbench (IAR system) for ARM 7.3 或更高版本,用作 Simplicity Studio 环境中的编译器。

Simplicity Studio 的优势和局限性

Simplicity Studio 是一个全功能开发系统。与任何类似开发系统相似之处是,需要时间来熟悉很多蓝牙智能开发工具。

Adeneo 的优势包括:

- 编译后的 C 代码的运行速度比解释型 BGScript 解决方案快

- 蓝牙智能 C-SDK 可访问更底层的硬件外设,为开发客户应用程序提供了更大的灵活性

- Hardware Configurator 提供对 SoC 外设的访问,并允许对 OEM PCB 上的 SoC 外设进行自定义配置

- Energy Profiler 通过在本地测量功耗支持代码的实时功耗优化(无需任何额外的测量设备或硬件探测)

一些劣势包括:

- 开发时间更长

- 需要深入了解 C 语言

- 需要购买 IAR Embedded Workbench (IAR systems) for ARM 7.3 或更高版本的许可证

结论

Blue Gecko 提供了完美的功能组合,使得 BLE 开发人员可以在最短时间里将产品推向市场,无论他们使用预认证模块还是从头开发一个基于 SoC 的自定义解决方案。

Blue Gecko 建立于业界标准的 ARM Cortex-M4 内核之上,可为上述两种场景提供最佳解决方案。为了对新想法或标准应用程序进行快速测试,基于 BGScript 的开发环境几乎可以立即构建并运行应用程序。对于从头起步的开发工作,Simplicity Studio 通过广泛的优化工具和预先写好的代码模块,允许开发人员定制其设计的各个方面。

无论使用哪个软件平台,在 Blue Gecko SoC 与模块解决方案之间都有充分的软件兼容性,这使得开发人员可以在需求变化时从模块迅速迁移到 SoC。