求助:关于CAN的速率和一秒内能发的帧数,不会算
比如我几个节点使用250Kbps的速率通讯,看了下CAN的帧结构,算出来标准标识符和扩展标识符分别要103位和123位.(DLC按8计算)
我们就当125位计算,那么一秒可以发2K帧是吗?(理想情况下)
考虑到仲裁和冲突及重发,拆中一下按1K帧是可以达到的吧? 当波特率为1M的时候,总线上一秒钟的报文流量可达到6000帧以上,不是所有报文的dlc都等于8 的情况下。 1M ==> 6K帧
那么: 250K ==>1500帧
我的DLC都是8,需求是800帧每秒,还要算上容错,看来有点勉强.... CAN是串行总线,其实很容易计算的
如果用标准帧:一帧数据最多应该不会超过129位(因为有自动插入位不确定,129好像是最大值,好久不看底层的东西记不太清楚了),这样我们每一位的时间就是 :(1/波特率) ,一帧最大时间就是: 129/波特率 。
这样1秒钟多少帧就很简单了 : 波特率/129 . 这是纯理论计算,试用的时候自己留一定余量就是了。
两年前曾深入的研究过CAN ,但由于工作的变动好久没有仔细研究了,希望对大家有帮助。 完整扩展帧按128位算,帧间还至少需要3位间隔。
250k / 131 = 1908帧/秒
为位填充、通讯干扰、线路因素、杂七杂八留出50%裕量,就算是954帧/秒。与LZ的需求相比可能没多大空间了。
跑250kbps,距离应当不会太远吧……说明书里面把线材、终端匹配都加粗加黑,还有什么“远离强干扰设备”之类的说明文字都加粗加黑,总之把影响通讯的因素都说明出来……“万一通讯质量差可不要怪我没说过哦”:D 谢谢楼上的,基本明白... 总线利用率能到多少???
我觉得60%就不错了,没数据猜得。
谁给讲讲
页:
[1]