汽车为什么拥抱以太网
上图中,我们可以看到,以太网的优势在于:
当前,以太网的应用已不仅限于百兆以太网,随着汽车行业的高速发展越来越依赖高带宽,低延时,高算力的通信,而以太网便是高带宽、低延时、高算力通信的基础。
当前在L3+自动驾驶域控制器中,会以太网为骨干网,AUTOSAR和激光雷达作为标配,其中以太网是基础;
目前架构会随着ECU数目增加而改变,这也会造成分布计算资源的浪费,为了避免分布式资源的浪费,我们可以使用以太网,将原先分布式上的计算资源进行域融合,进而减少ECU的数量,节省资源线束重量,这样可以减少80%的车内连接成本,30%的线束重量。
汽车以太网 VS 工业以太网
以太网OSI模型
以太网帧结构
0x0800:IPv4
0x0806:ARP
0x22F0:AVTP
0x8100:VLAN Tag(TPID)
0x86DD:IPv6
0x88F7:PTP / gPTP
当以太网帧如果大于1518字节,那么会分片,如下图所示。1008字节ICMP报文分2帧传输。
接下来我们对以太网帧进行更详细的分析
从上图可以看到,当我们使用SOME/IP协议时,SOME/IP报文是封装在TCP、UDP报文里,然后把它加一个报头,扔到IP层的Payload中,IP层添加报头后,再分装到IP数据包中,一层一层分工。
当对方接收到后,相应的就是去除包头,解析SOME/IP中的Payload。
✦✦
DoIP帧结构
接下来我们看一个DoIP的报文。下图为用工具抓的一个DoIP报文。
上图整个DoIP报文整个一个帧是69个字节,其实还要再增加4个字节的CRC,总共73个字节。只不过当网卡识别它是一个有效帧后,就把CRC 解析掉了。
当然,图中也描述了它的源MAC地址(6个字节)和目的MAC地址(6个字节),再加上2个字节的帧类型,共14个字节。
然后再往后就是传输层,IP层最小是20个字节。
然后再往后是TCP,DoIP报文是一个UDS的报文,而UDS报文都是通过TCP传输的,因此,会有个TCP的头部,包括 Src Port(源端口):13400(这是DoIP的一个端口号)以及 Dst Port(目的端口):50090。TCP的长度是20个字节;
DoIP协议头部是8个字节的长度;需要注意的是,DoIP的头部并不包括源DoIP地址和目标DoIP地址这4个字节;
再往后的话就是我们的Payload,3个字节,
将上述加起来一共69(14 + 20 + 20 + 8 + 4 + 3)个字节(一帧)。
✦✦
SOME/IP 帧结构
上图中,SOME/IP的报文总共62个字节,以太网帧头部就不做赘述了。这里我们说一下VLAN,我们有时会把一些业务进行一些区分,例如诊断、DoIP、SOME/IP、安全性更高的一般会通过VLAN区分,上面提到的DoIP协议报文是没有VLAN的,说明DoIP和SOME/IP 的通信传输是隔离开的。
再往后,IP层我们之前也说过了,这里就不做赘述了。
再往后,UDP说明这里的SOME/IP是通过UDP进行传输的,它的源端口是30602、目的端口是30602。
再往后,我们看一下SOME/IP报文,它的头部是16个字节,这16个字节是固定的,包含Service ID、Method ID、Length、Client ID、Session ID、Protocol Version、Interface Version、Message Type、Return Code。
以太网的通信交互案例
✦✦
以太网通信交互案例-二层
✦✦
以太网通信交互案例-三层
✦✦
以太网通信交互案例- 新浪上网
接下来,我们分享一下,我们的车内,或者电脑是如何上网的。
我们假定的环境是,我们的笔记本要访问新浪的网址。
具体的步骤如下:
网卡是Intel的AC 8260无线网卡。
MAC 地址是:34-F6-4B-CB-0E-E9。
这个地址是通过 DHCP获取的。
分配的IP地址是:192.168.20.60(这是我们电脑跟外界通信的唯一IP,所有的IP报文里面都是封装的这个IP地址。)
子网掩码:255.255.255.0
租约时间是指,这个地址可以用多久
默认网关是指缺省网关,比如说,我不知道是访问新浪,还是百度的时候,路由的时候都是默认扔给这个网关。
DHCP服务是指,IP地址(192.168.20.1)是谁分配的。
DNS服务器主要是做一些域名解析。114.114.114.114 是电信的DNS,8.8.8.8 是谷歌公用的一个DNS服务器。
以太网与汽车结合之美
思考