CAN知识梳理

CAN的基本定义

  CAN,全称为“Controller Area Network”,即控制器局域网,是一种多主方式的串行通讯总线,是国际上应用最广泛的现场总线之一。

  为适应“减少线束的数量”、“通过多个 LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的 CAN 通信协议。此后,CAN 通过 ISO11898 及 ISO11519 进行了标准化,现在在欧洲已是汽车网络的标准协议,同时它具有很高的可靠性,被广泛应用于:汽车电子、工业自动化、船舶、医疗设备、工业设备等方面。
CAN拓扑

CAN控制器相关以及总线电平

  CAN控制器是根据CAN_L和CAN_H上的电位差〔即差分信号的形式〕来判断总线电平。总总线电平分为显性电平〔对应逻辑0,电位差为2V左右〕和隐性电平(对应逻辑1,电位差为0V〕
在这里插入图片描述
显性电平和隐性电平
  总线上的电平有显性电平和隐性电平两种。
  显性电平的逻辑值为“0",隐性电平为“1"。
  “显性。具有“优先"的意味,只要有一个单元输出显性电平,总线上即为显性电平。并且,“隐性其有“包容"的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平(显性电平比隐性电平更强)。

CAN报文格式

数据帧由 7 个段构成,包括:
 (1)帧起始。表示数据帧开始的段。
 (2)仲裁段。表示该帧优先级的段。
 (3)控制段。表示数据的字节数及保留位的段。
 (4)数据段。数据的内容,一帧可发送0~8个字节的数据。
 (5)CRC段。检查帧的传输错误的段。
 (6)ACK段。表示确认正常接收的段。
 (7)帧结束。表示数据帧结束的段。
在这里插入图片描述

CAN的特性总结

  采用双线差分信号
  协议本身对节点的数量没有限制,总线上节点的数量可以动态改变
  广播发送报文,报文可以被所有节点同时接收(节点发送报文前要检测总线状态,在发送报文过程中进行“回读”,判断送出的位于回读的位是否一致)
  多主站结构,各节点平等,优先权由报文ID确定(线与机制:显性位能够覆盖隐性位,ID越小,报文优先级越高)
  每个报文的内容通过标识符识别,标识符在网络中是唯一的
  根据需要可进行相关性报文过滤
  总线访问——非破坏性仲裁的载波侦听多路访问/冲突避免CSMA/CA(非破坏性仲裁:退出总裁后进入“只听”状态,)
  载波侦听(CS):总线上各个节点在发送数据前都要侦听总线的通信状态
    总线空闲 =》 立即发送已经准备好的数据
    总线有通信 = 》 不发送数据,等待网络空闲
    多路访问(MA):如果总线空闲,则在同一时刻多个节点可同时访问总线
    冲突避免(CA):节点在发送数据过程中药不停地检测发送的数据,确定是否与其他节点数据发生冲突,并通过非破坏性仲裁机制避免冲突

DBC是vector公司定义的can网络通信文件格式

在这里插入图片描述

参考来源:

  CAN通讯解析

  CAN资料整理(一):CAN简介与CAN特性和CAN标准

  DBC文件解析

  • 34
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值