基于PowerPC的飞控软件设计实现及验证

时间:2022-10-19 12:14:19

基于PowerPC的飞控软件设计实现及验证

摘 要:为完成基于PoWerPC微处理器和VxWorks实时操作系统的飞控软件研制,使用WindRiver公司的Tornado集成开发工具,完成了以ADS板CPU的板级支持包(BSP)文件为模板的更改设计,同时完成了基于PowerPC的飞控软件应用程序时序及架构的设计及验证。该项目经过了软硬件试验验证,可以为同类软件研制提供借鉴。

关键词:飞控软件;PowerPC;BSP;集成开发工具

中图分类号:TJ765.2+32 文献标识码:A 文章编号:1673-5048(2013)04-0054-04

DesignandVerificationofFlightControlSoftwareBased onPowerPCSystem

WANGMinghui1,ZHUGuangyu1,WANGHuimin1,ZHANGLihua2

(1.ChinaAirborneMissileAcademy,Luoyang471009,China;2.ChengduFLYElectronic TechnologyCompany,Chengdu610021,China)

Abstract:InordertorealizeflightcontrolsoftwaredesignbasedonthePowerPCmicroprocessorand VxWorksembeddedrealtimeoperatingsystem,designbasedonthetemplateofBSPfilesofCPUinADS issuccessfullycompletedthroughTornadointegrateddevelopmenttoolsproducedbyWindRivercompany. Atthesametime,designandverificationofthetimingsequenceandframeworkofflightcontrolsoftware basedonPowerPCarefinished.Thesimulationandtestingprovesthatthisprojectcouldprovidesome usefulinformationforthesamekindofsoftwaredevelopment.

Keywords:flightcontrolsoftware;PowerPC;boardsupportpacket;integrateddevelopmenttool

0 引 言

随着现代信息技术的飞速发展,数字化、信息化成为高新技术武器装备的显著特征,在弹载系统中得到了广泛应用。弹载软件通常采用中断驱动、周期性调度的运行机制,控制不同的任务片按照任务的紧迫程度以不同的调度周期执行,这种设计方案硬件设计简洁、软件时序清晰。但近年来,随着导弹系统性能需求的提升,弹载软件的复杂度大幅增加,对弹载计算机的计算效率以及计算精度提出了更高的要求。因此,针对高性能PowerPC计算机,开展了软、硬件设计开发。主要针对PowerPC的硬件环境进行BSP(板级支持包)和应用程序的设计开发及验证。飞控软件应用程序的设计主要是软件时序及架构的设计实现、验证环境的建立及软件验证。控制算法复用成熟设计,这样就保证了在短研制周期内对关键技术的研究及验证。

1.1 BSP设计

WindRiver公司的VxWorks实时操作系统针对不同的CPU分别有对应的硬件产品及相应的BSP板级支持包。对控计算机采用的PowerPC也有相应的ADS板,飞控计算机板和ADS板硬件最大的不同是结构上不同。ADS板是用于验证芯片功能的板子,所以ADS板所有的接口都实现了相应的功能。飞控计算机板是根据需要订制的一款板子,用到的外部接口只有60Xbus、串口和中断。

本系统开发BSP时,主要是以ADS板CPU的BSP文件为模板,在tornado\target\config目录下创建用户的BSP目录bspname,把tornado\target\config\all下的文件和BSP模板文件拷贝到该目录下,建立工程,并修改相关的源文件,根据具体情况选择合适的VxWorks镜像类型。其中,config\all下的文件是独立于目标系统的用户可修改的公共执行模块,BSP模板文件是与目标系统相关的模块。下面以本系统设计为例,介绍BSP软件的配置过程。

本系统BSP设计是在ADS板BSP设计的基础上进行更改设计,主要完成以下更改设计:

(1)进行makefile文件设计:定义flash基地址及存储空间大小,根据SDRAM的大小和映射的基地址来设置RAM的地址;

(2)Config.h文件设计:主要包含计算机需要的相应功能组件和屏蔽不需要的功能组件;

(3)romInit.s文件设计:初始化系统的内存、关闭中断、关MMU(MemoryManagementUnits)和CACHE操作;

(4)bootInit.c文件设计:主要是完成bootrom的搬移工作。把固化在flash的代码搬移到SDRAM中去执行。最后再跳转到bootConfig.c的usrinit()函数;

(5)bootConfig.c文件设计:完成bootromimage的初始化和控制。包括对中断向量设置、系统硬件的初始化、配置操作系统的内核、开CACHE功能、调用(usrrRoot)根任务、初始化内存池和系统时钟、对IO文件系统初始化和串口驱动进行安装、初始化WDB、创建bootcmdloop任务和初始化bootline参数、下载操作系统的映象文件到内部的RAM并且运行操作系统;

(6)usrConfig.c文件设计:完成VxWorksimage的初始化代码。包括对中断向量设置、系统硬件的初始化、配置操作的内核、开CACHE功能、调用(usrrRoot)根任务、初始化内存池和系统时钟、对IO文件系统初始化和串口驱动进行安装、初始化WDB、调用上层应用程序;

(7)sysSerial.c文件设计:用于所有的串口设置和初始化。

1.2 BSP设计的正确性验证

对BSP移植的正确性验证主要从功能及可靠性方面进行验证:

(1)SDRAM检测:利用codewarriorIDE环境下的自检程序对其进行检测。检测的方法是写一批有规律的数据到SDRAM中,然后再读出来比较数据是否正确;

