有一个关于得克萨斯州民间英豪 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 更快才干游过墨西哥湾。
发布者:小宇