借助高度集成的 Arm® Cortex® MCU 更有效地满足应用要求

描述

作者:Stephen Evanczuk

投稿人:DigiKey 北美编辑

2024-06-04

消费品、工业、智慧城市和医疗保健等应用领域对智能产品的要求日渐增多,导致开发人员面临诸多挑战。每种应用都对性能、安全性、超低功耗、长距离无线连接和成本提出了独特的要求。由于市面上的微控制器 (MCU) 解决方案的功能不足以满足应用要求,开发人员往往不得不在这些要求上做出妥协。

本文介绍了 [STMicroelectronics]的一组处理器解决方案,这些解决方案可提供合适的性能组合、电池续航时间、安全性和无线连接,这些要素对于成功设计各种应用至关重要。

满足严格的安全要求

STMicroelectronics 的 [STM32H7R/S] Bootflash MCU(图 1)为工业、消费电子、智能城市和医疗保健应用领域的诸多智能产品提供了所需的高性能、图形处理能力、安全性和精简的物料清单 (BOM)。这些 MCU 采用了 600 MHz 的 [Arm®] Cortex®-M7 处理器和双精度浮点单元 (FPU),具有集成的图形处理能力、安全子系统以及一整套外设和连接接口。

mcu图 1:STM32H7R/S bootflash MCU 集成了高性能 Arm Cortex-M7 以及一套完整的外设、功能模块以及专业功能,可满足安全智能产品的需求。(图片来源:STMicroelectronics)

除了处理器的 L1 高速缓存(包括 32 KB 指令高速缓存和 32 KB 数据高速缓存)之外,这些 MCU 还配备了 620 KB 静态随机存取存储器 (SRAM)、64 KB 嵌入式闪存和用于高速访问外部存储器的多个接口。这种做法将 SRAM、嵌入式闪存和外部存储器访问与就地执行 (XiP) 功能相结合,为开发人员实施高性能且安全的嵌入式系统提供了高度的灵活性。

为了确保应用在外部存储器中安全运行,STM32H7S MCU 还集成了三个存储器加密引擎 (MCE),可在外部非易失性或易失性存储器上执行即时加密和解密,并为每个 MCE 提供多达四个不同区域的编程访问控制。STM32H7S MCU 还具有其他基于硬件的安全功能(包括差分功率分析和边信道攻击防护),已通过 SESIP 和 PSA 保证等级 3 级认证。

为确保可靠执行中断服务例程等时间关键型任务,部分 SRAM 被映射到 MCU 的紧密耦合存储器 (TCM) 接口,为关键指令和数据提供零等待状态存储器。为确保系统完整性,这款 MCU 将多种安全功能与嵌入式闪存相结合,可实现安全启动和应用完整性检查,为片上或片外存储器中运行的系统和应用软件提供信任根 (RoT)。当与适当的基于硬件的保护机制相结合时,这种使用嵌入式闪存来储存受信任引导程序的方式,相较于传统 MCU 中所使用的只读存储器 (ROM),具有显著的灵活性。

多种安全启动路径

为了提供对系统安全至关重要的 RoT,安全启动依赖于始终在系统复位后立即运行的受信任不可变代码。该代码可确认只有受信任的软件才能在系统启动序列的下一阶段运行。在使用 STM32H7R/S MCU 来构建受信任系统时,开发人员可以选择多种路径来实现安全启动。他们既可以使用预先建构的 RoT 固件,也可以自行控制启动序列 (图 2)。

mcu图 2:STM32H7R/S MCU 提供多种启动路径以简化开发工作。(图片来源:STMicroelectronics)

系统复位后,所有 STM32H7R/S MCU 都会运行位于受保护系统闪存中的受信任根安全服务 (RSS),开始启动序列。后续的启动序列步骤取决于 MCU 的类型和开发人员选择的启动路径。在每个启动路径中,STM32H7R/S MCU 都会使用隐藏保护级别 (HDPL) 机制来确保每个启动级别的暂时隔离。当启动序列从一个启动级别过渡到下一个启动级别时,HDPL 计数器会递增,同时与上一个启动级别相关联的资源会对当前级别保持隐藏状态。

在整个启动序列中保持 RoT

