標準幀 擴充套件幀

2021-07-14 18:01:56 字數 1053 閱讀 1255

大家先去看乙個暫存器  can_tixr(x=0~2) 傳送郵箱標識暫存器

標準幀在 31~21 位  共11位 stid[10:0]

擴充套件幀在

20~3 位   共29位 exid[17:0]+stid[10:0]

0~2 位分別為 txrq ,rtr ,ide 

uint16_t can_id = 0x0101

uint32_t excan_id= 0x10001

所以設定標位幀id過濾應該這樣設:

can_filterinitstructure.can_filteridhigh = can_id<<5;

can_filterinitstructure.can_filteridlow  = 0; 

can_filterinitstructure.can_filtermaskidhigh  = 0xffff;  

can_filterinitstructure.can_filtermaskidlow   = 0xfffc;            //rtr 可以為資料幀也可以遠幀

擴充套件幀id過濾應該這樣設:

can_filterinitstructure.can_filteridhigh = (uint16_t)(excan_id>>(29-16));           //取高16位 

can_filterinitstructure.can_filteridlow  = (uint16_t)(excan_id<<3)|can_id_ext;                 

can_filterinitstructure.can_filtermaskidhigh  = 0xffff;  

can_filterinitstructure.can_filtermaskidlow   = 0xfffc;            //rtr 可以為資料幀也可以遠幀

可以這樣                can_filterinitstructure.can_filtermaskidlow   = 0xfffc&(~can_id_ext); g

t

CAN 擴充套件幀和標準幀的適用範圍

剛接觸can不久,對很多can相關的知識不了解,就難以進行靈活的運用。今天弄懂了can的標準幀和擴充套件幀的使用場合,故此做一下筆記。首先,得知道為什麼會有這兩種不同的幀。其實原因和ipv4和ipv6的區別一樣,ipv6的出現,是為了解決ipv4的位址不夠用的尷尬。同樣,can的擴充套件幀,是為了解...

I幀 B幀 p幀 IDR幀的區別

idr instantaneous decoding refresh 即時解碼重新整理。i幀 幀內編碼幀幀。i和idr幀都是使用幀內 的。它們都是同乙個東西而已,在編碼和解碼中為了方便,要首個i幀和其他i幀區別開,所以才把第乙個首個i幀叫idr,這樣就方便控制編碼和解碼流程。idr幀的作用是立刻重新...

I 幀,B幀,P幀,IDR幀的區別

i幀 幀內編碼幀 i幀特點 1.它是乙個全幀壓縮編碼幀。它將全幀影象資訊進行jpeg壓縮編碼及傳輸 2.解碼時僅用i幀的資料就可重構完整影象 3.i幀描述了影象背景和運動主體的詳情 4.i幀不需要參考其他畫面而生成 5.i幀是p幀和b幀的參考幀 其質量直接影響到同組中以後各幀的質量 6.i幀是幀組g...