第三章 光模块功能架构拆解:四大核心模块

做光模块硬件设计这些年,我越来越觉得——搞懂功能架构,比死磕某个电路参数重要得多。你想想看,一个40G、100G甚至800G的光模块,里面塞了那么多器件,如果脑子里没有一张清晰的「功能地图」,出了问题你都不知道该查哪里。

今天我就带你拆一拆光模块的四大核心模块:发射链路、接收链路、数字诊断、电源管理。这四块,说白了就是光模块的「嘴、耳、脑、心」。

核心观点:光模块的功能架构,本质上是一个「电-光-电」的闭环系统。发射链路负责把电信号变成光信号发出去,接收链路负责把光信号变回电信号收进来,数字诊断模块负责监控整个系统的健康状态,电源管理模块负责给所有电路提供稳定、低噪声的能源。

光模块功能架构总览 发射链路模块 激光器驱动 / 调制 电信号 → 光信号 核心:LDD + TOSA 接收链路模块 跨阻放大 / 限幅放大 光信号 → 电信号 核心:ROSA + TIA + LA 数字诊断模块 DDM (Digital Diagnostic Monitor) 温度 / 电压 / 偏流 / 光功率 核心:MCU + ADC + 存储器 电源管理模块 LDO / DC-DC / 上电时序 3.3V → 多路低噪声电源 核心:PMIC + 滤波网络 I²C 管理总线 MCU 统一调度 发射 接收 诊断 电源

3.1 发射链路模块:光模块的「嘴」

发射链路,说白了就是把电信号「说」成光信号。它的核心器件是激光器驱动芯片(LDD)光发射组件(TOSA)

我个人习惯把发射链路分成三段来看:

  1. 输入级:接收来自SerDes的高速差分信号(CML电平),做预加重或去加重处理
  2. 驱动级:提供足够的调制电流和偏置电流,驱动激光器发光
  3. 光输出级:激光器把电流变化转换成光功率变化,通过光纤发出去

实战经验:我在设计10G SFP+模块时遇到过一个问题——眼图总是张不开。查了半天,发现是LDD的偏置电流设置得太保守,激光器没工作在最佳偏置点。后来我把偏置电流从30mA调到45mA,眼图一下就漂亮了。记住:偏置电流决定了激光器的「静态工作点」,调制电流决定了「摆幅」,两者要配合着调。

发射链路的关键参数,我列个表给你参考:

参数 典型值 说明
偏置电流 (Ibias) 20~80 mA 取决于激光器阈值电流
调制电流 (Imod) 20~60 mA 决定消光比
上升/下降时间 < 35 ps (25G) 影响眼图质量
消光比 (ER) 3.5~8 dB 根据协议要求调整
光调制幅度 (OMA) -2~+3 dBm 接收端更关心这个

⚠️ 避坑指南:我曾经在一个100G LR4项目中,因为PCB走线没做等长处理,导致四路激光器的相位差过大,合波后的光信号眼图直接闭合。后来我强制要求:发射链路的差分走线长度差控制在±5mil以内,并且每路激光器的驱动芯片到TOSA的走线也要等长。

3.2 接收链路模块:光模块的「耳」

接收链路负责「听」——把微弱的光信号还原成电信号。它的核心是光接收组件(ROSA)跨阻放大器(TIA)限幅放大器(LA)

你想想看,光纤传过来的光信号经过几十公里衰减后,到接收端可能只有-20dBm甚至更弱。这么微弱的信号,怎么才能被后级电路识别?

答案就是TIA。TIA把PD(光电二极管)产生的微弱光电流,转换成电压信号,同时提供第一级放大。我习惯把接收链路也分成三段:

  • 光电转换级:PD把光信号变成光电流,典型响应度0.8~0.9 A/W
  • 跨阻放大级:TIA把电流转电压,增益通常在几千Ω到几万Ω
  • 限幅放大级:LA把小信号放大到CML电平(典型摆幅400~800mVpp),同时做带宽限制和信号整形

关键指标:接收灵敏度。说白了就是模块能识别的最小光功率。我做过一个项目,TIA的输入噪声密度是15 pA/√Hz,算下来灵敏度只能做到-18dBm。后来换了噪声更低的TIA(8 pA/√Hz),灵敏度直接干到-22dBm。嗯,TIA的噪声,就是接收链路的命门

接收链路还有一个容易被忽略的点——带宽匹配。TIA的带宽和LA的带宽要匹配好,否则要么高频分量被衰减(眼图变圆),要么引入额外噪声(灵敏度下降)。

3.3 数字诊断模块:光模块的「脑」

DDM,全称Digital Diagnostic Monitor。说白了就是光模块的「黑匣子」+「体检报告」。它通过I²C接口,实时上报模块的工作状态。

DDM监控的四个核心参数:

  1. 温度(Temperature):模块内部温度,精度要求±3°C
  2. 电压(Voltage):供电电压,通常是3.3V,精度要求±3%
  3. 偏置电流(Bias Current):激光器的偏置电流,反映激光器老化程度
  4. 发射/接收光功率(TX/RX Power):单位mW或dBm

我的习惯:在DDM的校准环节,我一般会做两点校准——在常温(25°C)和高温(85°C)下分别标定一次。为什么?因为激光器的效率随温度变化很大,不做温度补偿的话,DDM上报的光功率误差能到±3dB。我曾经见过一个模块,85°C时实际光功率比DDM报的低了2.5dB,差点导致系统误判为链路故障。

DDM的校准数据通常存放在EEPROM中,上电后MCU读取校准系数,实时计算并更新寄存器值。这里有个小细节:校准系数的精度直接影响DDM的准确性,我建议用float32存储,不要为了省空间用int16。

3.4 电源管理模块:光模块的「心」

电源管理,听起来不起眼,但光模块80%的故障都跟电源有关。这不是夸张,是我这些年修模块总结出来的。

光模块内部需要多路电源:

电压 用途 噪声要求
3.3V 主供电(来自系统) 纹波 < 50mVpp
1.8V MCU、数字逻辑 纹波 < 30mVpp
1.2V SerDes核心、DSP核心 纹波 < 20mVpp
Vcc_LD 激光器驱动供电 纹波 < 10mVpp

电源管理模块的设计要点:

  • 上电时序:先给MCU供电,再给激光器驱动供电。顺序反了可能导致激光器误动作
  • 滤波设计:每路电源入口加π型滤波(磁珠+电容),高频噪声靠小电容(0.1μF+10nF+1nF)
  • 电源隔离:模拟电路和数字电路的电源要分开走,避免数字噪声串扰到激光器驱动

⚠️ 我曾经踩过的坑:在一个40G QSFP+项目中,我用了DC-DC给激光器驱动供电,结果发现眼图上有周期性抖动。查了半天,是DC-DC的开关频率(2.2MHz)耦合到了激光器驱动电路。后来我把DC-DC换成LDO,抖动立刻消失。教训是:激光器驱动的电源,能不用DC-DC就别用,实在要用,开关频率必须避开信号速率的高次谐波。

3.5 四大模块的协同工作

这四个模块不是孤立的。我举个例子你就明白了:

当系统检测到接收光功率下降时(DDM上报),MCU会通过I²C调整发射链路的偏置电流,尝试提高发射光功率。同时,电源管理模块要保证在电流增大时,电压不掉、噪声不增。你看,一个简单的闭环控制,就把四个模块全串起来了

所以我在做架构设计时,一定会先画一张「模块交互图」,把每个模块的输入输出、控制接口、电源需求都标清楚。这张图,就是整个光模块的「宪法」——所有后续的详细设计,都不能违背这张图定义的接口关系。


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