为了确保运行时交换数据的“新鲜”[4]和及时将命令交付执行器,媒介访问控制(MAC)协议能保证信号帧的有限响应时间是至关重要的。一个拥有此能力、高效且概念简单的MAC方案,确保根据传输信息的优先级访问总线(读者可以参考文献[30,31]和第13章了解如何计算优先总线上的响应时间范围)。为此,每条信息都被指定一个标识符,此标识符在整个系统上都是唯一的。这么做有两个目的:给出传输优先级(数值越低,优先级越高),并允许接受信息后过滤。这样的“优先总线”的两个主要代表是CAN和J1850。
4.2.1.1 CAN
毫无疑问,CAN是使用最广泛的车载网络。它由博世公司在20世纪80年代中期设计,用于车载ECU之间的多路通信,并因而减少了总的线束:导线长度和专用线数量(例如,与非多路传输的标致306相比,嵌入了两个CAN总线的标致307的导线数量减少了40%,从635条降至370条[32])。此外,它允许在ECU之间共享传感器。
基于双绞铜线上的CAN在1994年成为ISO标准[20,33],并且由于其低成本、鲁棒性和有限通信延迟,所以现在欧洲汽车应用上的数据传输,它是事实上的标准[3]。在如今的汽车中,CAN被用作SAE的C类网络来进行动力总成和底盘域的实时控制(在250kbit/s或500kbit/s),但是它也被用作对于车身域电子设备的SAE的B类网络,通常数据传输速率为125kbit/s。
在CAN中,可能存在数据被分段成数帧,定期、不定期或按照需要(即客户端/服务器模式)传输。一幅用标识符标记的CAN数据帧在1帧内传输,且它的标记符数值决定着帧的优先级。CAN使用非归零(NRZ)位代表一个长度为5的位填充。为了不失去位时(即同1帧的连续两个位传输之间的时间),站点需要定期重新同步,且这个过程需要放在信息的边沿上。位填充是一种编码方法,当使用非归零位表示总线上的信号电平时,它能使其再同步,且可以在一个较长的时间段内维持常数(例如,传输“000000…”)。边沿生成后进入传出位流,以这样的方式来避免传输超过最大数的连续的、相同水平的位(对于CAN,最大数是5)。接收器将应用逆过程,并去掉填充帧。对于一个包括所有协议处理如填充位在内的(至多为)135位数据来说,标准CAN数据帧(CAN 2.0A)最多可以包含8B的数据。对帧格式和总线访问内容感兴趣的读者,可以参见第13章内容。CAN总线访问仲裁程序基于这一事实:就是当传输时,一个发送节点监测总线。信号必须能够传送到最偏远的节点,并且在位值确定前返回。这要求位时至少等于两倍的限制数据传输速率的传送延迟;例如,1Mbit/s在最长40m的总线上是可行的,而250kbit/s可以在超过250m的总线上运行。为了减轻数据传输速率的限制,并且进一步延长CAN的使用寿命,汽车制造商已经开始实施“流量整形”这一在响应时间方面非常有益的策略;这部分内容在第14章中介绍。
CAN有若干种失误检测机制。例如,可以检查出:帧中传输的循环冗余校验(CRC)和在接收端计算得到的CRC相同,帧结构是有效的且没有发生位填充错误。每个站检查到一个错误就会发送一个“错误标志”,它是一个特定类型的帧,由六个连续的优势位组成,且这些优势位使总线上的所有站都觉察这个传输错误。损坏的帧将自动进入下一仲裁阶段,额外的延迟可能导致它错过它的截止期限。错误恢复时间定义为从检测出错误到新1帧开始的时间,是17~31个位时。CAN拥有某种故障隔离机制,来确定在微控制器、通信控制器或物理层级别上由硬件产生的永久性错误。该方案是基于误差计时器,这些计时器根据特定事件(如成功接收1帧数据,接收到损坏的1帧数据等)来增长和减少。所涉及算法的相关性是值得质疑的[34],但其主要的弊端是一个节点必须自我诊断,而这可能会导致一些严重错误无法被检测到。举例来说,一个错误的振荡器可以导致一个节点连续传送一个优势位,而这是一个“低级错误”表现(详见第6章)。此外,其他错误,如把网络分割成多个子网,由于在端点处不好的信号反射而可能阻止所有节点的通信。在没有额外的容错设施的情况下,CAN不适用于安全性至关重要的应用场合,如未来的线控系统。例如,一个单一的节点可以通过发送规范外的信息(即帧的长度和周期)来干扰整个网络的运作。为了提高基于CAN的网络的可靠性(第6章),提出过许多机制,但是,如果每个方案只解决一个特定的问题,那么它们并不需要设想组合起来。此外,这些机制的设计中使用的故障假设不一定相同,并且它们之间的相互作用仍有待正式研究。(www.daowen.com)
CAN标准只定义了物理层和数据链路层(DLL)。例如,针对规范启动程序、实现数据分割或发送定时消息,已经提出了几个更高级别的协议(见4.3节中的AUTOSAR和OSEK/VDK)。其他更高级别的协议规范了消息内容,以减轻ECU之间的相互操作性。比如,J1939列举的在斯堪尼亚卡车和公共汽车上的案例[35]。
4.2.1.2 VAN
汽车局域网络(VAN)[21]和CAN很相似(例如帧格式、数据传输速率),但它具有一些附加的或不同的功能,从技术的角度看,这些功能是有用的(例如,没有必要的位填充与帧响应:一个被要求数据答复的节点,在同1帧数据中包含了请求)。VAN过去曾多年被法国汽车制造商标致-雪铁龙用于汽车车身域产品中(例如,206车型),但是由于它没有被市场所接受,所以被淘汰,取而代之的是CAN。
4.2.1.3 J1850网络
J1850[19]是一个SAE的B类优先级总线,它在美国曾被用于非严格实时性要求的通信中,如控制车身电子或诊断。J1850的两个衍生型定义为:一个传输速率为10.4kbit/s的单线版本和一个为41.6kbit/s的双线版本。新的设计趋势似乎是用CAN或一个像LIN(参见4.2.3.1节)这样的低成本网络来代替J1850。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。