首页> 中国专利> 一种ARINC653标准下的航电系统分区窗口调度方法

一种ARINC653标准下的航电系统分区窗口调度方法

摘要

本发明属于嵌入式时空分区技术,涉及一种ARINC653标准下的航电系统分区窗口调度方法。通过计算基准时间片Tp,以基准时间片为单位积木式拼接分区的执行窗口时间、主时间框架调度时间、系统空闲时间。分区周期、主时间框架均为基准时间片的整数倍,将分区因周期的不同要求而产生的调度排序问题得到简化。通过该方法每个分区的周期释放点均能落在本分区的时间窗口上。设计了两种分区调度中的周期控制模式以适用于不同类型的嵌入式系统:功能分区控制模式和IO分区进行控制模式。

著录项

  • 公开/公告号CN103544065A

    专利类型发明专利

  • 公开/公告日2014-01-29

    原文格式PDF

  • 申请/专利号CN201310542756.4

  • 发明设计人 刘冬;蔡瑞宗;王东;王亮;

    申请日2013-11-05

  • 分类号G06F9/50(20060101);

  • 代理机构11008 中国航空专利中心;

  • 代理人李建英

  • 地址 710089 陕西省西安市72号信箱

  • 入库时间 2024-02-19 21:57:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-02-22

    授权

    授权

  • 2014-03-12

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20131105

    实质审查的生效

  • 2014-01-29

    公开

    公开

说明书

技术领域

本发明属于嵌入式时空分区技术,涉及一种ARINC653标准下的航电系统分区 窗口调度方法。

背景技术

针对新型飞机航空电子系统可移植、可重用、高可靠的需要,美国航电委员会 于1997年针对新一代飞机数据综合化提出的应用程序接口标准——Arinc653。 Arinc653规范中定义了应用程序和操作系统隔离,提出时间隔离、空间分区的概念。 我国在2005年提出的GJB5357-2005标准中对这一概念也作出了相关定义。

ARINC653操作系统通过内存管理,给每个单独的应用分区划分一块独享的内存 空间,通过软件配置可以调节虚拟内存大小、动态内存总大小。分区的运行空间不 会被其他分区所干扰。采用时间调度表的方式调度多分区运行。设定一个总的调度 表主时间轴大小,用户可以将时间轴划分多个任意子时间窗口分配给应用分区运行。 分区在自己的时间窗口内独享CPU的所有资源,当分区的时间窗口终止时,操作系 统将强行将资源切换给调度表中的下一分区。

时分设计的CPU资源划分,使得计算机应用软件的某一子系统故障将不会蔓延 到其它系统。CPU资源在时间空间上不会进入某一故障的死锁状态。这种时分设计 给系统安全带来了提升。

对于多任务多功能的复杂系统,系统需求、安全等级、周期以及优先级各不相 同,如何给出一个合理可靠的分区划分、分区排序、窗口分配、调度顺序,是系统 设计能否成功的关键。对于工程应用而言,目前还没有一套关于多分区操作系统时 间片调度设计的完整方法。

发明内容

本发明的目的是提出一种对于多任务多功能的复杂系统、系统需求、安全等级、 周期以及优先级各不相同的情况下,如何给出一个合理可靠的分区划分、分区排序、 窗口分配、调度顺序的在ARINC653标准下的航电系统分区窗口调度方法。

本发明的技术解决方案

窗口调度的假设条件:

(1)完成分区任务划分后进行,适用于分区划分个数在2~20个之内;

(2)分区划分具有唯一独立IO分区,分区中只有IO分区具有对设备外的总线 通讯权限,其他分区为功能分区,仅具有离散量通讯权限;

(3)分区划分运算量均衡,针对于特定性能CPU,最大分区任务运算量不大于 最小分区任务运算量10倍;

(4)嵌入式系统分区周期定义为毫秒级别,分区任务周期定义为5ms的整数倍;

(5)分区调度周期大于设备CPU处理周期10倍以上;

(6)分区间通讯采用端口通讯方式,支持采样端口或者队列端口;

采用单位时间片Tp方法,将主时间框架、各分区运行窗口、系统空闲时间窗口 以单位时间片Tp的整数倍进行排列,最终得到调度顺序。调度工作流程如下:

步骤1:针对机载计算机CPU计算能力,按照各分区分配功能,估算系统分区1、 分区2…、分区n运行开销时间为t1、t2、t3…tn;

步骤2。设航电系统对分区运行余量要求为q%,分区时间窗口 (i=1,2,…n)计算各分区的窗口时间为Tw1、Tw2…Twn;

