4、光模块系统架构设计:发射链路、接收链路、数字诊断监控(DDM)及电源管理架构

好,咱们今天聊聊光模块的系统架构。说实话,很多刚入行的工程师容易把光模块想得太简单——不就是把电信号转成光信号,再转回来吗?其实里面的门道不少。我做了这么多年光模块设计,最大的体会就是:架构设计决定了产品能走多远。

一个完整的光模块系统,我习惯把它拆成四大块:发射链路、接收链路、数字诊断监控(DDM)、电源管理。这四块缺一不可,而且相互之间还有很强的耦合关系。咱们一块一块来看。

核心观点:光模块的架构设计,本质上是在功耗、性能、成本之间找平衡。没有完美的架构,只有最适合你应用场景的方案。

光模块系统架构总览 发射链路 (TX) 电接口 → CDR → 激光驱动器 → TOSA 关键指标:眼图、消光比、光功率 常见器件:VCSEL/DFB激光器、MZM调制器 接收链路 (RX) ROSA → TIA → LA → CDR → 电接口 关键指标:灵敏度、过载点、抖动 常见器件:PIN/APD光电探测器 数字诊断监控 (DDM) MCU + 传感器 + I²C 接口 监控项:温度、电压、偏置电流、 发射功率、接收功率 告警与阈值管理 电源管理架构 DCDC + LDO + 电源时序 供电轨:3.3V / 1.8V / 1.2V / Vbias 低噪声设计、纹波抑制 效率优化与热管理 四大模块协同工作,构成完整的光模块系统

4.1 发射链路设计

发射链路,说白了就是把电信号变成光信号送出去。我见过不少新手,一上来就盯着激光器选型,结果忽略了前面的驱动电路设计,最后眼图惨不忍睹。

典型的发射链路长这样:

电信号输入 → 均衡器(EQ) → 时钟数据恢复(CDR) → 激光驱动器(LDD) → TOSA(光发射组件) → 光纤

这里面有几个关键点,我重点说一下:

  • CDR 的选型:我个人习惯先看数据速率和抖动容限。比如 25G 的模块,CDR 的抖动传递函数带宽一般设在 5-10MHz。太宽了,低频抖动压不住;太窄了,高频抖动又滤不掉。我在一个 100G 项目中就吃过这个亏,当时 CDR 带宽设得太窄,结果系统对 PCB 走线的微小不匹配特别敏感。
  • 激光驱动器:这里要注意调制电流和偏置电流的分配。调制电流决定了眼图的幅度,偏置电流决定了激光器的开关速度。我曾经遇到过一个案例,偏置电流设得太低,激光器开启延迟变大,眼图交叉点直接偏到了 30% 以下。
  • TOSA 的匹配:驱动器和 TOSA 之间的阻抗匹配很关键。一般要求回波损耗小于 -10dB,否则反射信号会干扰激光器的工作状态。

小技巧:调试发射链路时,先不要急着看眼图。先测一下光功率和光谱,确认激光器工作在正常区间。光功率正常了,再调眼图。这样能省不少时间。

4.2 接收链路设计

接收链路是光模块的耳朵。信号从光纤进来,经过 ROSA 变成电流,再经过 TIA 变成电压,最后通过限幅放大器恢复出数字信号。

接收链路的典型结构:

光纤 → ROSA(光接收组件) → TIA(跨阻放大器) → LA(限幅放大器) → CDR → 电信号输出

这里我重点讲三个容易踩坑的地方:

  • 灵敏度和过载点的平衡:这两个指标是矛盾的。灵敏度做高了,过载点就容易往下掉。我记得有一次做 10G LR 模块,客户要求灵敏度 -18dBm,过载点 0dBm。我试了好几款 TIA,最后选了一款带自动增益控制(AGC)的,才勉强满足要求。
  • TIA 的输出摆幅:TIA 的输出信号幅度一般只有几十毫伏,需要 LA 进一步放大。但 LA 的输入灵敏度有限,如果 TIA 输出太小,LA 就识别不了。我建议 TIA 的输出摆幅至少留 50mV 的余量。
  • CDR 的锁定时间:接收端的 CDR 需要从数据中恢复时钟。如果锁定时间太长,模块的上电初始化时间就会超标。一般要求锁定时间小于 10ms。

