CAN匯流排多幀即連續幀資料傳送 拆包與重灌

2021-08-08 04:35:32 字數 1109 閱讀 6809

1939協議支援多幀資料傳送即資料超過8個的幀傳送

使用者可以通過id來識別當前幀是否為多幀傳送(連續幀),如果是多幀傳送id,舉例:1c ec f4 56 其中 f4和56為目標位址和源位址,重點關注1c和ec,通過id的這兩個位元組來判斷是否為連續幀。

當通過id判斷該幀為連續幀後,開始解析這一幀的資料。舉例:10 0d 00 02 ff 00 06 00,其中10為控制字,0d 00為整個訊息的位元組數 低位在前,02為資料報個數,即這個連續幀資料報含2個標準幀組成,ff 保留 預設即為ff,00 06 00 訊息的引數組編號 即 這個訊息識別碼 使用者可以通過這個訊息識別碼來確定如何來解析這組資料。那麼,這幀資料最後表示含義即為:我要向你傳送乙個 訊息引數組編號為(00 06 00),總位元組數為(0d),幀數為(02)的乙個連續幀。

控制字的含義:

ff:放棄連線。

控制字不同 後邊的 資料含義也不同:

11:以前邊的傳送資料舉例 11 02 01 ff ff 00 06 00,02  可以傳送的資料報數 即 告訴源位址我可以接收2幀資料,01  下乙個要傳送的資料報編號,兩個ff為 保留位元組,00 06 00 訊息的引數組編號。整個幀的意思即  我可以接收訊息引數據組編號(00 06 00)的(02)幀資料,你從(01)開始傳送資料吧

13:還是以前邊的傳送資料舉例 13 0d 00 02 ff 00 06 00,0d 00 接收到的整個訊息的位元組數,02 接收到的全部資料報數,ff 保留,00 06 00訊息的引數組編號。整個幀的意思即 我收到了訊息引數組編號(00 06 00)的(02)個標準幀資料,共計(0d)個位元組。

CAN匯流排過載幀

過載幀 過載幀與主動錯誤幀具有相同的格式。但是,過載幀只能在幀間間隔產生,因此可通過這種方式區分過載幀和錯誤幀 錯誤幀是在幀傳輸時發出的 過載幀由兩個字段組成,即過載標誌和隨後的過載定界符。過載標誌由6 個顯性位和緊隨其後的其他節點產生的過載標誌構成 而主動錯誤標誌最多包含12個顯性位 過載定界符包...

CAN匯流排擴充套件資料幀介紹

在擴充套件can 資料幀中,緊隨sof 位的是32 位的仲裁字段。仲裁欄位的前11 位為29 位識別符號的最高有效位 most significant bit,msb 基本ld 緊隨這11 位的是替代遠端請求 substitute remote request,srr 位,定義為隱性狀態。srr位之...

can匯流排一幀多少位元組多少位 CAN匯流排物理層

1 位速率即波特率 can匯流排通訊協議的每一幀可以看作一連串的電平訊號,每乙個電平訊號代表一位 乙個位元組8位的位 所以一幀中包含了很多個位,由傳送單元在非同步的情況下傳送的每秒鐘的位數稱為位速率。2 位時序 一位又分為4段,同步段 ss 傳播時間段 pts 相位緩衝段 1 pbs1 相位緩衝段 ...