我最早接触100BASE-T1车载以太网时,吃过一次亏:MII接口上的数据、使能、时钟明明都在正常翻转,可示波器戳到双绞线上,看到的既不是TTL方波,也不是普通网线的连续正弦,而是三个档位的电平跳来跳去。后来把PHY数据手册翻完才明白,从MAC出来的并行数字信号,到线上跑的模拟差分信号,中间根本不是“放大一下”那么简单,而是经历了一整套扰码、三进制编码、再到三电平映射的变形。

这篇文章就打算把这条链路完整拆开讲一遍。如果你刚接触车载以太网,是嵌入式工程师、测试工程师,或者还在纠结MII和RMII怎么接的学生,这篇保姆级图解应该能帮你在半小时内建立整条链路的地图:MII接口长什么样,PHY里面PCS和PMA各自干了什么,双绞线上为什么看到的是PAM3三电平,以及出了问题该从哪儿下手。文中不纠结厂商私有寄存器,只讲IEEE 802.3bw和PHY实现的通用逻辑,这样你换不同厂家的芯片也照样能看懂。

1. 为什么信号必须“变形”:先看整条链路地图

1.1 从MAC到双绞线,中间隔着一整套物理层

先明确一个基本概念:以太网节点的核心芯片通常叫MAC控制器,它负责组帧、寻址、数据缓存,但MAC管不了“怎么把0101的比特放到一根铜线上”。这个任务交给PHY芯片。

MAC和PHY之间走的就是MII接口。MII全称Media Independent Interface,翻译过来是“介质无关接口”,这个“无关”指的是MAC不需要关心底下是光纤、同轴还是双绞线,PHY会把介质差异全部吃掉。MAC侧只看到统一的并行数据总线,而PHY侧面对的是实际线缆。

所以数据从MAC出来后,先经过MII到达PHY,然后由PHY把数据流变成适合双绞线传输的模拟信号。为什么MAC不能直接驱动双绞线?原因很直接:并行数字总线是单端信号,抗干扰能力弱,传输距离短,而且频谱能量集中,EMC表现会非常差。车载环境里,旁边就是电机、点火线圈、大功率电子负载,电磁干扰复杂得很,单端方波上去基本是给自己找麻烦。

100BASE-T1的MAC和PHY分工,和你家里路由器里的百兆以太网没有什么本质区别,差别只在于物理层的实现方式。普通百兆以太网100BASE-TX用两对线,一对发一对收;100BASE-T1只用一对线,同时又是发又是收。只靠一对线就想把100Mbps全双工跑起来,这正是100BASE-T1信号处理的难点,也是后面“变形”设计的出发点。

1.2 100BASE-T1在IEEE 802.3体系里的位置

100BASE-T1的标准编号是IEEE 802.3bw,在IEEE 802.3协议家族里属于“单对双绞线100Mbps以太网”的物理层规范。它和另一个常见标准100BASE-T1(IEEE 802.3bp,千兆速率)在车载中并存,但本文只聊100BASE-T1。

这个标准推出很大程度上是冲着汽车总线来的。传统车载网络以CAN为主,CAN-FD目前主流速率也就是2Mbps到5Mbps,面对ADAS摄像头、激光雷达传感器、高清地图这类动辄几十Mbps甚至上百Mbps的数据,CAN根本扛不住。车载以太网就是把以太网的带宽和灵活性带进车内,同时又要满足汽车对线束重量、EMC、成本的要求。于是IEEE定义了一根双绞线解决100Mbps的方案,也就是100BASE-T1。

和100BASE-TX相比,100BASE-T1节省了一对线,线束更轻、更细,这对整车重量和布线空间都有直接好处。但同时付出的代价是PHY芯片复杂度大幅提升,因为要在单对线上同时收发,必须做回波抵消、混合电路这些额外处理。

1.3 先找好参照物:100BASE-T1和常见总线的区别

为了把100BASE-T1的特点说清楚,我列一个简单对比表,把几个常见方案摆在一起看:

