《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 空间机器人冷热双冗余CAN总线系统的研制

空间机器人冷热双冗余CAN总线系统的研制

2008-07-30
作者:陈 尧1, 孙汉旭1, 贾庆轩1

  摘  要: 设计实现了一种能应用在空间机器人" title="空间机器人">空间机器人计算机控制系统中的冷热双冗余" title="双冗余">双冗余CAN总线系统" title="总线系统">总线系统。详细论述了这种冗余CAN总线系统的硬件电路设计方案,以及该总线系统相较其他冗余方式的不同特点,并给出了配合硬件结构的软件容错策略,建立系统模型进行了可靠性分析。最后对该系统的冗余功能和系统性能进行了实际测试。
  关键词: CAN总线; 双冗余; 容错; 空间机器人; 星载计算机

 

    空间机器人控制系统内部总线承担着所有数据和命令的传输任务,拥有一种可靠、实时、高容错的通信总线对于空间机器人系统是至关重要的[1]。在航天领域曾经尝试过RS-485、BITBUS、1553B等串行总线,但存在着价格昂贵、速率低以及可靠性难以保证等问题[2]
    上世纪80年代由德国Bosch公司开发的CAN(Controller Area Network)总线属于现场总线的范畴,是一种串行数据总线。CAN总线系统以其优越的性能、简单的结构、良好的使用性和容错性能而引人注目[3]。目前,在航天领域冗余备份的CAN总线系统已经得到了比较广泛的使用和验证,但是采用的冗余方式对于可靠性和实时性要求都比较高的空间机器人系统来讲都存在一些问题。可以查到的文献中显示,大部分的冗余设计都是单纯的冷冗余或单纯的热冗余,将冷热冗余结合到一起的设计较少。冷冗余功耗较低但实时性差,在高速传输时不易保证数据传输的速率和正确性。热冗余虽然有较好的实时性,但功耗相对较大。这两者的特点有较好的互补性。
    本文针对空间机器人机械手系统设计并实现了CAN控制器和驱动器的冷热双冗余备份的总线系统。该系统有效结合了冷冗余和热冗余的特点,在保证可靠性的前提下也获得了较好的传输速率。
1 CAN总线系统的基本冗余方式
    CAN总线系统的基本冗余方式通常有两个方面:总线控制器" title="总线控制器">总线控制器冗余和总线驱动器冗余。
    CAN总线控制器冗余方式基本思路如图1所示,同时使用两条CAN总线,两个CAN总线驱动器和两个CAN总线控制器,CPU通过不同的端口和中断同时控制两个CAN控制器。这种冗余方法可以进行热冗余:即接收时CPU控制器可以同时处理两路总线上发来的数据,进行比较,选择一组数据接收;发送时可以通过两条总线发送同一组数据。也可以进行冷冗余:当节点发送时,选择一个总线控制器在一条总线上发送,接收方只接收其中一个控制器的数据,在两个控制器都有数据接收时作为两组有效数据处理。

 


    这种冗余方法对整个总线系统进行了冗余备份,没有其他控制电路,整个电路简单通用。但是这种控制模式在热冗余的情况下有以下不足:①会导致系统的软件编写复杂,降低系统的可靠性;②对两个控制器进行控制增加了系统的额外开销,降低了系统的有效利用率;③如果采用接收到1帧后屏蔽另外一路CAN总线中断,则会导致有用数据帧的丢失或者增加系统判断的难度和复杂度。在冷冗余情况下,为了使得系统使用的CAN总线统一,需要增加总线仲裁节点,并且系统的总线切换无法做到实时高效切换。
    CAN总线驱动器冗余方式是针对CAN总线系统出错的主要环节——驱动芯片和通信线路而进行的冗余的方式。该方法使用两条总线电缆,每个节点处使用两个总线驱动器,一个总线控制器,在总线控制器与两个总线驱动器之间设置一模拟开关,如图2所示。当节点发送数据时,总线控制器通过两个总线驱动器同时向两条总线发送相同的报文;在接收时,CPU通过设置模拟开关将一个CAN驱动器的信号送入CAN控制器进行接收。在CPU内部为各个节点设一定时器,该定时器在计数到预先设定的数值后发出中断,控制器在收到该中断后,切换模拟开关,将另一个CAN驱动器的信号送人CAN控制器进行接收。

 


    该种冗余方法具有控制电路简单、可控性强、软件编制方便和系统利用率高等优点。但是该系统又有切换的实时性不强,定时器的时间难以确定的缺点。该系统同时使用两条总线发送,一条总线接收,因此当接收总线出错(断线)而备份总线正常的情况下,在收方定时器时间内,由于没有收到物理回应,发送节点将自动重发该数据帧,影响其他节点之间的正常通信。
