主题:请教CAN问题 共有51951人关注过本帖 |
---|
EM9260 |
1楼 |
![]() |
请教CAN问题 ![]()
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楼 |
![]() |
![]()
1) 只要返回的数据帧,符合02机器 ACR、AMR的设置,02可以接收。在我们提供的测试程序Cantest中,02可以收到。
2)cantest测试程序中,将接收到的数据帧自动返回,返回的数据就是接收到的数据。这是应用程序来实现的,如果想返回规定的数据,可以修改这部分的程序。 |
单帖管理 | 引用 | 回复 ![]() |
EM9260 |
3楼 |
![]() |
![]()
在提供的测试程序Cantest中,AMR全部为0xff。
但实际使用中,我用ID其中几位来表示01,02两台机器的地址,以备接收数据时屏蔽用 1)02向01发送远程帧,符合01的过滤要求,01可以接收; 但01返回相同标示符的数据帧,02应该收不到吧?该如何解决呢? 2)提供的cantest测试程序中,将接收到的数据帧自动返回,返回的数据就是接收到的数据。 请问:远程帧以何种方式工作?是否仍是通过CAN中断来获取,回调函数人为处理返回数据帧? 如果这样,和01向02发送一个不含数据场的数据帧来索要数据这种形式,好像并无区别. 还是你们的驱动程序中,已经做了处理? |
单帖管理 | 引用 | 回复 ![]() |
zhl |
4楼 |
![]() |
![]()
1、AMR设置为0xff,所有的ID可以收。所以cantest测试01 02之间是可以相互收发。
2、远程帧和数据帧的区分是通过帧结构来区分的,这部分的内容你可看看应用方案中“WinCE系统双CAN构建方案”中对CAN报文帧格式的介绍。无论是远程帧还是数据帧,接收的方式是一样的。 |
单帖管理 | 引用 | 回复 ![]() |