0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >基础知识 > 使用开发工具包和现成的附加板快速原型化蓝牙物联网应用程序

使用开发工具包和现成的附加板快速原型化蓝牙物联网应用程序

来源:
2021-08-04
类别:基础知识
eye 36
文章创建人 拍明

原标题:使用开发工具包和现成的附加板快速原型化蓝牙物联网应用程序

  对智能连接产品的需求为能够快速将概念转化为工作物联网(IoT)应用程序的开发人员提供了广泛的机会。能效处理器、无线连接选项和广泛的硬件外围设备的可用性为实现合适的低功耗、生产就绪设计提供了坚实的基础。

  然而,在产品定义的早期阶段,开发人员需要一个灵活的开发平台,用于基于同一类处理器、连接子系统和外围设备构建快速原型。快速构建工作原型和轻松添加功能的能力对于提供早期概念验证和支持定制软件开发至关重要。

  本文展示了开发人员如何使用硅实验室的硬件和软件,使用大量现成的插件板快速构建专门的节能连接物联网设备原型。

  实现快速原型

  在探索电池供电无线物联网设备的新可能性时,开发人员可能会发现自己被创建工作开发平台所涉及的许多细节所困扰。通过集成子系统,先进的片上系统(SoC)设备可以提供这样一个平台的核心,但开发人员仍然需要围绕它们构建一个完整的系统。

  为了为这些设备构建合适的开发平台,开发人员不仅需要满足强健性能和延长电池寿命的基本要求,还需要内置灵活性以支持每个应用程序的特定要求。Silicon Labs BGM220-EK4314A Explorer工具包满足了这一需求组合,允许开发人员专注于快速原型化新的设计概念,而不是处理构建自己的开发平台所涉及的细节。

  灵活快速开发平台

  BGM220-EK4314A浏览器套件为基于蓝牙的应用程序开发提供了一个低成本平台,它结合了SiLabs的BGM220P无线壁虎模块(BGM220PC22HNA)、车载SEGGER J-Link调试器、按钮、发光二极管(LED)和多个扩展选项(图1)。

  image.png

  图1:SiLabs BGM220-EK4314A Explorer工具包提供了快速构建原型和评估不同外围硬件配置所需的处理性能、能量管理和配置灵活性的组合(图片来源:硅实验室)

  BGM220P模块可作为小型电池供电物联网设备的完整解决方案。其集成的EFR32BG22 Blue Gecko SoC具有超低功耗、蓝牙到达角(AoA)和离开角(AoD)功能以及低于一米的定位精度,所有这些都是越来越多的流行蓝牙应用程序所需的,包括资产跟踪标签、智能门锁、健身等。

  BGM220P模块能够作为独立系统运行,它将EFR32BG22 SoC与512千字节的闪存、32千字节的随机存取存储器(RAM)、高频(HF)和低频(LF)晶体(XTAL)以及2.4千兆赫(GHz)匹配网络和陶瓷天线相结合,用于无线连接(图2)。

  1.png

  图2:SiLabs BGM220P模块能够作为独立系统使用,它将EFR32BG22 Blue Gecko SoC与实现支持蓝牙的设备所需的其他组件结合在一起(图片来源:硅实验室)

  除了能够作为小型物联网设计的独立主机外,该模块还可以作为通过模块UART接口连接的主机处理器的网络协处理器(NCP)。其集成的蓝牙堆栈为独立设计的模块上运行的应用程序执行无线服务,或处理在NCP设计中运行时从主机接收的命令。

  节能无线SoC

  BGM220P模块的EFR32BG22蓝牙无线SoC集成了32位Arm Cortex-M33内核、2.4 GHz无线电、安全、能量管理子系统以及多个定时器和接口选项。EFR32BG22 SoC专为超低功耗、电池供电设计而设计,它使用多种能源管理功能,可使币形电池运行长达十年。

  SoC从单个外部电压源运行,使用其内部能量管理单元生成内部电源电压。在运行期间,能量管理单元控制SoC的五种能量模式(EMs)之间的转换。当SoC从活动模式(EM0)过渡到睡眠模式(EM1)、深度睡眠模式(EM2)、停止模式(EM3)或关闭模式(EM4)(图3)时,每种模式通过逐渐减少活动功能块来进一步降低功耗。

  image.png

  图3:EFR32BG22 SoC的能量管理单元控制能量模式EM0、EM1、EM2、EM3和EM4(图像底部的颜色代码)之间的转换(图片来源:硅实验室)

  在76.8 MHz和3 V的有源模式(EM0)下,使用其内部DC/DC转换器,SoC每兆赫(μA/MHz)消耗27微安。EM0是正常操作模式,是Cortex M33处理器核心和所有外围模块唯一可用的模式。

  所有外围设备都可以在睡眠模式(EM1)下使用,当系统进入更低的电源模式时,剩余的活动设备更少。在低功耗模式下,活动时钟和功能块的减少导致功耗水平显著降低:

  睡眠模式下的17μA/MHz(EM1)

  1.40μA深度睡眠模式(EM2),32千字节RAM保留,实时时钟(RTC)从LFXO运行

  1.05μA停止模式(EM3),具有8Kbytes RAM保留和RTC,从SoC的集成超低频1千赫(kHz)电阻电容(RC)振荡器(ULFRCO)运行

  0.17μA关断模式(EM4)

  一些电池供电的设备需要的不仅仅是在低功耗操作模式下操作处理器的能力。许多支持蓝牙的应用程序通常会延长很少或没有活动的时间,但在活动恢复时需要低延迟响应。事实上,即使应用程序具有更宽松的延迟要求,缓慢的唤醒时间也会浪费电源,因为处理器在完成唤醒过程并进入活动模式(或完成从高功率模式进入低功率模式的过程)时不会执行任何有用的工作。

  随着活动周期之间的时间缩短,当缓慢唤醒或电源模式进入时间消耗的能量超过处理器在非活动周期内保持较高电源模式时消耗的能量时,使用低功耗睡眠模式甚至可能产生反效果。因此,致力于优化电池寿命的开发人员有时会将处理器维持在比应用程序处理需求更高的功率模式。

  通过使用唤醒和进入时间更快的处理器,开发人员可以更充分地利用处理器的低功耗模式。在EM1中,EFG32BG22在三个时钟/1.24微秒(µs)内唤醒,进入时间为1.29µs,在EM4中分别上升到8.81毫秒(ms)和9.96µs(表1)。

