为什么要更改 DC/DC 固件?
随着 DC/DC 电路的发展,其复杂性和功能性不断增强,出现了一些在部件发货后更新固件可能带来好处的情况:
- 某些客户需求可能超出 PMBus 命令所涵盖的功能范围: 例如,自定义‘事件记录数据’或添加唯一部件标识符
- 基本功能变更: 这种情况可能发生在定制的DC/DC设计中,其中部件被运送到原型系统以支持其规格仍在不断变化的情况下。
- 安装厂商升级程序以增强功能: 例如,改进的电流共享算法可能需要更新。
- 固件验证: 重新安装默认固件可能有助于验证系统完整性
- 已公布的新漏洞修复: 解决部署后发现的问题
一款具有 PMBus 接口和嵌入式固件的现代 DC/DC 转换器.
允许固件访问——面临的挑战
目前,DC/DC转换器通常不设计为允许访问固件,以确保安全、防止设备遭受无效和潜在有害的更改,并保护制造商的知识产权。理论上,现有的PMBus接口可以用于在适当的安全级别下进行固件更改。拟议的PMBus 1.5规范解决了这个问题,该版本定义了增强的安全措施和基于加密的身份验证,以针对特定设备并限制命令写入权限。.
实际上,市面上可以销售一些DC/DC转换器,这些转换器可以通过定制的夹具和装有厂商提供的软件应用程序的PC,经由PMBus总线进行固件更新。这类似于用于配置的图形用户界面(GUI),例如Flex Power Designer。更新过程中,需要通过夹具向DC/DC输入端施加电压,为内部处理器和内存供电。.
更新已安装的DC/DC转换器的固件会带来诸多潜在挑战。任何处理更新的外部处理器通常都由DC/DC输出端供电,因此在上传过程中必须保证输出端不中断。然而,由于只有一个内存空间,转换器在更新期间无法运行,因为上传过程中首先会擦除内存。这样一来,就没有代码来控制DC/DC转换过程,也就没有输出功率。一个可能的解决方案是将新的DC/DC固件代码加载到辅助内存区域,验证通过后再将该区域设为主内存区域。这不仅可以在上传过程中保持输出电压,而且如果上传失败,还可以恢复到已知可用的代码。.
理论上,可以将内存分割成不同大小的分区,其中一个分区仅提供较小的内存空间,用于基本的‘恢复’功能。然而,在实际应用中,转换器可能以并行模式或其他类似方式连接在一起,这就要求所有代码都必须存在,才能保证各部分正确、安全地启动。因此,每个直流/直流转换器很可能需要两个完整的内存空间,从而增加成本和体积。另一种方法是对内存空间进行物理分区,这样在上传过程中就不会擦除基本的电源转换功能,但缺点是该功能无法更新。同样,实现这种方法会带来显著的硬件开销。.
由于在DC/DC转换器的使用寿命期间可能需要多次上传数据,因此一个实际问题是,额外的存储空间需要采用闪存类型,而闪存比常用的一次性可编程存储器(OOP)更昂贵。因此,功能的提升是以设备尺寸、复杂性和制造成本的增加为代价的。.
最后想说的
为直流/直流转换器等组件启用固件远程访问具有诸多潜在优势,例如允许进行更新以保持系统高效运行。然而,必须仔细考虑实施成本和相关的安全风险。此外,还需考虑一些新的法规,例如《欧洲网络弹性法案》(CRA),该法案要求终端设备制造商(其产品包含‘数字组件’)允许软件更新以解决已发现的任何安全漏洞……
随着允许远程访问组件固件的概念不断发展,终端设备和 DC/DC 制造商需要密切合作,以确保在不增加不可持续的额外成本和组件尺寸的情况下,实现更高的功能性和安全性。.