• CAN通信


    CAN通信

    11898协议

    ISO 11898-1:2015 协议详细定义了CAN网络报文的格式,包含了传统CAN与CANFD帧格式。

    边界条件

    1. 速率最大1Mbit/s
    2. 通信长度40米
    3. 终端电阻120欧,防止反射。
    4. 32个节点

    物理构成

    在这里插入图片描述

    控制器

    如果需要接受大量数据,则需要带有缓存,否则不需要。

    收发器
    1. 作用为了防止高电压破坏MCU芯片。
    2. 低速率0~125k,不需要终端电阻。隐性位:CANL比CANH高5V,显性位:CANH比CANL高2V。
    3. 高速率0~1M,需要终端电阻。隐形位:CANH和CANL电位相同,显性位:CANH比CANL高2V。
    4. 抗干扰能力:8kv esd保护。推荐增加共模扼流圈。
    总线逻辑

    隐性电平为1,显性电平为2,多节点同时发送时,遵行线与逻辑。

    通讯

    1. 去中心化,分布式原则
    2. 事件驱动(时间触发机制)
    3. 通信矩阵

    帧格式

    传统帧格式

    1位sof:网络节点同步。

    11位id:数字越低优先级越高。

    1位rtr:远程帧, 远程传输请求,该标志用于区分数据帧0还是远程帧1报文。数据帧优先级高于远程帧。

    1位ide:扩展帧标识符,扩展帧的id可以有29位,同一个网络,标准帧和扩展帧只有一个。

    1位r:传统扩展帧里面的保留位。

    4位dlc:规定数据场长度,数据最大8个字节。

    16位crc:校验场计算sof到dlc数据,15位校验位+1位界定符。

    2位ack:应答位,用于指示CAN报文已经被目标节点接收,收到显性位验证。

    7位eof:结束标志,7位隐性位。

    3位itm:帧间隔,等待帧间隔后才能发消息。

    在这里插入图片描述

    扩展帧格式

    在这里插入图片描述

    扩展帧标识符扩展了18位,可以容纳更多的设备。
    CAN FD帧和CAN帧:两种帧的相同与区别

    总线同步

    首次同步sof发起

    NRZ编码,没有时钟线

    重同步:位填充机制,不予许发送5个相同的电平,会在中间插入1个相反的电平。利用隐性位到显性位的边沿进行重同步。

    总线竞争

    多个节点在同一个时间点发消息的问题

    通过id进行竞争,每个节点在进行发送时会对总线电平进行监控,如果自己id号是1隐性,而总线是0显性,说明自己优先级不够,如果检测到总线信号和自己id号相同则获得发送权,这是能够实现通过id来进行竞争的原因

    数据保护

    物理上emc

    NRZ编码减少干扰发射

    双绞线canh canl差分信号消除共模干扰

    终端电阻消除电缆高频传输时传输末端的反射

    总线逻辑错误检测机制

    位填充stuffcheck

    帧格式formcheck(crc,ack,eof)

    显性隐形bit monitoring

    错误处理机制

    错误帧,发6个显性电平,总线最多会产生12个显性电平,监测到总线恢复到隐性电平后,发送8个位隐性电平代表错误结束。

    错误跟踪机制

    鉴别是否是永久性的错误,如果错误太多会进入总线丢失状态。只有重启或接收128*11位的隐性位之后,才回到总线工作。发送错误计算器,接收错误计算器。

    成功发送一条消息,计数器减一

    发送错误计算器,检测到错误,如果是发送方,+8

  • 相关阅读:
    代码编译,编译和汇编不能合并
    java类的访问权限
    【元宇宙欧米说】从NFT迈向元宇宙:CYBER-VERSE
    ActiveReportsJS 在 React 应用程序中添加和自定义查看器
    求解组合数
    centOS下载与安装
    Jackson 中的 @JsonProperty 和 @JsonAlias 的区别
    洗地机哪款最好用?口碑最好的家用洗地机推荐
    如何使用 二次号查询API
    毫米波雷达2-雷达的工作模式
  • 原文地址:https://blog.csdn.net/qq_21835111/article/details/126815781