CAN通信基础

概述

can总线优点

  • 成本
  • 高实时性
  • 高可靠性
  • 售后服务

CAN总线标准

  • OSI参考模型

应用层

数据链路层

物理层

  • 底层标准

Bosch CAN2.0

ISO11898
请添加图片描述

  • CAN总线底层标准与CAN实现的关系
    请添加图片描述

典型拓扑图

请添加图片描述

数据链路层

概述

  • 多主的基于优先级的总线访问
  • 非破坏性的基于竞争的仲裁
  • 远程数据请求
  • 配置灵活性
  • 错误检测
  • 报文自动重发
  • 临时与永久错误界定

缩写

请添加图片描述

通信机制

报文发送
  1. 检测总线状态
  • 空闲
  • 回读
  1. “线与”机制
  • 显性位能够覆盖隐性位
  • 通过ID进行仲裁(ID越小,报文优先级越高)
  1. 非破坏性仲裁
  • 优先级低的报文节点退出后,在下次总线空闲时自动重发报文
报文接收过滤
  • 报文滤波器
NRZ编码与位填充
  • NRZ编码:确保报文紧凑、位填充

位填充

发送节点:5个相同极性位,插入一个极性相反的位

接收节点:相同极性位的数量进行检测,清除填充

数据帧

请添加图片描述

  • 起始帧 SOF:用于同步、固定格式:一个显性位、总线空闲,才能发送
  • ID:标识符
  • 唯一确定一条报文:含义、可包含源目地址;仲裁优先级;
  • 标准帧:11位;扩展帧:29位
  • RTR位:区分数据帧(0)和远程帧(1)
  • IDE位:区分标准帧(0,11位ID)和扩展帧(1,11+18位ID)
  • SRR位(扩展帧中):代替了标准帧中的RTR,永远置1
  • r0、r1位(扩展帧中):保留位、置0
  • DLC:4位,数据场包含的字节数
  • 数据场:0-8个字节长度(由DLC确定),包含CAN数据帧发送的内容
  • CRC:CRC校验
  • CEC界定符
  • ACK:发送节点-》隐性,接收节点-》显性覆盖
  • EOF:数据帧结束,7个连续的隐性位
  • ITM:总线空闲,3个连续的隐性位

错误检测

  • 位检测:位错误

  • 填充检测:填充错误

  • CRC检测:CRC序列计算和接收的不同

  • ACK检测:ACK错误

  • 错误检测:

    • 发送节点:位错误、格式错误、ACK错误
    • 接收节点错误:填充错误、格式错误、CRC错误
    • 位错误、填充错误或ACK错误产生后——》错误标志在下一位发送
    • CRC错误——》在ACK界定符后发送
  • 错误界定

    • 错误产生:REC增加,正确接收减少
    • TEC同
    • RET、TEC的数值会引发节点状态改变
  • 节点状态

    • 主动错误:6个连续显性位,正常通信
    • 被动错误:6个 连续的隐性位,限制(连续2此报文发送)
    • 总线关闭:不能收发任何报文
  • 错误帧格式

    • 包括错误标志与错误界定符(8个连续隐性位)
    • 请添加图片描述
  • 错误标志叠加

    • 主动错误:破坏填充规则、破坏固定格式
    • 被动错误:发送节点发送 诱发 接收节点;特例:仲裁期间,如果有其他节点发送、ACK期间
    • 请添加图片描述
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值