做车载以太网项目的人应该都有这种体会:传统以太网什么都好,就是线太多。100BASE-T1已经省掉一半线对,但真到了门模块、车窗开关、后视镜调节、座椅传感器、麦克风阵列这种末端节点,你需要的其实是那种“一根线把数据传了、顺带把电也送了”的方案,这就是单对以太网(SPE,Single Pair Ethernet)存在的意义。NXP TJA1410/TJF1410 PMD收发器就是围绕这个场景推出的新面孔,它不是一个完整PHY,而是把物理层里最贴近线缆的那一部分单独做成了芯片。这篇文章我会把SPE的技术背景、PMD的分层逻辑、硬件设计和踩坑经验一次讲透,适合正在做车载ECU、工业传感器网络或者想给现有系统减线的工程师参考。
1. 从CAN到单对以太网:TJA1410要解决的布线难题
1.1 线束轻量化是刚需
先看一组谁都绕不开的现实数据。一辆现代汽车的全车线束长度普遍在3到5公里,总重量能到20到40公斤,这还没有算连接器和防护材料的重量。线束越重,油耗或者电耗越高,装配工时越长,线束在车内走线占用的空间也越难安排——尤其是在车门铰链、座椅滑轨、方向盘管柱这种活动部件附近,线束的弯曲半径和机械寿命都受限制。
传统以太网在这个场景里很尴尬。100BASE-TX要两对线,1000BASE-T要四对线,加上屏蔽层和连接器,线径比一根CAN线粗得多。车载摄像头、毫米波雷达、超声波传感器、语音麦克风这些节点,本身对带宽的要求并不高,但数量多、分布散,每一路都用四对线去做,无论成本还是布线都是灾难。
CAN总线的问题则相反——线是细了,但带宽不够。CAN FD满打满算也就几Mbps的有效吞吐,做固件升级、日志回传、传感器原始数据采集都很吃力。汽车区域控制器架构起来之后,一个区域控制器要汇总车门、座椅、灯光、空调风门、雨刮等一堆节点的数据,CAN的带宽捉襟见肘,而以太网的优势又因为“线太多”打折扣。于是SPE被推到台前:它把以太网物理层收敛到一对双绞线上,用一根细线完成以前两根甚至四根线才能干的事。
1.2 SPE带来的三个直接收益
SPE不是“少一根线那么简单的物理改造”,它同时改变了线束成本、供电方式和协议栈兼容性。
第一,物理层成本下降。单对线的线缆更细,连接器针脚从RJ45的8针甚至车载专用连接器的多针变成2到4针,连接器体积和成本同步下降。对于一辆车里有几十个低速节点的场景,这个节省非常可观。
第二,PoDL(数据线供电)让电源线也省了。SPE可以在同一对线上同时传输差分数据和直流电源,节点不再需要单独拉一路12V供电线。门模块、传感器节点、执行器,只要从总线取电就行,整条链路只需要一根线束。
第三,协议栈完全兼容标准以太网。SPE物理层之下依然是IEEE 802.3的以太网帧,TCP/IP、TSN(时间敏感网络)、SOME/IP诊断、DoIP刷写这些标准以太网生态的东西直接能用。工业场景也一样——老旧的4-20mA/HART现场总线带宽和诊断能力有限,SPE让传感器可以直接接入标准以太网,从现场一路通到云平台。
1.3 SPE物理层标准速览
SPE不是单一标准,而是IEEE 802.3里多个单对线物理层规范的统称。NXP的TJA1410/TJF1410落在这个生态里,搞清楚各标准的差异,有助于理解它在整个版图中的位置。
| 标准 | 速率 | 拓扑 | 典型距离 | 典型场景 |
|---|---|---|---|---|
| 10BASE-T1S | 10Mbps | 多点总线/点对点 | 25m左右(多点段) | 传感器、执行器、区域IO、车门/座椅控制 |
| 10BASE-T1L | 10Mbps | 点对点 | 最长1000m | 过程仪表、楼宇自控、油气监测 |
| 100BASE-T1 | 100Mbps | 点对点 | 15m左右 | 车载摄像头、雷达、IVI互联 |
| 1000BASE-T1 | 1Gbps | 点对点 | 15m左右 | 域控制器骨干、高带宽传感器 |
(具体距离参数以IEEE 802.3规范原文为准,不同线缆等级下的指标会有差异。)
注意这里的前两行:10BASE-T1S和10BASE-T1L都是10Mbps,但定位完全不同。10BASE-T1S主打短距离、多节点共享总线,适合车内分布式低速控制,支持多点拓扑意味着可以像CAN一样把多个节点挂在一根母线上;10BASE-T1L主打长距离点对点,适合工业现场的把传感器信号从百米开外传回来。TJA1410/TJF1410最典型的落点就是10BASE-T1S这类低速短距场景,这和NXP已有的TJA1462/1463(完整的10BASE-T1S PHY)产品线形成呼应。
1.4 TJA1410/TJF1410在SPE版图中的定位
NXP的SPE收发器矩阵里,TJA1101/TJA1102是100BASE-T1,TJA1120是1000BASE-T1,TJA1462/TJA1463是10BASE-T1S完整PHY。TJA1410/TJF1410的产品命名和定位有点不太一样——它强调的是PMD(Physical Medium Dependent,物理介质相关子层)。
从命名习惯看,NXP收发器产品线里TJF开头的通常是fail-safe版本,也就是在引脚兼容基础上加强了故障安全监控逻辑,适合功能安全相关设计。TJA1410作为普通版本面向常规节点,TJF1410则面向车门控制、制动传感器、安全气囊周边这类对功能安全有要求的场景。
从系统设计角度理解,这颗器件把物理层里最“碰介质”的那部分(发射驱动、接收前端、与线缆直接交互的模拟电路)单独拎出来。它解决的是一类更底层的需求:当主控芯片已经集成或准备集成以太网MAC/PCS/PMA,系统只需要一颗小封装、低成本的模拟收发前端来完成线缆信号驱动时,完整PHY就显得“过重”了。PMD芯片让物理层适配变得更灵活,但也要求设计者更清楚自己在链路上每一层放的是什么。
2. 为什么一颗“PMD”能独立成芯片:物理层的拆分逻辑
2.1 PCS/PMA/PMD三层到底各干什么
以太网的物理层在标准里不是一大坨,而是拆成了PCS(物理编码子层)、PMA(物理介质附件)、PMD(物理介质相关)三个子层。拿快递物流来类比:PCS是分拣打包中心,负责把数据编码成适合传输的形式,比如加扰、4B/5B编码、8B/10B编码,让数据流里不出现太长连续的同电平信号,方便接收端恢复时钟;PMA是干线运输,负责串并转换、比特级时钟恢复,把并行数据变成高速串行比特流;PMD是最后一公里的送货员,直接面对具体的“路况”——线缆的特性、连接器的质量、电磁干扰环境,都由它来应付。
传统车载以太网PHY芯片(比如TJA1101、TJA1120)把这几个子层全部集成在一颗芯片里,对外暴露MII/RMII/RGMII接口给MAC,对内直接接差分线缆。这种方案成熟、省心,系统厂商几乎不用关心物理层内部怎么工作。
但它的代价是:每个节点都要摆一颗完整PHY,不管这个节点只是传一个车窗开关状态还是传一路高清视频,处理能力都“固化”在芯片里了。而且协议升级或者场景变化时,整个PHY都要换。PMD分层设计的思路则是把这些能力解耦——主控负责PCS/PMA这种偏数字、偏协议的部分,PMD只负责最底层模拟收发。TJA1410/TJF1410就是这么一颗器件。
2.2 TJA1410只做PMD的取舍
用PMD做收发器,最直接的好处是系统灵活性大幅提升。数字侧的处理能力可以集成在主控里,也可以放在FPGA里,甚至可以根据应用场景在软件层面灵活配置;模拟侧则针对线缆特性、连接器、防护等级做专项优化,两者互不拖累。
从系统物料上讲,如果一颗主控芯片集成了以太网MAC和PCS/PMA,外部只需要一颗PMD来完成模拟前端,比插一颗完整PHY省下了不少PCB面积和BOM成本。对多个SPE端口的网关或传感器集线器来说尤其明显——8个端口如果用8颗完整PHY,成本和占板面积都很可观;如果能用PMD把模拟前端集中处理,整个模块可以做得小很多。
当然,取舍也很明显。PMD依赖主控侧提供配套的协议处理能力,如果你用的MCU没有集成PCS/PMA,那光靠TJA1410是起不来的,链路就断在中间。所以这颗芯片的目标用户不是“随便哪个节点都能用”,而是“知道自己在做什么、主控选型已经定下来”的工程师。
2.3 TJA1410与TJF1410的关系:普通版与fail-safe版
TJF1410在NXP的命名体系里,大概率属于fail-safe版本。这类版本的典型特征是:引脚和功能上兼容普通型号,但内部会增加安全监控逻辑,比如检测时钟失效、电压跌落、链路异常,并通过错误输出引脚把故障状态传给主控。
对功能安全设计来说,外置一个fail-safe收发器可以简化安全机制的设计。举例来说,如果收发器内部时钟停振,普通PHY可能只是静默失效,系统要等看门狗超时才发现问题;而fail-safe版本会主动拉低错误引脚,让MCU在第一时间进入安全状态。做ASIL B及以上等级功能的工程师,通常会优先考虑这类版本。
但要注意,fail-safe是芯片层面的辅助,不等于整个系统就自动满足了功能安全等级。安全分析(FMEA、FMEDA)、安全机制设计、软件诊断覆盖率还得自己落地,TJF1410只是让这条路径更好走一些。
2.4 数字接口、供电与封装:设计前先搞清楚这几件事
在我看到的所有“翻车”案例里,把PMD当完整PHY用是第一大坑,第二大坑就是接口没搞清楚就画板子。TJA1410作为PMD,数字侧接口的具体引脚定义和协议,必须以官方数据手册为准。设计前一定要确认几件事:
- 接口类型:PMD与主控/中间层芯片之间走的是什么接口,信号电平是1.2V还是2.5V/3.3V;
- 供电组:模拟电源、数字电源、IO电源是否分开,电压分别多少;
- 配置引脚:PHY地址、工作模式、唤醒方式是不是通过硬件引脚在复位上升沿采样;
- 封装:小封装意味着散热能力有限,PoDL供电电流较大的场景要算好热预算。
这些信息在动手画原理图之前至少要过一遍。我自己的习惯是先画一张表,把电源、地、时钟、复位、配置、数据接口、状态输出全部列出来,再逐项核对,能避免八成以上的低级错误。
3. 一根线又传数据又供电:SPE信号链和PoDL的核心原理
3.1 混合电路与回波消除:单线对全双工怎么实现
单对线要同时收发数据,最大的问题在于“自己的大嗓门盖住了对方的小声说话”。发射端在线对上灌入的是幅度不小的差分信号,接收端同时要从同一根线上提取远端传过来的微弱信号,如果不做处理,发射信号直接就把接收通道“堵死”了。
这里有两个关键机制。第一是混合电路(Hybrid),它利用桥式结构让本地发射信号在接收路径上互相抵消。理想情况下,混合电路能抵消掉大部分本地信号,但线缆阻抗随频率、长度、温度变化,实际抵消效果有限。第二是数字回波消除(Echo Cancellation),PCS/PMA里的自适应滤波器会学习链路的回波特性,把残余的自身信号从接收信号里减去。回波消除的好坏直接影响链路能跑多远、误码率多高。
这也是为什么SPE链路建立需要一点时间——接收端的均衡器和回波消除器需要训练,训练完成后才进入正常数据传输。如果你用示波器看链路刚建立时的波形,会发现信号幅度和眼图有一个“由乱到稳”的过程,这就是训练阶段在工作。PMD负责把模拟信号收进来,训练算法的载体在PCS/PMA一侧,这就是两者分工的典型体现。
3.2 差分信号与接收均衡:抗干扰的底气
SPE能和CAN、LIN在抗干扰上掰手腕,靠的是差分信号结构。一对双绞线里,两条线受到的电磁干扰基本一致,接收端拿正端减负端,共模干扰就被削掉了。这就是为什么SPE线缆哪怕只有一对线,也要强调双绞结构——绞合越密,两条线上的共模噪声相关性越强,差分抑制效果越好。
线缆还有一个躲不掉的问题:低通效应。高频分量在铜线上衰减比低频严重,距离越长,信号边缘越圆润,眼图越“糊”。接收端PMD内部的均衡器会把高频段增益补回来,让信号恢复出清晰的跳变沿。10BASE-T1L能做到1000米传输,很大程度上就是靠这种均衡技术。
低速率的标准(10BASE-T1S)对均衡的压力小很多,这也是它能在成本上做得更低的底气。如果节点本身只需要10Mbps,没必要为高速信号处理买单,这颗PMD的规模和功耗都可以控制得很低。
3.3 PoDL如何把直流电“叠”到以太网线上
PoDL的原理可以概括成一句话:数据和直流电靠频率来分家。以太网差分信号是高频交流,直流电源是0Hz,两者叠加在一条线上,入口处各走各的路。
看一个典型节点:总线线对进来后先分成两条支路。电源支路经过一个大电感接入PMD或后级电源电路,电感对直流是低阻,对高频信号是高阻,所以以太网信号不会串进电源里。信号支路则经过耦合电容接进PMD的收发引脚,电容对直流是断开的,所以直流电不会灌进信号电路。
设计PoDL网络时有几个参数要算。电源电感的额定电流必须大于节点最大工作电流,而且要注意“电感量随直流偏置跌落”这个特性——看起来标称1A的电感,实际流过0.8A时电感量可能只剩一半,高频阻抗随之下降,信号会从电源路径漏掉,造成丢包。耦合电容的容值要结合信号最低频率来选,太小会让低频分量损失,太大则和电源电感形成不希望的谐振。
另外要注意供电极性。PoDL对直流电压的极性和系统供电定义有要求,虽然以太网差分信号本身不关心A/B线叫法,但整体供电网络的极性必须按系统定义接对,否则在线缆上接了反的设备,轻则链路不通,重则烧器件。
3.4 PMD为什么必须靠近连接器
模拟高频信号在PCB上走过一段距离后,衰减是一方面,更麻烦的是容易被板内其他信号耦合干扰。SPE差分走线的优势在于抗扰,但在PCB上,差分对旁边的时钟线、开关电源走线、甚至过孔边缘都可能破坏差分耦合结构,导致共模噪声转化为差模噪声。所以PMD这类器件在布局上有一条铁律:尽量靠近连接器,缩短模拟侧走线(trace)长度。
数字接口那边恰恰相反,数字信号抗干扰能力强,可以走长一点。这样就形成了一套典型的布局思路:连接器附近放PMD和共模扼流圈,防护器件紧挨连接器入口;主控或中间层芯片可以稍微靠内,两者的距离用数字接口总线连接。这种布局既保证信号质量,也让PCB布局有了操作空间,不至于所有元器件都挤在连接器旁边。
3.5 链路建立与唤醒:低功耗场景的关键
SPE节点很多是常年挂在总线上的传感器和执行器,功耗非常敏感。以太网物理层有SLEEP和WAKE状态,类似CAN的休眠唤醒机制。节点在总线上检测到唤醒脉冲后,PMD会从低功耗模式唤醒,通知主控恢复通信。
设计低功耗时要注意:PMD本身在SLEEP状态下的静态功耗要单独核算;唤醒逻辑要能区分真正的唤醒脉冲和噪声扰动,否则总线上一有点波动整条链路的节点全醒了,功耗直接崩掉。有的器件会提供唤醒过滤或者阈值配置,设计时可以根据线缆长度和噪声环境做调整。
4. 硬件设计与PCB走线(trace)实操要点
4.1 最小系统电路与BOM
一颗PMD的最小系统比完整PHY还要简单,但“简单”不等于“可以随便来”。我的参考BOM如下(具体型号和参数以TJA1410数据手册为准):
| 器件 | 作用 | 选型参考 |
|---|---|---|
| PMD收发器 | 物理介质收发 | TJA1410 / TJF1410 |
| 共模扼流圈 | 抑制线缆共模噪声 | 阻抗匹配、额定电流足够 |
| 耦合电容 | 隔直流通信号 | 容值按信号频率选,耐压足够 |
| ESD/TVS防护 | 静电和浪涌防护 | 汽车级需满足ISO 7637相关等级 |
| 去耦电容 | 电源滤波 | 模拟电源和数字电源分开 |
| 晶振或时钟源 | 提供参考时钟 | 频率按手册要求 |
| 电源电感 | PoDL取电 | 饱和电流>节点最大电流 |
晶振电路是新手常踩坑的地方。晶振旁边两个负载电容要根据晶振的CL值来计算,不是随便焊两个22pF就完事。算错了晶振可能起振慢、频率偏差大,链路跟着出问题。另外晶体走线要短,不要穿过大电流区域,保证参考时钟干净。
4.2 差分走线:100Ω阻抗、参考平面和过孔
SPE线缆的特性阻抗是100Ω,PCB上的差分走线也要按100Ω差分阻抗来控制。没有阻抗控制的板子,做点对点短距离可能“碰巧能跑”,但一致性、量产良率和长距离传输都会出问题。PCB加工时一定要跟板厂提阻抗控制要求,并把叠层结构给到板厂计算。
走线时的几个要点:
- 差分对的两根线要保持等长,长度差控制在几密耳以内,转角处用45度角或圆弧,不要用直角;
- 差分对内部间距要恒定,间距变了阻抗就会变;
- 差分对与其他信号线保持至少3倍线宽的距离,避免串扰;
- 下方参考平面要完整,不要有开槽或裂缝切断回流路径;
- 换层时差分对两个过孔尽量靠近,并且避免信号在过孔上残留过长的stub。
SPE的速率虽然不高(10Mbps),但信号边缘仍然有高频分量,布线上按“能做好就做好”的标准去处理,绝对不吃亏。
4.3 共模扼流圈、ESD与连接器
共模扼流圈(CMC)在SPE链路里几乎是标配。它让差模信号正常通过,对共模噪声呈现高阻抗,起到抑制线缆传导发射和抗外部干扰的作用。选型时看三个参数:额定电流、共模阻抗、插入损耗。PoDL供电电流比较大的场景,CMC的直流电阻要尽可能低,不然压降和发热吃不消。
ESD防护器件放在连接器入口处,尽量靠前。TVS管的结电容会影响高频信号,选型时要兼顾钳位电压和电容两个指标。车载场景还要看整个模块能不能扛住ISO 7637-2的瞬态脉冲和抛负载工况,这部分测试如果等样机出来再补,改板成本会很高,前期就要把防护等级定清楚。
连接器不是随便选一个“能插上”就行。SPE连接器除了要保证接触可靠,还要看带宽和回波损耗。车载上常见的H-MTD、Mate-AX都是为以太网单对线设计的专用连接器,工业场景有用单对线化的M8/M12。选型时把连接器的回波损耗参数拿出来看,尤其在高频频段要留余量。
4.4 用眼图和TDR跟踪信号质量
调完板子之后,最直接的手段是拿示波器测眼图。用差分探头点在PMD出线侧或对端接收点,看眼图的眼高、眼宽、抖动。眼图中间那块“空白”越方正,说明信号质量越好。如果眼图闭合严重,先看是不是阻抗不连续、走线过长或者供电噪声耦合。
TDR(时域反射计)用来测传输线的阻抗特性也很实用。它能直观显示走线上每一处的阻抗变化,找出连接器、过孔、线缆接头这些阻抗突变点。做多点总线调试时,TDR能帮你快速定位是哪个节点的stub过长导致反射过大。
我调试时习惯在PCB上预留几个测试点:TP1连接器入口处、TP2 PMD引脚附近、TP3主控数字接口侧。留了测试点,示波器探头就能稳定挂住,不用拿手按在芯片引脚上,测量结果也整齐得多。
5. 上电、寄存器配置与故障诊断
5.1 上电时序与硬件配置引脚
PMD这类器件对上电时序有要求,通常是先电源稳定、再释放复位、然后等待时钟稳定、最后使能数据接口。电源同时上电的场景下,要确认器件允许的复位释放时序范围,避免出现“复位还没释放,先有数据接口信号灌进来”的诡异问题。
硬件配置引脚通常在复位释放时被采样,比如PHY地址、工作模式、唤醒行为。这类引脚不能悬空,必须按手册要求接上下拉或确定电平。调试时如果发现链路状态不对,先量这些引脚的电平,确认和设计意图一致——我遇到过三次“芯片地址配错导致MDIO读不到”的案例,最后都是在这个环节查出来的。
5.2 关键寄存器与链路状态
作为PMD,TJA1410的寄存器配置会比完整PHY简单,但核心监测点还是一样的:
- 控制寄存器:软复位、使能发射、配置工作模式;
- 状态寄存器:链路状态、信号检测、远程故障;
- 芯片信息寄存器:芯片ID、版本号;
- 扩展状态/诊断寄存器:信号质量、错误计数、温度(如果支持)。
链路状态是第一位要看的。如果链路起不来,先读状态寄存器的link位和信号检测位,判断是物理层没收到信号,还是上层协商没通过。信号检测位为0,说明线缆或对端收发有问题,问题在物理层;信号检测有值但link没建立,多半在配置或协商环节。
代码层面,用MDIO读写寄存器的流程大致是:上电后先等复位完成,读芯片ID确认通信正常,再按设计配置寄存器,最后轮询或中断等待链路建立。读写时序我一般封装成基础函数,方便在调试阶段手动执行:
// 伪代码示例,实际寄存器地址以数据手册为准 uint16_t phy_id = mdio_read(phy_addr, MII_PHYSID1); if (phy_id != EXPECTED_ID) { printf("PHY ID mismatch: 0x%04x\n", phy_id); return ERROR; } mdio_write(phy_addr, MII_BMCR, BMCR_RESET); while (mdio_read(phy_addr, MII_BMCR) & BMCR_RESET) { delay_ms(1); // 等待复位完成 } mdio_write(phy_addr, MII_BMCR, BMCR_ANENABLE | BMCR_ANRESTART); // 等待链路建立,带超时保护 for (int i = 0; i < 100; i++) { uint16_t status = mdio_read(phy_addr, MII_BMSR); if (status & BMSR_LINK_STATUS) { printf("Link up after %d*10ms\n", i); return OK; } delay_ms(10); }这段代码的要点是:复位后一定要读回状态确认复位完成,不要直接往下写寄存器;等待链路建立必须带超时,否则死循环会把整个ECU卡死。
5.3 用NXP生态快速跑通
如果你是第一次用NXP的MCU配这颗收发器,建议直接走官方SDK/RTD里的PHY驱动例程。S32K以及NXP其他带以太网控制器的MCU,SDK里通常都有PHY驱动的抽象层,提供init、link status获取、autonegotiation配置等接口。直接在这个基础上改,比自己从寄存器硬抠快得多。
跑通例程之后再做减法:按照需求关掉用不到的功能、裁剪没必要的寄存器读写、调整链路建立时间。这里面有个经验是:先把官方demo板调通,拿到可靠的基线数据(眼图、误码率、唤醒时间),再动自己的板子。后续改layout出了问题,可以和基线数据做对比,排障效率高很多。
5.4 典型故障诊断链路
现场调试SPE链路时,我一般按这个顺序排查:
- 量电源和地:PMD各供电引脚的电压是否在规格范围内,纹波是否过大;
- 量时钟:晶振是否起振,频率偏差是否超标;
- 读芯片ID:确认MDIO/MDC能正常通信;
- 量配置引脚:确认PHY地址、模式配置和设计一致;
- 读状态寄存器:看信号检测和链路状态位;
- 示波器测差分线:看是否有正常信号、幅度是否符合预期;
- 检查防护器件和CMC:有没有焊接错误、虚焊、方向反了。
这套顺序从最底层到最上层,每一步都能把问题范围缩小一半。不要一上来就怀疑软件配置,物理层的问题必须用物理手段定位,先用示波器量到“线缆上确实有正确信号了”,再谈寄存器配置。
6. 实测最容易踩的坑
6.1 坑一:把PMD当完整PHY用
这是我在社区里看过最多、也最典型的误解。TJA1410是PMD,不是一颗完整的PHY,它不负责PCS/PMA的协议处理。如果主控侧没有配套的以太网MAC/PCS/PMA能力,光靠这颗器件是无论如何也建立不了以太网链路的。
判断方法很直接:看主控芯片是否集成了相应的以太网物理层协议处理模块。如果主控只有MAC,没有PCS/PMA,那还需要一颗中间层芯片把数字协议和模拟前端补全,否则链路中间断了一截。设计选型的时候先画一张“主控 – 中间层 – PMD – 连接器”的框图,每一层是谁、做什么,一目了然。
6.2 坑二:PoDL电感饱和
PoDL供电链路里的电感,选型时最容易踩“只看标称电流”的坑。电感厂商标的额定电流通常基于温升,实际的饱和电流可能低于标称值。当节点电流接近饱和电流时,电感量迅速跌落,高频阻抗变小,以太网信号会从供电通路漏掉,表现为丢包率上升、误码率超标,而且和负载电流强相关——电流一大就出错,电流小了又正常。
排查方法:用可调负载拉电流,同时用示波器看PMD电源引脚的电压和信号质量。如果电流增大后信号明显劣化,第一怀疑对象就是电感。选型时看电感的手册里有没有“直流叠加特性曲线”(电感量随直流电流变化的曲线),按节点实际最大电流再留20%-30%余量选。
6.3 坑三:多点总线的终端电阻放错
10BASE-T1S支持多点总线,在总线的两端各需要一支100Ω终端电阻,用来匹配线路阻抗。这里经常犯的错是:
- 只在靠近主控的一端放了终端电阻,远端忘了放;
- 每个节点都放了终端电阻,导致等效阻抗变成50Ω甚至更低;
- 终端电阻摆放的位置距总线末端太远,等于没放。
总线上的每个节点到总线的连接线(stub)也要尽量短。stub过长会形成反射点,在高速率下影响非常明显。用TDR可以很直观地看到每个节点stub带来的阻抗突变,调整布线时可以拿实测数据说话。
6.4 坑四:连接器选型只看尺寸不看带宽
SPE虽然是10Mbps起步,但连接器的带宽不能只看速率。连接器内部的接触结构、绝缘材料、屏蔽设计等,都会在高频段带来插入损耗和回波损耗。曾经有人拿一个只支持低速信号的通用连接器去搭SPE链路,短距离能通,线缆一拉长或者换一根线,误码率立刻超标。连接器选型必须看它的差分带宽能不能覆盖SPE信号的频率需求,最好留出足够的余量。
6.5 几点建议
最后说几点从项目里磨出来的体会。
第一,第一版设计就留好测试点,别等出了问题再想办法。TP1、TP2、TP3这几个关键的测试点占不了多少面积,但在排障时能省下大把时间。
第二,先仿真再做板。用IBIS模型做信号完整性仿真,能提前发现走线阻抗不连续、过孔stub过长、连接器带宽不足这类问题。仿真不能替代实测,但能把实测阶段“猜”的时间大幅压缩。
第三,高低温测试别省略。SPE链路对温度敏感,线缆和连接器在温度变化下电气参数会漂,PMD的发射幅度和接收灵敏度也会受影响。常温下跑得好不等于整车上能用,高低温循环和振动测试是必须做的。
第四,试产阶段做一次线缆一致性抽检。不同批次线缆的绞距、线径、绝缘材料可能有差异,直接影响链路余量。不要默认所有线缆都一样,抽检几卷线测一下眼图,心里有底。
我实际用下来,SPE的普及速度可能会比很多人预期的快。TJA1410/TJF1410这类PMD器件把SPE的引入门槛拉低了不少,但也要求设计者对物理层的分工理解得更清楚——你不需要搞懂每一比特怎么编码,但必须知道自己的链路里每一层是谁在干活的。动手之前把数据手册的框图看完,把主控能力和PMD的职责边界划清楚,后面会省很多事。