主題:CAN通訊問題,謝謝 共有38011人關(guān)注過本帖 |
---|
whl |
1樓 |
CAN通訊問題,謝謝 Post By:2009-3-17 9:30:00 [只看該作者]
請教幾個問題:
1)CAN通訊操作函數(shù)的AcceptanceFilter中,過濾器的接收碼、接收屏蔽碼分別指什么? 2)使用了一塊周立功PCI9840的兩CAN輸出口的板卡。打開CANTEST軟件,其中的初始化CAN參數(shù),是否與1)中所述過濾器的接受碼、接收屏蔽碼對應(yīng)? 3)在使用PCI9840時。想實現(xiàn)兩口間的發(fā)送與接收,波特率設(shè)置一致,其他設(shè)置未改變。請問,為何會出現(xiàn)發(fā)送失敗? 謝謝 |
|
單帖管理 | 引用 | 回復(fù) |
zhl |
2樓 |
Post By:2009-3-17 10:05:00 [只看該作者]
AcceptanceFilter: 根據(jù)通訊報文格式定義過濾器的配置,定義為9個字節(jié)的過濾器,其中前4個字節(jié)用于定義過濾器的接收碼,后4個字節(jié)用于定義過濾器的接收屏蔽碼,最后一個字節(jié)用于定義選擇單/雙濾波模式。其中接收碼和屏蔽碼分別對應(yīng)于SJA1000 CAN控制器中的ACR、AMR寄存器的設(shè)置參數(shù),濾波的方式請參見SJA1000的數(shù)據(jù)手冊中相關(guān)說明。如果不對數(shù)據(jù)進行濾波,將AMR的值均設(shè)為0xff。
|
|
單帖管理 | 引用 | 回復(fù) |
whl |
3樓 |
Post By:2009-3-17 10:31:00 [只看該作者]
可以這樣理解嗎?
通過AcceptanceFilter函數(shù)中9個字節(jié)的設(shè)置,給SJA1000 CAN控制器中的ACR、AMR寄存器賦值。發(fā)送的幀信息的數(shù)據(jù)結(jié)構(gòu)中也含有接收碼、接收屏蔽碼?CAN控制器只接收與之相對應(yīng)的接收碼、接收屏蔽碼的幀信息? 另外,在有信息待接收時,接收器會自動進入中斷模式嗎? |
|
單帖管理 | 引用 | 回復(fù) |
zhl |
4樓 |
Post By:2009-3-17 12:14:00 [只看該作者]
1)發(fā)送幀信息的結(jié)構(gòu)是由幀信息、報文識別碼以及數(shù)據(jù)幀的實際數(shù)據(jù)組成。請參見網(wǎng)站上“WINCE系統(tǒng)雙CAN構(gòu)建方案”一文對CAN報文幀格式的相關(guān)介紹。
2)CAN控制器的接收中斷始終打開的,一旦有數(shù)據(jù),驅(qū)動程序會自動執(zhí)行中斷線程,將接收到的數(shù)據(jù)幀讀取到接收buffer中。 |
|
單帖管理 | 引用 | 回復(fù) |
whl |
5樓 |
Post By:2009-3-17 12:58:00 [只看該作者]
發(fā)送幀信息的結(jié)構(gòu)我清楚。主要由幀起始,標識場,數(shù)據(jù)場等幾部分組成。
我想表達的意思是:因為CAN總線傳輸為多播方式,每臺設(shè)備只接收所需要的幀信息。而如何實現(xiàn)此功能,是否就通過CAN控制器的ACR,AMR寄存器中的接收碼,接收屏蔽碼?如果是這樣,那發(fā)送的幀信息中勢必也含有這兩部分,只接收總線上與ACR,AMR寄存器值相匹配的幀數(shù)據(jù)? |
|
單帖管理 | 引用 | 回復(fù) |
zhl |
6樓 |
Post By:2009-3-17 16:14:00 [只看該作者]
實現(xiàn)對報文的過濾,就是通過設(shè)置CAN控制器中的ACR、AMR來實現(xiàn)的。
|
|
單帖管理 | 引用 | 回復(fù) |