CN208351451U - 一种星载嵌入式软件容错启动系统 - Google Patents
一种星载嵌入式软件容错启动系统 Download PDFInfo
- Publication number
- CN208351451U CN208351451U CN201820908823.8U CN201820908823U CN208351451U CN 208351451 U CN208351451 U CN 208351451U CN 201820908823 U CN201820908823 U CN 201820908823U CN 208351451 U CN208351451 U CN 208351451U
- Authority
- CN
- China
- Prior art keywords
- eeprom
- sdram
- edac
- cpu
- boot1
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本专利公开一种星载嵌入式软件容错启动系统,所述系统包括:一片处理器,一片EEPROM和2片SDRAM和看门狗电路,BOOT1(引导)区域和主程序区域备份三份存储于EEPROM中。该方法利用处理器的异常陷阱处理机制,将EDAC和三模冗余两种方法结合起来,确保星载嵌入式系统在空间复杂环境下实现容错启动和运行。在启动阶段,利用处理器的EDAC功能对BOOT1区域进行检查和纠错,当遇到一位翻转时直接纠正;当遇到多位翻转时记录出错地址并进入特定陷阱,在陷阱通过“三取二”仅对翻转位的进行纠正。本专利优点:相对于传统的三模冗余方式,弥补了引导区域无法做“三模”的不足,提高了系统的可靠性;相对于EDAC的纠一检二功能,可适用于多位翻转的情况,适用性更加广泛。
Description
技术领域
本专利涉及卫星星载设备数据存储的可靠性设计,特别涉及一种星载嵌入式软件容错启动系统。
背景技术
星载嵌入式系统在空间复杂环境下,存储器易受到宇宙中单个高能粒子的影响,导致逻辑状态翻转:存储的“0”变为“1”,或者“1”变成“0”,从而导致系统发生故障,这种现象称为“单粒子翻转(SEU)”。
传统的星载嵌入式系统通常包括CPU、PROM、SRAM、时钟、复位及电源等外围电路。其中,PROM作为程序存储器,能够抗单粒子翻转,但其容量小且只能写一次,不便于调试和软件升级维护。传统星载嵌入式系统有点在于可靠性高,但升级维护性较差、成本高。
目前,星载嵌入式系统的存储器中对单粒子翻转造成的影响主要有两种处理方法:一种是依赖于硬件的EDAC功能;另一种是采取三模冗余的方式,将程序存储于内存的三个不同区域,上电复位时进行三取二表决。EDAC纠错的方法受到处理器运算能力和校验码长度的限制,目前只能对每32位中有1位翻转的情况就行纠正,对两位及以上的翻转仅能报错但不能纠正。三模冗余方式进能够实现对每32位中多位翻转的修复,但是BOOT区域无法做三模冗余且在ROM区域冗余操作耗时较长。
发明内容
为克服现有技术的不足,本专利提出一种星载嵌入式软件容错启动系统,提高了星载嵌入式系统的在轨可维护性,降低了成本。
CPU、EEPROM、SDRAM、看门狗电路模块、时钟电路模块;
所述的CPU为32位SPARC V8架构,型号为爱特梅尔公司的AT697F,具有EDAC功能;
所述的EEPROM型号为3D-PLUS公司的3DEE8M08VS8190MSA00T,容量为1M×8bit,最高时钟频率4MHz;
所述的SDRAM型号为3D-PLUS公司的3DSD1G32VS2141SSA75T,容量为32M×32bit,最高时钟频率133MHz;
所述的看门狗电路型号为INTERSIL公司的ISL-705ARHVF,其最长喂狗时间为1.6秒,产生复位电平为低电平,复位信号脉冲宽度200毫秒;
所述的时钟电路型号为MMDC公司的WO33AR-20MHz,频率为20MHz,电压为3.3V;
所述系统中,各模块连接关系如下:程序存储于EEPROM,程序运行于SDRAM,时钟电路为CPU提供时钟信号,看门狗电路为CPU提供复位信号。BOOT1、BOOT2和主程序存储于EEPROM的三个不同区域,各段程序的EDAC校验码烧录至EEPROM的末尾20%区域。CPU将32位数据线和8位EDAC校验码分为两组,数据线低16位放在一片SDRAM中,数据线高16位和EDAC校验码放在另一片SDRAM中。
基于上述系统,本专利还公开一种星载嵌入式软件容错启动方法,包括:
步骤1)在地面上烧录所述系统的程序至EEPROM。将BOOT1区域、BOOT2区域和主程序区域,烧录至EEPROM的三个不同区域。将各个程序的EDAC校验码烧录至EEPROM的末尾20%区域。
步骤2)系统上电完成复位后,CPU从EEPROM中1#BOOT1区域启动。启动过程中,CPU读取32位数据同时读取对应的8位EDAC校验码,进行EDAC校验。
步骤3)启动过程中,当每32位中发生1位翻转时,CPU对翻转位进行纠正,系统正常启动。当每32位中发生多位翻转时,程序进行入不可纠正错误陷阱,并将翻转位的地址存储于CPU的%l1寄存器中。在该陷阱中,根据翻转位的地址(FAILAR),读取2#BOOT1区域和3#BOOT1区域对应地址的数据,进行三取二处理。
步骤4)1#BOOT1区域存放地址为0~A,2#BOOT1区域存放地址为B1~B1+A,3#BOOT1区域存放地址为B2~B2+A。在步骤3中,当程序进入不可纠正错误陷阱时,按照如下方法读取数据:读取FAILAR地址处数据记为X1;读取FAILAR+B1处地址处数据记为X2;读取FAILAR+B2处地址处数据记为X3。三取二时,按照公式Y=(X1&X2)|(X1&X2)|(X1&X2)进行计算,得到纠正后的数据Y。
步骤5)由于CPU为32位,而EEPROM为8位,对EEPROM的读写需设定为8位模式。得到纠正后的数据Y为32位,需按字节写入1#BOOT1区域发生翻转的地址。写入时,先取Y的0~7位写入FAILAR+3地址,再取Y的8~15位写入FAILAR+2地址,再取Y的16~23位写入FAILAR+1地址,最后取Y的24~31位写入FAILAR地址。即完成对1#BOOT1区域的修复。
步骤6)在BOOT1启动段,程序完成对CPU和SDRAM的初始化,以及对三段BOOT2区域校验和的计算,并与EEPROM中烧录的校验和对比,加载三段BOOT2代码区中校验和正确的代码至SDRAM中,跳转至SDRAM中执行BOOT2代码。
步骤7)在BOOT2启动段,程序对三段主程序区域校验和的计算,并与EEPROM中烧录的校验和对比,加载三段主程序区中校验和正确的代码至SDRAM中,跳转至SDRAM中执行主程序代码。
步骤8)在SDRAM中,主程序的初始阶段,对三份BOOT1区域进行“三取二”判断并将正确数据回写至1#BOOT1区域,以完成对步骤3)中描述的每32位中发生1位翻转情况的完善。
在步骤6)和步骤7)中,若BOOT2或主程序的三份代码校验和均不正确则启动代码修复程序,依据三取二原则对EEPROM中的校验和异常的代码区进行修复,修复完成后等待看门狗重新复位系统。
本专利的优点:
(1)本专利的系统采用具有EDAC功能的CPU和EEPROM的架构,能够实现程序的在轨重构,降低了成本,可维护性强;
(2)本专利的方法相对于EDAC的纠一检二功能,可适用于多位翻转的情况,适用性更加广泛;
(3)本专利的方法相对于传统的三模冗余方式,弥补了引导区域无法做“三模”的不足,提高了系统的可靠性。
附图说明
图1是星载嵌入式软件容错启动系统结构图。
图2是EEPROM中内存分配图。
图3是发生多位翻转时BOOT1软件陷阱的处理流程图。
图4是将BOOT2搬运至SDRAM的流程图。
图5是将主程序搬运至SDRAM并进行“三取二”判断的流程图。
具体实施方式
按照本专利所述方法,在某型号卫星红外地球敏感器的信息处理系统上进行了验证。现结合附图对本专利提供的一种星载嵌入式软件容错启动系统及方法进行详细的描述,其为本专利可选的实施例。
系统启动过程如下:
1)启动过程中,当每32位中发生1位翻转时,CPU对翻转位进行纠正,系统正常启动。当每32位中发生多位翻转时,程序进行入不可纠正错误陷阱,并将翻转位的地址存储于CPU的%l1寄存器中。在该陷阱中,根据翻转位的地址(FAILAR),读取2#BOOT1区域和3#BOOT1区域对应地址的数据,进行三取二处理。
2)在步骤1)中,当程序进入不可纠正错误陷阱时,按照如下方法读取数据:读取FAILAR地址处数据记为X1;读取FAILAR+0x76000处地址处数据记为X2;读取FAILAR+0x7A000处地址处数据记为X3。三取二时,按照公式Y=(X1&X2)|(X1&X2)|(X1&X2)进行计算,得到纠正后的数据Y。
3)由于CPU为32位,而EEPROM为8位,对EEPROM的读写需设定为8位模式。得到纠正后的数据Y为32位,需按字节写入1#BOOT1区域发生翻转的地址。如图3所示,写入时,先取Y的0~7位写入FAILAR+3地址,再取Y的8~15位写入FAILAR+2地址,再取Y的16~23位写入FAILAR+1地址,最后取Y的24~31位写入FAILAR地址。即完成对1#BOOT1区域的修复。
4)如图3所示,在BOOT1启动段,程序完成对CPU和SDRAM的初始化,以及对三段BOOT2区域校验和的计算,并与EEPROM中烧录的校验和对比,加载三段BOOT2代码区中校验和正确的代码至SDRAM中,跳转至SDRAM中执行BOOT2代码。
5)如图4所示,在BOOT2启动段,程序对三段主程序区域校验和的计算,并与EEPROM中烧录的校验和对比,加载三段主程序区中校验和正确的代码至SDRAM中,跳转至SDRAM中执行主程序代码。
6)在步骤4)和步骤5)中,若BOOT2或主程序的三份代码校验和均不正确则启动代码修复程序,依据三取二原则对EEPROM中的校验和异常的代码区进行修复,修复完成后等待看门狗复位系统。
7)在主程序的初始阶段,对三份BOOT1区域进行“三取二”判断并将正确数据回写至1#BOOT1区域,以完成对步骤1)中描述的每32位中发生1位翻转情况的完善。
8)步骤8)在SDRAM中,主程序的初始阶段,对三份BOOT1区域进行“三取二”判断并将正确数据回写至1#BOOT1区域,以完成对步骤3)中描述的每32位中发生1位翻转情况的完善。
Claims (1)
1.一种星载嵌入式软件容错启动系统,包括CPU、EEPROM、SDRAM、看门狗电路模块和时钟电路模块,其特征在于:
所述的CPU为32位SPARC V8架构,型号为爱特梅尔公司的AT697F,具有EDAC功能;
所述的EEPROM型号为3D-PLUS公司的3DEE8M08VS8190MSA00T,容量为1M×8bit,最高时钟频率4MHz;
所述的SDRAM型号为3D-PLUS公司的3DSD1G32VS2141SSA75T,容量为32M×32bit,最高时钟频率133MHz;
所述的看门狗电路型号为INTERSIL公司的ISL-705ARHVF,其最长喂狗时间为1.6秒,产生复位电平为低电平,复位信号脉冲宽度200毫秒;
所述的时钟电路型号为MMDC公司的WO33AR-20MHz,频率为20MHz,电压为3.3V;
系统程序存储于EEPROM,程序运行于SDRAM,时钟电路为CPU提供时钟信号,看门狗电路为CPU提供复位信号;BOOT1、BOOT2和主程序存储于EEPROM的三个不同区域,各段程序的EDAC校验码烧录至EEPROM的末尾20%区域;CPU将32位数据线和8位EDAC校验码分为两组,数据线低16位放在一片SDRAM中,数据线高16位和EDAC校验码放在另一片SDRAM中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201820908823.8U CN208351451U (zh) | 2018-06-12 | 2018-06-12 | 一种星载嵌入式软件容错启动系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201820908823.8U CN208351451U (zh) | 2018-06-12 | 2018-06-12 | 一种星载嵌入式软件容错启动系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN208351451U true CN208351451U (zh) | 2019-01-08 |
Family
ID=64883591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201820908823.8U Active CN208351451U (zh) | 2018-06-12 | 2018-06-12 | 一种星载嵌入式软件容错启动系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN208351451U (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569051A (zh) * | 2019-08-02 | 2019-12-13 | 山东航天电子技术研究所 | 一种支持预启动的飞行程序在轨维护与验证方法 |
-
2018
- 2018-06-12 CN CN201820908823.8U patent/CN208351451U/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569051A (zh) * | 2019-08-02 | 2019-12-13 | 山东航天电子技术研究所 | 一种支持预启动的飞行程序在轨维护与验证方法 |
CN110569051B (zh) * | 2019-08-02 | 2023-05-23 | 山东航天电子技术研究所 | 一种支持预启动的飞行程序在轨维护与验证方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108446189A (zh) | 一种星载嵌入式软件容错启动系统及方法 | |
CN102541690B (zh) | 一种智能卡及其恢复数据方法 | |
KR101374455B1 (ko) | 메모리 에러와 리던던시 | |
CN102253865B (zh) | 用于在系统中使用高速缓冲存储器的方法和装置 | |
US10204698B2 (en) | Method to dynamically inject errors in a repairable memory on silicon and a method to validate built-in-self-repair logic | |
CN103123597B (zh) | 微处理器及其所适用的测试方法 | |
CN108062259B (zh) | Mcu内部数据存储ecc处理系统及其处理方法 | |
CN102521062B (zh) | 可全面在线自检测单粒子翻转的软件容错方法 | |
CN109189405B (zh) | 一种验证程序Flash数据一致性的方法及系统 | |
CN103678030A (zh) | 多系统设备启动系统及其方法 | |
US20150371718A1 (en) | Memory built-in self-test for a data processing apparatus | |
CN103984630A (zh) | 一种基于at697处理器的单粒子翻转故障处理方法 | |
CN103930878A (zh) | 用于存储器验证的方法、装置及系统 | |
US20180247699A1 (en) | Post package repair for mapping to a memory failure pattern | |
CN104572326B (zh) | 一种基于回读自重构的SoPC芯片容错方法 | |
CN102968363A (zh) | 用于保护和无损地检查与安全相关的寄存器的装置和方法 | |
CN107015878B (zh) | 用于计算机的系统修复方法及系统 | |
CN111176890A (zh) | 一种星载软件数据存储及异常恢复方法 | |
CN110874245A (zh) | 一种微小卫星星载计算机及其可重构实现方法 | |
CN208351451U (zh) | 一种星载嵌入式软件容错启动系统 | |
CN104484202B (zh) | 适用于8051微控制器的航天嵌入式软件在轨重注方法 | |
Backhausen et al. | Robustness in automotive electronics: An industrial overview of major concerns | |
Polo et al. | Reliability-oriented design of on-board satellite boot software against single event effects | |
CN104750577A (zh) | 面向片上大容量缓冲存储器的任意多位容错方法及装置 | |
US20100185927A1 (en) | Microprocessor System for Controlling at Least Partly Safety-Critical Processes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant |