基于VxWorks的PowerPC实时系统在模拟器研制中的应用

2022-09-13

飞行模拟器, 是用来模拟飞行器飞行的机器, 是能够复现飞行器并能够进行操作的模拟装置。飞行仿真实时系统是核心, 主要完成接收座舱的操作信息, 包括模拟量、开关量, 同时接收从视景反馈回来的地形数据, 还有各种控制指令、初始化数据、环境干扰设置、故障设置情况等, 并对这些数据进行实时处理。更重要的是实时完成高逼真度飞机模型的建立和解算, 并将计算结果广播到其他系统。因此, 实时仿真主机, 必须具备超强的计算处理能力、丰富的硬件接口、精确的实时时钟等, 同时要求软硬件能够紧密协调配合。

本文结合作者在某型飞行模拟器研制中, 应用基于Vx Works的Power PC多CPU系统开发完成的主仿真系统, 从硬件结构、软件组成、关键技术以及相关问题解决方法等进行了较为深入的介绍。

1 实时管理系统介绍

1.1 硬件结构

1.1.1 CPU单板

Power PC系列CPU通用产品集成主板为MVME5100。MVME5100是易于配置、具有超强计算能力的单板式计算机, 其主要特点有以下几点。

(1) 快速内存读写和闪存支持:具有17M B闪存, 支持最大到1 G B的E C C S D R A M, 具有582MB/s读内存带宽和640MB/s写入带宽。

(2) 硬件接口非常丰富:具有两个IEEEP1386.1兼容32/64位PMC扩展插槽;具有2个16550兼容异步串口和2个10/100Base TX以太网口。

(3) 具有高精度时钟和定时器:电池独立供电的32KBNVRAM时钟, 4个32位定时器和1个看门狗定时器。

1.1.2 V M E机箱

安装MVME5100单板的机箱通过32位V ME系统总线背板连接多个CPU, 可以提供几个甚至成百上千个6U (233.35×160mm) 标准单板的电器和机械接口, 每一个单板接口的背后分为P1系统总线接口和P2扩展总线接口, 具有非常好的扩展性能。根据某型模拟器研制实时管理系统的需求, 配置2块CPU板、相关数量的I/O板就可以满足一般的实时主仿真机系统的需要。

1.2 软件系统—Vx Works实时操作系统

Vx Works是应用最为广泛的实时操作系统, 系统提供了高效的实时任务调度、中断管理、系统资源管理以及任务间的实时通信等功能。多任务管理时, 可以提供256级优先级, 可以进行时间片轮转或优先级抢占的任务调度, 在任务切换时能够保证快速、准确、可靠的上下文切换。

2 在模拟器系统中的相关应用

2.1 板级支持包应用

为了能够充分利用硬件系统以满足飞行模拟器应用程序的调度和解算需求, 就必须完成板载硬件的驱动, Vx Works提供的MV5100的BSP必须结合具体的硬件配置进行相应的改动。板级支持包BSP主要完成系统板载硬件及其驱动程序的初始化、存贮器/地址空间映像、总线中断、时钟中断等功能。

2.2 共享内存的使用

MVME5100系列主板可以通过背板使各个CPU之间共享内存。每个背板上的CPU被分配一个唯一的从0开始的CPU号, 除了0号CPU号外其余分配任意 (0号CPU是系统默认的共享内存网络控制器) 。共享内存网络控制器具有初始化共享内存开始位置和区域、维护共享内存的数据刷、作为连接外部网络的网关、分配共享区域的内存地址等功能。

2.3 双网卡驱动的实现

MVME5100主板带有两块网卡, 通过修改配置参数将其两块都驱动起来。首先在配置文件中增加宏定义:#d e f i n eI N C L U D E_S E C O N D A R Y_E N E T, 另外将IP_MAX_UNITS定义为2。但是两个网口的IP地址必须设置在不同的子网段, 如果设置相同的子网则会报错。比如:第一块网卡的IP地址为192.168.0.160, 子网掩码为255.255.255.0;第二块网卡的IP地址为192.168.1.23, 子网掩码为255.255.255.0。

2.4 实时管理系统中的关键技术

2.4.1 采用VME总线中断的机制来实

现时钟同步的功能

在C P U 1中向V M E总线某个中断向量连接到释放信号量的系统, 在CPU0上定义60Hz的看门狗时钟, 用于释放信号量, 在时钟周期中得到信号量后向前面所述VME总线中断向量发出中断, 释放信号量, 使得CPU1的时钟周期得以继续运行。通过以上技术达到两块CPU板的时钟同步。

2.4.2 采用共享内存的技术来实现数据同步的功能

CPU0和CPU1在进入“运行周期处理”之前, 都要读取全部共享内存变量值到对应的交联变量, 而在“运行周期处理”结束之后, 都要将本地的交联变量写入到对应的共享内存变量。要注意的是, 在这里“本地交联变量”是在各自CPU板上运行的分系统的交联变量, 也就是对于共享内存变量是“读全部, 写各自”。

2.4.3 采用阻塞式UDP技术来实现网络数据处理的功能

考虑到网络数据的突发性和飞行模拟器系统的实时性, 不可能在“运行周期处理”内处理网络的接收, 根据vx Works实时系统的特点, 采取多任务的技术来处理网络数据接收的问题。也就是对于每一个外围计算机的网络数据的接收各自生成称一个独立运行的任务, 这样, 在每个周期的“读取共享内存变量值到对应交联变量”之前都进行检查各个网络接收任务是否收到新的数据, 如果收到新的数据, 则写入到对应的共享内存变量之中, 及时地将网络接收到的数据写入到交联变量中参与到各个分系统程序的运算中去。上次检查网络接收任务是否收到新的数据到这次检查, 中间刚好是时钟任务的一个周期, 相隔16.7ms, 保证60Hz运行。

3 结语

M V M E 5 1 0 0多C P U单板机系统硬件配合实时操作系统Vx Works组成的实时仿真主机, 完成了时钟控制, 子系统合理调用, 交联数据刷新, 接口转换与控制, 功能/性能检测与调试, 辅助数据分析, 系统状态控制等功能, 从而达到模拟器仿真的最终目的。

摘要:飞行模拟器是一个实时性要求很高、交流的信息量很大、精度要求较高的实时仿真控制系统, 要求主仿真计算机计算能力强, 实时、稳定且易于扩展。本文作者参与研制的某型飞机飞行模拟器, 成功地应用了PowerPC多CPU系统+VxWorks实时操作系统平台, 证明基于这种平台的主仿真系统具有分布式处理、并行计算、多线程、开放性、可扩展性、实时性等工程特点, 完全能够满足飞行模拟器对主仿真系统的要求。

关键词:飞行模拟器,实时系统,VxWorks,PowerPC

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:热处理技术在石油压力容器中的应用下一篇:广西少数民族大学生民族认同及语言态度与英语学习特点初探