1.CAN总线发展历史
1986年发布CAN1.0。
1991年博世发布CAN2.0规范,分为CAN2.0A(11位标识符)和CAN2.0B(11+18=29位标识符)。
1993年ISO组织发布ISO11898规范:
ISO11898-1 涵盖数据链路层。
ISO 11898-2 涵盖高速CAN的CAN物理层(经典CAN速度1Mbps,CAN FD 5Mbps)。
ISO 11898-3 涵盖低速、容错CAN的物理层(速度125kbps)。
后续推出ISO 11898-4 -5 和-6标准。
2012年博世发布CAN FD 1.0(速度2Mbps,使用加强版CAN PHY的CAN FD-SiC可以做到5-8Mbps)。
2015年:CAN FD协议标准化(ISO 11898-1)
2016年:CAN物理层,数据速率高达5 Mbit/s,已通过ISO 11898-2标准化
2018年发布第三代CAN数据链路层协议CAN XL,速度提升至10Mbps,兼容CAN FD。
(先辑HPM5300 CAN 符合ISO11898-1 :2015)
2.CAN总线结构
CAN总线是一种广播类型的总线,可支持线形拓扑、星形拓扑、树形拓扑和环形拓扑等。CAN网络中至少需要两个节点设备才可进行通信,无法仅向某一个特定节点设备发送消息,发送数据时所有节点都不可避免地接收所有流量。但是,CAN总线硬件支持本地过滤,过滤器过滤id,因此每个节点可以设置对有效的消息做出反应。
ISO 11898-2中定义了通信速率为125Kbps~1Mbps的高速闭环CAN通信标准 ,当通信总线长度≤40米,最大通信速率可达到1Mbps,高速闭环CAN(高速CAN):
ISO 11898-3中定义了通信速率为10~125Kbps的低速开环CAN通信标准,当传输速率为40Kbps时,总线距离可达到1000米通信如下图所示
高速CAN总线(ISO 11898-2,通信速率为125Kbps~1Mbps)在传输显性(0)信号时,会将 CAN_H端抬向5V高电平,将CAN_L拉向0V低电平。当传输隐性(1)信号时,并不会驱动 CAN_H 或者 CAN_L 端。 显性信号 CAN_H 和 CAN_L 两端差分标称电压为 2V。 终端电阻在没有驱动时,将差分标称电压降回 0V。显性信号(0)的共模电压需要在 1.5V 到 3.5V 之间。隐性信号(1)的共模电压需要在+/-12V。
低速/容错CAN(ISO 11898-3,通信速率为10~125Kbps)在传输显性信号(0)时,驱动CANH端抬向5V,将CANL端降向0V。在传输隐性信号(1)时并不驱动CAN 总线的任何一端。在电源电压VCC为5V时,显性信号差分电压需要大于2.3V,隐性信号的差分电压需要小于0.6V。CAN总线两端未被驱动时,终端电阻使CAN L端回归到RTH电压(当电源电压VCC为5V时,RTH电压至少为Vcc-0.3V=4.7V),同时使CAN H端回归至RTL电压(RTL电压最大为0.3V)。两根线需要能够承受-27V至40V的电压而不被损坏。
3.CAN总线特点
- 多主工作方式:总线上的所有节点没有主从之分,大家都处于平等的地位。反应在数据传输上,即是:在总线空闲状态,任意节点都可以向总线上发送消息。
2.当总线上的上出现连续的11位隐性电平,那么总线就处于空闲状态。也就是说对于任意一个节点而言,只要它监听到总线上连续出现了11位隐性电平,那么该节点就会认为总线当前处于空闲状态,它就会立即向总线上发送自己的报文。至于为什么连续出现11位隐性电平,就可以判定+总线处于空闲状态,这个问题可以结合CAN协议的帧结构来进行理解。
3.最先向总线发送消息的节点获得总线的发送权;·当多个节点同时向总线发送消息时,所发送消息的优先权高的那个节点获得总线的发送权。例如:Node_A和Node_B同时向总线发送各自的消息Msg_1和Msg_2,如果Msg_1的优先级比Msg_2高,那么Node_A就获得了总线的发送权。多个节点同时发送消息看节点id大小 id越小优先级越高 。例如id号01 和02同时发送消息 那么总线仲裁域会判断id大小 id号为01的获得总线的发送权,02会自动转换到监听状态等待总线空闲。
4.CAN总线上的节点没有“地址”的概念,因此在总线上增加节点时,不会对总线上已有节点的软硬件及应用层造成影响。
5.在同一条CAN线上,所有节点的通信速度(位速率)必须相同,如果两条不同通信速度总线上的节点想要实现信息交互,必须通过网关。
例如:汽车上一般有两条CAN总线:500kbps的驱动系统CAN总线和125kbps的舒适系统CAN总线,如果驱动系统CAN总线上的发动机节点要把自己的转速信息发送给舒适系统CAN总线上的转速表节点,那么这两条总线必须通过网关相连。
6.CAN总线可以实现一对一,一对多以及广播的数据传输方式,这依赖于验收滤波技术,过滤器可以过滤你不想接收的id号的消息定向接收你需要的节点消息
下一章将将解can总线数据结构添加链接描述