项目 100BASE-TX(普通百兆以太网) 100BASE-T1(车载以太网) CAN-FD
介质 两对五类/超五类双绞线 单对非屏蔽双绞线 一对双绞线或屏蔽线
速率 100Mbps,全双工 100Mbps,全双工 通常2Mbps/5Mbps
编码调制 4B/5B编码 + MLT-3 扰码 + 3B2T编码 + PAM3 差分NRZ/曼彻斯特编码
是否同时收发 两对线分开收发 单对线混合收发,需要回波抵消 半双工或按帧收发
典型拓扑 点对点,可加交换机组网 点对点,可加交换机组网 总线式多节点
典型应用 数据通信、办公网络 车载摄像头、ADAS、IVI骨干 车载控制、诊断

这个表看下来,100BASE-T1最大的记忆点就两个:单对线,100Mbps全双工。理解了这两点,后面所有编码和调制层面的设计决策都能顺下来。

2. MII接口:数字世界的“出场形态”

2.1 先认清楚信号:TXD、TX_EN、TX_CLK、RXD、RX_DV

MII接口的信号并不复杂,核心就两组:发送方向和接收方向,各带自己的数据、使能、时钟。我整理一下最常用的几个:

信号名 方向(以MAC为参考) 作用
TXD[3:0] MAC → PHY 发送数据,一次传4比特(一个半字节)
TX_EN MAC → PHY 发送使能,高电平表示TXD有效
TX_ER MAC → PHY 发送错误指示,非必须,普通调试可忽略
TX_CLK PHY → MAC 发送时钟,PHY提供,100Mbps下25MHz
RXD[3:0] PHY → MAC 接收数据,一次传4比特
RX_DV PHY → MAC 接收数据有效标志
RX_ER PHY → MAC 接收错误指示
RX_CLK PHY → MAC 接收时钟
CRS PHY → MAC 载波侦听,指示介质是否忙
COL PHY → MAC 冲突检测,半双工才用

第一次接触MII的工程师容易有个误区:以为TX_CLK是MAC送给PHY的。实际上正好相反,MII的时钟完全由PHY侧产生,MAC只是被动地跟着这个时钟去对齐数据。也就是说,PHY上电后如果还没完成初始化,TX_CLK不会稳定输出,MAC侧的发送逻辑也就起不来。

另外一个容易忽略的是CRS和COL这两个信号。100BASE-T1是点对点全双工,物理介质上没有“冲突”这个概念,所以COL这个信号在100BASE-T1上基本是闲置的,有些PHY会把不用的COL脚拉低或悬空。如果做硬件参考设计,不要因为看见这类引脚存在就去做复杂的冲突检测逻辑。

2.2 时序和数据速率:为什么25MHz时钟能跑100Mbps

好多人第一次看到MII时序会问:25MHz时钟,数据总线只有4位,怎么能到100Mbps?这个算术很简单:4位 × 25MHz = 100Mbps。

每个TX_CLK上升沿,MAC在TXD上放4个比特,也就是一个半字节,PHY在每个时钟沿把这4比特收走。比如要发送0xA5这个字节,MAC会分两次发送:先发高4位0xA,再发低4位0x5。PHY把两个半字节拼成一个字节。

在10Mbps模式下,TX_CLK会降到2.5MHz,数据总线上依然是4位。所以MII接口天然兼容10M和100M,靠的就是切换时钟频率。这种设计思路在调试时很实用:如果怀疑PHY工作在错误速率,直接用示波器量TX_CLK频率就能判断。

另外注意,MII的电平一般是3.3V CMOS电平。调试时如果用逻辑分析仪,通道阈值要按3.3V设置,否则可能捕捉到错误的电平跳变。有些车载PHY的IO电压可能支持1.8V,要严格按数据手册配置,不能拿过来就接3.3V。

2.3 MII调试的实操心得

调试MII接口,我用逻辑分析仪比示波器多。示波器看波形直观,但MII有至少10个信号,全部接上示波器探头的操作成本很高。逻辑分析仪通道多,而且可以直接解析时序,效率高得多。

