欢迎来到天天文库
浏览记录
ID:34208258
大小:96.00 KB
页数:5页
时间:2019-03-04
《基于mb90f543微控制器的双can冗余设计》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、基于MB90F543微控制器的双CAN冗余设计作者:■西南交通大学莫传孟林彦凯冯晓云摘要:为提高现场CAN通信的可靠性,开发一种采用MB90F543微控制器的双CAN冗余通信系统。论述双CAN系统的冗余控制机理、硬件构成、软件设计;阐述应用中须注意的一些问题。关键词:双CAN总线MB90F543微控制器冗余总线管理引言: 虽然CAN协议本身具有较强的检错纠错能力,但在工业控制现场,插头连接的不牢固、传输介质的损坏或总线驱动器的损坏等都会破坏CAN的可靠通信。在要求高可靠性的应用系统中,这些故障如不能自动检
2、测到并采取相应措施克服,将使系统部分甚至完全失去通信能力。解决这一问题的有效途径是采用冗余通信控制。从而保证通信系统主要功能正常运行,以此提高系统的可靠性。1系统硬件组成 MB90F543是Fujitsu公司推出的一款带2个CAN控制器的16位微控制器。系统使用两套总线(CAN0、CAN1),每一套包含独立的总线电缆、总线驱动器和总线控制器,可以实现物理介质、物理层、数据链路层及应用层的全面冗余。两套总线采用热备份方式运行:一个CAN控制器作为系统上电后默认的CAN(可称为主CAN);另一个为系统的备用C
3、AN(称之为从CAN),作为主CAN的冗余。系统正常工作时,主CAN总线(CAN0)投入运行。当主CAN总线发生故障时,从CAN总线(CAN1)投入运行。如上电检测到主CAN总线故障,则从CAN总线自动投入运行。这样在一套总线发生故障时,另一套总线自动继续工作,保证整个系统的通信功能正常运行,大大提高了系统的可靠性,实现了CAN总线的全面冗余设计。另外,也可以根据需要,由软件设定采取冗余方式或非冗余方式。对于非冗余方式只采用主CAN总线运行。本系统的结构方案如图1所示。 RT为总线终端匹配电
4、阻,用于抑制信号发射干扰,RT=100Ω或120Ω。网络采用屏蔽双绞线作为通信介质。 CAN控制器集成了CAN协议的物理层和数据链路层功能,可完成对数据通信的成帧处理,包括位填充、数据块编码、CRC校验和优先级判别等工作。 CAN控制器具有以下主要特点:◇符合CAN2.0A和CAN2.0B协议;◇支持数据帧和远程帧的发送和接收;◇16个收发信息缓冲器,支持11位或29位标识符,支持多级信息缓冲器结构;◇支持满位比较、满位屏蔽和位屏蔽验收三种验收标识选择方式;◇两个验收标识寄存器支持标准帧或扩展帧格式;◇
5、波特率从10Kbps~1Mbps可编程。 总线驱动器采用PCA82C250作为CAN控制器与物理总线间的接口,以提升总线的差动发送和接收能力。 CAN驱动电路如图2所示。 2系统软件设计2.1实现双CAN冗余控制功能 在双CAN冗余系统中,较之硬件结构而言,软件设计相对复杂得多。一般的CAN总线通信程序必须包括CAN初始化程序、CAN发送程序和CAN接收程序三个基本部分。在本冗余系统软件设计中,上面三部分作为三个最基本的模块,供系统其它软件模块调用。 MB90F543可以处理256
6、种中断源,与CAN控制器相关的硬件中断有四个:CAN0RX(CAN0接收完全中断)、CAN0TX/NS(CAN0发送完全/节点状态改变中断)、CAN1RX(CAN1接收完全中断)、CAN1TX/NS(CAN1发送完全/节点状态改变中断)。在本软件设计中,采用查询发送,中断接收。节点状态改变中断子程序,用于对节点状态改变的处理。这是因为在CAN2.0协议中规定节点处于下面三种状态之一:错误激活态、忽略错误态、脱离总线态。在MB90500系列中还多规定了一种警告态,它表明发送/接收错误计数器的值超过96。节点状
7、态改变会引起相应中断。 由于系统采用双CAN冗余热备份方式运行,所以两个CAN控制器必须都处于热备份状态。系统中所有节点的两个CAN控制器经初始化后都随时准备接收信息,但有且只有一个CAN控制器在发送信息。换言之,在一个时间点上,系统中有且仅有一路CAN通道在工作,另一路处于监听状态(正常工作时),或故障状态(发生故障时)。 双CAN冗余控制系统较之单CAN控制系统在软件设计上的复杂之处,关键在于CAN系统故障检测及CAN系统自动切换。由于采用两套完全独立的传输介质、总线驱动器和总线控制器,因此它们能分
8、别独立检测到自己通道的故障,比如CANH与CANL短路,CANH或CANL断开、CANH与地短路、CANL与电源短路、总线驱动器损坏等。实际调试中发现,如果CANH、CANL断开或只有一个发送器在总线上,均会造成发送/接收错误计数器不断增加到128,使节点处于忽略错误态;而CANH与CANL短路、CANH与地短路或CANL与电源短路均会造成发送/接收错误计数器不断增加到256,使节点处于总线脱离态。所以,通过节点
此文档下载收益归作者所有