应用笔记
直播中

Duke

10年用户 1839经验值
擅长:嵌入式技术
私信 关注
[设计讨论]

Amazon FreeRTOS简化物联网设备连接到云

本帖最后由 liuyongwangzi 于 2018-6-15 09:43 编辑

      本文将探讨开发人员如何利用内置于 Amazon FreeRTOS (a:FreeRTOS) 中的引导程序功能(常被称为空中升级 (OTA)),来快速实现在其物联网设备上运行引导程序解决方案。Amazon FreeRTOS 的 OTA 升级概述Amazon FreeRTOS 是一种实时操作系统,其中包含了轻松连接 Amazon Web Services (AWS) 所需的全部库。Amazon FreeRTOS 本质上是 FreeRTOS 内核,现已包含连接和安全库,以方便与 AWS 进行安全通信。OTA 特性包含在单独的 OTA 库中,必须单独配置才能包含在 a:FreeRTOS 下载中。a:FreeRTOS OTA 升级服务包含必要的软件以便开发人员可以执行如下操作:
  • 部署前对固件进行数字签名和加密
  • 将新固件映像安全地部署到单一设备、设备组或整个设备集群
  • 当设备加入组中、重新启动或重新配置时,将固件部署到设备中
  • 将新固件部署到设备后验证其真实性和完整性
  • 监视部署进度
  • 调试失败的部署
这些特性通过运行各种 AWS 服务来提供,例如:
  • OTA 管理器服务
  • AWS IoT 作业服务
  • 串流服务
  • Amazon FreeRTOS 代码签名服务
  • OTA 库和代理
对开发人员而言,让所有这些部分协同工作所需的步骤是相当多的,无法在一篇文章中详细说明。本文将重点介绍如何入门,以及关于在实验室中成功设置 a:FreeRTOS 的一些经验教训和诀窍。选择 OTA 测试硬件a:FreeRTOS 目前支持多种开发板。它支持的开发套件包括:
  • Texas Instruments 的 SimpleLink Wi-Fi CC3220SF Wireless LaunchPad 开发套件
  • Microchip Technology PIC32MZEF Curiosity 开发套件
  • STMicroelectronics STM32L4 Discovery 套件 IoT 节点
  • NXP Semiconductors 的 LPC54018 IoT 模块
  • Espressif Systems ESP32-DEVKITC 开发套件

图 1:Texas Instruments 的 CC3220SF-LaunchXL 是一个可以启动 Amazon FreeRTOS OTA 的全集成解决方案。该微控制器集成一个 Wi-Fi 模块,最大限度地减小了物理尺寸并降低能耗。(图片来源:Texas Instruments)


出于多方面原因,本文将重点介绍 SimpleLink Wi-Fi CC3220SF。首先,CC3220SF 是目前唯一集成了 Wi-Fi 模块的 a:FreeRTOS 微控制器。虽然其他开发板具有板载 Wi-Fi 模块,但 CC3220SF 通过将控制器和 Wi-Fi 功能集成在单一芯片中,节省了电路板空间和能耗。
其次,CC3220SF 的外部存储设备可以存储固件映像并在引导过程中恢复映像,因此其安全特性很有意义且更为复杂。如果读者能够在 CC3220SF 上成功设置 OTA,那么在其他平台上将不会有任何问题。最后,CC3220SF 是 OTA 演示应用支持的第一款处理器,因此设计人员可以放心,处理器在 CC3220SF 上已经过全面审查。