我的调试顺序一般是先抓发送方向:把TX_CLK、TX_EN、TXD[3:0]四个信号接上,触发条件设成TX_EN上升沿,然后让设备对外发数据。如果触发到了,就能看到TXD上的数据流应该是从0x0到0xF的稳定变化,如果TXD一直悬空或者乱跳,多半是MAC侧初始化没完成。

再抓接收方向:用RX_CLK、RX_DV、RXD[3:0]四个信号,触发RX_DV上升沿,模拟对端发数据进来。这里最容易踩的坑是地线没接好,逻辑分析仪接地不良导致全通道毛刺。MII信号速率不算高,25MHz,普通逻辑分析仪完全够用,不用上高端设备。

还有一个经验:MII接口的TXD如果悬空,会因为线路噪声产生随机跳变,看起来像是MAC在发数据,实际上是浮空电平。检查原理图时一定要确认TXD和RXD是否通过合适的上拉/下拉电阻固定空闲电平,避免误判。

3. 进入PHY芯片:信号开始正式“变形”

3.1 第一站PCS:扰码,为什么要把比特流搅浑

数据进入PHY之后,第一道工序不是调制,而是“搅浑”,也就是扰码(Scrambler)。

你可能觉得奇怪:数据本来就是随机比特,还要再搅一遍?但实际以太网数据流里并不是均匀随机的,比如连续发送全0或全1的测试帧、空闲填充帧,会导致链路上出现长时间没有电平跳变的“长连码”。这种长连码对接收端非常不友好,因为时钟恢复依赖信号边沿,如果长时间不变,接收端锁相环就无法稳定跟踪频率。

扰码器本质上是一个反馈移位寄存器构成的伪随机序列发生器,把原始比特流和伪随机序列做异或运算,让输出看起来更“随机”,从而打散长连0长连1。这样既方便接收端时钟恢复,也能让信号的频谱能量分散,低频分量减少,对辐射和传导EMC都有好处。

100BASE-T1的扰码实现和普通百兆以太网不太一样,属于标准规定的固定多项式。作为应用工程师,不需要深究每个抽头怎么接,只要理解扰码的两个作用就够:一是避免长连码型,二是让频谱更平滑。接收端会做同步解扰,把原始数据恢复回来。

3.2 第二站PCS:3B2T编码,三进制登场

扰码之后的比特流,接下来要做一个和普通以太网差异很大的处理:3B2T编码。3B2T的意思是每3个比特映射成2个三进制符号。

为什么用三进制?简单算一下账:2个三进制符号有9种组合,而3个比特只有8种组合,多出来的1种状态可以用来做控制字符或错误检测。相比二电平,三电平在相同符号率下携带更多信息;相比四电平,三电平对信噪比要求更低,电路实现更简单。100BASE-T1选三进制,是一个在带宽、抗噪、复杂度之间折中的选择。

映射之后,符号率发生了变化:3比特变成2个符号,比特率100Mbps,那么符号率就是100Mbps × 2/3 ≈ 66.667M Baud。也就是说,双绞线上每秒要传约6667万个三进制符号。

这个数字很关键。你在示波器上如果看到PAM3波形大概每隔15纳秒跳变一次,那就是66.667M Baud在跑。这里不是普通网络测试仪能直接量出来的频率,也是很多人第一次抓波形时对不上号的原因。

3.3 第三站PMA:PAM3波形和差分电压

PCS把比特流转成三进制符号,PMA要做的事情就是把这些符号变成实际的电压波形。PAM3即三电平脉冲幅度调制,每个符号对应一个电压档位。

100BASE-T1在三进制符号和电压之间做映射,例如-1、0、+1三个电平,对应差分电压大约在-1V、0V、+1V附近。严格说,具体幅度要以IEEE 802.3bw标准中的发送器规范和各PHY数据手册为准,但宏观上你可以理解成“三档电压”。

所以在MII接口上看到的还是3.3V的CMOS方波,到了双绞线上就变成了三档电压的脉冲信号。普通示波器用单端探头去测这种差分信号,会看到一团噪声和振铃,因为地线回环引入了大量干扰;正确做法是用差分探头,探头的正端接其中一根线,负端接另一根线,看到的就是干净的三电平波形。

