公开/公告号CN101582294A
专利类型发明专利
公开/公告日2009-11-18
原文格式PDF
申请/专利权人 上海微小卫星工程中心;
申请/专利号CN200910053461.4
申请日2009-06-19
分类号G11C11/41;G11C11/413;G06F11/00;G06F12/00;G11C29/00;
代理机构上海天翔知识产权代理有限公司;
代理人刘粉宝
地址 200050 上海市长宁区长宁路865号
入库时间 2023-12-17 22:57:19
法律状态公告日
法律状态信息
法律状态
2018-07-17
未缴年费专利权终止 IPC(主分类):G11C11/41 授权公告日:20120222 终止日期:20170619 申请日:20090619
专利权的终止
2012-02-22
授权
授权
2010-01-13
实质审查的生效
实质审查的生效
2009-11-18
公开
公开
技术领域
本发明涉及一种航天星载计算机SRAM模块的解决方法,特别涉及一种解决星载计算机SRAM模块闩锁问题以及增强SRAM模块可靠性的方法。
背景技术
目前,在星载计算机中CPU所使用的内部存储器SRAM(以下简称SRAM模块)的校验方法大部分都是采用了汉明编码来进行EDAC(错误检测与纠正),例如8086是采用了16位的汉明码,ERC32是采用了32位汉明码,但是这样只能解决SRAM模块单个位翻转的情况,如果当SRAM模块发生闩锁,那么整个CPU控制系统就要断电,并采用切换电路使用备份系统。
然而,由于等级的SRAM模块极易发生闩锁事件,对于SRAM模块器件的采用多年来一直严格控制器件等级,即使是这样也不能保证SRAM模块不发生单粒子效应。
基于上述原因,特别需要解决SRAM模块闩锁问题,使得SRAM模块发生了闩锁后系统依然能正常工作。
发明内容
本发明的目的在于提供一种解决SRAM模块闩锁问题以及增强SRAM模块可靠性的方法,克服现有技术的不足,使得SRAM模块发生了闩锁后系统依然能正常工作。
本发明所解决的技术问题可以采用以下技术方案来实现:
一种解决SRAM模块闩锁问题以及增强SRAM模块可靠性的方法,其特征在于,每个所述SRAM模块单独连接有一个电源模块,所述电源模块对所述SRAM模块的电压进行监控并独立控制,所述星载计算机中的CPU控制模块通过FPGA控制器对所述SRAM模块进行译码与编解码操作。
在本发明的一个实施例中,所述FPGA控制器通过RS编解码电路对所述SRAM模块进行译码与编解码操作,有效防止了CPU控制模块的损坏对系统的影响。
在本发明的一个实施例中,所述FPGA控制器采用单片反熔丝FPGA或FLASH型FPGA。
在本发明的一个实施例中,所述FPGA控制器还包括一自刷新模块,当CPU控制模块失效重置后,在很短时间内即可对所述SRAM模块进行刷新。
在本发明的一个实施例中,所述FPGA控制器采用了读->双错->重试的操作方式,有效防止了电路干扰。
在本发明的一个实施例中,所述电源模块包含一电源芯片,所述电源芯片的VCC端连接电源输入,所述电源芯片的VCC_MEN端直接向所述SRAM模块供电,所述电源芯片的VCC_MEN端通过一分压电路后反馈输入所述电源芯片的MEN_SENSE端,所述电源芯片的MEN_LU端接入所述FPGA控制器,用于监控所述SRAM模块的供电情况,所述FPGA控制器通过所述电源芯片的MEN_OFF端控制关断所述电源模块,所述FPGA控制器通过所述电源芯片的MEN_SET端控制所述电源模块的电压输出。
进一步,为了方便检测所述电源模块,在所述电源芯片的VCC_MEM端添加了一个发光二级管和一个短路跳线用来模拟单粒子闩锁产生的大电流。
在本发明的一个实施例中,所述FPGA控制器包含CPU接口电路、自刷新电路、编码电路、解码电路、SRAM控制电路、UART数据传输电路、定时电路、SRAM电压监控电路、单、双错计数电路和SEL计数电路;所述FPGA控制器通过所述CPU接口电路与所述CPU控制模块连接,所述CPU接口电路分别与所述编码电路、解码电路、UART数据传输电路、定时电路、单、双错计数电路和SEL计数电路连接,所述自刷新电路分别与所述编码电路和解码电路连接,所述SEL计数电路通过所述SRAM电压监控电路与所述SRAM控制电路连接,所述SRAM控制电路与所述编码电路连接,所述单、双错计数电路与所述解码电路连接。
本发明的一种解决SRAM模块闩锁问题以及增强SRAM模块可靠性的方法,与现有方案相比,可以解决单片SRAM模块闩锁对系统的影响而不用进行双机切换,实际情况下两片或大于两片SRAM模块同时发生闩锁事件的概率基本为零,最大可以纠错为8位(一个符号),能检测16位错误(两个符号错),比现有采用汉明码的方案有所提高,同时内置了自刷新电路,在不影响CPU的效率情况下即可快速完成对SRAM模块的刷新,当一个芯片损坏的情况下,系统依然可以工作,增加了FPGA的成本,但降低了对SRAM模块器件等级的要求,降低了总的成本,实现本发明的目的。
附图说明
图1为本发明的设计结构图;
图2为本发明的电源模块的示意图;
图3为本发明的FPGA控制器的结构示意图;
图4为本发明的RS编解码器的实现示意图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
如图1所示,为本发明的设计结构图,采用了CPU+FPGA+SRAM模块+LDO的结构对CPU的程序存储区与重要数据存储区的SRAM模块的保护,本发明的解决SRAM模块闩锁问题以及增强SRAM模块可靠性的方法,每个SRAM模块30单独连接有一个电源模块40,采用单独供电方式,使得SRAM模块发生闩锁时整机电源电压不受影响,防止由于闩锁事件使系统供电短路的情况,电源模块43对SRAM模块30的电压进行监控并独立控制;所述星载计算机中的CPU控制模块10通过FPGA控制器20对SRAM模块30进行译码与编解码操作,在本发明中,FPGA控制器20采用Antifuse器件,其主要的原因是它对SEL与SEU是免疫的,在FPGA控制器20中主要实现SRAM模块器件的EDAC(错误检测与纠正),其中16位用来作为校验位,32位或64位用来作为正常的数据存储位,同时FPGA控制器20还实现了对SEL检测与恢复控制、对CPU控制模块10实现地址译码等工作。
在本发明中,SRAM模块30采用了HM628512的SRAM模块器件作为存储器件,在实际中可以选择其它的通用8位存储器;CPU控制模块10采用了8086作为主控制器,实际设计中可以选择任意一个32位或16位的CPU做主控制器,为了方便RS232口调试,时钟采用了14.745Mh经过82C84分频后进入CPU控制模块10与FPGA控制器20;系统的PROM采用了28C64作为存储PROM,与8086体系结构一样采用了两片,一片为奇地址,别一片是偶地址。
如图2所示,电源模块40包含一电源芯片41,在本发明中,电源芯片41采用LDO MAX883芯片,电源芯片41的VCC端连接电源输入,电源输入为5.5V,经过电源芯片41的VCC_MEN端直接向SRAM模块30供电,正常供电电压为5V,电源芯片41的VCC_MEN端通过一分压电路后反馈输入所述电源芯片的MEN_SENSE端;当SRAM模块30发生闩锁事件时,会产生很大的闩锁电流,从而拉低电源芯片41的VCC_MEN端的电压,使之低于5V;电源芯片41内部提供了一个低电压比较器,当电源芯片41的MEM_SENSE端电压低于1.2V时,电源芯片41的MEM_LU端会输出一个低电平,否则为高电平,电源芯片41的MEN_LU端接入FPGA控制器20,用于监控SRAM模块30的供电情况,当SRAM模块30供电电压正常时,电源芯片41的MEM_LU为高电平;在SRAM模块30供电电压VCC_MEM为5V的情况下,分压后电压为1.3V,当VCC_MEM低于4.6V时,分压后电压即MEM_SENSE的电压低于1.2V,MEM_LU出现低电平。
电源芯片41提供了两个管脚用来关断和设置其电压输出,FPGA控制器20通过电源芯片41的MEN_OFF端控制关断所述电源模块,FPGA控制器20通过电源芯片41的MEN_SET端控制电源模块40的电压输出;当电源芯片41的MEM_LU端出现低电平时,FPGA控制器20可以通过电源芯片41的MEM_OFF端关断发生闩锁的SRAM模块30的电源,使其不影响其它SRAM模块30的正常工作,过一段时间后,再将其电源通过电源芯片41的MEM_SET端打开,再进行刷新等其它操作。
为了方便检测电源模块40,在电源芯片41的VCC_MEM端添加了一个发光二级管和一个短路跳线用来模拟单粒子闩锁产生的大电流。
如图3所示,FPGA控制器20包含CPU接口电路201、自刷新电路202、编码电路203、解码电路204、SRAM控制电路205、UART数据传输电路206、定时电路207、SRAM电压监控电路208、单、双错计数电路209和SEL计数电路210;在本发明中,FPGA控制器20采用了RS编解码电路,编码电路203为RS编码电路、解码电路204为RS解码电路,有效防止了单芯片损坏对系统的影响;FPGA控制器20通过CPU接口电路201与CPU控制模块10连接,CPU接口电路201分别与编码电路203、解码电路204、UART数据传输电路206、定时电路207、单、双错计数电路209和SEL计数电路210连接,自刷新电路202分别与编码电路203和解码电路204连接,具有自刷新功能,当单芯片失效重置后有在很短时间内即可刷新整个SRAM模块30;SEL计数电路210通过SRAM电压监控电路208与SRAM控制电路205连接,SRAM控制电路205与编码电路203连接,单、双错计数电路209与解码电路204连接。
在本发明中,FPGA控制器20采用单片反熔丝FPGA或FLASH型FPGA对系统进行译码与编解码操作。
在本发明中,FPGA控制器20采用了读->双错->重试的操作方式,有效防止了电路干扰;由于FPGA控制器20采取的编码方案只能纠正单个字节的错误,若发生单字节错误则直接纠错,若错误数目为双字节,则不纠错而直接报告给控制逻辑以进行重试操作。
如图4所示,编码电路203和解码电路204采用了32位或64位有效数据位、16位校验位的编码机制,在写入过程中对32位或64位有效数据位进行运算生成16位的校验位。在读取过程中利用16位校验数据进行校验解码,若发生单符号错误则进行修复,若是双符号错则不进行纠错直接报告给控制逻辑单元。
在本发明中,CPU控制模块10采用8086芯片,由于8086芯片是16位的处理器并且有时会读取一个字节进行操作,而设计采用的是32位的存储器,所以需要对此进行读写控制,由于8086芯片对外部读写有T1、T2、T3、T4四个状态,其中T1状态是地址输出阶段,在读操作时是在T4状态进行读回数据,在写操作时是从T2至T4状态一直进行写操作,由此可以分析8086芯片的T2到T3状态是空闲的,这也为我们提供了一个从SRAM模块30中取数的机会。在每一次操作的T2、T3状态我们从SRAM模块30中读取数据,在T4状态下,若是读取数据则输出有效数据,若是写数据则与对原来读回的数据进行部分替换再次生成校验位并写入FPGA控制器20。
自刷新电路202的自刷新操作是在CPU控制模块10不读写SRAM模块30的情况下进行的。由于自刷新操作同样需要读出和写回时序,而在CPU控制模块10访问外设时会占用四个周期,因此我们利用CPU控制模块10访问外设时对SRAM模块30进行刷新操作,这与CPU控制模块10读写SRAM模块30类似,此处不再赘述。每执行一次读写IO的操作,就同时会刷新一个32位地址空间,大大提高了SRAM模块的刷新效率。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内,本发明要求保护范围由所附的权利要求书及其等效物界定。
机译: 数据传输改进方法,涉及在外部总线接口的内部提供SRAM和SDRAM控制器,其中控制器具有刷新选择输出,允许在SDRAM模块刷新期间选择SRAM单元。
机译: 嵌入式SRAMS的模块化自检
机译: SRAM阵列,SRAM单元,微处理器,方法和SRAM存储器(包含逻辑部分的SRAM存储器和微处理器在高性能硅基板和SRAM阵列部分上实现,其中包括场效应晶体管具有链接的主体和方法)