单对线以太网802.3cg深度解析:PAM3、PLCA与PoDL如何重构工业现场总线
2026/9/23 20:40:06 网站建设 项目流程

简介:IEEE 802.3cg-2019是IEEE 802.3标准的第5号修正案,面向网络工程师、硬件开发者及物联网从业者,系统定义了一对平衡导线上实现10 Mb/s以太网传输的物理层(PHY)规范、管理参数及可选供电方案。该标准在IEEE 802.3-2018基础上补充了10BASE-T1L与10BASE-T1S技术,并引入PLCA机制,适用于智能家居、工业自动化及远程传感器网络等低速可靠连接场景。资源包为单个PDF文件,大小5.41MB,包含完整的标准正文、图表及附录,可直接用于方案设计或协议学习。目前已有1067人学习下载,内容涵盖信号编码、调制解调、噪声抑制、链路管理及PoE供电等关键知识点,适合需要深入理解单对线以太网实现细节或进行相关产品研发的技术人员参考。

1. 单对平衡线上的 10 Mb/s 以太网:IEEE 802.3cg-2019 补了什么

IEEE 802.3cg-2019 是 IEEE Std 802.3-2018 的 Amendment 5,在单对平衡导体上追加了 10 Mb/s 物理层规范与配套管理参数。它带来两个新 PHY:10BASE-T1L 覆盖 1000 米点对点全双工,10BASE-T1S 覆盖 25 米多点总线,最多挂 8 个节点,并都支持在数据线上叠加电源(PoDL)。

对做现场总线替代、传感器采集、楼宇自控的人而言,这个修订把 RS-485/Modbus 一类私有物理层换成了标准以太网协议栈:线还是那两根,驱动、网关、抓包工具却全是现成的。

下面按物理层信号链、链路预算、PLCA 调度、PoDL 供电与排错四个方向拆,命令和参数以能直接复现为准。

2. 10BASE-T1L 物理层信号链:PAM3 块编码与 MASTER-SLAVE 时钟

10BASE-T1L 的 PCS/PMA 设计核心是:在低频资源紧张的 1000 米单对线上,用三电平 PAM3 把 10 Mb/s 塞进尽量窄的带宽,同时保证信号直流平衡,好让同一对线在两端中心抽头叠加上电源。这一节把编码、时钟、管理接口三件事拆开讲。

2.1 为什么是 PAM3:直流平衡是供电的前提

传统 10BASE-T 用曼彻斯特编码,10 Mb/s 需要 20 MHz 带宽;1000 米线缆在 10 MHz 以上的插入损耗非常难看,这条路走不通。PAM3 每个符号表示三个电平,理论带宽效率约 1.58 bit/符号,符号率降到 7.5 MBaud 后奈奎斯特频率只有 3.75 MHz,长线上的衰减和串扰都更容易处理。

PAM3 的第二个理由是直流平衡。PoDL 要从线路中心抽头注入直流电源,数据路径必须被变压器和交流耦合隔直,这要求发送信号几乎没有低频分量。块编码加扰码的作用就是把频谱从直流附近推开,避免长时间发送连续同电平符号。10BASE-T1L 采用 4B3T 类映射,4 bit 变成 3 个三电平符号,7.5 MBaud × 4/3 正好等于 10 Mb/s,编码开销和实现复杂度都压到了合理范围。这也是为什么单对线上能同时走数据和电源:信号能量被刻意搬离直流频段,供电回路才不会和通信互相干扰。

2.2 MASTER-SLAVE 时钟模型与训练状态

单对线要同时收发,收发路径在同一物理介质上,两端都必须靠混合电路加回波抵消,把自己发出去的 PAM3 信号从接收路径里消掉。这个收敛过程对波形质量很敏感,也是链路训练里最耗时的一环。

链路建立时一端是 MASTER,用自己的本地晶振驱动符号时钟;另一端是 SLAVE,从接收信号里恢复时钟,再以恢复时钟为发送基准。工程上常见做法是网关或交换机侧固定配置成 MASTER,末梢设备做 SLAVE,避免两端都等对方提供时钟。链路从 PMA 训练、均衡器收敛到 PCS 同步,中间任何一步失败,BMSR 里的 link status 都不会置位。

2.3 MDIO 管理接口:把状态从 PHY 里挖出来

IEEE 802.3 的 Clause 45 管理接口定义了 MMD 寄存器空间,单对线 PHY 的训练细节、均衡器状态、供电状态都在里面。裸机调试最常见的就是先用 mdio-tools 把 C22 和 MMD 的寄存器读回来,再对着 datasheet 判断卡在哪一步。

# 列出系统上可用的 mdio 总线,确认 PHY 挂在哪条总线上 mdio bus list # 读 PHY 地址 0 的 BMSR(Basic Mode Status Register,0x01) # bit1: link status;bit2: 传统自动协商完成位, # 单对线 PHY 通常不走 C28 自动协商,更依赖 PMA 训练,按厂商能力位判断 mdio read eth0 0x01 # 读 BMCR(寄存器 0x00),bit15 是软复位,bit13 是自动协商使能 mdio read eth0 0x00 # 10BASE-T1L 的 PMA/PMD 详细状态在 clause 45 的 MMD1 # --mmd 1 表示访问 PMA/PMD 设备地址,--prtad 0 是 PHY 地址 mdio mdio read --mmd 1 --prtad 0 eth0 0x0001

这几条命令的逻辑是:先用 C22 寄存器确认 PHY 有没有被正确复位、有没有报出 link;再用 C45 的 MMD1 挖训练细节。C22 的 BMCR/BMSR 只保证最基础的状态,均衡器收敛程度、远端故障、 SLAVE 模式是否生效这些信息,都在 MMD 空间里。不同厂商对 MMD1 的映射有差异,ADIN1100、LAN8670 这类芯片的手册里都会给出一张寄存器表,读之前先翻对应页。

MMD1 地址名称用途
0x0000PMA/PMD control速率选择、基本发送控制
0x0001PMA/PMD statuslink 状态、接收信号检测、远端故障汇总
0x8000 起Vendor specific训练状态机、均衡器收敛、PoDL 握手状态,以厂商手册为准

注意:0x8000 以上是厂商自定义区,不同型号语义不通用,读之前先查 PHY 数据手册的寄存器映射表。

3. 链路预算与拓扑边界:1000 米长距和 25 米总线怎么选

802.3cg 一个修订里放两个 PHY,是因为工业现场存在两类完全不同的布线需求:远距离点对点仪表回传,和短距离高密度传感器簇。理解了链路预算和拓扑约束,选型就不容易翻车。

3.1 1000 米链路预算是怎么压出来的

10BASE-T1L 的工作是让 10 Mb/s 在 1000 米平衡线上可靠跑起来。链路预算是从发送电平开始,逐项扣除线缆插入损耗、连接器损耗、串扰和噪声余量,最后剩下给接收机解调的余地。PAM3 只有三个电平,相邻电平间距比多电平方案大,抗噪声能力强;7.5 MBaud 又把奈奎斯特频率压到 3.75 MHz,线缆在这个频段的每公里衰减显著低于 10 MHz 以上区间,这是它敢标 1000 米的底气。

但 1000 米的问题不只在静态衰减:温度变化会让线缆阻抗和损耗漂移,接插件氧化会带来额外反射,接收机要靠自适应均衡持续跟踪这些变化。所以实际项目里不要看到标称 1000 米就按 1000 米布,预留 10%~20% 余量给老化和温升是常见做法,设计上按 800~900 米作为上限更稳。

3.2 25 米多点总线的拓扑约束

10BASE-T1S 是半双工共享介质,标准定义的混合段(mixing segment)最长 25 米,最多 8 个 PHY。它用更高的 12.5 MBaud 符号率换实现简化:距离短,带宽富裕,均衡和时钟恢复可以做得更简单,发射机还能在帧间进入突发模式省电。

