冗余CAN总线高可用计算机系统设计与实现*

2012-07-25 03:20郑欢欢张慧翔
微处理机 2012年3期
关键词:计算机系统总线控制器

郑欢欢,戴 航,张慧翔

(西北工业大学自动化学院,西安710072)

1 引言

随着对空间技术研究、开发和应用水平的不断提升,各国相继研制并发射了大量面向各种任务的航天器。由于空间环境恶劣,部分航天器在未完成任务时,发生部分功能故障,导致了整个任务失败,因此,可更换模块化设计就应运而生[1]。可更换模块化设计把模块的内部组件集成分装,通过标准总线接口连接。系统功能分散到一系列独立的单元功能模块中,当遇到模块故障,立即进行模块更换。通过设计可更换模块单元,可有效提高系统的可靠性和可用性[2]。

CAN总线[3]具有可靠性高、实时性好、灵活性强的突出特点,已经越来越多的应用于航空领域[4]。针对航空领域的CAN总线应用需求,德国Stock航空系统公司还专门在CAN总线基本规范的基础上设计了一种 CANaerospace[5-6]高层应用协议。因此,应用CAN总线作为高可用数据通信的标准接口具有可行性。

航天器系统中包含有大量的计算机模块,用于完成各种计算和检测任务。为保证系统可持续运行,本文设计了一种基于冗余CAN总线、支持可更换操作的高可用计算机系统。该系统设计包括计算机系统组成和更换模式,以及通信系统设计,最后通过实验进行该系统的功能验证。

2 高可用计算机系统的组成和更换模式

高可用计算机系统包含计算机工作模块、计算机温备模块、计算机冷备模块和计算机外部存储模块,各个模块构成一种分布式的计算平台,如图1所示。各个计算机模块具有相同的硬件结构和配置。计算机外部存储模块为所有的计算机模块提供可靠、持久的外部存储能力。各个模块之间通过CAN 总线进行命令和数据交互。

图1 高可用计算机系统的组成

计算机模块的定义如下:①计算机工作模块:处于工作状态的计算机模块,执行一定的任务;②计算机温备模块:指处于待命状态的计算机模块,该模块在逻辑上与整个系统断开。温备模块中存在一个系统后台任务,只接收特定的指令;③计算机冷备模块:指处于断电状态的计算机模块,该模块未上电加载软件系统,在物理上与整个系统断开。

基于以上高可用计算机系统组成,可更换计算机系统更换模式如图2所示。计算机系统中的每个节点可在四种状态之间转换。各种状态描述如下:①工作状态:节点计算机模块正常执行系统任务;②温备状态:已加电的正常计算机模块,但未执行系统任务;③冷备状态:未加电的正常计算机模块,处于备份状态;④可更换状态:节点出现永久故障,无法继续执行任务,已被监控节点断电,标记为可更换状态。

图2 高可用计算机系统的更换模式

整个可更换计算机系统中的节点在监控节点的控制下进行调度和状态转换。应该说明,监控节点并不属于中心控制节点,只是一个分布式节点,执行系统监控的任务。为了增强系统的可靠性,可能有多个节点同时执行监控任务。

3 基于冗余CAN总线的通信系统设计

3.1 基于控制器级的冗余CAN总线结构

典型的CAN总线电路可分为3个环节,即微处理器、总线控制器、总线驱动器。因此,CAN总线的典型冗余方法[7]包括驱动器级冗余,控制器级冗余和系统级冗余。其中,系统级冗余的可靠性最高,但系统构成相对比较复杂,成本最高。相比之下,在大多数应用中采用控制器级的冗余设计即可满足要求,即采用两套独立的总线电缆、总线驱动器、总线控制器,如果其中一套发生故障,另一套仍能维持系统的正常运行。本文采用CAN总线控制器级冗余方式,总线冗余结构如图3所示。

图3 控制级CAN总线冗余结构

3.2 系统硬件设计

根据图3控制器级冗余结构,设计了高可用计算机模块。模块由核心板和底板组成,核心板上集成MPC8313处理器,256M的SDRAM以及16M的FLASH,可扩展NAND FLASH为256M。2个千兆以太网 PHY芯片,分别连接 MPC8313的 TSEC1和TSEC2接口;1个RS232串口作为系统监控串口,直接控制系统;2路CAN总线控制器,实现基于控制器级总线冗余。

CAN控制器采用Philips公司独立的CAN总线控制器SJA1000,它支持BasicCAN和PeliCAN两种工作模式,是64字节的FIFO结构,具有扩展的接收缓冲器,支持CAN2.0协议,位速率可达1M bit/s,可自动完成链路层以下的收发工作。

CAN总线收发器选用PCA82C250,它提供了CAN控制器与物理总线之间的接口。

支持更换过程的热插拔控制器是Maxim公司的MAX4271,它采用了集成限流方案,简化了浪涌抑制设计,为更换过程中带电热插拔提供了电路保护和支持。

3.3 协议设计

系统采用含有29位标识符的扩展帧格式,通过设置标识符[8]的内容,实现不同功能。具体帧ID分配表见表1所示。

表1 帧ID分配表

协议报文各字段定义如下:①报文类型编码:不同的消息类型,区分节点间通信的基本功能;②节点编码:源节点即发送节点,目标节点是接收节点;③SegPolo即分段标志,用于信息多帧传输时区分中间帧和结束帧。

