关闭

车载测试系列:CAN协议分层网络

发表于:2024-5-10 09:20

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:51CTO博客

  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等;
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2024软件测试行业从业人员调查问卷》,您的见解,行业的声音!

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号