简化嵌入式物联网应用程序的软件开发

描述

为了在物联网市场取得成功,OEM 需要能够以更快的速度拥抱创新。

然而,为物联网边缘构建强大的产品并非易事。随着物联网世界中越来越多的事物连接到互联网,对联网设备的需求不仅可以连接到云,还可以在边缘处理复杂的计算。

OEM 不断寻找新的、更有用的方法来利用传感器的功能、监控数据类型、处理信息、连接到云以及控制设备的生态系统。物联网应用的可能范围是无穷无尽的,从家庭、汽车、可穿戴设备、工业到智能城市。

MCU 和连接设备是这些基于物联网的产品的核心。为了帮助物联网设计师设计独特、高效、安全和美观的设备,芯片制造商正在集成更多功能和外围设备,同时通过机器学习和人工智能等高级功能增强可用处理能力。这些嵌入式计算和无线设备必须无缝协同工作以降低设计复杂性。

通过隐藏或抽象复杂性并为物联网设计人员开发应用程序提供简单、安全和直观的平台的现代软件套件,使这种复杂性最小化的关键部分成为可能。这些专门设计的软件环境处理硬件配置,并允许跨多个设备、各种平台和网络轻松连接,以创建一个通信网络,从而彻底改变我们在这个数字世界中智能交互的方式。

本文将详细探讨这些挑战,并解释直观的软件环境如何与优化的物联网硬件相得益彰,以提供完整强大的安全平台,以更快的速度开发智能物联网解决方案。作为说明,我们将以低功耗物联网设备为例,使用 MQTT 协议安全连接到云端。

设计嵌入式物联网系统的挑战

让我们首先了解设计物联网应用程序的挑战,然后探索现代软件如何帮助物联网设计师克服这些挑战。

上市时间

每年连接到 Internet 的设备数量都在以指数速度增长。为了跟上竞争,上市时间是关键。但是,软件对开发时间和成本有重大影响。选择正确的软件和工具可以简单地加快开发速度,从而显着缩短生产时间。由于构建现实世界的物联网应用程序涉及大量协议,该软件还需要处理各种协议的底层复杂性,以帮助应用程序在物联网世界中无缝交互。为了防止这些协议和不断变化成为设计人员资源的消耗,软件需要将应用程序与硬件变化隔离开来。

使用方便

为了支持物联网应用的复杂计算需求,MCU 变得更加复杂,以提供更多的处理能力、安全性和智能逻辑。他们还必须提供许多外围设备来支持额外的功能,如音频、与外部存储器的接口、电机控制等。除此之外,MCU 还具有管理无线系统的额外任务。同时支持嵌入式和无线系统的软件工具可以节省大量的开发时间并增强用户友好性。这些工具面临的最大挑战不仅在于隐藏硬件复杂性,还在于提供易于使用、基于 GUI 的开发平台。为达到这个,

开发平台

IoT 开发工具 - 构建 IoT 应用程序需要完整的软件开发套件。这些软件工具包括集成开发环境 (IDE)、命令行界面 (CLI)、软件开发工具包 (SDK) 以及为物联网开发人员量身定制的库或 API。这些软件开发工具可以在物联网开发平台之上使用或与它们结合使用。简单直观的开发平台通过提供完全使用供应商的 IDE 和工具进行开发的选项或在您选择的任何其他 IDE(如 IAR Embedded Workbench、Arm 微控制器开发套件和 Microsoft Visual Studio Code)上开发应用程序,为物联网开发人员提供了灵活性使用供应商提供的工具。