在基于 STM32H7R 的生产系统的启动路径中,RSS 会在系统复位后立即运行。RSS 运行位于用户闪存中的原始设备制造商 (OEM) 不可变 RoT (iRoT) 固件。由于 HDPL 会在这一级别递增,因此 RSS 会对负责下一启动序列步骤的 OEMiRoT 固件保持隐藏状态。如果应用程序的设计支持可更新的 RoT (uRoT) 固件,则 OEMiRoT 将从外部存储器运行 OEMuRoT 固件。在最后阶段的启动序列中,OEMiRoT(或可选的 OEMuRoT)固件将运行应用代码。HDPL 机制可确保 RSS、OEMiRoT 和可选的 OEMuRoT 都对应用保持隐藏状态。

基于 STM32H7S 的生产系统可配置为遵循与 STM32H7R 系统类似的启动路径,由开发人员完全控制启动过程。借助 STM32H7S MCU,开发人员还可以选择高度安全的路径,调用位于受保护系统闪存中的预先构建 STMicroelectronics iRoT (STiRoT) 固件。

在启用 STiRoT 的启动路径中,位于受保护嵌入式闪存中的例程 (iLoader) 会将下一启动级别的代码加载到内部 SRAM 中。然后,STiRoT 会检查代码的完整性和真实性,再确认是否允许执行代码。对于单阶段启动路径,iLoader 会将应用代码加载到 SRAM 中。对于双阶段启动路径,iLoader 会将 OEMuRoT 从外部闪存加载到 SRAM 中。

一旦加载到内部 SRAM,STiRoT 即会检查应用代码 (或 OEMuRoT 固件) 的完整性和真实性,这样做可以避免在验证外部存储器中的代码期间遭受攻击的风险。完成验证后,OEMuRoT 会在执行应用前对应用代码进行完整性和真实性检查。开发人员可以轻松扩展这种双阶段启动路径,以验证应用代码的更新,甚至 OEMuRoT 固件的更新(图 3)。

mcu图 3:STM32H7S MCU 通过多步骤流程实现安全更新和安全启动,旨在确保代码在流程中每个步骤中的完整性和真实性。(图片来源:STMicroelectronics)

在生产系统正常运行期间,STM32H7R/S MCU 中的嵌入式闪存处于关闭状态,在此状态下配置 RoT 固件并执行有效的启动项。此外,这些 MCU 还提供总共四个 PRODUCT_STATE(产品状态),以支持整个产品生命周期(图 4)。

| | 产品状态 | 选择产品状态 | 说明 |
| -------------------- | --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| 开启 | NVSTATE = OPEN | 此状态提供代码调试功能,允许进行产品开发。使用启动引脚可启动引导程序。 |
| 配置 | NVSTATE = CLOSE
OEM_PROVD=!0xB4
and/or
DBG_AUTH = Not set (!0xB4, !0x51, !0x8A) | 此状态允许进行产品配置(部分或全部)。可在此状态下启动安全固件的安装,或启动引导程序来配置产品。不允许从 SRAM 启动。 |
| 关闭 | NVSTATE = CLOSE
OEM_PROVD=0xB4
DBG_AUTH=0x51 或 0x8A | 此状态表示产品配置已完成。此状态允许对现场维修的调试验证提供支持(请阅读专门的应用说明)。 |
| 锁定 | NVSTATE = CLOSE
OEM_PROVD=0xB4
DBG_AUTH=0xB4 | 此状态表示不允许进行产品配置。产品最终会处于此状态。 |

图 4:STM32H7R/S MCU 处于四种产品状态之一,这四种状态用于支持整个产品生命周期。(图片来源:STMicroelectronics)

开发人员可以通过以下三种方式控制产品状态:

  • 非易失性状态 (NVSTATE):将闪存设置为开启或关闭状态
  • OEM 已配置 (OEM_PROVD):定义安全隐藏保护 (HDP) 区域的稳定性,可确保在该区域中执行的代码在启动后保持隐藏状态
  • 调试验证方法 (DBG_AUTH):定义用于开启设备调试的方法

通过这四种状态,STM32H7R/S MCU 可支持产品生命周期中每个关键阶段(即产品开发、产品制造和现场部署)的安全要求(图 5)。

mcu图 5:随着产品从开发和制造阶段过渡到现场使用阶段,STM32H7R/S MCU 能够保护嵌入式闪存中的敏感代码和数据,同时在必要时提供经过身份验证的调试访问。(图片来源:STMicroelectronics)

实际上,调试身份验证提供了强大的安全功能,旨在应对产品生命周期支持所面临的实际挑战。对于在关闭状态下运行的生产系统,开发人员可以使用身份验证协议,允许安全调试器在受限的调试会话中重新开启访问,而不会影响到 RoT。在完全回归调试中,不能保证代码和数据的安全性。

