在CANFD协议中,为什么会存在发送延迟?
?关注菲益科公众号—>对话窗口发送 “CANoe ”或“INCA”,即可获得canoe入门到精通电子书和INCA软件安装包(不带授权码)下载地址。
众所周知,CAN控制器发送信号时,是经过收发器后发往CAN总线后,再经过收发器反馈总线信号。那么发送过程中,控制器发送位信号到接收位信号就不可避免地存在环路延迟。发送延迟时间的总和如下:
CAN控制器内部产生TX信号到Tx引脚的传播延迟;
Tx引脚到收发器TxD引脚的传播延迟;
收发器环路延迟TxD到RxD;
收发器RxD引脚到CAN控制器Rx引脚延迟;
CAN控制器Rx引脚到控制器内部收到Rx信号的延迟。
CAN协议中规定:发送方发送位时,需检测接收到的位与发送是否一致,若不一致则产生错误帧(位错误)。如果发送延迟过长,则将直接导致发送与接收位不一致而产生错误帧。由于传统CAN协议规定最高波特率为1Mbps,即位宽1us,正常情况下,传输延迟不会超过位宽的采样点(当然具体延迟取决于收发器环路延迟、传输距离、传输线缆质量等),因此不会因为发送延迟而产生错误。
为什么CANFD要对发送延迟做补偿?
在CANFD中,数据段的波特率是比CAN更高的(BRS位为隐性时),此时波特率越高,位宽越小,在发送报文时发送延迟影响越大,越容易产生位错误。由于发送延迟无法避免,此时就需要一种机制来保证发送与接收的位对应上,以避免产生位错误。这种机制就是发送延迟补偿了。
1、CAN FD控制器延时
CAN FD控制器造成的延时可以从两方面分析:
软件延时:在应用进程中,主CPU将数据从CAN FD控制器中读写耗费的时间;
控制器延时:CAN FD控制器实现串行化信息所耗费的时间。
这个过程中与主控制器、CAN FD控制器、接口芯片等有关,通常情况下,延时在纳秒级以下,可以忽略不计。
2、隔离方式造成的延时
为了增加信号传输的可靠性,通常都会在CAN FD底层硬件设计中添加隔离设计。隔离器件的添加,带来一定的延时并影响CANFD系统容许的线缆长度。不同的隔离方式,延时效果也不同。
常用的解决方案有光耦+CAN FD收发器,如图5所示。图中光耦6N137具有典型的单向延时60ns,加上全部信号双向传输会造成240ns延时。
光耦+CAN收发器
相比上述分立器件的隔离方式,也可以采用隔离收发器的方案,例如,CTM5MFD采用磁耦隔离方式,延时时间在3~5ns。这种情况下,基本不会影响总线容许通信线缆长度。
CAN FD隔离收发器
3、收发器循环延时
循环延时指TXD引脚信号变化导致至RXD引脚信号变化的时间差。如图所示,可以测试TXD和RXD之间的循环延时。
CAN FD收发器循环延时由收发器本身的性能决定,传播延时最大可达几百纳秒。CAN FD收发器延时是CAN总线规范必测项目,选取性能高的收发器,可以有效降低传输延时,增加总线传输距离。
4、线缆传播延时
线缆是CAN-bus总线传输的重要介质,其长度也是影响通讯延时的重要原因。不同类型的线缆会造成不同的延时效果。通常情况下,导线延时为5ns/m,建议选择较粗的导线,线径越大,延迟越小,或者可以使用镀金、镀银的线缆(镀金的0.2平方毫米线相当于1.0平方毫米的铜线)。线径过小,其导线阻值过大,影响传输速率造成延迟。线缆的延时越小,CAN总线传输的距离越远。
综合上述介绍,我们可以总结出以下解决信号延迟的方案:
选择性能较好的CAN FD收发器和CAN FD控制器;
使用标准线缆,禁止使用电话线、网线等线径较小的线缆,必要时可选择较好材质的导线;
波特率一定时,传输距离过大,可以添加CAN FD网桥,降低导线传输延时。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!