你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F103C8T6的CAN通讯间隔?

[复制链接]
1+1=2 提问时间:2022-6-2 15:58 / 未解决
请问一下,STM32F103C8T6使用CAN发送数据,速率如果是1M的话,两帧数据的最小时间间隔是多少呢?
使用的是标准数据帧发送,第一条数据和第二条数据发送间隔是多少?
收藏 评论8 发布时间:2022-6-2 15:58

举报

8个回答
废鱼 回答时间:2022-6-7 08:45:02
间隔应该根据你的设计进行的,比如说应答应该在多长时间内回复?超时应答机制等等。只要满足你的应答要求即可。
废鱼 回答时间:2022-6-6 08:45:20
自己可以根据波特率计算出一位的时间,再根据CAN总线传输协议计算出传输一包需要的bit位。然后算出一次传输需要的时间, 从这个时间来计算即可。
从实际应用 来说,一般可以通过判断发送标志位,当发送完成后,即可进行下次的发送。可以使用中断的方式。
butterflyspring 回答时间:2022-6-6 11:11:02
跟据CAN的协议规范,这类总线是竞争的,所以总线的各种状态会影响CAN报文的发出。 实际上将报文交给发送邮箱,剩下的就是邮箱根据总线状态和协议规范自动执行了,软件很难干预。 CAN网络比较复杂,建议还是以实际测试为主吧。有总线监控仪器,得到的分析数据上有时间戳,这样很容易看到各类帧间隔。
1+1=2 回答时间:2022-6-7 08:17:09
butterflyspring 发表于 2022-6-6 11:11
跟据CAN的协议规范,这类总线是竞争的,所以总线的各种状态会影响CAN报文的发出。 实际上将报文交给发送邮 ...

情况是这样的,CAN总线上只有我配置的一主一从,主机轮询从机的各种状态,主机给从机发送指令的间隔大约是多少合适,两个芯片都用的STM32F103C8T6
1+1=2 回答时间:2022-6-8 09:28:18
废鱼 发表于 2022-6-7 08:45
间隔应该根据你的设计进行的,比如说应答应该在多长时间内回复?超时应答机制等等。只要满足你的应答要求即 ...

嗯,我现在就是采用20毫秒的间隔发送一次数据
butterflyspring 回答时间:2022-6-8 10:55:00
1+1=2 发表于 2022-6-7 08:17
情况是这样的,CAN总线上只有我配置的一主一从,主机轮询从机的各种状态,主机给从机发送指令的间隔大约 ...

举个例子,如果发送的信息由于某些原因没有得到接收发的应答,那么按照协议就会重发(期间还可能有一些其他帧数据在总线上,具体可以用CAN 盒子监控),这时候的时间就是不固定的。如果出错到一定次数,该节点还会退出。 所以涉及到的因素很多,没有固定的公式计算。can 协议只保证发送的成功和准确,速度不是追求的重点。所以实际测试最好,留有一定的余量。
1+1=2 回答时间:2022-6-9 08:17:43
butterflyspring 发表于 2022-6-8 10:55
举个例子,如果发送的信息由于某些原因没有得到接收发的应答,那么按照协议就会重发(期间还可能有一些其 ...

嗯,感谢您的耐心解答,经过我的测试,不能使用硬件重发功能,否则如果连续三次发送失败,就会影响整个网络上的数据传输,这就好比三个邮箱都占满了,因为有硬件重发机制的存在,他们就会在经过仲裁后,重新发送,可是如果发送失败就会一直发送,所以这样就导致了堵塞,现在我是把硬件重发机制去掉了,这样每次发送都是发送一次,不管是否成功,再加上20毫秒左右的延时时间,保证发送邮箱为空,可以再次被调用,这样就可以了
废鱼 回答时间:2022-6-10 17:03:11
1+1=2 发表于 2022-6-9 08:17
嗯,感谢您的耐心解答,经过我的测试,不能使用硬件重发功能,否则如果连续三次发送失败,就会影响整个网 ...

一般不用硬件重发功能,这样会导致网络出问题的,比如波特率设置错误后,会导致总线错误。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版