信号速率与线缆长度的关系:CAN总线计时权衡因素

analog010   2010-2-25 11:07 楼主
作者:Clark Kinnaird,德州仪器 (TI)
有一个关于得克萨斯州民间英雄Pecos Bill的故事:那时,有人打赌他不能从从得克萨斯州的加尔维斯敦游过墨西哥湾到达弗罗里达州的基韦斯特。他训练了一个月,当这一天到来时他便一头扎进了墨西哥湾。Bill不分昼夜地游了一个星期,期间战鲨鱼斗飓风。最终,他离自己的目标越来越近。然而,当他在海浪中看到远处的基韦斯特时,他意识到他已经太累,无法再继续向前游了,因此他转身游回了得克萨斯!致力于CAN通信的设计人员就像Pecos Bill一样面对他们所遇到的种种挑战,往返信号传输成为一个重要的考虑因素。
当一个以上节点要在共用总线上发送信号时,控制器局域网 (CAN) 协议的一个关键特性就是如何处理总线争用问题。CAN使用逐位仲裁 (bit-wise arbitration) 来选择哪一个节点应该继续信号传输。由于这些节点对每一个比特位进行监听,并且必须服从于更高优先级的消息,因此它们的响应时间必须快到能够在破坏下一个比特以前终止传输。如下面三种情况所述,这就对容许组件延迟和线缆长度以及可用信号速率构成了一些限制。
情况 1:无争用正常CAN总线运行
通常每次只有一个节点要通过共用CAN总线通信。没有一般性损耗的情况下,我们来讨论一种二节点网络,然后再将这种讨论延伸至更多节点。图1描述了其工作原理。首先,两个节点都处于非占用状态,因此总线上没有差动信号,如(1a)所示。如果节点A开始通信,则其使用一个占用位启动一个CAN消息。向CAN收发器发送的传输数据 (TXD) 输入是一个逻辑0,其命令差动驱动器在总线线路上生成一个差动信号,如(1b)所示。节点A的接收机感应到该差动信号,并在已接收数据引脚 (RXD) 上输出一个逻辑0。差动电压根据 (1c) 和(1d) 所示双绞线对的传输线路属性进行传输。最终,差动信号到达节点B,节点B的接收机也在RXD上输出一个逻辑0,如 (1e) 所示。这时,节点B注意到节点A已经开始一个CAN消息,这样节点B便不会在节点A完成以前发起消息。