满足智能产品对增强型用户界面的需求

尽管安全仍然至关重要,但智能产品依赖于日益复杂的图形用户界面 (GUI)。STM32H7R/S MCU 利用集成图形加速器来满足这一要求。这些加速器包括 STM32H7R3/S3 MCU 中的 Chrom-ART 加速器和 STM32H7R7/S7 MCU 中的 NeoChrom 图形处理单元 (GPU)。虽然 2D Chrom-ART 加速器和 2.5D NeoChrom GPU 均支持多种绘图和位图传送操作格式,但 NeoChrom GPU 还支持纹理映射所需的操作(图 6)。

| | 图形功能 | Chrom-ART | NeoChrom GPU |
| ------------------------ | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| 支持的格式 | ARGB8888、ARGB4444、ARGB1555、RGB888、RGB565
A8、A4、L8
AI44、AI88
CLUT(256 个条目)、YUV | RGVA8888、ARGB8888
RGBX8888、XRGB8888
RGB888、RGB565、RGBA55551
A8、A4、A2、A1
压缩 TSc4、TSc6 和 TSc6A |
| 基于命令列表 | 否 | 是 |
| 绘图 | 矩形填充 | 矩形填充
像素、线条、三角形、四边形绘图
8xMSAA 抗混叠 |
| 位图传送 | 复制
Alpha 混合
像素格式转换 | 复制
Alpha 混合、抠色
像素格式转换 |
| 纹理映射 | 否 | 任意角度旋转
缩放
镜像输出
三维透视校正投影
利用双线性采样和点采样进行纹理映射 |

图 6:STM32H7R3/S3 MCU 中的 Chrom-ART 图形加速器和 STM32H7R7/S7 MCU 中的 NeoChrom GPU 可提供智能产品 GUI 所需的图形性能和功能。(图片来源:STMicroelectronics)

在评估和开发方面,STMicroelectronics 为 STM32H7R3 提供了[NUCLEO-H7S3L8]STM32 Nucleo-144 开发板,并为 STM32H7S7 提供了[STM32H7S78-DK]Discovery 套件。

Nucleo-144 板专为进行快速原型开发而设计,包含集成的 ST-LINK 调试器/编程器,并提供 LED、按钮和多个板连接器选项。STM32H7S78-DK Discovery 套件提供 Wi-Fi、多个 LED 和按钮、一个板载 STLINK-V3EC 调试器/编程器以及多个板连接器(包括两个 USB Type-C® 连接器和一个以太网 RJ45 连接器)。

在软件开发方面,STMicroelectronics 为其 [STM32Cube] 生态系统增添了 [STM32Cube MCU]套件。除了硬件抽象层 (HAL) 模块、板级支持包 (BSP) 和低层寄存器级应用编程接口 (API),STM32Cube MCU 套件还提供中间件组件、连接栈和示例代码。在图形开发方面,该公司提供了 [X-CUBE-TOUCHGFX] 图形框架,其中包括:

  • 用于图形应用开发和模拟的 TouchGFX Designer 工具
  • TouchGFX Engine 硬件加速型图形库
  • TouchGFX Generator 生成器,该生成器是 STM32CubeMX 插件,可让开发人员配置和生成 TouchGFX Engine 用于访问底层硬件和操作系统的 TouchGFX 抽象层

确保延长电池续航时间

在许多应用领域中,最小功耗和最长电池续航时间仍然是关键设计动因。STMicroelectronics 推出的 STM32U0 系列 MCU,专为满足众多基础工业、医疗、智能计量和消费性应用对节能和更长电池续航时间的需求而设计。STM32U0 MCU 系列以超低功耗 56 MHz Arm Cortex-M0+ 处理器为核心,有三个不同的子系列,可让开发人员选择其设计所需的最佳 SRAM、闪存和外设配置。

[STM32U031]系列提供最精简的配置,具有 12 KB 的 SRAM、高达 64 KB 的闪存,以及多个定时器、模拟外设和连接选项(图 7)。

mcu图 7:STM32U0 MCU 系列的三个子系列是在 STM32U031 MCU 子系列的基础上不断增加功能。(图片来源:STMicroelectronics)

[STM32U073]子系列扩展了 STM32U031 子系列的功能,增加了一个集成 LCD 控制器、多个额外的连接通道和模拟外设,同时还提供 40 KB 的 SRAM 和高达 256 KB 的闪存。[STM32U083]子系列则是在这些功能的基础上增加了高级加密标准 (AES) 硬件加速器。

