本文约1500字,阅读时间为5分钟。

前面聊了传统以太网和车载总线CAN,LIN和FlexRay,要真的聊车载以太网了反倒拖沓起来,一个月没动笔了。当元旦给自己放了个假吧。

说到以太网,其实是一个OSI第一层物理层PHY和OSI第二层媒体访问层MAC层的双层概念。前面讲过以太网的概念发起于上世纪70年代的美国年轻人梅特卡夫,发展到今天将近半个世纪,技术不断发展升级,但是对于媒体访问层,其实大框架没有发生变化,MAC层把上层协议的数据打包,加上以太网帧的头尾,然后交给物理层转换成电信号或者光信号。松散地说的话,可以看作MAC层雷打不动,PHY层不断迭代。这种方法论是不是很熟悉。接口标准不变,技术实现不断竞争升级,在电子,这个信条在信息技术领域比比皆是。

先说PHY,看到一个日本网站列的表很清楚,拿来主义一下。之前的一篇博客已经说过我们家用的千兆以太网用的是PAM5编码,车载用的是PAM3。

车载以太网5 - 物理层100BaseT1, 1000BaseT1_数据块(Ref:https://www.macnica.co.jp/business/semiconductor/articles/basic/135828/)

传统以太网100M的靠两对非屏蔽双绞线UTP完成传输,1G的靠4根或者4对?UTP(Unschielded Twisted Pair,100M的是4根导线,两对双绞线,1000M的是8根导线,4对双绞线),都说是全双工,其实这个全双工叫的有点勉强。一来一回靠的是分离的通道,100M的两对UTP,从一端看就是一对发,一对收。Gigabit的传统以太网则是两对用来发,两对用来收,有点能力不够人手凑的感觉。千兆以太网满负荷全双工的时候在网线上奔腾的数据其实可以达到2000Mb每秒,但是打个比方,传统以太网类似双向共车道的高速,收发跑的就不是一路。

车载以太网则不同,仅仅依靠1对UTP就实现了100M到1000M的全双工,打个比方就是千兆的车载以太网的话在农村中间不画线的路上实现了传统以太网双向隔离四车道的流量。能力杠杠的。T1的这个1就是讲靠的1根非屏蔽双绞线,再次吹嘘下博通当初的技术。经常看到有的图表上标CAN总线为500K,1M,FlexRay为10M,20M的速度,把以太网标为100M,1000M,其实是不公平的。CAN和FlexRay都是半双工,读写不可同时,以太网可以同时读写,所以以太网应该标200M,2000M。

车载以太网5 - 物理层100BaseT1, 1000BaseT1_非屏蔽双绞线_02

车载以太网的网线很细,类似耳机线,所以重量也很轻。1000BaseT1的像图中这样,也不用RJ45的水晶头。在汽车上的链接要求更高,温度,震动什么都不能影响。100Base T1的更简陋一点,我们在办公室测试的时候,用的都是外皮都没的白绿相间的非屏蔽双绞线。

车载以太网5 - 物理层100BaseT1, 1000BaseT1_非屏蔽双绞线_03车载以太网5 - 物理层100BaseT1, 1000BaseT1_数据块_04(Ref:https://cdn.intrepidcs.net/events/Webinars/Automotive_Ethernet_One_Hour_Webinar_20200815.pdf)

车载以太网的PHY提供了Isolation,这也是车载以太网的一大优势。

车载以太网5 - 物理层100BaseT1, 1000BaseT1_非屏蔽双绞线_05(Ref:https://www.ti.com/lit/wp/szzy009/szzy009.pdf?ts=1642633290174)

车载以太网是通过回声消除装置Echo Canceler来从复合有本身发送的信号与接收信号的复合信号中减去自身发送信号,就得到了对面发过来的信号。

车载以太网5 - 物理层100BaseT1, 1000BaseT1_数据块_06

100BaseT1的物理层在接收到MAC层发来的数据后,经过了一个3步的过程来生成信号第一步是4B/3B,将4位数据单元,转化为3位的数据单元。

第二步是3B2T,通过3B2T后,再对数据加扰scramble就生成一个PAM3的信号。

车载以太网5 - 物理层100BaseT1, 1000BaseT1_数据块_07

PAM3是什么?

PAM是Pulse Amplitude Modulation的缩写,大家可能对PWM比较熟。PAM3是通过变换脉冲的幅度,通过三种电平,正负零来传输信号的。不像CAN总线,LIN总线,FlexRay总线上的电平只有0,1两种状态,车载以太网的PAM3多出一种状态-1,这样通过编码就可以用较低的波特率传输更多的数据。类似于用三进制表达二进制的数据需要的数据长度更短。这样100BaseT1的波特率其实只需要66.6MHz就可以完成100Mbps的数据传输。

以下就是3B到2T的对应表。

车载以太网5 - 物理层100BaseT1, 1000BaseT1_非屏蔽双绞线_08

1000BaseT1比100BaseT1的物理层处理更复杂了一点。

车载以太网5 - 物理层100BaseT1, 1000BaseT1_非屏蔽双绞线_09

总共4个步骤:

1. 80B/81B

2. RS-FEC编码

3. 扰码Scramble

4. 3B2T

物理层每个时钟单元接收到MAC层的8位为单位的数据,以每10个时钟单元打包,得到80位数据,然后加上以为表示是数据还是控制块的标识位,这样就得到了一个81位数据的数据块。每45个数据块一个OAM(Operations, Administration 和Maintaince)的数据块会被插入。

因为1000BaseT1要求误码率要低于10的-10次方,所以RS- FEC步骤被加入来通过奇偶位实现纠错。后面的步骤类似于100BaseT1就不赘述了。

篇幅原因,MII和10BaseT1下回再聊吧。