操作系统的选择——物联网包括从小型传感器到机器人等复杂系统的各种设备。为物联网系统选择操作环境是影响固件开发方法的关键任务之一。物联网操作系统的重要要求包括优化内存占用、能源效率、集成安全性、连接功能、硬件无关操作和实时处理能力。物联网操作环境从裸机到嵌入式操作系统,再到满足物联网应用不同需求的全功能操作系统。嵌入式物联网应用程序的开发平台有多种选择,包括 Mbed OS 和 Amazon FreeRTOS,仅举两例。除了这些平台,嵌入式和连接设备供应商有时会提供额外的库来支持定制的物联网功能。这些库/平台补充了开发操作系统,以在直观的物联网开发环境中提供嵌入式和无线功能。设备供应商提供的功能丰富的库与基于应用程序选择的操作系统的无缝组合为物联网开发人员提供了一个全面的物联网解决方案开发平台。

能够连接到您选择的云

随着更多嵌入式设备的连接,有许多可用的云服务。任何计划开发现实世界物联网应用程序的人都可以为各种任务挑选云服务组合。因此,嵌入式软件必须高度灵活,以支持各种云服务(AWS、Azure、AliOS等)和平台。该软件必须让开发人员按照自己的方式设计系统,而不是将其限制在某些选项中。独立于硬件的软件架构是解决此问题的关键,提供此功能的软件生态系统为用户提供了极大的灵活性。

安全性:不可协商的元素

一旦连接了设备,就会引入被黑客入侵的可能性。因此,物联网设备的安全性是不可协商的因素,无论设备是个人可穿戴设备还是联网汽车。所有级别都需要数据保护,包括存储、处理和通信期间,以确保系统可靠性。为物联网应用程序设计的硬件需要具备开发安全和安全应用程序的所有元素。除了硬件安全之外,软件还需要补充这些硬件安全元素。还需要以与应用程序的处理和成本要求相匹配的方式集成安全性。

应对嵌入式物联网系统中的挑战

让我们以基于 MQTT 的低功耗嵌入式 IoT 应用程序为例,更深入地讨论上述概念。MQTT 是嵌入式系统用于连接物联网世界的流行通信协议。在典型的物联网系统中,嵌入式设备收集各种传感器数据,对其进行处理,并使用 MQTT 协议将信息传送到远程云系统。

要构建这样的应用程序,您将需要一个专为物联网应用程序设计的超低功耗微控制器(例如PSoC 6 MCU)和一个低功耗无线连接设备(例如CYW43012 Wi-Fi/BT 组合设备)。为了进行高效开发,需要一个能够同时开发和调试这些嵌入式和无线设备的软件平台,例如 ModusToolbox。模式工具箱是一个完整的嵌入式和物联网应用开发系统。图 2 概述了 ModusToolbox。它为物联网开发人员提供基于 GUI 的工具、固件、中间件、API 和文档。借助 GitHub 中提供的板级支持包 (BSP)、中间件库和模板应用程序,开发人员可以直接访问他们需要的资源。此外,在 ModusToolbox 中创建的项目可以导出到其他 IDE,例如 IAR Embedded Workbench、Arm 微控制器开发套件和 Microsoft Visual Studio Code。可以在这些环境中继续进行进一步的开发,同时在用户首选的编译器工具链(如 GCC、ARM、IAR)的帮助下构建项目,如图 2 中的白框突出显示的那样。

嵌入式

(图 2. ModusToolbox - 高级概述)

ModusToolbox 提供了一系列称为AnyCloud 解决方案的软件库,用于快速开发 Wi-Fi 和蓝牙应用程序(参见图 3)。USB 和 CapSense 等紫色块代表 MCU 库。MQTT 和 Low Power Assistant (LPA) 等绿色块是连接库。这些 MCU 和连接库无缝集成以实现安全的物联网应用程序开发。

嵌入式

(图 3. AnyCloud 软件堆栈)

对于 MQTT 应用,AnyCloud 提供单一软件环境,隐藏各种复杂性,例如处理网络连接、IP 地址更改等的 Wi-Fi 连接管理;网络套接字创建;传输层安全 (TLS) 等等。它为用户提供了根据自己的风格开发应用程序的灵活性。要开发基于 MQTT 的物联网系统,物联网设计人员可以从现有的 MQTT 应用程序开始,该应用程序可作为 Project Creator GUI 工具中所需设备的模板应用程序的一部分(参见图 4)。

