AWS Libraries for S32K3快速入门

上次修改时间: Aug 9, 2023支持 AWS Libraries for S32K3

本文档内容

  • 1

    开箱即用
  • 2

    获取软件
  • 3

    安装软件
  • 4

    创建AWS账号
  • 5

    构建、运行
  • 6

    在AWS IoT Core中验证消息
  • 7

    调试

1. 开箱即用

S32K3X4EVB-T172是一款适用于通用工业和汽车应用的评估和开发板,也是启动该演示的必备要素。

注:此软件包中不含+12V电源和Micro USB线缆。+12V连接器为中心正极筒型,外直径5.5mm,内直径2.1mm。此外,所有演示都需要互联网连接,以便进行测试,需要一个以太网媒体转换器。可使用下面的恩智浦产品:RDDRONE-T1ADAPT

如需获得S32K3X4EVB-T172快速入门信息,请参见S32K3X4EVB-T172汽车通用评估板快速入门

1.1 以太网连接

100BASE-T1双线汽车以太网通过简单的双绞线提供100Mbps的连接,距离可达15米。导线上的线路信号与传统的100BASE-TX (RJ45)连接不直接兼容,但可以使用物理适配器。其他方面与传统以太网完全相同。下图展示了设置。

S32K3X4EVB-T172 Ethernet Connection

S32K3X4EVB-T172 Ethernet Connection

2. 获取软件

AWS Libraries for S32K3 product有以下依赖项:

  • S32 Design Studio for S32 Platform
  • S32 Design Studio for S32 Platform v.3.4 Update 3 with support for S32K3 devices
  • S32K3实时驱动程序2.0.1版
  • FreeRTOS 2.0.1版,适用于S32K3平台
  • SW32K3 TCPIP Stack 1.0.1 HF1版
  • S32K3 AWS IoT Core 1.0.0版

2.1 获得集成开发环境

AWS Libraries for S32K3软件包与恩智浦的S32 Design Studio for S32 Platform v3.4 Update 3 IDE兼容。

S32 Design Studio平台可执行文件的查找方式为:进入Automotive SW → S32K3 → S32 Design Studio,转到Previous (上一步)选项卡,选择S32 Design Studio for S32 Platform v.3.4 with support for S32K3 devices,然后下载S32DS.3.4_b201217_win32.x86_64.exe

下载S32 DESIGN STUDIO IDE

S32K3X4EVB-T172 S32DS STDSW Download

S32K3X4EVB-T172 S32DS v3.4 Download

S32K3X4EVB-T172 S32DS v3.4 Download

S32K3X4EVB-T172 S32DS v3.4 Installer

S32K3X4EVB-T172 S32DS v3.4 Installer

如需了解更多有关IDE安装的更多信息,请遵循安装指南

2.2 下载S32K3xx开发包

此外,S32 Design Studio for S32 Platform v.3.4 Update 3 with support for S32K3 devices包必须安装在S32 Design Studio for S32 Platform v.3.4 with support for S32K3 devices的上面。

Update 3与S32 Design Studio平台可执行文件的位置相同,其查找方式为:进入Automotive SW → S32K3 → S32 Design Studio,转到Current (当前)选项卡,选择S32 Design Studio for S32 Platform v.3.4 Update 3 with support for S32K3 devices,然后下载SW32K3_S32DS_3.4.3_D2112.zip

下载S32K3xx开发包

S32K3X4EVB-T172 S32DS Dev Package v3.4 Download

S32K3X4EVB-T172 S32DS Dev Package v3.4 Download

S32K3X4EVB-T172 S32DS Dev Package v3.4 Update 3 Download

S32K3X4EVB-T172 S32DS Dev Package v3.4 Update 3 Download

2.3 下载HSE固件

AWS Libraries for S32K3使用HSE安全引擎,因此必须在设备上安装HSE FW 0.2.1.0 RTM。

固件(HSE_FW_S32K3XX_0_2_1_0.exe)可从Automotive SW → S32K3 Standard Software → Automotive SW → S32K3 → HSE Firmware → HSE FW 0.2.1.0 RTM Release下载。

下载HSE FW

演示应用单独提供,包含如何在出厂新设备上配置HSE固件的详细信息,并演示其安全功能的常见用例。演示应用可在此处找到(需登录)。

S32K3X4EVB-T172 HSE FW Download

S32K3X4EVB-T172 HSE FW Download

S32K3X4EVB-T172 HSE FW EXE Download

S32K3X4EVB-T172 HSE FW EXE Download

2.4 获取实时驱动程序

