美文网首页
CAN协议学习记录1

CAN协议学习记录1

作者: 勿人驾驶 | 来源:发表于2020-03-24 23:03 被阅读0次

    前言

    CAN 总线对于汽车相当于人的神经系统,其重要性不言而喻。所以懂一些CAN总线相关的知识对于汽车人来说是必不可少的,今天开始研究CAN总线。这个系列算是读书笔记,只记录最干的干货,有些知识点我记的时候也不是很懂,只能先记下来,等以后弄懂了再说。所以以后有很大概率会对此进行更新。
    因为我也是个初学者,先踩踩坑,以后如果有能力的话会考虑写一个系统一点的。
    入门材料传送门


    介绍

    CAN总线是广播类型的总线。这意味着所有节点都可以侦听到所有传输的报文,无法将报文单独发送给指定节点。但是CAN硬件能够提供本地过滤功能,让每个节点对报文有选择性地做出响应。
    总线使用不归零位填充。模块以线与逻辑连接到总线:如果只有一个节点向总线传输逻辑0,那么不管有多少个节点向总线传输逻辑1,整个总线都处于逻辑0状态。

    CAN标准定义四种不同的报文类型。报文使用逐位仲裁智能方案来控制对总线的访问,每条报文都带有优先级标记。

    CAN报文

    CAN使用短报文 ——最大实用负载是94位。报文中没有任何明确的地址;相反,可以认为报文是通过内容寻址,也就是说,报文的内容隐式地确定其地址。

    报文类型

    CAN总线上有四种不同的报文类型(或“帧”):

    1. 数据帧
    2. 远程帧
    3. 错误帧
    4. 过载帧

    1. 数据帧

    数据帧是最常见的报文类型,由下列主要部分组成:

    • 仲裁字段: 当两个或多个节点竞争总线时,确定报文的优先级。
              仲裁字段包含:
              a. 对于CAN 2.0A,一个11位的标识符和一个支配数据帧的RTR位。
              b. 对于CAN 2.0B,一个29位的标识符(其中还包含两个隐性位:SRR和IDE)和RTR位。
    • 数据字段:包含0到8字节数据。
    • CRC字段:包含一个基于报文大部分数据计算得到的15位校验和。校验和用于错误检测。

    校验和checksum:用于校验目的地一组数据项的和,在云居里通信中保证数据的完整性和准确性。
    用法:当传输结束时,接收者可以根据这个数值判断是否接到了所有的数据。如果数值匹配,那么说明传送已经完成。

    • 应答时隙:任何能够正确接收报文的CAN控制器都会在每条报文的末尾发送一个应答位。传送节点检查应答位是否存在,如果没有检测到应答位,会重新发送报文。

    未完待续

    相关文章

      网友评论

          本文标题:CAN协议学习记录1

          本文链接:https://www.haomeiwen.com/subject/gjaayhtx.html