• AUTOSARCAN-Tp协议


    目录

    一.单帧、首帧、连续帧、流控帧

    单帧传输

    SF单帧:

    多帧传输

    FF(首帧):

    CF(连续帧):

    FC(流控帧):


    一.单帧、首帧、连续帧、流控帧

    CAN诊断由发送端的请求与接收端的响应构成,诊断即为发送端与接收端数据往来。有的诊断一条消息完成,有的诊断需要多条消C息完成,毕竟在诊断中,一条 CAN 消息只包含 8 个字节长度。对于一条 CAN 诊断消息的分段发送问题,即为网络层需要讨论的内容。
    CanTp 层传输的报文分为 SF(单帧)、 FF(首帧)、 CF(连续帧)、 FC(流控帧) 4 类。

    单帧传输

    SF单帧:

    该诊断报文只需一条报文就可以实现(数据小于8个byte)

    在发送端到接收端的请求仅为一条消息时,即为单帧(SingleFrame),单帧数据格式如图,单帧第一个字节 byte0 为 PCI, PCI 的高 4 位为 0, PCI 低四位为接下来准备传输的数据长度,从第二个字节 byte1 起为传输的数据(SID 也作为数据)。从单帧的数据格式可以看出,真正的数据部分最多为 Byte1 ~Byte7 共 7 个字节长度,即 CAN 诊断数据发送长度得小于等于 7 个字节。

    多帧传输

    需要传输的数据比较多,就需要多帧来传输,发送过程中需要把 N-SDU 分割成多帧 N-PDU 来发送。接收过程中把多帧 N-PDU 重组发给上层,多帧传输分为首帧和续帧。

    PCI(Protocol Control Information)协议控制信息,包含了 PDU 单元类型和消息字节长度。(表面该报文是单帧、首帧、流控帧还是连续帧)

    FF(首帧):

    多帧发送时,第一帧报文叫做首帧

    在多帧传输中,包括了首帧(FF)和连续帧(CF),接收端需要在收到首帧后回复流控(FC)。首帧格式如图所示,首帧第一个字节 PCI 的高四位为 1, PCI 低四位与第二个字节 LEN 合起来为接下来传输的数据长度,从第三个字节 byte2 起为传输数据。最大多帧长度为 4095 个字节。

    CF(连续帧):

    连续帧格式如图所示,连续帧第一个字节 PCI 的高四位为 2, PCI 的低四位为帧计数器,第二个字节 byte1 起为剩余传出的数据。例如首帧已经传输了Data0, Data1 ...至Data5,则第一个连续帧接着传输 Data6, Data7...至Data12,第二个连续帧接着传输 Data13, Data14...,以此类推直至所有数据传输结束。续帧 SN 从 0 开始,到 15 之后又返回 0 开始。(注意: FF 发完后的第一个 CF的 SN 为 1)

    续帧 SN 从 0 开始,到 15 之后又返回 0 开始。(注意: FF 发完后的第一个 CF的 SN 为 1)
     

    FC(流控帧):

    接收端在收到首帧后,会发出一个流控帧,第一个字节 PCI 的高四位为 3,低四位为 FS(FlowStatus), FS 可以为 0 代表 ContinueToSend(CTS), 1 代表Wait(WT), 2 代表 Overflow (OVFLW), 3 – F 为预留,通常我们遇到的值为0。
    流控帧的作用在于接收端告知发送端接收能力,包含 BlockSize(BS)和SeparationTimeMin(STmin)两个参数。
    • BS 表示接收端允许发送端连续发送的最大连续 N_PDU 帧数 BS 为 0 的时候高速发送端可以发完剩余的全部 N-PDU BS 为 01 - 0xFF 时,表示发送端可以发的连续帧最大帧数。

    • STmin 表示发送端发送连续帧的最小间隔时间。

    流控帧的本质是接收端告诉发送端自己的接收能力。

    网络层时间参数要求
    CAN 诊断的数据传输不仅需要遵从上述格式要求,还有严格的时间要求。网络层涉及的时间参数有 N_As, N_Ar, N_Bs, N_Br, N_Cs 和 N_Cr。这些时间参数在传输过程的对应关系如图所示

  • 相关阅读:
    优雅的操作文件:java.nio.file 库介绍
    SpringMvc--CRUD
    完备的 AI 学习路线,最详细的资源整理!
    【机器学习】决策树为什么对缺失值不敏感,如何处理缺失值?
    ARM汇编学习录 3 - 调试/编译
    高校成绩管理数据库系统的设计与实现
    通信算法之189: 信道检测- MRC
    基于spring boot开发的快递管理系统开题报告
    kubernetes集群环境搭建
    Spring整合MyBatis
  • 原文地址:https://blog.csdn.net/aaaaaaaa123345/article/details/132716691