最近开始学习车载以太网技术,为加深印象并防止遗忘,在此总结一下。

近年来,顾客对汽车的安全性、舒适性、娱乐性要求越来越高,所以汽车上增加的功能也就越来越多,而且大部分新增功能都是通过电子技术来实现的,这就导致车载网络上交互的信息量也越来越大,所以汽车行业的工程师们就想到了把Ethernet/IP技术移植到汽车上来用,以太网技术不但支持的带宽比现在的车载总线大得多,而且在其他领域已经有了足够丰富的应用,技术和方案成熟,规模大所以成本也可以控制。这篇文章先介绍一下车载以太网的物理层技术。

目前的车载百兆以太网技术原来的名字叫OABR (Open Alliance BroadR-Reach) ,Open Alliance是包括Broadcom公司在内的一些公司搞的一个联盟, BroadR-Reach技术是Broadcom公司提出的百兆以太网技术,现在OABR 已经由 IEEE 标准化,并命名为100BASE-T1。传统的百兆以太网的名字是100BASE-TX,二者在物理层上差别很大。

二者最显著的区别就是,100BASE-T1在物理连接上使用了一对双绞线实现全双工的信息传输,而100BASE-TX则使用了两对双绞线实现全双工,一对用于收,另一对用于发。100BASE-T1利用所谓的回音消除技术(echo cancellation)实现了在一对双绞线上的全双工通信。回音消除技术的大概过程是这样的,作为发送方的节点将自己要发送的差分电压加载到双绞线上,而作为接收者的节点则将双绞线上的总电压减去自己发出去的电压,做减法得到的结果就是发送节点发送的电压。

汽车网络架构设计汇报的思路 汽车网络技术_时钟周期

车载百兆以太网100BASE-T1示意图。图片来源:vector

汽车网络架构设计汇报的思路 汽车网络技术_双绞线_02

普通百兆以太网100BASE-TX示意图。图片来源:vector

车载以太网的物理层功能全部实现在一个名为PHY的模块上,它将以太网控制器和物理介质连接到一起。以太网控制器和PHY之间通过一个标准化的名为MII(与介质无关的接口,见下图)的接口连接。

汽车网络架构设计汇报的思路 汽车网络技术_双绞线_03

微控制器和PHY之间的连接示意图。图片来源:vector

对于车载百兆以太网100BASE-T1来说,控制器在MII接口的时钟频率是25MHz,每个时钟周期发出4个bit(25MHz * 4bit = 100Mbit/s)。下面介绍一下PHY接收到MII接口来的数据流之后的编码过程。在发送端ECU,PHY接收到来自MII的数据之后,要经过三个步骤进行编码,才能形成最终发送到双绞线上的电信号。过程下如图:

汽车网络架构设计汇报的思路 汽车网络技术_双绞线_04

PHY中实现的编码过程

PHY

以vector提供的一个例子来讲一下。

汽车网络架构设计汇报的思路 汽车网络技术_汽车网络架构设计汇报的思路_05

PHY中的编码过程示例。图片来源:vector

在微控制器的每个时钟周期中,MII接口到来的数据是4个bit,PHY从MII接口收到数据后,会首先进行一个4B3B的转换,为了匹配25MHz * 4bit = 100Mbit/s的速率,PHY的MII接口时钟周期应该是33.3333M,每次接收3bit,也实现了33.3333M * 3bit = 100Mbit/s的速率。之后PHY要再进行3B2T的操作,将每次接收到的3个bit转化为2个电平值(取值范围是-1,0,1),具体的对应关系如上图中的表所示。3个bit有8种组合(即2的三次方),两个电平值有9种组成(即3的平方),所以后者可以覆盖前者。此时时钟周期仍然是33.333M,但是每个时钟周期中的两个电平就能够表示3个 bit了,所以此时的数据速率仍然是100Mbit/s,每个电平实际上包含了1.5bit信息。最后一步是PAM3,将逻辑的-1,0,1转化为在双绞线上的电压,所以,最终在总线上信号的波特率是66.666MHz,但是它实现了100Mbit/s的通信速率。