image.png

  表1:EFG32BG22 SoC的唤醒和电源模式进入时间(表来源:硅实验室)

  活动恢复时唤醒处理器的方法也会显著影响电池寿命。尽管一些应用程序(如工业系统)要求系统使用轮询处理来确保严格的周期性计时,但消费领域的许多应用程序使用基于事件的处理来响应特定活动。例如,对基于事件的应用程序使用轮询方法,当处理器不必要地反复唤醒时,会显著缩短电池寿命。

  与许多基于传感器的设计使用中断唤醒功能以避免仅仅为了检查活动而重复唤醒处理器的方式相同,EFG32BG22 SoC的无线电子系统内置的射频唤醒功能支持类似的中断驱动方法。这允许开发人员将处理器保持在低功耗模式,直到发生射频(RF)活动。

  实际上,开发人员将EFG32BG22无线SoC置于超低功率EM2、EM3或EM4模式,并在检测到射频能量时依靠射频唤醒功能唤醒SoC。当简单地检测高于阈值的能量时,RFSENSE能力消耗131毫安(nA)。更具选择性的RFSENSE模式在138毫安时会消耗稍多的电流,但在此模式下,RFSENSE会过滤传入的射频信号,以避免因射频噪声而不是有效的射频信号而醒来。

  在某些情况下,EFG32BG22 SoC可能根本不需要唤醒处理器内核以响应外部事件:Silab的外围反射系统(PRS)使外围设备能够响应事件并在不唤醒处理器内核的情况下运行。外围设备可以直接相互通信,它们的功能可以组合起来提供复杂的功能。通过使用具有较低能耗模式的PRS功能,开发人员可以在不影响传感器数据采集等关键功能的情况下大幅降低功耗。

  内置调试和易于扩展

  BGM220P模块内置于BGM220浏览器工具包板中,将EFR32BG22 SoC的全套能量管理和处理功能引入电池供电的蓝牙设计。当需要快速构建原型以探索新的设计概念时,电路板的其他功能有助于加快开发速度。

  通过板上的USB Micro-B连接器访问,板上SEGGER J-Link调试器支持代码下载和调试,以及用于主机控制台访问的虚拟COM端口。调试器还支持Silab的数据包跟踪接口(PTI)功能,用于分析通过无线网络发送或接收的数据包。

  对于快速原型设计,电路板对多种扩展选项的支持提供了探索新设计思想的灵活性,这些新设计思想需要传感器、执行器、连接选项和其他外围设备的不同组合。借助多种可用的mikroBUS插件板和多家供应商提供的Qwiic Connect系统硬件,开发人员可以为每个应用程序快速配置开发平台。

  mikroBUS板插入板的mikroBUS插座,通过I2C、SPI或UART接口连接到BGM220P模块。Qwiic连接器提供Qwiic系统的I2C接口,用于连接一个或多个Qwiic板,距离可达约四英尺(ft.)。对于更长距离的连接,开发人员可以使用SparkFun QwiicBus端点板(COM-16988),它使用差分信号在距离约100英尺的地方保持I2C信号的完整性。

  快速应用开发

  Silab将快速扩展的概念应用于应用软件开发。除了用于定制开发的板支持包、驱动程序、库和头文件外,该公司还提供了几个捆绑在其Simplication Studio开发环境中的示例应用程序,以及可从Silab的GitHub存储库获得的其他项目。事实上,开发人员可以开始探索传感器应用程序开发,使用EFR32BG22 SoC的内部温度传感器作为数据源的捆绑样本温度应用程序。

  该温度应用程序围绕标准蓝牙健康温度服务构建,通过基于SiLabs软件体系结构构建的通用蓝牙IoT应用程序提供现成的处理流程演示。应用程序为系统服务和应用程序服务调用一系列初始化例程,设置中断处理程序和回调。完成初始化后,应用程序进入一个无止境的循环以等待事件(清单1)。

  int main(void)

  {

  // Initialize Silicon Labs device, system, service(s) and protocol stack(s).

  // Note that if the kernel is present, processing task(s) will be created by

  // this call.

  sl_system_init();

  // Initialize the application. For example, create periodic timer(s) or

  // task(s) if the kernel is present.

  app_init();

  #if defined(SL_CATALOG_KERNEL_PRESENT)

  // Start the kernel. Task(s) created in app_init() will start running.

  sl_system_kernel_start();

  #else // SL_CATALOG_KERNEL_PRESENT

  while (1) {

  // Do not remove this call: Silicon Labs components process action routine

  // must be called from the super loop.

  sl_system_process_action();

  // Application process.

  app_process_action();

  #if defined(SL_CATALOG_POWER_MANAGER_PRESENT)

  // Let the CPU go to sleep if the system allows it.

  sl_power_manager_sleep();

  #endif

  }

  #endif // SL_CATALOG_KERNEL_PRESENT

  }

  清单1:SiLabs的Bluetooth示例应用程序使用一个通用执行框架,其中无休止的循环允许回调和事件处理程序在初始化后处理系统和应用程序操作(代码来源:硅实验室)

  在此应用程序中,当初始化期间设置的计时器倒计时时,关联的回调例程将执行温度测量。在开发人员构建应用程序并闪存电路板后,他们可以使用SiLabs EFR Connect应用程序—一种通用的蓝牙移动应用程序,可与所有Silicon Labs蓝牙套件和设备配合使用。除了提供定制应用程序的框架外,该应用程序还通过提供与蓝牙服务(如本示例应用程序中使用的蓝牙健康温度计服务)相关的受支持特征的视图来帮助开发(图4)。

  image.png

  图4:SiLabs EFR Connect应用程序显示了应用程序中使用的蓝牙服务的特征,不仅加快了原型开发,还为定制应用程序的开发提供了一个框架(图片来源:硅实验室)

  在Simplication Studio中,开发人员可以导入许多不同的蓝牙应用程序示例,演示各种使用场景,包括使用Qwiic或mikroBUS板构建的设计,单独或组合使用。例如,一个示例应用程序演示了标准蓝牙心率(HR)和蓝牙脉搏血氧仪(SpO2)服务与MikroElektronika的MIKROE-4037心率2 Click mikroBUS板的结合使用,其中包含Maxim Integrated的MAX86161生物传感器。MAX86161提供了一个完整的低功耗子系统,能够向通过其I2C接口连接的主机处理器提供准确的HR和SpO2测量(有关使用MAX86161的更多信息,请参阅构建真正的无线健身耳机(第1部分:心率和SpO2测量)。

  与温度应用相比,该应用需要额外的驱动程序和要求更高的处理算法,因此该应用提供了物联网设备软件应用架构的更复杂演示(图5)。

  image.png

  图5:HR/SpO2应用程序等示例项目有助于加快原型开发,同时演示低功耗蓝牙传感器应用程序的典型流程(图片来源:硅实验室)

  与上面提到的温度应用程序一样,该应用程序依赖于一系列初始化例程来设置系统和应用程序服务。如果温度应用程序中的例程app_process_操作为空,则此应用程序会添加对例程hrm_循环app_process_操作的调用。这导致每次通过清单1所示的顶级无止境循环时都会调用hrm_循环。此外,还使用软件计时器定期更新HR和SpO2数据。

  hrm_循环例程依次调用maxm86161_hrm_进程,该进程从助手函数维护的队列中提取样本,并将其交给样本处理例程。这反过来调用一对例程maxm86161_hrm_frame_process和maxm86161_hrm_spo2_frame_process,它们分别执行算法以验证和生成HR和spo2结果。开发者可以使用前面提到的EFR Connect应用程序查看结果以及其他服务特征。

  另一个示例软件应用程序显示了开发人员在扩展其硬件平台时如何在复杂应用程序(如HR/SpO2应用程序)上构建。使用BGM220-EK4314A浏览器工具包板和SiLabs软件生态系统,在现有硬件和软件上构建相对简单。SiLabs通过一个示例应用程序演示了这种方法,该示例应用程序将OLED显示器添加到用于上述HR/SpO2应用程序的硬件/软件平台。在本例中,SparkFun OLED显示屏Qwiic附加板(LCD-14532)连接至该板的Qwiic连接器,而MikroElektronika心率2 Click附加板从上一个HR/SpO2示例应用程序(图6)保持在位。

image.png

  图6:开发人员可以快速向构建在BGM220-EK4314A浏览器工具包板上的现有设计中添加功能,在现有HR/SpO2原型中添加OLED显示器(图片来源:硅实验室)

  除了为OLED板添加驱动程序和支持服务外,对于HR/SpO2应用程序的扩展版本,软件应用程序基本上保持不变。前面提到的HR/SpO2应用程序的软件计时器添加了对函数hrm_update_display的调用,该函数显示HR和SpO2数据(清单2)。

  /* Software Timer event */

  case sl_bt_evt_system_soft_timer_id:

  /* Check which software timer handle is in question */

  if (evt->data.evt_system_soft_timer.handle == HEART_RATE_TIMER) {

  heart_rate_send_new_data(connection_handle);

  break;

  }

  if (evt->data.evt_system_soft_timer.handle == PULSE_OXIMETER_TIMER) {

  pulse_oximeter_send_new_data(connection_handle);

  break;

  }

  if (evt->data.evt_system_soft_timer.handle == DISPLAY_TIMER) {

  hrm_update_display();

  break;

  }

  break;

  清单2:通过使用工具包和软件生态系统,开发人员可以通过连接显示板,对现有应用程序的软件计时器处理程序添加函数调用hrm_update_display之外的软件进行最小的更改,从而将显示功能添加到现有的HR/SpO2应用程序中(代码来源:硅实验室)

  这种可扩展的硬件和软件方法允许开发人员快速构建工作物联网应用程序。由于硬件和软件都可以轻松添加或删除,因此开发人员可以更轻松地探索新的设计解决方案并评估替代配置。

  结论

  电池供电的支持蓝牙的物联网设备是流行应用的核心,为满足更多功能和更长使用寿命的持续需求提供了关键支持。对于开发人员来说,有效地满足这些相互冲突的需求需要快速探索新设计和评估替代设计概念的能力。使用硅实验室的开发工具包和相关软件,开发人员可以快速构建原型,根据需要添加和删除硬件,以满足特定的应用要求。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