CAN(Controller Area Network)通信是一種廣泛應用于汽車和工業領域的串行通信協議,用于實現多個節點之間的高速數據傳輸和通信。CAN通信矩陣(CAN Communication Matrix)作為CAN網絡中的核心組成部分,對于確保網絡中各個節點之間信息的有效交互和共享起著至關重要的作用。
一、CAN通信矩陣的定義
CAN通信矩陣通常由整車廠完成定義,定義了車輛網絡中的各個ECU(電子控制單元)節點需要接收和發送的報文信息。每個ECU節點遵循該通信矩陣,完成信息的交互和共享。這些ID段和數據內容的分配通常由主機廠(OEM)自主進行,分配完成后通常會形成一個.xls格式的表格,這個表格就是CAN通信矩陣。
二、CAN通信矩陣的內容
CAN通信矩陣以表格形式顯示了信號、消息和網絡節點之間的相互關系,內容通常包括以下幾個方面:
網絡節點:每個汽車控制器作為一個網絡節點,負責發送和接收信息。
消息:一個控制器會發出多個幀報文,每幀報文稱為一個消息。這些消息在網絡中傳輸,攜帶特定的數據。
信號描述:包括信號的中文名稱、數據類型(如布爾類型Boolean、無符號Unsigned、有符號Signed)、信號長度(占多少個bit位)、字節次序(Motorola格式或Intel格式)、起始字節位置和起始位位置等。
精度/偏移量:描述信號值如何轉變成信號物理值,通過公式“真實物理值 = 信號值 * 精度 + 偏移量”計算。
范圍:信號數值的范圍,以及信號值的單位(如m、km)。
信號值描述:信號數值的含義,包括初始值和無效值等。
三、報文發送類型
報文發送類型可分為周期、事件、周期事件和使能周期四種類型:
周期:報文按照固定的周期發送,例如每隔100ms發送一幀報文。
事件:當某個事件觸發后,發送出數據報文,一般規定連續發送3幀,間隔20ms。
周期事件:報文以周期時間發送,當某個事件信號觸發后,按照事件的形式立即發送,之后恢復到固定周期發送。
使能周期:報文以周期時間發送,當某個事件觸發后并且達到下一個發送周期時,按照事件發送,一般規定連續發送3幀,間隔20ms。
有些報文規定了兩個特殊的信號:RollingCounter信號和CheckSum信號。
RollingCounter信號:滾動計數值,每發送一幀報文,該信號值累加1。
CheckSum信號:檢驗值,基于某種校驗算法(如CRC算法)對報文數據進行加密處理,保護CAN報文信號數據的安全。
在處理跨平臺數據傳輸時,需要考慮字節序(Byte Order)的問題。字節序分為大端序(Big Endian)和小端序(Little Endian)兩種:
大端序(Motorola格式):最高有效字節(MSB)存儲在內存的最低地址處,最低有效字節(LSB)存儲在內存的最高地址處。
小端序(Intel格式):最低有效字節(LSB)存儲在內存的最低地址處,最高有效字節(MSB)存儲在內存的最高地址處。
CAN通信矩陣是CAN網絡中不可或缺的組成部分,它定義了網絡中各個節點之間的通信關系和數據傳輸規則。了解并掌握CAN通信矩陣對于開發、測試和維護CAN網絡至關重要。通過合理定義和使用CAN通信矩陣,可以確保網絡中各個節點之間的信息交互和共享高效、準確地進行。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.