3.4 故障检测

论文设计的高可用计算机系统采用了两种故障检测[9]方法:被动检测和主动检测。

3.4.1 被动检测

由于采用的是控制级的CAN总线冗余,拥有单独的传输介质、总线驱动器和总线控制器,所以可以分别独立检测到两条总线的故障。在每一总线单元中使用发送错误计数器和接收发送计数器两种计数来进行故障界定。计数规则为:

(1)发送器/接收器直到帧末尾都没有错误,则判定报文有效。如果检测到错误后,就给发送接收计数累加。当然当发送或者接收的报文有效时计数值递减,最小值为0;

(2)当错误计数器值大于96时,表明总线被严重干扰,CAN控制器置位错误寄存器,并发出错误中断;

(3)当错误计数器值大于127时,节点为“错误认可”状态(“错误认可”状态:参与总线通信,本节点在启动下一个发送之前处于等待状态),从而导致了该节点发出“激活错误”标志;

(4)当错误计数器值大于或者等于256时,节点进入游离状态,并发送出离线中断。CPU收到错误中断信号或者离线中断信号,得知节点通讯出现故障后,切换总线通道同时清除错误中断信号。如果再次出现错误,清除错误中断信号,说明是节点总线故障。节点脱离总线。

3.4.2 主动检测

失效检测一般采用超时机制实现,即通过被检测对象在规定时间T内有无应答来判断失效,有两种最基本的检测方法:心跳检测和轮询检测方法。

心跳检测:被检测进程按照一定的时间间隔,定期向失效检测器发送心跳信息。如果失效检测器超过某一期限没有收到心跳消息,则认为被检测对象失效。

轮询检测:失效检测器q定时发送查询消息,检查被检测对象p的状态,被检测对象p收到查询消息后返回应答消息,如果失效检测器超过一定时间间隔没有收到应答消息,则认为被检测对象失效。

系统中的各个节点在上电后,每隔T1时间向总线发送心跳消息。在T1时间内,监控节点没有收到某一节点的心跳消息,就向总线广播轮询报文(轮询检测),T1时间没有收到心跳消息,就进行总线切换;切换后再次向总线广播轮询消息,还是没有收到,则认定该节点失效。

4 功能验证实验

按照图1所示模型,搭建了验证实验平台,采用两个计算机模块,一个作为工作模块,一个作为温备模块。应用两条CAN总线,测控计算机通过周立功的USBCANⅡ模块接入总线网络,作为系统的外部存储模块。实验过程如下:

(1)检测是否正常工作:测控计算机向总线中各计算机工作模块发送带有隐藏文字的图片,计算机工作模块把有用的文字信息提取出来返回给测控计算机。在测控计算机监控界面上,可观察到计算机工作模块持续返回的文字信息。

(2)检测总线切换功能:正常工作状态,将工作总线从系统中拔出,从监控界面上看到总线切换的过程,稍有停顿后正常工作,测控计算机收到连贯的文字信息。

(3)检测计算机模块切换功能:正常工作状态,将计算机工作模块拔出,脱离系统。监控界面上,可以看到计算机工作模块心跳消失,总线重新进行身份认证过程,计算机温备模块接替工作,稍有停顿后正常工作,测控计算机收到连贯的文字信息。

根据测试结果看出,整个系统的应用层协议简洁实用、可靠性高、可扩展性强,达到了预期目标,较快地实现了节点和总线的切换。

5 结束语

设计了一种高可用可更换计算机系统,通过冗余CAN总线和控制器级的冗余硬件结构提高系统的可靠性和可用性。系统实现了被动和主动的故障检测模式。实现了高可用可更换计算机的原型系统,验证实验表明系统达到了预定的设计目标,具有较好的可用性。

[1] 陈小前,袁建平,姚雯.航天器在轨服务技术[M].北京:中国宇航出版社,2009.

[2] 王大鹏,谭春林,张博楠.载人航天器在轨维修性系统设计[J].中国空间科学技术,2010,5:16-22.

[3] 饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2003.

[4] 梁君,熊华钢.CAN总线及其较高层网络协议在航空航天上的可适用性探讨[J].导弹与航天运载技术,2004(4):47-50.

[5] CAN aerospace interface specification for airborne CAN app lications V1.7[Z].Germany:Stock Flight Systems,2001.

[6] 任立平,周军.CAN总线高层协议CANaerospace及其设计应用[J].测控技术,2008,27(2):59-61.

[7] 禹春来,许化龙,刘根旺,等.CAN总线冗余方法研究[J].测控技术,2003,22(10):28-41.

[8] 许航,白瑞林,严惠.CAN总线上层协议的设计[J].计算机工程,2007,33(24):258-266.

猜你喜欢
计算机系统总线控制器
工商业IC卡控制器改造为物联网控制器实践
IBM推出可与人类“辩论”的计算机系统
一种基于CAN总线的误码测试方法
分布处理计算机系统研究
地面气象测报业务计算机系统
CAN总线并发通信时下位机应用软件设计
基于CAN总线的水下通信系统设计
正确书写计算机系统内部使用的二进制倍数词头符号
模糊PID控制器设计及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列