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总线通信的基础。在实际应用中,根据具体的通信需求选择合适的报文类型进行数据传输,可以确保通信的可靠性和高效性。
-
CAN总线
+关注
关注
145文章
1951浏览量
130765 -
串行通信
+关注
关注
4文章
572浏览量
35400 -
报文
+关注
关注
0文章
38浏览量
4029
发布评论请先 登录
相关推荐
评论