CAN总线的最大传输距离与波特率、采样点、传输时延之间存在什么样的关系呢?如何理论计算出最大传输距离呢?本文将详细解答这两个问题。
延时原理分析
影响CAN通信距离的主要因素是什么呢?经过我们实际测试长距离通信线缆带来的寄生参数(容抗、阻抗和感抗)影响总体较小,并且可以通过调节匹配电阻削减寄生参数的影响,因此影响通信距离的主因并不是寄生参数而是另有其它。
CAN总线采用多主从通信模式,标准CAN帧报文如图1所示可分为7段,其中ACK域分为ACK SLOT(应答间隙)和ACK DEL(应答界定符)。CAN发送节点发出的ACK域为两个“隐性”位,当接收节点完成正确接收后,将会在ACK SLOT向发送节点发送“显性”位以示应答。发送节点回读到ACK SLOT呈显性状态时,就认为总线上进行了有效的应答。发送节点如果没有在应答间隙内检测到有效的显性位,则会判断总线应答错误,因此通信延时是影响通信距离的主因。整个线路传播延时必须足够小,以确保CAN发送节点在ACK SLOT内接收到有效的应答信号,以下讨论将围绕传播延时展开。
图1 CAN标准帧报文格式
CAN信号的整个传播涉及到的延时有控制器延时、收发器和隔离延时、线缆延时,信号流向及延时框图如图2所示。理论上必须使整个传播延时和Σt小于采样点位置,否则发送节点将接收不到正确的显性(Vdiff>0.9V)应答信号,导致通信异常,CAN总线显性应答延时说明如图3所示。
图2 CAN总线信号流向及延时框图
图3 CAN总线显性应答延时说明简易图
理论计算
通过上述原理分析,我们得出只有满足关系式Ts≥2*(t1+t2+t3),t3=L线长*(Cable delay),通信才能成功,将关系式进行转换L线长≤(Ts-2*t1-2*t2)/2*(Cable delay)。
经过我们实际测试我司的 CSM330A 的收发器和隔离延时t2=140ns,控制器延时t1=50ns,CSM330A在1M CAN波特率采样位置为75%*1us=750ns,实测RVSP通信线缆每米延时Cable delay=5.5ns。将数值带入上述关系式中得出CSM330A 在1M波特率下通信线长满足L线长≤33.6m。
现场测试
如何延长通信距离
视频中有延长通信距离方案,本文做简要概述。如图4所示为1M CAN协议传输距离简图,接入1个用CSM330A方案搭建的CAN_Repeater,通信距离可延长至66m如图5所示,接入n个CAN_Repeater后通信距离可延长至(n+1)*33m。
图4 1Mbps的CAN传输距离简图
图5 接入1个CAN_Repeater后传输距离简图
总结
-
- 得知各部分延时和采样位置后,我们可以通过关系式L线长≤(Ts-2*t1-2*t2)/2*(Cable delay)预估出来不同CAN波特率下的最大传输距离;
例如:波特率为10kbps,采样点在80%的CSM330A传输的理论距离为L线长≤(80000-280-100)/2*5.5≈7.2km。
通过CSM330A搭建的CAN中继模组有效延长通信距离,该中继模组稳定可靠、成本低、开发周期短,CAN_Repeater配套工程文档可在ZLG致远电子公众号上回复”CSM330A"获取。