聚合国内IT技术精华文章,分享IT技术精华,帮助IT从业人士成长

一文详解车载以太网通信开发及应用

2022-07-06 13:28 浏览: 1984307 次 我要评论(0 条) 字号:

“智能汽车生态群"加微信Time-machine-(备注公司+姓名)


1 引言 


随着汽车功能的不断增加,尤其是音视频流、OTA、大数据收集功能,对车载通信技术的高带宽和实时性要求越来越高,因而以太网技术引入汽车领域,对于汽车网联化、智能化、电动化和共享化发展提供坚实的技术支撑。以太网的高带宽可以满足较大数据的快速传输,而对实时性要求较高的音视频流传输,可以使用AVB/TSN解决。


本文讨论车载以太网技术特点,以太网的分层模型及各层的协议内容,为车载以太网通信技术的开发和应用提供了参考依据。


2 车载以太网技术特点和协议构架模型

2.1 技术特点

当前越来越多车厂开始应用车载以太网技术,使用单对非屏蔽双绞线以太网连接车内部分电子控制单元组成局域网,以太网技术提高了数据传输带宽,同时满足了汽车中对高可靠性,低功耗,低成本,低延迟及实时性的要求,主要特点如下:


(1)高带宽,达100 Mbit/s、1 Gbit/s;


(2)点对点连接,全双工通信;


(3)成本相对较低,100 base-T1、1000 base-T1;


(4)软硬件技术相对已成熟,协议开放。

2.2 协议模型

车载以太网协议参考OSI模型进行分层,包括物理层、数据链路层、网络层、传输层、应用层协议,如图1所示。


图1 车载以太协议架构模型


3 车载以太网开发及应用

3.1 物理层

以太网的PHY负责电平信号与数字信号的转换,实际在网线中传输的电平速率(Symbol rate)与ECU内部的以太网数据速率(Data rate)是不同的,以100 base-T1为例,依据IEEE 802.3bw中定义,数据速率100 Mbit/s,经PHY进行4B3B,3B2T的编码后,传输到线缆上的电平为-1 V、0 V、1 V,此时的Symbol rate和Data rate分别为66.67 Mbit/s和100 Mbit/s(图2)。


图2 100 base-T1以太网信号编码


当以太网激活后,由PHY负责建立链路连接,当前大部分PHY支持UDP网络管理,可以通过以太网进行唤醒,如果PHY不支持UDP网络唤醒,那需要考虑通过ECU的其它连接链路,如CAN、FlexRay进行唤醒。


对于1000 base-T1,依据IEEE 802.3bp[6]中定义,其使用的是80B/81B形式,其增加了9 bit的OAM和396 bit的RS-FEC奇偶校验,然后经扰码,在通过3B/2T形式转换为模拟电平发出,其在线上传输速率为750 Mbit/s,如图3所示。


图3 1000 base-T1以太网信号编码

3.2 以太网MAC帧

以太网的MAC帧包含目的MAC地址、源MAC地址、帧类型、数据和FCS。而在802.1Q中增加了VLAN的信息引入,在帧类型前加入VLAN的标识,带VLAN的MAC帧格式如图4。


4 带VLAN的以太网帧格式

3.3 VLAN定义

虚拟局域网(VLAN)在MAC帧中使用0x8100代表使用VLAN,使用VLAN划分局域网,可以降低带宽占用率,避免线路拥堵,可以通过IP地址进行VLAN的划分,同一个ECU可以关联在多个VLAN中,此ECU需要对每个VLAN分配一个IP地址。


另外可以根据功能的重要程度进行VLAN优先级的定义,保证重要的功能优先传输。VLAN优先级长度3 bit,故有7个等级,优先等级从0到7依次升高;


当前大部分车载以太网ECU网络拓扑结构采用点对点连接,通过Switch进行信息交换,Switch会根据VLAN ID的定义,只把消息转发到相同VLAN ID的通道,从而避免其它通道出现不相关报文。同时根据优先级的定义,优先转发优先级高的报文。


以E-Call和手机查看行车记录仪DVR视频功能为例,如E-Call需要多媒体及车联网模块支持,可以设为VLAN1,手机查看DVR视频需要DVR和车联网模块支持,可以设置为VLAN2,E-Call的优先级设置为高于查看视频。多媒体、DVR和车联网三者通过交换机Switch连接,此时车联网模块需要有2个IP地址分别给VLAN1和VLAN2,Switch根据VLAN1和VLAN2转发对应的报文,当2者同时触发时,由于ECall的优先级高,Switch会优先转发其报文。

3.4 TCP/IP协议

AutoSar模型中已有引入TCP/IP协议栈,位于Socket之下,数据链路层之上,为Socket提供网络层的IP地址定义,传输层的port定义,用于找到对应的APP。TCP/IP协议是由众多协议组成的一个协议族,主要包含IPv4/v6、ARP、ICMP、TCP、UDP和DHCP,如图5引用AUTOSAR软件架构模型。


图5 TCP/IP协议栈架构模型


图5中IPv4和IPv6之间是有一些区别的,主要点为:


(1)IPv4协议具有32位(4字节)地址长度;IPv6协议具有128位(16字节)地址长度。


(2)IPv4协议的地址可以通过手动或DHCP配置的,而IPv6协议需要使用Internet控制消息协议版本6(ICMPv6)或DHCPv6的无状态地址自动配置。


