背景

车载以太网的出现背景楼主不多赘述,但主要是由于汽车E/E体系结构和功能复杂性的增加,对车辆数据传输带宽的增加和通信方式的改变(基于服务的通信-SOA)的需求。

目前,关于汽车总线的应用,有成本低、可靠性高、应用广泛的Lin、CAN通信,CAN FD近年来也逐渐应用,基于FlexRay、车辆以太网等成本因素,目前主要用于高端车型。

其中楼主认为前面介绍的FlexRay以后普遍应用的可能性不大,首先在成本方面和车载以太网差不多,通信速度低很多。而且,随着未来智能化、互联网化的趋势,车内以太网今后普及的可能性比FlexRay高得多。CAN FD开始营销后不到几年,第三代CAN总线-CAN XL也将出现,CAN XL传输速率预计将达到10Mbit/s,这可以填补CAN FD与100BASE-T1 (100base-t1例如,在安全性要求较高的情况下,使用时间触发机制的FlexRay更适合,因为它具有高实时性和确定性。

标准

在车辆网络方面,玩家很多,并提出了各自的标准,如下所示:

开放联盟和电子和电子工程协会(IEEE)制定的标准在车载以太网领域中所占比重最高,应用最广泛(例如,我们熟知的100BASE

从1980年开始,IEEE负责以太网的维护、开发和标准化。每个公司都可以提供专有的以太网解决方案,但大多数情况下,企业将标准化委托给IEEE,以确保更广泛的应用程序。802工作组专门负责以太网,因此所有与以太网相关的标准都以802开始(例如,IEEE 802.1、IEEE 802.2、IEEE 802.3等)。

OPEN Alliance SIG是一个由汽车制造商和供应商组成的联盟,旨在促进以太网在汽车业的发展。OPEN Alliance SIG与IEEE合作,将汽车以太网转换为通用标准。对于目前的车辆以太网标准,主流标准如下,目前主要是第二个100BASE-T1。也就是说,单双线以100 mbit/秒的速度传输数据,前进的OEM使用更快的千兆以太网。

车载以太网的网络分层和拓扑结构

OSI 7层网络模型(OSI=开放系统互连)是互联网开发过程中非常重要的模型。OSI是开放式通信系统互连参考模型。换句话说,建议所有公司使用此规范来控制网络。只有统一通信规范,才能实现真正的互动

联化。OSI 七层模型及通信互联的传输过程,如下图所示:

OSI 七层网络模型是一个理想的网络参考模型,TCP/IP模型是已经被实际广泛应用于因特网的网络分层模型。TCP/IP 模型没有对 OSI 的 5~7 层做严格区分,统称为应用层。

车载以太网是基于 TCP/IP 的网络分层模型,并由 OPEN 和 AUTOSAR 等联盟对以太网相关协议进行了规范和补充。

以太网的网络拓扑结构有点对点形式、类似于CAN或LIN的总线形式、链式和星型等形式:

也有由上面几种形式的组合形式:

当然现在多个节点的车载以太网的互联互通需要交换机Switch,Switch的作用如下:

车载以太网的物理连接

从硬件的角度看,以太网接口电路主要由MAC(Media Access Control)控制器和物理层接口PHY(Physical Layer,PHY)两大部分构成,如下图所示:

MAC及PHY工作在OSI七层模型的数据链路层和物理层,如下

PHY和MAC之间是如何传送数据和相互沟通的呢?MAC与PHY之间通过两个接口连接,分别为SMI接口和MII接口。

MII(Media Independent Interface)即媒体独立接口,MII接口是MAC与PHY连接的标准接口,以太网MAC通过该接口发出数据帧经过PHY后传输到其他网络节点上,同时其他网络节点的数据先经过PHY后再由MAC接收。MII是IEEE-802.3定义的以太网行业标准,MII接口提供了MAC与PHY之间、PHY与STA(Station Management)之间的互联技术,该接口支持10Mb/s与100Mb/s的数据传输速率,数据传输的位宽为4位。"媒体独立"表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。802.3协议最多支持32个PHY,但有一定的限制:要符合协议要求的connector特性。

SMI叫串行管理接口,以太网MAC通过该接口可以访问PHY的寄存器,通过对这些寄存器操作可对PHY进行控制和管理。SMI接口包括MDIO(控制和管理PHY以获取PHY的状态)和MDC(为MDIO提供时钟)。MDC由MAC提供,MDIO是一根双向的数据线。用来传送MAC层的控制信息和物理层的状态信息。MDIO数据与MDC时钟同步,在MDC上升沿有效。

由此可见,MAC 和PHY,一个是数据链路层,一个是物理层;两者通过MII传送数据。 因此Ethernet的接口实质是MAC通过MII总线控制PHY的过程。

MII接口后续又衍生了很多其他版本,如RMII、GMII、SGMII、RGMII等。这里简要介绍其中的MII和RMII,如下图所示。MII共使用了16根线。其中CRS与COL只在半双工模式有效,而车载以太网固定工作在全双工模式下,故应用在汽车环境需要14根线。

RMII是精简版的MII,数据发送接收均为两根,相比MII减少了4根,另外它整合或减去了一些线,最终RMII只有8根线RMII的接口如下:

在实际的设计中,以上三部分并不一定独立分开的。由于,PHY整合了大量模拟硬件,而MAC是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将MAC集成进微控制器而将PHY留在片外。更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合,可分为下列几种类型:

CPU集成MAC与PHY,目前来说并不多见:

CPU集成MAC,PHY采用独立芯片,这种在车载以太网上是主流方式,因嵌入式芯片厂商一般都将MAC集成在MCU内部,而PHY芯片则由OEM或控制器供应商自己选择:

CPU不集成MAC与PHY,MAC与PHY采用集成芯片。这种在消费用以太网上比较比较常见,如电脑的网卡有这种方式的。

在以太网连接线束上,车载以太网与消费用以太网也是不同的,首先消费用以太网的标准主要采用10BASE-2、10/100BASE-TX和1000BASE-T,其中1000BASE-T是使用RJ45接口,需要四对双绞线共8根线进行数据传输,而10/100BASE-TX则是只使用四对双绞线其中的两对共4根线进行数据传输,如下是100BASE-TX的示意图(使用了两对双绞线)。

在很早之前的10BASE-2则是同轴电缆进行数据传输,因此消费类以太网采用线束总结如下:

而车载以太网一般都基本采用带T1的标准,如IEEE 100BASE-T1(以前称为OABR)、IEEE 1000BASE-T1,这些都使用一对双绞线共两根线进行数据传输:

其次在编码方式上,1000BASE-T主要采用PAM5的编码方式:

而车载以太网100BASE-T1和1000BASE-T1主要采用PAM3的编码方式。

从上面可知,车载以太网主要采用基于一对双绞线进行数据传输的100BASE-T1或1000BASE-T1标准,而我们电脑则使用RJ45接口采用基于4对双绞线进行数据传输的1000BASE-TX标准,因此当我们用电脑测量控制器以太网时,有时需要转换器,如下:

车载以太网帧结构

以太网帧的格式如下:

以太帧有多种类型,不同类型的帧具有不同的格式和MTU值,但在同种物理媒体上都可同时存在。常见有两种帧格式,第一种是上世纪80年代初提出的DIX v2格式,即Ethernet II帧格式。Ethernet II后来被IEEE802标准接纳,并写进了IEEE802.3x-1997的3.2.6节。

第二种是1983年提出的IEEE802.3格式。

这两种格式的主要区别在于,Ethernet II格式中包含一个Type字段,标识以太帧处理完成之后将被发送到哪个上层协议进行处理。IEEE802.3格式中,同样的位置是长度字段。

不同的Type字段值可以用来区别这两种帧的类型,当Type字段值小于等于1500(或者十六进制的0x05DC)时,帧使用的是IEEE802.3格式。当Type字段值大于等于1536(或者十六进制的0x0600)时,帧使用的是Ethernet II格式。以太网中大多数的数据帧使用的是Ethernet II格式。

以太帧中还包括源和目的MAC地址,分别代表发送者的MAC和接收者的MAC,此外还有帧校验序列字段,用于检验传输过程中帧的完整性。

汽车行业通常使用Ethernet II格式,该格式还可包含VLAN信息作为扩展,因此,又分基本MAC帧(无VLAN)和标记MAC帧(包括VLAN)两种。

MAC addresses: Ethernet II帧通常以接收者目标地址开头。 作用是指定要接收消息的网络节点。 与随后的发送者源地址相反,除单播地址外,还可以使用多播或广播地址。对于以太网帧,只能有一个发送方,但可以有多个接收方。

Ether type: 基本和标记的MAC帧通过类型字段(以太类型)进行区分。 这通常标识有效载荷数据区域中包含的分组,并给出有关较高层中使用的协议(例如,IPv4)的信息。如果以太类型的值为0x8100,则将类型字段向后移四个字节,并在其原始位置插入一个VLAN标签。

VLAN Tag:VLAN标签由协议标识符(TPID)和控制信息(TCI)组成。 TPID包含原始类型字段的值,而TCI由优先级(PCP),符合丢弃要求或规范的形式指示符(DEI或CFI)和标识符(VID)组成。标识符和优先级主要用于汽车行业。标识符区分不同应用区域的相应虚拟网络。优先级允许通过交换机优化运行时间,以便优先转发重要信息。

Payload:在类型字段之后,以太帧包含有效载荷数据区域。 有效负载的最小长度为不带VLAN标记的46字节或带VLAN标记的42字节, 在汽车工业中,它最多可以包含1500个字节。

CRC校验:CRC校验在以太帧的末尾发送。 校验中包含的值是使用标准化算法计算的,该算法在发送方和接收方中以相同的方式实现。该计算是在以太帧的所有字段中进行的,因此可以确保整个消息的完整性。

以太网Packet: 对于以太网II帧的传输,以太网控制器在开头插入前同步码和起始帧定界符(SFD),用于指示传输开始。前同步码,开始帧定界符和以太帧的组合称为以太网数据包。

车载以太网帧传输过程

上面我们已经提到,车载以太网是基于TCP/IP的网络模型,因此我们先不考虑应用层数据是根据哪种应用层协议组织的,从应用层来的数据,经过传输层会加上TCP/UDP报头,再到网络层的IP报头,然后到链路层增加MAC地址等信息,最后由PHY转换成线路上的二进制流实现在发送端和接收端的数据传输。

其中上面传输层的TCP协议和网络层的IP协议,楼主在本篇文章中就不过多赘述了,大家感兴趣的请自行查询了解。而应用层协议有不少,例如DoIP、DHCP、SOME/IP等,而最重要的车载以太网应用层协议主要是SOME/IP协议,关于这部分的阐述楼主放到下一篇。

参考文献:

1、Ethernet introduction(BOSCH、Tektronix、Vector、CSDN等资料)

相关推荐