CN109491707B - 一种dsp程序在轨重构和维护方法 - Google Patents
一种dsp程序在轨重构和维护方法 Download PDFInfo
- Publication number
- CN109491707B CN109491707B CN201811260595.9A CN201811260595A CN109491707B CN 109491707 B CN109491707 B CN 109491707B CN 201811260595 A CN201811260595 A CN 201811260595A CN 109491707 B CN109491707 B CN 109491707B
- Authority
- CN
- China
- Prior art keywords
- dsp
- program
- reconstruction
- program version
- flash
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Logic Circuits (AREA)
Abstract
一种DSP程序在轨重构和维护方法,首先将FPGA、DSP、Nor Flash构成T型总线,然后将DSP原始程序版本对应的位流文件存储在存储器Nor Flash的基片中,控制FPGA接收上注的重构程序版本对应的位流文件,并写入Nor Flash中当前重构程序版本对应的基片,最后对DSP原始程序版本、DSP重构程序版本中的程序段、数据段分别进行分段,根据DSP重构程序版本的变更情况,对变更扇区进行重构,实时读取DSP重构程序版本对应的三份数据,按位进行三取二判决,得到发生单粒子翻转的扇区,并根据三取二判决结果进行回写纠错、完成DSP在线维护。
Description
技术领域
本发明涉及空间微波遥感技术领域,特别是一种DSP程序在轨重构和维护方法。
背景技术
随着数字集成电路的性能不断提高,卫星有效载荷中数字集成电路的应用越来越广泛。作为数字集成电路的核心元器件,FPGA和DSP的应用也越来越普遍,FPGA和DSP的功能主要靠其上运行的程序来实现。FPGA和DSP上运行的程序功能非常复杂,卫星在轨运行后,出于多种原因,FPGA程序和DSP程序有一定可能需要进行在轨更新。因此,FPGA和DSP程序在轨重构和维护技术具有广阔的应用前景。
目前国内关于DSP程序在轨重构的公开文献较少,查阅到的文献主要是关于Xilinx公司FPGA程序在轨重构。Xilinx公司FPGA程序在轨重构一般采用第三方控制器和存储器实现,第三方控制器多数选用CPLD或者Actel公司反熔丝FPGA,存储器多数选用Flash。在原有的Xilinx公司FPGA加载电路的基础上增加了在轨重构电路,增加了设计复杂度和成本。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供了一种DSP程序在轨重构和维护方法,通过采用FPGA、DSP和Flash构成的T型总线结构,由FPGA完成DSP程序的在轨重构,并基于DSP程序的特点采用分段分扇区的设计思路,将完全重构变为部分重构,同时将位流文件存储三份,定时对三份数据进行维护,通过纠错回写确保位流文件的安全性,解决了DSP程序在轨重构和维护的问题。
本发明的技术解决方案是:一种DSP程序在轨重构和维护方法,包括如下步骤:
(1)将FPGA、DSP、Nor Flash构成T型总线,FPGA可独立访问Nor Flash的全部存储空间,DSP一次可访问Nor Flash的部分存储空间,FPGA控制DSP、Nor Flash的总线控制权;
(2)将DSP原始程序版本对应的位流文件存储在存储器Nor Flash的基片中,其中,存储器Nor Flash包括多个基片,至少1个基片存储原始程序版本,至少1个基片存储重构程序版本,每个基片中存储的存储原始程序版本、重构程序版本均存储三份,每个基片包括多个扇区;
(3)控制FPGA接收上注的重构程序版本对应的位流文件,并写入Nor Flash中当前重构程序版本对应的基片;
(4)对DSP原始程序版本、DSP重构程序版本中的程序段、数据段分别进行分段,根据DSP重构程序版本的变更情况,对变更扇区进行重构;
(5)实时读取DSP重构程序版本对应的三份数据,按位进行三取二判决,得到发生单粒子翻转的扇区,并根据三取二判决结果进行回写纠错、完成DSP在线维护。
所述的步骤(2)、步骤(3)、步骤(4)、步骤(5)的读取DSP重构程序版本对应的三份数据,按位进行三取二判决,得到发生单粒子翻转的扇区,根据三取二判决结果进行回写纠错过程需要FPGA获取总线控制权,禁止DSP对Nor Flash的读写操作。
所述的步骤(3)之前还包括如下步骤:
根据外部指令选择待重构的原始程序版本对应的基片,控制FPGA对Nor Flash发送擦除指令,完成对应的基片擦除,并返回擦除完成标志至地面。
所述的步骤(4)完成后根据校验算法逐扇区读取数据,计算校验结果,并返回校验结果给地面。
所述的步骤(4)将DSP原始程序版本、DSP重构程序版本分解为程序段、数据段;其中,程序段包括主函数段、功能模块段,功能模块段为主函数之外的函数按照功能模块划分得到,每个主函数段、功能模块段、数据段占用至少一个扇区;
所述的三取二判决过程中需要记录三取二判决不一致的次数。
一种计算机可读存储介质,所述的计算机可读存储介质存储有计算机程序,所述的计算机程序被处理器执行时实现如权利要求1-权利要求6任一所述方法的步骤。
一种DSP程序在轨重构和维护终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述的处理器执行所述的计算机程序时实现如权利要求1-权利要求6任一所述方法的步骤。
本发明与现有技术相比的优点在于:
(1)本发明通过FPGA、DSP和Flash构成的T型总线结构,由FPGA管理DSP程序的在轨重构、在轨维护和加载运行,具有电路设计简单、软件实现灵活的优点;
(2)本发明通过将DSP程序分段分扇区设计,将完全重构变为部分重构,只需要对程序变更部分进行重构,解决了大规模DSP程序在轨重构可行性和可操作性差的问题;
(3)本发明通过将DSP程序位流文件存储三份,并定时对三份数据进行自主纠错回写,确保了关键数据在复杂空间环境下的安全性。
附图说明
图1为DSP程序在轨重构和维护硬件电路;
图2为DSP程序位流文件存储结构;
图3为DSP程序在轨重构流程;
图4为DSP程序在轨维护流程。
具体实施方式
与公开文献中关于Xilinx公司FPGA程序在轨重构相比,本发明采用FPGA、DSP和Flash构成的T型总线结构,由FPGA管理总线控制权,分时执行DSP程序在轨重构、在轨维护和加载运行,同时,基于DSP程序的特点,采用分段分扇区的设计思路,将完全重构变为部分重构,提高了DSP程序在轨重构的可行性和可操作性。为了实现在轨重构功能,程序位流文件存储器选用了Nor Flash,为了弥补Nor Flash单粒子翻转不免疫的缺点,将位流文件存储三份,定时对三份数据进行纠错回写,确保位流文件的安全性。本发明依托原有硬件平台,在不增加硬件设计复杂度和成本的前提下,实现了DSP程序的在轨重构和维护。
1、硬件方案
DSP程序在轨重构和维护硬件电路如图1所示。
(1)FPGA、DSP和Flash三者构成T型总线,总线中包含信号OE、WE、EA[21:0]和ED[7:0],FPGA和DSP均可以访问Flash,其中,FPGA可以独立访问Flash的全部256Mb存储空间;而DSP一次可以访问Flash的32Mb存储空间,需要由FPGA配合控制Flash的CE[3:0]和EA22才可以访问Flash的全部256Mb存储空间。
(2)当DSP访问Flash时,FPGA根据一定的准则或指令要求将DSP输出的CE信号映射到Flash的片选信号CE[3:0]的其中一个,将EA22输出0b~1b共2种地址的一种。
(3)FPGA通过控制DSP和Flash的复位信号,管理总线控制权。
2、DSP程序在轨重构技术
DSP程序在轨重构即通过星地链路,将等待更新的DSP程序位流文件上注到卫星上,卫星正确接收到位流文件后,将原位流文件存储器中存储的数据更新,本发明由FPGA接收位流文件,将位流文件写入程序存储器Flash中。
(1)数据存储结构
DSP程序位流文件大小为16Mb,位流文件存储器选用Nor Flash,由四个基片组成,每个基片容量为64Mb,四个基片总容量为256Mb。
DSP程序位流文件存储结构如图2所示。基片一和基片二分别存储原始程序版本A和原始程序版本B,基片三和基片四分别存储重构程序版本A和重构程序版本B。卫星发射前,基片一和基片二中的存储的原始程序版本A和原始程序版本B即完成固化,卫星发射后,DSP程序在轨重构时,将重构程序版本存储于基片三和基片四。
由于Nor Flash单粒子翻转不免疫,具有一定的单粒子翻转概率,卫星在轨运行时,可能会由于单粒子翻转导致Nor Flash中的数据被异常改写,进而导致DSP软件功能异常。因此,每个基片中存储的程序版本均存储三份。DSP程序位流文件大小为16Mb,三份占用存储空间大小为48Mb,空闲16Mb。
(2)DSP程序在轨重构流程
DSP程序在轨重构流程如图3所示。
(21)进入重构模式:FPGA获取总线控制权,禁止DSP对Flash的读写操作。
(22)基片擦除:根据外部指令选择待重构的程序存储基片,FPGA对Flash发送基片擦除指令序列,对Flash的基片进行擦除,完成后返回擦除完成标志。
(23)程序位流文件写入:FPGA接收上注的位流文件帧,位流文件帧中包含位流文件的数据内容、数据长度以及写入地址,FPGA将位流文件数据写入Flash完成擦除基片的写入地址处,为了节约在轨重构时间,采用上注一份,写入三份的方式。
(24)扇区校验:位流文件全部写入后,采用异或和校验、累加和校验两种校验算法,逐扇区读取数据,计算校验结果,返回校验结果给地面,地面通过校验结果对程序位流文件写入的正确性进行确认。
(25)退出重构模式:FPGA释放总线控制权,DSP可以正常加载运行。
(3)分扇区部分重构
由于星地链路带宽有限,卫星对于测控中心并不是持续可见,而且位流文件越来越大,完全重构耗时较长,影响卫星的业务连续性。本发明采用分段分扇区的设计思路,将完全重构变为部分重构,提高了DSP程序在轨重构的可行性和可操作性。
Nor Flash以扇区为单位进行编程,扇区大小为512Kb,DSP程序位流文件大小为16Mb,占用扇区个数为32个。DSP程序分段分扇区的设计流程如下:
(31)按照扇区边界,将DSP程序分解为程序段和数据段。
(32)程序段进一步分段,主函数用于控制程序流程,单独分为一段;其他函数按照功能模块划分,每个功能模块单独分为一段;每个分段单独占用一个或几个扇区。
(33)数据段进一步分段,将较大的数组单独分为一段,其他变量分为一段;每个分段单独占用一个或几个扇区。
(34)在分段分扇区的基础上,可以根据DSP程序的变更情况,对部分扇区进行重构,DSP程序部分重构流程与完全重构流程相同,区别仅仅在于是对部分扇区进行重构还是全部扇区进行重构。
(4)DSP程序在轨维护流程
Flash每个基片中存储的程序版本均存储三份。但是,由于Flash单粒子翻转不免疫,具有一定的单粒子翻转概率,卫星在轨运行时,单粒子翻转会导致Nor Flash中的数据被异常改写。因此,需要通过实时读取三份数据,按位做三取二判决,判断发生单粒子翻转的扇区,对其进行回写纠错。DSP程序在轨维护流程如图4所示。
(41)进入维护模式:FPGA获取总线控制权,禁止DSP对Flash的读写操作。
(42)扇区数据读取:根据选择的待重构的程序存储基片,逐扇区读取数据,每次读取一个扇区的三份数据。
(43)三取二判决:将一个扇区的三份数据,按位做三取二判决,缓存三取二判决后的扇区数据,并记录三取二判决不一致的次数。
(44)如果三取二判决不一致的次数为零,则无单粒子翻转发生,退出维护模式。
(45)如果三取二判决不一致的次数不为零,则有单粒子翻转发生,将缓存三取二判决后的扇区数据回写到对应扇区,完成回写后退出维护模式。
针对DSP程序在轨重构和维护的需求,本发明依托现有硬件平台,在不增加硬件设计复杂度和成本的前提下,设计并实现了一种全面、可行的解决方案。
具体实现过程为:
(1)数据存储结构:位流文件存储器Nor Flash的四个基片中,两个基片用于存储原始程序版本,两个基片用于存储重构程序版本,每个基片中存储的程序版本均存储三份;
(2)在轨重构流程:FPGA接收上注的位流文件,根据位流文件中的信息将数据写入Nor Flash中当前程序的对应地址,为了节约在轨重构时间,采用上注一份,写入三份的方式;
(3)分扇区部分重构:按照扇区边界,将DSP程序中程序段和数据段分别进行分段,根据DSP程序的变更情况,对变更部分扇区进行重构;
(4)在轨维护流程:实时读取三份数据,按位做三取二判决,判断发生单粒子翻转的扇区,对其进行回写纠错,并完成DSP在线维护。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (8)
1.一种DSP程序在轨重构和维护方法,其特征在于包括如下步骤:
(1)将FPGA、DSP、Nor Flash构成T型总线,FPGA可独立访问Nor Flash的全部存储空间,DSP一次可访问Nor Flash的部分存储空间,FPGA控制DSP、Nor Flash的总线控制权;
(2)将DSP原始程序版本对应的位流文件存储在存储器Nor Flash的基片中,其中,存储器Nor Flash包括多个基片,至少1个基片存储原始程序版本,至少1个基片存储重构程序版本,每个基片中存储的存储原始程序版本、重构程序版本均存储三份,每个基片包括多个扇区;
(3)控制FPGA接收上注的重构程序版本对应的位流文件,并写入Nor Flash中当前重构程序版本对应的基片;
(4)FPGA对DSP原始程序版本、DSP重构程序版本中的程序段、数据段分别进行分段,根据DSP重构程序版本的变更情况,对变更扇区进行重构;
(5)FPGA实时读取DSP重构程序版本对应的三份数据,按位进行三取二判决,得到发生单粒子翻转的扇区,并根据三取二判决结果进行回写纠错、完成DSP在线维护。
2.根据权利要求1所述的一种DSP程序在轨重构和维护方法,其特征在于:所述的步骤(2)、步骤(3)、步骤(4)、步骤(5)的读取DSP重构程序版本对应的三份数据,按位进行三取二判决,得到发生单粒子翻转的扇区,根据三取二判决结果进行回写纠错过程需要FPGA获取总线控制权,禁止DSP对Nor Flash的读写操作。
3.根据权利要求1所述的一种DSP程序在轨重构和维护方法,其特征在于:所述的步骤(3)之前还包括如下步骤:
根据外部指令选择待重构的原始程序版本对应的基片,控制FPGA对Nor Flash发送擦除指令,完成对应的基片擦除,并返回擦除完成标志至地面。
4.根据权利要求1或2所述的一种DSP程序在轨重构和维护方法,其特征在于:所述的步骤(4)完成后根据校验算法逐扇区读取数据,计算校验结果,并返回校验结果给地面。
5.根据权利要求1或2所述的一种DSP程序在轨重构和维护方法,其特征在于:所述的步骤(4)将DSP原始程序版本、DSP重构程序版本分解为程序段、数据段;其中,程序段包括主函数段、功能模块段,功能模块段为主函数之外的函数按照功能模块划分得到,每个主函数段、功能模块段、数据段占用至少一个扇区。
6.根据权利要求1或2所述的一种DSP程序在轨重构和维护方法,其特征在于:所述的三取二判决过程中需要记录三取二判决不一致的次数。
7.一种计算机可读存储介质,所述的计算机可读存储介质存储有计算机程序,其特征在于,所述的计算机程序被处理器执行时实现如权利要求1-权利要求6任一所述方法的步骤。
8.一种DSP程序在轨重构和维护终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于:所述的处理器执行所述的计算机程序时实现如权利要求1-权利要求6任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811260595.9A CN109491707B (zh) | 2018-10-26 | 2018-10-26 | 一种dsp程序在轨重构和维护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811260595.9A CN109491707B (zh) | 2018-10-26 | 2018-10-26 | 一种dsp程序在轨重构和维护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109491707A CN109491707A (zh) | 2019-03-19 |
CN109491707B true CN109491707B (zh) | 2022-03-04 |
Family
ID=65691739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811260595.9A Active CN109491707B (zh) | 2018-10-26 | 2018-10-26 | 一种dsp程序在轨重构和维护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109491707B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110333881B (zh) * | 2019-03-22 | 2022-09-16 | 中国电子科技集团公司第五十四研究所 | 一种基于星载fpga处理的载荷类设备软件在轨重构方法 |
CN111190772B (zh) * | 2020-01-02 | 2023-03-31 | 上海航天测控通信研究所 | 抗空间单粒子翻转的dsp二级启动系统及其方法 |
CN111522693B (zh) * | 2020-04-20 | 2024-01-09 | 中国航天科工集团八五一一研究所 | 增强卫星平台可靠性的在线重构方法 |
CN111880841A (zh) * | 2020-07-28 | 2020-11-03 | 西安微电子技术研究所 | 一种星载固态存储器的程序重构方法、系统及设备 |
CN112099832B (zh) * | 2020-11-04 | 2021-04-20 | 中国人民解放军国防科技大学 | 星载设备的单粒子翻转恢复方法及系统 |
CN114313314A (zh) * | 2021-12-31 | 2022-04-12 | 浙江时空道宇科技有限公司 | 一种卫星在轨数字基带平台 |
CN117667167B (zh) * | 2024-01-31 | 2024-05-07 | 兰州空间技术物理研究所 | 一种星载dsp软件在轨重构方法、装置、存储介质及终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063292A (zh) * | 2014-06-27 | 2014-09-24 | 中国航天科技集团公司第五研究院第五一三研究所 | 一种在轨可重构方法 |
CN105577262A (zh) * | 2015-12-16 | 2016-05-11 | 西安空间无线电技术研究所 | 一种基于星间链路收发设备的星载fpga重构系统及重构方法 |
CN108052355A (zh) * | 2017-11-22 | 2018-05-18 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 星载载荷单元软件在轨重组方法 |
CN108446189A (zh) * | 2018-06-12 | 2018-08-24 | 中国科学院上海技术物理研究所 | 一种星载嵌入式软件容错启动系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170243084A1 (en) * | 2015-11-06 | 2017-08-24 | The Regents Of The University Of California | Dsp-sift: domain-size pooling for image descriptors for image matching and other applications |
-
2018
- 2018-10-26 CN CN201811260595.9A patent/CN109491707B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063292A (zh) * | 2014-06-27 | 2014-09-24 | 中国航天科技集团公司第五研究院第五一三研究所 | 一种在轨可重构方法 |
CN105577262A (zh) * | 2015-12-16 | 2016-05-11 | 西安空间无线电技术研究所 | 一种基于星间链路收发设备的星载fpga重构系统及重构方法 |
CN108052355A (zh) * | 2017-11-22 | 2018-05-18 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 星载载荷单元软件在轨重组方法 |
CN108446189A (zh) * | 2018-06-12 | 2018-08-24 | 中国科学院上海技术物理研究所 | 一种星载嵌入式软件容错启动系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109491707A (zh) | 2019-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491707B (zh) | 一种dsp程序在轨重构和维护方法 | |
US8484408B2 (en) | Storage system cache with flash memory in a raid configuration that commits writes as full stripes | |
US8583868B2 (en) | Storage system cache using flash memory with direct block access | |
US8180953B2 (en) | Data accessing method for flash memory, and storage system and controller system thereof | |
CN103403691B (zh) | 信息处理装置、外部储存装置、主机装置、中继装置、信息处理装置的控制方法 | |
US9043536B2 (en) | Method of recording mapping information, and memory controller and memory storage apparatus using the same | |
CN106681654B (zh) | 映射表载入方法与存储器存储装置 | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US20190087348A1 (en) | Data backup method, data recovery method and storage controller | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US8214698B2 (en) | Solid state storage system with improved data merging efficiency and control method thereof | |
CN107710169A (zh) | 一种闪存设备的访问方法和装置 | |
CN104102585A (zh) | 映射信息记录方法、存储器控制器与存储器储存装置 | |
CN104636267B (zh) | 存储器控制方法、存储器存储装置与存储器控制电路单元 | |
CN106445401B (zh) | 表格更新方法、存储器储存装置及存储器控制电路单元 | |
US20130166991A1 (en) | Non-Volatile Semiconductor Memory Device Using Mats with Error Detection and Correction and Methods of Managing the Same | |
TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US20120317341A1 (en) | Memory controller and non-volatile storage device | |
CN111414320B (zh) | 基于日志文件系统的非易失内存构建磁盘cache的方法及系统 | |
US8943289B2 (en) | Data moving method for flash memory module, and memory controller and memory storage apparatus using the same | |
CN103136111A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
TWI516934B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9183081B2 (en) | Systems and methods for performing defect detection and data recovery in a memory system | |
TWI446170B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN106648443B (zh) | 有效数据合并方法、存储器控制器与存储器存储装置 |
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 |