• CAN 协议常见面试题总结


    0.讲一下CAN通讯的过程

    第一段:需要发送的通讯设备,先发送一个显性电平0,告诉其他通讯设备,需要开始通讯。

    第二段:就是发送仲裁段,其中包括ID帧和数据帧类型,告诉其他通讯设备,需要和哪个通讯设备进行通讯,以及帧的类型,CAN通讯设备的优先级,就是由ID号决定的,往往ID号越小优先级别越高。为标准帧还是扩展帧,由仲裁段最后一位IDE位的电平决定的,IDE为显性则为标准帧,IDE为隐性则为扩展帧。

    第三段,为控制段,共6位,四位储存数据段长度的信息,还有两位为保留位。

    第四段:为数据段,固定长度为8个字节,先发送高位,后发送低位。

    第五段,为CRC,为验证段;

    第六段,为ACK为应答段,发送机发送两个隐形电平,接收机发送一个显性电平,告诉发送机,接收完成。

    第七段,结束段,发送7个隐形电平

    一CAN物理层

    1.CAN使用差分信号进行数据传输,根据CAN_H和CAN_L上的电位差来判断总线电平。

    2.总线电平分为显性电平(逻辑0)电位差5V和隐性电平(逻辑1)电位差0V

    3.显性电平具有优先权。发送方通过使总线电平发生变化,将消息发送给接收方

    4.高速CAN

     

    二CAN协议层

    0.标准帧和扩展帧区别是什么?标准帧的Id是多少比特?扩展帧的Id是多少比特

    扩展帧与标准帧的区别在于扩展帧拥有更长字节的ID,以便能够扩展更多的CAN通讯设备。

    标准帧的ID是11位比特长

    扩展帧的ID是29位比特长

    1.CAN总线以帧形式通信共包含5种帧

    数据帧 遥控帧 错误帧 过载帧 间隔帧

    数据帧:用于发送单元向接收单元传输数据的帧

    遥控帧用于接收单元向具有相同ID的发送单元请求数据的帧

    2.数据帧的组成

    帧起始 仲裁帧 遥控帧 数据段 CRC段 ACK段 帧结束

    3.CAN总线仲裁

    多个单元同时发送 ,标准帧与扩展帧之间,标准帧的优先级会更高,扩展帧的优先级更低;相同帧类型中,报文ID值越小,优先级越高

    4. CAN总线的的校验机制(CRC校验)?


    Can总线的校验机制包括CRC校验和和ACK校验两个部分:

    CRC校验和:CAN总线在发送数据帧时会对数据帧进行CRC校验和计算,并将计算结果追加到数据帧末尾。接收方在接收数据帧时会对数据帧进行CRC校验和计算,并将计算结果与数据帧中的CRC校验和进行比较,以判断数据帧是否发生了错误。如果计算结果与CRC校验和不一致,则认为数据帧发生了错误,接收方将丢弃该数据帧。

    ACK校验:CAN总线在发送数据帧后,接收方需要向发送方发送一个ACK(应答)信号,告知发送方数据帧已经成功接收。如果发送方在规定的时间内未收到ACK信号,则认为该数据帧发送失败,发送方将重新发送该数据帧。


     

    5 终端电阻是多大的?作用是什么

    120Ω终端电阻 

    在高速CAN通讯的过程中,可能会产生电感现象,对CAN通讯的高低电压产生影响,使得系统无法判别显性或者隐形电平,因此并联一个终端电阻,使得在阻抗高的时候电流可以从终端电阻流过,从而保证CAN通讯的正常运行。

    6 CAN的通讯矩阵是哪两种?(制作DBC的时候字节的排列顺序?)


    常用格式:

    Intel格式(小端,数据低位在内存低位)

    Lsb在低字节,msb在高字节,以起始位为原点,从左往右,自上而下填充

    Motorola格式(大端,数据低位在内存高位)

    Lsb在高字节,msb在低字节,以起始位为原点,从左往右,自上向下填充

    7CAN FD 和CAN的 区别:


    CAN-FD:一帧数据最长64字节。以理解成CAN协议的升级版,只升级了协议,物理层未改变。传输速率不同、数据长度不同、帧格式不同、ID长度不同。

    1)速率不同:

    CAN:最大传输速率1Mbps。
    CAN-FD:速率可变,最大传输速率8Mbps。

    2)数据长度不同

    CAN:一帧数据最长8字节

    CAN-FD:一帧数据最长64字节。

    3)ID长度不同
    CAN标准帧ID长度最长11bit。 CAN-FD标准帧ID长度可扩展到12bit。

    4)帧格式不同

    CAN-FD新增了FDF、BRS、ESI位,

    FDF表示CAN报文还是CAN-FD报文。BRS:表示位速率转换,该位隐性时,速率可变,该位为显性时,以正常的CAN-FD总线速率传输(恒定速率)。

  • 相关阅读:
    vector使用的注意事项
    String(三)———接口大全
    最大路径和
    安全与隐私:直播购物App开发中的重要考虑因素
    Maven进阶-属性与资源文件
    docker创建nginx容器
    【设计模式】Java设计模式 - 命令模式
    基于虚拟阻抗的下垂控制——孤岛双机并联Simulink仿真
    MySQL 索引、事务与存储引擎
    【2022】58同城前端笔试
  • 原文地址:https://blog.csdn.net/weixin_57672347/article/details/134298327