您的当前位置:首页正文

应用于核电厂安全级DCS系统的主控引导系统及方法[发明专利]

来源:步旅网
(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号 CN 111399915 A(43)申请公布日 2020.07.10

(21)申请号 201911377143.3(22)申请日 2019.12.27

(71)申请人 中国核动力研究设计院

地址 610000 四川省成都市双流区长顺大

道一段328号(72)发明人 韩文兴 杨斐 马权 罗琦 

刘国海 钟科 余波 蒋维 

王远兵 吴志强 刘宏春 周继翔 肖鹏 刘明星 严浩 章雨 (74)专利代理机构 成都行之专利代理事务所

(普通合伙) 51220

代理人 张超(51)Int.Cl.

G06F 9/4401(2018.01)G06F 3/06(2006.01)

权利要求书2页 说明书8页 附图3页

(54)发明名称

应用于核电厂安全级DCS系统的主控引导系统及方法(57)摘要

本发明公开了应用于核电厂安全级DCS系统的主控引导系统,包括:内部初始化模块用于对主控模块中主芯片的内部寄存器初始化,并对内部RAM初始化,且完成对内部模块的测试;外部初始化模块用于对主芯片的外围模块进行初始化;安全防范模块将内存进行分区;安全防范模块还用于建立识别标识和下装数据类型之间的映射关系;下载模块用于将工程师站的数据下载至主控模块。本发明还公开了应用于核电厂安全级DCS系统的主控引导方法。本发明应用于核电厂安全级DCS系统的主控引导系统及方法,实现了安全级软件隔离以及对非安全级数据的纵深防御。

CN 111399915 ACN 111399915 A

权 利 要 求 书

1/2页

1.应用于核电厂安全级DCS系统的主控引导系统,其特征在于,包括:安全功能初始化模块、安全防范模块和下载模块;

所述安全功能初始化模块包括内部初始化模块和外部初始化模块;所述内部初始化模块用于对主控模块中主芯片的内部寄存器初始化,并对内部RAM初始化,且完成对内部模块的测试;所述外部初始化模块用于对所述主芯片的外围模块进行初始化;

所述安全防范模块将内存进行分区,且每个内存分区均对应不同的识别标识;所述安全防范模块还用于建立识别标识和下装数据类型之间的映射关系;

所述下载模块用于将工程师站的数据下载至主控模块;当主控模块接收工程师站下发的数据时,所述安全功能初始化模块对主控模块进行初始化;所述下载模块下载工程师站的下装数据;所述安全防范模块将所述下装数据进行准确性与安全性校验并根据所述映射关系将下装数据中的数据分类并存储到对应的内存分区中。

2.根据权利要求1所述的应用于核电厂安全级DCS系统的主控引导系统,其特征在于,所述内部初始化模块对主控模块中主芯片的内部寄存器初始化包括设置系统时钟和存储器、清除异常状态标志;

所述内部初始化模块对内部RAM初始化为初始化所有数据段;

所述内部初始化模块完成对内部模块的测试包括对外部ram和内部ram执行PBIST测试;进行初始化阶段外部功能诊断;执行PSCON自诊断;执行EFUSE自诊断;执行双核比较诊断;使能ECC功能。

3.根据权利要求1所述的应用于核电厂安全级DCS系统的主控引导系统,其特征在于,所述外部初始化模块对所述主芯片的外围模块进行初始化包括:对BSP初始化和显示功能模块初始化;所述BSP初始化包括对RTI、I2C、SCI、ADC、EMIF、GIO、SPI和外部SDRAM的初始化;所述显示功能模块初始化包括对LED模块和LCD模块的初始化。

4.根据权利要求1所述的应用于核电厂安全级DCS系统的主控引导系统,其特征在于,所述安全防范模块在将内存进行分区采用将内部FLASH分区为异常中断调用区、中断向量表区、BOOT程序区、待下装的用户算法区和平台安全功能软件区。

5.根据权利要求1所述的应用于核电厂安全级DCS系统的主控引导系统,其特征在于,所述下装数据包括平台配置、用户算法和用户参数。

6.应用于核电厂安全级DCS系统的主控引导方法,其特征在于,包括以下步骤:当主控模块接收工程师站下发的数据时,对主控模块进行初始化;所述初始化包括内部初始化和外部初始化;所述内部初始化为对主控模块中主芯片的内部寄存器初始化,并对内部RAM初始化,且完成对内部模块的测试;所述外部初始化为对所述主芯片的外围模块进行初始化;

下载工程师站的下装数据,并将所述下装数据进行准确性与安全性校验并根据映射关系将下装数据中的数据分类并存储到对应的内存分区中;

所述映射关系通过以下步骤建立:将内存进行分区,且每个内存分区均对应不同的识别标识;建立识别标识和下装数据类型之间的映射关系。

7.根据权利要求6所述的应用于核电厂安全级DCS系统的主控引导方法,其特征在于,

2

CN 111399915 A

权 利 要 求 书

2/2页

对主控模块中主芯片的内部寄存器初始化包括设置系统时钟和存储器、清除异常状态标志;

对内部RAM初始化为初始化所有数据段;

完成对内部模块的测试包括对外部ram和内部ram执行PBIST测试;进行初始化阶段外部功能诊断;执行PSCON自诊断;执行EFUSE自诊断;执行双核比较诊断;使能ECC功能。

8.根据权利要求6所述的应用于核电厂安全级DCS系统的主控引导方法,其特征在于,对所述主芯片的外围模块进行初始化包括:对BSP初始化和显示功能模块初始化;所述BSP初始化包括对RTI、I2C、SCI、ADC、EMIF、GIO、SPI和外部SDRAM的初始化;所述显示功能模块初始化包括对LED模块和LCD模块的初始化。

9.根据权利要求6所述的应用于核电厂安全级DCS系统的主控引导方法,其特征在于,将内存进行分区采用将内部FLASH分区为异常中断调用区、中断向量表区、BOOT程序区、待下装的用户算法区和平台安全功能软件区。

10.根据权利要求6所述的应用于核电厂安全级DCS系统的主控引导方法,其特征在于,所述下装数据包括平台配置、用户算法和用户参数。

3

CN 111399915 A

说 明 书

应用于核电厂安全级DCS系统的主控引导系统及方法

1/8页

技术领域

[0001]本发明涉及核电厂安全级设备领域,具体涉及应用于核电厂安全级DCS系统的主控引导系统及方法。

背景技术

[0002]一个完整的嵌入式系统软件分为3层,分别是引导加载程序、操作系统内核、用户应用程序。Bootloader(引导软件)是在操作系统内核运行前执行的一段小程序,通过Bootloader对系统板的CPU、SDRAM、Flash、串口等主要部件进行初始化,创建内核需要的一些信息并将这些信息传递给内核,而将系统的软硬件环境带到一个合适的状态,最终调用操作系统内核,实现内核运行的引导。[0003]核电厂安全级DCS系统中,为了降低开发成本、缩短开发周期,一般由工程师站完成逻辑组态,主控模块接收工程师站下发的平台配置、用户逻辑、用户算法数据用于主控软件正常运行,主控软件属于安全级,工程师站属于非安全级,根据安全级软件隔离与纵深防御的设计理念,在主控安全功能软件运行之前,需要对工程师站下发数据进行安全级校验,布置安全环境,随后引导安全功能软件的启动。[0004]同时,根据相关核法规与规范,安全级软件内存必须通过技术手段加以控制,防止数据越界与不安全的读写操作。

发明内容

[0005]本发明所要解决的技术问题是现有技术中从非安全级下发到安全级系统的数据缺乏有效的防控手段,目的在于提供应用于核电厂安全级DCS系统的主控引导系统及方法,解决上述问题。

[0006]本发明通过下述技术方案实现:

[0007]应用于核电厂安全级DCS系统的主控引导系统,包括:安全功能初始化模块、安全防范模块和下载模块;所述安全功能初始化模块包括内部初始化模块和外部初始化模块;所述内部初始化模块用于对主控模块中主芯片的内部寄存器初始化,并对内部RAM初始化,且完成对内部模块的测试;所述外部初始化模块用于对所述主芯片的外围模块进行初始化;所述安全防范模块将内存进行分区,且每个内存分区均对应不同的识别标识;所述安全防范模块还用于建立识别标识和下装数据类型之间的映射关系;所述下载模块用于将工程师站的数据下载至主控模块;当主控模块接收工程师站下发的数据时,所述安全功能初始化模块对主控模块进行初始化;所述下载模块下载工程师站的下装数据;所述安全防范模块将所述下装数据进行准确性与安全性校验并根据所述映射关系将下装数据中的数据分类并存储到对应的内存分区中。[0008]进一步的,所述内部初始化模块对主控模块中主芯片的内部寄存器初始化包括设置系统时钟和存储器、清除异常状态标志;

[0009]所述内部初始化模块对内部RAM初始化为初始化所有数据段;

4

CN 111399915 A[0010]

说 明 书

2/8页

所述内部初始化模块完成对内部模块的测试包括对外部ram和内部ram执行PBIST

测试;进行初始化阶段外部功能诊断;执行PSCON自诊断;执行EFUSE自诊断;执行双核比较诊断;使能ECC功能。[0011]进一步的,所述外部初始化模块对所述主芯片的外围模块进行初始化包括:对BSP初始化和显示功能模块初始化;所述BSP初始化包括对RTI、I2C、SCI、ADC、EMIF、GIO、SPI和外部SDRAM的初始化;所述显示功能模块初始化包括对LED模块和LCD模块的初始化。[0012]进一步的,所述安全防范模块在将内存进行分区采用将内部FLASH分区为异常中断调用区、中断向量表区、BOOT程序区、待下装的用户算法区和平台安全功能软件区。[0013]进一步的,所述下装数据包括平台配置、用户算法和用户参数。[0014]应用于核电厂安全级DCS系统的主控引导方法,包括以下步骤:[0015]当主控模块接收工程师站下发的数据时,对主控模块进行初始化;所述初始化包括内部初始化和外部初始化;所述内部初始化为对主控模块中主芯片的内部寄存器初始化,并对内部RAM初始化,且完成对内部模块的测试;所述外部初始化为对所述主芯片的外围模块进行初始化;

[0016]下载工程师站的下装数据,并将所述下装数据进行准确性与安全性校验并根据映射关系将下装数据中的数据分类并存储到对应的内存分区中;[0017]所述映射关系通过以下步骤建立:[0018]将内存进行分区,且每个内存分区均对应不同的识别标识;[0019]建立识别标识和下装数据类型之间的映射关系。[0020]进一步的,对主控模块中主芯片的内部寄存器初始化包括设置系统时钟和存储器、清除异常状态标志;

[0021]对内部RAM初始化为初始化所有数据段;

[0022]完成对内部模块的测试包括对外部ram和内部ram执行PBIST测试;进行初始化阶段外部功能诊断;执行PSCON自诊断;执行EFUSE自诊断;执行双核比较诊断;使能ECC功能。[0023]进一步的,对所述主芯片的外围模块进行初始化包括:对BSP初始化和显示功能模块初始化;所述BSP初始化包括对RTI、I2C、SCI、ADC、EMIF、GIO、SPI和外部SDRAM的初始化;所述显示功能模块初始化包括对LED模块和LCD模块的初始化。[0024]进一步的,将内存进行分区采用将内部FLASH分区为异常中断调用区、中断向量表区、BOOT程序区、待下装的用户算法区和平台安全功能软件区。[0025]进一步的,所述下装数据包括平台配置、用户算法和用户参数。[0026]本发明与现有技术相比,具有如下的优点和有益效果:

[0027]本发明应用于核电厂安全级DCS系统的主控引导系统及方法,通过设置上述模块和步骤,实现了安全级软件隔离以及对非安全级数据的纵深防御,同时本发明在多个安全级DCS系统项目的主控模块上使用时,对数据的安全操作效果良好,达到了预期设计目的;本发明基于地址安全操作完成工程师站算法软件与配置等的下装,在进入功能软件之前先对下装数据分类进行准确性与安全性校验,完成安全功能软件启动的准备工作,引导软件与安全功能软件之间无法直接进行调用与数据交互,在完成安全级校验后,引导软件直接跳转安全功能软件代码首地址进入安全功能软件,保证了安全功能软件与引导软件间的独立性。

5

CN 111399915 A

说 明 书

3/8页

附图说明

[0028]此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:[0029]图1为本发明功能流程图;

[0030]图2为实施例中与工程师站数据交互流程图;[0031]图3为实施例中回读数据校验流程图。

具体实施方式

[0032]为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。[0033]实施例

[0034]如图1所示,本发明应用于核电厂安全级DCS系统的主控引导系统,包括:安全功能初始化模块、安全防范模块和下载模块;所述安全功能初始化模块包括内部初始化模块和外部初始化模块;所述内部初始化模块用于对主控模块中主芯片的内部寄存器初始化,并对内部RAM初始化,且完成对内部模块的测试;所述外部初始化模块用于对所述主芯片的外围模块进行初始化;所述安全防范模块将内存进行分区,且每个内存分区均对应不同的识别标识;所述安全防范模块还用于建立识别标识和下装数据类型之间的映射关系;所述下载模块用于将工程师站的数据下载至主控模块;当主控模块接收工程师站下发的数据时,所述安全功能初始化模块对主控模块进行初始化;所述下载模块下载工程师站的下装数据;所述安全防范模块将所述下装数据进行准确性与安全性校验并根据所述映射关系将下装数据中的数据分类并存储到对应的内存分区中。[0035]为了进一步的说明本实施例的工作过程,所述内部初始化模块对主控模块中主芯片的内部寄存器初始化包括设置系统时钟和存储器、清除异常状态标志;[0036]所述内部初始化模块对内部RAM初始化为初始化所有数据段;

[0037]所述内部初始化模块完成对内部模块的测试包括对外部ram和内部ram执行PBIST测试;进行初始化阶段外部功能诊断;执行PSCON自诊断;执行EFUSE自诊断;执行双核比较诊断;使能ECC功能。

[0038]为了进一步的说明本实施例的工作过程,所述外部初始化模块对所述主芯片的外围模块进行初始化包括:对BSP初始化和显示功能模块初始化;所述BSP初始化包括对RTI、I2C、SCI、ADC、EMIF、GIO、SPI和外部SDRAM的初始化;所述显示功能模块初始化包括对LED模块和LCD模块的初始化。

[0039]为了进一步的说明本实施例的工作过程,所述安全防范模块在将内存进行分区采用将内部FLASH分区为异常中断调用区、中断向量表区、BOOT程序区、待下装的用户算法区和平台安全功能软件区。

[0040]为了进一步的说明本实施例的工作过程,所述下装数据包括平台配置、用户算法和用户参数。

[0041]应用于核电厂安全级DCS系统的主控引导方法,包括以下步骤:[0042]当主控模块接收工程师站下发的数据时,对主控模块进行初始化;所述初始化包

6

CN 111399915 A

说 明 书

4/8页

括内部初始化和外部初始化;所述内部初始化为对主控模块中主芯片的内部寄存器初始化,并对内部RAM初始化,且完成对内部模块的测试;所述外部初始化为对所述主芯片的外围模块进行初始化;

[0043]下载工程师站的下装数据,并将所述下装数据进行准确性与安全性校验并根据映射关系将下装数据中的数据分类并存储到对应的内存分区中;[0044]所述映射关系通过以下步骤建立:[0045]将内存进行分区,且每个内存分区均对应不同的识别标识;[0046]建立识别标识和下装数据类型之间的映射关系。[0047]为了进一步的说明本实施例的工作过程,对主控模块中主芯片的内部寄存器初始化包括设置系统时钟和存储器、清除异常状态标志;[0048]对内部RAM初始化为初始化所有数据段;

[0049]完成对内部模块的测试包括对外部ram和内部ram执行PBIST测试;进行初始化阶段外部功能诊断;执行PSCON自诊断;执行EFUSE自诊断;执行双核比较诊断;使能ECC功能。[0050]为了进一步的说明本实施例的工作过程,对所述主芯片的外围模块进行初始化包括:对BSP初始化和显示功能模块初始化;所述BSP初始化包括对RTI、I2C、SCI、ADC、EMIF、GIO、SPI和外部SDRAM的初始化;所述显示功能模块初始化包括对LED模块和LCD模块的初始化。

[0051]为了进一步的说明本实施例的工作过程,将内存进行分区采用将内部FLASH分区为异常中断调用区、中断向量表区、BOOT程序区、待下装的用户算法区和平台安全功能软件区。

[0052]为了进一步的说明本实施例的工作过程,所述下装数据包括平台配置、用户算法和用户参数。

[0053]本实施例的的引导适用于核电厂安全级DCS,包含安全功能初始化、下载数据、内存地址管理与数据安全防范、操作系统内核启动等功能。[0054]为了进一步的说明本实施例的工作过程,本实施例主要流程如下:[0055]1.安全功能初始化

[0056]分为内部初始化与外部初始化:

[0057]内部初始化负责初始化ARM内核的内部寄存器,清除异常状态标志,设置系统时钟,存储器等;初始化CPU内部RAM,初始化所有数据段;完成C语言运行所需要的环境;对外部ram和内部ram执行PBIST测试;进行初始化阶段外部功能诊断;执行PSCON自诊断;执行EFUSE自诊断;执行双核比较诊断;使能ECC功能;根据编码规范要求关闭中断等。内部初始化主要在汇编阶段的sys_mpu.asm、sys_core.asm中完成,部分通过sys_startup.c中的_c_int00函数完成。

[0058]外部初始化负责初始化需要使用的所有RM48处理器的外围模块,为程序周期运行做准备。主要包括BSP初始化和显示功能模块初始化,其中BSP初始化包括功能模块有RTI、I2C、SCI、ADC、EMIF、GIO、SPI、外部SDRAM,显示功能模块初始化包括LED模块初始化、LCD模块初始化。在进入引导软件后由bspInit函数完成。[0059]2.内存管理与数据安全防范[0060]引导软件基于地址安全操作完成工程师站算法软件与配置等的下装,对数据存放

7

CN 111399915 A

说 明 书

5/8页

位置进行了严格的定义,在安全功能软件中,将按预定义载入内存分配表,再通过预编译指令#pragma声明内存分区。完成下装后,在进入功能软件之前必须对下装数据分类进行准确性与安全性校验,完成安全功能软件启动的准备工作。[0061]内存管理在flashlnk_normal.cmd中完成,采用MEMORY伪指令分配存储空间,将处理器内部FLASH分为:[0062]BOOT_VECTORS,异常中断调用区;[0063]BOOT_FLASH_API,中断向量表;[0064]BOOT_FLASH0,BOOT程序;[0065]USER_FLASH,待下装的用户算法;[0066]NORMAL_FLASH,平台安全功能软件。[0067]SRAM分为:[0068]1)sector 0:

[0069]FLASH函数与堆使用内存区;[0070]2)sector 1[0071]SRAM1;[0072]3)sector 2[0073]用户算法运行使用,平台状态信息,平台配置等信息;[0074]4)sector 3[0075]预留;[0076]5)extern 1

