2、光模块与接口标准:SFP/QSFP/CFP光模块介绍、电气接口(SFI、XFI、CAUI)、I2C管理接口与DDM监控、光模块选型指南
各位同学,咱们今天聊聊光模块。这东西在光通信系统里,就像人的眼睛和嘴巴——负责把电信号变成光发出去,再把收进来的光变回电信号。我做了这么多年FPGA光通信,光模块选型翻过车,I2C时序被坑过,DDM数据读错过……嗯,今天把这些经验掰开揉碎了讲给你听。
2.1 光模块的“三大家族”:SFP、QSFP、CFP
先说说最常见的三种封装。你想想看,一个光模块从诞生到现在,体积越来越小,速率越来越高,但核心逻辑没变——就是光电转换。
SFP:小封装,大用途
SFP(Small Form-factor Pluggable)是我用得最多的模块。单通道,速率从1G到16G都有。我个人习惯把SFP叫做“万金油”,因为几乎所有设备都支持它。
- SFP:1Gbps,老设备还在用
- SFP+:10Gbps,目前最主流
- SFP28:25Gbps,数据中心新宠
我在一个10G光口项目里,就因为SFP+的功耗没算对,导致电源纹波过大,眼图都睁不开。后来换了低功耗模块才搞定。
QSFP:四通道,高密度
QSFP(Quad Small Form-factor Pluggable)把四个通道塞进一个模块里。说白了就是四个SFP挤在一起,但共用管理接口。
- QSFP+:4×10G = 40G
- QSFP28:4×25G = 100G
- QSFP-DD:8×25G = 200G,双密度
记得有一次,客户要求100G接口,我选了QSFP28。结果布线时发现PCB走线间距不够,串扰严重。嗯,这里要提醒你:QSFP的差分对间距至少3倍线宽,别问我怎么知道的。
CFP:大块头,长距离
CFP(C Form-factor Pluggable)体积大,功耗高,但能跑长距离。常见于100G/200G/400G的电信级设备。
- CFP:100G,功耗约16W
- CFP2:100G,功耗约12W,体积减半
- CFP4:100G,功耗约8W,和QSFP28差不多大
我个人建议:数据中心用QSFP,电信传输用CFP。别搞反了,否则散热和功耗会让你头疼。
核心对比:
| 类型 | 通道数 | 单通道速率 | 总速率 | 典型应用 |
|---|---|---|---|---|
| SFP+ | 1 | 10G | 10G | 接入层 |
| QSFP28 | 4 | 25G | 100G | 数据中心 |
| CFP4 | 4 | 25G | 100G | 传输网 |
2.2 电气接口:SFI、XFI、CAUI
光模块和FPGA之间怎么连?靠电气接口。说白了就是高速SerDes的物理层标准。我刚开始接触时也被这些缩写搞晕过,其实没那么复杂。
SFI:10G的“老前辈”
SFI(SerDes Framer Interface)是10G时代的接口标准。它定义了从SerDes到成帧器的电气特性。我记得第一次调SFI接口时,发现眼图总是闭合,后来发现是AC耦合电容选错了——用了0.1μF,应该用0.01μF。高频信号对电容值很敏感。
XFI:10G的“进化版”
XFI(10 Gigabit Ethernet Serial Interface)是SFI的改进版。它把信号摆幅从800mV降到500mV,功耗更低。说白了就是更省电、更高速。我在一个10G光模块项目中,FPGA的GTH和SFP+之间就是走XFI接口。注意:XFI的PCB走线阻抗要控制在100Ω±10%,否则反射会让你怀疑人生。
CAUI:100G的“四车道”
CAUI(100 Gigabit Attachment Unit Interface)是100G以太网的接口标准。它把100G拆成4条25G的通道。你想想看,一条车道跑100G太难,但四条车道各跑25G就容易多了。
- CAUI-4:4×25G,用QSFP28模块
- CAUI-10:10×10G,老标准,现在很少用
我曾经在CAUI-4的PCB设计上栽过跟头。四条通道的等长要求是±5ps,我偷懒没做等长,结果通道间skew太大,FPGA的CDR锁不住。后来老老实实做了蛇形走线才解决。
经验之谈:电气接口的PCB设计,记住三个要点:阻抗控制、等长走线、AC耦合电容靠近发送端。这三点做到了,80%的问题都不会出现。
2.3 I2C管理接口与DDM监控
光模块不是插上就能用的。你得通过I2C去读它的状态、写它的配置。这就是管理接口干的事。
I2C:光模块的“神经”
每个光模块都有一个I2C从设备地址。SFP一般是0xA0(写)/0xA1(读),QSFP是0xA0。通过I2C可以读模块型号、序列号、生产日期等信息。
我遇到过最坑的事:I2C上拉电阻选错了。4.7kΩ在100kHz下没问题,但光模块要求400kHz,结果波形都变形了。后来换成2.2kΩ才正常。嗯,这里要注意:I2C速率越高,上拉电阻越小。
DDM:数字诊断监控
DDM(Digital Diagnostic Monitoring)是光模块的“体检报告”。它能告诉你:
- 温度:模块内部温度,超过85°C就要报警
- 电压:供电电压,3.3V±5%
- 偏置电流:激光器的驱动电流,反映老化程度
- 发射光功率:发出去的光强,单位dBm
- 接收光功率:收到的光强,单位dBm
我曾经通过DDM数据发现一批模块的发射功率在逐渐下降。查了三个月,发现是激光器老化速度比预期快。后来换了供应商才解决。所以,DDM不只是调试工具,更是运维的“预警系统”。
避坑指南:读DDM数据时,注意I2C的时序。有些模块的DDM更新频率是1秒一次,你读太快会读到旧数据。我曾经因为没加延时,读到的温度一直是25°C,还以为模块坏了。
2.4 光模块选型指南
选光模块,说白了就是三个问题:速率、距离、成本。我总结了一个“三步法”,你照着做基本不会错。
第一步:定速率
看你的系统需要多少带宽。10G用SFP+,25G用SFP28,100G用QSFP28。别为了省钱选低速率,也别为了“未来扩展”选高速率——光模块更新换代太快,现在买100G,明年可能就200G了。
第二步:定距离
光模块按传输距离分:
- SR(短距):100-300米,多模光纤,便宜
- LR(长距):10公里,单模光纤,中等
- ER(超长距):40公里,单模光纤,贵
- ZR(极长距):80公里,单模光纤,很贵
我个人建议:机柜内用SR,楼宇间用LR,城域网用ER。别在10米的距离上用LR模块——浪费钱,而且功耗还高。
第三步:定接口
看你的FPGA支持什么SerDes速率。Xilinx的GTH支持12.5Gbps,GTY支持25Gbps。如果FPGA只支持10G,就别买25G的光模块——虽然能降速用,但浪费性能。
选型检查清单:
- 确认FPGA SerDes速率 ≥ 光模块速率
- 确认PCB走线阻抗匹配(100Ω差分)
- 确认I2C地址不冲突(多模块时)
- 确认功耗在电源预算内
- 确认工作温度范围(商业级0-70°C,工业级-40-85°C)
好了,光模块这部分就讲到这里。下一节咱们聊聊SerDes的底层原理——那才是FPGA光通信的“心脏”。