CAN的帧间隔最小达到多少
把STM32和DSP当做两个节点测试can通信,DSP设置为接收,STM32f407设置为发送,每发送8个数据延时,发送波特率500kpbs时,延时30ms没有发现丢帧现象,20ms丢帧现象严重。发送波特率250kpbs时,延时20ms没有发现丢帧现象,18ms丢帧现象严重。请问各位大神这是程序原因还是CAN最低只能这么少间隔。。。 标准帧500k下1ms可以发送4.5帧,仔细查下你程序接收到没有处理吧 can 链路层都是can控制器自动处理的,只可能是软件处理的问题! q457344370 发表于 2016-10-23 16:34标准帧500k下1ms可以发送4.5帧,仔细查下你程序接收到没有处理吧
我觉得也应该不会得间隔这么长时间,但是程序设置进入邮箱中断立刻串口输出,还需要怎么处理。。 没记错的话,帧间隔最小是6个bit位 串口太慢了,楼主。 每毫秒3帧一点问题都没有。 我可以负责任的告诉楼主:绝对是你程序有问题,CAN的最低间隔很小的,500K的波特率应该是uS级别的。估计是跟你的串口速度有关系。 语丝123 发表于 2016-10-23 16:41
我觉得也应该不会得间隔这么长时间,但是程序设置进入邮箱中断立刻串口输出,还需要怎么处理。。 ...
邮箱中断,立刻输出串口?
算一下你设置的串口波特率发送这些数据出去,需要多长时间吧。9600,一个字节至少833微秒。115200,一个字节至少70微秒。 语丝123 发表于 2016-10-23 16:41
我觉得也应该不会得间隔这么长时间,但是程序设置进入邮箱中断立刻串口输出,还需要怎么处理。。 ...
怎么输出的?最好提供下相关程序 感谢各位确实是串口输出的速率太低了中断计数总和是对的 大概的流程发出来看看 你要查询它的 TX FIFO有没有空闲,才能放入吧。
有时它会因为网络忙而阻塞的,
应用层操作,应该不是按多少ms这样玩的。 楼主你理解错了,CAN的发送帧之间时间,并不用你调用发送函数的延时时间,数据还没发送完成你就一直调用发送函数,这样肯定是不行的 语丝123 发表于 2016-10-24 11:00
**** 作者被禁止或删除 内容自动屏蔽 ****
我现在也遇到这个问题,我的can波特率是250K,串口是500K. 连续发送多帧,会出现丢包情况
页:
[1]