TI中文支持网
TI专业的中文技术问题搜集分享网站

有关CAN通信

你好:

       在M3中有专门的滤波器的寄存器,可以设置可接受的消息帧,但我没有看到TMS570有可接受滤波器的设置寄存器,在HALCoGen中也没有看到有相关的设置,想问下“接收方设置的ID过滤是否允许你发送端的ID通过”这个是如何实现的,在HALCoGen中要如何配置??

 

谢谢

Jay:

你好,

ID过滤在Halcogen设置如下图所示。红框内配置的就是Mask(掩码)。

weibin chi:

回复 Jay:

Jay,你好

        重新看了手册,对于ID过滤匹配不是很明白?比如CAN1的邮箱1为接受方,CAN1邮箱2为发送方,若Mask如为0x000007FF,那么要如何配置各自的ID才能让接收方设置的ID过滤允许发送端的ID通过呢??麻烦您具体解释下。

谢谢

 

Jay:

回复 weibin chi:

Mask中“1”对应的位是需要进行ID匹配的,所以Mask为0x000007FF,就是标准的11位ID匹配。

Mask中“0”对应的位是表示忽略该位的ID匹配,如果某个接收邮箱Mask为0x000007FE,且ID设置为3,那么这个邮箱实际可以收到ID为1和3的报文。

weibin chi:

回复 Jay:

Jay ,你好

       根据你给的方法,我重新设置了接受ID,但是还是不能进入接受中断?

     

       我加了回环模式后,也是不行?我把整个文件上传给你(如附件),能不能帮我看看具体是什么问题?

 

 谢谢

Jay:

回复 weibin chi:

你的程序有几个问题:

1. 在CAN1中,你配置了两个邮箱,一个发送一个接收,但是发送和接收的ID是不一样的。所以,你要测试的是自发自收呢还是有其他的板子给1号邮箱发数据?

2. 你的程序里,都没有调用CAN的发送,所以问题还是和上面的一样,是自发自收还是其他板子发过来的。

3. 如果要用Loopback,你一定要自己发送,然后才会接收啊。所以,你要调用发送函数。

weibin chi:

回复 Jay:

Jay,你还

      1、 我这个是用自发自收的。发送函数不是在实时中断函数中调用了么?

       2、接受和发送ID是根据什么来配置的,还是符合接受滤波,就可以随意配置?

Ken Wang:

回复 weibin chi:

weibin,

  关于CAN总线的功能调试,成功了吗?还有什么需要帮助的。

谢谢

Jay:

回复 weibin chi:

请参考附件例程。

发送的ID要和接收的I对上,接收邮箱才能收到。如果设置过滤,被过滤的位就无所谓。建议仔细看一下CAN协议。

赞(0)
未经允许不得转载:TI中文支持网 » 有关CAN通信
分享到: 更多 (0)