CAN总线的报文类型介绍

描述

CAN(Controller Area Network)总线是一种广泛使用的串行通信协议,特别适用于汽车和工业自动化领域。CAN总线上的报文类型主要可以分为以下几种,每种类型都有其特定的用途和格式。

一、数据帧(Data Frame)

数据帧是CAN总线上最基本的报文类型,用于节点之间传输数据。数据帧由多个段组成,包括帧起始、仲裁段、控制段、数据段、CRC段、ACK段和帧结束。

1. 帧起始(Start of Frame, SOF)

  • 定义 :表示数据帧开始的段,由一个显性位(逻辑0)组成。
  • 作用 :当总线空闲时,发送节点发送帧起始,其他接收节点同步于该帧起始位。

2. 仲裁段(Arbitration Field)

  • 定义 :表示该帧优先级的段,根据仲裁段ID码长度的不同,分为标准帧(CAN 2.0A)和扩展帧(CAN 2.0B)。
  • 内容 :标准格式帧的仲裁段由11位标识符(ID)和远程发送请求位(RTR)组成;扩展格式帧的仲裁段由29位标识符和RTR位组成。
  • 作用 :用于确定发送的帧类型(数据帧或遥控帧)以及发送的帧格式(标准帧或扩展帧),并决定帧的优先级。

3. 控制段(Control Field)

  • 定义 :表示数据的字节数及保留位的段。
  • 内容 :包括数据长度代码(DLC)和两个保留位(r0、r1)。DLC指示了数据段中的字节数量,可以是0到8个字节。
  • 作用 :告知接收节点数据段的长度,以便正确接收数据。

4. 数据段(Data Field)

  • 定义 :数据的内容,可发送0~8个字节的数据。
  • 作用 :传输实际的数据信息。

5. CRC段(Cyclic Redundancy Check Field)

  • 定义 :检查帧的传输错误的段,包括CRC序列和CRC界定符。
  • 作用 :通过CRC校验确保数据的完整性和正确性。

6. ACK段(Acknowledgment Field)

  • 定义 :表示确认正常接收的段,由ACK槽和ACK界定符组成。
  • 作用 :当接收器正确地接收到有效的报文时,会在ACK槽期间向发送器发送一个显性位以示应答。

7. 帧结束(End of Frame, EOF)

  • 定义 :表示数据帧结束的段,由7个隐性位组成。
  • 作用 :标志数据帧的结束。

二、遥控帧(Remote Frame)

遥控帧用于请求发送具有相同ID的数据帧。当接收节点需要某个数据但自己没有该数据时,会发送一个遥控帧来请求发送节点发送相应的数据帧。遥控帧的结构与数据帧相似,但数据段为空,且RTR位被设置为1。

三、错误帧(Error Frame)

错误帧由错误标志和错误分界两个域组成。当接收节点检测到总线上的报文有误时,会自动发出“活动错误标志”,其他节点检测到活动错误标志后发送“错误认可标志”。错误帧的发送会中断当前的总线通信,直到错误被处理完毕。

四、超载帧(Overload Frame)

超载帧由超载标志和超载分隔符组成。当接收方在接收下一帧之前需要过多的时间处理当前的数据,或在帧间空隙域检测到显性电平时,会发送超载帧。超载帧的发送会延迟后续帧的发送,以确保总线上的通信不会因过载而中断。

五、其他报文类型

除了上述四种基本的报文类型外,CAN总线协议还定义了其他几种特殊的报文类型,如帧间空隙(Interframe Space)和N_PCI报文类型(如单帧、首帧、连续帧、流控帧等)。这些报文类型在特定的通信场景下使用,以满足不同的通信需求。

总结

CAN总线上的报文类型包括数据帧、遥控帧、错误帧和超载帧等基本类型,以及帧间空隙和N_PCI报文类型等特殊类型。每种报文类型都有其特定的结构和用途,共同构成了CAN总线通信的基础。在实际应用中,根据具体的通信需求选择合适的报文类型进行数据传输,可以确保通信的可靠性和高效性。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分