凭借高度集成,所有 STM32U0 系列 MCU 都实现了超低功耗性能。这些 MCU 在搭载其内部低压差 (LDO) 稳压器时,仅会消耗 52 μA/MHz 的电流。

开发人员可以从多种低功耗模式(包括三种停止模式)中进行选择,以最大限度地降低电池供电应用的功耗。例如,在功耗最低的停止模式下,STM32U031 MCU 在运行实时时钟 (RTC) 时仅消耗 630 nA,而在不运行实时时钟 (RTC) 时仅消耗 515 nA。在同一停止模式下,STM32U073 和 STM32U083 MCU 在运行 RTC 的情况下仅消耗 825 nA,在不运行 RTC 的情况下仅消耗 695 nA。尽管如此,在 STM32U0 系列的所有三个子系列中,使用 24 MHz 唤醒时钟从这种最低功耗工作模式进入运行模式时,闪存和 SRAM 分别只需 12.0 µs 和 7.67 µs。

尽管这些 MCU 采用超低功耗运行,但得益于其集成的自适应实时 (ART) 存储器加速器,因此即使在处理器频率为 56 MHz 时,也可以在零等待状态下直接从闪存执行。

在开发支持方面,STMicroelectronics 提供基于 STM32U031 的 [NUCLEO-U031R8]评估板、基于 STM32U083 的 [NUCLEO-U083RC]评估板和基于 STM32U083 的 [STM32U083C-DK]Discovery 套件。与 STM32 系列的其他器件一样,该公司的 STM32Cube 生态系统中的 STM32Cube MCU 套件提供 HAL 模块、BSP、低层 API、中间件、连接栈和示例代码。

提供长距离无线连接

高效的设计和 Sub-GHz 长距离无线连接,对于智能城市、农业、远程计量、远程感测和工业系统的物联网 (IoT) 应用至关重要。其中许多应用即使在受到电网或机械等环境干扰的情况下也必须保持可靠的通信。这就必须使用抗干扰的长距离广域网 (LoRaWAN) 连接。

STMicroelectronics 的 [STM32WL5MOCH6TR]模块是经过 LoRaWAN 认证的解决方案,能够在欧洲、亚洲和美洲运行。这种多区域运行能力仰赖于该无线电模块满足 868 MHz 欧洲标准和支持更高功率输出的 915 MHz 北美标准。该模块支持多种调制方案,其线性频率范围为 150 至 960 MHz,能够满足全球各种标准,以及 Sigfox、W-MBUS 和 mioty 等自行研发的通信协议。

STM32WL5MOC 模块采用结合了 Arm Cortex-M0+ 和 Arm Cortex-M4 的双核架构,将其灵活的无线电收发器、高达 64 KB 的 SRAM 和高达 256 KB 的闪存与全面的安全子系统、定时器、模拟外设、连接接口、控制功能以及用于嵌入式开关模式电源 (SMPS) 的无源元器件相结合。此外,[STM32WL5MOCH6STR]版本还包含 STMicroelectronics 的 STSAFE-A100 安全元件(图 8)。

mcu图 8:STM32WL5MOC 模块将其双核架构与灵活的无线电、安全功能、多个功能模块和无源元器件相结合,为 Sub-GHz 连接提供了即用型解决方案。(图片来源:STMicroelectronics)

STM32WL5MOC 模块具有广泛的集成功能,并已通过 LoRaWAN 认证,可为设计人员提供即用型优化硬件解决方案,帮助其实现长距离无线应用。STMicroelectronics 利用一整套资源进一步加快了开发速度,其中包括[B-WL5M-SUBG1]扩展板,该扩展板集成了 STM32WL5MOC 模块、4 MB 闪存、256 KB EEPROM、STMicroelectronics 发微机电系统 (MEMS) 传感器、多个板连接器、LED 和按钮。作为 STM32Cube 生态系统的一部分,[STM32CubeWL MCU]套件可支持 STM32WL 系列电路板进行软件开发。

结语

消费品、工业、医疗保健和其他应用领域的智能产品在安全性、功耗、连接性和设计复杂性方面都有要求,而单一的微控制器很难满足这些要求。STM32 系列 MCU 为设计人员提供了广泛的处理选项,可根据不同的设计要求提供最匹配的解决方案。其电路板和软件可为处理器提供支持并简化开发工作。

审核编辑 黄宇

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

全部0条评论

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

×
20
完善资料,
赚取积分