作者:Jaya Kathuria Bindra,Shriram M
为了在物联网市场取得成功,原始设备制造商需要能够以更快的速度拥抱创新。
然而,为物联网边缘构建强大的产品并非易事。随着物联网世界中越来越多的事物连接到互联网,对联网设备的需求不仅能够连接到云,而且还可以在边缘处理复杂的计算。
OEM 不断寻找新的、更有用的方法来利用传感器的功能、监控数据类型、处理信息、连接到云以及控制设备的生态系统。物联网应用的可能范围是无穷无尽的,从家庭、汽车、可穿戴设备、工业到智能城市。
MCU和连接设备是这些基于物联网的产品的核心。为了帮助物联网设计人员设计独特、高效、安全且美观的设备,芯片制造商正在集成更多功能和外设,同时通过机器学习和人工智能等高级功能增强可用的处理能力。这些嵌入式计算和无线设备必须无缝协同工作,以降低设计复杂性。
通过现代软件套件,可以隐藏或抽象复杂性,并为物联网设计人员开发其应用程序提供简单、安全和直观的平台,从而最大限度地降低这种复杂性。这些专门设计的软件环境处理硬件配置,并允许跨多个设备、各种平台和网络轻松连接,以创建一个通信网络,彻底改变我们在这个数字世界中智能交互的方式。
本文将详细探讨这些挑战,并解释直观的软件环境如何补充优化的物联网硬件,为以更快的速度开发智能物联网解决方案提供完整强大的安全平台。作为说明,我们将以低功耗物联网设备为例,使用 MQTT 协议安全地连接到云。
设计嵌入式物联网系统的挑战
让我们首先了解设计物联网应用程序的挑战,然后探索现代软件如何帮助物联网设计师克服这些挑战。
上市时间
每年连接到互联网的设备数量正以指数级的速度增长。为了跟上竞争的步伐,上市时间是关键。但是,软件对开发时间和成本有重大影响。选择合适的软件和工具可以简单而加快开发速度,从而显著缩短生产时间。由于构建实际物联网应用程序涉及大量协议,因此该软件还需要处理各种协议的底层复杂性,以帮助应用程序在物联网世界中无缝交互。为了防止这些协议和不断的变化消耗设计人员的资源,软件需要将应用程序与硬件更改隔离开来。
易用性
为了支持物联网应用的复杂计算需求,MCU变得更加复杂,以提供更高的处理能力、安全性和智能逻辑。它们还必须提供许多外围设备以支持其他功能,如音频、与外部存储器接口、电机控制等。除此之外,MCU还有一个额外的任务来管理无线系统。在一个保护伞下同时支持嵌入式和无线系统的软件工具可以节省宝贵的开发时间并增强用户友好性。这些工具面临的最大挑战不仅是隐藏硬件复杂性,而且还要提供一个易于使用的基于 GUI 的开发平台。为了实现这一目标,开发平台通常提供许多基于 GUI 的工具和配置器来执行应用程序开发中涉及的大多数任务——项目创建、导入库、配置外围设备等。基于 GUI 的配置的基础代码是自动生成的,并与项目一起构建,以便设计人员能够以最少的编码工作开发应用程序。
开发平台
物联网开发工具 - 构建物联网应用程序需要完整的软件开发套件。这些软件工具包括集成开发环境 (IDE)、命令行界面 (CLI)、软件开发工具包 (SDK) 以及为 IoT 开发人员量身定制的库或 API。这些软件开发工具可以在物联网开发平台之上使用,也可以与它们结合使用。简单直观的开发平台为物联网开发人员提供了灵活性,因为它提供了完全使用供应商的IDE和工具进行开发的选项,或者在自己选择的任何其他IDE上开发应用程序,如IAR嵌入式工作台,Arm 微控制器开发工具包和Microsoft Visual Studio Code以及供应商提供的工具。这些平台还提供文档齐全的模板应用程序,使开发人员能够快速启动并加速应用程序开发。
操作系统的选择 - 物联网包括从小型传感器到机器人等复杂系统的各种设备。为物联网系统选择操作环境是影响固件开发方法的关键任务之一。IoT 操作系统的重要要求包括优化的内存占用、能效、集成安全性、连接功能、与硬件无关的操作和实时处理功能。物联网操作环境的范围从裸机到嵌入式操作系统,再到满足物联网应用不同要求的全功能操作系统。嵌入式物联网应用有许多开发平台可供选择,包括Mbed OS和Amazon FreeRTOS,仅举两例。除了这些平台之外,嵌入式和连接设备供应商有时会提供额外的库来支持定制的物联网功能。这些库/平台补充了开发操作系统,在直观的物联网开发环境中提供嵌入式和无线功能。设备供应商提供的功能丰富的库与基于应用选择的操作系统的无缝结合,为物联网开发人员提供了全面的物联网解决方案开发平台。
能够连接到您选择的云
随着越来越多的嵌入式设备连接,有许多云服务可用。任何计划开发实际物联网应用程序的人都可以为各种任务选择云服务组合。因此,嵌入式软件必须高度灵活,以支持各种云服务(AWS,Azure,AliOS等)和平台。软件必须让开发人员按照自己的方式设计系统,而不是将他们限制在某些选项上。独立于硬件的软件架构是解决此问题的关键,提供此功能的软件生态系统为用户提供了极大的灵活性。
安全性:不可协商的要素
连接设备后,就会引入被黑客入侵的可能性。因此,物联网设备的安全性是一个不可协商的元素,无论设备是个人可穿戴设备还是联网汽车。所有级别都需要数据保护,包括存储、处理和通信期间,以确保系统可靠性。为物联网应用设计的硬件需要具备开发安全可靠应用所需的所有元素。除了硬件安全之外,软件还需要补充这些硬件安全元素。还需要以与应用程序的处理和成本要求相匹配的方式集成安全性。
应对嵌入式物联网系统中的挑战
让我们以基于 MQTT 的低功耗嵌入式物联网应用为例,更深入地讨论上述概念。MQTT是嵌入式系统用来连接物联网世界的流行通信协议。在典型的物联网系统中,嵌入式设备收集各种传感器数据,对其进行处理,并使用MQTT协议将信息传达给远程云系统。
要构建这样的应用,您需要一个专为物联网应用而设计的超低功耗微控制器(例如PSoC 6MCU)和低功耗无线连接设备(例如CYW43012Wi-Fi/BT组合设备)。为了高效开发,需要一个能够同时开发和调试这些嵌入式和无线设备的软件平台,例如ModusToolbox。ModusToolbox是一个完整的嵌入式和物联网应用开发系统。图 2 概述了 ModusToolbox。它为物联网开发人员提供基于 GUI 的工具、固件、中间件、API 和文档。借助 GitHub 中提供的板级支持包 (BSP)、中间件库和模板应用程序,开发人员可以直接访问所需的资源。此外,在ModusToolbox中创建的项目可以导出到其他IDE,如IAR Embedded Workbench,Arm Microcontroller Development Kit和Microsoft Visual Studio Code。可以在这些环境中继续进一步开发,同时在用户首选编译器工具链(如 GCC、ARM、IAR)的帮助下构建项目,如图 2 中的白框突出显示所示。
(图2.ModusToolbox - 一个高级概述)
ModusToolbox提供了一系列软件库,称为AnyCloud解决方案,用于快速开发Wi-Fi和蓝牙应用程序(见图3)。紫色的块,如USB和CapSense代表MCU库。绿色块(如 MQTT 和低功耗助手 (LPA)是连接库。这些 MCU 和连接库无缝集成,以实现安全的物联网应用开发。
(图3.任意云软件堆栈)
对于 MQTT 应用程序,AnyCloud 提供了一个隐藏各种复杂性的单一软件环境,例如处理网络连接、IP 地址更改等的 Wi-Fi 连接管理;网络套接字创建;传输层安全性 (TLS) 等等。它为用户提供了根据自己的风格开发应用程序的灵活性。要开发基于 MQTT 的物联网系统,物联网设计人员可以从现有的 MQTT 应用程序开始,该应用程序可作为项目创建者 GUI 工具中所需设备的模板应用程序的一部分使用(参见图 4)。
(图4.使用模板应用程序创建物联网项目)
拥有现有项目并需要将 MQTT 添加到其应用程序的物联网开发人员可以使用库管理器来执行此操作。库管理器管理和导入应用程序使用的库,并处理所选库具有的依赖项。它还以递归方式导入顶级应用程序所需的所有库。对于这个低功耗 IoT 项目,IoT 设计人员将启用“mqtt”库,库管理器会自动拉入所有依赖项,如下图 5 所示。
(图5.将 MQTT 功能添加到现有项目)
导入 MQTT 包后,IoT 设计人员可以使用随 MQTT 模板应用程序和 MQTT 库提供的非常详细的自述文件获取更多信息来启动应用程序开发。图 6 显示了各个 README 文件的一部分,这些文件可帮助 IoT 设计人员入门并针对所需的开发流程运行其应用程序。
(图6.用于快速启动物联网软件的详细自述文件)
一旦 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和无线设备的这种集成是紧凑,超低功耗和强大系统的基础,可满足蓬勃发展/不断增长的物联网市场的需求。
审核编辑:郭婷
-
传感器
+关注
关注
2545文章
50411浏览量
750794 -
嵌入式
+关注
关注
5056文章
18955浏览量
301683 -
物联网
+关注
关注
2900文章
43994浏览量
369877
发布评论请先 登录
相关推荐
评论