超全!嵌入式必懂的CAN总线一文讲通了
cathy -- 周二, 12/15/2020 - 17:08嵌入式的工程师一般都知道CAN总线广泛应用到汽车中,其实船舰电子设备通信也广泛使用CAN,随着国家对海防的越来越重视,对CAN的需求也会越来越大。
概述
CAN(Controller Area Network)即控制器局域网,是一种能够实现分布式实时控制的串行通信网络。
嵌入式的工程师一般都知道CAN总线广泛应用到汽车中,其实船舰电子设备通信也广泛使用CAN,随着国家对海防的越来越重视,对CAN的需求也会越来越大。
概述
CAN(Controller Area Network)即控制器局域网,是一种能够实现分布式实时控制的串行通信网络。
本文说的CAN即是一种总线,也是一种协议。因此,我们常听见CAN总线,也常听见CAN协议。
CAN协议和CANOpen协议是两套不同的协议。从软硬件层次来划分,CAN协议属于硬件协议,而CANOpen属于软件协议。
本篇文章先概述一下CAN网络,让大家对CAN总线协议有一个全局的概念,再到底层的CAN总线协议知识。
一、五种CAN总线可能发生的错误
1、CRC错误:
接收节点计算出的CRC校验值,与发送节点计算的结果不一致;
2、格式错误:
传输的数据帧格式,与任何一种帧格式都不符;
3、应答错误:
ACK段,发送节点没有收到接收节点发出的应答(显性位);
CAN 总线是一种有效支持分布式控制和实时控制的串行通信网络,以其高性能和高可靠性在自动控制领域得到了广泛的应用。为提高系统的驱动能力,增大通信距离,实际应用中多采用Philips公司的82C250作为CAN控制器与物理总线间的接口,即CAN收发器,以增强对总线的差动发送能力和对CAN控制器的差动接收能力。为进一步增强抗干扰能力,往往在CAN 控制器与收发器之间设置光电隔离电路。
常规CAN收发器支持的节点数最多为110个,但实际使用时需要合理的布局组网, 选用合适的收发器、线缆、匹配好终端等才能保证网络中的各个节点之间可靠通信。