Automotive SW → S32K3 Standard Software → Automotive SW → S32K3 → Real-Time Drivers for Cortex-M → S32K3 Real-Time Drivers Version 2.0.1 → SW32K3_RTD_4.4_2.0.1_DS_updatesite_D2207.zip

下载S32K3 RTD

S32K3X4EVB-Q172 S32K3 RTD STDSW Download

S32K3X4EVB-Q172 S32K3 RTD STDSW v2.0.1 Download

S32K3X4EVB-Q172 S32K3 RTD STDSW v2.0.1 Download

S32K3X4EVB-Q172 S32K3 RTD STDSW Update Site D2207

S32K3X4EVB-Q172 S32K3 RTD STDSW Update Site D2207

2.5 下载FreeRTOS

Automotive SW → S32K3 Reference Software → Automotive SW → S32K3 → FreeRTOS → SW32K3_FreeRTOS_10.4.6_2.0.1_D2209 → SW32K3_FreeRTOS_10_4_6_UOS_2_0_1_DS_updatesite_D2209.zip

下载FreeRTOS

S32K3X4EVB-Q172 S32K3 FreeRTOS REFSW

S32K3X4EVB-Q172 S32K3 FreeRTOS REFSW v2.0.1 Download

S32K3X4EVB-Q172 S32K3 FreeRTOS REFSW v2.0.1 Download

S32K3X4EVB-Q172 S32K3 FreeRTOS STDSW Update Site D2209

S32K3X4EVB-Q172 S32K3 FreeRTOS STDSW Update Site D2209

2.6 下载TCP/IP协议栈

Automotive SW → S32K3 Reference Software → Automotive SW → S32K3 → Stacks → SW32K3 TCPIP Stack version 1.0.1 HF1 → SW32K3_TCPIP_RTM_1_0_1_HF1_D2209_updatesite.zip

下载TCP/IP协议栈

S32K3X4EVB-Q172 TCP IP REFSW Download

S32K3X4EVB-Q172 TCP IP REFSW v1.0.1HF1 Download

S32K3X4EVB-Q172 TCP IP REFSW v1.0.1HF1 Download

S32K3X4EVB-Q172 AWS IoT Core REFSW v1.0.1HF1 D2209

S32K3X4EVB-Q172 AWS IoT Core REFSW v1.0.1HF1 D2209

2.7 下载AWS Libraries for S32K3

Automotive SW → S32K3 Reference Software → Automotive SW → S32K3 → AWS IoT → S32K3 AWS IoT Core Version 1.0.0 → SW32K3_AWS_IOT_CORE_1.0.0_D2304_updatesite.zip

下载AWS LIBRARIES FOR S32K3

S32K3 AWS IoT Core Ref SW Download

S32K3 AWS IoT Core Ref SW v1.0.0 Download

S32K3 AWS IoT Core Ref SW v1.0.0 Download

S32K3 AWS IoT Core Ref SW v1.0.0 Update Site D2304

S32K3 AWS IoT Core Ref SW v1.0.0 Update Site D2304

3. 安装软件

本节介绍如何安装上一节中下载的软件包。

3.1 安装S32 Design Studio

按照分步安装程序安装S32 Design Studio。

如需了解更多有关IDE安装的更多信息,请遵循安装指南

3.2 在S32 Design Studio中安装更新站点

上面的大部分软件(开发包、RTD、FreeRTOS、TCP/IP、AWS Libraries for S32K3)将以S32 Design Studio的更新站点(.zip档案)的形式下载,可以按照以下步骤安装在S32 Design Studio中:

  1. 在菜单栏选择Help → S32DS Extensions and Updates (帮助→ S32DS扩展与更新),选择Add Update Sites (添加更新站点)
  2. S32K3X4EVB-T172 S32DS Add Update Sites
  3. 进入带有可下载ZIP文件的目录。选择上一节中下载的所有ZIP文件,点击“打开”,然后点击“确定”
  4. 在“S32DS扩展与更新“”对话框中,按以下顺序选择并安装所需的软件包:
    • 选择S32K3实时驱动程序2.0.1版并安装(开发包默认安装)
    • 选择AWS_IOT_CORE for S32K3 1.0.0版并安装(其余的依赖项将默认安装)
  5. S32K3X4EVB-T172 S32DS Install Update Sites RTD S32K3X4EVB-T172 S32DS Install Update Sites AWS

3.3 在设备上安装HSE固件

HSE固件有两个版本:

  • Full memory (全内存模式)
  • A/B Swap (A/B交换)

