1、第 卷 第 期 年 月空间控制技术与应用 :引引用用格格式式:吕达,王啟宁,韩延东,等 一种可纠错程控数据设计方法 空间控制技术与应用,():,():():一种可纠错程控数据设计方法吕 达,王啟宁,韩延东,李国军,李志刚航天东方红卫星有限公司,北京 摘 要:程控数据关系到小卫星在轨任务能否正常执行,且需要在轨长期存储,因此需要进行容错设计 程控数据可分为程控指令、程控数据块及相对程控指令 文章提出一种可纠错程控数据设计方法,以单条不同类型的程控数据为单位进行纠错编码设计,在程控数据使用前或周期检错时刻来临时,星上软件实现程控数据的检错及纠错 该方法实现纠错不依赖卫星硬件平台,同三模冗余方法相比
2、,不仅可以节约大量存储空间,而且性能更优关键词:程控数据;单粒子;错误检测与纠正中图分类号:文献标志码:文章编号:()收稿日期:;录用日期:基金项目:科技部国家重点研发计划(、)通信作者:引 言小卫星程控数据包括程控指令、程控数据块、相对程控指令和任务规划等,经常需要在星上长期保存,在目标时刻来临时候启动,程控数据的正确与否关系到小卫星在轨任务能否正常执行,需要进行在轨容错设计 传统程控数据设计一般只包括任务号、执行时间和数据码字,主要依赖星载设备硬件 或三模冗余的方法来实现数据的容错,以消除空间单粒子翻转的影响 当前小卫星在满足性能要求的基础上,还要满足研制周期短、成本低等要求,因此具有高性
3、能、高集成、低成本、低能耗、易使用以及来源广泛不易受技术封锁等优点的商用货架()产品,在低成本小卫星中逐步广泛应用 传统 需要通过专用硬件电路或 芯片实现,使用商用货架产品的小卫星修改硬件电路会造成周期、成本的增加,因此传统硬件 技术不再适用;技术可以进行容错设计,但要占用 倍于要保护数据的存储空间,随着小卫星功能及任务趋向复杂需要存储大量程控数据,方法将使用受限因此本文提出可纠错程控数据设计方法,每条程控数据包含与信息位长度相适应的纠错编码,程控数据初始化或上注成功后在星上长期存储 当程控数据启动前或到达周期检错时刻,星载计算机软件启动检错程序,根据预先设计的纠错编码实现检错和纠错 程控数据
4、纠错不再依赖卫星专用的硬件,不再需要再进行三模冗余设计,可以节约大量存储空间用来存储任务相关的程控数据 可纠错程控指令设计方法本文提出可纠错程控数据设计方法,以单条程控数据为单位进行纠错编码设计 根据每条程控数据的信息部分长度,纠错编码长度为,如图 所示 当程控数据启动前或到达周期检错时刻,星载计算机软件启动基于纠错编码的检错程序,实现检错和纠错 可纠错程控数据格式如图 所示空间控制技术与应用第 卷图 可纠错程控数据的结构 纠错编码的选择程控数据能否实现检错及纠错的基础是纠错编码 通常使用的纠错编码有 码、汉明码、码、交织码和循环码等,它们各自具有不同的检纠错能力,纠错编码的选择,需要在译码效
5、率、复杂度和检纠错性能之间进行折中 码是一种编码效率和纠错性能都很高的特殊多进制 码,它以符号为单位,具有纠单字检双字的功能,纠错能力强,但译码过程较复杂,若考虑到卫星软件系统的实时性与复杂度,此类码不是最好的选择汉明码和循环码都属于线性分组码,编码和解码方法都相对简单,具有具备检错、纠错的能力,在通信领域广泛地用于差错控制中 与汉明码相比,循环码除了具有线性码的一般性质外,还具有循环性 汉明码通常只具备检测不超过 错误的能力,循环码有着更强的检错能力,可检出所有单比特错误、双比特错误、奇数比特错误和长度不超过校验位长度的突发错误,因此选择循环码作为纠错码 循环码是一种成熟的数据校验机制,在
6、通 信 领 域 大 量 应 用,且 多 用 于 检 错,如、等算法 但是,在星载数据抗单粒子设计中应用不多,星载设备抗单粒子设计除三冗余外,主要是硬件 算法,通常使用汉明编码,对固定 数据,附加 校验位,来进行检错纠错 本文针对不同长度的数据,灵活设计循环码编码进行检错、纠错,来实现抗单粒子翻转设计 循环码编码循环码是线性分组码的一个子类,它满足循环移位特性,码集 中任何一个码字的循环移位仍是一个码字 一般的(,)线性分组码的 个基底之间不存在规则的联系,因此需要用 个基底组成生成矩阵来进行编码 对于循环码,既然码字的循环码仍是码字,而基底也是码字,那么基底的循环也可以是基底 张成循环码空间的
7、 个基底是由同一个基底循环 次得到的,因此用一个生成多项式对应一个基底就足以表达码的结构,无需借助生成矩阵循环码的编码完整的数学解释涉及近世代数理论,这里只引用一些结论 二元域上次数小于 的多项式在模 加、模()乘运算下构成一个交换环,从多项式环的性质出发,又有如下结论:)(,)循环码的码多项式是模()乘运算下多项式交换环的一个主理想子环,反之,多项式交换环的一个主理想子环一定可以产生一个循环码;)(,)循环码中,存在着唯一的一个次数最低即 次的首一码多项式(),即()()使得所有的码多项式都是()的倍式;)(,)循环码的生成多项式一定是 的一个因子以上面 个结论为基础,可以找到构造(,)循环
8、码的步骤如下:)对 进行因式分解,找出其 次因式;)以 次因式作为生成多项式(),与信息多项式()相乘,即得码多项式()()()()因为()次数不高于 次,因此()的次数不会高于 次为了便于星上系统进行处理,要求循环码编码为系统码,即循环码编码后码字的前 位原封不动为信息位,后 为校验位,码多项式具有如下形式:()()()()这里()是与码字中 个校验元对应的 次多项式 循环码编码完成后要求()()()所以()()()()大量实验数据表明 发生单粒子翻转大多数是单 错误,产生 位翻转的次数占总翻转次数的 左右,而产生、位翻转的概率仅为 ,因此,程控数据纠错时只针对单 错误(,)循环码为了用 个
9、监督关系式产生的 个校正子来区分无错和在码字的 个不同位置的一位错误,要求满足式()()另外,星上数据处理一般都是以字节为单位,第 期吕 达等:一种可纠错程控数据设计方法即纠错编码前的数据长度、纠错编码后的数据长度都要以字节为单位,因此纠错码长度也要以字节为单位,即、均是 的倍数,因此需要设计信息位和校验位都要是字节整数倍的循环码 从这种意义上讲,截短循环码是最佳的选择 截短循环码和原循环码有相同的纠错能力,且编码方法和截短前相同(,)循环码的监督码长度为,具有 纠错能力,当需要为程控数据构造 选为 的纠错码时,可以根据每条程控数据的长度将(,)循环码截短生成一系列的截短循环码,如(,)、(、
10、),(、)等 例如常用的程控指令一般包括任务号、时间和指令码字共 字节,可以采用(,)截短循环码编码;程控数据块一般包括任务号、时间、地址和数据码字共 字节,可以采用(,)截短循环码编码;相对程控指令一般包括段标、时间和码字共 字节,可以采用(,)截短循环码编码 循环码纠错循环码可以按照传统方式设计相应的纠错电路和算法,但这种方法实现比较复杂,这里选用基于查表的方法假定从初始化到检测时刻这段时间星上发生误码,其多项式为(),则检测时刻该条程控数据对应的码多项式为()()(),剩余多项式定义为(),者之间关系如下:()()()()()因为编码时专门设计有()()()所以()()()()因此,检错
11、时刻的剩余多项式()仅和错误多项式()相关,和信息位多项式()没有关系 错误多项式种类繁多,由此导致()到()的映射表格也相当大,但由于星上大多时候都是单 错误,只考虑单 错误,则错误图样可以表示为()()其中,(,)对于 种 错误,存在 种不同的剩余多项式,且()和()存在一一对应关系,因此可以利用这种一一对应关系进行查表纠错,循环码检错纠错步骤实现如下:)将 种不同的 错误的程控数据依次进行循环码编码,得到 个 字节错误图样,按照顺序保存在一张余数表中,共需要 个字节的存储空间 例如表 列出了(,)缩短循环码的错误图样;表 (,)截短循环码单 错误图样 (,)()()按照循环码检错原理,将
12、程控数据多项式()和码多项式()进行除法运算,若余数为零,则程控数据没有发生错误,否则进入下一步纠错步骤;)搜索比较 个余数,如果搜索到了相同的余数,则根据搜索到的余数位置索引,纠正相应位置的错误;)如果没有找到相同的余数,则认为发生了不可纠错误,将多 错误计数置,进入程控数据错误安全模式这种方法需要 字节的存储空间和算法复杂度()的线性搜索,在代价上和速度上都具有较好的可实现性 性能分析及仿真 性能分析()从存储空间的大小考虑,采用循环码纠错方法比三模冗余方法可节省大量存储空间 假定编码前每条程控数据占用 字节,本文的方案编码后仅增加 字节,采用三模冗余方法则需要 物理内空间控制技术与应用第
13、 卷存空间,增加校验部分占用的空间比为;()从时间开销方面考虑,程控数据采用循环码检错、纠错的时机是程控数据执行前或在星务计算机任务空闲时 星务计算机每秒或数秒才执行一条程控数据,若某一秒有一条需要执行的程控数据,在该秒内,星务计算机需要在该条程控数据执行前,计算一次几字节或十几个字节长度程控数据的,时间开销微乎其微,且目前有很多快速算法 况且可纠错程控数据主要应用目标是基于商用货架产品的嵌入式设备,其特点是处理能力强,但抗单粒子性能差,所以时间开销不是问题程控数据另一个纠错时机是星务计算机空闲时,程控数据的检错纠错专门由一个任务完成,该任务优先级低于其他任务,空闲时执行,不影响星务计算机主任
14、务;()从系统纠错的纠错可靠性角度考虑,设每 内存单元在单位时间内发生单粒子翻转的概率为,则每 内存中 发生 的概率为(,)()()定义长度为 的单条程控数据发生错误的概率为,则错误概率等于 减去 未发生错误的概率 即 (,)()()采用三模冗余方法,三模冗余方法错误概率为,其错误概率为三备份中发生 个或 个错误的概率,如式()所示(,)(,)()使用循环码纠错方法的概率,纠错后长度变为 ,为每条程控数据未发生错误的概率和发生单 错误的概率,如式()所示 (,)(,)()()()()()表 和 分别列出了卫星每一存储位在轨道发生单粒子翻转的概率为 和,不同长度的程控数据采用循环码纠错方法和三冗
15、余方法纠错后,单条程控数据错误概率比较,纠错码长度为 计算结果表明,在前述参数范围内,使用三模冗余方法或循环码纠错方法均可以使错误概率降低,循环码纠错方法效果更好,错误概率约是三冗余方法的 表 翻转概率为时不同方法错误概率比较 表 翻转概率为 时不同方法错误概率比较 仿真计算结果下面对程控数据采用循环码边算法及三冗余方法前后进行了仿真 图 给出了卫星轨道上发生第 期吕 达等:一种可纠错程控数据设计方法单粒子翻转概率密度为纠错算法的性能比较 图 仿真了卫星轨道上发生单粒子翻转概率密度为 条件下纠错算法的性能比较 缩短循环码编码,仿真单条程控数据长度为(,),纠错码长度均为 ,纠错能力为 每种长度
16、的数据均进行 次仿真计算,结果如图 所示图 算法错误概率比较 图 算法错误概率比较 从仿真结果可以看出,随着程控数据长度的增加,未保护时单条程控数据的错误概率增加,循环码纠错方法可以将错误概率降低约 个数量级 三冗余方法也有一定效果,循环码编码方法优于三冗余方法,相同数据长度、相同单粒子翻转概率条件下,错误概率大约是三冗余方法的 针对相同长度的程控数据,在同样的单粒子翻转概率下,采用循环码纠错方法比采用三模冗余方法错误概率要低;在相同的差错率条件下,允许更高的单粒子翻转概率或者更长的数据刷新校验时间 结 论本文提出一种可纠错的程控数据设计方法,对不同长度的程控数据进行截短循环码设计,监督位长度
17、为 字节,可实现每条程控数据纠正 错误的能力 循环码采用系统码,且编码前后程控数据长度都是字节的整数倍,便于计算机处理 该方法可以有效进行检错纠错,同传统三模冗余方法相比,不仅可以节约星上大量内存空间,而且性能更优参 考 文 献 ,():冯田雨,陈健 微纳卫星高性能综合电子系统设计 光学精密工程,():,():黄佳,陈夏,李宗德 基于软件定义的微纳卫星综合电子设计与实现 现代电子技术,():,():刘俊凯,彭攀,王新元 基于 器件的高费效比商业卫星计算机研究 计算机测量与控制,():,():蒲卫华,谢成清,姜文志 星载计算机容错设计及可靠性研究 空间控制技术与应用,():,():刘伟鑫,汪波,
18、马林东 低成本和商业卫星元器件抗辐射保证流程研究 微电子学,():,空间控制技术与应用第 卷 ,():詹盼盼,曹雅婷,张翠涛 卫星高功能密度综合电子系统设计 中国空间科学技术,():,():吕岩 一种低成本高可靠的星载计算机存储器容错方法 空 间 控 制 技 术 与 应 用,():,():,():曹雪虹,张宗橙 信息论与编码 北京:清华大学出版社,:,李锦明,刘梦欣,成乃朋 编码算法的优化与 实现 电子技术应用,():,():江宝安 北斗卫星导航纠错码(,)快速译码算法及实现结构 空间电子技术,():(,),():常远,沈国红,荆涛 基于汉明码及闩锁检测电路的防辐射效应设计 现代电子技术,()
19、:,():乔冰涛,吴旭凡,刘海静 双模冗余汉明码的设计与验证 哈尔滨工业大学报,():,():吴昭军,张立民,钟兆根 低信噪比下循环码识别 电子学报,():,():刘梦影,蔡阳阳 一种 校验算法的设计与实现 电子与封装,():,():陈容,陈岚 基于公式递推法的可变计算位宽的循环冗余校验设计与实现 电子与信息学报,():,():朱正鹏,朱旭 一种位宽可变的 校验算法及硬件实现 航天控制,():,():罗宇,郭家松 大位宽情况下的回滚式循环冗余校验算法 电子与信息学报,():,():龚博,郑晨,空间计算机存储单元容错性研究 计算机测量与控制,():,():作者简介:吕达(),男,高级工程师,研究方向为小卫星综合电子软件技术;王啟宁(),男,高级工程师,研究方向为小卫星综合电子技术;韩延东(),男,高级工程师,研究方向为小卫星健康管理技术;李国军(),男,高级工程师,研究方向为微纳卫星技术;李志刚(),男,研究员,研究方向小卫星总体技术第 期吕 达等:一种可纠错程控数据设计方法 ,:,:,(),():;:(,):