| 请问一下,STM32F103C8T6使用CAN发送数据,速率如果是1M的话,两帧数据的最小时间间隔是多少呢? 使用的是标准数据帧发送,第一条数据和第二条数据发送间隔是多少? |
如需获得 STM32F103C8T6 等器件的更多信息,请点击链接或 点击此处 联系在线客服!
间隔应该根据你的设计进行的,比如说应答应该在多长时间内回复?超时应答机制等等。只要满足你的应答要求即可。
自己可以根据波特率计算出一位的时间,再根据CAN总线传输协议计算出传输一包需要的bit位。然后算出一次传输需要的时间, 从这个时间来计算即可。 从实际应用 来说,一般可以通过判断发送标志位,当发送完成后,即可进行下次的发送。可以使用中断的方式。
跟据CAN的协议规范,这类总线是竞争的,所以总线的各种状态会影响CAN报文的发出。 实际上将报文交给发送邮箱,剩下的就是邮箱根据总线状态和协议规范自动执行了,软件很难干预。 CAN网络比较复杂,建议还是以实际测试为主吧。有总线监控仪器,得到的分析数据上有时间戳,这样很容易看到各类帧间隔。
跟据CAN的协议规范,这类总线是竞争的,所以总线的各种状态会影响CAN报文的发出。 实际上将报文交给发送邮 ...
情况是这样的,CAN总线上只有我配置的一主一从,主机轮询从机的各种状态,主机给从机发送指令的间隔大约是多少合适,两个芯片都用的STM32F103C8T6
间隔应该根据你的设计进行的,比如说应答应该在多长时间内回复?超时应答机制等等。只要满足你的应答要求即 ...
嗯,我现在就是采用20毫秒的间隔发送一次数据
情况是这样的,CAN总线上只有我配置的一主一从,主机轮询从机的各种状态,主机给从机发送指令的间隔大约 ...
举个例子,如果发送的信息由于某些原因没有得到接收发的应答,那么按照协议就会重发(期间还可能有一些其他帧数据在总线上,具体可以用CAN 盒子监控),这时候的时间就是不固定的。如果出错到一定次数,该节点还会退出。 所以涉及到的因素很多,没有固定的公式计算。can 协议只保证发送的成功和准确,速度不是追求的重点。所以实际测试最好,留有一定的余量。
举个例子,如果发送的信息由于某些原因没有得到接收发的应答,那么按照协议就会重发(期间还可能有一些其 ...
嗯,感谢您的耐心解答,经过我的测试,不能使用硬件重发功能,否则如果连续三次发送失败,就会影响整个网络上的数据传输,这就好比三个邮箱都占满了,因为有硬件重发机制的存在,他们就会在经过仲裁后,重新发送,可是如果发送失败就会一直发送,所以这样就导致了堵塞,现在我是把硬件重发机制去掉了,这样每次发送都是发送一次,不管是否成功,再加上20毫秒左右的延时时间,保证发送邮箱为空,可以再次被调用,这样就可以了
嗯,感谢您的耐心解答,经过我的测试,不能使用硬件重发功能,否则如果连续三次发送失败,就会影响整个网 ...
一般不用硬件重发功能,这样会导致网络出问题的,比如波特率设置错误后,会导致总线错误。