AWS Libraries for S32K3使用A/B Swap版本,但如果不需要OTA更新功能,也可以使用Full memory版本。

安装固件的步骤如下所示:

  1. 使用引导设置安装HSE固件和演示应用
  2. 选择File → Import… → General → Existing Projects into Workspace,然后转到示例位置,导入S32 Design Studio中的固件安装示例(/S32K3_HSE_DemoExamples/Device_Configuration/S32K344_HSE_FW_INSTALL)
  3. S32K3X4EVB-T172 S32DS HSEFW Import Project

    S32K3X4EVB-T172 S32DS HSEFW Import Project
  4. 构建项目
  5. S32K3X4EVB-T172 S32DS Build
  6. 调试示例(如果使用固件的A/B swap版本,则用AB_SWAP取代FULL_MEM,如下所示)
  7. S32K3X4EVB-T172 S32DS Debug

    S32K3X4EVB-T172 S32DS Debug
    S32K3X4EVB-T172 S32DS Debug Project
  8. 要检查HSE固件是否正确安装,可以暂停应用并查看gHseFwVersion变量的值
  9. S32K3X4EVB-T172 S32DS Pause

    S32K3X4EVB-T172 S32DS Pause

如需了解详情,请参见项目中包含的Readme.md文件。S32K3xx安全概述和启动培训(需登录)介绍了S32K3的安全功能。也可以访问我们的安全文件(需要NDA)部分,深入了解安全信息。安全访问权限的注册指南可以在这里找到。

S32K3X4EVB-T172 S32DS HSEFW Full Memory Debug S32K3X4EVB-T172 S32DS HSEFW Full Memory Advanced Options Flash Algorithm

4. 创建AWS账号

如果您目前还没有AWS帐号和用户,请参见在线AWS文档创建AWS账号 。要开始,请按以下各章节中介绍的步骤进行操作:

注意“注释”。

4.1 在AWS IoT中创建资源

请参见在线AWS文档创建AWS IoT资源 。按照这些部分中列出的步骤为您的设备配置资源:

注意“注释”。

5. 构建、运行

AWS Libraries for S32K3包含多个展示AWS IoT Core连接的演示。描述如何导入、构建和运行演示的步骤适用于所有包含的演示,但我们建议从aws_mqtt_s32k344演示开始,以确认设备能够与AWS IoT Core进行通信。

5.1 创建S32DS项目,从aws_mqtt_s32k344示例开始

打开S32 Design Studio,转到File → New S32DS Project From Example,选择aws_mqtt_s32k344(可以在搜索框中输入aws进行搜索)。然后点击Finish (完成)。

S32K3X4EVB-Q172 S32DS New Project From Example S32K3X4EVB-Q172 S32DS Select New Project From Example

5.2 配置demo_config.h

为了成功构建项目并连接到AWS IoT Core,必须在include/demo_config.h文件中填写有关AWS IoT端点和在AWS IoT部分的“创建资源”中创建的物联网内容的信息。

S32K3X4EVB-Q172 AWS IoT Demo Config File

一些宏是必选项(它们在文件中被作为参考注释掉了,但应由用户定义):

  • democonfigCLIENT_IDENTIFIER

    必须设为Thing Name (事物名称)。

    S32K3X4EVB-T172 AWS IoT Thing Name
  • democonfigMQTT_BROKER_ENDPOINT

    必须设为AWS IoT Core端点。

    S32K3X4EVB-T172 AWS IoT Broker Endpoint
  • democonfigMQTT_BROKER_PORT

    用于安全MQTT连接的端口可以是8883 (通常用于安全MQT连接)或443 (可以在受限的网络环境中使用)。

  • democonfigROOT_CA_PEM

    该证书用于识别AWS IoT服务器,可公开。可以从这里检索,也可以在AWS IoT Console创建“事物”的过程中下载。

  • democonfigCLIENT_CERTIFICATE_PEM

    客户端设备的证书——在AWS IoT Console中创建“事物”的过程中生成。

  • democonfigCLIENT_PRIVATE_KEY_PEM

    客户端设备的私钥——在AWS IoT Console中创建“事物”的过程中生成。

有关如何设置每个宏的详细信息,请参见include/demo_config.h文件注释。

5.3 生成配置和代码

双击aws_mqtt_s32k344.mex文件,或点击S32 DS右上角的符号(如下所示),打开“外设”视图。

S32K3X4EVB-Q172 S32DS C/C++ Perspective Icon

从窗口左上方选择现有的项目(aws_mqtt_s32k344)。

S32K3X4EVB-Q172 S32DS Select Current Project

不同组件的配置可以通过选择其中任何一个来更新(当前示例不需要)。这是aws组件示例:

S32K3X4EVB-Q172 S32DS AWS IoT Configuration Setup

aws组件允许您配置mbedTLS的密码套件设置。如果默认情况下从IoT Console生成设备证书和私钥,它们将基于RSA,因此必须相应地更新密码套件:

S32K3X4EVB-T172 S32DS AWS IoT Configuration RSA

点击“更新代码”按钮(当要生成新的配置文件时为绿色)。

S32K3X4EVB-Q172 S32DS AWS IoT Update Code Icon

等待代码生成完成,然后继续执行下一步(当右下角的“更新代码”消息消失时)。

S32K3X4EVB-Q172 S32DS AWS IoT Code Generation Wait S32K3X4EVB-Q172 S32DS AWS IoT Code Generation Wait

5.4 构建项目

点击S32 DS右上角的符号,再次切换到C/C++视图。

S32K3X4EVB-Q172 S32DS Peripherals Icon

点击“构建”按钮(锤子符号)。

S32K3X4EVB-Q172 S32DS Build Icon

等待构建操作完成,然后再继续下一步。

S32K3X4EVB-Q172 S32DS Build Console

5.5 运行演示

连接调试器,通过J428端口将板连接到互联网,并按照S32K3x4EVB快速入门中的说明为其上电。

点击S32 DS中的“调试”按钮对应的向下箭头,然后选择“调试配置” 选择aws_mqtt_s32k344_Debug_FLASH_PNE,点击“调试”按钮。

S32K3X4EVB-Q172-S32K3 AWS Demo S32DS Debug Icon

等待调试会话启动,然后点击“继续”按钮继续执行应用。

S32K3X4EVB-Q172-S32K3 AWS Demo S32DS Resume Icon

6. 在AWS IoT Core中验证消息

6.1 AWS IoT Core Console

