一种基于编码方式的防止sram单粒子翻转的方法

文档序号:6341317阅读:148来源:国知局
专利名称:一种基于编码方式的防止sram单粒子翻转的方法
技术领域
本发明涉及及一种防止SRAM单粒子翻转的方法,尤其涉及一种基于编码方式的 防止SRAM单粒子翻转的方法,属于航天遥感器电子学领域。
背景技术
轻小型低功耗面阵CMOS相机已广泛应用于卫星本体机构、深空探测、空间站及飞 船上的视频遥测,它可以对卫星变轨、改变姿态、发动机工作、太阳翼展开、天线展开等活动 进行监视和评估,为科研工作者在地面判断卫星工作情况提供图像依据,已成功应用于多 个型号。由于卫星与地面通信的数据信道容量有限,为了减少相机下传的数据量,一般要求 相机能对图像进行实时压缩,但压缩算法都比较复杂,单纯依靠FPGA片上的资源远远不能 够满足压缩算法的需求,这就需要利用SRAM等存储器对压缩算法的中间数据进行缓存才 能顺利完成。如果SRAM出现了问题,图像压缩过程中的中间数据就会收到影响,最终下传 的压缩图像将会出现乱码,可见SRAM对图像的压缩质量起着至关重要的作用。但在空间辐 射环境中,由于多种带电粒子的存在,会导致航天器电子系统中的半导体器件发生单粒子 效应,严重影响航天器的可靠性和寿命。SRAM也是极易受到单粒子影响的半导体器件之一, 如何解决SRAM单粒子翻转的问题也是目前研究的一项关键技术。目前民用的CMOS数码相 机也用到了 SRAM器件,但由于民用相机使用环境和空间相机的差异,不涉及到空间单粒子 翻转的问题。国内有些研究所,应用于航天CMOS相机中防止SRAM单粒子翻转的方法一般采用 的是三模冗余技术,即一个数据存放在三个存储单元中,当用的时候对三个数据进行对比, 如果有两个一致,另一个不同,则说明一个数据被打翻,则认为另外两个是正常工作,选取 认为正确的数据。但三模冗余技术一个数据需要备份三份,对存储空间的要求比较高。

发明内容
本发明的技术解决问题是克服现有技术的不足,提供一种基于编码方式的防止 SRAM单粒子翻转的方法,提高了资源利用率。本发明的技术解决方案是一种基于编码方式的防止SRAM单粒子翻转的方法,步 骤如下(1)首先将图像数据在FPGA中先进行纵向编码,之后进行横向编码,将经过编码 后的图像数据存入SRAM中,其中纵向编码的方法为将图像数据以像素为单位进行(12,8) 纵向编码存储;横向编码的方法为对经过纵向编码后的图像数据进行横向编码存储,编 码方式为对每八个像素中的相同位数据分别进行(12,8)编码;(2)当发生单粒子翻转时,SRAM中存储的图像数据会被打翻,对发生单粒子翻转 的图像数据先进行横向解码,对被单粒子打翻的图像数据进行第一次纠正,然后对经过横 向解码后的图像数据进行纵向解码,对被单粒子打翻后的数据进行第二次纠正,最终实现 对SRAM中被单粒子打翻图像数据的恢复,横向解码方式为对每八个像素中的相同位数据分别进行(12,8)解码;纵向解码方式为以像素为单位对图像数据进行(12,8)解码。本发明与现有技术相比的有益效果是本方法首先对待存入SRAM中的图像数据 以像素为单位进行纵向(12,8)码编,然后对每八个像素中的相同位数据进行横向(12,8) 编码,SRAM中的图像数据按照两次编码格式进行存储,当发生单粒子翻转时,SRAM中存储 的图像数据会被打翻,本发明对发生单粒子翻转的图像数据先进行横向(12,8)解码运算, 此解码过程对数据有一定的纠错作用,之后对图像数据进行纵向(12,8)解码运算,此解码 过程对数据进行第二次纠正,可以把存入SRAM中被单粒子打翻的图像数据纠正过来。本发 明在占用资源是常规方法1/3的前提下,利用横向、纵向两次(12,8)解码纠错,能有效将被 粒子打翻的数据进行纠正,从而克服了单粒子翻转对SRAM中存储数据的影响。


