用于航空电子设备和控制系统软件应用的两层操作系统和方法

文档序号:4146691阅读:204来源:国知局
专利名称:用于航空电子设备和控制系统软件应用的两层操作系统和方法
技术领域
这个发明涉及一个用于经由一个数字数据处理系统管理过程或者作业执行地电路模块和方法,尤其涉及一个被编程以提供一个两层操作系统的集成模块化航空电子设备和控制系统电路卡(IntegratedModular Avionics Circuit Card)。
本发明的
背景技术
几个最新设计的飞行器和用于旧飞行器的新改型将使用一个集成的航空电子设备和控制系统体系结构,它在该行业中被称为集成模块化航空电子设备和控制系统(Integrated Modular Avionics,IMA)。在开发集成的航空电子设备和控制系统体系结构之前,飞行器通常使用许多线路可置换单元(LRU)、诸如无线电等,其中每个LRU执行一个专用功能、诸如VHF通信或者VOR导航。IMA使用一些多功能的LRU来执行各种航空电子设备和控制系统功能,它们通常由几个专用的LRU执行。每个IMA LRU包含几个模块,它们执行处理、到其它飞行器硬件的输入和输出。IMA方法为每个在IMA LRU内部的各个模块使用一个公共的底座和电源供应。这考虑了一个全面的航空电子系统,它与在旧一代飞行器上找到的典型“联合的”航空电子设备和控制系统体系结构相比是较轻而且成本较低的。
如上所述,已经为联合航空电子设备和控制系统开发和认证了大量的软件应用,而且重新使用这个先前开发的软件是有利的。然而,现有的航空电子设备和控制系统软件应用在几个不同的实时操作系统上运行。此外还存在一个对支持多个软件应用集成的需要,其中这多个软件应用传统上已经在联合的LRU中实现了。众所周知,使用已有软件开发工具合并多个软件应用的一个副作用是在软件应用之间不想要的相关性,诸如错误从一个失败的软件应用到其它软件应用的传播。
就FAA飞行器认证来说,必须能够用一个很高级别的保证来表明在一个软件应用中的一个问题或者失败不能对其它任何软件应用造成不利影响。
在1997年1月的ARINC说明书653的“Avionics ApplicationSoftware Standard Interface”、以及1998年11月的RTCA SC-182/EUROCAE WG-48的“Minimum Operational PerformanceStandards for Avionics Computer Resource”中描述了一个现有技术的航空电子设备和控制系统操作系统环境。
发明概述
本发明集成了多个软件应用以在一个中央处理单元(CPU)上运行,其中技术成熟的可利用的CPU足够强大,以符合几个航空电子设备和控制系统软件应用的组合计算需要。本发明进一步提供了一个软件体系结构,其中操作系统部分被分成两个截然不同的层,包含一个系统执行层和多个应用执行层。有利地是,这个软件体系结构允许各个实时操作系统在同一CPU上同时运行。系统级的功能,诸如软件和配置数据库加载、应用状况监控、难题记录、基本操作系统支持和输入/输出的高级处理,能够在在一个集成模块化航空电子设备和控制系统(IMA)模块上运行的几个应用当中共享。
有利的是,两层体系结构提供了集成由各个软件供应厂商开发的软件应用的性能。当只有单个软件应用被增加、升级、或者从该系统中删除时,本发明还消除了重新测试在一个IMA模块上运行的整套软件应用的需要。
两层体系结构中的第一层、即系统执行层向每个软件应用提供一个受保护的分区,在该分区内每个明确的软件应用能够和一个适当的应用执行程序一起执行。两层体系结构中的第二层、即应用执行层是一个实时操作系统的一个改良版本,它向每个软件应用提供了一个虚拟机和一组接口库(IL)函数。这些IL函数有助于在应用执行程序和系统执行程序之间的通信。本发明的一个实施例包含一个系统执行程序和多个应用执行程序。
有利的是,通过在存储器地址空间上实行存取限制,每个应用执行程序和它的相关软件应用在空间上与其它应用执行程序和它们的相关软件应用隔离了。此外,通过基于一个预先计算的静态执行时间表在CPU及其它系统资源上实行使用限制,每个应用执行程序和它的相关软件应用与其它应用执行程序和它们的相关软件应用被暂时隔离了。
系统执行程序初始化、监控、和终止每个软件应用模块,并且保持一个实时时钟以精确地实现该执行时间表,据该时间表每个软件应用被指定了明确定义的时间片段。系统执行程序还处理上下文切换和在各个应用执行程序之间的通信,管理所有IMA模块硬件输入和输出资源,并且实行严格的受保护存储器区域的隔离。有利的是,系统执行程序通过为每个应用执行程序指定和实施受保护的存储器分区,来防止错误和无关数据穿过各个应用执行程序和它们的相关软件应用进行传播。
每个应用执行程序是一个可用的实时操作系统的一个定制版本。每个应用执行程序为它的相关软件应用任务提供服务,其中该软件应用任务包含通信、同步和动态存储器管理。每个应用执行程序还经由接口库函数,为它的相关软件应用提供对系统级资源、包括IMA模块硬件输入和输出(I/O)设备的访问。在一个实施例中,一个应用执行程序实现它自己的、用于调度包含在一个相关软件应用中的任务的策略。
把一个可用的实时操作系统定制到一个应用执行程序中包含通过接口库函数把与通信、存储器管理、和访问I/O设备有关的功能重定向到系统执行程序。本发明的一个方面是没有应用执行程序可以执行任何引导序列过程,诸如硬件设备的探测或者初始化、初始化中断表格、或者设置一个存储器管理单元(MMU)的寄存器。可利用实时操作系统的这些引导序列过程由位于应用执行程序的受保护存储器分区内的一组初始化数据结构代替。作为系统初始化过程的一部分,系统执行程序初始化所有在应用执行程序中的初始化数据结构。
附图简要说明