步骤3:各分区取整后的窗口时间为Tw1、Tw2…Twn,设分区的任务周期包含 P1、P2、P3…Pm共m种不同周期,其中Pi<=Pj(j>i,j=1,2,…m),由上述假设条件 (4)P1、P2、P3…Pm为5ms的整倍数,取P1、P2、P3…Pm、Tw1、Tw2…Twn的最大 公约数为基准时间片Tp;

步骤4:IO分区负责各分区的数据对外通讯,IO分区周期为所有周期的最小 值min(Pi)(i=1,2,…m)。定义主时间框架为Ts,所有分区时间窗口在Ts上进行 排列,分区运行从Ts起始运行,逐步运行完所有分区以及系统空闲后到达Ts末端, 到达Ts末端后,系统再次从Ts起始循环运行;

步骤5:定义所有任务周期P1、P2、P3…Pm的公约数和公倍数集合Vt,定义 任一周期Pi,满足(1)对于任意小于Pi的周期Pj(j=1,2,…i),Pi是Pj(j=1,2,…i 公倍数,(2)对于任意大于Pi的周期Pk(k=i,i+1,…m),Pi是Pk(k=i,i+1,…m) 公约数;定义所有Pi的集合为Vp,取集合V=Vt∪Vp;

步骤6:设航电系统运行时间余量为p%,分区i的最小周期为Pmi,取 为调度表中应用运行总时间;计算为系统调度表 最小安全门限;

步骤7:计算航电系统主时间框架为Ts,Ts为满足如下要求的最小值:(1) Ts∈V;(2)Ts应不小于最小安全门限;

步骤8:将主时间框架以Tp为基准时间片进行分割,各个分区以计算后的窗 口时间Tw1、Tw2…Twn依次排列于主时间框架之上,主时间框架剩余部分设定为航 电系统空闲时间;

步骤9:根据分区1、分区2,分区3…分区n的相互依存关系,以及通讯密集 程度将分区1到分区n进行排序;排序原则为:(1)具有生产顺序的相关分区,根 据生产的前后顺序排列;(2)对具有系统启动需求的分区设计在调度表最前;(3) 数据交互较多的分区相近排列;

(4)在IO分区窗口之间根据均衡分布剩余分区窗口;(5)对于具有任务周期 Pmi小于主时间框架Ts的分区i(i=1,2,…n),在调度表中出现[Tw÷Pmi]次,每 次相距时间为Pmi,伴随每次分区i出现之间,至少安排一次IO分区出现;(6)IO 分区出现次数为[Tw÷min(Pi)](i=1,2,…n),间隔周期为所有周期的最小值min(Pi) (i=1,2,…n);(7)将分区排序后主时间框架上剩余未分配的时间窗口设定为系统 空闲窗口;

步骤10:选择分区调度表周期控制方式,周期控制方式为如下之一:

(1)功能分区控制

功能分区控制周期定义为:由功能分区进行周期控制,即功能分区将输出数据 根据不同的周期Pi建立不同的周期任务i,由这些周期任务将数据按照周期Pi交给 IO分区,IO分区负责接收到数据立即发送设备外部;

(2)IO分区周期控制

IO分区进行周期控制定义为:IO分区负责控制周期,在IO分区中实现P1、P2、 P3…Pm等周期任务,各功能分区根据自身的周期需求P1、P2…Pi建立与IO分区的 通讯端口1、端口2…端口i。各功能分区在本分区窗口运行结束时刻,将本分区所 有周期Pi的发送数据发送给IO分区的相对应周期端口i上,IO分区以周期Pi去获 取各分区传递在分区间端口i上的周期消息,组织数据传输;

步骤11:若选择IO分区进行周期控制方式,将IO分区的多个周期控制分散到 调度表的多个IO分区中,将周期P1、P2…Pn进行分组,将不同Pi组的周期发送任 务分散到不同的IO分区窗口释放,平衡总线负载;若经步骤9计算主时间框架上IO 分区仅出现1次,则本条步骤不适用。

本发明的优点和积极效果:

通过计算基准时间片Tp,以基准时间片为单位积木式拼接分区的执行窗口时间、 主时间框架调度时间、系统空闲时间。分区周期、主时间框架均为基准时间片的整 数倍,将分区因周期的不同要求而产生的调度排序问题得到简化。通过该方法每个 分区的周期释放点均能落在本分区的时间窗口上。设计了两种分区调度中的周期控 制模式以适用于不同类型的嵌入式系统:功能分区控制模式和IO分区进行控制模式。

对于多任务、多周期、多分区的高可靠性ARINC653嵌入式系统,系统需求、 安全等级、周期以及优先级各不相同,一种ARINC653标准下的分区窗口调度方法 给出一个合理可靠的分区排序、窗口分配、调度顺序和周期控制的方法;通过该方 法设计出的分区运行调度表具有满足周期需求、可靠性高、负载均衡、系统损耗小、 易操作等特点。

附图说明

图1是本发明基准时间片的设计方法示意图;

图2是本发明由IO分区进行周期控制示意图;

图3是本发明由功能分区进行周期控制示意图;

图4是本发明排列分区与系统余量IDLE示意图;

图5是本发明IO以最小时间周期(1/2Ts)在主时间框架(Ts)中出校多次示意图;

图6是本发明分区顺序排列示意图;

图7是本发明IO分区控制周期模式下总线负载示意图;

图8是本发明经过多IO分区任务均衡后的总线负载示意图;

图9是本发明实施例计算Ts后的分区排列示意图;

图10是本发明实施例最终的分区调度方案示意图。

具体实施方式

下面对本发明作进一步详细说明。

1.本发明针对于软件架构为基于ARINC653操作系统的多分区平台软件结构、 各个分区以事先安排好的时间片调度下,相对独立的实现各自的功能。

2.此外各系统分区间有信号需求,如系统逻辑输入、系统条件、转发信号等。 分区与分区之间开辟信息传输通道。软件分区之间的通讯机制主要为port端口通讯, 这类通讯模式包括采样方式和队列方式两种,在软件分区建立时设置。

3.针对一般嵌入式系统设计提出的分区时间窗口设计,工程中一般约定:

a)根据系统划分了若干应用分区,分区个数应在2个到20个分区之间,以适 用绝大部分嵌入式系统设计;

