易失性存储器的程序重注方案研究与应用

2017-11-09 01:11
单片机与嵌入式系统应用 2017年10期
关键词:程序运行存储器中断

(中国科学院 红外探测与成像技术重点实验室,上海 200083)

易失性存储器的程序重注方案研究与应用

刘德胜,王淦泉

(中国科学院 红外探测与成像技术重点实验室,上海 200083)

本文对在轨程序重注方法和工程实现进行了研究,基于第二代地球同步轨道气象卫星“风云四号”扫描成像辐射计扫描控制系统,提出了一种可靠的基于易失性存储器的在轨程序重注方法。介绍了系统的组成、程序重注的方案、程序执行的流程以及验证的方法。试验结果证明,该方案能够在无需重启的情况下实现在轨引导地面重注的新程序运行。

程序重注;在轨编程;易失性存储器;风云四号

引 言

长寿命卫星对系统的可靠性、可维护性有很高的要求,因此应具有在轨程序重注的功能,以便于消除软件的自身故障、根据在轨运行情况更改控制规律以及根据需求的变化扩充控制功能。国际上重要的卫星系统都具有程序在轨修改的功能,美国的GPS卫星系统强调通过从地面上载升级软件来提升卫星总体性能,欧洲空间局己经建立了一套完整的工作平台,用于支持新程序的生成并经上行信道注入到航天器数管系统中[2]。

作为中国新一代地球同步轨道气象卫星“风云四号”的主载荷之一,扫描成像辐射计需要实现不间断连续对地观测。“风云四号”扫描辐射计主要由光学、主体结构、扫描机构、探测器、电子、辐射制冷器、定标机构、热控等组成。二维扫描成像技术是辐射计的关键技术之一,如何保证扫描系统稳定指向精度和面型质量,以及解决长寿命运动问题是系统设计的重要内容[1]。为了提高扫描控制系统的可靠性和可维护性,采取了多种手段和措施,其中程序在轨重注是重要的一个手段和措施。

1 系统组成

扫描控制系统的结构示意图如图1所示,载荷中的仪器管理单元(ICU)通过1553B接收卫星数管计算发送的指令,并将其通过串口转发给扫描控制系统的FPGA。FPGA负责接收、解析指令,将相应的参数存储在对应的地址,然后以固定的频率申请CPU外部中断,通知CPU读取。CPU响应中断后从FPGA读取数据进行运算,将运算的结果返回FPGA。FPGA根据运算的数据控制伺服电机运动。

图1 扫描控制系统结构示意图

正常工作模式下,CPU只响应外部中断,和FPGA之间的串口连接没有启用,FPGA和CPU之间的串口只在程序重注时使用。

2 程序重注方法研究

在轨重注程序有两种方法:软件驻留在易失性存储器上的重配置方法和软件驻留在非易失性存储器上的重配置方法。第一种方法,掉电后注入的软件消失,重新上电时需再次注入程序,对易失性存储器的资源冗余量要求较大,软件注入时可不停止正在运行的软件;第二种方法,掉电后注入的软件不会消失,对系统没有额外的需求,软件注入时不需要停止正在运行的软件。参考文献[2]对这两种方法的优缺点进行了对比,第一种方法更适合持续性工作的航天器[2]。“风云四号”作为气象卫星,在轨调试完成交付正式业务运行后需要全天不间断承担对地观测任务。另外,扫描控制部分的易失性存储器SRAM设计余量较大,使用率在20%以下,因此第一种在轨重注方法更合适。

由于FPGA接收ICU发送的指令和数据,CPU不直接和ICU通信,因此存在两种方式将在轨重注的程序发送给CPU:①ICU将在轨重注的程序发送给FPGA,FPGA再将程序传送给CPU,并完成CPU新程序的引导和运行;②进行程序重注时,FPGA将ICU和CPU的串口直接相连,ICU直接将在轨重注的指令和程序发送给CPU,并完成新的CPU程序的引导和运行,然后通知FPGA切断ICU和CPU串口通信,收回和ICU的通信权限。

第一种方式实时性较差,需要通过FPGA转发。指令返回码由FPGA发出,不能通过指令返回码确认重注程序是否准确存储于SRAM中指定的地址和CPU此时的工作状态。第二种方式可以实时将重注的程序存储在SRAM中,ICU可以直接发送对CPU的操作指令,完成新程序的引导和运行。程序重注的指令返回码由CPU直接发出,能够通过指令返回码确认重注程序是否准确地存储于SRAM指定的位置,以及CPU此时的工作状态是否正常。两种方式的对比如表1所列。

