CAN(Controller Area Network)是一種用于汽車和工業(yè)控制系統(tǒng)的通信協(xié)議。它具有高可靠性、實時性和靈活性等特點,被廣泛應用于汽車、工業(yè)、醫(yī)療等領域。CAN數(shù)據(jù)幀是CAN通信中的基本數(shù)據(jù)單位,它由多個字段組成,每個字段都有其特定的作用。
- 幀起始位(SOF)
幀起始位是CAN數(shù)據(jù)幀的第一個位,用于表示一個新幀的開始。在CAN總線上,幀起始位是一個顯式的位,其值為“0”,用于區(qū)分數(shù)據(jù)幀和空閑位。幀起始位的出現(xiàn),通知CAN控制器和CAN節(jié)點,一個新的數(shù)據(jù)幀即將開始傳輸。
- 仲裁場(Arbitration Field)
仲裁場是CAN數(shù)據(jù)幀中用于確定數(shù)據(jù)幀優(yōu)先級的部分。它由11位標識符(ID)組成,其中最高位為主導位(DOM,Dominant Bit),其余10位為從屬位(SOM,Subordinate Bit)。在CAN總線上,多個節(jié)點可以同時發(fā)送數(shù)據(jù)幀,但只有一個數(shù)據(jù)幀能夠成功傳輸。仲裁場的作用就是確定哪個數(shù)據(jù)幀具有更高的優(yōu)先級,從而能夠成功傳輸。
在仲裁過程中,主導位的優(yōu)先級高于從屬位。如果兩個數(shù)據(jù)幀的主導位相同,那么比較它們的從屬位,從屬位較小的數(shù)據(jù)幀具有更高的優(yōu)先級。如果兩個數(shù)據(jù)幀的主導位和從屬位都相同,那么它們具有相同的優(yōu)先級,這種情況下,哪個數(shù)據(jù)幀能夠成功傳輸是隨機的。
- 控制場(Control Field)
控制場是CAN數(shù)據(jù)幀中用于描述數(shù)據(jù)幀類型和長度的部分。它由6位組成,其中最低位為幀類型位(FT,F(xiàn)rame Type),其余5位為數(shù)據(jù)長度碼(DLC,Data Length Code)。
幀類型位用于區(qū)分數(shù)據(jù)幀和遠程幀。數(shù)據(jù)幀用于傳輸實際的數(shù)據(jù),而遠程幀用于請求其他節(jié)點發(fā)送數(shù)據(jù)。當幀類型位為“0”時,表示這是一個數(shù)據(jù)幀;當幀類型位為“1”時,表示這是一個遠程幀。
數(shù)據(jù)長度碼用于描述數(shù)據(jù)幀中數(shù)據(jù)場的長度。DLC的取值范圍為015,表示數(shù)據(jù)場的長度為08字節(jié)。當DLC為0時,表示數(shù)據(jù)場為空;當DLC為18時,表示數(shù)據(jù)場的長度為18字節(jié);當DLC為9~15時,表示數(shù)據(jù)場的長度為8字節(jié)。
- 數(shù)據(jù)場(Data Field)
數(shù)據(jù)場是CAN數(shù)據(jù)幀中用于傳輸實際數(shù)據(jù)的部分。它的大小由控制場中的數(shù)據(jù)長度碼(DLC)確定。數(shù)據(jù)場可以包含0~8字節(jié)的數(shù)據(jù),每個字節(jié)由8位組成。數(shù)據(jù)場可以傳輸各種類型的數(shù)據(jù),如傳感器數(shù)據(jù)、控制命令等。
- CRC場(CRC Field)
CRC場是CAN數(shù)據(jù)幀中用于錯誤檢測的部分。它由15位組成,其中前12位為CRC序列(CRC Sequence),后3位為CRC界定符(CRC Delimiter)。CRC序列是通過對數(shù)據(jù)幀中的數(shù)據(jù)進行循環(huán)冗余校驗(Cyclic Redundancy Check)計算得到的,用于檢測數(shù)據(jù)在傳輸過程中是否出現(xiàn)錯誤。CRC界定符是一個固定的位模式,用于標識CRC序列的結束。
ACK場是CAN數(shù)據(jù)幀中用于確認數(shù)據(jù)幀成功接收的部分。它由2位組成,其中第1位為應答位(ACK Slot),第2位為應答界定符(ACK Delimiter)。當接收節(jié)點成功接收并校驗數(shù)據(jù)幀后,它會在ACK場的應答位發(fā)送一個顯式的“0”位,表示數(shù)據(jù)幀已被成功接收。發(fā)送節(jié)點檢測到這個應答信號后,會認為數(shù)據(jù)幀傳輸成功。
- EOF場(End of Frame Field)
EOF場是CAN數(shù)據(jù)幀的最后一個部分,用于表示數(shù)據(jù)幀的結束。它由7個隱式的“1”位組成,用于將數(shù)據(jù)幀與其他幀或空閑位區(qū)分開來。當CAN控制器或節(jié)點檢測到EOF場時,它們會認為當前數(shù)據(jù)幀傳輸結束,準備接收下一個數(shù)據(jù)幀或進入空閑狀態(tài)。
總結:
CAN數(shù)據(jù)幀由多個字段組成,每個字段都有其特定的作用。幀起始位表示數(shù)據(jù)幀的開始;仲裁場用于確定數(shù)據(jù)幀的優(yōu)先級;控制場描述數(shù)據(jù)幀的類型和長度;數(shù)據(jù)場傳輸實際數(shù)據(jù);CRC場用于錯誤檢測;ACK場用于確認數(shù)據(jù)幀的成功接收;EOF場表示數(shù)據(jù)幀的結束。這些字段共同保證了CAN數(shù)據(jù)幀的可靠性、實時性和靈活性,使其成為汽車和工業(yè)控制系統(tǒng)中廣泛使用的通信協(xié)議。
-
通信協(xié)議
+關注
關注
28文章
845瀏覽量
40218 -
CAN
+關注
關注
57文章
2699瀏覽量
463173 -
工業(yè)控制系統(tǒng)
+關注
關注
3文章
110瀏覽量
16574 -
數(shù)據(jù)幀
+關注
關注
0文章
44瀏覽量
6727
發(fā)布評論請先 登錄
相關推薦
評論