b)分区划分具有独立的IO分区,IO分区定义为该系统与外部进行主要通讯的 唯一接口分区,而其他分区为功能处理分区,接收由IO分区派发的数据,经处理再提 交给IO分区进行设备外部发送;

c)分区运算量均衡,即最大分区不宜大于最小分区运算量10倍,均值适中, 方差较小;

d)工程应用中,嵌入式系统周期大多定义为毫秒级周期,定义功能分区的周期 需求均为5ms周期的整倍数;

e)根据系统设计原则,相对于设备CPU处理能力下,周期任务周期应至少大 于周期任务CPU执行时间10倍以上。

4.基准时间片设计

如图1,根据系统需求进行多分区任务划分,由工程约定知分区任务量划分一般 相对均衡,最大分区与最先分区任务量不超过10倍,因此划分好的N各分区的CPU 执行时间也应相对均衡,在同一量级上,为了灵活的安排分区窗口设计,采用积木 化单位时间片的方法进行设计,即通过单位基准时间片来堆积主时间框架和分区时 间窗口,这样方便对分区周期任务、调度任务释放点的把握。即取分区1、分区2…、 分区N的估算CPU运行时间t1、t2…tn,加上系统CPU运行余量后的向上取整。一 般工程嵌入式周期要求大多为5的整倍数,如周期需求为50ms、100ms、200ms、 500ms、1s,10s等周期。因此向上取整一般为向5ms的整倍数取整。如分区1所需 (某型CPU)任务计算量估算时间为2.1ms,系统余量为30%,则取整后的周期为 [2.1*130%]=5ms。

各分区取整后的运行时间为T1、T2…Tn,取T1、T2…Tn运行时间以及各分区 周期需求P1、P2、P3…Pm的最大公约数为Tp,定义为基准时间片。该时间片是分 区窗口设计的基准时间片,各分区窗口、系统空闲时间窗口、调度表主时间窗口应 均为该Tp的整数倍,如图1所示。主时间框架、分区1时间窗口、分区2时间窗口 均为基准时间片的若干整数倍;分区1到分区1再一次执行时间间隔为分区1内的 周期任务周期,此周期同样为基准时间片的整数倍;IO分区和系统空闲时间作为必 须的时间窗口同样可以以基准时间片的整数倍表达;对与具有周期小于主时间框架 的分区1,可以安排分区1在主时间框架中出现多次,来满足小周期需求。

5.周期控制

