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文章
1946瀏覽量
130726 -
串行通信
+關注
關注
4文章
571瀏覽量
35396 -
報文
+關注
關注
0文章
38瀏覽量
4027
發布評論請先 登錄
相關推薦
評論