CAN总线初识
CAN总线初识
CAN总线是一种广泛应用于汽车、工业自动化等领域的串行通信协议。本文将从历史发展、应用领域、基本概念、拓扑结构、信号传输、不同类型以及帧类型等多个维度,全面介绍这一重要的通信技术。
一、历史与发展
- 1986年2月,Robert Bosch GmbH在汽车工程师协会(SAE)大会上推出了控制器局域网(CAN)串行总线系统
- 第一个CAN控制芯片,由英特尔和飞利浦生产,并且于1987年发布
- 世界上第一台装载了基于CAN的多重线系统的汽车是1991年推出的梅赛德斯-奔驰 W140
- 1996年以后,所有在美国销售的汽车及轻型卡车被强制要求符合OBD-II标准
二、CAN总线的应用领域
- 乘用车、卡车、公共汽车(汽油车及电动车)
- 航空、航海电子仪器
- 工业自动化及机械控制
- 电梯、扶梯
- 建筑自动化
- 医疗仪器及设备
三、CAN在汽车中的应用
四、什么是CAN
【简介】
CAN是Controller Area Network的缩写,是 ISO 国际标准化的串行通信协议。通俗来讲,CAN总线就是一种传输数据的线,用于在不同的ECU之间传输数据。
被设计用于在不需要主机(Host)的情况下,允许网络上的单片机和仪器相互通信。 它基于消息传递协议,设计之初在车辆上采用复用通信线缆,以降低铜线使用量,后来也被其他行业所使用。
五、CAN的拓扑结构
CAN总线包括
CAN_H 和 CAN_L 两根线。
节点通过CAN控制器和CAN收发器连接到CAN总线上
六、为什么是CAN?(如下图)
七、CAN节点的组成
1、微处理器或主处理器
(MCU或单片机)
2、CAN控制器
3、收发器收发器
八、CAN信号传输
发送过程
CAN控制器将MCU传来的信号转换为逻辑电平(即逻辑0-显性电平或者逻辑1-隐性电平)
CAN发射器接收逻辑电平之后,再将其转换为差分电平输出到CAN总线上。
接收过程
CAN接收器将CAN_H 和 CAN_L 线上传来的差分电平转换为逻辑电平输出到CAN控制器,CAN控制器再把该逻辑电平转化为相应的信号发送到MCU上
九、CAN信号传输(高速)
CAN信号接收
接收方通过监听总线电平,将总线上的消息读入自己的接收器
CAN线的长度
传输距离越大,信号时延也越大,在通信速率1Mbps下,信号传输支持最长距离为40米
传输距离越大,信号时延也越大,在通信速率1Mbps下,信号传输支持最长距离为40米
120欧姆终端电阻
终端电阻是为了消除在通信电缆中因阻抗不连续导致的信号反射,避免信号失真。CAN总线是双向传输的,必须在总线的两个终端ECU各挂一个110~130Ω(推荐值为120Ω)的终端电阻,而中间节点的ECU则不需要挂终端电阻
ISO11898-2对终端电阻的取值规定
十、CAN的类型
高速CAN (ISO 11898)
速度在125kbps~1Mbps
隐性电平 2.5V,逻辑1
显性电平 3.5V和1.5V,逻辑0
广泛运用于各种汽车ECU
容错CAN(又称低速CAN)(ISO 11519-2)
容错CAN在乘用车应用很少,菲亚特车型有
速度在40Kbps~125Kbps
隐性电平 1.5V和3.5V,逻辑1
显性电平 0V和5V,逻辑0
容错CAN比高速CAN有更高的抗干扰性
容错CAN能在CAN_H或CAN_L出现短路、断路时保证通信正常
高速CAN与容错CAN物理信号的对比
单线CAN(SWCAN) (SAE J2411)
单线CAN在GMLAN中应用较多
只使用一条CAN信号线即可进行CAN通讯的网络
显性电平 5V ,高于2.2V就认为逻辑1
隐性电平 0V
两种波特率
正常通讯速率为33.333Kbps
高速通讯速率为83.333Kbps(一般用于诊断编程,不常用)
三者的区别
十一、CAN帧类型
CAN有4种帧类型
数据帧,包含用于传输的节点数据的帧(常用)
远程帧,请求传输特定标识符的帧
错误帧,由任何检测到错误的节点发送的帧
过载帧,在数据帧或远程帧之间插入延迟的帧