各功能分区(非IO分区)的输出数据需要遵循系统周期需求,因此对于一定周 期的输出数据,需要满足时序要求进行数据输出,如分区1的周期任务主要有P1、 P2、P3三种,其中P1、P2、P3应是Tp基准时间片的整数倍。由于分区划分原则, 所有分区数据输出均通过为IO分区进行,因此为了满足分区1的周期需求,分区1 和IO分区必须满足P1、P2、P3所对应周期。要求在分区1窗口执行完毕后,在调 度表中经过P1、P2、P3周期后,调度顺序依然处于分区1的时间窗口中;分区1和 IO分区必须相伴出现,以保证IO分区即时将分区1运算完毕的数据按照周期进行输 出;对于周期控制主要有两种方式:一种为功能分区控制周期,另一种为统一由IO 分区进行周期控制。

6.IO分区周期控制方式

该方式由IO分区进行周期控制,IO分区负责控制周期,在IO分区中实现P1、 P2、P3…Pn等周期任务,根据周期去获取各分区传递在分区间端口port上的周期消 息,并组织数据传输。如分区1有P1、P2、P3三种周期发送类型,则分区1将P1、 P2、P3三个发送数据包以分区1最快周期发送给IO分区;发送时,不同周期采用 不同的采样端口,同时在端口中设置相应的周期标志;IO分区在接收到分区1端口 数据时,选择相应的周期任务进行周期发送。IO分区分别采用P1发送任务、P2发 送任务、P3发送任务来处理三个采样端口上的待发送数据。如图2所示。这种周期 控制的优点是:(1)总线分区便于进行数据综合;(2)功能分区实现简单;(3)分 区切换相对较少。这种周期控制的缺点是:(1)总线负载时间不均衡;(2)IO分区 设计相对复杂;(3)CPU资源要求高。该方式适用于周期较为复杂,CPU运行资源 宽松的大中型系统中。

7.功能分区控制

由功能分区进行周期控制,即各功能分区将输出数据根据不同的周期建立不同 的周期任务,由这些不同的周期任务将周期数据按照需求交给IO分区,IO分区只负 责接收到数据立即发送外部总线即可。如分区1有P1、P2、P3三种周期发送类型, 则分区1将建立P1、P2、P3三个发送任务分别处理这三种周期发送。在分区1窗口 之后需要安排IO分区窗口以便实时发送。如图3所示。这种周期控制的优点是:(1) IO分区设计简单;(2)总线负载均衡;这种周期控制的缺点是:(1)对于来源不同 分区的综合数据包IO分区难以进行数据综合;(2)实时性要求更高,分区切换频繁。 该方式适用于周期较为简单,CPU运行资源紧张的小型系统中。如图3所示。

8.系统余量

按照ARINC653规范开发的实时操作系统,由域组成操作系统结构。系统中的 运行内核CoreOS、分区、共享库都是以域的方式存在。包含CoreOS的域是核心域, CoreOS控制整个系统,运行在特权态,它创建分区,管理分区的调度、分区间的通 信,管理系统资源,监视分区和系统的健康。应用运行在应用分区中,每个应用分 区包含一个分区核OS。在分区核OS运行时,CoreOS在后台作系统服务,调度分区, 并监控分区的运行状态。因此在调度表中除了给应用分区安排足够的时间窗口外, 还要有相应的空余窗口“IDLE”,即必须留一定空窗口给系统OS,用于完成整个工程 的系统后台服务,为了保证系统安全,这个空窗口应为2~5倍Tp基准时间片。除 操作系统必须的空闲开销外,考虑到嵌入式软件安全要求,CPU的安全工作余量一 般要求20%~50%以上,调度表还须预留一定的空余窗口IDLE满足系统余量。如图 4所示。

9.小周期的IO分区与功能分区的要求

如图5所示,分区2数据发送任务有1/2Ts周期发送要求,相对于Ts的主时间 框架,分区2与IO分区需在调度表中出现两次,间隔必须满足1/2Ts要求。因此设 计分区2与IO分区窗口相邻,与另一对分区2与IO分区窗口相距1/2Ts时间,其余 空闲基准时间片用于安排其他分区窗口。因此在对于有较快周期需求的功能分区与 IO分区而言,可以在调度表中安排多次出现,以满足小周期需求。

10.分区顺序与窗口大小