表1 CPU接收在轨重注程序方式比较

根据以上分析,可以采用第二种方式。程序重注的方案是,首先由地面经ICU发出串口切换到CPU的指令,扫描控制FPGA接收到该指令后,经过和CPU交互,将ICU的串口和CPU的串口直接相连,地面经过ICU直接将重注的程序发送到CPU的SRAM中存储,并通过指令引导新程序运行。CPU程序运行起来后通过传输完成信号通知FPGA断开ICU和CPU之间的串口通信,FPGA收回和ICU的通信权限,恢复正常工作流程。

3 在轨软件重注方法实现

3.1 方案概述

当进行程序重注时,FPGA将ICU的串口和CPU的串口直接相连,FPGA此时不再接收ICU发送的指令。当程序重注完成后,CPU将传输完成信号线置为高电平,通知FPGA将ICU和CPU之间的串口断开,FPGA恢复接收指令,程序重注完成,系统恢复正常工作流程。

为了保证正常工作时不受干扰,CPU串口中断在正常工作模式下是关闭的,在程序重注的时候才打开,重注完成后重新关闭串口中断。为了保证程序重注的时候不受干扰,CPU的外部中断在程序重注的时候是关闭的,完成后再开启。为了实现以上功能,在FPGA通过外部中断发送给CPU的数据中有“串口切换请求标志字”UART_REQ和“CPU外部中断关闭标志字”EXT_INT_OFF,用于打开CPU的串口中断和关闭外部中断。UART_REQ的值为二进制111B时表示开启串口中断,为二进制000B时表示关闭串口中断;EXT_INT_OFF的值为二进制111B时表示关闭外部中断,为二进制000B时表示开启外部中断。

3.2 程序执行流程

程序重注的流程图如图2所示。

具体流程如下:在进行程序重注时,地面发出“串口切换到CPU指令” 。FPGA收到该指令后,将“串口切换请求标志字”赋值111B,并通过外部中断通知CPU来读取。CPU读到该值为111B时,将地址“CPU收到串口切换请求标志字”置为11B。FPGA收到后,在ICU和FPGA没有通信时将ICU的串口和CPU的串口直接相连,然后将“CPU外部中断关闭标志字(EXT_INT_OFF)”赋值111B,并通过外部中断通知CPU来读取。FPGA进入等待状态,等待“通信传输完成信号”为高电平。CPU读到“CPU外部中断关闭标志字”为111B时,将外部中断关闭,打开串口中断,将“CPU收到串口切换标志字”置为00B,并向ICU返回串口切换指令完成返回码,等待ICU发送程序重注指令。CPU此时可以通过串口和ICU直接通信。绕过FPGA,ICU直接将上注的程序发送给CPU,存储在RAM保留区域。

图2 程序重注流程图

完成程序上注后,ICU发送新程序执行指令。CPU收到该指令后,将串口中断关闭,将“通信传输完成信号”置为高电平,等待10 ms后将“通信传输完成信号”置为低电平,然后将指针指向新程序的起始位置,引导新程序运行。FPGA检测到传输完成信号线为高电平后,将ICU和CPU的串口断开,恢复FPGA和ICU的通信。FPGA检测到“传输完成信号”为低电平后,向ICU返回新程序运行指令返回码。FPGA恢复接收正常工作指令,并执行正常的工作流程操作。

3.3 可靠性设计

由于地球同步轨道的空间环境较为恶劣,单粒子和其他空间离子辐射情况较严重,容易引起程序运行异常,因此除了三模冗余外,程序重注还采取了以下可靠性设计:

① 为了防止扫描机构正在运动时进行程序重注,导致机构控制异常,因此规定在进行程序重注之前,必须先发送机构返回指令,此时扫描机构处于静止状态。

② 为了防止由于单粒子效应打翻标志位参数,导致FPGA误将与ICU的通信权限交给CPU,FPGA和CPU交互的参数采用多位形式,同时交互参数具有自恢复能力。

③ 为了防止在CPU没有响应的情况下FPGA将与ICU通信的权限交给CPU后,导致和ICU乃至地面通信中断,FPGA在发起串口切换信号时,2 s内要收到CPU的响应,否则终止将通信权限交给CPU。

