2023-10-19
硬核干货 | 以太网10Base-T1S和CAN XL到底有哪些区别? 一文总结4大物理层差异
作者:trivd 点击:207
CAN XL的发展和推动源自近些年电子的迅猛发展和技术需求激增,但面对10Base-T1S以太网,许多工程师对于两者的差异感到疑惑。以太网10Base-T1S和CAN XL究竟有哪些区别?两者是相互补充还是替换关系?
针对这些问题,Kvaser研发经理Kent Lennartsson撰写了本篇文章,本文将从物理层的角度探讨两者的差异,比较两种协议如何处理关键问题,内容包含如何确保访问媒介的安全,如何定义比特率,如何找到用户数据的开始和末端,以及不同协议如何防止帧错误传输。
CAN XL和以太网定义了可以通过物理介质发送数据链路层帧,从这个层面上讲,它们之间没有区别。人们都希望可以使用单一方法来解决所有问题:为什么不直接使用以太网来处理所有的车载网络呢?但每个解决方案都有其优缺点。CAN XL、以太网或其他通讯技术在细节上均有不同,包括:
◆ 如何确保访问媒介的安全?
◆ 如何检测帧的开始并同步到接收器?
◆ 如何定义比特率?
◆ 如何找到用户数据的开始?
◆ 如何找到用户数据的末端?
◆ 如何防止帧传输错误?
传统CAN的设计目的是在高层协议的有限支持下提供自主通讯。CAN从未声明过自己是通用的,CAN是为了以一种简单、安全、可靠且低成本的方式处理实时信息而开发的。为了优化这个实时通讯,有必要接受通用OSI层模型之外的某些约束和扩展:
◆ 可预测的接入网络; CAN仲裁
◆ 传输重要数据时的短暂延时; CAN优先级
◆ 短帧, 减少延时; 传统CAN中的8字节数据帧
◆ 所有节点同时对相同的信息进行评估; 报文在CAN网络中广播
上述的最后一个要点是指所有用户在同一实例及时接收数据帧。这个问题的简单解决方案是在一个单一公共介质上发送和接收所有信息,为了实现这一功能,CAN被限制为单一通讯。使用全双工通讯,任何节点都可以在任何时间发送,因为通讯介质始终是可用的。
100Base-T1解决了这个问题,使用点对点(P2P)通信与一个单一的媒介,其中传输媒介可以接收信号(其可接收量需要减去发送的能量)。这需要在收发器中进行相对复杂的过滤,因此,在这个通用媒介上仅添加一个单元时,就过于复杂了。在信息采样和用户使用信息之间的路径中总是存在延迟。如果这种延迟有一个安全限制,就可以使用P2P和交换机,就像今天的以太网一样,将数据传播给所有用户。这样的解决方案更复杂,而且开关增加了成本。CAN本质上为所有安装的设备提供了一个具有低时序抖动的公共数据库。
图1: 带有2个Kvaser M.2接口的Linux计算机与两个CAN接口连接到左边的短CAN网络(M.2接口是Kvaser即将推出的新品。在工控电脑PCIE槽不够的情况下,可以使用M.2接口的板卡增加CAN通道数)
针对第三个要点,为了及时获得具有有限扩展的帧,可以通过两种方式解决:具有少量比特的帧和短帧(高比特率)。在计算机领域,最常见的解决方案是提高时钟频率(比特率)。电缆本身可以处理500 Mbit/s,但电缆质量、连接器和垂直线会破坏连续性并导致振铃,从而限制了可用的比特率。除此之外,CAN XL使用仲裁进行总线访问,这在数据包传输的第一阶段要求较低的比特率。一开始,10Base2以太网也是基于多点网络,但为了减少电缆的复杂性,所有超过10 Mbit/s的解决方案都使用P2P与交换机/网桥的结合。为了降低CAN电缆复杂性和成本,有必要使用尽可能低的比特率。CAN XL允许从0.125 Mbit/s到20 Mbit/s范围内选择比特率,使您能够在电缆预算内实现最高的性能。在费用方面,10Base-T1S和CAN XL之间没有太大的差别,但CAN XL的仲裁速度较慢,会增加帧传输的时间长度。当在CAN XL中使用较长的电缆时,同样的概念要求在仲裁阶段使用较低的比特率。
第二个要点是如何快速访问通讯媒介。最好的解决方案是使用一种媒介,任何信息都可以在不考虑其他发送者的情况下开始发送。100Base-T1在一定程度上解决了这个问题,它在节点和交换机之间提供全双工,但这只是将接入问题转移到了交换机上。如果两个节点开始向一个接收节点发送一个帧,交换机必须存储其中一个帧,因为它不能同时发送两个帧。以太网对此问题的基本解决方案是CSMA/CD(载波侦听多路访问/冲突检测),这意味着“如果媒介是可用的,任何信息都可以开始发送,如果检测到冲突,停止发送并等待一段随机时间,然后返回CSMA/CD”。这对于办公室局域网和互联网来说很好,因为只要不显著延长下载时间,罕见的间歇性延迟是没有问题的。在实时系统中,所有的延迟必须在生命周期内限制在一个确定的时间长度内。为了解决这个问题,有必要定义一些规则,以确保所有单元按照一定的顺序进行传输,从而保证在一定的时限内接收到所有的帧。TSN(时间敏感网络)标准中定义了这样一组规则。CAN XL使用CSMA/CR(碰撞分辨率)解决了这个问题,唯一的区别是碰撞不是破坏性的。通过这种方式,具有最高优先级的数据包将占据媒介,所有其他发送方将接收该帧并循环CSMA/CR过程。
图2:Kvaser M.2接口(即将推出的新品),左边是CAN XL IP核;右侧第二个M.2槽位用于安装SSD。
第一个要点是如何在不损害通讯包的情况下解决冲突。如第二个要点所述,这可以通过用CSMA/CR取代以太网中使用的CSMA/CD来解决。如果通讯介质(CS)上已经有帧,则没有发送器会发送帧。但是,如果介质空闲,任何信息都可以开始发送帧。因此,有可能两个或更多的单元同时开始发送数据帧。
每次CAN解决一个比特的冲突,这样如果一个单元正在发送一个隐性位“1”,并且它读回一个显性位“0”,它将返回并停止发送比特。这就是所谓的逐位仲裁:几个比特进入CAN数据帧,只剩下一个发送方,获胜的单位完成整个CAN数据帧的传输。这个很好的特性是伴随着代价的,因为在所有节点回读并检查采样位值之前,CAN位需要时间让信号稳定下来。最短的CAN位等于最长延迟乘以2,再加上一些针对时钟变化和噪声的相位裕量。在1 Mbit/s时,比特内的时间预算为1000 ns。为了保护采样点不受随机相位噪声的影响,建议使用10-%的相位裕量,从而将可用比特时间减少至800 ns。节点中0.5-%的振荡器容差可能导致0.5%/bit x 10bit x 2 = 10%的相位偏移,这可以进一步将可用比特时间减少到600ns。CAN收发器延迟通常低于200 ns,将可用比特时间降低至200 ns。对于5 ns/m的电缆延迟,电缆也必须受到限制;200ns / (2 x 5 ns/m) = 20m,现代收发器可将延迟降至50ns,结合良好的振荡器,可以将总相位裕度降至CAN位长度的10%。然而,为了提高比特率,有必要进一步减少延迟,唯一的主要选择是减少电缆长度。
为了在CAN网络中达成更高的比特率和更长的电缆,需要一种不同的方法。从上面的描述可以看出,只有在仲裁期间才需要低比特率。一旦一个发送方胜出,比特率仅受CAN收发器压摆率和电缆布局(阻抗变化)的限制。巧妙的是,CAN XL在仲裁阶段以与电缆长度(延迟)匹配的较低比特率开始,一旦只有一个发送方,它就切换到较高的比特率。在底特律举行的CiA组织的plugfest期间,我们在30米的距离上以20Mbit/s的速度运行CAN XL。通过精心设计的电缆布局,应该可以实现20Mbit/s以上的速度。
总结及展望
CAN XL是对传统CAN和CAN FD的进一步扩展,并缩小了CAN/CAN FD与以太网之间传输速度的差距。针对组件公差要求低、有限软件、使用低成本电缆的应用领域,CAN也能很好地适用于实时控制。总的来说,10Base-T1S和CAN XL各有优势,并且将来这两种协议有可能在同一个车载网络的不同应用中使用。通过适当扩展协议层,将为应用程序提供更多的可能性。
Kvaser积极参与CAN XL相关标准制定工作,并已经在CAN XL plugfest中获得成功,后续我们将进一步与大家分享CAN XL的最新消息和Kvaser CAN设备的相关动态。