无人驾驶入门笔记(一)
车载以太网相关知识入门
前言
由于工作的关系,接触到了无人驾驶相关的项目。想着将工作中遇到了问题和对应的解决手法用文字的方式系统的整理出来,故有了笔记内容。但由于笔者不完全是从事无人驾驶软件研发的工程人员,故相关笔记中只涉及到项目中遇到的内容。如有错误或者不完整的地方,欢迎读者留言补充。
在项目中,发现无人驾驶汽车使用了大量的车载以太网,故这篇主要围绕车载以太网相关的内容展开。
-
什么是车载以太网?
车载以太网是一种面向汽车环境优化的以太网通信技术,用于连接车内电子控制单元、域控制器、传感器、摄像头、雷达、信息娱乐系统等。
车载以太网是在 IEEE 802.3 以太网标准 基础上,针对汽车场景做了专门改造。尤其是物理层,采用了 单对非屏蔽双绞线,配合 TSN 时间敏感网络,可满足低延迟、确定性传输需求。
车载以太网仍然保留以太网帧、MAC 地址、IP、TCP/UDP 等通用网络概念,因此可以复用大量成熟的 IT 网络软件栈,但物理层、连接器、EMC 要求、温度范围、可靠性要求都按照车规重新设计。
简单来说,车载以太网就是把办公室和家里用的以太网"改装"成车规版,用一根细的双绞线把车里的摄像头、雷达、屏幕、域控制器等连成高速局域网。
-
车载以太网和传统汽车通信网络有什么区别?为什么要在无人驾驶中大量使用?
在传统的燃油车、包括早期的新能源汽车中,大量使用的CAN总线搭建的CAN通信网络。根据汽车原件对反应速率要求的不同,又将不同CAN通信速率的汽车网络分解成一个个汽车域。例如动力域、车身域、底盘域等等。
汽车中使用以太网不是没有,毕竟在车身中也是有T-BOX等汽车网关的,但毕竟在所有汽车元件中以太网通信只是占很小的一部分。那按道理来说,在无人驾驶汽车进行通信时使用CAN通信是更加成熟可靠的方式,但为何要使用如此多车载以太网通信线?
经过了解,车载以太网之所以成为智能汽车的主流骨干网络,主要有四个原因。
-
带宽需求不满足
现代车辆尤其是具备 ADAS 或自动驾驶功能的车辆,会产生大量数据。摄像头、毫米波雷达、激光雷达、高清座舱屏幕、环视系统、高精地图等都需要高速传输。而传统 CAN的带宽理论最高速率是 1 Mbps,而智能感知部件,以激光雷达为例,它的数据量通常在几十 Mbps 到几百 Mbps,高端产品甚至超过 1 Gbps,传统的CAN通信已经无法满足无人驾驶汽车的需求。这是车载以太网成为智能汽车主流骨干网络最主要的原因。
简单来说,CAN/LIN 像乡村道路,适合传递控制指令。而车载以太网像高速公路,适合传输摄像头、雷达、视频、地图、诊断和软件升级数据。
-
电子电气架构从分布式走向集中化
过去一辆车有很多分散的 ECU,每个功能单独布线,所以使用CAN通信这种无主从,多路的通信网络可以尽可能多的链接汽车中分散的ECU。
然而目前国内的趋势是将各个分散的ECU整合为一个个域控制,将汽车的算力集中起来。为了形成域控制器、中央计算平台、区域控制器加执行器的只能汽车控制架构,故需要一条高带宽、可扩展的通信网把这些计算单元连接起来。在这种情况下,传统的CAN网络已经不能支撑了,而车载以太网天然适合做这种电气架构通信网络。
-
线束轻量化和成本优化
既然以太网有这么多好处,为什么现在才刚刚出现呢?这是因为传统以太网如果用多对线,线束会非常重。而线束越重,整车厂的成本越高,汽车的动力性能也越差。
而车载以太网通信协议直到2015年才成为IEEE国际标准,最终采用单对双绞线(通常为绿白双绞线),和CAN通信线的数量一致。这一改变大大减少线束重量、降低布线复杂度,故直到最近才被大规模使用。
-
需要确定性和安全性
难道除了以太网之外,没有其他的高速率通信方式了吗?并不是的。但最终使用车载以太网的原因是其确定性和响应速度。毕竟汽车不是普通局域网,刹车、转向、传感器融合等应用不能接受不确定的延迟。车载以太网有时间同步、流量调度、带宽预留等能力,使之满足汽车零部件的高实时性要求。
除此之外,由于现在汽车的开发周期越来越快,汽车软件的研发更多地强调敏捷开发,导致软件升级的次数变多,而以太网协议栈更容易引入网络安全机制,这对车联网和 OTA 场景非常重要。
-
-
车载以太网的通信方式通常有哪几种?
车载以太网主要工作在车内局域网,车外通信通常不会让外部网络直接访问车内所有节点,而是通过网关和安全边界进行隔离与转发。其通信方式有如下几种:
-
以太网故障诊断
DoIP 是基于 IP 的车载诊断协议,它把传统基于CAN的UDS 诊断服务放到TCP/UDP/IP上运行,从而实现更高速的诊断、软件刷写和远程诊断。
其典型流程是:
1.外部诊断设备通过 OBD 接口或远程通道连接车辆;
2.车辆内的 DoIP 边缘节点/网关 被激活;
3.外部设备发现车辆并建立 TCP 连接;
4.进行路由激活和安全认证;
5.诊断请求被转发到目标 ECU;
6.ECU 响应数据经网关返回外部设备。
-
通过车载网关连接不同子网实现相互通信
由于现代汽车是从传统汽车发展过来的,故有相当一部分的汽车元件还是走的CAN通信等传统的汽车通信网络,例如车身、底盘、动力控制节点仍然挂在 CAN、LIN、FlexRay 等通信子网上。
故为了和这些重要的元器件进行通信,现代汽车通常采用车载网关负责在这些网络之间转发数据。
-
通过 T-Box/通信模块连接云端
在实际项目中,车辆与车外云平台,手机 App,远程诊断系统等方面的通信通常还会经过 T-Box、车载通信模块或蜂窝网络模块。
这些模块负责连接 4G/5G 网络,并把远程请求转发到车内网关或域控制器。需要注意的是,车外网络不能随意访问车内所有控制器。DoIP 网关、防火墙、安全认证、路由表等机制会限制访问范围,避免诊断接口变成安全漏洞。
-