CAN协议分层网络

http://www.shenyang2car.com 2022年12月25日

CAN协议采用分层的设计思想:


物理层

差分信号

什么是物理层呢?就是CAN的电信号的传输过程。CAN是串行异步通讯,只有CAN_HIGHCAN_LOW两条差分信号线,数据通过差分信号的方式进行通讯,其优点就是可以增加信号的抗干扰能力,抑制共模信号的干扰;


信号在变成一个字节一个字节的数字信号之前,就是按照这种差分形式的模拟信号来传输的。

简单理解一下,当CAN_HIGH减去CAN_LOW大于某个阈值的时候,可以把它当做逻辑高,反之,当小于某一个阈值时,就变成逻辑低。

连接方式

CAN总线支持多个节点挂载在总线上,具体如下图所示;


CAN总线其实没有主从的概念,每个设备都是一个节点(Node),节点直接可以相互通讯,CAN总线设置了终端电阻,常见的一种闭环连接模式,相对的还有开环的连接模式。

不同的连接模式,通讯速率也大不相同,这也是高速CAN和低速CAN的区别。

两条电线组成一条双绞线,并且接有120Ω的特性阻抗。ISO 11898-2,也称为高速度CAN。它在总线的两端均接有120Ω电阻。

使用120Ω终端电阻(这是CAN的ISO标准里规定的),最高通讯速率可达到1Mbps。

高速CAN的拓扑结构具体如下所示:


低速CAN,或者也叫做容错CAN,低速容错 CAN 总线将通讯最大带宽从 1 Mbps 降低到 125 Kbps,并且不再在总线的起点和终点使用两个终端电阻,而是将电阻分布在每个节点上。具体如下图所示:


由于高速CAN和低速CAN的拓扑结构不同,另外终端电阻的分布也不同,所以CAN_HIGHCAN_LOW上的电平是不相同的,这里有隐性电平和显性电平。

显性电平用逻辑“0”表示,隐性电平用逻辑“1”表示。总线按照线与机制对总线上任一潜在的冲突进行仲裁,显性电平覆盖隐性电平,即只有总线上所有单元都输出隐性电平时,总线上才为隐性电平。

CAN使用差分电压传送(CAN_H、CAN_L),电位差Vdiff=CAN_H-CAN_L。

典型情况:

CAN总线为“隐性”(逻辑1)时,CAN_H和CAN_L的电平为2.5V(电位差Vdiff为0V);

CAN总线为“显性”(逻辑0),CAN_H和CAN_L的电平分别是3.5V和1.5V(电位差Vdiff为2.0V左右)。

CAN节点

CAN节点通常分为三个部分;

  • MCU/CPU

  • CAN控制器

  • CAN收发器


  • CAN总线上通过差分信号进行数据传输

  • CAN收发器将差分信号转换为TTL电平信号,或者将TTL电平信号转换为差分信号;

  • CAN控制器将TTL电平信号接收,并传输给MCU;

小结:

物理层:硬件拓扑结构,包括高速CAN和低速CAN,CAN收发器属于物理层;

传输层:CAN控制器所需做的事情,包括CAN时序,同步,消息仲裁、确认,错误检验等;

对象层:MCU属于这一层,需要对CAN消息做信息的过滤设置,CAN消息的处理等;

应用层:基于对象层的进一步封装,例如汽车诊断ISO14229定义的UDS等;

[上一个其他]:CAN协议帧类型—数据帧
阅读技巧:键盘方向键 ←左 右→ 翻页
[下一个其他]:CAN总线协议入门
Copyright @ 沈阳二手车网      电子邮件:
沈阳二手车网   电话:13390118160