语丝123 发表于 2016-10-23 16:28:32

CAN的帧间隔最小达到多少

把STM32和DSP当做两个节点测试can通信,DSP设置为接收,STM32f407设置为发送,每发送8个数据延时,发送波特率500kpbs时,延时30ms没有发现丢帧现象,20ms丢帧现象严重。发送波特率250kpbs时,延时20ms没有发现丢帧现象,18ms丢帧现象严重。请问各位大神这是程序原因还是CAN最低只能这么少间隔。。。

q457344370 发表于 2016-10-23 16:34:47

标准帧500k下1ms可以发送4.5帧,仔细查下你程序接收到没有处理吧

ddddd120 发表于 2016-10-23 16:39:20

can 链路层都是can控制器自动处理的,只可能是软件处理的问题!

语丝123 发表于 2016-10-23 16:41:21

q457344370 发表于 2016-10-23 16:34
标准帧500k下1ms可以发送4.5帧,仔细查下你程序接收到没有处理吧

我觉得也应该不会得间隔这么长时间,但是程序设置进入邮箱中断立刻串口输出,还需要怎么处理。。

yu2008 发表于 2016-10-23 17:32:37

没记错的话,帧间隔最小是6个bit位

lzg 发表于 2016-10-23 17:53:38

串口太慢了,楼主。

wangyu_2011 发表于 2016-10-23 18:18:50

每毫秒3帧一点问题都没有。

zqf441775525 发表于 2016-10-23 19:33:58

我可以负责任的告诉楼主:绝对是你程序有问题,CAN的最低间隔很小的,500K的波特率应该是uS级别的。估计是跟你的串口速度有关系。

sbusr 发表于 2016-10-23 20:21:34

语丝123 发表于 2016-10-23 16:41
我觉得也应该不会得间隔这么长时间,但是程序设置进入邮箱中断立刻串口输出,还需要怎么处理。。 ...

邮箱中断,立刻输出串口?
算一下你设置的串口波特率发送这些数据出去,需要多长时间吧。9600,一个字节至少833微秒。115200,一个字节至少70微秒。

q457344370 发表于 2016-10-23 21:44:45

语丝123 发表于 2016-10-23 16:41
我觉得也应该不会得间隔这么长时间,但是程序设置进入邮箱中断立刻串口输出,还需要怎么处理。。 ...

怎么输出的?最好提供下相关程序

语丝123 发表于 2016-10-24 11:00:58

感谢各位确实是串口输出的速率太低了中断计数总和是对的

34071417 发表于 2016-10-24 13:04:56

大概的流程发出来看看

dog 发表于 2016-10-25 17:07:03

你要查询它的 TX FIFO有没有空闲,才能放入吧。
有时它会因为网络忙而阻塞的,
应用层操作,应该不是按多少ms这样玩的。

xiaozuowei118 发表于 2016-10-27 11:25:11

楼主你理解错了,CAN的发送帧之间时间,并不用你调用发送函数的延时时间,数据还没发送完成你就一直调用发送函数,这样肯定是不行的

lonny_chen 发表于 2021-11-21 15:05:19

语丝123 发表于 2016-10-24 11:00
**** 作者被禁止或删除 内容自动屏蔽 ****

我现在也遇到这个问题,我的can波特率是250K,串口是500K.   连续发送多帧,会出现丢包情况
页: [1]
查看完整版本: CAN的帧间隔最小达到多少