26年9月-ABB
关注中国自动化产业发展的先行者!
2026具身智能·边缘计算赋能新质智造峰会
人工智能+制造融合创新研讨会
2026中国自动化产业年会
2025工业安全大会
OICT公益讲堂
当前位置:首页 >> 案例 >> 案例首页

案例频道

核安全级DCS系统固件网络化更新方案设计
核安全级DCS(Distributed Control System)系统控制着核电站中枢神经系统中的关键环节,针对其固件的网络更新有严格的上游法规和标准的要求。该文通过对上游文件的分析,提炼安全相关要求,基于通用的DCS系统架构,设计一种满足核安全要求的适用于多类型(FPGA、 CPU、MCU)固件的通用网络化更新方案,该方案可通过核电DCS系统现有网络、实现控制站内各模块多类型固件的网络更新。经验证,该方案能在满足核安全要求的情况下、实现系统中各模块固件的远程单独更新和批量更新、并能在更新失败的情况下实现固件的自恢复,进而大幅提升固件更新的效率和降低人因风险。

★ 北京广利核系统工程有限公司 陈乃奎

关键词:固件;固件更新;DCS;核安全级DCS

核电仪控系统是核电站的中枢神经系统,其中的核安全级DCS(Distributed Control System)系统控制着系统中最关键环节。为保证核安全,上游法规和标准对核安全级DCS的固件更新过程提出严格的要求。传统的核安全级DCS系统因数字化程度有限、固件更新范围和频度小,在满足上游法规和标准的情况下,尚可通过人工手动的方式,通过拆卸模块(或板卡)、露出硬件板卡上的专用编程接口,使用专有的工装设备和编程器重新烧录固件,然后再装配复原。但随着数字化程度日益提高,现场固件种类的日益增多(例如,现场设备同时使用FPGA(Field-Programmable Gate Array)、MCU(Micro-Controller Unit)、CPU (Central Processing Unit)芯片,原先的现场更新方案导致需要使用多套工装设备和多个专用编程器,整个更新固件的过程越发繁琐、费时,从而大大增加了相关设备和目标模块的人因损坏风险,进而影响核安全。

目前,美国西屋公司已率先在其核安全级DCS系统Common-Q主控模块的MCU中实现了固件的网络更新功能(其它模块和其它公司的核安全级DCS系统尚不具备该功能),但整个现代核安全级DCS系统中各类模块(或板卡)数量众多、且包含不同种类的固件(包括: FPGA、MCU、CPU),故需要一个满足上游法规和标准要求的系统级的适用于多类固件的网络更新方案。

在满足核安全法规及标准要求的前提下,为简化固件更新活动、提升更新效率、降低人因风险,文中通过梳理上游法规和标准的要求,提出了一种适用于核安全级DCS系统的固件网络更新方案,并搭建最小验证系统完成关键技术的验证。

1   法规和标准要求

核安全级DCS系统在标准体系中属于“核电厂安全重要仪表和控制系统”的范畴, 其上游约束可分为法律、法规、部门规章、指导性文件、技术文件五个层次,五个层次呈现金字塔排列,如图1所示,其中法律位于最顶层,技术文件位于最底层。

17905045331.png

图1 核安全法规体系示意图

在核安全法规体系文件中,与“核电厂安全重要仪表和控制系统”固件更新相关的上游文件见表1。

表1 相关上游文件列表

表1.png

在上表文件中, 法律、法规和部门(部委) 规章层面只给出了大的核安全系统级纵深防御的要求,并不涉及系统内具体固件更新方面;在指导性文件HAD 102/10-2021中, 定义固件为软件的一种, 固件的更新:“只有在受影响的序列或通道处于离线状态,来自维护系统的数据仅用于某一特定目的,且和维护系统的连接符合网络安全程序的情况下,才能进行连接,并应在数据输入后进行验证” [6] ;另外,固件更新需要校验,固件更新失败后系统应处于故障安全状态。在GB/T 13284-2025标准中与固件网络更新相关的要求为独立性方面,通信接口设备需满足电气隔离和功能独立性[7]。在GB/T 13629-2023标准的附件中给出了满足通信独立性的具体设计推荐要求,提出安全级设备与非安全级设备之间通信需设置独立的通信控制器加DPRAM(Dual Port Random Access Memory)的缓冲电路,以避免非安全级数据对安全级功能的影响。在GB/T 40444-2021、GB/T 41142-2021、NB/T 20054-2011标准中给出了核安全级DCS设备的通用系统和软硬件设计要求,并不具体针对固件网络更新功能。

通过对表1上游文件的分析,对固件的网络更新,法规(法律、法规、部门规章、指导性文件)和标准(技术文件)的要求可总结为对网络安全程序控制(网络通道控制、权限控制)、工作模式控制(更新时处于离线工作模式)、功能独立性(功能独立、数据隔离)、通信独立性(电气隔离、数据隔离)、数据校验、输出故障安全的要求。

2   系统设计方案

2.1   系统架构设计

为便于后续的产品应用,方案基于通用的DCS架构进行设计,系统由工程师站和控制站组成,网络部分包含工程师站到控制站的网络,以及控制站内部的固件传输网络。在控制站内部为便于各模块的布置,将各模块分别组合成主控机箱和IO(Input Output)机箱,单个控制站内可包含1个主控机箱和多个IO机箱。主控机箱包含主控模块和多个通信模块A、通信模块C、IO模块;IO机箱包括通信模块B和多个IO模块;主控机箱可以通过多个通信模块A扩展多个IO机箱;也可通过通信模块C连接其它控制站或其它类型的控制系统。具体系统单站架构图如图2所示。

17905045731.png

图2 系统单站架构示意图

在完成固件更新的功能中,图2中的工程师站软件负责固件的选择、拆分、下发,以及下装过程的控制、校验、确认、信息记录与显示。控制站内的各模块负责自身固件的接收和更新,以及下游模块固件的中转。

2.2   核安全通信设计

为满足上游法规和标准的要求,针对法规和标准对网络控制、权限控制、工作模式控制、功能独立性(功能独立、数据隔离)、通信独立性(电气隔离、数据隔离)、数据校验、故障安全的要求,基于以上的系统架构,进一步设计如下:

(1) 工程师站与主控模块之间设计采用光纤通信,以满足通信独立性中的电气隔离要求。

(2)主控模块设计分为模式控制(模式钥匙控制开关)、隔离缓冲和控制功能三部分,如图2所示:

· 模式钥匙控制开关设置在上位机发送数据给主控模块的下行通信链路上,负责网络控制、权限控制、物理链路隔离和工作模式控制,工作模式控制方面实现正常工作模式、离线工作模式的手动切换控制,并在离线工作模式下将系统导向故障安全状态,以满足上游导则关于固件网络更新时的网络通道控制、权限控制、工作模式控制(离线工作模式)和输出导向故障安全的要求。

  • 隔离缓冲部分内部分为下行链路和上行链路两部分,两部分之间相互独立。下行链路为上位机发送数据给主控模块的链路,其拥有独立的处理器和DPRAM数据缓冲器,负责接收工程师站的数据通信及校验、并实现通信的数据缓冲隔离,以满足上游标准的功能独立、数据隔离和数据校验要求;上行链路为主控模块发送数据给上位机的链路,其拥有独立的输出数据通路,以满足上游标准的功能独立、数据隔离要求。

  • 控制功能拥有独立的处理器、负责工作状态控制、接收转发和响应从DPRAM下发的固件, 自身智能器件(可能是FPGA、CPU、MCU或三者的组合)的固件自更新和更新失败后的恢复,以及更新失败后将系统导向故障安全,以满足上游标准的功能独立、数据隔离和故障安全要求。

(3)通信模块A设计为实现单站容量扩展的主控机箱通信中继功能,与IO机箱中的通信模块B搭配使用,负责接收和传递从主控模块下发的固件,以及自身智能器件的固件自更新和更新失败后的恢复。通信模块A对内与主控模块在同一个机箱内通信, 对内通信端口拥有独立的DPRAM数据缓冲器和处理器数据校验;对外与通信模块B的通信拥有独立的处理器、DPRAM数据缓冲器和光通信接口;满足上游标准的固件数据校验、功能独立性(功能独立、数据隔离)和通信独立性(电气隔离、数据隔离)要求。

(4)通信模块B设计为实现单站容量扩展的IO机箱通信中继功能,与主控机箱中的通信模块A搭配使用, 负责接收和传递从通信模块A下发的固件, 以及自身智能器件的固件自更新和更新失败后的恢复。通信模块B对外通信拥有独立的光通信接口、DPRAM数据缓冲器和处理器数据校验;对内与同一机箱内的IO的通信拥有独立的DPRAM数据缓冲器和处理器数据校验;满足上游标准的功能独立性(功能独立、数据隔离)、通信独立性(电气隔离、数据隔离)和数据校验要求。

(5)通信模块C设计为实现本控制站与其它控制站或其它系统之间的通信,在本固件更新系统方案中,负责接收自身智能器件的固件,以及自身固件的自更新和更新失败后的恢复。通信模块C对内与主控模块在同一个机箱内通信, 对内通信拥有独立的DPRAM数据缓冲器和处理器数据校验;通信模块C对外同样拥有独立的光通信接口、DPRAM数据缓冲器和处理器数据校验;满足上游标准的功能独立性(功能独立、数据隔离)、通信独立性(电气隔离、数据隔离)和数据校验要求。

(6)IO模块负责接收自身智能器件的固件,自身固件的自更新和更新失败后的恢复,以及控制IO输出模块按照设计在相应状态下输出故障安全值。  IO模块与主控模块或通信模块B位于同一机箱内且不对外通信, IO模块的对内通信部分同样拥有独立的通信接口、DPRAM数据缓冲器和处理器数据校验,满足上游标准的数据隔离、数据校验和故障安全要求。

通过以上对系统各部分的设计,能满足上游法规和标准对于核安全级DCS系统固件网络更新的安全通信要求。

2.3   固件更新方案设计

固件更新技术可分为被动式和主动式两类,被动式更新是指目标器件被别的智能芯片更新;主动式更新是指更新过程由目标器件自己控制,不依赖其它智能器件。被动式更新需要使用专用的通信链路,并配备额外的专用智能芯片;主动式更新可共用现有的通信链路,不需要额外的智能芯片。考虑到系统级架构和网络需要兼容通用或现有系统架构,故采用固件主动式更新方式。

本主动式更新方案将每个模块中的固件更新电路分为三部分, 一是目标器件自身、二是用于存储固件的非易失性芯片、三是配套的重加载看门狗电路。这三部分可以并入一块集成芯片中(例如部分MCU芯片),也可以分为3个独立的芯片。用于存储固件的非易失性芯片采用SPI(Serial Peripheral Interface)接口的FLASH(Flash Memory)芯片,并将该芯片内部存储空间分为3片区域:其一用做上电引导和状态标记,称为“BOOT”(Bootstrap Program)区;其二用做存储出厂固件,以便更新失败时使用,称为“出厂固件”区;其三用做新固件的存储,称为“更新固件”区。固件更新的硬件方案如图3。

17905046031.png

图3 固件更新硬件方案示意图

为简化设计,将不同类型智能芯片(FPGA、CPU、MCU)的固件更新设计成相同的流程,其固件更新和更新失败后的自恢复流程如图4所示。

17905046291.png

图4 固件更新流程示意图

固件更新过程设计成以下几步:

第1步,目标器件在接收到固件更新启动指令后,先擦除配套FLASH中“BOOT”区的“跳转信息”和/或“状态标志”,然后擦除“更新固件”区的数据[12] ,擦除成功后执行第2步。

第2步,固件数据由目标器件通过网络接口接收,接收成功、校验通过后执行第3步。

第3步, 固件数据由目标器件控制烧写入FLASH芯片的“更新固件”区中,完成回读校验后、更新“BOOT”区的“跳转信息”和/或“状态标志”;然后执行第4步。

第4步,目标器件等待并接收重加载指令,通过看门狗电路触发固件重加载;然后执行第5步。

第5步,目标器件通过FLASH的“BOOT”区引导(该区已在第3步更新),根据“BOOT”区的“跳转信息”和/或“状态标志”转到“更新固件”区完成新固件的加载,固件更新并加载成功。

当固件在更新过程中遇到意外(例如,更新过程中意外断电、设备重启、通信中断、数据校验错等)而导致失败时, 系统需要在意外情况消失后自恢复或自引导到能够重新进行固件更新的状态。固件更新及失败后的自恢复过程设计成以下几步:

第1步,目标器件在接收到固件更新启动指令后,先擦除配套FLASH中“BOOT”区“跳转信息”和/或“状态标志”, 然后擦除“更新固件”区的数据,擦除成功后跳转到第2步;擦除不成功停留在第1步, 等待下一次固件更新启动指令或上电重加载(第4.1步)。

第2步,固件数据由目标器件接收;若接收失败,则废弃本次更新数据,继续等待下次更新或上电重加载(第4.1步);若接收成功,则跳转到第3步。

第3步,固件数据由目标器件控制烧写入自身配套的FLASH芯片“更新固件”区中, 如因意外原因导致写入失败或读取校验失败,则不更新“BOOT”区的“跳转信息”和/或“状态标志”,并等待下次更新;如果系统因意外重启,则直接跳转到第4.1步。

第4步,目标器件如接收到重加载指令,则通过看门狗控制重加载;如被重启(第4.1步, 包括意外重启或重上电重启),则直接触发看门狗发出重加载信号。然后执行第5步。

第5步, 目标器件通过FLASH的“BOOT”区引导,如BOOT区无“跳转信息”引导(在第1步被清除后, 未在第3步更新成功)或“状态标志”不全, 则加载旧固件,完成固件的自恢复过程。

自恢复过程中不需要人为现场干预,自恢复后可重新进行新一次的网络固件更新。

虽然FPGA/CPU/MCU三类芯片的固件更新流程相同,但在固件更新细节上仍有少许差异。对于FPGA来说,外部FLASH芯片的BOOT区同时存储有“跳转信息”和“状态标志”信息,且这部分信息都支持网络更新。对于CPU的外部FLASH芯片, BOOT区和固件区(包含“出厂固件”和“更新固件”区)也可以分开存储到两个FLASH芯片,其中BOOT区不支持网络更新,“更新固件”存储在FLASH的低位地址空间, 以便顺序加载时优先加载更新固件区的固件,当更新固件区的固件加载校验不成功时继续加载出厂固件,已达到故障自恢复的目的。对于MCU,其配套的FLASH和看门狗均可集成于MCU芯片内部,固件的更新状态标志则存储在两个固件之后。

3   系统验证

3.1   最小验证系统搭建

为验证关键技术指标, 参照3.2章节系统单站架构,搭建包含以下模块数量要求的最小验证环境:

(1)安装上位机固件更新组件的笔记本电脑;

(2)主控机箱: 1个MPU模块 + 1个通信模块A + 1个通信模块C + 1个电源模块 + 1块背板 ;

(3)IO机箱: 1个通信模块B + 3个IO模块 + 1个电源模块 + 1块背板。

验证环境与验证功能对应说明:

(1)上位机笔记本电脑:为验证上位机固件更新组件的功能(包括:固件选择、拆分、下发,以及下装过程的控制、校验、确认、信息记录与显示功能);

(2)主控机箱:为验证CPU(MPU模块)、FPGA (通信模块A)、MCU(通信模块C)的单一固件更新功能、性能,以及对应固件更新失败后的自恢复功能;

(3)IO机箱:为验证批量固件(IO模块、通信模块B)更新功能、性能,以及对应固件更新失败后的自恢复功能。

3.2   验证结果

通过以上最小验证系统,分别对上位机固件更新组件功能、单个控制站中单个模块的固件更新、同类模块批量固件同时更新、不同类模块的固件批量同时更新, 以及对应固件更新失败后的自恢复功能进行了验证。验证结果表明,该系统设计方法能完成上述的固件自更新及更新失败后的自恢复功能,且在固件更新的性能上,相比传统使用生产工装进行更新的方式能大幅提升效率并降低人因风险。具体实测技术指标记录见表2。

表2 最小验证系统实测数据表

17905046601.png

4   结论

综上所述,通过对核安全级DCS系统上游法规和标准的分析,梳理出核安全级DCS产品固件更新需要满足的要求,并根据这些要求设计系统性的固件更新方案,在满足上游文件要求的网络控制、权限控制、工作模式控制、功能独立性、通信独立性、数据校验、故障安全的前提下,实现核安全级DCS系统中各硬件智能模块中固件通过网络的单独更新和批量更新功能,以及对应固件更新失败后的自恢复功能,并通过搭建最小验证系统完成关键技术的功能验证和性能对比。验证结果表明,该系统设计方案能够实现系统中各模块固件(包含, FPGA、CPU、MCU)的网络更新和更新失败后的自恢复,更新效率提升至少10倍以上,能通过软件的校验和确认大幅降低人因风险,进而降低核安全仪控设备的隐性风险。

作者简介:

陈乃奎(1974-),男,河南人,工程师,本科,现就职于北京广利核系统工程有限公司,主要从事核电仪控系统的硬件研发工作。

参考文献:

[1] 中华人民共和国核安全法[Z]. 2018.

[2] 中华人民共和国放射性污染防治法[Z]. 2003.

[3] 中华人民共和国民用核设施安全监督管理条例[Z]. 1986.

[4] 国家核安全局. 核动力厂设计安全规定: HAF 102 2016[S]. 2016: 5 - 8.

[5] 国家核安全局. 安全导则核电厂设计总的安全原则: HAD 102/01 1989[S]. 1989 : 3.

[6] 国家核安全局. 核动力厂仪表和控制系统设计: HAD 102/10 2021[S]. 2021 : 39.

[7] 梁雪元, 焦丽玲, 王晓燕, 等. 核电厂安全系统设计准则: GB/T 13284 2025[S]. 2025 : 6.

[8] 焦丽玲, 程建明, 张亚栋, 等. 核电厂安全系统中可编程数字设备的适用准则: GB/T 13629-2023[S]. 2023 : 35 - 36.

[9] 黄伟军, 张龙强, 傅涛, 等. 核电厂安全重要仪表和控制系统总体要求: GB/T 40444-2021[S]. 2021.

[10] 王怀敬, 刘瑞, 梁家琳, 等. 核电厂安全重要数字仪表和控制系统硬件设计要求: GB/T 41142-2021[S]. 2021.

[11] 边华, 刘玥, 王彦君, 等. 核电厂安全重要仪表和控制系统执行A类功能的计算机软件: NB/T 20054-2011[S]. 2011.

[12] 赵冬青, 梁璠, 上官鹏, 储成群. 一种基于SPI_FLASH的FPGA固件更新方法[J]. 电子设计工程, 2020, 28 (16) : 12 - 13.

摘自《自动化博览》2026年8月刊

热点新闻

推荐产品

x
  • 在线反馈
1.我有以下需求:



2.详细的需求:
姓名:
单位:
电话:
邮件: