Bootstrap

流控帧

流控帧(Flow Control Frame,FC)是ISO 15765-2(CAN协议)网络层中的一部分,用于管理在多帧传输过程中发送方与接收方之间的通信。它确保接收方能够处理所有传输的数据而不会被淹没,控制数据流的节奏和块大小。

流控帧的基本结构

流控帧通常由以下字段组成:

  1. 帧类型(1字节)

    • 标识这是一个流控帧(FC)。
    • 高4位为0x3,例如:0x30
  2. 流控类型(1字节)

    • 指示流控帧的类型:
      • CTS(Continue To Send,继续发送):通常表示接收方可以继续接收数据,值为0x30
      • WT(Wait,等待):表示接收方需要发送方等待一段时间再发送后续数据,值为0x31
      • OVFLW(Overflow,溢出):表示接收方的缓冲区已满,不能接收更多数据,值为0x32
  3. 块大小(1字节)

    • 表示接收方能连续接收的最大帧数。
    • 若设置为0x00,表示没有特定的块大小限制。
  4. 最小分隔时间(1字节)

    • 表示发送方在发送连续帧之间应等待的最短时间。
    • 时间单位通常是毫秒(0x00到0x7F表示0到127毫秒,0xF1到0xF9表示100到900微秒的时间间隔)。
  5. 保留字节(4字节)

    • 通常填充为零 (0x00)。

流控帧示例

一个典型的流控帧可能如下:

30 00 00 00 00 00 00 00
  • 30: 流控帧类型及继续发送指令(CTS)。
  • 00: 块大小(无特定块大小限制)。
  • 00: 最小分隔时间(无特定时间间隔要求)。
  • 00 00 00 00: 保留字节,填充为零。

作用和用途

流控帧在多帧传输中起以下重要作用:

  1. 控制数据流:确保接收方可以处理所有接收到的数据而不会溢出。
  2. 分块传输:通过设置块大小,接收方可以要求发送方分批发送数据,从而更好地管理接收缓冲区。
  3. 节奏控制:通过设置最小分隔时间,接收方可以要求发送方在发送每个帧之间等待一定的时间,避免过快的数据传输导致的缓冲区溢出。

流控帧是UDS协议中确保可靠数据传输和系统稳定运行的关键机制之一。

;