图 2:J-Link Ultra+ 是一款全功能专业调试器,其特性包括无限制断点,以及极快的 SWO 和接口时钟速率。开发人员可以利用 J-Link Ultra+ 执行应用跟踪,以便了解 OTA 示例如何工作。(图片来源:Segger Microcontroller Systems



除了选择开发板之外,开发人员可能还需放弃板载编程器,而使用专业编程器,例如 Segger Microcontroller Systems 的 J-Link Ultra+。专业编程器会降低程序速度并提供额外的调试功能,例如应用跟踪和 RTOS 感知调试,这对理解黑盒应用非常重要。开发人员也可利用 Tag-ConnectTC2015 10 引脚钉式插头,轻松将编程器连接到目标板。调试器上可能需要 TC2050-ARM2010 20 引脚适配器来转接 TC2050,以便连接板侧电缆。
图 3:Tag-Connect 的 TC2050-IDC 10 引脚钉式插头(左)是一种适配器电缆,可将开发板或生产电路板上的连接器基底面减到最小。与 SEGGER J-LINK 一起使用时,可能需要 TC2050-ARM2010 20 引脚适配器来转接 TC2050。(图片来源:Tag-Connect LLC)配置 Amazon FreeRTOS 以实现 OTA 升级默认情况下,OTA 库未包含在预配置的 a:FreeRTOS 包中。开发人员必须手动配置这些库和应用。首先,应登录 AWS IoT 控制台并进入 Amazon FreeRTOS 菜单。然后,开发人员可以点击“Create new(新建)”按钮开始创建自定义配置(图 4)。

图 4:在 AWS IoT 控制台中,通过单击软件配置菜单中的“Create new(新建)”按钮可以自定义 a:FreeRTOS 设备软件。(图片来源:Beningo Embedded Group)


在配置过程中,开发人员只需要设置几项就能配置 OTA 特性。其中包括:
  • 选择硬件
  • 选择所包含的 a:FreeRTOS 库
  • 设置配置名称
对于本例,开发人员选择 CC3220SF-LAUNCHXL(图 5)。以这种方式选择硬件平台将会引入所有特定于电路板的文件,包括驱动程序。但是,选择电路板并不会自动引入 OTA 特性。在库部分,开发人员需要添加 OTA 库(如图 6 所示)。这将包含所有 OTA 库,包括开发人员可以参考或采纳的演示示例。


图 5:选择将要配合 a:FreeRTOS OTA 特性使用的硬件配置。(图片来源:Beningo Embedded
Group)


图 6:将 OTA 升级库添加到 a:FreeRTOS 配置中。(图片来源:Beningo Embedded Group)


完成此操作后,开发人员便可创建配置并下载,然后将 aws_demo 项目导入代码调试器。
设置 OTA 示例代码一旦导入 aws_demos OTA 示例,便需要执行若干任务。首先,配置终端、证书和安全密钥。这可以按照 a:FreeRTOS 入门指南中的步骤完成。遵循该指南并按原样运行 aws_demos 项目,以便确认已连接到 AWS,然后再执行其他操作。接下来,修改 OTA 演示非常简单。打开 aws_demo_runner.c 模块,找到位于模块末尾的 DEMO_RUNNER_RunDemos 函数。应对 vStartMQTTEchoDemo 调用添加注释,而 vStartOTAUpdateDemoTask 调用则取消注释。然后进行快速编译以构建项目,在引导程序功能启用的情况下,项目便可执行。



图 7:将 OTA 演示任务添加到 aws_demos 应用中。(图片来源:a:FreeRTOS 示例代码)


配置 Amazon Web Services 以实现 OTA
对嵌入式软件开发人员而言,要运行 OTA 示例,进行到这一步骤时将涉及到云端。为了成功运行 OTA 示例,开发人员需要根据 OTA 先决条件指南配置 AWS。这要求开发人员:
  • 创建 Amazon S3 存储桶
  • 授予 AWS 帐户 OTA 升级权限
  • 创建 OTA 服务角色
  • 创建 OTA 用户策略
  • 授予访问代码签名服务的权限

完成这些操作后,依照最终的用户指南说明运行 OTA a:FreeRTOS 示例。Amazon FreeRTOS 的 OTA 特性使用技巧与诀窍使用 a:FreeRTOS 中包含的引导程序功能时,为尽量减少潜在问题,开发人员可以采用以下几点技巧和诀窍。其中包括:
  • 阅读“使用 Amazon FreeRTOS 连接到云”以获取关于如何使用 FreeRTOS 的一般技巧和信息。
  • 通读 Amazon OTA 说明文档(详见此处)。
  • 在开发过程中,购买六片开发板并将它们分成三组,每组两片。这样便可试验现场升级设备和组可采用的不同方法。
  • 首先将固件升级部署到较小的设备组,以确保固件升级没有问题,然后才升级整个设备集群。
  • 利用 AWS Amazon Certificate Manager 创建证书并给固件签名。可以使用第三方认证机构,但如果全部在 AWS 内完成,该过程会比较简单。
  • 考虑将 PIC32MZEF Curiosity 板用于 OTA 实验,因为它是第二款支持 OTA 测试版演示的 a:FreeRTOS 开发套件。
总结Amazon FreeRTOS 生态系统为开发人员提供了一个现场升级固件的范例。对于可能有不同需求或系统配置的开发人员,此范例可以轻松扩展。利用现有引导程序可为开发人员节省大量开发时间,以便其专注于产品差异化和价值主张。如本文所述,Amazon FreeRTOS 的确可提供空中升级解决方案,该方案目前用于 Texas Instruments CC3220,而未来无疑将可用于其他 Amazon FreeRTOS 产品。   


回帖(1)

王洁民

2018-6-18 08:57:33
谢谢楼主的分享
举报

更多回帖

发帖
×
20
完善资料,
赚取积分