汪慧敏,王明惠
(中国空空导弹研究院,河南 洛阳 471009)
随着飞行器技术的发展,对飞行控制软件(以下简称飞控软件)提出更高的要求,不仅要求解算速度快,且处理的控制算法也越来越复杂,使得计算量变大,占用了大量的时间,造成飞控软件机时紧张,不满足时间余量20%的要求[1]。一个DSP 的计算控制能力已经不能满足型号研制需求,综合考虑多种方案,就技术的成熟性、可行性及型号研制周期考虑,在计算机的计算能力没有足够裕量的条件下采用双DSP方案,即采用2 块DSP 芯片。双DSP 系统的优点在于可以通过计算能力的均匀分布,使系统具有较好的冗余能力、更快的处理速度、模块化的体系结构[2]。
双DSP 方案选用型号研制中已经成熟应用的DSP 作为处理器,采用主从式设计结构[3]。主从DSP 协调配合,共同完成软件功能。该方案DSP 选型相同,相对原来的设计改动比较小,硬件设计和操作系统设计相似,大部分可继承原来的设计,既缩短了研制时间,又减少了研制风险。
双DSP 方案硬件上主要增加了1 个DSP 以及2 个DSP通讯用的双口RAM[4],2 个DSP 之间采用GPIO (通用IO)接口作为同步信号。主DSP 与外围接口通讯,从DSP 通过双口RAM 与主DSP 通讯,交换数据。主DSP 处理飞控计算机外部的中断,中断可分为定时触发的中断(INT0 中断以及INT1 中断)以及非定时触发的中断(INT2 中断等)。从DSP响应INT0 中断以及INT1 中断,由主DSP 向从DSP 发送信号,通知从DSP,使从DSP 响应中断,与主DSP 同步处理数据。从DSP 中断控制是由主DSP 通过软件实现的,灵活性强。
基于双DSP 设计,就要对主从DSP 上运行的飞控软件进行合理的任务分配。综合考虑机时余量、通讯、可靠性等,根据软件的结构特点和各模块软件运行时间进行分析,稳定算法运行时间较长,约占整个软件运行机时的40%,且稳定算法相对独立,只在自主段执行,和其它模块交互的信息相对单一。因此把稳定算法放在从DSP 上实现。
1)主DSP 完成工作
a)设置并产生(输出)从DSP 的中断(INT0,INT1(暂时不用));
b)与从DSP 进行信息交换;
c)与所有硬件及接口的信息交换工作;
d)飞控软件时序调度。
2)从DSP 完成工作
a)响应INT0、INT1 中断;
b)飞控稳定算法计算工作;
c) 与主DSP 进行信息交换。
为了防止程序烧写错误,飞控软件主从DSP 上运行的为同一工程,所有存储区影射完全相同。依据主从DSP 标志(主DSP 上运行ProgFlag=1 的分支,从DSP 上运行ProgFlag=0 的分支)运行同一工程不同的程序分支。
飞控软件处理流程见图1。
从DSP 的中断的产生是由主DSP 控制的,为了尽量避免稳定算法利用的角速度(从导航算法来)的延迟,当主DSP导航模块计算出角增量后,向从DSP 发出中断使能信号,从DSP 产生中断。导航模块处理流程见图2。
针对当前的飞控软件版本,根据双DSP 飞控软件设计方案,形成了双DSP 下的飞控软件。软件代码经走查分析[5]确认无误后,在双DSP 样机上,利用飞控软件实时仿真系统进行了系统仿真验证。
软件实时动态仿真系统[6]采用基于嵌入式软件半实物仿真的思想进行开发。该系统采用真实的飞控计算机作为飞控软件运行的载体,用软件模拟飞控系统发挥功能所需要的外部模型,用硬件接口板和实时操作系统实现两者间的高速实时通信,用硬件中断源驱动软件和模型的运行,建立了一个实时动态的飞控软件运行环境,较为真实地模拟出飞控软件的运行环境。
图1 飞控软件处理流程
图2 导航模块处理流程
根据软件仿真大纲规定的仿真条件,对同一技术状态的单DSP 和双DSP 方案的软件进行仿真,将各条件仿真结果进行对比,关键参数一致。另外对关键参数仿真曲线进行对比,见图3 和图4。图3、4 中实线INY_s、INZ_s 分别为Y、Z向控制指令单DSP 仿真曲线,虚线INY_t、INZ_t 分别为Y、Z向控制指令双DSP 仿真曲线,从图3、4 中可以看出曲线吻合较好,说明双DSP 方案飞控软件正确实现算法功能。
图3 Y 向控制指令
图4 Z 向控制指令
实行双DSP 方案后,计算机的处理能力提高了一倍。根据现阶段软件模块工作时间计算,分配到两个DSP 后,主从DSP 机时均至少留有40%的余量。
采用双DSP 方案设计,计算机的处理能力大大提高。且双DSP 方案硬件设计改动小,软件设计继承性强,因此研制周期短,研制风险低。该项目可以供研制周期短,研制经费紧张的项目借鉴或使用,提供了多DSP 数据处理器并行控制的可行性。
[1]张文山,罗生.嵌入式系统软件实现常见问题分析[J].航空兵器,2007(6):47-49.
[2]戈和伟,田高礼.双余度DSP 数据采集装置在某型控制器中的应用[J].物联网技术,2012(11):42-46.
[3]宋健,李树广. 基于双DSP 的数据采集控制系统设计[J].测控技术,2010,29(3):31-33.
[4]秦鸿刚,刘京科,吴迪.基于FPGA 的双口RAM 实现及应用[J].电子设计工程,2010,18(2):72-74.
[5]宋龙,张文山,靳凌.空空导弹弹载制导控制系统软件的关键技术研究[J].航空兵器,2004(2):19-22.
[6]王明惠,刘增明,吕梅柏.一种基于DSP 目标板的嵌入式软件仿真系统设计[J].航空兵器,2011(1):52-55.
[7]董成基,齐杏林,吕静,等.飞行控制软件测试用例生成技术[J].兵工自动化,2012(9):93-96.