一、CAN報文信號排列方式
在定義CAN通信矩陣或制作dbc時,需確定報文的信號排列方式。字節(jié)的排列順序有:Intel的排列順序;Motorola的排列順序。
注:
Motorola和Intel格式,只在信號數(shù)據(jù)跨字節(jié)解析時有區(qū)別,單個字節(jié)數(shù)據(jù)沒有區(qū)別。
二、?編碼格式
(1)Intel格式——小端
當一個信號的數(shù)據(jù)長度超過1 個字節(jié)(8 位)或者數(shù)據(jù)長度不超過一個字節(jié)但是采用跨字節(jié)方式實現(xiàn)時,該信號的高位(S_msb)將被放在高字節(jié)(MSB)的高位,信號的低位(S_lsb)將被放在低字節(jié)(LSB)的低位。信號的起始位就是低字節(jié)的低。
小端 = Little-Endians = Intel Mode:高字節(jié)byte保存在高地址中,低字節(jié)byte保存在低地址中 。
(2)Motorola 格式
當一個信號的數(shù)據(jù)長度超過 1 個字節(jié)(8 位)或者數(shù)據(jù)長度不超過一個字節(jié)但是采用跨字節(jié)方式實現(xiàn)時,該信號的高位(S_msb)將被放在低字節(jié)(MSB)的高位,信號的低位(S_lsb)將被放在高字節(jié)(LSB)的低位。信號的起始位就是高字節(jié)的低位。
大端 = Big-Endians = Motorola Mode:高字節(jié)保存在低地址中,低字節(jié)保存在高地址中。
Motorola格式:
(1)Motorola_LSB:起始位是從低字節(jié)開始
(2)Motorola_MSB?:起始位是從高字節(jié)開始
案例:
數(shù)字:46,換為二進制為:101110? ??起始位20,長度6bit? ? ? ??00 02 E0 00 00 00 00
Motorola_LSB排列格式:
數(shù)字:46,換為二進制為:101110? ??起始位20,長度6bit? ? ? ?00 00 17 00 00 00 00
Motorola_MSB排列格式:
?三、區(qū)別
案例:
十進制128,寫成二進制數(shù)
1000 0000
,就是大端字節(jié)序,而寫成0000 0001
就是小端字節(jié)序
四、排列規(guī)則
五、其他相關參數(shù)
(1)高低地址
Byte0為低字節(jié),Byte7為高地址
?(2)高低字節(jié)
對于0xFF22來說,F(xiàn)F就叫做數(shù)據(jù)的高字節(jié)部分,22就是低字節(jié)部分
?(3)MSB和LSB
MSB(most significant bit)即最高有效位;
LSB(least significant bit)即最低有效位;
字節(jié)計算就是從LSB到MSB的計算過程
六、相關參數(shù)
(1)Unsigned和Signed
CAN信號數(shù)據(jù)類型分為Unsigned和Signed。Unsigned表示無符號,Signed表示有符號。
(2)精度/偏移量
用于描述信號值如何轉(zhuǎn)變成信號物理值。
[Physical value] = ( [Raw value] * [Factor] ) + [Offset]
[Raw value] = [Physical value] - [Offset] / [Factor]
(3)CAN標識符
CAN 協(xié)議的2.0B版本規(guī)定,CAN控制器的標志符長度是11位或29位。
標準CAN長度是11位,擴展CAN長度是29位。
CAN標準幀ID:文章來源:http://www.zghlxwxcb.cn/news/detail-622350.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-622350.html
到了這里,關于車載通信——CAN報文信號排列方式(報文/信號結(jié)構(gòu))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!