拓扑上有两点最容易踩。第一,多点总线的两个端点必须各接一个 100Ω 终端电阻,中间节点不接;第二,分支(stub)越短越好,标准对 tap 引出线长度有明确建议,工程上应控制在几十厘米内,否则反射会把 PAM3 眼图打散。现场布线时还要注意两端地电位,单对线没有屏蔽层做回程,地电位差直接反映在信号质量上。

3.3 两个 PHY 的参数对照

比对项10BASE-T1L10BASE-T1S
最大距离1000 米25 米
拓扑点对点点对点 / 多点总线,最多 8 节点
工作模式全双工,带回波抵消半双工
调制与符号率PAM3,7.5 MBaudPAM3,12.5 MBaud
介质访问无冲突(全双工天然隔离)CSMA/CD(必选)/ PLCA(可选)
典型场景现场仪表、阀岛、长距离传感器车内网络、传感器簇、设备内互联
PoDL 供电支持支持

从这张表能看出选型的两个判断依据:距离超过 25 米或者要求全双工,只能往 10BASE-T1L 走;节点多、布线短、对成本和功耗敏感的簇状拓扑,10BASE-T1S 更合适。两者的 PCS/PMA 并不通用,多数商用 PHY 固定为 T1L 或 T1S 其中一种,芯片选型时是两条产品线,不要假设同一颗 PHY 能两种模式随便切换。

4. PLCA 冲突避免机制:多点总线怎么做到确定性调度

10BASE-T1S 在半双工共享介质上要解决多节点同时发送的问题。标准没有走传统以太网 CSMA/CD 的老路,而是在 Clause 148 里定义了 PLCA(Physical Layer Collision Avoidance),把冲突概率变成确定性的轮询调度。

4.1 CSMA/CD 为什么撑不起控制类应用

传统 CSMA/CD 靠冲突检测和二进制指数退避,节点越多冲突概率越高,最坏情况下的时延无法上界。工业控制报文要求的是确定性的最大时延,而不是平均时延,这一条 CSMA/CD 给不了。同时 10BASE-T1S 的共享段是单对线,接收和发送在同一介质上,冲突检测的硬件开销也不小。

PLCA 的思路是干脆不让冲突发生:把所有节点纳入一个轮询周期,每个节点在属于自己的时间里发数据,从根本上消除退避算法带来的随机性。

4.2 BEACON、Node ID 与轮询周期

PLCA 把每个节点编成 0~N-1 的 Node ID,node 0 兼任协调者。每个周期协调者先发 BEACON,宣告总线进入调度阶段;随后节点 0、1、2……按 ID 升序依次获得发送机会。每个节点在自己的发送机会里最多发 burst_count 个包,发完用 COMMIT 信号交还总线;全部节点轮完,或者 TO_TIMER 超时后,协调者再发 BEACON 开始下一周期。

这个模型的最大好处是最坏时延有上界:一个周期内每个节点至少轮到一次,周期长度等于各节点 burst_count 之和加上调度开销。数据再忙,低 ID 节点的等待时间也被限制在可计算的范围内。这也是为什么同在一条 25 米总线上,PLCA 模式比 CSMA/CD 模式更适合伺服、阀岛这类时间敏感的控制链路。

4.3 参数怎么调:Node ID、burst_count 与 TO_TIMER

落地时最常动的三个参数是 Node ID、burst_count 和 TO_TIMER。Node ID 决定轮询顺序和协调者归属,必须全局唯一;burst_count 控制单次机会的最大发包数,调大能提高单个节点的吞吐,但会拉长整个周期;TO_TIMER 决定空节点让出总线的最长等待,调小对小包和低时延场景有利,调太小则可能把周期切碎,反而增加 BEACON 开销。

