CAN协议已经应用了大概20年,由于其误差控制功能、低延迟、全网总线访问优先权和即时的位监控[TIND95],它也成为许多小的局域网络应用程序的重要部分。除了上述重要特征外,CAN还可以提供其他出色的控制功能来恢复帧错误(包括填充位错误和CRC错误),在此对于这些错误不再赘述,读者可以参考规范[CAN91]。
在汽车、机器人、过程控制、生产制造等中,许多重要的应用程序都使用这些功能,这一点可以从世界范围内大量基于CAN的应用程序中看到。然而这并不是说CAN已不再需要改进。如果CAN可以速度更快、覆盖更远的距离、更具有确定性并且更加可靠,那么应用程序设计人员将会更加高兴[PROE00]。事实上,由于CAN有限的可靠性功能,对于CAN协议经过适当改进后是否可以支持安全关键型的应用程序,现在还存在争议[PIME04b、KOPE99]。
本章的目的有两个:首先描述CAN的局限性,即大且可变的抖动、时钟同步的缺乏、有限速度-距离的产品、灵活的局限性、数据一致性的问题、有限的错误控制以及有限的容错支持;其次讨论最近的开发和研究——为了克服这些局限性而正在进行的开发和研究[BARR06a、RUFI98、FERR05a、FERR06、PIME04b、FUHR00、BROS03a和RODR06]。
6.1.3.1 大且可变的抖动
CAN网络最有趣的特征之一就是带宽有效的仲裁机制,该机制以网络范围的固定优先级为基础,根据一个载波侦听多路访问(CSMA)协议允许每个节点在任意时刻传送信息。然而,该特征也有一个负面影响,即会造成一个庞大网络延迟抖动。这是由于没有传输时间的同步性,当试图传送信息时任何节点都会遇到来自更高优先级流量的所有可能的干扰模式。通过使用全局同步和相对偏移量的调整,可以控制该抖动,有时甚至可以消除该抖动。
6.1.3.2 时钟同步服务的缺乏
正如上面所指出的,一个全局同步的可用性有助于控制抖动。这种同步功能和分布式嵌入系统的其他重要功能可以依靠一个时钟同步服务。不幸的是,CAN标准并不包括这样的服务。因此,每当一个基于CAN的分布式系统需要一个同步时钟时,它必须在应用程序级别提供。尽管也已提出了硬件实现的方法,但这通常是通过一个软件实施的时钟同步算法来实现的。
6.1.3.3 有限速度-距离乘积
该类局限性在共享串行数据网络中很典型,但它在CAN中尤其严重,这是由于CAN在传送时依赖于时间位监控,这种功能有时被称为位响应。在CAN中,电信号必须在很小一部分时间内在整个网络中传播。因此,网络越长,位时间也必须越长。典型值是:约40m的网络对应传输速率为1Mbit/s,而1km的网络对应传输速率为50kbit/s。可以在克服这一局限性的同时保持标准的兼容性,例如,通过不同的拓扑结构(如星形[BARR04]),可能的话也可以通过分割来实现(如使用开关)。
6.1.3.4 灵活的局限性(www.daowen.com)
在上面提到的几乎所有维度的灵活性中,CAN通常被认为是一个高度灵活的协议。然而,它的仲裁机制是以信息标识符为基础的,而这些信息标识符建立了信息优先级并且在整个系统中它们必须是唯一的。因此,分配给信息的标识符(ID)强烈影响着通信的时效性,并且促使了一个全系统的固定优先级信息调度方法。如果需要有比固定优先级调度更高的公平性,或为了在不对传输时效性造成严重后果的情况下更容易地分配ID,那么其他机制必须被添加到CAN中,例如,ID的动态更新或通过传输控制调度外部信息。此外,隐含信息动态变化的各种灵活性设置了与时效性的冲突。将这种灵活性和时效性相结合需要增加一个接收控制单元。该单元可以验证所有提交的变化,并且拒绝所有会违背时效性的变化。
6.1.3.5 数据一致性的问题
不一致的通信场景是实现CAN高可靠性的最大障碍之一。这些场景的发生是由于特定的协议规定,并且它们可以表现为不一致的信息遗漏(IMO),即一些节点接收一个给定信息而其他节点没有;也可以表现为不一致的信息复制(IMD),即一些节点多次接收相同信息而其他节点仅接收一次。不一致的通信场景使得不同形式中的分布式一致更难以实现,这些形式如组员关系、时钟同步、配置一致承诺的更改或异步事件的简单一致感知。
6.1.3.6 有限的错误控制
尽管CAN有一个基于错误计数器的内置错误控制机制——该机制能带来网络控制总线处于关闭状态,但是CAN仍然在这种情况上存在一些局限性。局限之一是内置机制反应缓慢,它取决于错误发生的频率和类型。其他的局限性来自总线拓扑结构(正如标准中指定的),因为错误发生在节点接口、总线线路或连接处,它们通过网络自由传播,会对正确的传输造成干扰——这也可以通过共模故障的方式发生在复制总线上。解决该局限性的一个可行方案是在物理层上分割网络,例如使用星形拓扑和点对点连接。最后,另一个局限性是关于错误信息的传输,这些信息的值与时间点存在错误,却有一个正确的框架。CAN不存在对于包含这种错误的传输的保护。在时间域中这种类型的典型故障是混乱故障,其中的一个节点比预期的更频繁地发送信息,它强烈干扰了其余节点的传输。对该类故障的预防可能包括特定的硬件支持,如一个总线监控器,即将一个设备连接到一个节点来验证所需的发送、对不及时信息的阻止以及高层协议对节点发送时刻的限制。
6.1.3.7 有限的容错支持
对安全性要求苛刻的应用程序需要很高水平的可靠度(通常是可靠性)。为了达到这一水平,必须使用容错技术。对容错功能的广泛支持在大多数现场总线网络中并不是一个共同的特点。CAN早已提供了先进的机制,防止一些错误导致一般的系统故障,甚至一些具体CAN收发器实施了几种机制,能够容忍通信链接中特定永久性故障。然而这些机制对安全性要求苛刻的应用程序是不够的。需要额外的机制来容忍节点故障和总线永久故障(即支持节点和总线复制)。
本章的其余部分编排如下:在6.2节中,鉴于数据一致性的重要性和对可靠性的影响,我们详细回顾了数据一致性方面的特定话题。然后,在6.3节中,我们介绍了研发的一套技术和协议来提供在没有减低灵活性的前提下提高可靠性,这些协议包括(Re)CANcentrate、CAN-增强层(CANELy)、灵活的时间触发CAN(FTT-CAN)和FlexCAN。这些技术/协议覆盖了各种层面的典型现场总线网络,(Re)CANcentrate主要在物理和数据链接层面操作,CANELy专注于数据链接问题,且部分关注于更高的层面;FTT-CAN与FlexCAN作为两个较高层面的网络协议,它们可以在商业上现成的(COTS)CAN控制器上操作。最后,本章归纳了对其他一些协议的参考,这些协议与可靠性和灵活性的话题有关,然后给出结论。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。