同时使用CAN的多个邮箱发送数据问题
大家有没有用DSP的CAN模块的多个邮箱的。我用dsp28335的CAN模块与调试软件联调时,如果我用4个邮箱同时发送,波特率设为1M或500K时,调试软件能收到一部分数据,之后就出现总线错误,收不到数据了。但是将波特率降到250K时,收发就没有问题了。如果只用一个邮箱收发数据,波特率1M和500K都没有问题,请问这是为什么呢? 没遇到过DSP中CAN使用熟悉的朋友帮忙解答一下 我用的CAN位率125Kbps,同时使用很多个邮箱,收发都有。 本帖最后由 raoxianbin 于 2013-12-27 18:37 编辑
未遇到这种情况,canmonitor版本太低吗,丢失数据,还有,你程序的波特率设置和软件设定的波特率相同吗 如果是多个邮箱的话,你程序有在新数据来之前将接收到数据读出来吗?
zhangmangui 发表于 2013-12-28 23:01 static/image/common/back.gif
如果是多个邮箱的话,你程序有在新数据来之前将接收到数据读出来吗?
这是个问题哦
首先要中断接收,其次接收到数据之后立即退出中断,不要在中断里处理数据。 DSP的Ecan工作机制中有优先级的配置,并且可以根据总线的忙闲状态自动确认发送时间,程序中只需要使能发送即可,不会存在冲突的问题,目测你这个问题应该是由于CAN收发器的响应速度引起的,其实数据已经发出但是收发器无法响应,以前用过网上淘的百十块的收发器存在这个问题 kingzlt 发表于 2014-1-3 10:13 static/image/common/back.gif
DSP的Ecan工作机制中有优先级的配置,并且可以根据总线的忙闲状态自动确认发送时间,程序中只需要使能发送 ...
感谢解答CAN方面还望你多多指点 共同进步,呵呵 kingzlt 发表于 2014-1-3 10:13 static/image/common/back.gif
DSP的Ecan工作机制中有优先级的配置,并且可以根据总线的忙闲状态自动确认发送时间,程序中只需要使能发送 ...
请问你所说的CAN收发器是CAN模块的接口芯片还是说与电脑相连的CAN/USB转换器呢 msblast 发表于 2013-12-27 12:55 static/image/common/back.gif
我用的CAN位率125Kbps,同时使用很多个邮箱,收发都有。
请问如果接收方用4个邮箱同时接收发送方发送的4个邮箱的内容时,我使能最低优先级的中断,进入中断后把4个邮箱的内容全读出来,这样可以实现吗?我试验了一下,只有最高优先级的那个邮箱偶尔能收到数据,不知道是我程序中哪里做的不合适。 如果同时接收到数据,优先级别高的邮箱产生中断。所以在中断函数里要检查优先级别低的邮箱是否有接收到数。 msblast 发表于 2014-1-8 12:04 static/image/common/back.gif
如果同时接收到数据,优先级别高的邮箱产生中断。所以在中断函数里要检查优先级别低的邮箱是否有接收到数。 ...
谢谢,这个问题解决了,按照你说的方法可以实现 熟悉了CAN使用的朋友 希望能够总结发帖出来
方便大家
msblast 发表于 2013-12-27 12:55
我用的CAN位率125Kbps,同时使用很多个邮箱,收发都有。
DSP28035我用的循环接受模式,发送没有问题,但是我用上位机发送数据,DSP接收不到数据。能否参考下你的程序!谢谢!
页:
[1]