CN111190772B - 抗空间单粒子翻转的dsp二级启动系统及其方法 - Google Patents
抗空间单粒子翻转的dsp二级启动系统及其方法 Download PDFInfo
- Publication number
- CN111190772B CN111190772B CN202010004472.XA CN202010004472A CN111190772B CN 111190772 B CN111190772 B CN 111190772B CN 202010004472 A CN202010004472 A CN 202010004472A CN 111190772 B CN111190772 B CN 111190772B
- Authority
- CN
- China
- Prior art keywords
- program
- dsp
- flash
- fpga
- flash1
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种抗空间单粒子翻转的DSP二级启动系统及其方法,该系统将三份相同的用户主程序固化至两片独立的外部NOR FLASH存储器中;将监控程序固化至外部PROM存储器中;根据FPGA内部在轨编程寄存器确定进入三取二加载主程序或者进入在轨编程状态;反熔丝FPGA接收RS422指令及上注程序;FPGA外挂SRAM作为上注程序缓存;FPGA接收在轨编程指令后监控程序进入在轨编程模式;FPGA接收FLASH切换指令后控制FLASH1与FLASH2的片选信号切换。本发明相比于现有的对整片FLASH或者DSP最小系统进行三模冗余的二级启动方法,一方面可以减少所占用的印制板面积、显著降低硬件成本,另一方面在一个FLASH芯片中存三份程序,使得用两个FLASH芯片可以得到更低的单粒子翻转失效率。
Description
技术领域
本发明涉及一种抗空间单粒子翻转的DSP二级启动系统及其方法。
背景技术
在空间信号处理领域,DSP由于其强大的浮点运算能力、丰富的外设接口,广泛应用于图像处理、任务规划、雷达系统等产品中。NOR FLASH是DSP应用系统中必不可少的基本配置,一般用来存放用户主程序。在空间环境应用过程中,常选用具备抗单粒子翻转指标的NOR FLASH厂家器件,以降低DSP程序运行失效概率。但在空间辐射环境较恶劣的高轨,或者DSP执行的程序失效会给整个任务带来严重、灾难性影响的情况下,必须采取有效的抗单粒子翻转措施,在极端情况下,也需要通过地面上注程序,以确保DSP程序运行成功。
星上NOR FLASH抗辐射加固设计常使用三片FLASH或者三个DSP最小系统进行三模冗余的设计,但这样严重浪费硬件资源,成本成倍增加,并且三片FLASH需要同时处于工作状态,其工作寿命与未三模冗余之前一样,也不能通过上注程序进行在轨编程。本发明借鉴FLASH芯片三模冗余的思路,使用两片FLASH,每片FLASH芯片分别固化三份相同的用户主程序,第一份主程序从扇区0~扇区9顺序固化,第二份主程序从扇区10~扇区19顺序固化,第三份主程序从扇区20~扇区29顺序固化。通过PROM中监控程序,完成FLASH中三份用户主程序的三取二工作,并加载至DSP处理器中。通过程序三取二降低了DSP启动因单粒子翻转失效的概率,通过两片FLASH切换,可以获得更低的单粒子翻转失效率。此外,本发明支持在轨编程,作为抗空间单粒子翻转的最后一道屏障,进一步提高了DSP二级启动的可靠性,同时也方便用户更改程序。
目前DSP二级启动的抗单粒子翻转的方法主要有:
何正军、朱善安,“TMS320DM642 DSP二级引导程序的设计与实现”,电子器件,2006年第29卷第1期,提出了DSP二级启动方法,将二级启动程序和用户主程序存放在一片NORFLASH中,并通过DSP的GPIO引脚扩展程序寻址空间。但FLASH未进行抗单粒子翻转设计,一旦发生翻转,DSP即启动失败。
毛文安、张海峰,“DSP二级引导程序的设计与实现”,杭州电子科技大学学报,2008年第28卷第1期,提出了DSP二级启动方法,将二级启动程序和用户主程序存放在一片NORFLASH中,一旦发生单粒子翻转,DSP即启动失败。
专利申请号201810372343.9,名称“一种DSP多核阵列二级启动方法和装置”,介绍了一种从EEPROM启动二级引导程序,通过二级引导程序将NOR FLASH程序存储器中的用户主程序加载并运行的方法,但对FLASH的抗单粒子翻转未进行设计,并且该FLASH无备份,一旦失效,整个DSP任务就会失败。
专利申请号201310100873.5,名称“基于三模冗余加固单粒子翻转的存储器、加固方法”,介绍了一种用三片程序存储器进行三模冗余的方法,但未将二级启动程序和用户主程序进行物理隔离,也不支持在轨编程。
专利申请号201120415532.3,名称“一种基于DSP三模冗余及并行处理装置”,介绍了一种将整个DSP最小系统进行三模冗余的方法,该方法虽然起到抗单粒子翻转的作用,但硬件成本过高,在印制板空间有限、经济成本有限的情况下难以实现,且该方法不支持在轨编程。
发明内容
本发明的目的在于提供一种抗空间单粒子翻转的DSP二级启动系统及其方法。
为解决上述问题,本发明提供一种抗空间单粒子翻转的DSP二级启动系统,包括:
DSP芯片;
与所述DSP芯片连接的、用于存放监控程序的PROM;
分别与所述DSP芯片连接的、用于存放用户主程序的两片NOR FLASH,分别为FLASH1和FLASH2,FLASH1和FLASH2存放用户主程序,相互独立,互为备份,每片各固化三份相同的主程序;
分别与所述FLASH1和FLASH2连接的、用于接收指令及上注程序的反熔丝FPGA;
与所述DSP芯片连接的、用于缓存上注程序的SRAM。
进一步的,在上述系统中,所述DSP芯片访问的FLASH1和FLASH2的地址空间为32个扇区,每个扇区可以存放64KB程序,用户主程序不超过640KB,则第一份主程序从扇区0~扇区9顺序固化,第二份主程序从扇区10~扇区19顺序固化,第三份主程序从扇区20~扇区29顺序固化。
进一步的,在上述系统中,所述监控程序每1s读取反熔丝FPGA内部设置的16位在轨编程寄存器PROG_REG,若为F3F4H,则进入在轨编程状态,若为0000H,则进入三取二加载主程序。
进一步的,在上述系统中,所述监控程序进入三取二加载主程序的过程为,按顺序分别从扇区0、扇区10、扇区20开始读取相同偏移地址的程序代码,每次读取16位,并按位进行三取二操作后加载至DSP芯片中。
根据本发明的另一面,还提供一种抗空间单粒子翻转的DSP二级启动方法,采用上述抗空间单粒子翻转的DSP二级启动系统,所述方法包括:
上电后启动监控程序,初始化DSP芯片,然后根据读取FPGA内部的在轨编程寄存器确定进入三取二加载主程序或者进入在轨编程状态;
反熔丝FPGA通过异步RS422接口接收在轨编程指令、上注程序、FLASH切换指令;
反熔丝FPGA外挂SRAM作为上注程序缓存,接收完上注程序后向所述DSP芯片发送中断;
反熔丝FPGA收到在轨编程指令及上注程序后将内部寄存器PROG_REG置十六进制F3F4H,监控程序读取后进入在轨编程状态;
反熔丝FPGA收到FLASH切换指令后,将所述DSP芯片的CE2片选信号重新与FLASH1的片选CE2_0或者FLASH2的片选CE2_1连接,仅当在轨编程状态下CE2同时连接CE2_0与CE2_1。
进一步的,上述方法中,反熔丝FPGA收到FLASH切换指令后,将所述DSP芯片的CE2片选信号重新与FLASH1的片选CE2_0或者FLASH2的片选CE2_1连接,仅当在轨编程状态下CE2同时连接CE2_0与CE2_1,包括:
通过反熔丝FPGA接收FLASH切换指令,若当前状态为CE2_0连接CE2,则切换至CE2_1连接CE2,且CE2_0置为高电平;若当前状态为CE2_1连接CE2,则切换至CE2_0连接CE2,且CE2_1置为高电平。
据本发明的另一面,还提供一种抗空间单粒子翻转的DSP二级启动方法,采用上述抗空间单粒子翻转的DSP二级启动系统,所述方法包括:
①将三份相同的用户主程序分别固化至两片外部NOR FLASH存储器中,DSP芯片访问的FLASH地址空间为32个扇区,每个扇区可以存放64KB程序,用户主程序不超过640KB,则第一份主程序从扇区0~扇区9顺序固化,第二份主程序从扇区10~扇区19顺序固化,第三份主程序从扇区20~扇区29顺序固化,同一片FLASH1或FLASH2中的三份程序起始地址不同,FLASH1和FLASH2中程序存储地址完全相同;
②将监控程序即DSP芯片二级引导程序固化至外部PROM存储器中;
③上电复位后,DSP芯片从PROM中读取监控程序至内部RAM并运行,监控程序每1s读取反熔丝FPGA内部设置的16位在轨编程寄存器PROG_REG,若为F3F4H,则进入在轨编程状态,若为0000H,则进入三取二加载主程序;
其中,监控程序进入三取二加载主程序的过程为:按顺序分别从扇区0、扇区10、扇区20开始读取相同偏移地址的程序代码,每次读取16位,并按位进行三取二操作后加载至DSP处理器中;
④用户主程序三取二加载完毕后,若运行失败,则通过地面发送FLASH切换指令,切换至FLASH1和FLASH2中另一片FLASH进行启动;
⑤若FLASH1和FLASH2的用户主程序均启动失败,则通过地面发送在轨编程指令使反熔丝FPGA将内部在轨编程寄存器PROG_REG置为F3F4H,监控程序读取后进入在轨编程状态,反熔丝FPGA接收上注程序,外挂SRAM作为上注程序缓存,当接收完完整的上注程序后,反熔丝FPGA向DSP芯片发送中断,待监控程序读取;
⑥监控程序从反熔丝FPGA读取上注程序,并写入三份相同的程序至FLASH1和FLASH2中。
据本发明的另一面,还提供一种一种抗空间单粒子翻转的DSP二级启动方法,采用上述抗空间单粒子翻转的DSP二级启动系统,所述方法包括:
步骤S1,将三份相同的用户主程序分别固化至两片外部NOR FLASH存储器中;
步骤S2,将监控程序即DSP芯片二级引导程序固化至外部PROM存储器中。
步骤S3,根据上电复位信号将监控程序从PROM存储器中读取至DSP内部RAM运行,初始化DSP芯片;
步骤S4,通过EMIF总线接口读取反熔丝FPGA内部在轨编程寄存器PROG_REG,从而确定进入主程序搬场运行还是在轨编程状态,若PROG_REG为0000H,则进入步骤S5搬场运行,否则进入步骤S7在轨编程;
步骤S5,按16位读取FLASH1或FLASH2中三份主程序并进行三取二后加载至DSP处理器中,三取二加载过程中,分别从同一片FLASH1或FLASH2的三份程序的起始地址开始读取程序代码,并进行三取二操作,假设从三个地址读取的16位代码分别为CD1[15:0]、CD2[15:0]、CD3[15:0],则三取二后得到的代码CD_TMR[15:0]为:CD_TMR=(CD1&CD2)|(CD2&CD3)|(CD1&CD3),其中,符号“&”为按位与操作,符号“|”为按位或操作;
步骤S6,在DSP芯片中启动并运行用户主程序。
步骤S7,擦除FLASH1和FLASH2,其中,监控程序完成擦除操作,在轨编程状态下,反熔丝FPGA将CE2_0、CE2_1同时连接至CE2,同时擦除FLASH1和FLASH2;
步骤S8,通过EMIF总线接口读取FPGA外挂SRAM中的上注程序并同时写入三份至FLASH1和FLASH2中;
步骤S9,通过EMIF总线接口将PROG_REG清零。
进一步的,在上述系统中,
进一步的,在上述系统中,
进一步的,在上述系统中,
进一步的,在上述系统中,
进一步的,在上述系统中,
根据本发明的另一面,提供一种抗空间单粒子翻转的DSP二级启动方法,包括:
进一步的,在上述方法中,
进一步的,在上述方法中,
进一步的,在上述方法中,
进一步的,在上述系统中,
进一步的,在上述系统中,
进一步的,在上述系统中,
与现有技术相比,本发明公开了一种抗空间单粒子翻转的DSP二级启动系统及其方法,主要包括:(1)启动系统硬件由DSP芯片、存放监控程序的PROM、存放用户主程序的两片NOR FLASH、接收指令及上注程序的反熔丝FPGA、缓存上注程序的SRAM组成;(2)该系统实现三取二二级启动功能、FLASH切换功能、在轨编程功能;(3)将三份相同的用户主程序固化至两片独立的外部NOR FLASH存储器中;(4)将监控程序固化至外部PROM存储器中;(5)上电复位后运行监控程序,根据FPGA内部在轨编程寄存器确定进入三取二加载主程序或者进入在轨编程状态;(6)反熔丝FPGA接收RS422指令及上注程序;(7)FPGA外挂SRAM作为上注程序缓存;(8)FPGA接收在轨编程指令后监控程序进入在轨编程模式;(9)FPGA接收FLASH切换指令后控制FLASH1与FLASH2的片选信号切换。
本发明相比于现有的对整片FLASH或者DSP最小系统进行三模冗余的二级启动方法,一方面可以减少所占用的印制板面积、显著降低硬件成本,另一方面在一个FLASH芯片中存三份程序,使得用两个FLASH芯片可以得到更低的单粒子翻转失效率。同时,本发明支持在轨编程,作为抗空间单粒子翻转的最后一道屏障,进一步提高了DSP二级启动的可靠性。
附图说明
图1是本发明的抗空间单粒子翻转的DSP二级启动系统框图;
图2是本发明的监控程序流程图;
图3是本发明的FPGA接收指令响应图;
图4是本发明中加固后的DSP启动失效率关系图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,本发明提供一种抗空间单粒子翻转的DSP二级启动系统,包括:
DSP芯片;
与所述DSP芯片连接的、用于存放监控程序的PROM;
分别与所述DSP芯片连接的、用于存放用户主程序的两片NOR FLASH,分别为FLASH1和FLASH2,FLASH1和FLASH2存放用户主程序,相互独立,互为备份,每片各固化三份相同的主程序;
分别与所述FLASH1和FLASH2连接的、用于接收指令及上注程序的反熔丝FPGA;
与所述DSP芯片连接的、用于缓存上注程序的SRAM。
在此,实现本发明目的的思路是:按照目前DSP用户程序的规模以及NOR FLASH芯片的集成度,可以将三份相同的
用户主程序固化在一片NOR FLASH中,从而降低三模冗余的成本。FLASH1与FLASH2互为备份,各固化三份用户主程序。将监控程序固化于PROM中,产品上电后,监控程序作为二级启动程序完成DSP初始化,之后通过读取FPGA内部的在轨编程寄存器PROG_REG,若寄存器值为0000H,则进入三取二加载主程序,若寄存器值为F3F4H,则进入在轨编程状态。三份用户程序相同偏移地址同时发生单粒子翻转的概率极低。通过两片FLASH切换,可以获得更低的单粒子翻转失效率。支持在轨编程,在单粒子翻转极端情况下,可通过FPGA接收地面上注程序,将新程序同时写入两片FLASH中,并且三模冗余,从而极大提高了DSP二级启动的抗单粒子翻转能力。本发明适用于对DSP程序抗单粒子翻转要求极高,或者有在轨编程需求的任务,主要应用于航天、国防领域。本发明通过用户主程序三取二设计,FLASH切换,以及在轨编程,达到用户程序高可靠启动运行的目的。
本发明的抗空间单粒子翻转的DSP二级启动系统一实施例中,所述DSP芯片访问的FLASH1和FLASH2的地址空间为32个扇区,每个扇区可以存放64KB程序,用户主程序不超过640KB,则第一份主程序从扇区0~扇区9顺序固化,第二份主程序从扇区10~扇区19顺序固化,第三份主程序从扇区20~扇区29顺序固化。
本发明的抗空间单粒子翻转的DSP二级启动系统一实施例中,所述监控程序每1s读取反熔丝FPGA内部设置的16位在轨编程寄存器PROG_REG(上电初态为0000H),若为F3F4H,则进入在轨编程状态,若为0000H,则进入三取二加载主程序。
本发明的抗空间单粒子翻转的DSP二级启动系统一实施例中,所述监控程序进入三取二加载主程序的过程为,按顺序分别从扇区0、扇区10、扇区20开始读取相同偏移地址的程序代码,每次读取16位,并按位进行三取二操作后加载至DSP芯片中。
在此,三份相同的主程序同一偏移地址同时发生单粒子翻转的概率极低,从而提高了DSP芯片启动的抗单粒子翻转能力。
如图2所示,本发明提供一种抗空间单粒子翻转的DSP二级启动方法,采用上述抗空间单粒子翻转的DSP二级启动系统,所述方法包括:
上电后启动监控程序,初始化DSP芯片,然后根据读取FPGA内部的在轨编程寄存器确定进入三取二加载主程序或者进入在轨编程状态;
反熔丝FPGA通过异步RS422接口接收在轨编程指令、上注程序、FLASH切换指令;
反熔丝FPGA外挂SRAM作为上注程序缓存,接收完上注程序后向所述DSP芯片发送中断;
反熔丝FPGA收到在轨编程指令及上注程序后将内部寄存器PROG_REG置十六进制F3F4H,监控程序读取后进入在轨编程状态;
反熔丝FPGA收到FLASH切换指令后,将所述DSP芯片的CE2片选信号重新与FLASH1的片选CE2_0或者FLASH2的片选CE2_1连接,仅当在轨编程状态下CE2同时连接CE2_0与CE2_1。
在此,本发明软件部分为C代码,使用的平台为TMS320C6701 DSP芯片。
通过反熔丝FPGA接收在轨编程指令,将内部在轨编程寄存器PROG_REG置为F3F4H,待监控程序读取;FPGA接收上注程序,外挂SRAM作为上注程序缓存,当完整的上注程序接收完毕后,FPGA向DSP发送中断,待监控程序读取上注程序。仅当在轨编程模式下,FPGA将CE2_0、CE2_1同时连接至CE2,即两片FLASH同时完成在轨编程。
本发明提供一种抗空间单粒子翻转的DSP二级启动方法一实施例中,反熔丝FPGA收到FLASH切换指令后,将所述DSP芯片的CE2片选信号重新与FLASH1的片选CE2_0或者FLASH2的片选CE2_1连接,仅当在轨编程状态下CE2同时连接CE2_0与CE2_1,包括:
通过反熔丝FPGA接收FLASH切换指令,若当前状态为CE2_0连接CE2,则切换至CE2_1连接CE2,且CE2_0置为高电平(无效);若当前状态为CE2_1连接CE2,则切换至CE2_0连接CE2,且CE2_1置为高电平(无效)。
在此,通过两片FLASH切换方法,可以获得更低的单粒子翻转失效率。
本发明的一种抗空间单粒子翻转的DSP二级启动方法包括如下步骤:
①将三份相同的用户主程序分别固化至两片外部NOR FLASH存储器中,DSP可以访问的FLASH地址空间为32个扇区,每个扇区可以存放64KB程序,用户主程序不超过640KB,则第一份主程序从扇区0~扇区9顺序固化,第二份主程序从扇区10~扇区19顺序固化,第三份主程序从扇区20~扇区29顺序固化。同一片FLASH中的三份程序起始地址不同,两片FLASH程序存储地址完全相同;
②将监控程序即DSP二级引导程序固化至外部PROM存储器中;
③上电复位后,DSP从PROM存储器中读取监控程序至内部RAM并运行,监控程序每1s读取反熔丝FPGA内部设置的16位在轨编程寄存器PROG_REG(上电初态为0000H),若为F3F4H,则进入在轨编程状态,若为0000H,则进入三取二加载主程序;
监控程序进入三取二加载主程序的过程为:按顺序分别从扇区0、扇区10、扇区20开始读取相同偏移地址的程序代码,每次读取16位,并按位进行三取二操作后加载至DSP处理器中;
④用户主程序三取二加载完毕后,若运行失败,则通过地面发送FLASH切换指令,切换至另一片FLASH进行启动;
⑤若两片FLASH的用户主程序均启动失败,则通过地面发送在轨编程指令使FPGA将内部在轨编程寄存器PROG_REG置为F3F4H,监控程序读取后进入在轨编程状态。FPGA接收上注程序,外挂SRAM作为上注程序缓存,当接收完完整的上注程序后,FPGA向DSP发送中断,待监控程序读取。
⑥监控程序从FPGA读取上注程序,并写入三份相同的程序至两片FLASH中。
下面结合附图2说明本发明的实施方式:
步骤S1,将三份相同的用户主程序分别固化至两片外部NOR FLASH存储器中。
步骤S2,将监控程序即DSP二级引导程序固化至外部PROM存储器中。
步骤S3,根据上电复位信号将监控程序从PROM存储器中读取至DSP内部RAM运行,初始化DSP。
步骤S4,通过EMIF总线接口读取FPGA内部在轨编程寄存器PROG_REG,从而确定进入主程序搬场运行还是在轨编程状态。若PROG_REG为0000H,则进入步骤S5搬场运行,否则进入步骤S7在轨编程。
步骤S5,按16位读取FLASH中三份主程序并进行三取二后加载至DSP处理器中。三取二加载过程中,分别从同一片FLASH的三份程序的起始地址开始读取程序代码,并进行三取二操作。假设从三个地址读取的16位代码分别为CD1[15:0]、CD2[15:0]、CD3[15:0],则三取二后得到的代码CD_TMR[15:0]为:CD_TMR=(CD1&CD2)|(CD2&CD3)|(CD1&CD3)。其中,符号“&”为按位与操作,符号“|”为按位或操作。
步骤S6,在DSP处理器中启动并运行用户主程序。
步骤S7,擦除两片NOR FLASH。监控程序完成擦除操作,在轨编程状态下,FPGA将CE2_0、CE2_1同时连接至CE2,可以同时擦除两片FLASH。
步骤S8,通过EMIF总线接口读取FPGA外挂SRAM中的上注程序并同时写入三份至两片NOR FLASH中。
步骤S9,通过EMIF总线接口将PROG_REG清零。
下面结合附图3说明本发明FLASH切换的实施方式。
反熔丝FPGA收到FLASH切换指令后,若当前状态为CE2_0连接CE2,则切换至CE2_1连接CE2,且CE2_0置为高电平(无效);若当前状态为CE2_1连接CE2,则切换至CE2_0连接CE2,且CE2_1置为高电平(无效)。仅当在轨编程状态下CE2同时连接CE2_0与CE2_1。
三取二、FLASH切换、在轨编程三项措施对提高DSP二级启动的抗单粒子翻转能力的预估如下(假设一份用户主程序的大小为512KB):
用户主程序因为采用了三取二、FLASH切换、在轨编程这三项加固措施后,加固后的单粒子翻转率和加固前的单粒子翻转率存在一个比例值f,定义为单粒子翻转失效比率。
Rr=fR0
式中,Rr——加固后的单粒子翻转率;
R0——加固前的单粒子翻转率;
f——单粒子翻转失效比率。
用户主程序采用三取二、FLASH切换、在轨编程的加固措施后,使得f不是一个单一数值,而是总的加固水平的综合体现,加固后的DSP程序启动失效率关系图如附图4所示。
三取二设计之后,当FLASH一个地址中的某位数据发生翻转不会导致用户主程序错误,此时采用美宇航局经验公式,计算两位错误的翻转概率:
平均失效前时间MTTF=2/B×(B-1)×T×W×λ2
其中B:一个字中的BIT数;
λ:err/bit.day;
T:一天内访问一个周期的时间;
W:程序中字的数量此例中:
B=16;
λ即单粒子翻转率R0;
T=(512×1024×8/16/1MHz×10E-6/3600)/24;
W=(512×1024/2)×3;
上述计算得到的Error rate是三份程序中任意两位翻转的概率,而三取二设计失效仅当两份程序的同一位置的比特发生翻转,三份程序同一位置均发生翻转的概率相对于两份程序同一位置发生翻转的概率可忽略不计。因此:
通过芯片手册、芯片敏感性甄别、辐照试验等多种手段获取芯片级R0的参数,采用“低轨道500km,52°”的轨道参数,计算得R0=3.89E-4/bit天,因此:
f三取二=2.05E-4·3.89E-4=7.97E-8。
FLASH切换后仍失效的比率就是两片FLASH三取二后均失效的比率,即f三取二·f三取二。因此,三取二、且FLASH切换后的平均失效前时间MTTF2=1/(f三取二·f三取二)=1.57E14days。
NOR FLASH擦除寿命按1万次计算,假设在轨寿命要求为八年,则平均在轨编程周期折算为T在轨编程=(365×8)/10000=0.292days,因此,f在轨编程=T在轨编程/天=0.292。
因此加固后,单粒子翻转失效比率f=f三取二·fFLASH切换·f在轨编程=f三取二·f三取二·f在轨编程=1.85E-15。
本发明与现有技术相比较,具有如下优点:
第一,由于本发明使用两片独立的FLASH分别进行三模冗余,单片FLASH的三份程序中同一偏移地址同时发生单粒子翻转的概率较低,两片FLASH三取二后均发生单粒子失效的概率极低,从而大大提高了DSP程序启动的抗单粒子翻转能力。
第二,由于本发明支持在轨编程,通过反熔丝FPGA接收上注程序,重新擦写FLASH,一方面作为抗单粒子翻转的最后一道措施,另一方面也方便用户更改程序。
第三,两片FLASH仅在在轨编程模式下同时进行擦写,其余时间不同时工作,从系统层面延长了FLASH芯片的寿命,提高了系统的可靠性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (7)
1.一种抗空间单粒子翻转的DSP二级启动系统,其特征在于,包括:
DSP芯片;
与所述DSP芯片连接的、用于存放监控程序的PROM;
分别与所述DSP芯片连接的、用于存放用户主程序的两片NOR FLASH,分别为FLASH1和FLASH2,FLASH1和FLASH2存放用户主程序,相互独立,互为备份,每片各固化三份相同的主程序;
分别与所述FLASH1和FLASH2连接的、用于接收指令及上注程序的反熔丝FPGA;
与所述DSP芯片连接的、用于缓存上注程序的SRAM;
所述监控程序每1s读取反熔丝FPGA内部设置的16位在轨编程寄存器PROG_REG,若为F3F4H,则进入在轨编程状态,若为0000H,则进入三取二加载主程序。
2.如权利要求1所述的抗空间单粒子翻转的DSP二级启动系统,其特征在于,所述 DSP芯片访问的FLASH1和FLASH2的地址空间为32个扇区,每个扇区可以存放64KB程序,用户主程序不超过640KB,则第一份主程序从扇区0~扇区9顺序固化,第二份主程序从扇区10~扇区19顺序固化,第三份主程序从扇区20~扇区29顺序固化。
3.如权利要求1所述的抗空间单粒子翻转的DSP二级启动系统,其特征在于,所述监控程序进入三取二加载主程序的过程为,按顺序分别从扇区0、扇区10、扇区20开始读取相同偏移地址的程序代码,每次读取16位,并按位进行三取二操作后加载至DSP芯片中。
4.一种抗空间单粒子翻转的DSP二级启动方法,其特征在于,采用如权利要求1至3任一项所述的抗空间单粒子翻转的DSP二级启动系统,所述方法包括:
上电后启动监控程序,初始化DSP芯片,然后根据读取FPGA内部的在轨编程寄存器确定进入三取二加载主程序或者进入在轨编程状态;
反熔丝FPGA通过异步RS422接口接收在轨编程指令、上注程序、FLASH切换指令;
反熔丝FPGA外挂SRAM作为上注程序缓存,接收完上注程序后向所述DSP芯片发送中断;
反熔丝FPGA收到在轨编程指令及上注程序后将内部寄存器PROG_REG置十六进制F3F4H,监控程序读取后进入在轨编程状态;
反熔丝FPGA收到FLASH切换指令后,将所述DSP芯片的CE2片选信号重新与FLASH1的片选CE2_0或者FLASH2的片选CE2_1连接,仅当在轨编程状态下CE2同时连接CE2_0与CE2_1。
5.如权利要求4所述的抗空间单粒子翻转的DSP二级启动方法,其特征在于,反熔丝FPGA收到FLASH切换指令后,将所述DSP芯片的CE2片选信号重新与FLASH1的片选CE2_0或者FLASH2的片选CE2_1连接,仅当在轨编程状态下CE2同时连接CE2_0与CE2_1,包括:
通过反熔丝FPGA接收FLASH切换指令,若当前状态为CE2_0连接CE2,则切换至CE2_1连接CE2,且CE2_0置为高电平;若当前状态为CE2_1连接CE2,则切换至CE2_0连接CE2,且CE2_1置为高电平。
6.一种抗空间单粒子翻转的DSP二级启动方法,其特征在于,采用如权利要求1至3任一项所述的抗空间单粒子翻转的DSP二级启动系统,所述方法包括:
①将三份相同的用户主程序分别固化至两片外部NOR FLASH存储器中,DSP芯片访问的FLASH地址空间为32个扇区,每个扇区可以存放64KB程序,用户主程序不超过640KB,则第一份主程序从扇区0~扇区9顺序固化,第二份主程序从扇区10~扇区19顺序固化,第三份主程序从扇区20~扇区29顺序固化,同一片FLASH1或FLASH2中的三份程序起始地址不同,FLASH1和FLASH2中程序存储地址完全相同;
②将监控程序即DSP芯片二级引导程序固化至外部PROM存储器中;
③上电复位后,DSP芯片从PROM中读取监控程序至内部RAM并运行,监控程序每1s读取反熔丝FPGA内部设置的16位在轨编程寄存器PROG_REG,若为F3F4H,则进入在轨编程状态,若为0000H,则进入三取二加载主程序;
其中,监控程序进入三取二加载主程序的过程为:按顺序分别从扇区0、扇区10、扇区20开始读取相同偏移地址的程序代码,每次读取16位,并按位进行三取二操作后加载至DSP处理器中;
④用户主程序三取二加载完毕后,若运行失败,则通过地面发送FLASH切换指令,切换至FLASH1和FLASH2中另一片FLASH进行启动;
⑤若FLASH1和FLASH2的用户主程序均启动失败,则通过地面发送在轨编程指令使反熔丝FPGA将内部在轨编程寄存器PROG_REG置为F3F4H,监控程序读取后进入在轨编程状态,反熔丝FPGA接收上注程序,外挂SRAM作为上注程序缓存,当接收完完整的上注程序后,反熔丝FPGA向DSP芯片发送中断,待监控程序读取;
⑥监控程序从反熔丝FPGA读取上注程序,并写入三份相同的程序至FLASH1和FLASH2中。
7.一种抗空间单粒子翻转的DSP二级启动方法,其特征在于,采用如权利要求1至3任一项所述的抗空间单粒子翻转的DSP二级启动系统,所述方法包括:
步骤S1,将三份相同的用户主程序分别固化至两片外部NOR FLASH存储器中;
步骤S2,将监控程序即DSP芯片二级引导程序固化至外部PROM存储器中;
步骤S3,根据上电复位信号将监控程序从PROM存储器中读取至DSP内部RAM运行,初始化DSP芯片;
步骤S4,通过EMIF总线接口读取反熔丝FPGA内部在轨编程寄存器PROG_REG,从而确定进入主程序搬场运行还是在轨编程状态,若PROG_REG为0000H,则进入步骤S5搬场运行,否则进入步骤S7在轨编程;
步骤S5,按16位读取FLASH1或FLASH2中三份主程序并进行三取二后加载至DSP处理器中,三取二加载过程中,分别从同一片FLASH1或FLASH2的三份程序的起始地址开始读取程序代码,并进行三取二操作,假设从三个地址读取的16位代码分别为CD1[15:0]、CD2[15:0]、CD3[15:0],则三取二后得到的代码CD_TMR[15:0]为:CD_TMR= (CD1 & CD2) | (CD2 &CD3) | (CD1 & CD3),其中,符号“&”为按位与操作,符号“|”为按位或操作;
步骤S6,在DSP芯片中启动并运行用户主程序;
步骤S7,擦除FLASH1和FLASH2,其中,监控程序完成擦除操作,在轨编程状态下,反熔丝FPGA将CE2_0、CE2_1同时连接至CE2,同时擦除FLASH1和FLASH2;
步骤S8,通过EMIF总线接口读取FPGA外挂SRAM中的上注程序并同时写入三份至FLASH1和FLASH2中;
步骤S9,通过EMIF总线接口将PROG_REG清零。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010004472.XA CN111190772B (zh) | 2020-01-02 | 2020-01-02 | 抗空间单粒子翻转的dsp二级启动系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010004472.XA CN111190772B (zh) | 2020-01-02 | 2020-01-02 | 抗空间单粒子翻转的dsp二级启动系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111190772A CN111190772A (zh) | 2020-05-22 |
CN111190772B true CN111190772B (zh) | 2023-03-31 |
Family
ID=70705955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010004472.XA Active CN111190772B (zh) | 2020-01-02 | 2020-01-02 | 抗空间单粒子翻转的dsp二级启动系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111190772B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930393B (zh) * | 2020-07-16 | 2023-07-07 | 上海无线电设备研究所 | 一种用于星载软件的在轨编程系统、方法及电路 |
CN112015584B (zh) * | 2020-10-22 | 2021-01-15 | 中国人民解放军国防科技大学 | 一种多手段融合的星载接收机抗单粒子方法 |
CN114091038A (zh) * | 2021-11-30 | 2022-02-25 | 中国科学院长春光学精密机械与物理研究所 | 一种基于dsp6701的高可靠性程序引导、回写方法 |
CN117453279B (zh) * | 2023-12-26 | 2024-03-19 | 中国人民解放军国防科技大学 | 一种适用于太空强辐射环境下的星载设备硬件架构 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102354294A (zh) * | 2011-08-23 | 2012-02-15 | 西安空间无线电技术研究所 | 一种星载dsp芯片的空间单粒子翻转检测方法 |
CN108052355A (zh) * | 2017-11-22 | 2018-05-18 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 星载载荷单元软件在轨重组方法 |
CN108255636A (zh) * | 2017-12-13 | 2018-07-06 | 太原航空仪表有限公司 | 一种抗单粒子翻转系统及其使用方法 |
CN109491707A (zh) * | 2018-10-26 | 2019-03-19 | 西安空间无线电技术研究所 | 一种dsp程序在轨重构和维护方法 |
-
2020
- 2020-01-02 CN CN202010004472.XA patent/CN111190772B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102354294A (zh) * | 2011-08-23 | 2012-02-15 | 西安空间无线电技术研究所 | 一种星载dsp芯片的空间单粒子翻转检测方法 |
CN108052355A (zh) * | 2017-11-22 | 2018-05-18 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 星载载荷单元软件在轨重组方法 |
CN108255636A (zh) * | 2017-12-13 | 2018-07-06 | 太原航空仪表有限公司 | 一种抗单粒子翻转系统及其使用方法 |
CN109491707A (zh) * | 2018-10-26 | 2019-03-19 | 西安空间无线电技术研究所 | 一种dsp程序在轨重构和维护方法 |
Non-Patent Citations (1)
Title |
---|
张明栋.一种基于DSP的高可靠星载浮点计算平台的设计.《现代工业经济和信息化》.2019,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111190772A (zh) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111190772B (zh) | 抗空间单粒子翻转的dsp二级启动系统及其方法 | |
US9612824B2 (en) | Firmware variable update method | |
US5835695A (en) | Method for a primary BIOS ROM recovery in a dual BIOS ROM computer system | |
US7191292B2 (en) | Logging of level-two cache transactions into banks of the level-two cache for system rollback | |
US5913219A (en) | Database recovery apparatus and method of using dual plane nonvolatile memory | |
US6571324B1 (en) | Warmswap of failed memory modules and data reconstruction in a mirrored writeback cache system | |
US7352621B2 (en) | Method for enhanced block management | |
US20080155307A1 (en) | Responding to a storage processor failure with continued write caching | |
US7900036B2 (en) | System and method for implementing boot/recovery on a data processing sysem | |
BRPI0610926A2 (pt) | método e equipamento para predizer instruções de ramificação | |
JP3268130B2 (ja) | フラッシュeepromを用いたデータ処理装置 | |
EP2124151B1 (en) | Information processing system and method for starting/recovering the system | |
US5363502A (en) | Hot stand-by method and computer system for implementing hot stand-by method | |
CN111930638B (zh) | 星载接收机中dsp芯片混合运行和存储检测方法 | |
US5894549A (en) | System and method for fault detection in microcontroller program memory | |
CN106980557B (zh) | 一种基于存储分区的星载软件异构备份方法 | |
JP2540008B2 (ja) | デ―タ処理システム及びメモリ手段内のデ―タ・レコ―ド・イメ―ジを有効化する方法 | |
US6339823B1 (en) | Method and apparatus for selective writing of incoherent MMX registers | |
CN114035813A (zh) | 一种升级方法、装置、设备及存储介质 | |
CN102270181A (zh) | 一种内存访问方法和装置 | |
EP1160793B1 (en) | Memory decoder and method of operation | |
CN101366009A (zh) | 具有错误校正的数据处理系统及其运行方法 | |
JPH07201190A (ja) | 不揮発性メモリファイルシステム | |
CN116431073A (zh) | 一种sram型fpga数据存储方法及装置 | |
JP2003509769A (ja) | 静的記憶装置内のマイクロ命令を修正するための方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |