隔离型CAN收发器的延时分析
CAN总线采用了多主竞争式总线结构,采用非破坏性仲裁技术,当两个节点同时向总线传输数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响继续传输数据,由于这些节点对每一个位进行监听,并且必须服从于更高优先级的消息,因此它们的响应时间必须快到能够在破坏下一个比特以前终止传输。
1Mbps速率下,总线竞争分析
以下通过实际例子对总线状态进行分析。由于实际组网中,节点之间通过线缆连接,数据的发送、接收及传输都会有一定的延时。CAN系统设计时,就需要考虑延时对系统的影响。现假设一个CAN网络,只有A、B两个节点,A、B之间的总单向延时为200ns,即为A到B,或B到A的发送、传输及接收延时的总和。信号传输速率为1Mbps,即位时间为1000ns。
如图1所示,节点A在时间t=0时开始发送一条消息,从而在总线(2)上传输一个显性位。有可能出现的情况是,节点B刚好在节点A的信号被接收到以前(3)开始发送,也即时间t=199ns。当时间t=1000ns,节点A第二位开始之初,在节点A转到隐性状态以前(4)两个节点都没意识到对方的有效性。然后,节点B在时间t=1199ns的第二位开始之初(6),转到隐性状态。另一个单向延迟以后,该隐性电平才到达节点A,时间 t=1399ns(8)。只有在这时,节点A才能读取RXD信号,并且可以确定其代表总线的真实状态。
从分析可知,只有通过两倍单向延时,节点A才能够判别总线的真实状态。由于CAN协议固有的逐位仲裁机制,这种双向延迟必须较好地位于一个位时间预算范围内。否则,在第二个位仲裁完成以前,节点A就可能开始传送其第三个位。
图1
为保证节点每位采样到的总线电平都是总线的真实状态,CAN的每一个位时间都定义一段时间,用于补偿双向延时,即PROP_SEG传播段。总传输延时必须小于PROP_SEG的设定时间,而采样点在PROP_SEG之后,保证每个节点在对总线数据采样以前都确实等待足够长的时间,使采样数据正确。(PROP_SEG为位时间配置的范畴,超出本文范围,如需要更深入的了解,请查阅相关的文献。)
CAN 标准规定,线缆的传输延迟为5ns/m,1Mbps信号速率时最大线缆长度为40m。通信速率为1Mbps,即位时间为1000ns,PROP_SEG设定为650ns时,由于线缆本身具有200ns的单向延时(即400ns的双向延时),从而使收发器和相关电路的总延迟只剩约250ns。也就是说,如果CAN底层硬件的传输延时只要小于250ns,线缆长度即可达到40m。
CAN收发器的循环延时
CAN 收发器的制造商通常规定“循环延时”,其包括驱动器和接收机延迟。由于双向计算中涉及两个收发器,因此每个收发器都应有125ns或者更低的循环延时,以支持1Mbps信号速率下40m的总线长度。如果收发器电路包括更多的器件,如隔离、电平转换或保护组件,这些器件产生的延时也必须包括在总延时预算中。
CAN隔离方案对总线传输距离的影响
在实际使用中,为了提高CAN节点的可靠性,CAN底层硬件通常会使用隔离设计。常用解决方案有采用光耦+CAN收发器,如6N137+TJA1051,图2;或者直接使用隔离收发器,如CTM1051KT,图3。
图2
图3
若采用图2的隔离方案,光耦6N137具有典型的60ns单向延时,而全部双向信号必须经过4个光耦,加上单个TJA1051约120ns的典型循环路延时,总的循环延时达到480ns。在位时间配置不变的情况下, 1Mbps速率实际只能传输约17m的距离,这样大大地缩短了CAN系统的容许线缆长度。
而采用图3所示的隔离方案,单个CTM1051KT的循环延时典型为130ns,与单个TJA1051的循环延时基本一致,在位时间配置不变的情况下,CTM1051KT自带隔离基本不会对容许线缆长度造成影响,完全满足1Mbps速率下约40m的传输距离。
总结
若想从硬件底层着手,在通信速率不变的情况下,增加CAN通信的距离,必须了解CAN通信的原理及信号线传输的原理,尽量减小CAN信号传输的延时时间,从而提高实际通信的距离。
隔离型CAN收发器延时分 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)