图1为本发明的实现流程图;图2为(12,8)编码原理图;图3为(12,8)解码原理图。
具体实施例方式下面结合附图对本发明的具体实施方式
进行进一步的详细描述如图1所示,本发明的实现过过程为(1)首先将图像数据在FPGA中先进行纵向编码,之后进行横向编码,将经过编码 后的图像数据存入SRAM中,其中纵向编码的方法为将图像数据以像素为单位进行(12,8) 纵向编码存储;横向编码的方法为对经过纵向编码后的图像数据进行横向编码存储,编 码方式为对每八个像素中的相同位数据分别进行(12,8)编码;(2)在使用SRAM中存储的图像数据时,首先对经过横向编码存储的图像数据进行 横向解码,实现对被单粒子打翻的图像数据进行纠正,横向解码方式为对每八个像素中的 相同位数据分别进行(12,8)解码;然后对经过横向解码后的图像数据进行纵向解码,实现 对被单粒子打翻后的数据进行纠正,纵向解码方式为以像素为单位对图像数据进行(12, 8)解码。例如我们要把一个32 32像素大小的图像块存入SRAM中,每个像素是8bit, 处理过程如下首先在FPGA中对每个像素的Sbit数据分别进行纵向(12,8)编码;然后对纵向 编码后的数据继续在FPGA中以8个像素为一组,对八个像素中的相同的一位分别进行横向 (12,8)编码,横向编码之后,将编码后的数据依次存入SRAM中;在图像在SRAM中存储期间,如果遇到空间粒子撞击,SRAM中的数据的某些位很可 能发生翻转,图像数据受到损坏。之后,在使用SRAM中存储的数据时,首先对SRAM中存储的图像数据8个像素为一 组,对8个像素中相同一位进行横向(12,8)解码,然后再对横向解码后的数据以一个像素 为单位,进行纵向(12,8)解码,在两次解码的过程中,被单粒子打翻的图像数据受到两次 解码纠正,已恢复正常,能够正确使用,克服了单粒子翻转带来的危害。本发明是基于(12,8)编解码方法的,其原理为将SRAM中存储的图像数据每8位数据构成一个数字序列,每个数字序列附加4位监督码元,构成长度c = 8+4的纠错码组, 当纠错码组中有错误码时,能及时检测出并纠正之,纠错原理为,每个监督码元对c位纠错 码组中指定的若干位进行监督,在终端通过检查一些监督关系是否满足,来确定原始8位 数据中的哪一位数据出错。上述过程通过下面的逻辑关系来实现数字序列为AtlA1A2…A7, 监督码为KtlK1K2K3,则纠错码为AciA1A2-A7KtlK1K2Ky可用线性方程组表示数字序列与监督码 之间的关系,即
权利要求
1. 一种基于编码方式的防止SRAM单粒子翻转的方法,其特征在于步骤如下(1)首先将图像数据在FPGA中先进行纵向编码,之后进行横向编码,将经过编码后的 图像数据存入SRAM中,其中纵向编码的方法为将图像数据以像素为单位进行(12,8)纵向 编码存储;横向编码的方法为对经过纵向编码后的图像数据进行横向编码存储,编码方 式为对每八个像素中的相同位数据分别进行(12,8)编码;(2)当发生单粒子翻转时,SRAM中存储的图像数据会被打翻,对发生单粒子翻转的 图像数据先进行横向解码,对被单粒子打翻的图像数据进行第一次纠正,然后对经过横向 解码后的图像数据进行纵向解码,对被单粒子打翻后的数据进行第二次纠正,最终实现对 SRAM中被单粒子打翻图像数据的恢复,横向解码方式为对每八个像素中的相同位数据分 别进行(12,8)解码;纵向解码方式为以像素为单位对图像数据进行(12,8)解码。
全文摘要
一种基于编码方式的防止SRAM单粒子翻转的方法,本方法首先对待存入SRAM中的图像数据以像素为单位进行纵向(12,8)编码,然后对每八个像素中的相同位数据进行横向(12,8)编码,SRAM中的图像数据按照两次编码格式进行存储,当发生单粒子翻转时,SRAM中存储的图像数据会被打翻,本发明对发生单粒子翻转的图像数据先进行横向(12,8)解码运算,此解码过程对数据有一定的纠错作用,之后对图像数据进行纵向(12,8)解码运算,此解码过程对数据进行第二次纠正,可以把存入SRAM中被单粒子打翻的图像数据纠正过来,从而克服了现有方法占用片上存储资源过多的缺点。
文档编号G06F11/10GK102063343SQ20101062264
公开日2011年5月18日 申请日期2010年12月29日 优先权日2010年12月29日
发明者吴雁林, 孟林智, 张宏伟, 朱军, 李天 , 李晨曦, 林宏宇, 温博, 胡永富, 郭强, 陈彦, 黄昊, 黄长宁 申请人:北京空间机电研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1