一种1553B总线通信故障处理方法与流程

文档序号:12123355阅读:1625来源:国知局
一种1553B总线通信故障处理方法与流程
本发明涉及一种1553B总线通信故障处理方法,用于解决航天伺服控制软件与总成上位机进行1553B通信时的故障问题,属于1553B总线通信
技术领域

背景技术
:1553B总线通信技术是一种高可靠军用通信方式,被广泛使用在航天伺服控制软件中,当1553B接口芯片异常时,导致1553B通信异常,总成上位机与伺服控制软件无法正常通信,从而影响伺服控制软件的可靠性。因此,如何解决1553B总线通信故障问题成为了提高伺服控制器软件可靠性的关键问题。由于1553B通信具有较高的可靠性,因此,目前国内外基于1553B总线开发的软件一般不做故障处理,并通过提高1553B接口芯片的可靠性级别来提高通信可靠性,但1553B接口芯片的可靠性级别无法达到100%,且无法完全屏蔽外界干扰,因此急需一种1553B总线通信故障处理方法。技术实现要素:本发明的目的在于提出一种满1553B总线通信故障处理方法,该方法可以及时监测到1553B总线接口芯片故障问题,并进行快速恢复,并通过多次监测提高该故障检测方法的抗干扰能力。本发明的上述目的主要是通过如下技术方案予以实现的:一种1553B总线通信故障处理方法,1553B总线接口芯片包括N个配置寄存器,具体处理方法包括如下步骤:(1)、判断1553B总线接口芯片中第一个配置寄存器的当前值是否等于设定的初始值L1,若不相等,则将所述配置寄存器的错误状态标志位置为1,并进入步骤(2),若相等,则直接进入步骤(2);(2)、判断1553B总线接口芯片中第二个配置寄存器的当前值是否等于设定的初始值L2,若不相等,则将所述配置寄存器的错误状态标志位置为1,并进入步骤(3),若相等,则直接进入步骤(3);(3)、判断1553B总线接口芯片中第三个配置寄存器的当前值是否等于设定的初始值L3,若不相等,则将所述配置寄存器的错误状态标志位置为1,并进入步骤(4),若相等,则直接进入步骤(4);(4)、依次类推,直至判断1553B总线接口芯片中第N个配置寄存器的当前值是否等于设定的初始值LN,若不相等,则将所述配置寄存器的错误状态标志位置为1,并进入步骤(5),若相等,则直接进入步骤(5);(5)、判断错误状态标志位是否满足条件,若N个配置寄存器中错误状态标志位不为0的个数Q满足:1≤Q<N,则记录错误状态标志位不为0的配置寄存器的序号,进入步骤(6);若N个配置寄存器中错误状态标志位不为0的个数Q满足:Q=N,则进入步骤(7);若N个配置寄存器的错误状态标志位全部为0,则进入步骤(9);(6)、按照记录的序号由小到大的顺序逐一判断配置寄存器的监测次数是否满足条件,对监测次数小于设定值M的配置寄存器,按照步骤(1)~(4)的方法重新监测该配置寄存器的值,进入步骤(5);对监测次数大于或等于设定值M的配置寄存器,进入步骤(8);(7)、判断监测次数是否满足条件,若监测次数小于设定值M,则返回步骤(1),开始下一次监测;若监测次数大于或等于设定值M,则进入步骤(8);其中Q、N、M均为正整数;(8)、对1553B总线接口芯片中的Q个配置寄存器重新进行初始化;(9)、结束。在上述1553B总线通信故障处理方法中,所述1553B总线通信故障处理在定时中断中进行。在上述1553B总线通信故障处理方法中,所述步骤(8)对1553B总线接口芯片中的配置寄存器重新进行初始化后,对1553B总线接口芯片中的命令字堆栈指针值赋初始值。在上述1553B总线通信故障处理方法中,所述监测次数M取值为2~4。一种1553B总线通信故障处理方法,1553B总线接口芯片包括N个配置寄存器,具体处理方法包括如下步骤:(1)、判断1553B总线接口芯片中第一个配置寄存器的当前值是否等于设定的初始值L1,若不相等,则将所述配置寄存器的错误状态标志位置为1,并进入步骤(2),若相等,则直接进入步骤(2);(2)、判断1553B总线接口芯片中第二个配置寄存器的当前值是否等于设定的初始值L2,若不相等,则将所述配置寄存器的错误状态标志位置为1,并进入步骤(3),若相等,则直接进入步骤(3);(3)、判断1553B总线接口芯片中第三个配置寄存器的当前值是否等于设定的初始值L3,若不相等,则将所述配置寄存器的错误状态标志位置为1,并进入步骤(4),若相等,则直接进入步骤(4);(4)、依次类推,直至判断1553B总线接口芯片中第N个配置寄存器的当前值是否等于设定的初始值LN,若不相等,则将所述配置寄存器的错误状态标志位置为1,并进入步骤(5),若相等,则直接进入步骤(5);(5)、判断错误状态标志位是否满足条件,若N个配置寄存器的错误状态标志位至少有一个不为0,则进入步骤(6);若N个配置寄存器的错误状态标志位全部为0,则进入步骤(8);(6)、判断监测次数是否满足条件,若监测次数小于设定值M,则返回步骤(1),开始下一次监测;若监测次数大于或等于设定值M,则进入步骤(7);其中Q、N、M均为正整数;(7)、对1553B总线接口芯片中的N个配置寄存器重新进行初始化;(8)、结束。在上述1553B总线通信故障处理方法中,所述1553B总线通信故障处理在定时中断中进行。在上述1553B总线通信故障处理方法中,所述步骤(7)对1553B总线接口芯片中的N个配置寄存器重新进行初始化后,对1553B总线接口芯片中的命令字堆栈指针值赋初始值。在上述1553B总线通信故障处理方法中,所述监测次数M取值为2~4。本发明与现有技术相比具有如下有益效果:(1)、本发明针对1553B总线接口芯片受到干扰后工作异常不能自动恢复总线通信的故障,通过定时监测1553B总线接口芯片重要寄存器的值,判断芯片工作状态实现故障的检测;当检测到其值与初始值不一致时,重新初始化芯片寄存器及1553B总线命令字堆栈指针变量,使其进入期望的工作模式,实现故障的恢复,提高系统的可靠性及抗干扰能力。(2)、本发明巧妙设计故障检测流程,针对1553B总线接口芯片中配置寄存器不同的故障情况,进行不同的处理,在提高故障处理准确率的同时,提高了故障处理效率,并节省了程序和时间。(3)、本发明通过实时检查1553B总线接口芯片关键寄存器状态,可以及时发现1553B总线接口芯片故障问题,在判断1553B总线接口芯片是否故障时采用多次读取判断策略,减小由于干扰导致误判的概率,提高该故障检测方法的抗干扰能力。(4)、本发明当检测1553B接口芯片工作异常,重新初始化芯片寄存器及1553B总线命令字堆栈指针变量,在当前定时中断周期即可恢复1553B通信,增强了系统的可靠性。附图说明图1为本发明1553B总线伺服控制原理图;图2为本发明1553B总线通信的故障实时监测及恢复处理原理图;图3为本发明1553B总线通信的故障实时监测及恢复处理流程图;图4为本发明另一种1553B总线通信的故障实时监测及恢复处理流程图。具体实施方式下面结合附图和具体实施例对本发明作进一步详细的描述:伺服控制使用两个中断,即1553B消息中断和定时中断,两个中断禁止嵌套,定时器中断主要用于负载控制,1553B中断主要用于实现伺服控制软件与总成上位机的通信。采用查询命令堆栈方式接收1553B中断消息指令,防止指令丢失,保证消息完整性。在定时中断中定时检测1553B总线接口芯片重要寄存器的值,当检测到其值与初始值不一致时,重新初始化芯片寄存器及1553B总线命令字堆栈指针变量,实现1553B总线通信的故障检测及恢复。如图1所示为本发明1553B总线伺服控制原理图;上电后依次执行初始化处理器芯片、初始化1553B接口芯片、初始化全局变量,完成初始化后等待中断到来。定时中断到来后首先清除中断响应,完成负载控制,再进行1553B总线通信故障实时监测及恢复处理,中断返回。1553B消息结束中断到来后,首先清除中断响应,完成控制系统指令接收后中断返回。在初始化处理器芯片时,设置可接受两个中断,即1ms定时器中断和1553B消息中断,并设置两个中断禁止嵌套,且1553B中断优先级高于定时器中断,即当定时器中断与1553B消息中断同时发生时,首先执行1553B消息中断,保证1553B消息的及时性。当1553B消息中断产生时,跳转至1553B消息中断入口,并依次执行清除中断响应及中断标志位,接收消息并按照1553B通信协议解析控制系统指令,执行完成后跳出中断继续等待下一个中断到来。当定时器中断产生时,跳转至定时器中断入口,并依次执行清除中断响应及中断标志位、负载控制模块、1553B总线通信的故障实时监测及恢复处理,执行完成后跳出中断,等待下一个中断的到来。如图2所示为本发明1553B总线通信的故障实时监测及恢复处理原理图,由图可知,首先判断1553B接口芯片是否异常,若正常则直接跳出中断,若异常,则初始化1553B接口芯片寄存器及堆栈指针。如图3所示为本发明1553B总线通信的故障实时监测及恢复处理流程图,本发明1553B总线通信故障处理方法具体包括如下步骤,其中1553B总线接口芯片包括N个配置寄存器。(1)、判断1553B总线接口芯片中第一个配置寄存器的当前值是否等于设定的初始值L1,若不相等,则将所述配置寄存器的错误状态标志位置为1,并进入步骤(2),若相等,则直接进入步骤(2);(2)、判断1553B总线接口芯片中第二个配置寄存器的当前值是否等于设定的初始值L2,若不相等,则将所述配置寄存器的错误状态标志位置为1,并进入步骤(3),若相等,则直接进入步骤(3);(3)、判断1553B总线接口芯片中第三个配置寄存器的当前值是否等于设定的初始值L3,若不相等,则将所述配置寄存器的错误状态标志位置为1,并进入步骤(4),若相等,则直接进入步骤(4);(4)、依次类推,直至判断1553B总线接口芯片中第N个配置寄存器的当前值是否等于设定的初始值LN,若不相等,则将所述配置寄存器的错误状态标志位置为1,并进入步骤(5),若相等,则直接进入步骤(5);(5)、判断错误状态标志位是否满足条件,若N个配置寄存器中错误状态标志位不为0的个数Q满足:1≤Q<N,则记录错误状态标志位不为0的配置寄存器的序号,进入步骤(6);若N个配置寄存器中错误状态标志位不为0的个数Q满足:Q=N,则进入步骤(7);若N个配置寄存器的错误状态标志位全部为0,则进入步骤(10);(6)、按照记录的序号由小到大的顺序逐一判断配置寄存器的监测次数是否满足条件,对监测次数小于设定值M的配置寄存器,按照步骤(1)~(4)的方法重新检测该配置寄存器的值,进入步骤(5);对监测次数大于或等于设定值M的配置寄存器,则进入步骤(8);(7)、判断监测次数是否满足条件,若监测次数小于设定值M,则返回步骤(1),开始下一次监测;若监测次数大于或等于设定值M,则进入步骤(8);(8)、对1553B总线接口芯片中的Q个配置寄存器重新进行初始化;(9)、对1553B总线接口芯片中的命令字堆栈指针值赋初始值。(10)、结束。上述1553B总线通信故障处理在定时中断中进行;上述监测次数M取值为2~4。如图4所示为本发明另一种1553B总线通信的故障实时监测及恢复处理流程图,本发明1553B总线通信故障处理方法还可以采取如下步骤:具体处理方法包括如下步骤:(1)、判断1553B总线接口芯片中第一个配置寄存器的当前值是否等于设定的初始值L1,若不相等,则将所述配置寄存器的错误状态标志位置为1,并进入步骤(2),若相等,则直接进入步骤(2);(2)、判断1553B总线接口芯片中第二个配置寄存器的当前值是否等于设定的初始值L2,若不相等,则将所述配置寄存器的错误状态标志位置为1,并进入步骤(3),若相等,则直接进入步骤(3);(3)、判断1553B总线接口芯片中第三个配置寄存器的当前值是否等于设定的初始值L3,若不相等,则将所述配置寄存器的错误状态标志位置为1,并进入步骤(4),若相等,则直接进入步骤(4);(4)、依次类推,直至判断1553B总线接口芯片中第N个配置寄存器的当前值是否等于设定的初始值LN,若不相等,则将所述配置寄存器的错误状态标志位置为1,并进入步骤(5),若相等,则直接进入步骤(5);(5)、判断错误状态标志位是否满足条件,若N个配置寄存器的错误状态标志位至少有一个不为0,则进入步骤(6);若N个配置寄存器的错误状态标志位全部为0,则进入步骤(9);(6)、判断监测次数是否满足条件,若监测次数小于设定值M,则返回步骤(1),开始下一次监测;若监测次数大于或等于设定值M,则进入步骤(7);(7)、对1553B总线接口芯片中的N个配置寄存器重新进行初始化;(8)、对1553B总线接口芯片中的命令字堆栈指针值赋初始值。(9)、结束。实施例1以下以接口芯片为Bu61580为例说明1553B总线通信的故障实时监测及恢复处理方法。本实施例中1553B总线接口芯片Bu61580包括4个配置寄存器,如下表1为Bu61580的4个监测寄存器的初始值:寄存器名称需要检查的寄存器位初始值备注RT_Interrupt_Mask_RegD15~D00x0001/RT_Config_Reg1D15~D10x8F80D0为状态位RT_Config_Reg2D15~D00x1012/RT_Config_Reg3D15~D00x8015/(1)、判断1553B总线接口芯片中第1个配置寄存器RT_Interrupt_Mask_Reg的当前值是否等于0x0001,判断结果为不相等,将该配置寄存器的错误状态标志位置为1,进入步骤(2);(2)、判断1553B总线接口芯片中第2个配置寄存器RT_Config_Reg1的当前值是否等于0x8F80,判断结果为不相等,将该配置寄存器的错误状态标志位置为1,进入步骤(3);(3)、判断1553B总线接口芯片中第3个配置寄存器RT_Config_Reg2的当前值是否等于0x1012,判断结果为相等,进入步骤(4);(4)、判断1553B总线接口芯片中第4个配置寄存器RT_Config_Reg3的当前值是否等于0x8015,判断结果为不相等,将该配置寄存器的错误状态标志位置为1,进入步骤(5);(5)、判断错误状态标志位是否满足条件,4个配置寄存器中错误状态标志位不为0的个数Q满足:Q=3,记录错误状态标志位不为0的配置寄存器的序号,即序号1、序号2、序号4,进入步骤(6);(6)、监测次数设定值M=2,按照序号1、2、4的顺序逐一判断各个配置寄存器的监测次数是否满足条件,3个配置寄存器的监测次数均为1,小于M,根据步骤(1)、(2)、(4)分别重新检测序号1、序号2、序号4的配置寄存器的值,重新检测结果为:序号1、序号2、序号4的3个配置寄存器的错误状态标志位均不为0,继续按照序号1、2、4的顺序逐一判断各个配置寄存器的监测次数是否满足条件,3个配置寄存器的监测次数均为2,等于M,则仅对1553B总线接口芯片中的序号1、序号2、序号4的3个配置寄存器重新进行初始化。之后对1553B总线接口芯片中的命令字堆栈指针值赋初始值。(7)、结束。以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1