买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种解决ARINC661规范中竞态条件的方法_中电科航空电子有限公司_201710935344.5 

申请/专利权人:中电科航空电子有限公司

申请日:2017-10-10

公开(公告)日:2021-04-13

公开(公告)号:CN107678862B

主分类号:G06F9/52(20060101)

分类号:G06F9/52(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.04.13#授权;2018.03.09#实质审查的生效;2018.02.09#公开

摘要:本发明公开了一种解决ARINC661规范中竞态条件的方法,所述方法包括:CDS对飞机座舱显控系统中的每个交互式组件均维护一个锁;基于UA或CDS发送的锁定请求和释放请求,CDS利用该锁能够对交互式组件进行锁定和释放操作;当UA启用锁对交互式组件进行锁定时,UA才能对组件的内部状态进行设定,直到UA释放锁;当CDS启用锁对交互式组件进行锁定时,CDS才能对组件的内部状态进行设定,直到CDS释放锁;UA为用户应用程序,CDS为飞机座舱显控系统,在同一时刻该锁只能基于UA或CDS中的一个发送的请求进行操作;解决了现有的方案均不具有通用性,且只是降低竞态条件产生概率,实现了从根本上解决竞态条件的产生的技术效果。

主权项:1.一种解决ARINC661规范中竞态条件的方法,其特征在于,所述方法包括:CDS对飞机座舱显控系统中的每个交互式组件均维护一个锁;基于UA或CDS发送的锁定请求和释放请求,CDS利用该锁能够对交互式组件进行锁定和释放操作;当UA启用锁对交互式组件进行锁定时,UA才能对组件的内部状态进行设定,直到UA释放锁;当CDS启用锁对交互式组件进行锁定时,CDS才能对组件的内部状态进行设定,直到CDS释放锁;UA为用户应用程序,CDS为飞机座舱显控系统,在同一时刻该锁只能基于UA或CDS中的一个发送的请求进行操作;基于A661_LOCK命令和A661_LOCK通知事件,UA对交互式组件的内部状态进行设置前,需要先向CDS发送A661_LOCK命令对组件的内部状态进行锁定;如果锁定成功,UA才能发送命令设置交互式组件的内部状态,如果锁定不成功,则UA随机延迟一段时间后重新尝试锁定交互式组件并进行设置;CDS在对交互式组件进行设置并通知到UA前,判断该交互式组件当前是否正在被UA锁定;如果该交互式组件被UA锁定,则CDS暂时不能响应飞行员操作;同时,如果CDS收到了UA的锁定请求或释放请求,则根据此时交互式组件的锁的情况做出对应的回应。

全文数据:_种解决ARING661规范中完态条件的方法技术领域[0001]本发明涉及航空电子技术领域,具体地,涉及一种解决ARINC661规范中竞态条件的方法。背景技术[0002]随着电子技术在航空领域应用的飞速发展,航空电子的综合化程度和人机交互的要求都越来越高,交互式飞机座舱显控系统的开发难度也在加大。由于缺乏行业规范,不同设备制造商生产的航空电子器件接口各不相同,给飞机座舱显示系统的开发带来了不便。ARINC661规范座舱显控系统和用户系统接口协议的产生正是为了解决如何快速开发可相互替换和配合使用的显控系统这一困扰飞机设备制造商已久的难题。ARINC661规范于2001年由美国ARINC公司出版,它将座舱显示系统分为了两个主要的功能模块:UA用户应用程序和⑶S座舱显示系统)JA和⑶S互为相互独立的应用,两者之间通过ARINC661规范定义的标准通信协议进行命令和事件的传输。基于ARINC661规范的显控系统的最大特点在于将界面显示功能和逻辑处理功能彻底隔离,提高了系统的开放性和移植性。ARINC661规范避免了各大软、硬件生产厂商在接口、开发方法和流程上的差异,给出各种座舱显示系统统一的接口规范,为开发具有可重用性和可移植性的座舱显示系统提供了统一的技术向导。经过近几年的修订与增补,经波音、空客、达索等公司的相继采用,ARINC661规范已经逐步成为行业标准。[0003]ARINC661规范使用组件来解除界面显示功能和逻辑处理功能之间的耦合关系。界面显示功能只负责组件的图形显示,飞行员操作组件会产生相应的事件。组件事件的解析和产生的具体的飞行行为的控制则交由具体逻辑处理功能来实现。根据ARINC661规范的规定,部分可交互式组件具有其特定的内部状态,用以表征组件特定的行为及其功能性。UA和⑶S都可以感知和管理组件的内部状态。在UA和⑶S交互过程中,双方对同一个组件的内部状态理解不一致的情况,规范称之为“竞态条件”(RaceCondition。图1所示为一种竞态条件产生的示例。UA在更新下拉菜单组件的内部状态时,飞行员也在相近时刻操作该组件,导致UA对飞行员在下拉菜单中做出选择时其内部状态的理解可能不一致。[0004]ARINC661规范提出了如下几种方案来降低竞态条件产生的概率:[0005]1对于编辑框组件,UA通过编辑框组件的开始编辑事件和结束编辑事件来避免UA和飞行员同时对编辑框的内容进行更改。该方案只针对编辑框类的组件,不是通用性解决方案;且在开始编辑事件通知的过程中,仍然可能产生竞态条件;[0006]2UA可以在设置组件内部状态的命令中增加上下文计数ContextNumber,CDS发送事件时,将对应的上下文计数在事件中带回给UA以达到双方对内部状态的一个共同的理解。由于上下计数存在溢出后翻转的情况,在某些极端情况下仍然存在竞态条件。且该方案只适用于下拉菜单类组件。[0007]竞态条件使UA和CDS对组件的内部状态理解不一致,可能导致UA对飞行员的操作行为产生错误的逻辑处理。现有的解决方案均不具有通用性,且只是降低竞态条件产生概率。因此需要发明一种方法来从根本上解决竞态条件的产生。发明内容[0008]本发明提供了一种解决ARINC661规范中竞态条件的方法,解决了现有的方案均不具有通用性,且只是降低竞态条件产生概率,实现了从根本上解决竞态条件的产生的技术效果。[0009]为实现上述发明目的,本申请提供了一种解决ARINC661规范中竞态条件的方法,所述方法包括:[0010]⑶S对飞机座舱显控系统中的每个交互式组件均维护一个锁;基于UA或⑶S发送的锁定请求和释放请求,CDS利用该锁能够对交互式组件进行锁定和释放操作;当UA启用锁对交互式组件进行锁定时,UA才能对组件的内部状态进行设定,直到UA释放锁;当CDS启用锁对交互式组件进行锁定时,CDS才能对组件的内部状态进行设定,直到CDS释放锁;UA为用户应用程序,CDS为飞机座舱显控系统,在同一时刻该锁只能基于UA或⑶S中的一个发送的请求进行操作。[0011]其中,本方法是一种通用性的从根本上解决竞态条件产生的方法。本方法由CDS在内部对每个交互式组件维护一个锁该锁功能可以通过设置打开和关闭),由CDS负责对该锁的锁定和释放操作UA和CDS均可以发起对该锁的锁定请求和释放请求)。当前锁定了该锁的应用UA或者⑶S,才能对组件的内部状态进行设定,直到其释放锁。由于UA和⑶S相互独立,在严格遵循ARINC661规范的基础上,利用ARINC661规范预留给OEM厂商的命令字和通知事件编码,扩充ARINC661规范的命令和通知事件,用于UA向CDS发起锁的锁定和释放请求以及⑶S返回请求结果。[0012]CDS对飞机座舱显控系统中的每个交互式组件均维护一个锁。该锁是对交互式组件内部状态进行独占式操作的保证。UA或CDS在对交互式组件内部状态进行设定前,均需要锁定该锁;再设定后,均需要释放该锁。锁的实现不限定于特定的形式,取决于CDS对其所负责的部分ARINC661功能的实现的系统架构和方法,其实现的关键在于能够支持原子操作的变量,用于表征加锁和释放锁的两种状态。[0013]通过增加对组件内部状态的锁定机制,使UA或者CDS均能在某一时刻对组件的内部状态具有独占权并通知对方组件内部状态的改变,从而从根本上解决双方同时操作组件内部状态导致对组件的内部状态理解不一致的情况,达到避免竞态条件产生的目的。[0014]进一步的,基于A661_L0CK命令和A661_L0CK通知事件,UA对交互式组件的内部状态进行设置前,需要先向CDS发送A661_L0CK命令对组件的内部状态进行锁定;如果锁定成功,UA才能发送命令设置交互式组件的内部状态,如果锁定不成功,则UA随机延迟一段时间后重新尝试锁定交互式组件并进行设置。[0015]进一步的,A661_L0CK命令结构包括:A661_CMD_L0CK、CommandSize、WidgetIdent、LockRequest;A661_CMD_L0CK、CommandSize、WidgetIdent、LockRequest的类型均为ushort,位宽均为16BITS,A661_CMD_L0CK为A661_L0CK命令起始关键字,用于表征A661_LOCK命令的开始;CommandSize为命令长度,WidgetIdent为交互式组件标识符,用于标识该命令作用于特定的交互式组件;LockRequest为0时为释放对组件的锁请求,LockRequest为1时为请求对组件的锁请求。[0016]进一步的,A661_L0CK通知事件结构包括:A661_N0TIFY_L0CK_EVENT、CommandSize、WidgetIdent、LockResult;A661_N0TIFY_L0CK_EVENT、CommandSize、WidgetIdent、LockResult的类型均为ushort,位宽均为16BITS,A661_N0TIFY_L0CK_EVENT为A661_L0CK命令起始关键字,用于表征A661_L0CK命令的开始;CommandSize为通知事件长度,WidgetIdent为交互式组件标识符,用于标识该通知事件对应的交互式组件;LockRequest为0时为该组件的内部状态未被UA锁定,LockRequest为1时为该组件的内部状态已经被UA锁定。[0017]进一步的,UA发起的锁定交互过程包括:[0018]交互场景1中:[0019]UA在设置组件内部状态前,发送A661_L0CK命令对组件进行锁定;[0020]⑶S对该命令回复了A661_L0CK通知事件:未锁定,⑶S对组件的内部状态具有独占权,UA无法设置组件的内部状态;[0021]⑶S向UA发送组件通知事件;[0022]交互场景2中:[0023]UA在设置组件内部状态前,发送A661_L0CK命令对组件进行锁定;[0024]CDS对该命令回复了A661_L0CK通知事件:锁定;此时UA已经锁定该组件,CDS无法设置该组件的内部状态或者对组件发起操作;[0025]UA发送命令设置该组件的内部状态;[0026]UA发送A661_L0CK命令对组件进行锁释放,此后UA和⑶S双方均能够再次对该组件进行操作。[0027]进一步的,CDS在对交互式组件进行设置并通知到UA前,判断该交互式组件当前是否正在被UA锁定;如果该交互式组件被UA锁定,则CDS暂时不能响应飞行员操作;同时,如果CDS收到了UA的锁定请求或释放请求,则根据此时交互式组件的锁的情况做出对应的回应。[0028]本申请提供的一个或多个技术方案,至少具有如下技术效果或优点:[0029]本发明从竞态条件产生的内因入手,利用锁机制从根本上解决了竞态条件产生的问题;[0030]本发明具有通用性,对ARINC661规范定义的种类繁多的组件的各种竞态条件产生的情况均适用。附图说明[0031]此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定;[0032]图1为竞态条件示例示意图;[0033]图2为UA的操作流程示意图;[0034]图3为UA发起的锁定交互过程示意图;[0035]图4为⑶S的操作流程示意图。具体实施方式[0036]本发明提供了一种解决ARINC661规范中竞态条件的方法,解决了现有的方案均不具有通用性,且只是降低竞态条件产生概率,实现了从根本上解决竞态条件的产生的技术效果。[0037]为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在相互不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。[0038]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述范围内的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。[0039]本方法是一种通用性的从根本上解决竞态条件产生的方法。本方法由CDS在内部对每个交互式组件维护一个锁该锁功能可以通过设置打开和关闭),由CDS负责对该锁的锁定和释放操作UA和CDS均可以发起对该锁的锁定请求和释放请求)。当前锁定了该锁的应用(UA或者CDS,才能对组件的内部状态进行设定,直到其释放锁。由于UA和CDS相互独立,在严格遵循ARINC661规范的基础上,利用ARINC661规范预留给OEM厂商的命令字和通知事件编码,扩充ARINC661规范的命令和通知事件,用于UA向CDS发起锁的锁定和释放请求以及⑶S返回请求结果。[0040]通过增加对组件内部状态的锁定机制,使UA或者CDS均能在某一时刻对组件的内部状态具有独占权并通知对方组件内部状态的改变,从而从根本上解决双方同时操作组件内部状态导致对组件的内部状态理解不一致的情况,达到避免竞态条件产生的目的。[0041]本方法扩充的命令和通知事件如表1和表2所示:[0042]表IA661_L0CK命令结构[0043][0044]表2A661_L0CK通知事件结构[0045][0046]在此扩充的命令和通知事件的基础上,UA对组件的内部状态进行设置前,需要先向CDS发送A661_L0CK命令对组件的内部状态进行锁定。如果锁定成功,UA才能发送命令设置组件的内部状态,如果锁定不成功CDS已经锁定该组件,此时飞行员可能正在操作该组件),则UA随机延迟一段时间后重新尝试锁定组件并进行设置。UA的操作流程如图2所示。UA发起的锁定交互过程如图3所示。[0047]交互场景1中:[0048]步骤1:UA在设置组件内部状态前,发送A661_L0CK命令对组件进行锁定;[0049]步骤2:⑶S对该命令回复了A661_L0CK通知事件未锁定)。此时飞行员可能正在操作组件,CDS对组件的内部状态具有独占权,UA无法设置组件的内部状态;[0050]步骤3:⑶S向UA发送组件通知事件。由于UA未能锁定组件进行内部状态的更改,此时UA认为的组件的内部状态还维持在之前的状态,UA对组件的内部状态的理解与CDS是一致的。[0051]交互场景2中:[0052]步骤4:UA在设置组件内部状态前,发送A661_L0CK命令对组件进行锁定;[0053]步骤5:⑶S对该命令回复了A661_L0CK通知事件锁定)。此时UA已经锁定该组件,CDS无法设置该组件的内部状态或者对组件发起操作;[0054]步骤6:UA发送命令设置该组件的内部状态;[0055]步骤7:UA发送A661_L0CK命令对组件进行锁释放,此后UA和⑶S双方均可以再次对该组件进行操作。[0056]CDS在响应飞行员操作对组件进行设置并通知到UA前,也应该判断该组件当前是否正在被UA锁定。如果该组件被UA锁定了,则CDS暂时不能响应飞行员操作。同时,如果CDS收到了UA的锁请求,也应该根据此时组件的锁的情况做出对应的回应。CDS的操作流程如图4所示。[0057]上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:[0058]本发明从竞态条件产生的内因入手,利用锁机制从根本上解决了竞态条件产生的问题;[0059]本发明具有通用性,对ARINC661规范定义的种类繁多的组件的各种竞态条件产生的情况均适用。[0060]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。[0061]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

