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

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

“系统正在更新,请勿关闭电源。”我们都看到过这个警告,它通常在电子器件要在闪存安装代码更新时出现。如果更新被中断,闪存将无法正确更新,代码将会损坏,而器件无法运行,即“砖头化” (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配置存储器在编程的过程中断电也一样。

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

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