1. EPON技术概述

做光通信嵌入式开发这么多年,我接触过不少接入网技术。但说实话,EPON在我心里一直是个特别的存在。它不复杂,却把点对多点传输这件事做得相当漂亮。今天咱们就来聊聊EPON的基础知识。

1.1 EPON系统架构

EPON的系统架构,说白了就是三个角色:OLT、ONU和ODN。我习惯把它们比作一个树形结构。

  • OLT(光线路终端):放在局端,是整个系统的核心。它负责管理所有ONU,分配带宽,处理上下行数据。
  • ONU(光网络单元):放在用户侧,就是我们常说的"光猫"。它接收OLT发来的数据,也把自己的数据发回去。
  • ODN(光分配网络):由光纤和无源分光器组成。无源,意味着不需要供电,这也是EPON的一大优势。

我当年调试第一个EPON项目时,最头疼的就是ODN的光功率预算。分光比选大了,ONU收不到信号;选小了,又浪费光纤资源。嗯,这里要注意,1:32的分光比是最常见的,但实际部署时一定要算好链路损耗。

核心要点:EPON采用树形拓扑,OLT到ONU是下行广播,ONU到OLT是上行TDMA。这个架构决定了它的工作方式。

OLT 局端设备 主干光纤 1:N 分光器 分支光纤 ONU 1 用户1 ONU 2 用户2 ONU 3 用户3 图例 OLT ONU 分光器 光纤

1.2 EPON与GPON对比

很多刚入行的朋友会问我:EPON和GPON到底选哪个?我的回答是:看场景。这两个技术各有千秋,我整理了一个对比表,你一看就明白。

对比项 EPON GPON
标准 IEEE 802.3ah/av ITU-T G.984系列
下行速率 1.25 Gbps(对称) 2.488 Gbps
上行速率 1.25 Gbps(对称) 1.244 Gbps
分光比 1:32(典型) 1:64(典型)
封装格式 以太网帧 GEM帧
最大传输距离 20 km 20 km(可扩展至60 km)
成本 较低 较高

我个人习惯在成本敏感的项目里选EPON,毕竟它直接跑以太网帧,不需要额外的封装转换。但如果你需要更高的带宽和更大的分光比,GPON会是更好的选择。

避坑指南:我曾经在一个项目中盲目追求GPON的高带宽,结果发现用户侧根本用不上那么大的带宽,反而多花了30%的成本。选型时一定要结合实际需求。

1.3 EPON标准演进

EPON的标准演进,我把它分为两个阶段:

  • IEEE 802.3ah(2004年):这是第一代EPON标准,定义了1G EPON。下行和上行都是1.25 Gbps,采用8B/10B编码。说实话,这个标准在当时已经很超前了。
  • IEEE 802.3av(2009年):这是10G EPON标准。它向下兼容1G EPON,支持对称(10G/10G)和非对称(10G/1G)两种模式。

你想想看,从1G到10G,带宽提升了10倍,但光纤和分光器都不用换。这就是标准演进带来的好处。我记得当年做10G EPON的驱动开发时,最头疼的就是物理层的变化。8B/10B编码换成了64B/66B,接收端的时钟恢复算法也得重新调。

关键点:10G EPON的物理层编码从8B/10B改为64B/66B,编码效率从80%提升到约97%。这意味着同样的线路速率,实际有效带宽更高。

1.4 EPON关键特性

点对多点(P2MP)

EPON最核心的特性就是点对多点。OLT通过分光器连接多个ONU,下行数据是广播方式,上行数据是时分复用。

下行方向,OLT发送的数据帧会被所有ONU收到。每个ONU根据LLID(逻辑链路标识)判断是不是自己的数据。不是自己的,直接丢弃。这个机制很简单,但很有效。

上行方向就复杂一些。多个ONU共享同一根光纤,如果同时发送数据,就会发生冲突。怎么解决?用TDMA。

TDMA(时分多址)

TDMA的原理很简单:给每个ONU分配一个时间片,只有在自己时间片内才能发送数据。OLT通过MPCP(多点控制协议)来管理这些时间片。

我刚开始做EPON驱动时,对TDMA的理解只停留在理论层面。直到有一次调试,发现某个ONU总是丢包。查了半天,原来是它的时间片和另一个ONU重叠了。嗯,这种问题在实验室里很难复现,但在实际网络中,光纤长度不同、温度变化都会导致时间偏移。

注意事项:TDMA的时间同步精度直接影响系统性能。EPON要求时间同步误差在±16 ns以内。这个精度对软件实现是个不小的挑战。

测距(Ranging)

测距是EPON里一个很有意思的机制。为什么需要测距?因为每个ONU到OLT的距离不同,光信号传输的延迟也不同。如果不做测距,ONU发送的数据到达OLT的时间就会错位。

测距的过程是这样的:

  1. OLT发送一个测距请求帧给ONU
  2. ONU收到后立即回复一个测距响应帧
  3. OLT计算往返时间(RTT)
  4. OLT根据RTT为ONU设置一个均衡延迟

说白了,就是让每个ONU都"假装"自己离OLT一样远。这样所有ONU的数据就能在OLT端整齐排列。

我曾经遇到过一个奇葩问题:某个ONU的测距结果总是跳变。排查了三天,最后发现是光纤接头脏了。清洁之后,测距值就稳定了。所以啊,很多"软件问题"其实是物理层的问题。

经验之谈:测距分为静态测距和动态测距。静态测距在ONU注册时做一次,动态测距则是在运行过程中定期校准。我建议动态测距的周期不要设得太短,否则会增加系统开销;也不要太长,否则温度变化会导致测距误差累积。一般5-10秒做一次比较合适。

好了,EPON技术概述就聊到这里。这些基础知识是后续章节的基石,尤其是TDMA和测距,在后面的软件实现中会反复用到。


公众号:蓝海资料掘金营,微信deep3321