100G SR4光模块这类东西,平时不接触光通信的人可能觉得离自己很远,但只要是做数通、服务器或者存储硬件的同行,这几年应该都绕不开它。数据中心内部短距离互联的需求从10G涨到25G,再从25G并成100G,SR4这个形态基本成了机柜到机柜、交换机到服务器之间最成熟也最通用的方案之一。
我接这个项目的时候,需求很直接:设计一款QSFP28封装的100G SR4光模块,用在数据中心TOR交换机到服务器的场景,传输距离要求OM4光纤下跑到100米,功耗控制在2.5W以内,兼容标准的SFF-8665和SFF-8636管理接口。看起来就是做一个标准的短距光模块,但真正落地的时候,从光路设计、高频电路、电源完整性到固件调试,每个环节都有不少值得展开讲的东西。
这篇文章就把整个设计过程拆开揉碎,从最初的方案选型聊到最后的测试排查,把我实际踩过的坑和调过的参数都写出来,希望能给正在做或者准备做同类项目的人一点参考。
1. 整体设计思路与架构选型
1.1 100G SR4的技术本质与关键指标
SR4这名字看起来简单,其实它背后捏合了三个层面的定义:速率、调制方式和通道数。这里的100G指的是总速率,由4个25G通道并行传输,每个通道的线速率是25.78125Gbps,这是100GBASE-R协议经过64B/66B编码后的实际速率,编码效率96.97%,所以有效净荷是4×25Gbps。
调制方式用的是最基础的NRZ,也就是二电平强度调制,每个时钟周期传1bit。你不用看到PAM4那种复杂调制,SR4用NRZ就意味着对光器件的带宽要求、对电路信噪比的要求、对固件均衡的依赖都比PAM4宽松不少,这也是SR4能成为成熟方案的重要原因。
波长选的是850nm,用的是VCSEL垂直腔面发射激光器阵列加多模光纤。这个波长很有意思,850nm对应多模光纤的窗口,VCSEL阵列在这个波长上工艺最成熟,成本压得下来,而且850nm不需要像1310nm那样考虑色散补偿,短距离场景下完全够用。主流传输距离规格是OM3光纤70米、OM4光纤100米,如果光纤质量好或者降速到40G模式,距离还能更远。
接口形态采用QSFP28封装,38pin金手指,电接口侧是4路25G差分对,光接口侧是MPO-12连接器。MPO-12有12芯光纤,实际只用了8芯:4发4收,中间4芯空着。这也解释了为什么后面调试时经常能碰到MPO跳线极性接不对导致收发光路错位的低级事故,做系统集成的兄弟应该都有体会。
1.2 为什么选SR4而不是其他形态
做方案选型的时候,我先把市面上主流的100G方案拉出来对比了一遍,这里列个表看得更清楚。
| 方案 | 波长/光纤 | 典型距离 | 光器件成本 | 功耗 | 适用场景 |
|---|---|---|---|---|---|
| 100G SR4 | 850nm/多模 | OM4 100m | 低 | 1.5-2.5W | 数据中心内部短距互联 |
| 100G LR4 | 1310nm/单模 | 10km | 高 | 2.5-3.5W | 城域网/楼宇间互联 |
| 100G CWDM4 | 1271-1331nm/单模 | 2km | 中高 | 2.5-3.5W | DCI边缘、园区互联 |
| 100G PSM4 | 1310nm/单模 | 500m | 中 | 2.5W左右 | 中距并行单模 |
从表格能明显看出来,SR4的定位就是机柜内和相邻机柜之间的短距低速成本敏感场景。如果传输距离超过100米,或者客户的光纤布线是单模,那就得老老实实改用LR4或者CWDM4,但价格贵好几倍,功耗也上去了。对我这个项目来说,应用场景明确锁定在数据中心TOR交换机到服务器网卡,距离在几米到几十米之间,SR4是性价比最高的方案。
另一个考虑点是研发风险。SR4的光路用VCSEL+多模光纤,VCSEL工艺非常成熟,驱动芯片的选择面很广,设计上的不确定性比硅光方案低很多。激光器可靠性数据也充分,MTBF的水平在同类有源光器件里是相当能打的。
1.3 模块系统级架构设计
确定SR4方向后,我按照光模块的通用架构把整个系统拆成五个功能单元:光发射单元、光接收单元、控制管理单元、电源单元和连接器接口单元。后面调试的时候,定位问题基本就是在这五个单元里排查,思路会清晰很多。
发射链路的信号流是这样的:来自主机的4路25G高速电信号,经过金手指进入模块,经过CDR或者Retimer后加载到VCSEL驱动芯片上,驱动芯片直接调制VCSEL阵列发光,光通过透镜阵列耦合进MPO光纤。接收链路反过来:MPO进来的4路光信号经过透镜聚焦到PIN光电二极管阵列上,光电流经过TIA转成差分电压信号,然后过CDR恢复时钟和幅度,最终从金手指送回到主机。
控制管理单元一般用一颗8位MCU配合EEPROM实现,负责初始化芯片寄存器、管理I2C通信、采集DDM数字诊断监控信息(电压、温度、偏置电流、收发光功率),并且把这些数据通过SFF-8636标准格式暴露给主机。电源单元则要把模块接口提供的3.3V电压,通过DSP/LDO/DC-DC组合转换成各个芯片需要的1.8V、1.2V等供电轨,同时保证纹波控制在可接受范围内,因为高速光器件的供电噪声直接影响光发射的眼图质量。
这个架构看着不复杂,可每个环节都有很多容易翻车的细节,下面我就把我在实际设计中重点关注的部分展开说。
2. 光路与光学耦合设计实操
2.1 发射端光路设计与耦合工艺
发射端的光学核心是VCSEL阵列,常见的SR4光引擎用的是1×4的VCSEL bar条,或者集成度更高的4通道激光器阵列。VCSEL的出光特性与传统的边发射激光器完全不同,它是垂直出光,发散角很大,快轴和慢轴的半高全宽通常在25-30度左右,如果不处理,光根本没法直接耦合进光纤。
所以我需要在VCSEL和光纤之间加透镜阵列来做准直和聚焦,把发散光束收进光纤纤芯。常见的透镜方案有两种:一种是微型球透镜阵列,另一种是集成式FA光纤阵列加模场匹配透镜。考虑到量产工艺的一致性,我选了FA+透镜阵列的方案,FA就是光纤阵列,把裸光纤放在V型槽里固定后再研磨抛光,端面角度做成8度角,主要是为了抑制回波反射,避免反射光干扰VCSEL的激射稳定性。
耦合工艺上要注意的是对准容差,VCSEL阵列出光中心到光纤纤芯中心的对准误差直接影响耦合效率。理论上850nm多模光纤的芯径是50μm,但耦合容差远没有想象的大,因为VCSEL发散角大,如果横向错位超过10μm,耦合损耗可能陡增1dB以上。实际操作中用六轴有源对准设备,边调位置边看光功率反馈,直到对准到最佳位置后点胶固定。点胶固化过程要特别当心,胶水收缩会造成微小位移,所以固化后必须复测光功率,插回损耗最好在0.5dB以内。
2.2 接收端光路与灵敏度预算
接收端的光路相对简单一点,主要器件是PIN PD阵列加TIA阵列。从MPO光纤出来的光发散角很小,直接用透镜聚焦到PD的感光面上就行。PD的感光面直径一般在35-50μm,要保证光斑恰好落在感光面上,位置同样需要精密对位。
接收灵敏度是整个接收链路里我最关注的指标。100G SR4的标准接收灵敏度在OM4光纤上有明确要求,一般要求在-8dBm以下能保证无误码,但实际工程上我会留足余量,设计目标做到-10dBm甚至更好。这里的损耗预算大概是这么拆的:接收端耦合损耗算1dB,PD响应度一般0.5-0.6A/W左右带来的等效灵敏度损失算1dB,TIA噪声和通道串扰带来的功率代价又占去1-2dB,所以光层灵敏度设计值至少要做到-13dBm的光端输入,才能在链路劣化时仍然保证系统的误码率达标。
还有一点需要注意:850nm波长下PD会响应一部分可见光,如果有环境光进入接收链路,会产生很大的直流光电流导致TIA饱和。所以模块外壳和MPO接头处必须做好光学密封,不能有任何漏光通道。
2.3 激光器热漂移与电流反馈环路
VCSEL的激射波长随温度漂移,典型漂移量在0.06-0.07nm/℃左右。如果环境温度波动过大,波长会偏离850nm窗口,接收端的滤波器或者光纤的带宽特性会受影响,导致链路代价变大。更重要的是VCSEL的输出光功率随温度变化很大,温度升高时光功率会明显下降,同时偏置工作点也会漂移,所以发射端必须设计自动光功率控制环路。
通常的做法是:VCSEL阵列旁边放一个光电探测器MPD,监测部分出光功率,经过跨阻放大器后反馈到控制环路,MCU或者专门的功率控制芯片根据MPD的输出实时调整VCSEL的偏置电流。实际调环路参数的时候要兼顾响应速度和环路稳定性,反馈带宽太高容易自激振荡,太低又会响应不了温度快速变化,我自己调的时候一般把环路带宽设在1kHz左右,折中效果最好。
3. 硬件电路与PCB设计实战
3.1 25G高速差分线布线约束
光模块里最挑剔的高速信号就是4路25G差分对。25Gbps的NRZ信号,上升沿已经进入皮秒级别,PCB上任何阻抗不连续、过孔残留stub、跨分割参考面都会让信号质量肉眼可见地恶化。这块板我选了6层叠层设计,高速信号走在第二层,参考平面用第一层和第三层,保证参考面无缝隙跨越。
差分线的线宽线距需要根据叠层和板材参数计算,我用的板材是常规的FR4升级版本,介电常数4.2,损耗角正切0.02左右。表层微带线的差分阻抗控制目标100欧姆,实际算下来线宽0.13mm、线间距0.2mm左右,但不同板厂的参数会差一点,所以投板前一定让板厂做阻抗测试条,上板后再用TDR验证实际阻抗。对于25G信号的走线长度,发射和接收路径我都控制在10mm以内,以缩短传输损耗和过孔带来的寄生效应。
过孔对25G信号的杀伤力要单独拿出来说。普通通孔从表层打到内层,剩下的那截未使用的过孔身就像一根天线,会造成严重的信号反射。处理办法是打背钻,把不用的过孔段钻掉。我要求板厂对每个高速信号过孔都做背钻处理,背钻深度公差控制在±50μm内。另外高速过孔旁边加地过孔做回流路径,既减小回路电感,也能把过孔转换处的阻抗突变压下去。
3.2 QSFP28金手指与ESD防护设计
金手指的引脚定义要根据SFF-8665规范来,这是QSFP28系列模块兼容性的基石。设计时要特别注意高速差分对的引脚位置,它们集中在金手指的前端,离模块解锁拉环很近,拆装时更容易受到机械摩擦和静电冲击。
ESD防护是光模块设计里容易被低估的环节。模块在数据中心机房里频繁插拔,人体静电放电很容易通过金手指进入模块内部,损坏VCSEL、PD或者驱动芯片。我在金手指靠近高速信号引脚的位置加了一级TLP导电聚合物TVS阵列,钳位电压要选好——VCSEL驱动芯片的ESD耐压通常只有几百伏,TVS的钳位电压必须低于芯片引脚的损坏阈值。电源引脚上加了LC滤波加TVS的组合,既防静电也防瞬时过压。
更关键的是,模块外壳的接地处理不能省。QSFP28的壳体上有多个弹片触点,压接到面板或笼子上后,模块地和系统地之间形成低阻抗回流路径。如果地弹片接触不良,插拔瞬间的静电放电电流会走高速信号回路,哪怕没破坏器件,也可能造成传输误码,这种间歇性故障排查起来非常痛苦。
3.3 电源架构与功耗预算分配
光模块标称的供电电压是3.3V,但模块内部各芯片的供电需求五花八门:VCSEL驱动芯片需要1.2V核心电压和2.5V左右的驱动电压,TIA用1.8V,MCU用3.3V或者1.8V,EEPROM和各种参考电压源也各有要求。
一个成熟的电源架构是用一颗DC-DC把3.3V降到1.2V主供电轨,再通过LDO二次稳压出1.8V和2.5V。这样做的原因是DC-DC效率高,适合承载驱动芯片这类大电流负载,但它的开关纹波比较大,不能直接给模拟敏感器件供电;LDO电源抑制比高,适合做电压净化和隔离。我用的是DSP数字电源控制芯片做动态调压,实际功耗标定下来,整模块满负荷工作时的功耗在1.8W左右,比标准限制的2.5W还有余量,高低温环境下表现也比较稳定。
电源纹波是这里最需要盯着的参数之一,因为VCSEL驱动电流的微小波动会直接叠加到光强度上,形成强度噪声,最后体现在眼图上就是眼睛模糊、抖动变大。我在调试时用示波器专门测过1.2V电源轨的纹波,要求峰值不超过30mV,如果看到纹波偏大,优先检查DC-DC的开关频率补偿参数、输出的陶瓷电容容值和ESR、以及电感选型,有时候多加一颗100nF的MLCC放在驱动芯片电源脚旁边,效果立竿见影。
3.4 控制链路与DDM监控实现
控制链路主要由MCU、EEPROM、I2C总线和主机侧的管理接口组成。模块通过金手指的I2C引脚与主机通信,标准地址是0xA0,用于读取数字诊断监控数据,以及0xA2用于访问用户EEPROM和页面选择。
DDM数据这个功能在光模块里几乎是标配了,而且不少系统会基于DDM做链路质量预警,比如在光功率劣化到一定程度时提前触发告警,避免业务中断。我做的DDM包含五类核心监控量:模块内部温度、供电电压、激光器偏置电流、发射光功率、接收光功率。每个监测量都有高中低告警阈值和警告阈值,固件里用查询和事件上报两种方式配合处理。
这里有个很多人忽略的细节:不同厂家光模块的电压基准不一样,同一个Vcc读数在不同模块上可能代表不同的实际电压。为了保证DDM数据的可比性,我在校准阶段用高精度万用表实测模块电压,然后反推MCU内部ADC的偏移量和增益误差,把校准系数写进EEPROM的用户区,模块出厂时每一只都做单独的系数标定。这样主机拿到的数据才是可信的。
4. 信号完整性与调试实录
4.1 眼图测试与关键指标分析
25G信号调试,眼图是绕不开的关卡。我一般会在模块的发射电信号输出端,用实时示波器配合符合性测试夹具抓眼图,重点看几个指标:眼高、眼宽、交叉点位置、总抖动、确定性抖动和随机抖动分量。
眼图最直观,但抓眼图的门道很多。信号经过示波器通道、探头、夹具之后,损耗和反射会影响测量结果,所以测试时一定要用协议规定的测量点参考夹具,并且做通道去嵌入,否则看到的眼图并不是模块真实输出的质量。实测中我发现不少设计在板上走线时看起来正常,但一过金手指连接器,眼图立刻劣化,根本原因就是连接器区域没有做阻抗补偿,反射损耗把眼高压下去一大截。后来我在金手指焊盘周围做了挖空处理,把局部特征阻抗拉回100欧姆,眼高才恢复回来。
另外一个容易被忽略的是发射端的预加重设置。VCSEL驱动芯片通常有不同档位的预加重或FFE均衡,用来补偿封装和PCB带来的高频损耗。这个参数需要根据实际测试微调:预设加重太小,高频分量的摆幅不够,眼图上边缘爬坡慢;预设太重,则过冲增大,长时间工作可能影响激光器寿命。我用扫参的方式从最小档往上加,每加一档测一次眼图,找出眼高、眼宽和过冲之间的最佳平衡点。
4.2 串扰排查与误码率根因分析
四路并行通道在同一块小小的PCB上挤在一起,通道间的串扰是一个很难完全消除的伴随性问题。我把四根发射差分线分成了两个走线组,每两组之间用一排地过孔隔离,接收和发射的高速线也分布在不同层且走向尽量垂直,以降低参考层耦合。
示波器上能测到的串扰主要来自两个方面:近端串扰和远端串扰。近端串扰影响的是发送方向自身的信号,远端串扰则会直接叠加到其他通道的接收信号上。当同一块模块里的4路接收都在满负荷工作时,如果某一通道的TIA输出回灌到相邻通道的输入光路,可能在接收端形成pattern相关抖动(PJ)。
我实际调试中遇到过一次误码率居高不下的问题,稳定在10的负10次方量级,迟迟压不到10的负15次方以下。后来排查很久发现,问题根本不在串扰,而是模块内部的一颗电源去耦电容位置放得不好,形成了电源谐振峰值正好落在25G信号频段里。这给我一个教训:高速模块设计的信号完整性和电源完整性是分不开的,电源噪声的频域分布有时比时域纹波更能影响最终误码率。
4.3 高低温循环测试与阈值校准
光模块作为数据中心核心链路上的有源器件,环境适应性有严格的要求。我的测试方案是让模块在-5℃到70℃的温箱里做循环测试的同时,让误码仪持续跑误码率测试。这个环节能暴露出常温下发现不了的问题,比如激光器的阈值电流漂移、PD的暗电流变化、电源的热降额等。
高温下最容易出事的是VCSEL。温度升高,激光器的阈值电流变大,输出功率下降,如果APC环路的调节范围不足,发射光功率就会跌出告警阈值。低温下则相反,激光器效率可能升高,偏置电流会被环路压得很低,此时如果电流太小,激光器可能进入不稳定的工作区域。所以高低温校准的时候,我会在极限温度点把DDM告警阈值重新标定一遍,保证模块在极限环境下不会误报光功率告警。
这里还要提醒一点:温箱里的光源、光纤和连接器本身也受温度影响。同一根MPO跳线在低温下的插回损耗和高温下会不同,测试时要保证光链路本身是稳定的,否则数据会被污染,会把光纤的锅算到模块头上。
5. 常见问题与排查技巧速查
5.1 典型故障处理记录
项目过程中遇到不少问题,挑几个典型的写出来,这些问题很可能也是你会在项目里碰到的。
第一个是无光故障,模块插上后主机读不到DDM数据,但电接口链路是UP的。我排查时先用光功率计打光,发现完全没有光输出,再用热成像看模块,发现VCSEL驱动芯片区域温度异常高。查下来是驱动芯片的电源引脚焊接短路,导致驱动芯片直接进入过流保护。这类问题在PCB贴片后并不少见,焊接后务必做X-Ray检查和ICT测试。
第二个是高误码率,常温下都压不下来。我逐渐缩小排查范围,发现只有一起跑四条接收通道时误码率才高,单通道跑没问题,基本判断是串扰。后来用电台实测每一路的信号质量,找到了信道间的耦合路径,通过在PCB上加地过孔隔离并加大间距,误码率才达标。
第三个是I2C通信偶发失败,概率大概千分之一。这是我最早忽视的问题,以为只是固件重试不够强,后来用示波器抓I2C波形,发现上升沿很缓,原因是总线上拉电阻偏大,加上金手指接触电阻后,低电平被判高。方案是减小上拉电阻、优化金手指表面的镀金厚度和光滑度,问题消失。
5.2 性能异常快速排查对照表
调试过程中整理了一张快速排查表,比较实用,分享出来。
| 现象 | 可能原因 | 快速验证方法 | 解决方案 |
|---|---|---|---|
| 发射无光/光功率极低 | VCSEL损坏或驱动未工作 | 用显微镜观察VCSEL出光面,测驱动芯片电压 | 更换光引擎,复测驱动芯片控制状态 |
| 发射光功率正常但眼图差 | 驱动偏置电流不合适、PCB走线损耗大 | 用示波器抓发射端电信号眼图 | 调整预加重参数,复核走线长度和过孔背钻 |
| 接收灵敏度差 | PD耦合位置偏移、TIA增益配置错 | 用标准光功率源打光测BER | 重新对位耦合,检查TIA配置寄存器 |
| 高误码率 | 串扰、电源噪声、MPO极性错误 | 分通道跑BER,测眼图,看电源纹波 | 按第4.2节方法逐项排查 |
| 温度告警误报 | DDM阈值未校准 | 对比实测温度和DDM读数 | 重新做高低温校准,更新EEPROM阈值 |
| I2C偶发失败 | 上拉不足、接触不良 | 示波器抓I2C波形,看上升时间 | 调上拉电阻,检查金手指接触 |
5.3 固件框架与生产标定的几个细节
固件这块虽然不是光模块主体设计的全部,但控制不好同样很致命。初始化流程上,MCU上电后第一步是从EEPROM读取模块描述符和标准管理字段,然后初始化驱动芯片寄存器,配置电源监控,最后把DDM数据区更新为有效状态。如果EEPROM内容写错或者损坏,模块轻则告警阈值异常,重则无法被主机正确识别。
生产标定的环节我一贯坚持不能省,哪怕会增加工时。发射光功率标定、接收功率标定、温度传感器标定、电压标定、激光器偏置电流标定,五个量的标定系数全部存进EEPROM,后续传统设备读取和使用这些系数。标定方法是用高精度仪表做基准,把实际值和ADC原始码值的对应关系拟合成线性甚至分段线性方程,然后反解出系数。
这些环节看着繁琐,但它直接决定了模块的可用性和一致性问题。我在好几家工厂见过只管封装测试、不做校准就出货的产品,到了客户现场总会爆发各种光功率异常、告警误报的问题。该花的标定时间,一分都省不下来。
6. 最后再说几点设计经验
回头来看这个100G SR4项目,真正花时间的不是光路的原理设计或者芯片选型,反而是那些藏在细节里的工程问题:VCSEL透镜对准时的胶水收缩、25G过孔背钻的残余stub、金手指接触阻抗的一致性、高温下环路带宽的变化。
我做这类项目有一条原则:每一步务必留下验证记录。每一版PCB的回流焊后阻抗实测、光路耦合后的插回损耗、高低温前后的DDM数值变化,全部记录归档。这样做的价值在后续量产阶段才会体现——当产线反馈某批次良率下降时,对照验证记录可以快速定位是材料批次、工艺偏差还是设计裕量不足。
另外建议做光模块的兄弟们,测试设备一定不能省。误码仪、高速示波器、光谱仪、光功率计、温箱,这些都是必备的。设备贵是贵,但一次误判浪费的调试时间,早就超过设备的成本了。
这个项目做完之后,我又把同样的架构方案平移到了200G SR4的双QSFP28版本上,核心思路没有变太多。如果你也想往更高速率扩展,先把100G SR4这一代的设计吃透,后面的路会顺很多。希望这篇文章能给你提个醒、避个坑。