20年后,会令你失望的不是做过的事,而是你没做过的,所以解开帆索,从安全的港湾出发,乘风而行,去探索、去梦想、去发现!
Twenty years from now you will be more disappointed by the things that you didn’t do than by the ones you did do. So throw off the bowlines. Sail away from the safe harbor. Catch the trade winds in your sails. Explore. Dream. Discover.
- 美国文学作家 Mark Twain 马克·吐温
推荐理由
一直以来,CAN
总线在汽车行业通信方式上一直是大哥大的存在,无人能出其右。CAN
总线的优点很多,然而缺点也很明显,就是速率太低。由于在智能驾驶、智能座舱、车联网等领域对传统汽车的改造,对速度的要求就更高了,CAN
明显心有余而力不足。
虽说汽车行业也为此弄了些协议来加速,但是多以失败告终,甚至在本文不配拥有姓名。在传统通信行业扎根多年的老巨头 以太网
看不下去了,稍加改造便在汽车通信协议里称为香饽饽。与 CAN
成为当今车载通信的 绝代双骄
。
以太网
甚至开始蚕食 CAN
的领地,开始在低速领域上试图取代 CAN
。兴许某天,CAN
会对以太网大声惊呼: 我以为你是来辅佐我的。
关于车载以太网的书籍真是相当少,尤其这种大而全的大部头实在难得。差不多把车载以太网的知识点都讲的差不多了。唯一的不足就是这本书写于 2014
年,而车载通信在 2020
年后飞速发展,不过有些东西已经大有不同,总体还都只是那些东西罢了。
笔记
-
以太网特色:全双工,分组交换,基于地址的消息传输。
-
DTC
(读取诊断故障码) -
CAN
由博世推出,是首个车载网络的全球行业标准。 -
分组交换:将大的包拆分,这些可能走着不同路径,最后组装在一起。
-
以太网一般采用的是星型拓扑结构(中间是集线器或者交换机)。多个星型拓扑结构组合,会成为更复杂的会成为树形拓扑结构
-
性能指标
吞吐量:用于测量单位时间内能够传输的最大潜在数据量,通常使用的单位是bps(bit每秒)
带宽:通常指网络的数据传送量,用于表示在单位时间内从一点传输到另一点的最大数据量。
带宽和吞吐量通常可以交换使用,但不是完全相同。时延:从发送到接收到的时间。
-
通信操作方式:单工,半双工,全双工。
-
UDS
:联合诊断服务。 -
DoIP
:基于互联网协议的诊断。 -
以太网相关的标准 IEEE802.3。
-
物理层是
OSI
参考模型的底层,也简称为phy
。 -
博通开发的单对电缆是车载以太网能够普及的关键因素之一:
boardr-reach
利用66Mbaud
的三元信号就实现了100Mbps
的速度,这样使得频率变低,布线成本也变得更低。 -
ieee802
将数据链路层(不仅仅是以太网)分为两个子层:逻辑链路控制子层(LLC
,比MAC
处于更高层,由802.2
定义),媒体介入控制子层(MAC
),LLC 层是为了让上层感觉不到各种LAN
的存在,但是在以太网中没有被实现。 -
不断发展成功的
DIX 以太网II
标准成为了正式的802.3
标准。 -
XXBASE-YZ
: XX为速度,base代表基带信号,Y代表介质类型,比如T代表双绞线,如果是T,那么Z代表双绞线对数。T1代表单对双绞线。 -
一般车载以太网不支持自协商速度和半双工,因为太慢。
-
BASET1
的产生,是以太网进入汽车行业的一个关键。只有两根线让成本变低,重量低,同时让车联网的性能大大提升。与标准以太网兼容。 -
MAC
地址中的前三个字节为组织唯一标识符(OUI
),通过这个可以知道是哪个厂家。
OUI
的第一个字节中的bit1
为0
则为统一管理(全球唯一),为1
则为本地管理,保证本地不冲突即可。 -
U/L
标志位:OUI
的第一个字节的bit0
为0
时,指示单个设备,即单播报文。为1
时,标记为组播地址(只会作为目的MAC,对于源mac没有意义)。所有mac
全为1
为广播mac
地址。 -
以太网帧格式(目前以太网II格式仍是主流)
-
前导码和帧开始符(SFD)起到告知别的设备要做好接收准备。(ieee802.3规定,不属于以太网帧的部分,不计入帧长度)
-
源地址以后是2个字节的类型(指明是哪些上层协议)。(在ieee802.3标准中,因为遵循的标准不一样,可以是类型或者长度,如果数值大1500,则认为是类型,作为类型也更常见,这种做法是的以太网II格式与802.3的版本得到兼容),数据区大小为
46-1500
字节。 -
以太网扩展帧(不属于标准以太网帧)
MAC
控制帧,目前仅有暂停帧,用于流量控制使用。暂停帧包含暂停时间,要求接受方暂停发送数据的时间。暂停时间以发送512
比特的时间为基准值。0
代表让正在暂停的设备取消暂停时间准。VLAN
与优先级帧
虚拟LAN
(VLAN
)可以帮助动态构建LAN
,解决了物理构建LAN
的麻烦。
以太网的VLAN和帧优先级(Q标记)的具体规则在 IEEE802.1Q
,后来也加入了802.3
。VLAN帧会在原来的以太网帧中加入4个字节,前两个字节为TPID(0x8100为vlan),后两个字节,前三bit为帧优先级,7为优先级最高。bit4为丢弃指示,为1时,可在网络丢弃时被丢弃。最后12bit为vlan值,最高为4095。
vlan id
中有三个值比较特殊。0表示该帧没有被分配到一个vlan中,这个标记则只用于表示优先级。1为未划入其他vlan
的设备的默认vlan id
。4095也预留值。以太网帧大小扩展(巨型帧)
巨型帧就是将MTU从常规的1500byte
修改到9000byte
,可以大大提高传输效率。(但是种种原因,未能被802.3标准采纳2014年,不知道现在怎么样了)。ethertype
值为0x8870
。 -
目前集成MAC和独立PHY是最常见的方式。是灵活性和成本的平衡。
-
一个未知目的
mac
地址的帧进入交换机,会被洪泛到除自身外所有的端口,类似广播帧的效果,但是其是单播帧。 -
以太网帧的源地址是交换机地址学习的材料。
-
动态学习的
MAC
地址表会有老化时间,过了就会删除,节省空间。 -
交换机转发数据有三种方式:存储转发,直通式转发,自适应转发(前两者的融合)
-
一般交换机会支持链路聚合
-
gPTP
(广义时间同步协议)
IEEE802.AS任务组、ptp模式的一个子集。gPTP的测量变差基于阿伦方差。 -
ptp
的初始时间为1970年起计的秒数
gptp
以ethertype
0x88F7
标记的特制帧通信。属于二层协议
domainNumber
域数量。gptp中始终为0 -
大量模拟和实证得出结论,125ms的sync足以保证专业品质的媒体传输,又足以避免网络流量过载。所以这个周期成了约定成俗的标准
-
icmp
是ip
协议非常重要的辅助,“每个ip
模块必须有他”。 -
ARP地址解析协议:知道ip地址,请求其mac地址。
改善方法:主机增加缓存去记忆,就不用每次发报文询问 -
arp报文流程:发送前,检查表有没有(有则结束),没有则发广播报文请求对方mac,对方单播回复mac
-
ieee802
组播地址的 OUI 为01:00:5E
(也就是前24bit),通过一种映射机制可以直接将组播mac和ip地址算出来。