众所周知,汽车无人驾驶已成为汽车发展的一种趋势,它对汽车ECU系统数量和质量有了更大的需求。目前主流的电子架构体系已逐渐显露出不足,而车载以太网因其具众多优点,必然会在汽车车载网络中普遍应用。本文将从入门者的角度,讲解车载以太网中的重要知识。
一、车载以太网的组成
车载以太网用于连接汽车内不同电气设备的一种网络,从而满足车载环境中一些特殊需求,它与传统以太网不尽相同,车载以太网主要由MAC(介质访问控制)、PHY(物理接口收发器)组成,与传统以太网不同,车载以太网固定为全双工通信方式,出于对汽车启动时间的考虑而没有引入自动协商机制,此外车载以太网是通过单对非屏蔽或屏蔽电缆连接,与之对应的100M的MDI接口为100Base-T1,以此满足EMC要求。
车载以太网主要工作在OSI的最后两层:物理层和数据链路层。
- 物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为PHY;
- 数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。数据链路层的芯片称之为MAC控制器;
很多时候,这两个部分是做到一起的,他们之间的关系是MCU/MPU接到MAC总线、MAC接PHY、PHY接网线(当然也不是直接接上的,还有一个变压装置)。
1、MAC介绍
MAC(Media Access Control)即媒体访问控制子层协议,该部分有两个概念:MAC可以是一个硬件控制器,也可以指MAC通信及协议。它位于OSI七层模型中数据链路层的下半部分,主要负责控制与连接物理层的物理介质,它一端通过总线连接MCU/MPU,另一端通过MII连接到PHY。MAC硬件大约就是下面的样子了:
在发送数据时,MAC协议会判断当前是否适合发送数据,若能,它会在将要发送的数据上附加一些控制信息,最终使数据以规定的格式到达物理层;在接收数据时,它会判断数据是否有错误,如果没有错误的话,它会去掉附加的控制信息发送至LCC(逻辑链路控制)子层。所以说,以太网数据链路层其实包含MAC(介质访问控制)子层和LLC(逻辑链路控制)子层这两层。
MAC从总线收到IP数据包(或者其他网络层协议的数据包)后,将之拆分并重新打包成最大1518Byte、最小64Byte的帧。这个帧里面包括了目标MAC地址、自己的源MAC地址和数据包里面的协议类型(比如IP数据包的类型用80表示),最后还有一个DWORD(4Byte)的CRC码。
2、PHY介绍
PHY(Physical Layer,物理层)是IEEE802.3中定义的一个标准模块,STA(station management entity,管理实体,一般为MAC或CPU)通过SMI(Serial Manage Interface)对PHY的行为、状态进行管理和控制,而具体管理和控制动作是通过读写PHY内部的寄存器实现的。一个PHY的基本结构如下图:
PHY是物理接口收发器,它实现OSI模型的物理层。IEEE-802.3标准定义了以太网PHY包括MII/GMII(介质独立接口)子层、PCS(物理编码子层)、PMA(物理介质附加)子层、PMD(物理介质相关)子层、MDI子层。
PHY在发送数据的时候,收到MAC过来的数据(对PHY来说,没有帧的概念,对它来说都是数据,而不管什么地址、数据还是CRC),然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据送出去。收数据时的流程反之。
PHY还有个重要的功能就是实现CSMA/CD的部分功能。它可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,一旦检测到网络空闲,再等待一个随机时间后将送数据出去。如果两个碰巧同时送出了数据,那样必将造成冲突。这时候,冲突检测机构可以检测到冲突,然后各等待一个随机的时间重新发送数据。这个随机时间很有讲究的,并不是一个常数,在不同的时刻计算出来的随机时间都是不同的,而且有多重算法来应付出现概率很低的同两台主机之间的第二次冲突。
二、MAC与PHY的接口连接
那么,PHY和MAC之间是如何传送数据和相互沟通的呢?
MAC与PHY之间通过两个接口连接,分别为SMI接口和MII接口。
- MII叫做介质独立接口,以太网MAC通过该接口发出数据帧经过PHY后传输到其他网络节点上,同时其他网络节点的数据先经过PHY后再由MAC接收;
- SMI叫做是串行管理接口,以太网MAC通过该接口可以访问PHY的寄存器,通过对这些寄存器操作可对PHY进行控制和管理。
SMI接口包括MDIO(控制和管理PHY以获取PHY的状态)和MDC(为MDIO提供时钟)。MDC由MAC提供,MDIO是一根双向的数据线。用来传送MAC层的控制信息和物理层的状态信息。MDIO数据与MDC时钟同步,在MDC上升沿有效。
MII接口有MII、RMII、SMII、SSMII、SSSMII、GMII、SGMII、RGMII等。这里简要介绍其中的MII和RMII,如下图所示。
图1 MII接口
MII共使用了16根线。其中CRS与COL只在半双工模式有效,而车载以太网固定工作在全双工模式下,故应用在汽车环境需要14根线。
图2 RMII接口
RMII:精简版的MII,数据发送接收均为两根,相比MII减少了4根,另外它整合或减去了一些线,最终RMII只有8根线。
三、PHY的常用功能解读
1.PHY的回环模式
为了诊断以太网工作时出现的问题,需要给问题定位,PHY的回环模式就是起着这样的作用,回环是指数据从一端发送经过一段路径后又回到该端,相当于自发自收,一般PHY都有三种回环模式,分别为内部回环,外部回环和远程回环,它们的回环路径不同。下面简要介绍下这三种回环模式。
①.内部回环
在内部回环模式,PCS接收模块直接从PCS发送模块获得数据,如图3所示。此操作允许MAC将通过MII发送功能发送的数据包与从MII接收功能接收的数据包进行比较,因此,验证100Base-T1 PCS的状态。
图3 内部回环
②.外部回环
在外部回环模式下,PMA接收模块直接从PMA发送模块接收信号,如图4所示。这种外部回环测试允许MAC将通过MII发送功能发送的数据包与从MII接收功能接收的数据包进行比较,因此,验证100Base-T1 PCS和PMA的状态。
图4 外部回环
③.远程回环
在远程回环模式下,MDI上链接伙伴接收的数据包通过PMA接收和PCS接收模块传送到PCS发送模块,后者又将其发送回链接伙伴。PCS接收数据可在MII上获得。远程回环允许MAC将发送到MDI的数据包与从MDI接收回的数据包进行比较,从而验证物理信道的状态,包括100Base-T1 PHY。如图5所示。
图5 远程回环
2.PHY的电源模式
为了进一步降低系统功耗,一些PHY都支持多种电源模式,主要包括正常模式、待机模式和睡眠模式。
以太网要正常建立连接,PHY必须处于正常模式,在PHY上电后,一般不会马上就工作在正常模式,而是待机模式。在待机模式下,PHY的ECU主电源被**,功耗相对睡眠模式略高,睡眠模式是PHY工作功耗最低的模式,如果网络中暂时不需要节点的功能,可使节点工作在睡眠模式,在睡眠模式下,此时节点可断电整个ECU,除了唤醒检测外,关闭所有内部功能。