权利要求:1.一种解决ARINC661规范中竞态条件的方法,其特征在于,所述方法包括:CDS对飞机座舱显控系统中的每个交互式组件均维护一个锁;基于UA或CDS发送的锁定请求和释放请求,CDS利用该锁能够对交互式组件进行锁定和释放操作;当UA启用锁对交互式组件进行锁定时,UA才能对组件的内部状态进行设定,直到UA释放锁;当CDS启用锁对交互式组件进行锁定时,CDS才能对组件的内部状态进行设定,直到CDS释放锁;UA为用户应用程序,CDS为飞机座舱显控系统,在同一时刻该锁只能基于UA或⑶S中的一个发送的请求进行操作。2.根据权利要求1所述的解决ARINC661规范中竞态条件的方法,其特征在于,基于A661_L0CK命令和A661_L0CK通知事件,UA对交互式组件的内部状态进行设置前,需要先向CDS发送A661_L0CK命令对组件的内部状态进行锁定;如果锁定成功,UA才能发送命令设置交互式组件的内部状态,如果锁定不成功,则UA随机延迟一段时间后重新尝试锁定交互式组件并进行设置。3.根据权利要求2所述的解决ARINC661规范中竞态条件的方法,其特征在于,A661_LOCK命令结构包括:A661_CMD_L0CK、CommandSize、WidgetIdent、LockRequest;A661_CMD_LOCK、CommandSize、WidgetIdent、LockRequest的类型均为ushort,位宽均为16BITS,A661_CMD_L0CK为A661_L0CK命令起始关键字,用于表征A661_L0CK命令的开始;CommandSize为命令长度,WidgetIdent为交互式组件标识符,用于标识该命令作用于特定的交互式组件;LockRequest为0时为释放对组件的锁请求,LockRequest为1时为请求对组件的锁请求。4.根据权利要求2所述的解决ARINC661规范中竞态条件的方法,其特征在于,A661_LOCK通知事件结构包括:A661_N0TIFY_L0CK_EVENT、CommandSize、WidgetIdent、LockResult;A661_N0TIFY_L0CK_EVENT、CommandSize、WidgetIdent、LockResult的类型均为ushort,位宽均为16BITS,A661_N0TIFY_L0CK_EVENT为A661_L0CK命令起始关键字,用于表征A661_L0CK命令的开始;CommandSize为通知事件长度,WidgetIdent为交互式组件标识符,用于标识该通知事件对应的交互式组件;LockRequest为0时为该组件的内部状态未被UA锁定,LockRequest为1时为该组件的内部状态已经被UA锁定。5.根据权利要求2所述的解决ARINC661规范中竞态条件的方法,其特征在于,UA发起的锁定交互过程包括:交互场景1中:UA在设置组件内部状态前,发送A661_L0CK命令对组件进行锁定;CDS对该命令回复了A661_L0CK通知事件:未锁定,CDS对组件的内部状态具有独占权,UA无法设置组件的内部状态;CDS向UA发送组件通知事件;交互场景2中:UA在设置组件内部状态前,发送A661_L0CK命令对组件进行锁定;CDS对该命令回复了A661_L0CK通知事件:锁定;此时UA已经锁定该组件,CDS无法设置该组件的内部状态或者对组件发起操作;UA发送命令设置该组件的内部状态;UA发送A661_L0CK命令对组件进行锁释放,此后UA和⑶S双方均能够再次对该组件进行操作。6.根据权利要求2所述的解决ARINC661规范中竞态条件的方法,其特征在于,CDS在对交互式组件进行设置并通知到UA前,判断该交互式组件当前是否正在被UA锁定;如果该交互式组件被UA锁定,则CDS暂时不能响应飞行员操作;同时,如果CDS收到了UA的锁定请求或释放请求,则根据此时交互式组件的锁的情况做出对应的回应。

百度查询: 中电科航空电子有限公司 一种解决ARINC661规范中竞态条件的方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。