当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]如何防止器件“砖头化”,只发出警告就够了吗?“系统正在更新,请勿关闭电源。”我们都看到过这个警告,它通常在电子器件要在闪存安装代码更新时出现。

如何防止器件“砖头化”,只发出警告就够了吗?

“系统正在更新,请勿关闭电源。”我们都看到过这个警告,它通常在电子器件要在闪存安装代码更新时出现。如果更新被中断,闪存将无法正确更新,代码将会损坏,而器件无法运行,即“砖头化” (bricked)。这种大家熟悉的警告存在的原因,是因为使用闪存的大多数半导体器件在编程或擦除操作期间需要一直供电。显然,防止器件“砖头化”是非常重要的。但是,只发出警告就够了吗?有些嵌入式器件甚至都没有用户显示器,因此无法产生警告。在设计中如何才能确保可靠且安全的远程系统更新呢?

嵌入式系统远程升级的重要性

远程升级对连接的嵌入式系统日益重要。通过互联网远程修复漏洞或增加新特性,可以节省大量的维护费用;当部署数千个嵌入式系统时,维护便是一个大问题了。随着嵌入式系统安全问题的不断增加,通过远程安全定向代码升级来修复潜在安全漏洞变得愈发重要。显然,升级必须安全地完成,否则,攻击算法便很容易利用不安全的更新来破坏系统。下面是一个典型系统的示例,有助于更好地了解安全可靠的远程升级设施的要求。

系统示例——控制平面桥

通信或网络机箱内的控制平面桥(Control Plane Bridge),是需要远程更新的常见系统示例。这种子系统汇集了许多低速外设,比如模拟传感器、电源管理模块、风扇、故障记录存储器和利用I2C、 SPI和GPIO接口的状态输出。然后,可以采用速度更快的总线——可能是通信和连网机箱内很常见的子系统接口PCIe,与低速外设直接通信。这种机箱控制子系统能够实施智能汇聚功能,当规定启动点被激活,例如到达最高温度或最低电压水平时,便会“推进”通信。图1所示就是这样一个系统,它是用配备片上微控制器的FPGA (通常称为SoC FPGA) 实现的。

 


图1 经PCIe远程升级的机箱控制平面桥

FPGA和闪存

在上面的例子中,远程更新经由PCIe总线实现,但并未对编程期间可能出现的断电进行保护。让我们看看常见的FPGA实施类型,从而更好地防范闪存远程更新过程中突然断电时可能出现的重大故障。

几乎每个基于FPGA的系统都需要采用某种形式的非易失性存储器来储存配置存储。一般说来,配置存储器位于芯片外或芯片上。基于SRAM的FPGA需要外部闪存,用于上电时的配置。基于闪存的FPGA可以使用嵌在FPGA结构(结构嵌入闪存FPGA)内的配置存储器,或使用基于SRAM的结构,但将一个闪存块放在芯片上(侧面闪存FPGA)。

基于SRAM的FPGA通常使用NOR SPI闪存,因为它消耗的引脚数最少,几家供应商有同样的引脚输出,而且密度高达1 Gb。目前的NOR SPI闪存器件拥有32位地址选择,可扩展成为4GB器件,而且不需要改变指令和控制协议。当这种SPI闪存处于程序或擦除模式 (电荷泵启动) 且电力消失时,会发生什么事情呢?电荷在哪里消失?是否有电路检测到这些闪存的电力故障并将电荷安全地引导到地面?一般说来,正被写入的页面将出现数据损坏。

 


图2 三种FPGA配置图:带外部配置闪存的基于SRAM的FPGA、侧面闪存FPGA和嵌入闪存FPGA

侧面闪存FPGA系统采用较宽的片上数据总线在上电时载入基于SRAM的配置存储。通常,这种方法载入配置比基于SRAM的FPGA要快,因为后者是采用外部闪存来配置器件的。但是,这种方法存在程序或擦除周期期间功率损失的问题。电荷去了哪里?闪存是否被破坏?是否仅写入页面被破坏?整个闪存都存在风险?FPGA是否能够检测被破坏的片上存储器,或者,在上电期间,被破坏的数据是否被载入到配置存储器内?

闪存的破坏是个问题,如何确保远程数据的安全也非常重要。当嵌入式产品可由终端用户访问时,就存在被篡改的可能。为了防止攻击,必须同时采用软件和硬件的安全功能。仅对远程配置数据文件进行加密远远不够。虽然这种软件加密安全有用,但是还必须将解密数据的硬件 (FPGA) 置于安全保护内。当用户访问嵌入式器件时,加密数据文件很容易被提取。利用价格便宜的电磁探针和进行差分功耗分析 (DPA) 即可实现这一点。采用这种方法提取FPGA安全密匙的例子很多。如果FPGA并未内置DPA对抗措施,则任何远程更新都存在安全风险。当用户能够访问嵌入式产品时,如果没有DPA对抗措施,便如同中门大开,没有安全可言。

在嵌入闪存的FPGA中,配置储存在芯片上,并紧密集成在FPGA结构内。例如,在美高森美SmartFusion2和IGLOO2 flash FPGA上,可经由外部通信端口如USB、PCIe或JTAG等进行编程,整个编程过程由片上专用编程接口管理。此外,SmartFusion2和 IGLOO2 FPGA使用了一种称为“在应用中编程”(IAP)的高级编程机制,即便在编程期间有功率损耗的情况下,仍可提供可靠且安全的编程。让我们看看如何采用 IAP机制来实现目前嵌入式系统需要的可靠远程升级的能力。