[0077]外部拓展SRAM1主要为通信收发数据与各种应用层数据;[0078]6)extern 2[0079]预留。

[0080]采用SECTIONS伪指令使程序中各种段载入地址分配表,完成映射关系。[0081]以如上所述方式进行内存地址的安全控制,同时将主控模块内存进行详细划分,并定义内存域名进行管理,每个域存储其对应数据,数据写入内存前,必须明确地址域名,名称正确方能进行数据读写,防止数据越界与不安全的读写操作。[0082]3.下载功能

[0083]提供通过工程师站在线下载的功能,由工程师站生成,包括平台配置、用户算法、用户参数三种数据的下载。采用NASBUS-CP安全下装协议,64位CRC校验。[0084]4.启动操作系统内核:

[0085]最后通过直接运行固定地址的操作系统内核完成启动,关键函数:((void(*)(void))PF_IMAGE_DATA_ADDRESS)();其中PF_IMAGE_DATA_ADDRESS的定义依据内存管理方案。

[0086]与工程师站数据交互,采用的下装流程如图2所示;[0087]同时提供回读数据进行校验的功能,数据交互流程如图3所示:为了进一步的说明本实施例的工作过程,MEM使用定义如下:

8

CN 111399915 A

说 明 书

6/8页

[0088]

9

CN 111399915 A

说 明 书

7/8页

[0089]

[0090][0091][0092]

在安全功能软件中,通过SECTION段按预定义载入内存分配表,形如:PARA_DATA :{}>PARA_SRAM

10

CN 111399915 A[0093]

说 明 书

8/8页

再通过编译指令#pragma声明指定内存分区,形如:

[0094]uint8_tg_userParameter[PARA_MAX_RAM_SIZE];[0095]#pragma DATA_SECTION(g_userParameter,\"PARA_DATA\");[0096]则全局变量数组g_userParameter可用于存储参数数据,且被保护了起来,可对某个声明的分区进行单独的数据校验。[0097]以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

11

CN 111399915 A

说 明 书 附 图

1/3页

图1

12

CN 111399915 A

说 明 书 附 图

2/3页

图2

13

CN 111399915 A

说 明 书 附 图

3/3页

图3

14

因篇幅问题不能全部显示,请点此查看更多更全内容