S32K3X4EVB-T172是一款适用于通用工业和汽车应用的评估和开发板,也是启动该演示的必备要素。
注:此软件包中不含+12V电源和Micro USB线缆。+12V接头为中心正极筒型,外直径5.5mm,内直径2.1mm。此外,所有演示都需要互联网连接,以便进行测试,需要一个以太网媒体转换器。可使用下面的恩智浦产品:RDDRONE-T1ADAPT。
如需获得S32K3X4EVB-T172快速入门信息,请参见S32K3X4AVB-T172汽车通用评估板快速入门。
100BASE-T1双线汽车以太网通过简单的双绞线提供100Mbps的连接,距离可达15米。导线上的线路信号与传统的100BASE-TX (RJ45
)连接不直接兼容,但可以使用物理适配器。其他方面与传统以太网完全相同。下图展示了设置。
Something went wrong! Please try again.
AWS Libraries for S32K3 product有以下依赖项:
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
。
注:版本3.4位于“上一步”选项卡下。
注:在安装S32DS时,需要激活码。可通过电子邮件接收激活码,也可以在“许可密钥”选项卡下的下载页面中找到它。
如需了解更多有关IDE安装的更多信息,请遵循安装指南。
Something went wrong! Please try again.
此外,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
。
注:版本位于“当前”选项卡下。
Something went wrong! Please try again.
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固件的详细信息,并演示其安全功能的常见用例。演示应用可在这里找到(需登录)。
Something went wrong! Please try again.
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
Something went wrong! Please try again.
注: FreeRTOS for S32K3 platforms product是FreeRTOS v10.4.6 kernel version for the S32K3 microcontrollers family的实施方案。
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
。
Something went wrong! Please try again.
注:SW32K3 TCP/IP协议栈是一个软件库,它实现了wIP stack for the S32K3 microcontrollers family的端口。
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
。
Something went wrong! Please try again.
注:AWS Libraries for S32K3 product是FreeRTOS LTS库的恩智浦端口,为S32K344平台添加了AWS Cloud连接。
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
Something went wrong! Please try again.
本节介绍如何安装上一节中下载的软件包。
按照分步安装程序安装S32 Design Studio。
如需了解更多有关IDE安装的更多信息,请遵循安装指南。
注:在安装S32DS时,需要激活码。可通过电子邮件接收激活码,也可以在“许可密钥”选项卡下的下载页面中找到它。
Something went wrong! Please try again.
上面的大部分软件(开发包、RTD、FreeRTOS、TCP/IP、AWS Libraries for S32K3)将以S32 Design Studio的更新站点(.zip档案)的形式下载,可以按照以下步骤安装在S32 Design Studio中:
Something went wrong! Please try again.
HSE固件有两个版本:
AWS Libraries for S32K3使用A/B Swap版本,但如果不需要OTA更新功能,也可以使用Full memory版本。
安装固件的步骤如下所示:
/S32K3_HSE_DemoExamples/Device_Configuration/S32K344_HSE_FW_INSTALL
)AB_SWAP
取代FULL_MEM
,如下所示)如需了解详情,请参见项目中包含的Readme.md文件。S32K3xx安全概述和启动培训(需登录)介绍了S32K3的安全功能。也可以访问我们的安全文件(需要NDA)部分,深入了解安全信息。安全访问权限的注册指南可以在这里找到。
注:如果您想使用HSE FW的Full memory版本,则必须更新以下章节中介绍的演示应用的调试配置,以选择正确的闪烁算法,如下所示:
Something went wrong! Please try again.
如果您目前还没有AWS帐户和用户,请参见在线AWS文档创建AWS账户。要开始,请按以下各章节中介绍的步骤进行操作:
注意“注释”。
请参见在线AWS文档创建AWS IoT资源。按照这些部分中列出的步骤为您的设备配置资源:
注意“注释”。
Something went wrong! Please try again.
AWS Libraries for S32K3包含多个展示AWS IoT Core连接的演示。描述如何导入、构建和运行演示的步骤适用于所有包含的演示,但我们建议从aws_mqtt_s32k344
演示开始,以确认设备能够与AWS IoT Core进行通信。
打开S32 Design Studio,转到File → New S32DS Project From Example,选择aws_mqtt_s32k344
(可以在搜索框中输入aws进行搜索)。然后点击Finish (完成)。
Something went wrong! Please try again.
为了成功构建项目并连接到AWS IoT Core,必须在include/demo_config.h
文件中填写有关AWS IoT端点和在AWS IoT部分的“创建资源”中创建的物联网内容的信息。
一些宏是必选项(它们在文件中被作为参考注释掉了,但应由用户定义):
democonfigCLIENT_IDENTIFIER
必须设为Thing Name (事物名称)。
democonfigMQTT_BROKER_ENDPOINT
必须设为AWS IoT Core端点。
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
文件注释。
Something went wrong! Please try again.
双击aws_mqtt_s32k344.mex
文件,或点击S32 DS右上角的符号(如下所示),打开“外设”视图。
从窗口左上方选择现有的项目(aws_mqtt_s32k344
)。
不同组件的配置可以通过选择其中任何一个来更新(当前示例不需要)。这是aws组件示例:
aws组件允许您配置mbedTLS的密码套件设置。如果默认情况下从IoT Console生成设备证书和私钥,它们将基于RSA,因此必须相应地更新密码套件:
点击“更新代码”按钮(当要生成新的配置文件时为绿色)。
等待代码生成完成,然后继续执行下一步(当右下角的“更新代码”消息消失时)。
Something went wrong! Please try again.
点击S32 DS右上角的符号,再次切换到C/C++视图。
点击“构建”按钮(锤子符号)。
等待构建操作完成,然后再继续下一步。
Something went wrong! Please try again.
连接调试器,通过J428
端口将板连接到互联网,并按照S32K3x4EVB快速入门中的说明为其上电。
点击S32 DS中的“调试”按钮对应的向下箭头,然后选择“调试配置” 选择aws_mqtt_s32k344_Debug_FLASH_PNE
,点击“调试”按钮。
等待调试会话启动,然后点击“继续”按钮继续执行应用。
Something went wrong! Please try again.
在AWS IoT Core console,从“导航”窗口选择“测试”,选择MQTT测试客户端。选择“订阅主题”,输入主题(或使用#通配符查看所有主题),然后选择“订阅”。在收到消息时就会显示出来。
Something went wrong! Please try again.
您可以在与OpenSDA接口有关的虚拟COM上连接串行终端,检查执行进度(可以在设备管理器中查看)。
当示例开始运行时,将打印类似于以下内容的日志:
如果成功执行,除了按照AWS IoT Core中的Verify (验证)消息部分验证AWS IoT Core是否接收到MQTT消息外,您还应该在执行结束时看到以下消息:
日志记录级别可以在“外设”视图中更新,如“构建和运行演示”部分第3步所示进行访问。日志记录设置位于aws组件的“日志记录”选项卡中:
如果在配置程序中更新了日志记录设置或其他任何内容,则需要生成并重新构建代码,如“构建和运行演示”部分第3步和第4步所示。
当按照“运行演示”部分的指示运行项目时,可以使用S32 Design Studio中内置的调试器(例如,您可以在点击“继续”之前设置断点,或者暂停执行并检查当前执行的代码)。有关调试的详细信息,请参见《S32DS用户指南》(“调试”章节),该指南位于S32 Design Studio安装中:
/S32DS/help/pdf/S32DS_User_Guide.pdf
Something went wrong! Please try again.
如何为设备配置凭证在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 IoT帐户的MQTT连接。该设备将向AWS端点发布MQTT主题消息,并能够从服务器接收发布消息,该设备将用确认消息回复该服务器。
此示例项目基于MQTT_Mutual_Auth演示创建。
除了标准的MQTT示例外,此示例还使用corePKCS11库为设备配置客户端证书和私钥。
此示例项目基于corePKCS11_MQTT_Mutual_Auth演示创建。
此示例用于展示AWS IoT Core的无线更新功能。
该示例启动OTA代理并侦听来自AWS服务器的传入更新请求。一旦更新开始,一个新的固件映像将被下载到闪存中,设备将重新启动,加载新映像。
此示例项目基于Ota演示构建。
此演示创建了一个应用任务,演示如何收集指标,以JSON格式构建device defender报告,并通过与AWS IoT MQTT Broker的安全MQTT连接将其提交给AWS IoT device defender服务。该演示包括标准的网络指标以及自定义指标。对于自定义指标,演示包括:
此示例项目基于Device_Defender演示创建。
此演示展示了如何使用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 IoT Core的S32K344 (代表Greengrass设备)连接到运行GoldVIP的S32G2 RDB2 (代表Greengrass Core),并将诊断发布到SiteWise仪表板,展示Greengrass的功能。它需要额外的先决条件,演示说明中提到了这些先决条件。
如需了解有关运行演示的详细信息,请参见示例的description.txt文件。
本章介绍了运行AWS IoT Core演示时可能遇到的一些常见问题。
这是由于没有按时喂安全SBC中的看门狗并重置MCU引起的。在这种情况下,请根据此处描述的步骤执行上电过程。
此问题表明HSE FW未正确安装。请再次查看第3.3节“在设备上安装HSE固件”中的步骤。
该板正在通过DHCP获取IP地址。如果执行被困在以下循环中:
while (!dhcp_supplied_address(&network_interfaces[i]))
可能指示没有为板提供IP地址,如果DHCP服务器不正常运行,就会发生这种情况。
如果不想使用DHCP,可以在Netif选项卡中tcpip_stack组件的“外设”视图中更改设置。
在串行日志中看到此错误可能表示服务器证书验证失败。一个可能的原因是RTC中当前时间配置错误。可以通过直接修改generate/src/Rtc_Ip_BOARD_InitPeripherals_PBcfg.c
文件或更新“外设”视图中的配置并使用“更新代码”生成代码来进行更新:
注: 时间必须设置为当前的UTC时间。
如需了解详细信息,请参见AWS在线文档排除AWS IoT的故障。