图1说明了一个现有技术中的线路可置换单元(LRU),通常被称为一个“黑匣子”,它是为飞行器装置设计的。显示的特定LRU表示一个集成的模块化航空电子设备和控制系统(IMA)箱体。
图2依据本发明的一个说明性实施例说明了一个适于安装在一个IMA箱体中的模块或电路卡组件(CCA)。
图3说明了依据本发明在每个IMA模块上运行的软件的软件体系结构。
图4说明了本发明的系统执行程序层的一个流程图。
图5说明了如本发明中所述的、在系统执行程序层和每个应用执行程序层之间的相互作用。
图6说明了一个显示了系统执行程序、应用执行程序、与几个应用执行程序中每一个有关的软件应用的执行序列的活动时间表。
本发明的详细说明
首先参见图1,其显示了一个目前使用的、集成模块化航空电子设备和控制系统(IMA)底座101。IMA底座101包含多个IMA模块200、一个或多个连接器103、以及一个母板102,用来把IMA模块200彼此互连并和连接器103互连。连接器103把飞行器电信号与包含在IMA模块上的电路进行连接。在其它实施例中,光学和射频信号在IMA模块及其它飞行器设备之间进行传递。
参见图2,在本发明的一个实施例中,一个IMA模块200具有一个存储器管理单元202。存储器管理单元202把系统存储器204分成受保护的分区,并且依据发自一个系统执行程序301(参见图3)的上下文指令控制对这些分区的读和写访问,其中系统执行程序301在一个中央处理单元201上执行。一个时钟203产生周期性的计时器中断505到中央处理单元201,如图5所示。时钟203是一个独立于其余的IMA模块200硬件运行的实时时钟。有利的是,系统执行程序301能够从时钟203中读取当前时间而不干扰它的操作。本发明中的IMA模块200还包含输入/输出硬件设备205、输入/输出总线设备206和连接器211,用来把电信号与IMA母板102进行连接。
图3说明了被编程为在中央处理单元201上运行的一个软件的体系结构布局。如图3所示,本发明的一个方面是软件应用321不直接和输入/输出硬件设备205或者输入/输出总线设备206进行通信。依据本发明,在前一次构造期间已经被预先链接到一个相关实时操作系统的一个软件应用321与一个相关的应用执行程序311和一组相关的接口库函数312链接。软件应用321通过调用与每个应用执行程序311有关的接口库函数312与输入/输出硬件设备205和输入/输出总线设备206进行通信。接口库函数312通过经由系统执行程序301调用一个硬件设备驱动器302软件应用来访问输入/输出硬件设备205。每个硬件设备205的所有功能都经由设备驱动程序302软件应用进行控制。接口库函数312通过经由系统执行程序301调用一个总线驱动程序303软件应用来访问输入/输出总线设备206。每个总线设备206的所有功能都经由设备驱动程序303软件应用进行控制。
依据本发明,系统执行程序301包含一组被保存在存储器204中、并且在一个中央处理单元201上执行的指令。这个系统执行程序301负责安装在IMA电路卡200上的所有设备的操作,其中该电路卡200安装在IMA底座101中。每个应用执行程序311包含一组被保存在一个应用分区500(如图5所示)地址空间内的一个存储器204中的指令,在该应用分区500地址空间中,读/写访问由存储器管理单元202控制,而且这些指令在中央处理单元201上执行。与每个应用执行程序311有关的软件应用321、接口库312、和定时器中断服务例程501(如图5所示)还包含在中央处理单元201上执行、并且被保存在与相关应用执行程序311相同的应用分区500(如图5所示)中的指令。
图4显示了一个流程图,它说明了当系统执行程序301在中央处理单元201上执行时它的指令步骤。系统执行程序301包含一组被执行一次的启动步骤,在该启动步骤之后继之以一个主循环410,其中该主循环410包含以一个无限期重复的预定顺序执行的步骤。在本发明未显示的另一个实施例中,系统执行程序301进一步包含一序列在主循环终止之后执行一次的停机步骤。
系统执行程序301的启动步骤包含由中央处理单元201执行的以下序列软件步骤。首先,在步骤401,初始化输入/输出硬件设备205和输入/输出总线设备206。其次,在步骤402,通过使中央处理单元201发布一个指令序列到存储器管理单元202,数据存储器204被分区成为虚拟应用存储器分区500(如图5所示)。
系统执行程序301的无限主循环410包含由中央处理器201执行的以下序列软件步骤。首先,系统执行程序301从静态时间表调度(未显示)中读取(步骤415)与下一个被调度的应用分区500有关的应用时间分段601(如图6所示)和应用执行程序311时钟周期长度(如图6所示)。接下来,系统执行程序301使用下列等式计算(步骤415)全长的周期数目“Nticks”,和剩余部分周期的长度“parTick”。
应用全长时钟周期“Ntieks”和剩余部分周期“parTick”被用来更新应用分区500(如图5所示)的当地时间结构(未显示)。
接下来,中央处理单元201被指示忙碌-在步骤411等待下一个应用执行程序311的开始时间。每个应用执行程序311的开始时间被保存在一个驻留于存储器204中的预定义调度时间表(未显示)内。接下来,在步骤412,存储器管理单元202被指示使用一个相关的虚拟存储器分区500(如图5所示)来解决存储器地址引用,而且中央处理单元201的控制被传递到应用执行程序311。在步骤413期间,如图5所示,除了当周期性的定时器中断导致相关的定时器服务例程被运行时以外,应用执行程序311提供指令给中央处理单元201。这些定时器中断服务例程501包含以与系统执行程序301相同的优先权级运行的指令。当分配给应用执行程序311的时间分段601(如图6所示)期满时,中央处理单元201的控制返回到系统执行程序301,而且主循环410无限期地继续。如上所述,应用分区一个基于时间的分配的严格执行是基于一个静态时间表调度(未显示)的,其中该时间表调度在整个软件构造期间被创建。
再次参见图3,应用执行程序311是最初为其开发了相关应用软件321的一个实时操作系统的改良版本。依据本发明,系统执行程序301最先对由软件应用321引起的任何例外作出响应是必需的;因此提供了一个中断服务例程501(如图5所示)以截取由中央处理单元201引起的“例外中断”。从已有的实时操作系统中重新映射异常处理功能需要在系统执行程序301和应用执行程序311中的功能。依据本发明,软件应用321和应用执行程序311都在中央处理单元201上运行低的“用户”优先权级指令,这与系统执行程序301和应用中断服务例程501(如图5所示)相反,它们两者都在中央处理单元201上运行高的“操作系统”优先权级指令。
接口库312包含一组被创建来替换由一个特定实时操作系统提供的一些服务的函数;有利的是,最小数量的实时操作系统服务被替换。此外,设备驱动器302可以直接合并一个现有技术实时操作系统的底层代码。
每个应用执行程序311保持它自己的数据结构以掌握实时进程的进展情况。在一个特殊的实施例中,在周期性的定时器中断505之间的持续时间(如图6所示)是10毫秒。
图5说明了在系统执行程序301、一个应用执行程序311、和一个软件应用321之间的控制转移的细节。系统执行程序在步骤412处使用一个定时器中断服务例程501来传递中央处理单元201的控制。与应用执行程序311有关的定时器中断服务例程501在中央处理单元201上,以与系统执行程序301相同的优先权级执行指令。定时器中断服务例程501包含保存在应用分区500地址空间内的数据存储器204中的指令。应用执行程序311总是起到作为每个应用分区500的入口点的作用。应用存储器分区500和与系统执行程序301有关的定时器中断服务例程501协同作用,其中该定时器中断服务例程501为到应用分区500中的初始入口和周期性定时器中断505服务,其中周期性的定时器中断505发生在应用分区的时间分段601期间(如图6所示)。应用执行程序311在时间分段601内调度软件应用321任务。当时间分段601期满时,定时器中断服务例程501存储该分区的当前时间和当前状态,并且把中央处理单元201的控制返回给系统执行程序301。
一旦重新进入到分区500中,定时器中断501调整分区当地时间数据结构,并且把控制传递给应用执行程序311。该应用执行程序311将确定来自于相关软件应用的哪个任务到期了,并且将分配所述任务。依据本发明,没有把中央处理单元201的控制直接给予一个软件应用321任务,但是相反首先给予相关的应用执行程序311,即使该任务在完成之前被中断了,这是必要的。为每个应用分区500分配的存储器空间包含一个预定数量的“堆”存储器,其作为一个动态存储器池使用。每个应用执行程序311管理在该应用自己的分区500内的动态存储器“堆”。
参见图6,中央处理单元201执行被包括在系统执行程序301、应用执行程序311、和软件应用321中的所有指令。定时器中断505从时钟203周期性地施加到中央处理单元201上。这些定时器中断505被用来启动系统执行程序301和应用执行程序311的执行,如在一个静态调度(未显示)中定义的那样。这个动态时间表提供了在与不同应用执行程序311相关的软件应用321之间的时间间隔。在一个预定义的静态时间表(未显示)中,每个应用分区500都被分配了一个应用时间分段601和一个时钟周期长度602。有利的是,这个临时间隔阻止软件应用受到彼此干扰。
因此,本发明包含一个两层操作系统,供运行各种飞行器子系统的多个航空电子设备和控制系统软件应用321使用。用于这些多个应用的处理吞吐量和硬件接口被包含在单个IMA卡200上,其中该IMA卡200与其它类似的卡一起被安置在一个飞行器安装的箱体101中。有利的是,本发明利用了当前可用的高速处理器,同时仍然允许重新使用先前开发的航空电子学设备软件应用。这多个软件应用彼此是暂时地(时间)和空间地(存储器)分离的。
权利要求
1.一个用于一个集成模块化航空电子设备和控制系统的电路模块,所述模块包含
输入/输出硬件,
一条输入/输出总线,
一个实时时钟,用于产生一序列周期性的定时器中断,
一个存储器管理单元,
一个存储器,由所述存储器管理单元分区成为多个应用分区;以及
一个中央处理单元,所述中央处理单元被编程用来提供一个两级软件体系结构,该两级软件体系结构包含
一个系统执行程序,包含一个初始化序列、一个无限循环以及多个对所述实时时钟做出响应的定时器中断服务例程,
多个应用执行程序,其中每个应用执行程序包含一个实时操作系统,并且与所述定时器中断服务例程中的一个相关;以及
控制所述存储器管理单元。
2.如权利要求1所述的电路模块,其特征在于应用执行程序进一步包含软件函数的一个接口库,它提供了对一组硬件输入/输出设备的访问。
3.如权利要求1所述的电路模块,其特征在于应用执行程序保持它自己的数据结构以掌握实时进程的进展情况。
4.一种用于执行多个已有航空电子设备和控制系统软件应用的方法,其特征在于这些应用已经从它们的前操作环境中分离了,并且已经和一个与一个系统执行程序同时在单个中央处理单元上运行的应用执行程序连接,其中该中央处理单元与一个存储器管理单元、一个时钟、数据存储器、输入/输出硬件设备和输入/输出总线设备一起被安装在一个电路卡组件上,所述方法包含以下步骤
初始化输入/输出硬件设备,
初始化输入/输出总线设备,
使用存储器管理单元把数据存储器分区,以及
进入并且保持在一个无限的循环中,该循环包含以下步骤
等待一个应用执行程序的一个开始时间,
依据与所述应用执行程序有关的一个应用分区,指示存储器管理单元解析地址,
把中央处理单元的控制传递给所述应用执行程序,
依据所述应用执行程序执行指令,
等待与所述应用执行程序有关的一个时间分段期满,以及
把中央处理单元的控制返回给系统执行程序。
5.如权利要求4所述的方法,其特征在于所述无限循环进一步包含以下步骤
等待第二个应用执行程序的一个开始时间,
依据与所述第二应用执行程序有关的第二个应用分区,指示存储器管理单元解析地址,
把中央处理单元的控制传递给所述第二个应用执行程序,
依据所述第二应用执行程序执行指令,
等待与所述第二应用执行程序有关的一个时间分段期满,以及
把中央处理单元的控制返回给系统执行程序。
全文摘要
集成模块化航空电子设备和控制系统(101)能够利用更快的现代处理器,并且能够通过使用一个两层操作系统在单个处理器(201)上执行多个已有的航空电子设备和控制系统软件应用(321),其中该双层操作系统包含一个系统执行程序(301)和多个应用执行程序(311)。
文档编号B64D47/00GK1434940SQ00818910
公开日2003年8月6日 申请日期2000年12月8日 优先权日1999年12月10日
发明者M·S·阿布塔布尔, Y·莫哈梅德 申请人:霍尼韦尔国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1