浅谈车载以太网2-CAN总线和车载以太网

上一篇简单介绍了车载和传统以太网的区别,还有车载以太网物理层的特点。今天书接上回接着往下简单聊聊传统车载通信总线,也顺带补充一点车载以太网的特点,以及为啥要将以太网引入汽车。

要说车载通信总线系统,先得说说总线,我们每天聊总线系统,Bus system, 那么到底什么是Bus。说起这点想起好多年前一次在武汉的某个学术会议,我做了一个关于统一接口多总线系统的英文报告,讲完到了问题环节,有点冷场,主持会议的朋友(估计不是本行业的)问了我个问题#What is the difference between bus system and train system?# 差点把我问住了。隔行如隔山,我就简单说了下此Bus非彼Bus。

在总线系统来说,BUS 其实是 Binary Unit System的缩写。是指多个节点通过线或者线束共享传输二进制数据的通信系统。如果把有通信需求的节点设备看成一座座城市,则可以把数据看成乘客,数据包看成是巴士。以这种观点,确实可以把总线系统看成一个巴士系统,当然这个比喻也完全可以换成高铁系统。

回到传统车载总线,第一篇的时候聊到传统以太网发起于上世纪70年代的美国,已经年近五十,老当益壮,传统的车载总线系统要年轻一点,CAN总线是博世公司在1983年开始开发的,和我差不多同年龄,已经是个要对抗油腻的中年欧吉桑了。LIN总线则是个90后,起源于1998温泉小镇巴登巴登的一次汽车电子会议,小巧轻快。Flexray则更年轻是个00后了,但她却是含着金钥匙出生的,这个后面再说。这几种总线无一例外都是由德国汽车巨头们主导,一流的公司出协议,同行们加油,期待汽车行业的华为出现。

CAN总线作为最主流的车载总线通信系统,从80年代末到现在已经风云叱咤了30多年了,主要负责的就是传输汽车上的信号数据,比如温度,位置,发动机转速,等等不太需要很多带宽的数据。但是近些年来,随着ADAS,辅助自动驾驶和Infotaiment的发展,未经压缩的高清视频,音频流数据被越来越多的集成在车载环境中。数据变得更加复杂,巨量,升级迭代更加频繁,而且要求高速省时,要求也越来越多,必须要有一种能够提供更大带宽,兼容各种协议,且能够更加灵活强大的通信系统,这就引出了车载以太网,我打算在后续的文章中逐步展开聊车载以太网,这里还是先说车载总线。

还是回到上世纪80年代,随着电子科技的发展,汽车内部的电子器件,单片机蓬勃发展,各个小系统需要互相通信,普通的点对点连接将需要大量的线缆,这样会增加重量,也会增加故障率。而总线系统可以共用一根双绞线,就能通过合适的协议实现各种终端小设备之间的互通。

 

浅谈车载以太网2-CAN总线和车载以太网_第1张图片

总线结构有诸多好处,但是也有自己的问题,比如线缆是大家共用的,就需要依靠协议来监测和避免传输冲突,分享带宽。而点对点组成的星形或者树状网络,每两点之间的连接都是私人订制且独占的,不会发生冲突,切独享带宽。所以要根据需求具体分析。现行的汽车内通讯就是LIN,CAN,Flexray和以太网相互配合,在合适的场景下使用合适的技术,达到成本,速度,重量等要素的平衡。

1. CAN总线

CAN总线通过双绞线上的差分电平来传输信号,电缆两端要加120欧的终端电阻抵消阻抗。传统的CAN总线根据不同的信号电平可以实现低速和高速两类传输,实现62.5Kbps到500Kbps,甚至1Mbps的传输速率。 

浅谈车载以太网2-CAN总线和车载以太网_第2张图片

