主題:請教CAN問題 共有37292人關注過本帖 |
---|
EM9260 |
1樓 |
請教CAN問題 Post By:2009-9-18 21:04:00 [只看該作者]
EM9260開發板,SJA1000控制器
例:兩臺機器,01 ;02 若02需要01發送數據,向01發送遠程幀。。。 01會返回相同標示符的數據幀 請問: 1)01 ;02都有ACR,AMR過濾要求;02向01發送遠程幀,符合01的過濾要求,01可以接收; 但01返回相同標示符的數據幀,02可以收到嗎? 2)01返回的數據幀,是自動返回的嗎,返回的是什么內容? 如果想返回規定的數據,該如何設置? O(∩_∩)O謝謝! |
|
單帖管理 | 引用 | 回復 |
zhl |
2樓 |
Post By:2009-9-19 10:12:00 [只看該作者]
1) 只要返回的數據幀,符合02機器 ACR、AMR的設置,02可以接收。在我們提供的測試程序Cantest中,02可以收到。
2)cantest測試程序中,將接收到的數據幀自動返回,返回的數據就是接收到的數據。這是應用程序來實現的,如果想返回規定的數據,可以修改這部分的程序。 |
|
單帖管理 | 引用 | 回復 |
EM9260 |
3樓 |
Post By:2009-9-20 9:12:00 [只看該作者]
在提供的測試程序Cantest中,AMR全部為0xff。
但實際使用中,我用ID其中幾位來表示01,02兩臺機器的地址,以備接收數據時屏蔽用 1)02向01發送遠程幀,符合01的過濾要求,01可以接收; 但01返回相同標示符的數據幀,02應該收不到吧?該如何解決呢? 2)提供的cantest測試程序中,將接收到的數據幀自動返回,返回的數據就是接收到的數據。 請問:遠程幀以何種方式工作?是否仍是通過CAN中斷來獲取,回調函數人為處理返回數據幀? 如果這樣,和01向02發送一個不含數據場的數據幀來索要數據這種形式,好像并無區別. 還是你們的驅動程序中,已經做了處理? |
|
單帖管理 | 引用 | 回復 |
zhl |
4樓 |
Post By:2009-9-20 9:58:00 [只看該作者]
1、AMR設置為0xff,所有的ID可以收。所以cantest測試01 02之間是可以相互收發。
2、遠程幀和數據幀的區分是通過幀結構來區分的,這部分的內容你可看看應用方案中“WinCE系統雙CAN構建方案”中對CAN報文幀格式的介紹。無論是遠程幀還是數據幀,接收的方式是一樣的。 |
|
單帖管理 | 引用 | 回復 |