返回 科技论文 首页
CAN总线在高可用容错系统中的应用

  摘 要:本文设计了一种通信系统,该系统是建立在高可用容错系统下的子系统。通信系统进行了冗余设计,容错系统中单元之间的数据通信,是通过通信总线来实现的。该系统采用的是可靠性较高的CAN总线及接口控制器来实现的,这种总线具有,成本低、传输距离较长、数据传输速率高等多种高可靠高实时性,所应具备的特点。
  关键词:CAN;容错;高可靠性
  中图分类号:TP302.8
  本文所描述的容错通讯系统,应用在航空航天领域的高可用容错计算机系统中。容错通讯系统负责容错系统中单元之间的数据通信功能,该系统是由冗余的CAN总线(Controller Area Network,控制器局域网)作为核心,与控制器、收发器共同实现的。希望本论文能够得到同行在此类设计中参考。
  1 高可用容错系统的组成
  整个系统在硬件上采用飞行器普遍适用的三模冗余设计,系统采用上位机--下位机模式,上位机为普通的PC机,负责下位机程序的下载、程序的调试、程序的监控、控制软件的开发;上位机与下位机通过CAN总线相连接,CAN总线负责两方数据的传输;下位机则执行各种应用任务,并向上位机反馈信息。整个开发系统的结构[1]如图1所示。
  图1 开发系统的结构图
  2 冗余通信系统的设计
  该通信系统由冗余的两条CAN总线构成,总线1与总线2。总线2作为总线1的备份,当总线1出现故障时,总线2替换总线1,其次序的控制由软件完成,从而实现通讯线路的容错。CAN总线包括CAN总线控制器以及CAN总线收发器模块。
  2.1 CAN总线特点及结构
  CAN总线在国际现场总线控制领域中有着极广泛应用的总线。与CAN总线特点对比的对象,是具有代表性、并经常在总线控制中使用的RS-485总线,它似于RS-232总线,只定义了物理层并定义了电平的标准。基于CAN总线的控制系统相对于构建在R线之上的基于RS-485的控制系统有诸多优势,如表1[2]所示:
  表1 总线比对项目
  比对参数 CAN-bus RS-485
  单节点成本 稍高 极低
  系统成本 较低 高
  总线利用率 高 低
  数据传输率 高 低
  网路特性 多主网路 单主网路
  通信失效率 极低 高
  通信范围 10km(5kbps) <1.5km
  网路协议 标准CAN-bus协议 标准Modbus协议
  节点故障的影响 无影响 整个网路死锁
  网路调试 极易 困难
  容错机制 可靠的错误检测及处理机制 无
  维护成本 低 高
  CAN总线包括控制器、CAN控制器以及CAN的收发器模块。
  在整个通信系统中,模块的控制器由单机系统中的处理器来负责。CAN控制器主要的功能是,在网络的结构体系中,负责对物理层及数据链路层的进行设置,它的物理实体就是一块可编程芯片,其功能的实现是通过对之上的逻辑电路进行组合来完成的。实际上,CAN控制器就是将CAN总线与微处理器结构线路连接在一起的端口,数据正常的接收与发送是通过其上运行的程序使得CPU能够对它如何工作进行设置完成的。CAN收发器是能否正常运行关系到通信系统的可靠性、安全性以及电磁兼容性能否保证的关键。通信系统的结构[3]如图2所示。
  图2 CAN结构及使用器件
  2.1.1 CAN控制器
  本次系统的设计使用的是Philips公司生产的SJA1000芯片,它是对CAN独立控制的。其中包括了两种操作模式BasicCAN(0-31,32个寄存器可用)与PeliCAN(0-127,128个寄存器可用)。PeliCAN模式则是SJA1000生产后才有的,这种模式主要是对CAN2.0B(3.4.2中给出)技术规范的适用。SJA1000具有的特点概括如下:(1)引脚的电气参数对PCA82C200完全适用;(2)对CAN2.0A与CAN2.0B同时适用;(3)11位与29位的标识码都是被接受的,通讯速率为1Mbps;(4)具有FIFO模式的64字节的可扩展接收缓冲器;(5)PeliCAN工作模式中具有扩展选择,具体有:无第二的单次发送、对热插拔的支持、最后一次错误代码寄存器、可供读写的错误寄存器、可以设定的错误提示限额寄存器、中断一个总线错误、对仲裁丢失中断有明确的位进行显示、当子请求接收时对本身报文的接收。这些特性都容错设计中适用的。
  2.1.2 CAN收发器
  本次通信系统所使用的收发器芯片是PCA82C250,它具有如下特点:(1)适用于ISO11898标准;(2)有1Mbps的传输速率;(3)具有过热保护功能;(4)具有在电源、总线以及地间短路的保护功能;(5)在电流低时,进入待机状态;(6)没有上电的节点对总线不产生干扰。
  所使用的收发器是集成了PCA82C250芯片的zlg生产的USBCAN智能CAN接口卡,目的是可将CAN总线通过USB总线连接到PC机,从而使PC机可以对通讯系统以及整个系统进行调试控制。它的特点是支持2路独立CAN通道,这是对冗余总线的支持;CAN2.0B规范,我们将接口设计成29位;波特率可设置在5kpbs-1Mbps内,方便调试和通信。
  2.2 CAN总线的报文传输与帧在系统中配置
  帧的两种标识符的长度将帧分为两种不同的形式,第一种是标准帧,其中包括11位的标识符;第二种为扩展帧,它包括29位标识符。针对三机备份容错系统中需要对节点的身份以及对报文所表示的含义(数据或状态)进行具体的识别,因此第二种帧的形式,即扩展帧更适于对帧的配置。
  在对报文的传输过程中,帧被分为四种,数据帧、错误帧、过载帧以及远程帧。数据帧来负责将数据由发送器送达到接收器;错误帧是当总线中出现错误并被总线中的任一单元发现,则这一单元就会发送错误帧;过载帧所提供的是一个额外的延迟,目标是远程帧或是接近数据帧;远程帧是由总线单元所发出的,用来对这拥有一标识符数据帧传递的询问。   针对本次系统中方便系统对具体功能的实现,以及增强通信的可操作性,对数据帧进行了配置与定义[4]如表2所示。
  表2 系统中帧的定义
  帧信息头 FF=1 RTR=0 X X DLC
  扩展帧 数据帧 不影响 帧数据部分长度(≤8)
  帧标识符 ID28 ID27 ID26 ID25 ID24 ID23 ID22 ID21
  报文类型
  ID20 ID19 ID18 ID17 ID16 ID15 ID14 ID13
  DestMAC ID(目标节点编码)
  ID12 ID11 ID10 ID9 ID8 ID7 ID6 ID5
  SrcMAC ID(源节点编码)
  ID4 ID3 ID2 ID1 ID0 X X X
  00 SegPolo(分段标志) 不影响
  帧数据部分 Byte 0
  Byte 1
  Byte 2
  Byte 3
  Byte 4
  Byte 5
  Byte 6
  Byte 7
  首先是对帧信息头的定义,这一部分的定义如表二中的前两行所表示的,共包含8 bit,其中FF为1时代表帧的形式为扩展帧;RTR是远程访问请求,值为0说明不设置;有两位空置;DLC代表一帧中传输数据大小,在此处设为8,即默大小为8字节。
  其次是对帧标识符的定义,这一部分的定义如表二中3~8行所表示,此部分共包含29 bit,除了因格式需要所这置空的后三位外其他位均有定义。
  第一部分的ID21-ID28共8位,用作对报文的类型进行编码,所编码的内容涉及了数据的类型以及数据的优先级,其中数据的类型包括编码为0000 0000-0111 1111的状态信息帧,以及编码为1000 0000-1111 1111的数据信息帧,其中优先级的高低与数值的大小成反比,即数值越大优先级越低。
  数据信息帧则直接关系到表二中所示的帧数据部分,帧中负载的是非状态信息的数据。
  状态信息帧所包含的内容是传输过程能否正确完成的重要信息,也是我们对节点进行检测的关键信息。包含的内容为传输相应报文、检测主节点的报文、显示节点检测报文。
  第二部分是表二中所示的5-10行,帧中分别利用了8位(ID5-ID12、ID13~ID20)来定义源节点编码(SrcMAC ID)与目标节点编码(DestMAC ID),分别用于表示此帧的发送节点与接收节点的地址。最后的ID0~ID2的3位用于对是否分段(SegPolo)进行设置,这与数据的大小相关,由于一帧所传数据设定在8字节,当大于8字节就需要分段传输,SegPolo的值为000、001、010分别表示单帧传输、多帧中间传输以及多帧最后帧传输。
  2.3 冗余CAN总线的实现
  图3 冗余CAN总线实现流程
  通信系统采用的是可靠性较高的进行了冗余设计的CAN总线,其结构图如图三所示,在系统中共有两条CAN总线CAN0和CAN1,CAN1是对CAN0的备份,当CAN0出现故障时CAN1对CAN0进行替换,并且按照图三中的流程实现冗余的CAN总线,与系统中两条CAN总线相配的是,在单机故障恢复系统中集成在板卡中的两个SJA1000 CAN控制器,另一端连接有两路CAN接口的具有PCA82C250芯片,USBCAN收发器相连,收发器通过USB总线与PC机相连接,这样就完成了整个基于CAN总线的高可用通信系统的设计。
  3 结束语
  对实现三机备份容错系统的数据传递、通信及控制的线路―CAN总线的特点与结构既选择的必要性进行分析,对总线进行了冗余设计,给出了完整的总线实现方案。该文对容错的总线设计具有一定的参考意义。进一步工作是优化并完善原型系统的通信能力。
  参考文献:
  [1]陆阳,王强,诸葛战斌.计算机系统容错技术研究[J].计算机工程,2010(36):230-235.
  [2]史文路.双机热备份系统的研究与设计[D].南京工业大学,2006:13-22.
  [3]孙栓,赵敏,戴维.微小卫星星载计算机存储容错计算研究[J].计算机技术与发展,2008(08):148.
  [4]王霆,长宁宁,王艳利.分布式高可靠性星载计算机系统研究与实现[J].科技信息,2008(10):57-58.
  作者简介:孙锴(1985-),男,陕西西安人,硕士,助理工程师,研究方向:嵌入式系统;郭潇(1985-),女,陕西西安人,本科,工程师,研究方向:嵌入式系统。
  作者单位:中航工业西安航空计算技术研究所十室,西安 710119;华陆工程科技有限责任公司,西安 710065


【相关论文推荐】
  • CAN总线瓦斯检测系统在煤矿中的应用
  • CAN总线在航空系统中的应用
  • CAN总线在测控系统中的应用研究
  • CAN总线在汽车综合性能测试系统中的应用
  • CAN总线在智能建筑控制系统中的应用
  • 分析CAN总线在电网自动监控系统中的应用
  • CAN总线技术在电梯群控系统中的应用
  • CAN总线通信技术在电梯监控系统中的应用
  • CAN总线协议在嵌入式系统中的应用