(3)IPv4协议的数据包需要576个字节,分片可选。IPv6协议的数据包需要1 280个字节,不会分片。故IPv4协议的数据包分片会由转发路由器和发送主机完成。IPv6协议的数据包分片仅由发送主机完成。


(4)地址解析协议(ARP)可用于将IPv4地址映射到MAC地址。而在IPv6协议中,地址解析协议(ARP)被邻居发现协议(NDP)的功能所取代。


对于车载以太网网络,以太网ECU相对较少,一般IPv4的C类地址(256个主机数)即够使用。网络拓扑固定,以太网节点的MAC地址和IP地址在研发设计阶段即可定义好,故动态ARP及DHCP可以考虑不使用。此外,IP协议提供不可靠,无连接的数据报传输服务,可靠性由上层协议保证,如TCP或者应用层协议。


对于传输层的协议主要有TCP和UDP两种传输协议,TCP为面向连接的可靠传输协议,通过3次握手建立连接,4次挥手终止连接,可靠性体现为可以对数据进行接收确认、流量控制、丢失重发、拥塞控制,且其可以传输比较大的数据流。


然而由于TCP在传输数据报前需要先建立连接,所以其需要花费更多的时间才能完成数据的传输,故不适用实时性要求高的数据报传输,此种情况下UDP更加适用,其无需每次通讯时花费时间建立连接,但UDP协议对传输的数据报不能提供可靠性保证。


根据TCP和UDP的优缺点,在设计车载以太网网络时,可以根据不同的应用场景进行使用,比如DoIP,对可靠性要求较高,刷写时数据量较大,且可以接受在以太网激活后先建立连接的方式,使用TCP更有优势。而对于一些车辆控制功能的信息,如远程控制、信息显示等实时性要求较高数据,使用UDP更能保证实时性,但一般此种数据对可靠性也有一定要求,此时就需要让应用层来实现应答、超时、重发等可靠性策略。


为了保证网络通信的安全性,需要对网络上传递的数据进行加密,可以使用图4中的传输层安全协议(Transport Layer Security,TLS)模块,其为安全套接层(Secure Socket Layer,SSL)的升级版,主要实现加密,身份验证和数据完整性。TLS握手过程如下:


(1)TCP连接建立后,客户端发送一些协商信息,如TLS协议版本,加密压缩算法,并生成一个随机数(第一个随机数)一起传送给服务端。


(2)当服务端收到客户端的请求后,会确定TLS加密的协议版本及算法,也会生成自己的一个随机数(第二个随机数),连同证书一起发送给客户端。


(3)客户端使用服务端提供的证书,及前两个随机数生成新的对称密钥,用服务端的公钥进行加密,并通知服务端切换到加密通信流程。


(4)服务端用自己的私钥解密客户端发过来的对称密钥,并通过验证MAC检查消息的完整性,并返回给客户端一个加密的“Finished”的消息。


(5)客户端采用对称密钥解密消息,并验证MAC,如果一切OK,加密通信即建立完成。应用数据就可以发送了

3.5 车载以太网应用层协议

车载以太网应用层协议有很多,本文主要以SomeIP(Scalable service-Oriented MiddlewarE over IP基于IP面向服务的中间件)为例,SomeIP主要用于应用数据的传输,如控制信息、显示信息及从传统网络(CAN或FlexRay)转化到以太网的信息,将不同的功能数据定义成服务,通过请求响应、订阅发布等形式进行服务的交互,通过服务发现来找ECU所需服务及可提供服务。SomeIP报头包含服务ID,Method ID,长度(指示从请求ID开始之后的数据长度,单位字节),请求ID(包含客户端ID和会话ID),协议版本(固定0x01),接口版本(用于检测服务的一致性),报文类型及返回码(表1)。

报文类型(Message Type)定义


假设有一个大数据上传的服务,其包含2个数据:data1,data2,data1为UTF8类型的“车载ETH”信号,data2为uint8的温度信号,温度值为20℃。


首先定义SomeIP报头,可以定义为:


Service ID:0x000A;


Method ID:0x8001;


客户端ID:0x0010;会话ID:0x0001;


协议版本:固定0x01;


接口版本:定义为0x01;


报文类型:定义为0x02 Notification;


返回码:0x00。


其十六进制报文示例应该如下:



对于报头之后的数据部分解析如下:


EFBBBF为Byte Order Mark,表明UTF8编码。


“车载ETH”的UTF8编码数据为:E8BDA6,E8BDBD,45,54,48。

00为UTF8编码的结束符。


以上为data1数据。


14为data2数据,表明温度值为20℃。


另外,可以由设计方自定义,比如使用UDP传输实时性数据时,为了保证数据的可靠性,可以在自定义的应用层设计时加入可靠性的机制,数据的编码形式也可以自定义。


4 结语


(1)车载以太网目前已经在部分OEM车型中应用,技术相对较成熟。


(2)车载以太网相较于其它传统网络,如CAN、CANFD、FlexRay,速率更快,同时可承载数据多。


(3)汽车的网联化、智能化、电动化和共享化发展中,如自动驾驶、V2X、大数据采集、远程诊断、OTA等新技术都离不开以太网的支持。


活动推荐

直播预告:自动驾驶汽车数据存储应用论坛


职位内推

国内某上市公司高薪诚聘嵌入式操作系统专家


END



网友评论已有0条评论, 我也要评论

发表评论

*

* (保密)

Ctrl+Enter 快捷回复