确保基于微控制器的物联网应用的安全性可能会很棘手。安全性始于硬件层次,然后扩展到嵌入式软件。为了成功保障软件安全,开发人员要求底层硬件支持以下等关键特性:
安全启动
存储器保护
加密引擎加速器
真随机数发生器 (TRG)
安全引脚复用
软件隔离
虽然 Arm® Cortex®-M 处理器(如 M0+、M3/4/7 系列)支持其中一些特性,但要打造成功的解决方案可能既困难又耗时。
开发人员可以在硬件层次上运用一种新解决方案,即使用基于 Armv8-M 架构的新型 Cortex-M23/33 系列微控制器。这些处理器在设计时就考虑了安全性,包含许多安全特性,例如前面列出的那些特性,包括用于微控制器的 Arm TrustZone®。通过本文,我们将更加熟悉 Armv8-M 架构,并探索如何利用 TrustZone 来提高嵌入式系统安全性。
Armv8-M 架构简介
关于 Armv8-M 架构,首先要知道的是它是 Arm 的最新微控制器架构,面向低成本、深度嵌入的实时嵌入式系统而推出。该系列中加入了三款新型处理器:M23 是低功耗版本,M33 是高性能版本,最近推出的 M35P 是一款高性能、物理安全(防篡改)处理器(图 1)。
相对于以前的几代架构,Armv8-M 架构改善了性能,值得注意的几项重要改进包括:
指令集增强功能
灵活的断点配置
动态重设中断优先级
增强的跟踪支持
更简单的存储器保护单元 (MPU) 设置
该架构最大和最有意义的改进是能够使用 Arm TrustZone。TrustZone 是该架构的安全扩展,允许开发人员从物理上隔离执行代码与存储区域,如 RAM、代码空间和硬件中的外设。TrustZone 支持将软件分拆到安全和不安全的区域中,然后在安全或非安全的处理器状态下执行。安全状态允许全面访问处理器的存储器和外设,而非安全状态只能访问非安全区域和故意暴露给非安全代码的安全功能(图 2)。
开发人员可以选择哪些闪存和 RAM 位置属于安全状态,哪些属于非安全状态。当非安全代码调用安全功能时,非安全和安全状态之间的切换完全是在硬件中以确定的方式处理,在最坏的情况下,切换时间开销为三个时钟周期。CPU 中有几个寄存器为安全状态和非安全状态所共享,但每个状态还有自己的堆栈指针、故障和控制寄存器。M33 甚至还有一个堆栈限值寄存器,可用于检测堆栈溢出。
值得注意的是,TrustZone 是一个处理器扩展,这意味着由器件是否包含 TrustZone 支持要由处理器制造商决定。既然 TrustZone 是可选的,下面我们就来了解目前可用的几款 Armv8-M 处理器以及它们如何处理 TrustZone。
选择支持 TrustZone 的 Armv8-M 处理器
目前有几款处理器支持 Armv8-M 处理器。有意思的是,这些器件是如此新颖,以至于到 2018 年夏末,只有 Microchip Technology 一家制造商在生产。
其他处理器制造商(如 Nuvoton)已宣布即将推出此类器件。我们预计在未来 12 个月内,Armv8-M 器件数量将大幅增加,包括那些支持 TrustZone 的器件。
Microchip 主要生产两个版本的 Armv8-M 架构,即 SAML10 和 SAML11 系列器件。SAML10 版本不包含 TrustZone,而 SAML11 版本则包含。图 3 显示了目前正在生产并供货的 SAML10 和 SAML11 器件的所有型号。这些型号之间的主要区别在于 RAM、闪存、引脚和外设的有无及多少,这些是我们在选择微控制器时会考虑的因素。
配置总结
SAM L10/L11 器件特定特性
对于希望开始使用 Armv8-M 的开发人员,有两种开发套件可供选择。Microchip SAML10 Xplained 评估板包括 SAM L10E14A 微控制器,后者含有 16 KB 闪存、2 KB 数据闪存、4 KB SRAM,并采用 32 引脚封装。Microchip SAML11 Xplained 评估板包括 SAM L11E16A 微控制器,后者含有 64 KB 闪存、2 KB 数据闪存、16 KB SRAM,同样采用 32 引脚封装。除了处理器不同之外,开发板是相同的。图 4 所示为 Xplained 板的图片。
-
电路设计
+关注
关注
6665文章
2426浏览量
203301 -
物联网
+关注
关注
2903文章
44262浏览量
371222
原文标题:架构在左,安全在右,物联网电路设计该如何选择?
文章出处:【微信号:cirmall,微信公众号:电路设计技能】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论