2 冷热双冗余CAN总线系统的设计
2.1 空间机器人机械手控制系统设计概述
  空间机器人机械手系统是空间机器人系统的一个重要组成部分,该系统采用的是层次式分布控制系统。控制部分组成模式如图3所示。控制器之间通过CAN总线进行通信。

 


  为了提高系统的可靠性、实时性和容错能力,对CAN通信总线采用冷热双冗余设计。在CAN总线系统的设计中,CAN控制器采用的是SJA1000控制器,CAN驱动器采用的是82C250驱动器。
2.2 双冗余CAN总线系统设计
  下面主要以中央控制器" title="中央控制器">中央控制器为例来说明双冗余CAN总线系统的设计。中央控制器主要由互为备份的相同主控单板A、B(含CPU、存储器、CAN总线控制器、CAN驱动器等),仲裁电路及供电系统组成。如图4所示。

 


  该冷热冗余的CAN总线系统由主控单板间CAN控制器的冷冗余和单板上CAN驱动器的热冗余构成。CAN节点的具体设计如图5所示。两个冗余的主控单板之间通过仲裁电路进行仲裁,判断哪个主控单板具备CAN总线的控制权,成为当班主机,另一主控单板则成为备机,以此实现CAN控制器的冷冗余。每个单板都与两条冗余的通信总线电缆相连,在CAN节点的每个冗余的主控单板上使用一个总线控制器和两个总线驱动器,总线控制器与总线驱动器之间设置有判断电路,可以进行CAN驱动器的实时切换,实现驱动器的热冗余。具备CAN总线控制权的主控单板在发送时,总线控制器通过两个总线驱动器同时向两条总线发送同一报文;而在接收时,判断电路会根据报文到达的先后顺序,自动选择两条冗余总线中的一条来接收报文,并将收到的报文送入总线控制器。

 


  (1) 主控单板间的CAN总线控制器的冷冗余
  在互为备份的主控单板间,CAN总线控制器冷冗余切换仲裁逻辑是通过在各主控单板的CPU中设置一个基于定时器的主/备机切换逻辑来完成的。在工作时,当班的主控单板在控制周期开始时发送广播查询指令,当该主控单板收到各节点的广播查询返回指令后清除定时器的计数值,重新计时。如果主控单板发生故障,该单板的定时器便发出超时中断,系统将进行主控单板控制权的切换,完成CAN总线系统控制器的冷冗余切换。该计时器的初始值设定在系统控制周期的1~2倍时间段上比较合适。
  空间机械手中央控制器有冷热备份两种工作模式。在机械手系统工作时,控制系统处于热备份模式以提高系统的可靠性和冗余部件切换的实时性;在机械手系统待机时控制系统处于冷备份模式以降低系统的功耗。在系统热备份模式下,CAN总线控制器冷冗余切换是通过仲裁电路分别置A、B单板选择位Asel和Bsel有效来实现的;在系统冷备份模式下,CAN总线控制器冷冗余切换是通过把定时器与硬件看门狗相连接,在将发生故障的主控单板复位的同时,使备份的主控单板加电启动成为当班机,并使复位的主控单板成为备份机。
  (2) 主控单板上的CAN总线驱动器热冗余
  在报文发送时,单板上两个驱动器同时分别向两条总线发送同一报文。两条总线均正常工作时,传送的报文均正确且相同,故接收端无论接收哪一路都可以。当有一条总线发生故障时,接收端负责总线故障的判断和错误报文的屏蔽。在报文接收时,判断电路对总线的选择以时间优先为原则。由于任何两条相同总线在电气特性上都会有差异,故它们的传输延迟不会完全相同,导致报文的到达时间也会有先后之分。这样,先到达的报文就会被判断电路选中并送入CAN总线控制器。如果两条总线均无故障,那么两条总线上传输的报文是相同的,因此选择哪一路收到的都是正确报文。
  用来确定总线报文到达的先后顺序并进行驱动器选择的判断电路是由2个分别对应2条总线的74LS123单稳态电路和用VHDL语言编写的CPLD逻辑电路组成的。由芯片手册知道,74LS123是直流触发的单稳多谐振荡器,该电路一旦被触发,输出的基本脉冲宽度可以通过可重复触发的低电平有效的选通输入而得到扩展。因此它对不同的总线状态有不同的输出。判断电路的设计思想就是通过这一输出脉冲起始上升沿到达的先后和脉冲宽度来完成对两条总线的报文选择和对故障总线的屏蔽。当总线上无报文传输时,74LS123输出端为低电平。一旦报文到达,在报文帧起始位触发下降沿的作用下,74LS123的输入端产生一个高电平脉冲输出,这个高电平脉冲的宽度取决于报文中逻辑位的情况。由于正常情况下报文中连续出现相同逻辑位的位数不超过5位,经报文中对应的下降沿的不断触发,这个高电平脉冲从报文帧起始位下降沿开始一直将持续到报文结束。根据CAN总线协议,CAN帧主动错误标志的最大可能时间为12位。这样一来高电平脉冲长度就大于12位数据传输的长度[3]。两个单稳态的输出脉冲的上升沿表示了两个报文到达的先后关系,通过编写的CPLD逻辑电路,抢先到达的报文被选中,它产生的持续12位时间长度的高电平脉冲在逻辑电路里屏蔽了另一路滞后到达的报文。如果其中一个总线因发生故障而无报文时,则对应的74LS123就不会被触发,因而被作为滞后者处理,此时对应的信号通道始终被逻辑电路屏蔽。如此就做到了两路CAN驱动器的热冗余实时切换。
