文章目錄:
1. CAN通信矩陣是什么
2. CAN通信矩陣內(nèi)容
3. Motorola格式和Intel格式
3.1 Intel格式
3.2 Motorola格式
4. 報(bào)文發(fā)送類型
5. RollingCounter和CheckSum
CAN總線
是一種通信形式,其協(xié)議僅規(guī)定了數(shù)據(jù)鏈路層
和物理層
標(biāo)準(zhǔn),想了解具體的標(biāo)準(zhǔn)協(xié)議,可以閱讀文章:通信總線協(xié)議之CAN總線詳解,通信總線之CAN-FD總線協(xié)議詳解ID
、傳什么數(shù)據(jù)是由使用者自己定義的,這些ID段
以及數(shù)據(jù)內(nèi)容
規(guī)定一般由主機(jī)廠OEM自主來進(jìn)行分配,分配好之后一般會形成一個.xls
格式的表格,這個表格就是CAN通信矩陣
CAN通信矩陣
(CAN Communication Matrix) :通常由整車廠完成定義,定義了車輛網(wǎng)絡(luò)中的各個ECU節(jié)點(diǎn)需要接收和發(fā)送的報(bào)文信息,各個ECU節(jié)點(diǎn)遵循該通訊矩陣,完成信息的交互和共享DBC文件
,后期會詳細(xì)介紹CAN通信矩陣是將信號、消息和網(wǎng)絡(luò)節(jié)點(diǎn)
之間的相互關(guān)系以表格形式顯示,由整車廠完成定義,車輛網(wǎng)絡(luò)中的各個節(jié)點(diǎn)需要遵循該通訊矩陣才能完成信息的交互和共享
網(wǎng)絡(luò)節(jié)點(diǎn)
:一般一個汽車控制器作為一個網(wǎng)絡(luò)節(jié)點(diǎn)消息
:一個控制器會發(fā)出多個幀報(bào)文,每幀報(bào)文稱為消息信號
:標(biāo)準(zhǔn)CAN一幀報(bào)文長度為1 - 8 byte, 大多為8byte,即64bit ,CAN FD最大長度為64byte;因此一幀報(bào)文可以包含多個信號通信矩陣基本內(nèi)容包括:
報(bào)文信息
控制器名稱
:控制器ECU名稱報(bào)文名稱
:每個報(bào)文消息規(guī)定的名字報(bào)文ID
:唯一標(biāo)識報(bào)文的ID號,一般規(guī)定ID范圍為0x00 - 0x7FF報(bào)文發(fā)送類型
:分為周期報(bào)文,事件報(bào)文,周期事件報(bào)文,使能周期發(fā)送報(bào)文周期
:周期報(bào)文的發(fā)送周期值長度
:報(bào)文字節(jié)長度信號定義 :
信號名稱
:信號英文名稱,一般命名:ECUName_MessgeName
,ECUName為發(fā)送節(jié)點(diǎn)的名字簡寫,MessgeName為具體的報(bào)文名稱信號描述
:信號中文名稱描述信號類型
:信號的數(shù)據(jù)類型,比如布爾類型Boolean,無符號 Unsigned,有符號Signed信號長度
:信號的長度,即占多少個bit 位的長度字節(jié)次序
:規(guī)定信號的大小端位置和布局layout,有Motorola格式和Intel格式起始字節(jié)位置
:起始位所在的字節(jié)序號起始位位置
:信號起始位所在的bit位置編號精度/偏移量
:描述信號值如何轉(zhuǎn)變成信號物理值,計(jì)算公式:真實(shí)物理值 = 信號值 * 精度 + 偏移量
Range范圍
:信號數(shù)值的范圍信號單位
:信號數(shù)值的單位,比如可為:m
,km
信號值描述
:信號數(shù)值含義初始值
:信號默認(rèn)的初始值無效值
:信號無任何含義的無效值狀態(tài)備注
:信號備注內(nèi)容Motorola格式
和Intel格式
起始位位置
規(guī)定了位于64bit(編號0-63)具體的那個位置,如下示例起始位置為12;信號長度
規(guī)定了從起始位編號位置開始,連續(xù)占用的bit位長度,如下示例信號長度為12byte中從低bit位向高bit位填充
,字節(jié)從低字節(jié)向高字節(jié)填充
byte中從低bit位向高bit位填充
,字節(jié)從高字節(jié)向低字節(jié)填充
Motorola MSB格式
和 Motorola LSB格式
起始位位置表示的是大端位置
起始位位置表示的是小端位置
0表示正,1表示負(fù)
報(bào)文發(fā)送類型可分為:周期,事件,周期事件,使能周期
周期
:報(bào)文按照固定的周期發(fā)送,例如周期為100ms,則每隔100ms發(fā)送一幀報(bào)文事件
:當(dāng)事件觸發(fā)后,發(fā)送出數(shù)據(jù)報(bào)文,一般規(guī)定連續(xù)發(fā)送3幀,間隔20ms周期事件
:周期和事件的結(jié)合,報(bào)文以周期時間發(fā)送每幀報(bào)文,當(dāng)某個事件信號觸發(fā)后,按照事件的形式立馬發(fā)送出來,之后恢復(fù)到固定周期發(fā)送使能周期
:報(bào)文以周期時間發(fā)送每幀報(bào)文,當(dāng)某個事件觸發(fā)后并且達(dá)到下一個發(fā)送周期時,這個時刻按照事件發(fā)送,一般規(guī)定連續(xù)發(fā)送3幀,間隔20ms周期事件報(bào)文中的事件信號,在實(shí)際應(yīng)用中,有事件保持
和事件不保持
兩種
事件保持
:觸發(fā)信號發(fā)送后,信號一直保持之前的狀態(tài)事件不保持
:觸發(fā)信號發(fā)送后,信號恢復(fù)到默認(rèn)值狀態(tài)例如:一個狀態(tài)信號規(guī)定,0 : 默認(rèn) 1:狀態(tài)一 2:狀態(tài)二 事件保持方式:狀態(tài)一觸發(fā)后,發(fā)送狀態(tài)一信號值1,之后此信號值一直保持為1 事件不保持 :狀態(tài)一觸發(fā)后,發(fā)送狀態(tài)一信號值1,之后此信號值恢復(fù)到默認(rèn)值0,事件狀態(tài)不保持
RollingCounter信號
和 CheckSum信號
RollingCounter信號
:滾動計(jì)數(shù)值,例如示例信號從0 - 15,循環(huán)滾動,每發(fā)送一幀報(bào)文,該信號值累加1CheckSum信號
:檢驗(yàn)值,基于某種校驗(yàn)算法,將報(bào)文數(shù)據(jù)進(jìn)行加密處理,加密算法一般使用的是CRC算法對于添加了RollingCounter和CheckSum的報(bào)文,測試中需要按照規(guī)定發(fā)送這兩個信號值,開發(fā)測試中常遇到過這一類報(bào)文信號不響應(yīng)的問題
聯(lián)系客服