CAN分幀接收實現

2022-06-10 19:45:14 字數 1293 閱讀 9364

該版本程式實現了上電後先傳送macid檢測功能,如果網路上有應答。則一直進行死迴圈,直到使用者更改了本機的id位址 才可以跳出迴圈體。

本微控制器設定為雙濾波 ,使目標位址為0x1f

實現了建立連線命令

傳送 幀 id號 是0x0023e4fe 資料部分是 00 ee 20 (20 對應十進位制32)

則微控制器返回幀 幀id號 0x03e034ee 資料部分 是 00 01 02 03 04

同時數碼管可以看見 從0 增加到 31

建立連線命令以後,如果在連線時間內 你再次傳送連線命令,則微控制器會上傳錯誤指示,指示當前不能再進行連線。

寫資料指令。。 你通過分幀寫 一組資料 資料的位元組總數小於7

建立連線以後,傳送幀的id號 為 0x0023e180 資料 為 00 01 02 03

表示寫3個位元組 分別是 01 02 03

用串列埠除錯助手顯示出來

設定的位元組數 大於7 小於等於 14 這個 現在 還有問題

設定的資料位元組總數 大於14 小於21

設定的字數 大於 14 小於 30 我嘗試用分幀處理 現在還不成功

現在 讀資料

我在軟體中設定了乙個陣列 read_rec [30]

通過can匯流排 ,將這個陣列中的元素讀出來,

我唯讀乙個資料

傳送讀資料的幀 id號 0x0023e2a0 資料部分 為 00 01

我讀取 15個資料 00 0f

CAN匯流排過載幀

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

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

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

CAN匯流排協議CAN協議,系統結構和幀結構

can controller area network,控制器區域網 是一種能有效支援分布式控制和實時控制的序列通訊網路。can bus controller area network bus,控制器區域網匯流排技術 can匯流排系統結構 can 控制器 接收控制單元中微處理器發出的資料,處理資料並...