2.3 CAN总线系统相关软件措施
  结合硬件设计,在CAN总线的上层协议和软件设计中采取了如下措施:
  (1) 在所有CAN的数据帧中增加了一个字节的CRC校验来判断接收数据的正确性,如果接收不正确就抛弃数据。提高了系统的容错能力。
  (2) 在软件设计中增加了错误重发机制保证系统数据通信的可靠。
  (3) 在软件设计中依据CAN总线控制器的错误标志寄存器设计了总线系统的自检机制,提前发现错误,提前切换保障系统的运行。
  (4) 将中央控制器设置为系统中的主节点,可以向其他节点发送数据,并可以接收所有其他从节点的数据;其他从节点只能与中央控制器节点通信,从节点之间不进行通信。这样的层次设置有利于CAN总线系统的管理,提高系统的可靠性。
  (5) 为了防止由于CAN总线系统的错误而导致各节点主/备机间的乒乓切换,在软件设计上增加了CAN总线状态错误标志:当主/备机在约定的时间内没有收到任何CAN总线数据,则CAN总线状态错误标志加1;如果正常接收到数据帧且CAN总线状态错误标志不为零时,标志减1;当CAN总线状态错误标志大于3时系统(中央控制器)向上级或地面发送总线错误标志,由上位机或地面采取相应的措施。
