本帖最后由 24不可说 于 2017-8-30 20:21 编辑
CAN收发器的改良和隔离器件引入,大大提高了通信的可靠性,但同时也引入了额外的延时,导致通信距离变短,或总线错误帧增加,本文以1Mbps波特率下的应用为例,对CAN总线信号延时做简要分析。
CAN总线传输距离的相关因素
1、ACK应答
CAN 总线采用多主通信模式、非破坏式总线仲裁机制。以标准数椐帧为例,从结构上看分成7段,分别为起始段、仲裁段、控制段、数椐段、CRC校验段、ACK应答段、帧结束段,如图1所示:
ACK段长度为2个位,包含应答间隙(ACK SLOT)和应答界定符(ACK DELIMITER)。在应答场里,发送站发送两个“隐性”位。当接收器正确地接收到有效的报文,接收器就会在应答间隙(ACK SLOT)期间(发送ACK信号)向发送器发送一“显性”的位以示应答。发送节点检测到总线呈显式状态时,就认为有节点进行了有效的应答并且自己所发出的帧是正常的。
2、CAN总线位时间组成
CAN网络通信位定时参数如图2所示。
CAN 总线通信中每一位的时间由4 部分组成,即同步段、传播段、相位缓冲段1、相位缓冲段2,划分为3段。
同步段:用于总线诸节点之间的同步; 时间段1:由传播段与相位段1组成,传播段用于补偿信号的物理传播延时; 时间段2:即相位缓冲段2,相位段1 和相位段2 用于补偿沿的相位误差。
在实际控制器设计中,通过调整时间段1、时间段2 的值可以改变对总线传播延时的补偿时间。
3、CAN总线延时理论分析
由图1可知,发送节点在发完CRC 场之后,会发出一位应答隙,在这一位的时间内,接收节点应该输出显式位作为回应,发送节点如果在应答隙内没有检测到有效的显式位,则会判定总线错误,所以限制CAN 总线系统信号传播延时上限的根本条件就是必须确保发送节点在应答隙内接收到有效的应答信号。
为了满足这一根本条件,以 1 Mbit/s 波特率,单点采样模式为例,依据采样点在设置同步段、时间段1、时间段2 内的前后变化,当设置为75%位宽度时(即采样点位于距位起始的75%位宽度,为750 ns),在应答隙要使得发送节点采集到有效的显式位,理论上来讲,必须满足整个信号传播延时小于750 ns。即隔离器件、总线驱动器、线缆等的延时总和小于750ns才能保证应答有效。如图3所示:
CAN总线延时分析
首先,我们看CAN网络上节点之间通信的传播延时情况,如图4所示,t2、t5为收发器循环延时、t3、t6为隔离延时、t4、t7为CAN控制器处理延时,t1 为线缆传输延时。
以节点A发送,节点B接收为例,从CAN报文发出开始,到接收到ACK应答,整个应答回路延时为T总=(t1+t2+t3+t4+t5+t6+t7)*2,期间报文经过了4次隔离及收发器,两次线缆,若想提高传输距离,需对各个环节的延时时间进行分析。
1、隔离器件延时
为了提高CAN节点的可靠性,CAN底层硬件通常会使用隔离设计。常用解决方案有采用光耦+CAN收发器,如图5所示(6N137+TJA1051),光耦6N137具有典型的60ns单向延时,而全部双向信号必须经过4个光耦,总隔离延时达240ns,在位时间配置不变的情况下,大大地缩短了CAN系统的容许线缆长度。
图5 光耦隔离延时
或者采用隔离收发器方案如图6,CTM1051KT采用磁耦隔离,磁隔离延时3~5ns,在位时间配置不变的情况下,CTM1051KT自带隔离基本不会对容许线缆长度造成影响,可满足1Mbps速率下约36m的传输距离。
2、收发器循环延时
什么是循环延时?对于CAN收发器,是指从TXD输入的数字流被转换成相应的模拟总线信号,同时总线收发器监控总线,将模拟总线信号转换成相应的数字位流从RXD输出的过程。如图8所示:
CAN 收发器的制造商通常规定“循环延时”,其包括驱动器和接收机延迟。延时时间的大小是有收发器自身特性决定,以收发器TJA1051为例,从数据手册中可以看出,其最大传播延时为220 ns,最小传播延时为40 ns。图9为收发器循环延时对称时序图(tPD(TXD-RXD)为TXD发送显性上升/下降沿到总线并且反馈到RXD的延时),收发器循环延时是CAN总线规范必测的项目,选取性能较高的收发器,可减少传输延时,有利于增加传输距离。
图9 环路延时对称时序图
3、CAN控制器延时
软件延时:是应用进程中,主CPU将数据从CAN控制器中读出/写入并作初步处理所耗费的时间。
CAN控制器延时:是CAN控制器为实现接收/发送缓存器中的信息和串行化的信息的相互转化所开销时间。
软件和控制器导致的延时与具体应用、主控器、CAN控制器和接口芯片有关。考虑到总线控制器在设计时已经考虑到内部处理时间,所以延时应该在纳秒级以下,在此可以不计。
4、线缆传播延时
线缆的选型不同,其延时率也不同,传输的距离也会有较大影响,在CAN控制器、收发器、隔离等外围元器件确的情况下,如何计算线缆的通信长度呢? 若线缆的通信距离为L(以m 为单位)、通信速率为B(以bit/s为单位)、采样位置为P(如75%)、隔离器件传播延时为tg(以ns 为单位,如t3,t6)、收发器传播延时为tq(以ns 为单位,如t2,t5)、线缆传播延时为tx(以ns/m为单位)。
可以得到线缆通信长度的估算公式:L=[(1/B)•P–4(tg+tq)]/2tx
由公式可知:线缆延时率越小,在相同条件下,传输的距离越远,所以在线缆选型中,建议用较粗的导线(线径越大,延迟越小),或者使用镀金或者镀银的线缆。
在实际应用中,如何快速评估CAN网络的延时情况呢?使用电子CANscope做总线延时分析,测试结果如图10所示:
图10 CAN总线传输延时分析
总结
隔离器件等外围电路的引入和收发器增加长时间显性关断功能等,都增加了CAN总线的延时时间,导致了越新型的收发器,回环延迟加大,减少了实际通讯距离。若想增大CAN总线通信距离,必须了解CAN通信的原理及信号线传输的原理,通过提高收发器、隔离器件的性能和线缆的选型来减小CAN信号传输的延时时间,从而提高实际通信的距离。
|