PAM3还有一个好处,就是高频分量比同速率的NRZ二电平信号低,配合单对非屏蔽双绞线,更容易通过汽车行业的辐射发射标准。这也是100BASE-T1在物理层设计上选择三电平的核心原因之一。

3.4 第四站:混合电路和回波抵消,一对线怎么干两件事

现在到了100BASE-T1最有意思的部分。普通百兆以太网用两对线,一对发送,一对接收,收发天然隔离互不干扰。100BASE-T1只有一对线,发送和接收共用同一对物理线,怎么做到同时收发?

答案是两个技术组合:混合电路(Hybrid)和回波抵消(Echo Cancellation)。

混合电路的概念其实很老,电话线就是一对线同时传双向语音,最早用的就是混合线圈,让本地发送信号和远端接收信号在一对线上叠加传输。车载以太网PHY内部用类似思路:发送信号经过混合电路耦合到双绞线,同时也会有一部分泄漏到接收路径里。因为发送信号是本地已知的,数字逻辑可以把它从接收信号里减掉,剩下的就是远端发来的信号。

现实当然更复杂。线缆阻抗不可能完美匹配,温度变化、连接器阻抗不连续都会让本地泄漏信号发生畸变,简单减法只能去掉一部分,残留的回声需要自适应滤波器进一步抵消。这个自适应过程就是回波抵消器不断调整滤波器系数,把残留回声压到足够低的过程。

所以如果你发现某个100BASE-T1链路能link up但吞吐率上不去,或者误码率偏高,除了看线缆和连接器,还要回头确认PHY的回波抵消是否正常收敛。很多情况下问题不在软件,而在PHY模拟前端的供电噪声和接地质量。回波抵消对这部分的敏感度,远超普通以太网PHY。

4. 双绞线上的“最终形态”:PAM3信号与链路建立

4.1 100BASE-T1的MDI和连接器

MDI(Medium Dependent Interface)是PHY和线缆之间的物理接口,也就是常说的“网口”部分。100BASE-T1的MDI只有一对差分线,使用100Ω特性阻抗的单对非屏蔽双绞线,标准通信距离是15米。

车载连接器常用的类型包括H-MTD、Mate-AX、USCAR等,这些连接器专门为车载以太网设计,体积比普通RJ45小很多,能够满足车内振动、温度、EMC的严苛要求。从PHY出来到连接器之间,通常会放共模扼流圈,用来抑制共模干扰,同时让差分信号正常通过。

PCB设计上,从PHY的发送接收引脚到共模扼流圈再到连接器的差分走线,要严格控制100Ω差分阻抗。走线要等长、同层、对称,越靠近连接器越要注意参考地是否完整。差分线下方如果被电源层分割,阻抗就会出现突变,回波损耗超标是跑不掉的。

这里有个容易被忽略的细节:双绞线到连接器的剥线长度,也就是“非绞合段”,越短越好。很多EMC测试失败,最终查下来就是剥线太长,双绞线失去了绞合抑制干扰的能力。

4.2 为什么用双绞线而不是两根平行线

这个问题看起来基础,但在车载现场经常被问:既然只要两根线,为什么必须是“双绞”的?

双绞线的基本原理是:两根导线按一定节距绞合,外界的电磁干扰会在两根线上感应出幅度接近、方向接近的共模电流,接收端用差分放大器做差,共模干扰相互抵消。如果两根线平行布置,它们到干扰源的距离不同,感应的噪声幅度就不一致,做差后还会留下残差。

同时,双绞线每个绞环都会让外部磁场在回路中感应的电动势方向相反,进一步降低磁耦合。绞距越小、节距越均匀,抗干扰效果越好。车载环境电磁干扰复杂,单对非屏蔽双绞线能通过EMC测试,靠的正是绞合带来的共模抑制能力。

实际施工时还要注意:不要对双绞线做“解绞”处理。比如为了做连接器压接,把端头两根线拉开很长一段,这等于破坏了绞合结构。规范上对非绞合长度有严格要求,通常要求越小越好。经验做法是剥皮后在10毫米以内完成端接,除非连接器厂家的指导书明确允许更长。

