一种基于编码方式的防止SRAM单粒子翻转的方法转让专利

申请号 : CN201010622644.6

文献号 : CN102063343B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张宏伟黄长宁陈彦胡永富林宏宇李晨曦吴雁林李天黄昊孟林智朱军温博郭强

申请人 : 北京空间机电研究所

摘要 :

一种基于编码方式的防止SRAM单粒子翻转的方法,本方法首先对待存入SRAM中的图像数据以像素为单位进行纵向(12,8)编码,然后对每八个像素中的相同位数据进行横向(12,8)编码,SRAM中的图像数据按照两次编码格式进行存储,当发生单粒子翻转时,SRAM中存储的图像数据会被打翻,本发明对发生单粒子翻转的图像数据先进行横向(12,8)解码运算,此解码过程对数据有一定的纠错作用,之后对图像数据进行纵向(12,8)解码运算,此解码过程对数据进行第二次纠正,可以把存入SRAM中被单粒子打翻的图像数据纠正过来,从而克服了现有方法占用片上存储资源过多的缺点。

权利要求 :

1.一种基于编码方式的防止SRAM单粒子翻转的方法,其特征在于步骤如下:

(1)首先将图像数据在FPGA中先进行纵向编码,之后进行横向编码,将经过编码后的图像数据存入SRAM中,其中纵向编码的方法为:将图像数据以像素为单位进行(12,8)纵向编码存储;横向编码的方法为:对经过纵向编码后的图像数据进行横向编码存储,编码方式为对每八个像素中的相同位数据分别进行(12,8)编码;

(2)当发生单粒子翻转时,SRAM中存储的图像数据会被打翻,对发生单粒子翻转的图像数据先进行横向解码,对被单粒子打翻的图像数据进行第一次纠正,然后对经过横向解码后的图像数据进行纵向解码,对被单粒子打翻后的数据进行第二次纠正,最终实现对SRAM中被单粒子打翻图像数据的恢复,横向解码方式为:对每八个像素中的相同位数据分别进行(12,8)解码;纵向解码方式为:以像素为单位对图像数据进行(12,8)解码。

说明书 :

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

技术领域

[0001] 本发明涉及及一种防止SRAM单粒子翻转的方法,尤其涉及一种基于编码方式的防止SRAM单粒子翻转的方法,属于航天遥感器电子学领域。

背景技术

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

发明内容

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

附图说明

[0009] 图1为本发明的实现流程图;
[0010] 图2为(12,8)编码原理图;
[0011] 图3为(12,8)解码原理图。

具体实施方式

[0012] 下面结合附图对本发明的具体实施方式进行进一步的详细描述:
[0013] 如图1所示,本发明的实现过过程为:
[0014] (1)首先将图像数据在FPGA中先进行纵向编码,之后进行横向编码,将经过编码后的图像数据存入SRAM中,其中纵向编码的方法为:将图像数据以像素为单位进行(12,8)纵向编码存储;横向编码的方法为:对经过纵向编码后的图像数据进行横向编码存储,编码方式为对每八个像素中的相同位数据分别进行(12,8)编码;
[0015] (2)在使用SRAM中存储的图像数据时,首先对经过横向编码存储的图像数据进行横向解码,实现对被单粒子打翻的图像数据进行纠正,横向解码方式为:对每八个像素中的相同位数据分别进行(12,8)解码;然后对经过横向解码后的图像数据进行纵向解码,实现对被单粒子打翻后的数据进行纠正,纵向解码方式为:以像素为单位对图像数据进行(12,8)解码。
[0016] 例如:我们要把一个32*32像素大小的图像块存入SRAM中,每个像素是8bit,处理过程如下:
[0017] 首先在FPGA中对每个像素的8bit数据分别进行纵向(12,8)编码;然后对纵向编码后的数据继续在FPGA中以8个像素为一组,对八个像素中的相同的一位分别进行横向(12,8)编码,横向编码之后,将编码后的数据依次存入SRAM中;
[0018] 在图像在SRAM中存储期间,如果遇到空间粒子撞击,SRAM中的数据的某些位很可能发生翻转,图像数据受到损坏。
[0019] 之后,在使用SRAM中存储的数据时,首先对SRAM中存储的图像数据8个像素为一组,对8个像素中相同一位进行横向(12,8)解码,然后再对横向解码后的数据以一个像素为单位,进行纵向(12,8)解码,在两次解码的过程中,被单粒子打翻的图像数据受到两次解码纠正,已恢复正常,能够正确使用,克服了单粒子翻转带来的危害。
[0020] 本发明是基于(12,8)编解码方法的,其原理为:将SRAM中存储的图像数据每8位数据构成一个数字序列,每个数字序列附加4位监督码元,构成长度c=8+4的纠错码组,当纠错码组中有错误码时,能及时检测出并纠正之,纠错原理为,每个监督码元对c位纠错码组中指定的若干位进行监督,在终端通过检查一些监督关系是否满足,来确定原始8位数据中的哪一位数据出错。上述过程通过下面的逻辑关系来实现:数字序列为A0A1A2…A7,监督码为K0K1K2K3,则纠错码为A0A1A2…A7K0K1K2K3。可用线性方程组表示数字序列与监督码之间的关系,即:
[0021]
[0022] 如果收到的数字序列没有错误,则上式必然成立,否则,有错误出现时,等式右边不等于零,可以根据这个条件来发现错误。
[0023] (12,8)编码的过程如图2所示,编码器主要由8位移位寄存器、异或电路和12位移为寄存器三部分组成,8位移为寄存器实现串并转换,异或电路并行接收8位数字序列,据此由异或电路产生4位监督码元,12位移位寄存器实现并/串转换输出12位纠错码组。
[0024] (12,8)解码的过程如图3所示,解码器主要由12位移位寄存器、异或电路、4-16线译码器和取反电路四部分组成。12位移位寄存器实现串/并转换,异或电路根据纠错码组成的12位码元,计算出4个监督码元,4-16线译码器针对监督码元的不同组合找出错误的码元,取反电路对错误码元进行纠错。
[0025] 本发明已成功应用于探月卫星的CMOS相机中,用该CMOS相机清晰拍摄到了我国首张月球全景照片。本发明说明书中未作详细描述的内容属于本领域技术人员的公知技术。