style="margin: 26px 0px; padding: 0px; line-height: 2em; color: rgb(37, 37, 37); text-align: left;"> 中断服务程序每1 ms运行一次,每次首先查询导引头和惯导有没有更新数据,再读取新数据存储在全局结构体里。每6ms用全局结构体里得到的新数据解算一次飞控指令,得到舵机的输出角度,输出舵控指令,控制舵机。流程如图6所示。
3.2.2 底层软件设计
DSP底层软件主要完成外部数据交换和数据格式的转换。DSP通过XINTF产生读写时序(图2图3所示时序),FPGA也设计与之相匹配的时序完成两者之间的数据交换。
DSP应用层软件使用的是浮点数,而DSP和FPGA之间只能传递二进制数,因此需要按照IEEE标准进行浮点数和二进制数之间的转换。根据IEEE标准,可以用32位,即8个字节表示一个浮点数。如果将代表浮点数的4个字节组合成32位的整型数inte32,进行强制类型转换皆可以得到浮点数,转换函数如下:
将浮点数转换成整型数的方法与此类似。底层软件按照上述方法实现数据转换,供应用层调用。
4 系统验证
弹载机实物设汁制作完成之后可以利用半实物仿真平台进行测试,该半实物仿真平台由上位机、惯导、舵机和三轴转台组成。如图上位机的作用是模拟导弹动力学模型和导引头信息,并控制三轴转台运动模拟导弹姿态。导弹的运动信息由惯导测量之后发送给飞控计算机,飞控计算机根据运动信息解算出舵机控制量控制舵机转动,同时将遥测数据发送给上位机。上位机采集舵机反馈的实际角度,将其代入导弹动力学模型,计算导弹姿态,控制三轴转台,这样就形成了完整的半实物仿真回路。
仿真实验中,首先不接入飞控计算机,由仿真计算机中的控制系统数学模型直接实现控制算法,所得导弹运动轨迹如图8所示;将飞控计算机接入仿真回路,由飞控计算机实现制导控制算法所得运动轨迹如图9所示。
由图8和图9的对比可以看出,飞控计算机接入之后飞控系统工作正常,导弹飞行轨迹基本一致,飞控计算机控制效果理想。
5 结论
文中提出了一种基于DSP+FPGA的飞控计算机设计方法,在半实物仿真系统中验证了其性能,满足设计要求。解决了在多数字弹上设备存在情况下的数据帧实时同步问题。由于FPGA可以通过编程实现各种时序,所以此飞控计算机可以扩展为除了RS422外部接口外的其他多种数字设备接口,满足模块化、通用化的实际应用需求。