(2)串口检测:在串口初始化之后,观测用作调试的串口是否可以打开主机端的虚拟窗口以及是否能打印相关的信息。最后通过命令来控制是否正常下载操作系统的映射。如果能够完成上面的功能,说明调试串口是正常的。另外两路SCC(飞控计算机和其他组件通信的串口)功能的测试是在操作系统运行起来后,通过与主机之间进行大量的数据收发来完成;

(3)flash检测:在flash空间配置好之后,可以通过codewarriorIDE下的插件对flash进行擦除和烧写的操作,同时也可以在codewarriorIDE下利用编写的程序对flash进行检查。

(4)中断检测:利用设备给PowerPC提供特定频率的中断源,在中断使能后,利用系统时钟延迟函数TaskDelay(intticks),测试一段时间内收到的所有中断数,判断中断实现是否正确;

(5)外部接口检测:通过设备向PowerPC固定地址空间发送数据,PowerPC向设备发送数据检测外部接口地址映射的正确性;

(6)可靠性试验:通过反复上电试验、老化试验、高低温试验以及振动试验,验证操作系统的稳定性和可靠性。

2.1 中断处理

中断历来是嵌入式实时系统的核心,有的中断定期出现,有的中断随机发生。一般对于中断服务程序有如下要求:

(1)处理流程最长分支时间不能超过中断时间间隔;

(2)中断处理时间尽可能短;

(3)尽量不要对接口操作。

原来飞控计算机的软件运行由中断驱动,所有的工作均在不同的中断服务中执行。为了适应VxWorks对于中断服务程序的约束,软件设计时特别对中断进行了规范化处理。原来的中断服务程序处理的事务放在中断对应的任务中执行,中断服务中只是给出信号量,而中断对应的任务等到有该信号量再运行。所以针对不同中断建立了各自的信号量,分别用于绑定各个中断和其对应的任务,使它们进行同步。由于中断服务处理极其简单,因此,即使软件中不使用中断嵌套,也能满足系统的高实时性要求(原来的系统,由于采集周期短,而基本处理周期任务执行时间长,必须在基本处理周期中断服务程序中开中断,嵌套响应采集中断)。

2.2 任务的划分及优先级的确定

实时系统中任务的数量及划分是系统软件顶层设计中需要慎重考虑的问题。为了保证和前期飞控软件运行时序相同,做到最大程度的继承,即把任务划分和中断对应起来,划分为4个任务:基本周期任务task_I,数据采集任务task_C,随机任务task_K,串口SCIA接收任务task_scia。

根据任务的特点设定不同的优先级,task_I()优先级最低103,其他优先级依次由低到高是task_scia():优先级102;task_K:优先级101;task_C:优先级100。

2.3 任务间通信

VxWorks提供丰富灵活的任务间通信机制,用于协调任务间和中断间的行为,包括共享内存、信号量、消息队列、管道、套节字、远程过程调用等。不同的通信方式具有不同的特点。飞控软件相对于复杂的任务管理系统来说,任务较少,通信简单。为了最大程度地继承已有的科研成果,任务间通信采用和原来一样的方法:共享内存,即采用全局变量的形式来传递参数。当然,对待全局变量的使用必须十分谨慎,注意除非用作同步的变量,否则不应在不同的任务间改变全局变量的值,即应避免变量的复用问题。

2.4 应用程序的设计

应用程序除了中断模型及任务调度更改之外,其他的算法模块均是复用成熟的算法设计。

(1)中断模型设计

在确定了应用程序采用中断绑定任务的架构后,就需要在应用程序入口函数main函数中创建任务及信号量,并且分配相应的优先级。然后进行中断初始化,连接中断到相应的中断服务程序,使能所有中断,随后就可以响应中断了。图1所示为飞控软件中断处理模型流程。

3 仿真验证

由控软件是实时嵌入式系统控制软件,它是动态运行的,不停地与外部硬件进行数据交换,并且根据当前飞行状态决定控制信号的输出,其专用性特别强。因而需要建立实时动态仿真环境,在动态情况下对飞控软件进行真正意义上的仿真、调试、测试及验证。

3.1 仿真环境建立

在软件开发过程中建立了一套实时动态仿真系统。该系统由嵌入式软件载体PowerPC计算机、外部环境数学模型(模拟飞控软件运行的外部环境,运行在仿真机上)、数据采集卡、中断控制及接口处理单元组成。飞控软件和外部数学模型均是由中断控制模块产生的同一中断源触发同步运行,周期性通过接口处理单元进行数据交互,构成了一个飞控软件动态运行的闭合回路。

3.2 仿真结果

通过给定弹道条件作输入,进行软件仿真,仿真结果关键参数,如弹道曲线、遇靶时间、控制指令和理想弹道数据一致。图2为Y向控制指令,图3为Z向控制指令。图中WUY1,WUZ1为理想数据,WUY1_r,WUZ1_r为软件仿真数据。

[1]王伟,张伟乾,陈怀民.基于VxWorks的无人机飞控系统软件设计[J].制造业自动化,2008,30(4):37-39.

[2]徐惠民.基于VxWorks的嵌入式系统及实验[M].北京:北京邮电大学出版社,2006.

[3]张杨,于银涛.VxWorks内核、设备驱动与BSP开发详解[M].北京:人民邮电出版社,2011.

[4]丁汉青,韩雪琴,杨永双.VxWorks在PowerPC系统上的移植与实现[J].微计算机信息,2007,23(29):51-52.

上一篇:试析如何打造轻负优质的英语复习课 下一篇:浅探初中健美操教学中非指导性教学模式的运用