CAN入门教程~CAN总线的基础知识

1.CAN简介:

CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信协议。CAN 通过 ISO11898 及 ISO11519 进行了标准化,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。
CAN 控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平(0)隐性电平(1),二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。

CAN_H-CAN_L < 0.5V 时候为隐性的,逻辑信号表现为"逻辑1"- 高电平。
CAN_H-CAN_L > 0.9V 时候为显性的,逻辑信号表现为"逻辑0"- 低电平。

在 CAN 总线的起止端都有一个 120Ω的终端电阻,来做阻抗匹配,以减少回波反射
CAN属于半双工通信

CAN连接示意图如下:
CAN入门教程~CAN总线的基础知识_第1张图片

2.CAN的特点

CAN 协议具有以下特点。

1)多主控制。

在总线空闲时,所有单元都可以发送消息(多主控制),而两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息 ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。

2)系统的柔软性。

与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。

3) 通信速度较快,通信距离远。

最高 1Mbps(距离小于 40M),最远可达 10KM(速率低于 5Kbps)。

4) 具有错误检测、错误通知和错误恢复功能。

所有单元都可以检测错误(错误检测功能),检测出错误的单元会立即同时通知其他所有单元(错误通知功能),正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。

5)故障封闭功能。

CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。

6)连接节点多。

CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。

3.帧的简单介绍

CAN协议根据以下5种类型的帧进行通信

帧类型 帧用途
数据帧 用于发送单元向接收单元传送数据的帧
遥控帧 用于接收单元向具有相同 ID 的发送单元请求数据的帧
错误帧 用于当检测出错误时向其它单元通知错误的帧
过载帧 用于接收单元通知其尚未做好接收准备的帧
间隔帧 用于将数据帧及遥控帧与前面的帧分离开来的帧

注:数据帧和遥控帧有标准格式和扩展格式两种格式。标准格式有 11 个位的标识符
(ID),扩展格式有 29 个位的 ID。
CAN入门教程~CAN总线的基础知识_第2张图片
CAN入门教程~CAN总线的基础知识_第3张图片

4.CAN在七层协议中的位置

如图所示:
CAN入门教程~CAN总线的基础知识_第4张图片
CAN入门教程~CAN总线的基础知识_第5张图片

你可能感兴趣的:(CAN/CANOPEN,STM32系列,学习笔记)