[发明专利]基于vxworks操作系统的ARINC429通信冗余方法有效
申请号: | 200910023264.8 | 申请日: | 2009-07-10 |
公开(公告)号: | CN101604270A | 公开(公告)日: | 2009-12-16 |
发明(设计)人: | 相征;苑峰;万娟;汤书苑;刘校伟;齐佩汉 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F11/16 | 分类号: | G06F11/16;G06F9/46 |
代理公司: | 陕西电子工业专利中心 | 代理人: | 王品华;朱红星 |
地址: | 71007*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 vxworks 操作系统 arinc429 通信 冗余 方法 | ||
技术领域
本发明涉及到实时系统的通信技术领域,具体涉及了一种基于vxworks的ARINC429通信冗余方法。
背景技术
Vxworks操作系统是美国Winder River公司于1983年设计开发的一种嵌入式实时操作系统,系统在提供高效实时多任务的同时提供了良好的伸缩性,即系统的主要部件都可以按照应用的要求进行增加或删减。
ARINC429是一种航空航天专用串口通信总线协议。由于ARINC429本身传输信息的高速以及可靠性,它已作为一种通用的串行传输总线标准应用于几乎所有飞机的航电系统中。但飞机上各种环境因素,如抖动、高低温、湿度以及来自其他设备的电磁干扰,都会降低ARINC429传输信息的可靠性,所以针对ARINC429的高效可靠通信变得十分重要,而冗余技术是提高通信系统可靠性的最有效的方法之一。
目前,通信系统中常采用的最简单有效的一种冗余技术就是硬件冗余技术,例如在《双总线方式下的串口通信技术》一文中提到的“双总线结构”,是通过故障检测设备来检测故障,从而实现通信冗余,该方法存在以下技术瓶颈:(1)当硬件检测电路自身出现故障时,不能监视主从通道的状态,也无法完成主从通道的自动切换功能;(2)由于需要设计硬件电路,通信系统的设计和实现复杂化了,引入了附加的不可靠的因素。
又如在《航空ARINC429总线通信的余度设计》一文中提到“信息余度的设计与实现”,是通过循环冗余校验(CRC)实现的ARINC429通信冗余,该方法虽然克服了硬件冗余的缺点,但是编码较为复杂,增加了链路的负荷。
另外实时系统的通信技术领域中实时性是一个重要的要求,上述提到的冗余方法都在一定程度上增加了系统的复杂度和设计的难度,从而必然会降低系统的实时性。
发明内容
本发明的目的在于克服上述已有冗余技术的种种缺陷,提供一种基于vxworks操作系统的ARINC429通信冗余方法,以降低硬件和编码的复杂性,提高系统实时性。
为了达到上述目的,本发明的技术方案包括以下步骤:
(1)在上位机和CPU之间建立起两条独立通信的ARINC429通讯通道,进行周期为period的周期通信;任选一条通讯通道作为主通道A,且为默认的通信通道,选另外一条通道B作为备用通道;
(2)在操作系统vxworks的编程环境下调用库函数taskSpawn()创建基于操作系统vxworks的周期为periodT的周期任务PCDeal,以接收发送和处理上位机数据;创建第一环形缓冲区RingAId和第二环形缓冲区RingBId分别用来存放接收到主通道A和备用通道B的数据;
(3)按如下步骤编写一个通道选择函数Choose429():
3a)在操作系统vxworks的编程环境下调用操作系统vxworks中对环形缓冲区的操作函数rngNBytes(),分别获取环形缓冲区RingAId和RingBId中的字节数;
3b)创建全局变量NA作为第一计数器,对同时发生的RingAId中字节数为0和RingBId中字节数不为0这种情况的次数计数;创建全局变量NB作为第二计数器,对RingAId和RingBId中字节数都为0这种情况发生的次数计数;若RingAId和RingBId中字节数都不为为0,则判断RingAId中字节数是否大于RingAId中字节数,如果是就采用备用通道B,否则采用主通道A;若同时发生RingAId中字节数不为0和RingBId中字节数为0这种情况,则采用主通道A;
3c)选择一个门限N,进行异常检测,若第一计数器NA的值大于这个门限,则判定主通道A异常,切换为备用通道B,否则跳回步骤3a),完成函数Choose429()的编写;若第二计数器NB的值大于这个门限,则判定两个通道都异常,CPU不接收数据,进入安全工作模式,否则跳回步骤3a),完成函数Choose429()的编写。
(4)按如下步骤执行由步骤(2)中创建的任务PCDeal:
4a)在每次接收数据前先调用步骤(3)中的通道选择函数Choose429()选择通道;
4b)调用操作系统vxworks中对环形缓冲区的操作库函数rngBufGet(),读取该通道环形缓冲区的数据,以完成对数据的接收。
在步骤(1)中,主通道A和备用通道B的工作时序和传输数据完全相同,且B通道处于热备份状态。
在步骤(2)中,基于操作系统vxworks的任务PCDeal是通过查询的方式来接收上位机数据的周期任务,可以根据实时性要求来改变该任务的周期periodT。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910023264.8/2.html,转载请声明来源钻瓜专利网。