4、光模块系统架构设计:发射链路、接收链路、数字诊断监控(DDM)及电源管理架构
好,咱们今天聊聊光模块的系统架构。说实话,很多刚入行的工程师容易把光模块想得太简单——不就是把电信号转成光信号,再转回来吗?其实里面的门道不少。我做了这么多年光模块设计,最大的体会就是:架构设计决定了产品能走多远。
一个完整的光模块系统,我习惯把它拆成四大块:发射链路、接收链路、数字诊断监控(DDM)、电源管理。这四块缺一不可,而且相互之间还有很强的耦合关系。咱们一块一块来看。
核心观点:光模块的架构设计,本质上是在功耗、性能、成本之间找平衡。没有完美的架构,只有最适合你应用场景的方案。
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)
电源设计的关键点:
- 低噪声设计:激光驱动器和 TIA 对电源噪声非常敏感。我一般会在 3.3V 输入端加一个 π 型滤波器(电容-电感-电容),把纹波控制在 10mVpp 以内。
- 电源时序:有些芯片对上电顺序有要求。比如某些 CDR 要求 1.8V 先上电,3.3V 后上电。如果顺序反了,芯片可能会锁死。我建议用电源监控芯片来实现时序控制。
- 效率优化:光模块的功耗越来越受关注。DCDC 转换器的效率一般能做到 85%-90%,而 LDO 的效率只有 50%-70%。所以大电流的供电轨(比如 3.3V)用 DCDC,小电流的(比如 1.2V)用 LDO。
避坑指南:我曾经在一个 400G 模块项目中,为了省成本,把 DCDC 的电感换成了小封装的。结果电感饱和电流不够,模块一上电就过流保护。后来老老实实换回了大封装电感,问题才解决。电源器件,真的不能省。
4.5 四大模块的协同设计
最后我想强调一点:这四个模块不是孤立的。发射链路的功耗会影响电源管理,接收链路的灵敏度会受到 DDM 采样噪声的干扰,电源的纹波会同时影响发射和接收。
我个人的设计流程是这样的:
- 先确定光模块的应用场景(速率、距离、功耗预算)
- 根据场景选择核心芯片(CDR、LDD、TIA、MCU)
- 设计电源架构,确保每个供电轨的噪声和效率达标
- 设计发射和接收链路,留出足够的裕量
- 最后加入 DDM 功能,调试告警阈值
嗯,这套流程我用了很多年,基本没出过大问题。你想想看,架构设计就像盖房子,地基打好了,后面的事情就顺了。
总结一句话:光模块系统架构设计,发射链路看眼图,接收链路看灵敏度,DDM 看精度,电源看噪声。把这四个点抓住了,你的模块就成功了一大半。