嵌入式

(图 4. 使用模板应用程序创建 IoT 项目)

拥有现有项目并需要将 MQTT 添加到其应用程序的 IoT 开发人员可以使用 Library Manager 来执行此操作。库管理器管理和导入应用程序使用的库,并处理所选库所具有的依赖关系。它还递归地导入顶级应用程序所需的所有库。对于这个低功耗物联网项目,物联网设计人员将启用“mqtt”库,库管理器会自动引入所有依赖项,如下图 5 所示。

嵌入式

(图 5. 将 MQTT 功能添加到现有项目)

导入 MQTT 包后,IoT 设计人员可以使用 MQTT 模板应用程序和 MQTT 库提供的非常详细的 README 文件来获取更多信息以启动应用程序开发。图 6 显示了各个 README 文件的一部分,这些文件可帮助物联网设计人员开始并按照他们想要的开发流程运行他们的应用程序。

嵌入式

(图 6. 用于快速启动 IoT 软件的详细自述文件)

一旦 MQTT 实施,物联网开发人员的主要关注点通常是低功耗。节能物联网系统的一个关键特征是“卸载”。主机卸载使主机 PSoC 6 MCU 能够长时间进入深度睡眠,同时无线设备代表 MCU 主机处理诸如 ARP 请求、TCP 保活等任务。主机卸载在优化主机功耗方面发挥着关键作用。 此外,这些卸载可以释放主机 CPU 以执行其他更强大的任务,例如音频或传感器数据处理。这反过来又提高了整个系统的效率和功率。在现实世界的物联网系统中配置这些卸载将是一项复杂的任务。借助集成了 MCU 和无线设计的工具环境,可以减少开发时间和工作量。

例如,ModusToolbox 附带的“低功耗助手”(LPA) 配置器工具使开发人员能够通过启用复选框并选择必要的配置来配置低功耗卸载,如图 7 所示。该工具会根据应用程序的这些配置设置自动生成源代码。

嵌入式

(图 7. 低功耗助手 (LPA) 工具)

此外,需要编写大量代码才能为 MCU 配置各种引脚、外设和时钟。配置器提供了一种使用 GUI 执行此类任务的简单方法,从而消除了开发人员手动编写这些任务的时间。配置器还可以帮助进行各种 MCU 相关设置,例如 GPIO 引脚设置、外设配置、模拟路由、系统设置、时钟树设置和 DMA 路由。图 8 显示了其中一些配置器:GPIO 引脚配置、外设配置和时钟设置。项目创建者、库管理器、USB 配置器、设备固件更新主机、蓝牙配置器和分段 LCD 配置器等工具也显着减少了物联网开发人员的开发时间和工作量。

嵌入式

(图 8. (a) 引脚配置器 GUI 工具)

嵌入式

(图 8. (b) 外设配置器 GUI 工具)

嵌入式

(图 8. (c) 系统时钟配置器 GUI 工具)

一些应用程序在开发中需要更大的灵活性来自定义设置。需要时,可以使用手动编码覆盖 GUI 工具所做的配置。此外,更灵活的开发平台提供了可以与许多第三方 IDE 集成的构建系统,高级用户也可以使用 CLI 工具。拥有如此强大而灵活的开发平台可以加快生产时间并大大提高效率。

随着许多云服务和平台的出现,OEM 需要灵活并能够快速适应创新。灵活性的一个关键要素是使用能够适应各种物联网平台并支持广泛生态系统的开发工具进行设计。在本文中,我们探讨了设计物联网系统的最重要挑战,以及软件工具如何通过隐藏物联网架构所需的底层复杂性来简化设计复杂性。这些软件平台还为高级开发人员提供了定制物联网系统大部分设计方面的灵活性。这是通过在硬件和软件堆栈中主动和无缝集成嵌入式和连接设备来实现的。MCU 和无线设备的这种集成是紧凑型。

作者:Jaya Kathuria Bindra,Shriram M

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分