4.3 链路怎么“对上暗号”:Link Training与主从协商

双绞线上有了三电平PAM3信号,但PHY之间怎么建立起通信?普通百兆以太网有自动协商机制来确认速率和双工模式,100BASE-T1基本不走传统自动协商,而是靠一个叫Link Training的过程完成初始化和适配。

在Link Training阶段,两个PHY会互相发送训练序列,做时钟恢复、链路质量检测、回波抵消器收敛,同时还要协商出主从角色。主PHY提供参考时钟,从PHY跟随主PHY的时钟,避免两侧发送时钟频率不一致导致累积漂移。这个过程通常在上电后自动完成,对外部软件是透明的。

这也是排查时的关键认知:如果PHY没有完成Link Training,MII接口上的RX_CLK可能都不稳定,MAC侧根本收不到有效数据。所以检查链路故障时,第一件事不是抓MII波形,而是读PHY的link状态寄存器,确认物理层是否已经up。物理层没up,MAC层什么数据都不会有。

Link Training阶段的波形和正常数据阶段也不一样,示波器上看到的可能是固定训练序列而非业务数据。如果经验不足,看到这种“奇怪波形”会以为板子坏了,其实只是PHY还在初始化。等link状态置位后,再看波形就是正常的PAM3跳变。

4.4 接收端怎么把信号“变回去”

信号在双绞线上是PAM3三电平模拟信号,接收端必须把它一步步还原成MII接口的数字半字节。这个逆过程大致是:

差分接收放大器先把双绞线上的微小差分电压放大,然后ADC采样,把模拟信号变成数字采样点。接下来是自适应均衡器,补偿线缆和连接器带来的高频衰减,让眼图张开。回波抵消器减去本地发送的泄漏信号,保留远端信号。符号判决电路根据幅度判断当前采样点是-1、0还是+1,得到三进制符号,再经过3T2B解码还原成比特,最后解扰恢复出原始数据流。

如果你在PHY内部数据通路的角度看整个双向转换,就是:MII半字节 → 扰码 → 3B2T → PAM3电压 → 双绞线 → PAM3采样 → 均衡 → 回波抵消 → 符号判决 → 3T2B逆映射 → 解扰 → MII半字节。

这也是标题里“变形记”的核心意思。信号从MAC出来还是规整的数字方波,经过PHY层层变换,在双绞线上已经变成“陌生人”,接收端再把它一层层变回来。调试时如果不理解这层关系,很容易在错误的位置用错误的方法去测信号。

5. 实测与排查技巧:从MII一路抓到双绞线

5.1 三个关键测量点怎么选

针对100BASE-T1做信号测量,我的经验是分三个点来看。

第一个点是MAC侧MII引脚。用逻辑分析仪抓数字时序,确认MAC和PHY之间的数据交互是否正常。这里的评价标准是协议时序,不是信号质量。

第二个点是PHY到共模扼流圈/连接器之间的差分走线,用差分探头看PAM3波形。这里可以初步观察信号幅度、上升沿、是否有明显振铃和过冲。

第三个点是MDI连接器处或者线缆远端,这才是标准一致性测试关注的地方。测到的PAM3眼图、峰值电压、功率谱密度,直接反映物理层是否合格。

实际工作中我见过不少人拿着单端探头直接戳MDI,然后抱怨波形噪声大得没法看。这不是芯片有问题,而是测量方法不对。100BASE-T1的MDI是差分信号,必须用差分探头或者至少使用示波器的两个通道做A-B数学运算。普通单端探头测出来的波形完全没有参考价值。

5.2 100BASE-T1常见的测试用例

车载以太网PHY的一致性测试,业界比较通用的是OPEN Alliance TC1(发送器测试)和TC2(接收器测试)这套体系。应用工程师即使不负责PHY认证,了解这些测试项也有助于定位问题。

发送器侧的核心测试项包括:峰值差分输出电压,看PAM3三电平幅度是否在规范范围内;发送器功率谱密度(PSD),看频谱能量是否满足限值模板;眼图模板测试,看三只眼是否都落在模板范围以外;另外还有回波损耗测试,评价端口阻抗匹配情况。