# 用极简模型看 burst_count 与轮询周期(最坏时延)的权衡 N = 8 # 总线节点数,node 0 为协调者 burst_list = [1, 2, 4, 8] for burst in burst_list: # 最坏周期 = 节点数 x 每节点最大包数(所有节点都有数据) cycle_worst = N * burst per_node_share = 100.0 / cycle_worst print(f"burst_count={burst}: 最坏周期 {cycle_worst} 个发包窗口," f"单节点占周期比例 {per_node_share:.1f}%")

这个脚本把 PLCA 周期抽象成 N × burst 个发包窗口:burst=1 时 8 节点周期只有 8 个窗口,最坏等待最短;burst=8 时单个节点能一次发更多包,但低 ID 节点的等待接近 64 个窗口。实际协议里还有 TO_TIMER、COMMIT 交还等开销,趋势是一致的:burst 越大,单节点吞吐越高,低 ID 节点时延越差。

参数含义典型调法
Node ID 0~N-1轮询顺序,0 为协调者保证唯一即可,避免中间留空洞
burst_count一次机会内最大发包数大包批量采集调大,控制报文调小
TO_TIMER空节点让出总线的最长等待小包场景调小,长帧混合场景保持默认

提示:PLCA 必须在整条总线上一致启用。先在协调者侧确认 PLCA 已使能,再逐节点下发 Node ID 与 burst_count,半启用状态会退化成冲突频繁的普通模式,时延反而更差。

5. PoDL 供电与链路排错:PSE 上电时序和 PHY 训练怎么配合

5.1 PoDL 功率分级与握手

PoDL 定义在 802.3bu(Clause 104),802.3cg 把它扩展给 10BASE-T1L/T1S。供电通过耦合变压器中心抽头注入,PSE 侧送电、PD 侧取电,数据路径被交流耦合隔开。握手顺序是检测、分级、上电:PD 先提供特征阻抗让 PSE 确认是合法设备,PSE 再按分级结果给出对应的电压和电流上限。

PoDL Class功率档典型供电电压
Class 00.5 W5~18 V
Class 12.56 W16~24 V
Class 38.4 W24~36 V
Class 620 W36~48 V
Class 952 W48~57 V

电压范围是常见实现,具体以 PSE 芯片规格为准;单对线载流能力受限,高功率档必须走高电压,不要指望 12 V 系统拉出几十瓦。

5.2 用 ethtool 和 mdio 定位链路失败

# 1) 先看速率与链路状态,确认 PHY 有没有起来 ethtool eth0 # 2) 看统计计数里有没有 FCS 或 alignment 错误 ethtool -S eth0 # 3) 连续读 BMSR 的 link bit,观察是否抖动 for i in $(seq 1 10); do mdio read eth0 0x01; sleep 0.1; done # 4) 训练细节看 MMD1 的 PMA/PMD 状态 mdio mdio read --mmd 1 --prtad 0 eth0 0x0001

如果 BMSR 的 bit1 周期性归零,优先怀疑 PoDL 供电跌落或两端地电位差;先带载测 PSE 输出电压纹波,再回来看 PHY 供电引脚。统计计数里的 FCS 错误集中在某几个节点,则多半是那一段的终端电阻或分支线问题。

5.3 双通道示波器抓上电沿与训练波形

现场区分"供电不足"和"训练失败"最直接的方法:示波器 CH1 勾 PSE 输出端,CH2 勾 MDI 差分对,触发设 CH1 上升沿。正常时序是 PSE 上电沿之后,经过检测和分级阶段,MDI 上出现持续的小幅 PAM3 训练波形;把 CH1 的上升沿当作零点,训练波形应该在几十毫秒内的固定时延处出现。

如果上电沿之后 MDI 一直是空白,问题多半在 PD 侧没有回应 PSE 的检测握手;如果波形出现但 link 反复掉,再看 BMSR 抖动并为两端补共地。这个技巧比单看寄存器快得多,因为它把电源域和信号域的时间关系直接摆在同一时间轴上。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询