AWS IoT Core console 中,从“导航”窗口选择“测试”,选择MQTT测试客户端。选择“订阅主题”,输入主题(或使用#通配符查看所有主题),然后选择“订阅”。在收到消息时就会显示出来。

S32K3X4EVB-T172-S32K3 AWS Demo MQTT Test Client

S32K3X4EVB-T172-S32K3 AWS Demo MQTT Test Client

7. 调试

7.1 调试流程

您可以在与OpenSDA接口有关的虚拟COM上连接串行终端,查看执行进度(可以在设备管理器中查看)。

S32K3X4EVB-Q172-S32K3 AWS Demo Debugging Ports COM

当示例开始运行时,将打印类似于以下内容的日志:

S32K3X4EVB-Q172-S32K3 AWS Demo Debugging Log

S32K3X4EVB-Q172-S32K3 AWS Demo Debugging Log

如果成功执行,除了按照AWS IoT Core中的Verify (验证)消息部分验证AWS IoT Core是否接收到MQTT消息外,您还应该在执行结束时看到以下消息:

S32K3X4EVB-Q172-S32K3 AWS Demo Debugging Log Success Execution

S32K3X4EVB-Q172-S32K3 AWS Demo Debugging Log Success Execution

日志记录级别可以在“外设”视图中更新,如“构建和运行演示”部分第3步所示进行访问。日志记录设置位于aws组件的“日志记录”选项卡中:

S32K3X4EVB-Q172-S32K3 AWS Demo Debugging Logging Settings

如果在配置程序中更新了日志记录设置或其他任何内容,则需要生成并重新构建代码,如“构建和运行演示”部分第3步和第4步所示。

当按照“运行演示”部分的指示运行项目时,可以使用S32 Design Studio中内置的调试器(例如,您可以在点击“继续”之前设置断点,或者暂停执行并检查当前执行的代码)。有关调试的详细信息,请参见《S32DS用户指南》(“调试”章节),该指南位于S32 Design Studio安装中:

/S32DS/help/pdf/S32DS_User_Guide.pdf

为设备配置凭证

为设备配置凭证

如何为设备配置凭证在aws_pkcs11_mqtt_s32k344演示中进行了展示。除了标准的MQTT示例外,此示例还使用corePKCS11库为设备配置客户端证书和私钥。corePKCS11库与S32K3硬件安全引擎(HSE)集成。

demo_config.h的配置中添加了一个宏。

#define democonfigPROVISION_DEVICE

必须定义这个宏,才能使用下面定义的客户端证书和私钥配置设备。在运行一次示例后,可以取消宏的定义,因为证书将存储在FLASH中,私钥将存储在HSE中。

配置在src/aws_dev_mode_key_provisioning.c中实现的vDevModeKeyProvisioning()函数中实现。如果定义了democonfigPROVISION_DEVICE宏,则由src/main.c中的InitTask()调用该函数。

或者,可以使用AWS Libraries for S32K3中包含的mbedTLS库,也可以与S32K3硬件安全引擎(HSE)集成。

演示

恩智浦AWS IoT Core支持产品提供了以下S32 Design Studio项目作为示例。

aws_mqtt_s32k344

此示例用于创建与AWS IoT帐户的MQTT连接。该设备将向AWS端点发布MQTT主题消息,并能够从服务器接收发布消息,该设备将用确认消息回复该服务器。

此示例项目基于MQTT_Mutual_Auth演示 创建。

aws_pkcs11_mqtt_s32k344

除了标准的MQTT示例外,此示例还使用corePKCS11为设备配置客户端证书和私钥。

此示例项目基于corePKCS11_MQTT_Mutual_Auth演示 创建。

aws_ota_s32k344

此示例用于展示AWS IoT Core的无线更新功能。

该示例启动OTA代理并侦听来自AWS服务器的传入更新请求。一旦更新开始,一个新的固件镜像将被下载到闪存中,设备将重新启动,加载新镜像。

此示例项目基于OTA 演示创建。

aws_defender_s32k344

此演示创建了一个应用任务,演示如何收集指标,以JSON格式构建device defender报告,并通过与AWS IoT MQTT Broker的安全MQTT连接将其提交给AWS IoT Device Defender服务。该演示包括标准的网络指标以及自定义指标。对于自定义指标,演示包括:

  • 名为"task_numbers"的指标,它是一个FreeRTOS任务ID列表。这个指标的类型是“编号列表”
  • 名为"stack_high_water_mark"的指标,它是演示应用任务的协议栈高水印。这个指标的类型是“编号”

此示例项目基于Device_Defender 演示创建。

aws_shadow_s32k344

此演示展示了如何使用AWS IoT Device Shadow库连接到AWS IoT Device Shadow服务。它使用coreMQTT库与AWS IoT MQTT Broker通过TLS (相互验证)建立MQTT连接,并使用coreJSON库解析器来解析从AWS Shadow服务接收的阴影文档。

演示展示了基本的阴影操作,例如如何更新阴影文档和如何删除阴影文档。该演示还展示了如何向coreMQTT库注册回调函数,以处理从AWS IoT Device Shadow服务发送的shadow/update和/update/delta消息。

此示例项目基于Device_Shadow 演示创建。

aws_gg_demo_s32k344

该项目将运行AWS IoT Core的S32K344 (代表Greengrass设备)连接到运行GoldVIP的S32G2 RDB2 (代表Greengrass Core),并将诊断发布到SiteWise仪表板,展示Greengrass的功能。它需要额外的先决条件,演示说明中提到了这些先决条件。

如需了解有关运行演示的详细信息,请参见示例的description.txt文件。

支持

故障排除

本章介绍了运行AWS IoT Core演示时可能遇到的一些常见问题。

软件无法上传到MCU,电源域LED周期性闪烁

这是由于没有按时喂安全SBC中的看门狗并重置MCU。在这种情况下,请根据此处描述的步骤执行上电过程。

演示执行卡在InitHseMbedTls()

此问题表明HSE FW未正确安装。请再次查看第3.3节“在设备上安装HSE固件”中的步骤。

演示执行卡在InitTask()

该板正在通过DHCP获取IP地址。如果执行被困在以下循环中:

while (!dhcp_supplied_address(&network_interfaces[i]))

可能指示没有为板提供IP地址,如果DHCP服务器不正常运行,就会发生这种情况。

如果不想使用DHCP,可以在Netif选项卡中tcpip_stack组件的“外设”视图中更改设置。

S32K3X4EVB-Q172-S32K3 AWS Peripherals View NETIF Tab

ERROR: TLS Handshake Failed Trying to Connect (错误:TLS握手尝试连接失败) X509——证书验证失败

在串行日志中看到此错误可能表示服务器证书验证失败。一个可能的原因是RTC中当前时间配置错误。可以通过直接修改generate/src/Rtc_Ip_BOARD_InitPeripherals_PBcfg.c文件或更新“外设”视图中的配置并使用“更新代码”生成代码来进行更新:

S32K3X4EVB-Q172-S32K3 AWS Update Code S32K3X4EVB-Q172-S32K3 AWS Peripherals View RTC IPL Configuration

如需了解详细信息,请参见AWS在线文档排除AWS IoT的故障 。