不像以太网的节点设备,拥有自己的MAC地址甚至IP地址,也不像一些有主从等级的总线或者网络,CAN总线的节点是平等且没有节点地址的,这是一个非常聪明的人设,这样无论哪个节点坏了,其他节点和网络都生活继续,离了谁都能过。而且添加新的节点设备也不会对其他现有的节点有任何的影响,也就是所说的即插即用。根据所选的Tranceiver不同,可以挂载到100多个节点设备,不过除非实验室环境和一些特殊场景,一般车载场景不会达到这个级别的节点数。传输速度选的越慢,一位数据的时间宽度越大,可以达到的总线距离也就越长,不过车里面10几米也就够了。

节点没有地址,没有主从,CAN总线的协议是依靠信息数据帧的ID来解决传输冲突问题的。有的地方把这宗方式成为Bitwise Arbitration,也有说是Non-destructive Arbitration的,总得来说就是通过仲裁,想要发信息前,所有有传输需求的节点同时报自己的信息优先级,也就是信息ID,高优先级的信息将获得总线的使用权,低优先级的信息则等待下次机会。信息的ID数值越低,优先级越高,发送ID的节点通过AND“与运算” 淘汰掉低优先级的信息发送机会。

这使得高优先级的信息总能得到发送机会,而避免了冲突,所以也有称这类方式为CSMA/CA(载波侦听多路访问/冲突避免),CA就是Collision Avoid的意思。

CAN总线主宰车载通信已经30多年,虽然没有以太网历史悠久,但是这位二哥以可靠,低成本著称。但随着汽车电子的发展,以及汽车新四化的兴起,CAN总线的速率劣势开始显现,CiA也因此开始推出新一代的CAN FD和次世代的CAN XL来面对新的传输需求。但是CAN总线到底是方兴未艾,还是大限将至,这个可能只有靠时间去验证。

现在大家越来越长听到的CAN FD,CAN FD中的FD的意思是Flexible Datarate,就是说数据传输速率灵活可变。CAN FD的信息头格式和速度和普通CAN总线是一样的向后兼容。传统CAN总线因为不想让一个信息长期占据总线,所以对数据帧的长度有要求,数据Payload也不会太长,一般0到8个字节,而CAN FD在发送Payload的时候可以变换数据传输速率,这样就可以在短时间内传输更多的数据,既向后兼容,又增加了带宽。可以把CAN看成一辆普通自行车,CAN FD看成一辆变速自行车,发送数据的时候CAN FD可以选择加速疯狂发送数据,平时回复到普通速度。因此在不太加长帧时长的情况下,CAN FD的数据加载量更大,可以达到64字节,传输速率可以达到5Mbps甚至更高一点。

浅谈车载以太网2-CAN总线和车载以太网_第3张图片

但是CAN FD也有自己的局限性,它对拓扑结构有限制,设计自由度较低,为了弥补这点,同时应对车载以太网10BaseT1s, CiA开始推出第三代CAN总线 CAN XL。CAN XL的速度达到了10+Mbps的速度,向后兼容CAN FD,但速度并不是一切,通过增强的CRC,CAN XL实现了更高的传输安全性。从故障中回复的速度是20微秒级别,比以太网的几十毫秒级别,要快的多。CAN XL支持传输2048字节数据,这使得把IP数据包打包入CAN数据帧成为现实。这也就使得CAN总线开始支持更多更广的上层协议。但是感觉CAN XL似乎在开发和发布上比10Base T1s慢了一步,让子弹飞一会儿吧。

CAN总线依靠仲裁传输的模式有它nice的一面,也有but的一面。虽然优先级高的信息总能发出,但这也意味着没有优先级的信息总有可能等待,在一些需要循环重复发送的信息场景下,CAN就不那么实用了,篇幅有限,下回再细聊Flexray是一种什么样的解决方案。

谢谢,码字不易,欢迎点赞收藏。本文首发于零束开发者论坛。

https://bbs.z-onesoft.com/omp/community/front/api/page/mainTz?articleId=7659icon-default.png?t=LA92https://bbs.z-onesoft.com/omp/community/front/api/page/mainTz?articleId=7659

你可能感兴趣的:(以太网,网络协议,can)