车载测试系列:CAN协议分层网络
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了车载测试系列:CAN协议分层网络相关的知识,希望对你有一定的参考价值。
CAN协议采用分层的设计思想:
物理层
差分信号
什么是物理层呢?就是CAN的电信号的传输过程。CAN是串行异步通讯,只有CAN_HIGH和CAN_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_HIGH和CAN_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协议分层网络的主要内容,如果未能解决你的问题,请参考以下文章