④ 为了防止CPU外部中断和串口中断的冲突,在进行程序重注的时候关闭外部中断,打开串口中断,在正常工作模式的时候,关闭串口中断,打开外部中断。

⑤ 为了防止通信错误,对每一包重注的指令进行和校验检查,如果校验错误,通过指令返回码告知地面重新发送对应的程序包。可靠性设计措施如表2所列。

表2 可靠性设计措施

3.4 方案验证

通过ICU发送“串口切换到CPU指令”,将ICU和CPU的串口直接相连进行通信。用地检设备将CPU新程序的二进制文件分割为246个字节一条指令,通过程序上注指令一条一条地将新程序上注给CPU,并放入RAM内对应的地址。上注完成后发送新程序执行指令,控制CPU将指针指向新程序的起始地址,引导新程序运行。由于遥测中有程序标志字,可以通过该值判断新程序是否运行。通过观察程序标志字的值,发现新程序运行后,程序标志字的值已经改为新程序的值,新程序已经运行。

结 语

[1] 王淦泉,陈桂林.地球同步轨道二维扫描红外成像技术[J].红外与激光工程,2014(2):429-433.

[2] 陶晓霞,钟兴旺,吴国春.星载嵌入式处理器软件在轨重配置技术研究[J].空间电子技术,2008(3):68-71.

[3] 张然峰,郝贤鹏,金龙旭,等.空间相机软件在轨重注方法研究与实现[J].光机电信息,2011(6):30-34.

[4] 武星星,刘金国,周怀得,等.DSP空间相机控制器的在轨程序重注[J].单片机与嵌入式系统应用,2011(4):26-29.

[5] 徐伟,朴永杰.航天相机控制器在轨软件重注[J].光电工程,2013(4):65-71.

[6] 周建,段登平,王建宇.小卫星设计中软件重注入的关键技术研究[J].空间科学学报,2002(7):275-281.

[7] 吴国春,钟兴旺,陶晓霞.星载软件在轨重配置中断处理机制研究[J].空间电子技术,2011(2):65-70.

[8] 朱亚杰,王劲强,石志成,等.一种基于向量表的在轨程序上注方法的研究[J].电子设计工程,2013(6):140-143.

[9] 朱虹,王海燕.一种星载软件在轨编程功能的设计和实现技术[J].上海航天,2004(1):26-31.

[10] 张迎献.基于嵌入式系统的软件注入技术研究[J].湖南工业职业技术学院学报,2006,6(2):28-29.

刘德胜(工程师),主要研究方向为空间高精度伺服控制。

征订启事 《单片机与嵌入式系统应用》为中国科技核心期刊(月刊),每月1日出版。邮发代号:2-765。2018年每期定价20元,全年240元。欢迎广大读者从邮局订阅,或关注微信公众号mcuworld(可扫描下方二维码)购买本刊及其电子刊。地址:北京市海淀区学院路37号《单片机与嵌入式系统应用》杂志社邮编:100191 电话:010⁃82338009 传真:010⁃82317043开户银行:北京银行学院路支行户名:《单片机与嵌入式系统应用》杂志社有限公司账号:01090339100120111029936网址:www.mesnet.com.cnEmail:mesnet@mesnet.com.cn

ResearchandApplicationofProgramReloadingBasedonVolatileMemory

LiuDesheng,WangGanquan

(Key Laboratory of Infrared System Detection and Imaging Technology,CAS,Shanghai 200083,China)

In the paper,the on-orbit program reloading method is researched,and a practical on-orbit program reloading method based on the volatile memory is proposed.This method runs at the sweeping control system of scanning imagery radiometer in FY-4 which is the Chinese second generation geostationary weather satellite.The composition of the system,the scheme of program reloading,the process of program execution and the method of verification are introduced.The test results show that the scheme can reload the new program reliably without power off.

program reloading;on-orbit program;volatile memory;FY-4

TP311

A

2017-05-23)

猜你喜欢
程序运行存储器中断
静态随机存储器在轨自检算法
行政公益诉讼诉前程序运行检视
跟踪导练(二)(5)
千里移防,卫勤保障不中断
论刑事错案的成因
存储器——安格尔(墨西哥)▲
基于Nand Flash的高速存储器结构设计
AT89C51与中断有关的寄存器功能表解
FPGA内嵌PowerPC的中断响应分析
浅谈对富士变频器5000G9S的程序设定与运行调试的方法