图1 A到B的正常信号传输
需要注意的是,节点B并非马上就知道节点A已经开始一条消息,因为从A到B的信号具有一定的延迟。这种情况下的总延迟为通过A处收发器(以及相关的隔离和缓冲电路)的延迟加上通过线缆的传输延迟,再加上B处收发器、隔离和缓冲电路的延迟的总和。乍一看,似乎这种单向延迟就是确保节点B不同节点A发送消息相冲突所需的关键计时限制。正如我们在情况2中所看到的一样,这并非故事的全部。
情况2:延迟争用,后发消息具有更高的优先级
我们的下一种情况(图2)假设,节点A再次发起一条消息,但是节点B在稍后发起的一条消息具有更高的优先级。如前所述,这种情况以两个节点均处在非占用模式作为开始,如 (2a所示,随后节点A变为占用(如(2b)所示)发起一条消息。该占用差动电压再次沿线缆传输。在信号到达B处的收发器以前,该节点刚好利用如(2c)所示占用位发起一条消息。这时,两个节点都正传输一个占用位,并且两个节点都正接收一个占用位(如(2d)所示),然后两个节点都没意识到另一个节点也已启用。由于在我们的假设情况中,节点A具有比节点B更低的优先级,因此有时节点A会通过将其TXD设置为0(如(2e)所示)来发出一个非占用位。但是,由于节点B的作用,RXD会感应到总线仍然处在占用状态下。

图2 延迟争用—B具有高优先级
通过研究某个具有实际延迟值的假设案例,我们可以更加具体地介绍这些计时要求。在我们的二节点例子中,设定总单向延迟为200ns,信号传输速率为1Mbps,也就是ISO 11898-2标准规定的最大值。这样,位时间便为1000ns。除节点B的第二位会是同节点A的消息优先级匹配的0(非占用)以外,其同情况2所述一样。(情况2中,节点B具有一个占用第二位,表明更高的消息优先级。)
图3中,节点A在时间t=0时开始一条消息,从而在总线(b)上传输一个占用位。如图2所示,其可能出现的情况是,节点B刚好在节点A的信号被接收到以前(c)开始发送,也即时间t=199ns。当时间 t=1000ns 的第二位开始之初,在节点A转到非占用状态以前两个节点都没意识到对方的有效性。然后,节点B在时间t=1199ns的第二位开始之初,转到非占用状态。另一个单向延迟以后,该非占用信号到达节点A,时间t=1399ns。只有在这时,节点A才读取RXD信号,并且可以确定其代表网络的真实状态。

图3 延迟争用—节点A和B具有相同的优先级
注意,只通过等到两倍单向延迟(或者相当于总双向传输时间)节点A才能判别这种情况,其中节点A和B的消息具有相同的优先级(情况3),以及节点B的消息拥有更高的优先级。由于CAN协议固有的逐位仲裁机制,这种双向延迟必须较好地位于一个位时间预算范围内,也即1000ns。否则,在第二个位仲裁完成以前,节点A就可能开始传送其第三个位。
信号传输速率及线缆长度限制
我们知道双向延迟至关重要,CAN定义可编程传输延迟 (PROP_SEG) 为每个位的组成部分,以保证每个节点在对总线数据采样以前都确实等待足够长的时间。PROP_SEG的计算涉及双向延迟和本地系统时钟频率相关知识,其超出了本文的讨论范围。实际上,PROP_SEG将采样点规定在约总位时间的5/6或者更低以照顾其他段,这样双向延迟便被规定为位时间的一小段。
CAN标准规定,线缆为5ns每米传输延迟,1Mbps信号速率时最大线缆长度为40米。位时间为1000ns时,最迟采样点(由PROP_SEG设定)约为850ns。线缆本身具有200ns的单向延迟(即400ns双向延迟),从而使收发器和相关电路的总延迟只剩约450ns。
CAN收发器的制造商通常规定“环路延迟”,其包括驱动器和接收机延迟。由于双向计算中涉及两个收发器,因此每个收发器都应有225ns或者更低的环路延迟,以支持1Mbps信号速率下40米的总线长度。如果收发器电路包括更多的组件,例如:隔离、电压电平转换或保护组件,则这些组件产生的延迟必须也包括在总延迟预算中。甚至,高速光耦合器一般具有40ns或更长的单向延迟,而全部双向信号都必须通过四个光耦合器。这就极大地缩短了使用光隔离CAN系统的容许线缆长度(即增加了位时间)。1Mbps条件下,即使快速光耦合器的延迟也会缩短容许线缆长度,计算方法如方程式 1:

下面显示了信号速率和线缆长度之间的权衡因素,以及收发器延迟带来的影响。收发器带来的延迟(包括相关隔离、电平转换和保护)对于500 kbps及以上的信号速率特别明显。

图4 收发器延迟影响信号速率和线缆长度的权衡
在单个封装(ISO1050)中的高速CAN收发器集成SiO2隔离现已上市。利用低于210ns的极限总环路延迟(包括驱动器、接收机和两个隔离信道!),您可以减少双向环路延迟,并简化您隔离式CAN解决方案的系统计时和设计。您还可以执行一个电平转换功能,将一个3.3V控制器的电压转换至5V CAN收发器,无需更多的延迟。
当然,在进行信号速率和线缆长度相关性能优化设计时还存在其他一些问题。网络的传输线路效应表明,负载、节点到节点间隔和短截线长度对系统的信号保真度和抗干扰性都很重要。本文结尾列举了较好的参考文献。
实验室数据例子
为了说明这些概念,可建立一个带有两个隔离CAN节点和50米线缆的实验室装置。我们预计单向线缆延迟为250ns,隔离收发器环路延迟约为150ns,即ISO1050标准的典型值。因此,节点A的采样点应约为比特开始以后的800ns,如图5所示。

图5 50米线缆的1 Mbps CAN信号速率
就1Mbps信号速率而言,在该比特结束以前,采样点留有足够的裕量,其表明使用快速收发器,40米以上的线缆长度是可行的。
总结
广大设计人员正在各种应用中使用CAN通信,他们需要了解计时限制和线缆长度权衡方法。信号链中每个组件都会影响总计时预算,同时必须考虑双向延迟以确保可靠的通信。使用如ISO1050等快速收发器可保证CAN信号按时完成双向传输,只有比Pecos Bill更快才能游过墨西哥湾。

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复