发明名称 基于vxworks操作系统的ARINC429通信冗余方法
摘要 本发明公开了一种基于vxworks操作系统的ARINC429通信冗余方法,主要解决现有实时通信系统中冗余方法不可靠、实时性低、设计复杂的问题。其实现步骤为:在上位机和CPU的通信系统中,上位机通过主通道A和备用通道B两条独立的ARINC429通道和CPU通信,且两通道的工作时序和传输数据完全相同,CPU通过两个不同的环形缓冲区分别存放从两个通道接收到的数据,CPU每次接收数据之前调用通道选择函数,该通道选择函数先判断两个环形缓冲区中的字节数,根据两个环形缓冲区中的字节数的不同情况,进行异常检测并选择通道。该方法充分利用了vxworks中环形缓冲区操作函数,简化了异常检测和信息同步过程,对故障做出及时处理,从而在软件上确保了系统的可靠性和实时性。
申请公布号 CN101604270A 申请公布日期 2009.12.16
申请号 CN200910023264.8 申请日期 2009.07.10
申请人 西安电子科技大学 发明人 相征;苑峰;万娟;汤书苑;刘校伟;齐佩汉
分类号 G06F11/16(2006.01)I;G06F9/46(2006.01)I 主分类号 G06F11/16(2006.01)I
代理机构 陕西电子工业专利中心 代理人 王品华;朱红星
主权项 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(),读取该通道环形缓冲区的数据,以完成对数据的接收。
地址 710071陕西省西安市太白路2号
您可能感兴趣的专利