霍 宏 李兰兰 刘卫东 汪 洋
北京航天自动控制研究所,北京 100854
基于TMS320C6701的飞行软件加载模式研究
霍 宏 李兰兰 刘卫东 汪 洋
北京航天自动控制研究所,北京 100854
TMS320C6701具有很好的抗辐照特性,适用于深空探测和长时间在轨飞行,在运载火箭上面级领域的飞行软件中得到广泛应用。如何通过优化TMS320C6701的加载模式、制定加载策略,提高飞行软件运行速度以满足实时性要求成为当前研究的热点和难点。本文详细介绍了TMS320C6701的引导方式,提出了基于TMS320C6701的飞行软件三级加载模式和加载策略,能最大限度的减少飞行软件运行时间,提高系统性能。实际应用验证了该方法对飞行软件设计具有一定的实用价值和借鉴意义。
TMS320C6701;飞行软件;三级加载
随着我国运载火箭的发展,为了进一步适应国际化市场需求,运载火箭上面级技术和多星发射技术研究成为当前研究的难点和热点。运载火箭上面级具备多次起动、长时间工作、自主飞行等技术特点,为了更好的适应上面级在深空长时间在轨飞行,要求上面级飞行软件具有抗辐照特性,对于深空单粒子翻转具有容错性。为了满足上面级飞行软件可靠性和安全性的要求,上面级飞行软件规模越来越大,算法越来越复杂,对大容量的数据存储以及实时运算的要求也越来越高。因此,上面级飞行软件对DSP芯片的性能要求越来越高,如何有效的对DSP芯片存储空间进行分配,优化DSP芯片的加载模式成为当前的研究热点[1-2]。宇航级DSP芯片TMS320C6701与其他DSP芯片相比,具有抗辐照等特性,更适合于上面级飞行软件的要求[3],本文在对TMS320C6701引导方式研究的基础上,提出了基于TMS320C6701的飞行软件的三级加载模式和加载策略,对提高飞行软件运行速度,满足系统实时性要求具有一定的实用价值和借鉴意义。
1.1 概述
宇航级DSP芯片TMS320C6701为通用32位浮点DSP处理器,DSP采用改进的超长指令字(VLIW)体系结构和多流水线技术,具有8个可并行的功能单元[4],高度的并行结构特点、高速的时钟频率使其具有高达1600MIPS运算能力,比通常使用的DSP计算速度快十几倍,再加上其具有并行执行、多功能、多任务的能力和丰富的指令集以及体积小、功耗低、易于使用的特点,使它非常适合在嵌入式实时系统中应用[5],但其内部程序空间和数据空间独立编址,且内部程序空间和内部数据空间容量仅为64K字节,在使用上不如C6713等其他C6000系列的芯片灵活和方便,但宇航级DSP芯片TMS320C6701具有很好的抗辐照特性,适用于深空探测和长时间在轨飞行,对于单粒子翻转等问题具有一定的保护作用,在运载火箭上面级领域得到广泛应用[6]。由于TMS320C6701内部程序空间仅有64K字节的空间,内部程序空间运行效率远远高于外部空间,随着飞行软件对实时性要求越来越高,如何优化引导方式,充分利用内部程序空间,保证飞行软件实时运行,满足系统性能要求已成为当前的研究难点。
1.2 引导方式
TMS320C6701提供了3种引导方式:不引导、片外ROM/FLASH引导以及通过主接口引导[7]。
1) 不引导:CPU 直接开始执行地址0 处的存储器中的指令;
2) ROM/FLASH引导:位于外部 CE1 空间的ROM中64K字节的程序首先通过DMA被搬入地址0,然后开始执行地址0 处的指令,如图1所示;
3) 主机引导:外部主机通过主机口初始化 CPU 的存储空间,初始化完成后,将主机口控制寄存器中的DSPINT 位设置为1 ,结束引导过程,开始执行地址 0 处的指令。
图1 TMS320C6701 ROM/FLASH模式启动过程
3种引导方式的优缺点如表1所示,在实际嵌入式DSP飞行软件应用系统中,最广泛采用的是第2种:片外ROM/FLASH引导加载方式[8]。
表1 3种引导方式比较
上面级飞行软件为嵌入式软件,不存在主机设备,且程序规模大、运行要求灵活,因此基于TMS320C6701的飞行软件应采用第2种引导方式。TMS320C6701指令周期比外设FLASH存储器的存取时间快100倍左右,如果让程序在ROM/FLASH中直接运行,势必会大大降低DSP处理器的运行速率和效率[9],由于飞行软件对算法的实时性要求,要求飞行程序必须在内部RAM或外部RAM运行,这就需要将程序执行代码由外部FLASH拷贝到内部RAM或外部RAM中去,并在内部RAM或外部RAM中运行[10]。
64K字节的内部程序空间在中小规模飞行软件中已够用,但对于大规模复杂上面级飞行软件通常是不够用的,为了优化上面级飞行软件的加载模式,可采用三级引导加载模式,将有限容量的程序指令代码设计成三级引导代码。一级加载完成后相继执行二级引导代码,二级加载完成后相继执行三级引导代码。上面级飞行软件一般包括3部分,分别是Bootloader程序、监控程序、飞行程序,它们分别固化在Flash中的不同位置。
1) 一级加载:在TMS320C6701复位后,由硬件通过DMA方式从TMS320C6701外部CE1空间拷贝64K字节代码到内部0地址的高速RAM中,并从内部0地址开始执行Bootloader程序;
2) 二级加载:Bootloader程序根据监控程序存放的地址负责加载监控程序,并启动监控程序运行;
3) 三级加载:监控程序根据PC机指令有选择性的加载飞行程序,并启动飞行程序运行,实现具体的应用程序及算法。
三级加载的流程如图2所示,通过三级加载的方法将实际工作的存于片外慢速非易失程序存储器的指令代码搬移到片内或片外高速RAM中运行,以保证系统对飞行软件实时性的要求。
图2 三级加载流程
根据飞行软件规模及算法时间性能要求,监控程序分为占用内部RAM空间和不占用内部RAM空间2种情况,加载策略如图3和4所示。
2种情况下的三级加载策略为系统上电复位后,根据引导方式配置,自动从外部FLASH复制Bootloader程序到内部RAM,Bootloader程序从地址0处自动运行,将监控程序从外部FLASH中加载到片内RAM空间或者片外RAM空间,并启动监控程序执行,监控程序等待地面的数据搬移指令,接收到指令后,根据CMD文件要求通过DMA方式将飞行程序中的数据段和程序段分别加载到片内和片外的指定RAM空间,通过三级加载的方式,可以使飞行程序充分利用片内64K字节的RAM空间,使片内RAM空间尽可能多的存放飞行程序中实时性要求高的算法代码,提高算法的运行效率,满足算法运行时间的要求,最大限度的提高飞行软件的运行速度,满足系统实时性的要求。
图3 监控程序占用内部程序空间
基于飞行软件三级加载模式和加载策略,结合某运载火箭上面级星光导航飞行软件的需求,软件规模如表2所示,要求飞行软件在采样周期500ms内完成实时性要求高的算法部分。
表2 星光导航飞行软件规模
根据分析,内部程序空间为64K字节,而实时性要求高的算法占用60K字节,因此监控程序可以占用内部程序空间。在宇航级DSP芯片TMS320C6701其余配置相同的情况下,根据星光导航飞行软件的运行位置,采用以下2种方式对飞行软件运行时间进行分析,结果如表3所示。
1)片内RAM+片外RAM运行:采用三级加载策略,将实时性要求高的算法部分放在片内RAM运行,将其余部分放在片外RAM运行;
2)片外RAM运行:将飞行软件全部放在片外RAM运行。
表3 运行时间结果
通过实例分析,只有采用三级加载模式和加载策略,才能满足星光导航飞行软件在500ms周期内完成实时性要求高的算法的要求,三级加载模式和加载策略在实际应用中得到了验证。
研究了基于TMS320C6701的飞行软件的加载模式,利用三级加载模式和加载策略能够很好的保证飞行软件功能和性能要求。本文提出的方法在某运载火箭上面级的飞行软件中得到验证,证明本方法能够最大限度的利用TMS320C6701内部RAM空间、最大限度的提高飞行软件的运行效率、降低飞行软件的运行时间,对基于TMS320C6701的飞行软件的设计开发具有一定的借鉴作用,具有很大的实用价值。
[1] 陶锐, 周学军.数字信号处理器(DSP)自举加载技术的应用[J].电子测量技术,2006, 29(3): 67-69.(TAO Rui, ZHOU Xuejun. Application of the DSP Bootloader Technique[J].Electronic Measurement Technology, 2006, 29(3): 67-69.)
[2] 邓欢欢,穆占杰.基于C6000系列DSP片外flash自启动方法[J].信息化研究,2011, 37(5): 34-37.( DENG Huanhuan, MU Zhanjie. Research of Self-starting Based on C6000 DSP External Flash[J].Electronic Engineer, 2011, 37(5): 34-37.)
[3] 任丽香,马淑芬.TMS320C6000系统DSPs原理与应用[M].北京:电子工业出版社, 2001.(REN Lixiang, MA Shufen. Principle and Application of the TMS320C6000 DSPs System[M].Beijing: Electronics Industry Press, 2001.)
[4] Li D, Li W. Study of Two Adaptive Beam-Forming Algorithms[M]. Springer London, 2012: 1447-1454.
[5] 郑存红,赵瑞峰.DSP6701在数据图像处理中的应用[J].光学与光电技术, 2004,2(5): 54-57.( ZHENG Cunhong, ZHAO Ruifeng. Application of DSP6701 in Digital Image Processing[J]. Optics & Optoelectronic Technology, 2004,2(5): 54-57.)
[6] Zhang K, Chen S, Xiao S. Anti-Radiation Design and Irradiation Test of Antifuse FPGA[J]. Baghdad, Iraq, 2012:2111-2114.
[7] TI Inc.TMS320C620x/C670x DSP Boot Modes and Configuration Reference Guide[R].2003-06.
[8] TI Inc.TMS320C6000 DSP External Memory Interface (EMIF) Reference Guide[R].2007-04.
[9] TI Inc.TMS320C6000 DSP Peripherals Overview Reference Guide[R].2009-07.
[10] 陈代媛.C6000 外部FLASH 在线编程引导技术[J] . 电讯技术, 2009, 49(5) : 86-88. (CHEN Daiyuan. External FLASH Memory′s Bootloader System for C6000[J]. Telecommunication Engineering, 2009, 49(5): 86-88.)
Research of Three-Level Loading Mode Based on TMS320C6701 for the Flight Software
HUO Hong LI Lanlan LIU Weidong WANG Yang
Beijing Aerospace Automatic Control Institute,Beijing 100854,China
Duetothefairanti-radiationofTMS320C6701,itissuitableforthedeep-spaceexplorationandthelong-termorbit.Itispopularlyusedfortheflightsoftwareinupperstageareaofthelaunchvehicle.HowtooptimizethebootmodesandmakethebootstrategiesofTMS320C6701toimprovetheflightsoftwarespeedandsatisfythereal-timerequirementhasbecomeahottopic.BasedontheresearchofthebootmodesofTMS320C6701,thethree-levelloadingmethodandstrategyfortheflightsoftwareisproposedinthispaper.Itcanreducetheflightsoftwarerunningtimeandenhancesystemperformanceatthemost.Themethodisusedinpracticeandcanserveasareferenceforthedesignoftheflightsoftware.
TMS320C6701;Flightsoftware;Three-levelloading
2013-06-29
霍 宏(1986-),女,黑龙江人,助理工程师,主要研究方向为嵌入式软件设计;李兰兰(1982-),女,河南人,工程师,主要研究方向为嵌入式软件设计;刘卫东(1979-),男,山东人,工程师,主要研究方向为嵌入式软件设计;汪 洋(1982-),女,河北人,工程师,主要研究方向为嵌入式软件设计。
TP302
A
1006-3242(2014)01-0085-04