调度表中分区的安排顺序和窗口大小接将根据实际需求而定,例如系统中维护 分区为系统初始化的第一个分区,需要完成从初始化的参数状态,同时判断是否进 入维护模式,因此将维护分区放在调度表中第一个启动窗口,IO分区作为基础的通 讯服务分区,将跟随维护分区进行输入输出操作因此将IO分区排在维护分区之后, 其他功能分区无特殊要求将根据执行时间开销在剩余时间片中排列。原则上相邻分 区具有较多数据关联的应相邻排列,以保证数据的即时传递;IO分区应均衡分布在 调度表中,每一个IO分区时间窗口均是数据输入输出窗口,功能分区窗口出现顺序 必须满足自身周期任务的要求,由紧随其后而来的第一个IO分区完成对外数据发送。 因此IO分区周期必须满足所有功能分区任务周期P1、P2、P3…Pm的最小值。功能 分区窗口的大小根据估算分区任务量的CPU运行时间加上分区运行安全余量而得, 通过向上取整,换算为多干单位的基准时间片长度,较大的系统分区窗口分配多个 基准时间片;如图6所示,分区4、分区7分配了2个Tp窗口。

11.总线的负载均衡

选择周期控制方式为IO分区控制模式,数据发送总是集中在IO分区执行时间 片后一段时间,这将导致总线负载集中加大,由于IO分区是设备嵌入式软件唯一对 外的输入输出服务分区,所以对于功能分区执行时间段,总线输出负载将较小,这 种总线负载的不均衡将增加总线传输的风险。如图7所示。

为解决这一矛盾,在主时间框架中分割IO分区时间窗口为若干部分,均匀分布 在主时间框架上,窗口大小依然保持以Tp为单位,将IO分区的不同周期发送任务 控制分散到多个IO分区中,将周期分为P1、P2一组、P3、P4为另一组,P1、P2 发送数据与P3、P4发送数据通过不同的IO分区窗口释放,这样可以有效地平衡总 线负载。如图8所示。

实施例

飞机的机电系统任务周期需求为50ms、100ms、200ms、500ms、1s五种类型周 期,经设计人员系统需求分析后,将机电系统软件需求划分为:起落架分区、液压 分区、燃油分区、环控分区、供电分区、照明分区以及IO分区供7个分区。每个分 区的周期需求为:

起落架分区:50ms、100ms、200ms、500ms;

液压分区:100ms、200ms、500ms、1s;

燃油分区:100ms、200ms、500ms;

环控分区:100ms、200ms、500ms;

供电分区:100ms、200ms、500ms;

照明分区:100ms、200ms、500ms、1s;

机电核心处理计算机CPU选用PowerPC755,主频为266Mhz,针对该型CPU 对各分区的功能软件运算规模进行测试,得到分区运行开销分别为:起落架分区 2.3ms、液压分区1.6ms、燃油分区4.8ms、环控分区2.1ms、供电分区1.8ms、照明 分区0.9ms、IO分区2.9ms。根据飞机安全性要求分区运行余量要求为40%,CPU系 统运行时间余量要求为30%。

按照本发明步骤2计算各分区的窗口执行时间为:起落架分区为5ms、液压分 区为5ms、燃油分区为10ms、环控分区为5ms、供电分区为5ms、照明分区为5ms、 IO分区为5ms。

按照步骤3计算出基准时间片Tp=5ms;

按照步骤4并确定IO分区周期为50ms;

按照步骤5计算出满足V集合的周期包括V={50ms、100ms、500ms、1s};

按照步骤6计算出调度表最小安全门限为Ts=50ms时最小安全门限为80ms; Ts=100ms时最小安全门限为71ms;

按照步骤7从V集合中选出大于或等于最小安全门限值的最小值为Ts=100ms;

按照步骤8将主时间框架以Tp为基准时间片分割,各个分区窗口时间依次排列 于主时间框架之上,如图9所示;

按照步骤9根据起落架分区、液压分区、燃油分区、环控分区、供电分区、照 明分区的相互依存关系,以及通讯密集程度进行排序;其中供电分区负责系统启动 供电任务应最先启动,所以排列于主时间框架第一个Tp上,IO分区负责供电分区数 据输出排列于第二个Tp上;IO分区、起落架分区周期为50ms,在主时间框架中出 现两次,每次间隔50ms;其中照明分区、环控分区、液压分区数据交互较多,具有 先后顺序,因此将环控分区、照明分区、液压分区顺序排列;燃油分区与其他分区 数据交互较少,为了平衡IO分区窗口之间的数据运算量,将其排列于第二个IO分 区之后;主时间框架剩余时间窗口为系统空闲时间;排序后的调度表如图10所示;

按照步骤10,由于本系统运算量较大、分区个数较多、周期复杂,采用功能分 区IO分区控制方式进行周期控制;

按照步骤11,将系统周期任务以50ms、100ms为一组在第一个IO分区窗口释 放周期;50ms、200ms、500ms、1s为一组在第二个IO分区窗口释放周期,如此可 以平衡总线输出负载。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号