注意:接收链路的 PCB 走线要特别小心。TIA 的输出是高速模拟信号,走线过长或者过孔太多,都会引入额外的噪声和抖动。我一般把 TIA 和 LA 放在同一面,走线控制在 5mm 以内。

4.3 数字诊断监控(DDM)

DDM 是光模块的"黑匣子"。它实时监控模块的工作状态,一旦出现异常就发出告警。说实话,DDM 的设计难度不在于功能实现,而在于精度和可靠性。

DDM 监控的核心参数:

监控参数 典型范围 精度要求 实现方式
温度 -40°C ~ 85°C ±3°C 片内温度传感器
供电电压 3.0V ~ 3.6V ±3% ADC 采样分压电阻
激光器偏置电流 0 ~ 100mA ±10% 采样电阻 + ADC
发射光功率 -10dBm ~ +5dBm ±2dB 背光探测器 (MPD)
接收光功率 -30dBm ~ 0dBm ±2dB RSSI 引脚

DDM 的软件实现,我一般用状态机来管理:

// DDM 主循环伪代码
while(1) {
    read_temperature();      // 读温度
    read_voltage();          // 读电压
    read_bias_current();     // 读偏置电流
    read_tx_power();         // 读发射功率
    read_rx_power();         // 读接收功率
    
    check_alarms();          // 检查告警阈值
    update_registers();      // 更新寄存器
    
    delay(100);              // 100ms 采样周期
}

经验之谈:DDM 的采样周期不要设得太快。我见过有人设成 1ms 采样一次,结果 MCU 忙得不可开交,I²C 通信都受影响。100ms 的采样周期足够满足 SFF-8472 规范的要求。

4.4 电源管理架构

电源管理是光模块的"心脏"。一个设计不好的电源,会让整个模块的性能大打折扣。我遇到过最头疼的问题,就是电源纹波耦合到了发射链路上,导致眼图出现周期性抖动。

光模块常见的供电轨:

  • 3.3V:主电源,给激光驱动器、TIA、LA 供电
  • 1.8V:给 CDR、MCU 供电
  • 1.2V:给数字核心供电
  • Vbias:给 APD 提供高压偏置(通常 20V-70V)

电源设计的关键点:

  1. 低噪声设计:激光驱动器和 TIA 对电源噪声非常敏感。我一般会在 3.3V 输入端加一个 π 型滤波器(电容-电感-电容),把纹波控制在 10mVpp 以内。
  2. 电源时序:有些芯片对上电顺序有要求。比如某些 CDR 要求 1.8V 先上电,3.3V 后上电。如果顺序反了,芯片可能会锁死。我建议用电源监控芯片来实现时序控制。
  3. 效率优化:光模块的功耗越来越受关注。DCDC 转换器的效率一般能做到 85%-90%,而 LDO 的效率只有 50%-70%。所以大电流的供电轨(比如 3.3V)用 DCDC,小电流的(比如 1.2V)用 LDO。

避坑指南:我曾经在一个 400G 模块项目中,为了省成本,把 DCDC 的电感换成了小封装的。结果电感饱和电流不够,模块一上电就过流保护。后来老老实实换回了大封装电感,问题才解决。电源器件,真的不能省。

4.5 四大模块的协同设计

最后我想强调一点:这四个模块不是孤立的。发射链路的功耗会影响电源管理,接收链路的灵敏度会受到 DDM 采样噪声的干扰,电源的纹波会同时影响发射和接收。

我个人的设计流程是这样的:

  1. 先确定光模块的应用场景(速率、距离、功耗预算)
  2. 根据场景选择核心芯片(CDR、LDD、TIA、MCU)
  3. 设计电源架构,确保每个供电轨的噪声和效率达标
  4. 设计发射和接收链路,留出足够的裕量
  5. 最后加入 DDM 功能,调试告警阈值

嗯,这套流程我用了很多年,基本没出过大问题。你想想看,架构设计就像盖房子,地基打好了,后面的事情就顺了。

总结一句话:光模块系统架构设计,发射链路看眼图,接收链路看灵敏度,DDM 看精度,电源看噪声。把这四个点抓住了,你的模块就成功了一大半。

专注资料整理