[发明专利]基于vxworks操作系统的ARINC429通信冗余方法有效
申请号: | 200910023264.8 | 申请日: | 2009-07-10 |
公开(公告)号: | CN101604270A | 公开(公告)日: | 2009-12-16 |
发明(设计)人: | 相征;苑峰;万娟;汤书苑;刘校伟;齐佩汉 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F11/16 | 分类号: | G06F11/16;G06F9/46 |
代理公司: | 陕西电子工业专利中心 | 代理人: | 王品华;朱红星 |
地址: | 71007*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于vxworks操作系统的ARINC429通信冗余方法,主要解决现有实时通信系统中冗余方法不可靠、实时性低、设计复杂的问题。其实现步骤为:在上位机和CPU的通信系统中,上位机通过主通道A和备用通道B两条独立的ARINC429通道和CPU通信,且两通道的工作时序和传输数据完全相同,CPU通过两个不同的环形缓冲区分别存放从两个通道接收到的数据,CPU每次接收数据之前调用通道选择函数,该通道选择函数先判断两个环形缓冲区中的字节数,根据两个环形缓冲区中的字节数的不同情况,进行异常检测并选择通道。该方法充分利用了vxworks中环形缓冲区操作函数,简化了异常检测和信息同步过程,对故障做出及时处理,从而在软件上确保了系统的可靠性和实时性。 | ||
搜索关键词: | 基于 vxworks 操作系统 arinc429 通信 冗余 方法 | ||
【主权项】:
1.一种基于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,则判断第二环形缓冲区RingBId中字节数是否大于第一环形缓冲区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(),读取该通道环形缓冲区的数据,以完成对数据的接收。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200910023264.8/,转载请声明来源钻瓜专利网。