1 CAN总线概述
CAN (Controller Area Network) ,即控制局域网,是 一种具有高可靠性、支持分布式和实时控制的串行通 信网络。CAN为多主方式工作,网络上任意节点均可 在任意时刻主动地向网络上其他节点发送信息,而不 分主从,且无需站地址等节点信息,通信灵活。CAN 协议模型结构只有3层,即只取OSI模型底层的物理 层、数据链路层和顶层的应用层。物理层使用双绞线, 数据链路层采用了具有优先级控制的载波侦听及冲突 检验机制(CSMA /CD) 。CAN 的最大特点是可靠性 高,其节点在错误严重的情况下具有自动关闭总线的 功能,切断与总线的联系,使总线上其他操作不受影 响。CAN总线的速率在40m内可达1Mbit/ s,最大传 输距离为10km,最大传输距离时的速率可达5kbit/ s。 每条CAN总线可挂接设备数最多可达110个,多条连 用时,容量基本不受限制。
2 CAN总线在船舶中的应用
目前, CAN总线应用于船舶的基本网络模型如图 1所示。
模型中网络分为2层结构www.cechina.cn,分别为上层网和下层 网(子网) ,子网通过网桥与上层网相连接。采用这种 结构www.cechina.cn,网络中节点数理论上可以达到1000个www.cechina.cn,大大扩 充了CAN网络容量CONTROL ENGINEERING China版权所有,完全可以满足船舶监控系统的需 要。
因为CAN协议本身没有考虑冗余的结构www.cechina.cn,所以各 CAN系统自行设计了冗余方案,其中常见的做法有2 种:一种是子网中每个CAN节点都有2个CAN通信 模块www.cechina.cn,同时铺设2路总线,当一路总线出现故障时,自 动启用备用总线通信;另一种是每个子网采用环形拓 扑结构www.cechina.cn,实现方法是只在CAN网桥与子网连接的一端 保留2个CAN通信模块(主干网可采用类似的方法) , 分别接子网总线的两端,构成环形,这样每个节点可以 在两个方向上与其他节点通信,某一处总线断开不影 响系统正常工作。
3 CAN通信模块的设计
下面结合所开发的模块实例,简要介绍以CAN通 信模块开发的一般方法及软硬件问题的解决。
3. 1 下位节点的设计
本例中CAN网络节点的结构如图2所示。
其中, 80C196KC是Intel 16 位微控制器,内置有 16K ROM, 488B寄存器RAM,A /D转换器,看门狗定时 器等。其工作频率可达20MHz,适用于实时控制系统。 SJA1000是新型的CAN 独立通信控制器, 支持 CAN2. 0A和2. 0B两种规范,可完成物理层和数据链路 层的所有功能。通信波特率最高可达1Mbit/ s。另外, PeliCAN扩展了很多新功能www.cechina.cn,包括:可读/写访问的错 误计数器;可编程的错误报警限值;最近一次错误代码 寄存器;具体控制位控制的位仲裁丢失;单次发送(失 败后无重发) ;支持热插拔等。
82C250是CAN控制器与物理总线之间的接口部 件,可完成对总线的差动发送和接收功能。82C250与 ISO /D IS 11898标准完全兼容,具有抗瞬间干扰、降低 射频干扰、热保护、总线与电源及地之间的短路保护等 能力,可支持多达110个节点相连。
本例中, 程序固化在EPROM