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