在基于FPGA的嵌入式系统中实现可靠且安全的远程更新

嵌入闪存的FPGA可以提供更容易支持安全可靠的远程更新所需的关键功能。例如,SmartFusion2拥有实施关键桥接功能及安全和IAP功能需要的所有主流FPGA特点。如图3所示,低速接口可以采用I2C和GPIO连接。高速主机接口PCIe则作为不需要FPGA结构的专用端口。

 


图3 SmartFusion2“在应用中编程”(IAP)支持机箱控制平面桥,以实现安全可靠的远程更新

片上处理器可以利用高速存储子系统(HSMS)访问大型内部闪存来进行代码储存,访问大型内部SRAM来进行数据缓冲,而专用DDR控制器则在有需要时访问其它外部存储器。专用系统控制器提供编程期间使用的安全功能,以及远程更新期间使用的IAP功能。图4详细描述了SmartFusion2 FPGA上可以提供的关键功能。[!--empirenews.page--]

 


图4 美高森美SmartFusion2 SoC FPGA拥有主流特点及可靠的安全和远程更新能力

利用“在应用中编程”来实现安全可靠的升级

SmartFusion2和IGLOO2提供的IAP机制是一种安全可靠地远程更新配置比特流的方法。IAP在FPGA内由专用系统控制器执行,因此并不需要使用任何FPGA结构或其它用户可配置逻辑。IAP功能采用一个外部SPI闪存器件,是一个两步过程。在第一步中,外部SPI闪存器件通过任何可用的接口,比如PCIe、USB、JTAG甚至以太网,用需要的比特流编程。用于SmartFusion2器件编程的所有比特流都进行了加密,以确保它们不会被篡改。

在第二步中,系统控制器通过系统服务请求执行IAP服务。用户向系统控制器提供指针,指向外部SPI闪存内比特流位置的初始地址。IAP系统服务请求也有三个用户选项:认证、编程或验证。认证通常是在FPGA配置存储器编程之前执行的,以验证SPI闪存内的比特流适用于正在编程的器件。在认证期间,器件正常运行。

包含新比特流的外部SPI闪存还包含一个额外的镜像,即用作恢复目的的一个好版本。用户可以在任何时间点使用恢复镜像将FPGA配置为良好状态。恢复镜像可以 “原样”保存,也可在需要时进行更新以便用于关键漏洞的修复。

IAP功能实施期间可以使用程序恢复功能。若编程期间断电,启动编程恢复,系统控制器会以可控的方式将编程FPGA的内部电荷泵禁动。在接下来的供电周期中,在启动FPGA结构之前,系统控制器将检测到器件编程操作已经被中断,它将从外部SPI闪存中的比特流启动编程周期。用户可选择从好的镜像进行更新或从刚刚推送到SPI闪存的远程更新镜像进行更新。当外部比特流被载入到SmartFusion2 FPGA内时,它采用内置的DPA对抗逻辑,以确保没有电磁探针能够将加密匙解密,从而为嵌入式系统提供可信任的安全器件。

与安全加密比特流和比特流验证一起使用,程序恢复可提供目前连接的嵌入式系统需要的安全可靠的远程编程更新机制,即使FPGA配置存储器在编程的过程中断电也一样。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

近日举办的GTC大会把人工智能/机器学习(AI/ML)领域中的算力比拼又带到了一个新的高度,这不只是说明了通用图形处理器(GPGPU)时代的来临,而是包括GPU、FPGA和NPU等一众数据处理加速器时代的来临,就像GPU...

关键字: FPGA AI 图形处理器

虽然嵌入式芯片架构市场上有明确的引领者,但该行业正在快速扩张,预计未来几年将出现许多新的机会。当然,在这样的热门行业中,永远有创新技术和新产品的一席之地。

关键字: 嵌入式 处理器 RISC-V

2024年3月8日 – 专注于引入新品的全球电子元器件和工业自动化产品授权代理商贸泽电子 (Mouser Electronics) 即日起供货Advantech的VEGA-P110 PCIe Intel® Arc A37...

关键字: 嵌入式 GPU卡 边缘AI

当我们提到成本优化型FPGA,往往与简化逻辑资源、有限I/O和较低制造工艺联系在一起。诚然,在成本受限的系统设计中,对于价格、功耗和尺寸的要求更为敏感;但随着一系列创新应用的发展、随着边缘AI的深化,成本优化型FPGA也...

关键字: AMD FPGA Spartan 边缘计算

全球领先的高性能现场可编程门阵列(FPGA)和嵌入式FPGA(eFPGA)半导体知识产权(IP)提供商Achronix Semiconductor公司宣布,该公司参加了由私募股权和风险投资公司Baird Capital举...

关键字: FPGA 智能汽车 eFPGA

全新 FPGA 能为嵌入式视觉、医疗、工业互联、机器人与视频应用提供高数量 I/O、功率效率以及卓越的安全功能

关键字: FPGA 嵌入式视觉 机器人

康佳特采用博世力士乐的 ctrlX OS 操作系统

关键字: 计算机模块 嵌入式 机器人

先楫新一代的仪表显示产品具有高画质、低功耗等特点。

关键字: 嵌入式 GPU 图形处理器

在这篇文章中,小编将为大家带来嵌入式开发的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 嵌入式 嵌入式开发
关闭
关闭