接收器侧的测试则更多是注入不同类型的干扰信号和码型,验证接收端在最差条件下也能保持低误码率。比如针对串扰、噪声、幅度衰减等不同场景的容忍度测试。

这些测试需要专用夹具和测试软件,普通实验室不一定具备条件,但至少眼图测试和峰值电压测试用示波器加差分探头就能大致评估。如果眼图明显闭合,先看看是不是线束材质不对、连接器压接不良、共模扼流圈选型不合适,这些是常见的失败原因。

5.3 实战中我踩过的坑

最后分享几个真实踩过的问题,都是花了时间排出来的,给后来的朋友省点弯路。

第一,用单端探头测MDI导致看到“假故障”。当时同事说双绞线波形全是噪声,怀疑PHY坏了。换成差分探头后,信号干干净净,眼图也正常。测量方法错误会浪费大量时间。

第二,误把10M模式当100M模式在调。某次发现MAC发送逻辑正常但速度极慢,查了一圈,最后看MII的TX_CLK频率是2.5MHz而不是25MHz,原来PHY自动协商结果停留在10Mbps,MCU配置里把速率写死了。MII接口理论上兼容10M和100M,很多问题其实出在模式没有正确切换。

第三,Link Training不过导致RX_CLK不稳定。板子上电后MAC一直报接收错误,示波器抓RX_CLK发现时有时无。后来读PHY状态寄存器才发现link一直是down,回波抵消没有收敛。排查方法就是先看PHY寄存器再看MII波形,顺序不能反。

第四,共模扼流圈选型不当引发EMC问题。起初样机在实验室功能全通,上车做辐射发射测试超标。检查后发现是共模扼流圈的共模截止频率选择不合适,换成厂商推荐的100BASE-T1专用器件后问题消失。这类问题在实验室环境很难复现,早期设计阶段一定要按参考设计和数据手册推荐选型。

第五,PCB差分走线跨分割导致回波损耗超标。有一版板子因为电源层分割,差分走线有一小段跨越了不同参考平面,回波损耗测试直接不过。改版把参考地做成连续平面后,指标恢复正常。做车载以太网,PCB的细节真的不能将就。

6. 如果重新做一遍,我会怎么安排

说实话,车载以太网这东西,原理书看三遍不如上手调一次。如果让我重新做一遍100BASE-T1的项目,我会给自己定这么几条执行顺序。

先看PHY寄存器,建立物理层状态基线。上电后第一件事不是接示波器,而是确认PHY供电、时钟、复位都正常,然后读链路状态、主从模式、温度寄存器,确认PHY本身工作正常,再往协议栈和驱动层面查。

再看波形,而且是按顺序看:先看MII接口的数字逻辑,TXD/RXD是否按预期翻转;再看MDI处的PAM3差分波形,检查眼图是否清晰、幅度是否正常。这两个点一个代表数字域是否通,一个代表模拟域是否好。数字域通但模拟域乱,方向就在线束和连接器;模拟域好但数字域乱,方向就在MAC侧配置和时钟。

最后才是协议和性能测试。通过交换机互通验证、打流测吞吐率、记录丢包率和往返延迟,把问题域从物理层往上层一层层收窄。

还有一个体会:做车载以太网,EMC意识要在原理图阶段就建立起来,不要在测试失败后才补救。电源滤波、共模扼流圈、TVS管、PCB阻抗控制,这些不是可选项,是一开始就必须要做的东西。很多团队做功能样机很快,一到EMC测试就返工,本质上还是对物理层的投入不够。

100BASE-T1虽然只是车内以太网的一小步,但这些从MII到双绞线的信号变换思路,后面再看1000BASE-T1乃至更高速率的车载以太网,会发现都沿用了同样的分层逻辑:数字域和模拟域解耦,介质差异被物理层隔离,MAC永远只面对统一的MII类接口。把这条“变形记”链路彻底弄明白之后,再复杂的PHY问题也都能找到下手的地方。

更多推荐