3 CAN总线系统可靠性分析
  根据以上设计,空间机械手CAN总线系统的可靠性模型可以简化为图6所示模型。

 


  可靠性计算的依据是串联模型与并联模型。
  串联模型:
  
  并联模型:
  

  上述两式中: Rc(t)为子系统的可靠度;Ri(t)为各部件的可靠度;λi(t)为各部件的失效率;n为中央控制器各模块主要部件的数目。
  经分析可知,该串并混合系统的可靠度模型为:
  


  经计算该模型的失效率已达到1失效数/106小时的数量级,远远超出机械手系统设计的在轨寿命要求。
4 验证与测试
4.1 冗余备份功能测试
  冗余备份功能测试主要包括:主控单板间CAN控制器的冷冗余功能和单板内CAN总线的热冗余功能。
CAN总线冷冗余功能的测试方法:将测试设备与中央控制器的CAN总线相连。测试设备可以通过CAN总线与中央控制器进行数据通信。中央控制器启动到热备份工作模式,设定主控单板A为主机(当班机),具备CAN总线控制权,B为备机。主/备机程序中均设定2 000ms的切换时限。所有定时均在本机CAN总线收到第一帧数据时开始启动。由测试设备向中央控制器发送10 000帧数据,帧间隔为50ms(保证一定的通信时间)。
  测试结果:经过如上测试,被测试机最终接收到数据帧的数目为9 970帧。
  CAN总线热冗余功能的测试方法:通过一块主控单板设置CAN的帧间隔为50ms,发送100 000帧(保证一定的通信时间),由被测试的主控单板来接收。在测试过程中进行如下操作:手动断开A路总线→接好A路总线→断开B路总线→接好B路总线。
  测试结果:经过如上测试,被测试机最终接收到数据帧的数目为100 000帧。
  结果分析:在热冗余测试中,实现了冗余CAN总线的无缝切换;在冷冗余测试中,当模拟出现故障时,主控单板间因为需要进行主/备机切换,可能会引起丢帧。测试结果表明,该设计保证了冗余CAN总线的数据通信的实时性和可靠性。同时,由于处理器只需要处理一个通信中断,大大降低了系统控制软件的复杂性,降低了通信系统对处理器和内存的压力。
4.2 CAN总线测试信道通信速率的验证
  设计中采用了CAN控制器SJA1000和驱动器82C250,具备1Mb/s的最高通信速率的能力。机械手系统设计要求的总线通信能力为500kb/s,在此处测试了器件的最高通信能力和设计要求的500kb/s通信能力。
  测试方法:利用一台通用的CAN总线通信设备(本测试使用的是周立功CAN测试卡),设置通信速率分别为1Mb/s和500kb/s,先后与中央控制器进行一定数据量的连续通信(保证数据量不低于100 000帧)。
测试结果如表1所示。

 


  根据以上结果,表明系统具备1Mb/s的通信速率,并且满足要求的500kb/s的稳定通信速率。
  本研究在综合考虑空间环境及机器人任务特殊性的基础上,实现了一种独特的空间机器人冷热冗余CAN总线系统。经过实际测试和项目实践,证明了该套系统能够满足执行空间任务的需要,适合在空间机器人系统中应用。


参考文献
[1]  向琳,曲峰,崔刚,等.小卫星星务计算机的容错体系结构设计[J]. 航天控制,2005,23(2):92-95.
[2]  唐心悦, 崔刚,曲峰,等.小卫星星务计算机系统总线的研究与实现[J].哈尔滨工业大学学报,2001,33(6):740-745.
[3]  饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M]. 北京:北京航空航天大学出版社,2004.
[4]  禹春来,许化龙,刘根旺,等. CAN 总线冗余方法研究[J].测控技术,2003,22(10):28-30.
[5]  EMRICH A. CAN application in avionics, omnisys instrument[R]. European Space Technology Centre, 2000-11:29-33.
[6]  ASHENDEN P J. The designer’s guide to VHDL (Second  Edition)[M]. China Machine Press, 2005.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。