传统的嵌入式系统开发人员通常在没有连接的设备上工作,但是IoT需要连接到Internet的系统。这要求嵌入式系统开发人员学习如何连接他们的设备和使用更高级别的操作系统,例如实时操作系统(RTOS)。
开发人员可以使用Amazon FreeRTOS,而不是从头开始学习每一个需要的细微差别来安全地连接嵌入式系统到Internet。这将使他们能够以一种安全的方式快速并轻松地将他们的设备连接到Amazon Web Services (AWS),从而简化他们的开发工作。本文将讨论并演示如何开始使用Amazon FreeRTOS。
亚马逊FreeRTOS的介绍
Amazon FreeRTOS是一个RTOS,它的核心是开源的FreeRTOS内核,添加了额外的组件,以支持本地和云的连接、安全性和无线(OTA)更新。FreeRTOS内核是一个众所周知的RTOS,它已经存在了十多年,并提供了一些有用的特性,例如:
基于优先级的任务调度
信号量
互斥锁
消息队列
另外,FreeRTOS在麻省理工学院的软件许可下是免费的。
让Amazon FreeRTOS独特而有趣的是,它将连接库和安全性添加到FreeRTOS中。然后,它将所有内容整合到一个单一的内聚框架中,使开发人员能够以安全的方式将他们的设备与云服务连接起来。
选择亚马逊FreeRTOS硬件
FreeRTOS内核本身在几十个不同的微控制器架构上工作。目前,亚马逊的FreeRTOS已经通过亚马逊FreeRTOS的资格认证程序,在四个不同的微控制器供应商硬件平台上进行了充分的测试和集成。这些都是:
Microchip公司的好奇PIC32MZ EF开发委员会。
NXP半导体LPC54018 IoT模块(图1)
STMicroeletronics的STM32L4 Discovery Kit IoT节点。
德州仪器CC3220SF-LaunchXL
NXP半导体LPC54018 IoT模块的图像。
图1:NXP半导体的LPC54018物联网模块是基于一个手臂®皮层®m4 180 MHz单片机128 mbit Macronix MX25L12835 Quad-SPI闪存。一个完全集成的Wi-Fi模块,可以从Amazon FreeRTOS快速入门。(图片来源:凯利讯半导体)
每一个开发套件都经过了Amazon FreeRTOS的全面测试,但是开发人员可能有一个首选的硅供应商。例如,值得注意的是,亚马逊FreeRTOS还支持在线旅行社,但支持目前仅提供测试的德州仪器CC3220SF-LaunchXL(图2)。这个委员会是基于一只手臂®皮层®m4单片机和功能内置温度传感器,加速度计,三个发光二极管,和一个可编程的用户按钮。这个模块提供了一个完全集成的解决方案,可以从Amazon FreeRTOS开始。
在未来,其他的董事会无疑也会得到OTA的支持,但如果这是一个关键的设计特征,那么从德州仪器的解决方案开始。
德州仪器CC3220SF-LaunchXL图像。
图2:德州仪器的CC3220SF-LaunchXL是一个完全集成的解决方案,可以从Amazon FreeRTOS开始。它还支持Amazon FreeRTOS OTA Beta演示示例。(图片来源:凯利讯半导体)
大多数开发工具包都是单一的模块工具包,它们是单一的董事会解决方案。然而,Microchip好奇开发工具包要求开发人员购买额外的模块,如以太网、Wi-Fi模块和usbto - uart转换器。
该板基于PIC32微控制器,但为了得到一个功能全面的板,可以与Amazon FreeRTOS一起使用,开发人员需要购买额外的组件。要想拥有一个功能完备的Amazon FreeRTOS,最好的组件是以下MikroElektronika MIKROE扩展模块:
mikroe - 2046无线模块
MIKROE USB-to-UART子板
微芯片LAN8720子板
然后将会出现完全组装的板,如图3所示。开发人员将准备运行Amazon RTOS应用程序的示例。
微芯片技术的PIC32MZEF好奇开发工具包图像。
图3:Microchip技术的PIC32MZEF好奇心开发工具包提供了一个模块化设计,允许开发人员定制他们在开发工具包中应用程序所需的组件。如图所示,还包括MIKROE Wi-Fi和MIKROE USB到UART的子板。(图片来源:微芯片技术)
将Amazon FreeRTOS连接到云
让Amazon FreeRTOS在上一节讨论的任何开发工具包上运行都很容易。每个开发委员会都有一个演示,可以逐步指导如何运行该演示。
例如,微芯片委员会指令位于以下链接:https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_mch.html。
首先,找到合适的开发工具包的入门指南。
接下来,设置硬件。对于大多数开发工具包来说,硬件是全包的,但是如果选择了Microchip解决方案,那么每个模块板都需要添加到“好奇号”板上,并且一个外部编程工具,比如ICD4需要连接。
Microchip PIC32MZEF好奇开发工具包图像。
图4:PIC32MZEF好奇开发工具包组装并连接到ICD4编程工具。该设置使用有线以太网连接来运行演示。(图片来源:凯利讯半导体)
一旦硬件设置好了,下一步就是安装开发环境,在其中编译Amazon FreeRTOS示例。例如,使用Microchip的开发人员将下载MPLAB X,以及XC32编译器。
为了获得Amazon FreeRTOS示例的访问权,注册AWS并访问他们的控制台。AWS提供了一个为期12个月的免费试用层,允许开发人员访问AWS、Amazon FreeRTOS和其他功能,这些功能对于开发连接的设备非常有用。注册一个帐户可以在这里完成。创建帐户后,访问Amazon FreeRTOS页面,该页面将提供Amazon FreeRTOS的软件配置列表。这些配置包括每个开发工具包的源文件,以及Amazon FreeRTOS模拟器。下载与开发工具包匹配的预定义配置并将其导入到开发环境中。例如,相应的“好奇号”委员会将使用预先定义的“连接到AWS IoT - Microchip配置,为好奇PIC32MZEF设计”。
亚马逊FreeRTOS软件配置页面的图片。
图5:Amazon FreeRTOS软件配置页面为不同的开发工具包和不同的应用程序提供了几个预定义的软件配置。使用这些预定义的配置来获得一个连接AWS和跳转start开发的演示应用程序。(图片来源:凯利讯半导体)
一旦下载了Amazon FreeRTOS,开发人员应该返回到他们的AWS控制台,并单击settings按钮。在设置中,他们会发现他们有一个IoT端点,例如:
< 1234567890123 > .iot。< us-east-1 > .amazonaws.com。
这个重要的数字允许物联网设备连接AWS。然后,开发人员会找到aws_clientcredential。h在示例项目中,设置如下属性:
clientcredentialMQTT_BROKER_ENDPOINT
clientcredentialIOT_THING_NAME
clientcredentialWIFI_SSID
clientcredentialWIFI_PASSWORD
clientcredentialWIFI_SECURITY
此时,开发人员只需要配置他们的设备**。为了生成**,请访问AWS控制台并选择Secure ->证书。可以选择创建快速证书。单击此选项将生成与图6中所示类似的证书。要为嵌入式设备生成**文件,需要使用私钥和证书。
创建证书的映像,然后是**。
图6:创建一个证书,然后一个**要求开发人员从AWS内部创建证书。将创建的三个文件是一个证书、一个公钥和一个私钥。
**生成器位于:
< BASE_FOLDER > \ demo \常见\ devmode_key_provisioning \ CertificateConfigurationTool \ CertificateConfigurator.htm
在浏览器中加载html文件将显示类似于图7所示的界面。
通过使用AWS控制台生成的证书和私有**文件,开发人员可以生成他们的aws_clientcredential_key。h配置文件。一旦完成,编译项目并将软件部署到嵌入的目标上。
在AWS中生成的证书和私钥的图像。
图7:在AWS中生成的证书和私钥用于创建将加载到微控制器中的关键配置模块,用于创建与AWS的安全连接。
唯一剩下的步骤是让开发人员订阅他们的设备的MQTT消息。这可以在AWS中通过测试菜单实现,然后订阅:freertos/demo /echo。
此时,开发人员应该看到MQTT消息安全地到达他们的AWS。
使用Amazon FreeRTOS的技巧和技巧。
与FreeRTOS一起站起来和运行是简单的,甚至是入门级的工程师。尽管它很容易,但是开发人员在开始使用Amazon FreeRTOS时应该记住一些技巧和技巧。
在开发期间,使用12个月的免费试用期来安装和配置嵌入式产品。
从一个预配置的示例开始,而不是从头开始配置一个示例。
如果可能的话,订购一个完全组装的开发工具包,它可以与Amazon FreeRTOS一起使用。
别忘了,FreeRTOS是一个开源的RTOS,并不是安全认证。
花点时间通过AWS 10分钟教程,为如何有效地使用AWS提供一个很好的基础。
结论
在Amazon FreeRTOS中构建的功能可以为嵌入式开发人员提供一种方便地将他们的系统连接到Internet的方法。Amazon FreeRTOS本身是免费的,开发人员可以很容易地开始购买一个低成本的开发工具包,并通过现有的例子来确定Amazon FreeRTOS是否满足他们的设计需求。