1. 光模块学习笔记二从引脚到建链把QSFP28和常用模块一次讲透接上一篇笔记。上一篇我主要梳理了光模块的分类、基础工作原理以及SFP/SFP/SFP28这类小型可插拔模块的演进脉络。今天这篇我打算继续往下挖把重心放在QSFP28这个形态上配合实际工作中最常碰到的调试场景把模块从“插上去”到“链路通”的整个过程拆开来讲。先说一个观点搞光模块这行光看规格书是不够的规格书只告诉你“能干什么”不告诉你“干的时候会遇到什么”。真正上了机房、上了测试台你会发现最浪费时间的不是模块选型而是模块插上之后链路起不来或者信号通了但误码高得离谱。这时候你对引脚定义、数字诊断、链路协商这些底层机制的熟悉程度直接决定了排查效率。所以这一篇我重点写三块一是QSFP28的引脚定义这是物理层的“地图”二是常见模块选型思路这是规划阶段的“清单”三是建链和排查的实操记录这是日常工作的“试金石”。这篇笔记适合刚接触数据中心网络、光传输设备的朋友也适合那些做了几年运维但没系统抠过模块细节的同行。2. QSFP28引脚定义逐针拆解搞懂物理层的“地图”2.1 引脚布局与信号分类先看懂38针的整体结构QSFP28这个名字Q代表Quad也就是四通道SFP代表小型可插拔28则代表单通道速率28Gbps实际是25.78125Gbps的64B/66B编码后速率。四通道加起来就是100Gbps这是100G时代最主流的光模块形态。它的电口是38个引脚分上下两排排列每排19个。别被这38个引脚吓到实际拆开来看这些引脚只负责四类事情电源和地、低速管理信号、四组高速差分信号、以及一些辅助检测信号。第一类电源和地。电源引脚主要是给模块内部的光发射组件TOSA、光接收组件ROSA、驱动芯片和CDR芯片供电的。这里要特别注意电源引脚的数量QSFP28的电源引脚比SFP多得多因为四通道的功耗远高于单通道我记得标准里功耗上限是3.5W左右实际许多100G LR4模块能到3.5W甚至更高所以电源引脚必须分布均匀避免单点过流。第二类低速管理信号。这部分包括模块在位检测ModPrsL、模块选择ModSelL、复位ResetL、低功耗模式LPMode、中断输出IntL、以及I2C通信用的SCL和SDA。这些信号看起来不显眼但实际调试中排查“系统为什么识别不到模块”一半以上的问题都出在这几个引脚上面。第三类就是四组高速差分信号。QSFP28的电口定义里TX1到TX4和RX1到RX4每组都是一个差分对也就是正负两根线。这四组信号对应光模块内部的四个光通道100G光模块的四个通道各跑25Gbps四个通道合起来就是100G。第四类是外壳地和一些保留引脚这部分一般不用管按标准接地就行。2.2 电源、接地与低速率管理信号调试时最容易被忽略的地方先讲电源和地。QSFP28的38针里电源引脚分布在多个位置常见的电源电压是3.3V。这里有个很实用的经验量模块供电是否正常别只量模块电源引脚要从连接器母座背面去量因为很多模块插不到位前面板量出来电压是虚的。接地引脚同样重要。高速信号的参考平面是靠地引脚和连接器的金属外壳共同保证的如果地接触不良眼图会变得很差误码率会直接飙升。我自己踩过这种坑模块插上后光功率正常但误码率一直在10的负8次方降不下去最后排查下来是连接器的弹片变形导致接地不良。所以板卡设计时QSFP28连接器周围的地孔一定要打满尤其是在高速差分信号拐弯的地方。接下来是低速管理信号这部分我需要逐个说明。ModPrsL模块在位检测信号低电平有效。模块插入连接器时这个引脚被模块内部的电路拉低系统就能知道这里有个模块。主机通过读取这个引脚的电平来判断模块是否在位这也是系统日志里“unrecognized module”和“module absent”两个状态的根本区别。ModSelL模块选择信号也是低电平有效。QSFP28通过I2C总线与主机通信一条I2C总线上可以挂多个模块那怎么区分是哪个模块在通信呢就是靠ModSelL。主机在操作某个模块前先把该模块的ModSelL拉低其他模块的拉高这样就能选通目标模块。这有点像多个设备共用一个串口靠片选信号来区分设备。ResetL复位信号低电平复位。这个引脚一般由主机控制模块在工作异常时可以通过这个引脚做硬件复位。注意复位之后模块需要重新初始化读取模块信息的程序要等待模块准备好之后再去读否则可能读到空数据。LPMode低功耗模式控制脚。当这个引脚被拉高时模块进入低功耗模式此时高速信号输出会被关闭但I2C通信仍然可以工作。新插入的模块默认会进入低功耗模式主机正常启动流程是先等模块在位再拉低LPMode让模块进入全功率工作状态。很多人插上模块后发现没有光输出大概率就是LPMode没有被正确拉低。IntL中断输出信号低电平有效。当模块内部检测到异常比如温度过高、电压异常、激光器失效会把这个引脚拉低主机检测到这个中断后再通过I2C读取具体的告警寄存器定位具体问题。2.3 四通道高速差分信号100G的数据管道QSFP28最核心的4组高速差分信号对应的是电口到光口的数据通道。我们可以这样理解四个电信号通道经过模块内部驱动电路调制到四个不同波长的激光器上通过一根光纤传输接收端再用四个光电探测器分别接收四个波长经过TIA放大后输出四路电信号。以最常见的100G LR4为例它的四路波长是1295.56nm、1300.05nm、1304.58nm、1309.14nm四个波长通过波分复用合成一路光信号在单模光纤里传输。这种方案的好处是只用一根光纤就能跑100G光纤资源利用率翻倍。在实际做硬件调试时高速信号这部分有几个关键检查点。第一检查TX差分信号的电压摆幅。用示波器探测模块电口发端正常情况下眼图应该有清晰的“眼睛”摆幅一般在500mV左右过小说明模块发射电路有问题过大则可能产生过大的电磁干扰。第二检查RX差分信号有没有接收数据。如果RX有信号但TX没输出问题大概率出在模块的激光器驱动电路或者模块没有正确退出低功耗模式。这里插一个经验如果系统上电后长时间不识别模块不要急着怀疑是模块坏了先量一下ModPrsL和LPMode两个脚的电平状态。很多时候是上电时序的问题——系统还没有完成初始化模块的LPMode默认拉高导致模块始终处于低功耗状态链路自然起不来。2.4 数字诊断与管理接口读取模块状态的关键通道QSFP28沿用并强化了SFF-8636标准里的数字诊断监控接口DDM通过两线I2C接口访问模块内部的寄存器。这个接口能读到的信息非常丰富包括模块温度、供电电压、四路TX/RX光功率、激光器偏置电流等实时监控参数。这块对于运维排查格外有用。举个例子当一根光纤链路抖动到底是发射端光功率不够还是接收端灵敏度下降或者是光纤本身损耗变大通过读取两端的DDM信息基本能锁定问题方向。DDM读取有个小技巧模块内部寄存器的地址映射比较固定比如温度寄存器在0x0B到0x0C电压在0x0D到0x0E四路RX光功率从0x16开始到0x1D。但不同厂商对寄存器的实现细节有时会有差异所以在做工具脚本时最好先读一下模块的能力字段位于寄存器0x00到0x7F的存储区确认模块支持的监控参数范围再决定要不要信任某些寄存器值的精度。另外QSFP28还支持中断逻辑前面提到的IntL信号就与此相关。模块内部有报警和告警阈值寄存器当某个监控参数越限时模块会记录状态并由IntL上报给主机。运维监控软件开发时可以充分利用这个机制实现主动告警而不是定时轮询。这里额外提醒一句SFF-8636相比SFF-8431SFP的规范在寄存器地址映射上差异很大同时QSFP28还增加了对4个独立通道的控制和诊断支持。写脚本读DDM时一定要对应具体的规范版本拿SFP的思路去读QSFP28的寄存器的后果就是数据全是乱码。3. 从SFP到QSFP28光模块形态演进背后的逻辑3.1 为什么要从SFP升级到QSFP28不止是速率翻倍很多人觉得光模块的升级无非就是速率越来越快接口形态自然跟着换代。这话没错但背后的驱动力更复杂。SFP在10G时代是主流单通道10Gbps接口体积小但到了25G时代单通道25Gbps的SFP28出现了它沿用了SFP的封装尺寸但功耗和信号完整性要求更高。再到100G时代如果还做单通道100G那个激光器的调制速度可能要突破物理极限成本和散热都扛不住所以业界转向了并行多通道方案——四路25G并行这就是QSFP28诞生的逻辑。QSFP28的电口是38PIN体积比SFP28的20PIN大一圈但带来的好处是四通道可以并行传输单根光纤里用四波长波分复用或者说用多芯并行MPO接口实现100G速率。密度直接提升一个交换机面板上能容纳的100G端口数量相比10G时代翻了几倍。这对数据中心来说太重要了机房空间和散热成本都是真金白银。3.2 100G光模块的常见类型选型先看距离再看光纤100G光模块按传输距离来分主要有这几类100G SR4、100G LR4、100G ER4、100G CWDM4。100G SR4用的是多模光纤传输距离在100米左右发射波长850nm接口通常是MPO/MTP。它的原理是用四路独立的收发通道并行每路25G。在数据中心机柜内部的TORTop of Rack场景SR4是绝对主力。但要注意SR4必须要配多模光纤如果机房跳线用的是单模那无论怎么调都通不了。100G LR4用的是单模光纤传输距离10公里发射波长是前面提到的四路CWDM波长LWDM接口通常是LC双工。它是城域网和数据中心互联DCI场景里的常客。很多人纠结SR4和LR4怎么选其实逻辑很简单距离100米以内、且机柜内的光纤以OM3/OM4为主就选SR4距离超过500米甚至要到几公里那就必须上LR4。100G ER4可以到40公里100G CWDM4是20公里。这些价格会高不少主要用在长途传输或跨数据中心场景。如果你是做企业网升级改造的通常用不到这么长的距离不是越大越好选型时一定先算链路预算。再补充一个细节同为封装QSFP28SR4模块内部用的是VCSEL垂直腔面发射激光器LR4用的则是DFB分布反馈式激光器。VCSEL成本低、功耗低但发散角大只能支持多模短距离DFB光谱特性好、支持长距离单模但成本高、温度敏感。这里的器件原理值得多了解一下因为后面做故障排查时不同类型激光器的失效模式完全不同——VCSEL常见的是发光功率缓慢衰减DFB常见的是温度漂移导致波长偏移。3.3 200G、400G时代QSFP28的位置在哪里现在400G已经开始上量但QSFP28并没有完全退役。在400G时代业界推出了QSFP56和QSFP-DD等新形态电口里的差分对数翻倍分别达到8通道50G和8通道25G。QSFP28在200G场景仍有用武之地——IEEE已经定义了通过PAM4调制方式在QSFP28封装上跑200G的方案即每个通道用50G PAM4信号两个通道打包成一个通道来跑100G四个通道加起来200G。我在实际项目里见过一些过渡方案有人用QSFP28封装跑200G也有人把QSFP28模块插在QSFP-DD端口的拆分线上。核心思路都是利用现有封装的机械结构只改变电信号调制方式降低设备换代成本。不过PAM4信号对链路质量的容忍度比NRZ差很多它对光信噪比、色散、连接器插损的要求都成倍提高。这意味着QSFP28的选型测试不能光看能不能亮还得看链路余量够不够。我建议有条件的朋友用眼图仪和误码仪对PAM4信号做更系统的压力测试不要等到上了线发现问题才回头查。4. 实操过程从插到通记录一次完整的建链调试4.1 物理连接与准备别在最简单的环节翻车先说物理连接。这个环节看起来简单但翻车率不低。接QSFP28模块时注意模块插入方向防尘塞要拔掉再插插入时要感觉到“咔哒”一声这说明卡扣到位了。很多机房故障最后发现只是模块没插到位或者防尘塞没摘掉就接上了光纤链路光功率当然测不出来。光纤跳线方面先确认你的模块是多模还是单模SR4配多模MPO跳线线体通常是水绿色OM3或紫红色OM4LR4配单模LC跳线线体是黄色。MPO跳线还要注意极性A/B/C三种极性对应不同的收发关系插反了链路指示灯不会亮但看起来两条光纤都是通的这问题在机房现场很常见。我自己的习惯是上电前先用光功率计测试光纤跳线的插损尤其是MPO跳线用光源和功率计扫一遍确认每条通道的衰减值都在预期范围内再往设备上插。4.2 系统识别模块读取DDM信息确认工作状态模块插好后登录交换机或者服务器查看系统日志。以常见网络设备为例插上模块后在命令窗口执行“show interface transceiver”之类的命令可以看到模块的类型、序列号、生产厂商、速率、波长、DDM信息包括温度、电压、四路TX/RX光功率。正常情况下的判断标准大概是这样的温度在室温附近电压在3.3V附近一般允许正负5%的偏差TX光功率应该在标称范围内RX光功率如果是断开光纤状态会显示无光或接近零。如果四项指标有一项明显异常建议先处理异常再考虑链路。读取DDM这一步非常关键因为它能帮你确认模块在硬件层面是否正常工作。比如温度寄存器显示90度那说明散热有大问题勉强用下去后果很严重。再比如某个通道的TX光功率比其余通道低了5dB这个模块大概率内部已经出了问题需要返修。4.3 链路建立与协商让两端设备“握手成功”硬件识别OK后需要让链路两端交换协商信息。以太网光模块的链路协商逻辑相对简单不像电口有自协商那么多档位。但100G链路要建立起来系统需要把模块的工作模式切换到正确的速率档位。有些交换机的端口默认没有开启100G模式特别是那些兼容10G/25G/100G的多速率端口软件上要先确认端口速率配置正确。这里我遇到过比较典型的案例某监控平台部署了100G LR4模块端口始终起不来日志显示“transceiver not supported”。查到最后发现是交换机的固件版本太老不认识这个厂商的模块固件信息。解决办法是升级交换机固件或者给端口配置厂商兼容模式。链路起来之后先用Ping测试大包连通性再用iperf之类工具打流量压测。但小流量通不代表链路质量合格100G链路必须跑满吞吐并观察误码情况。4.4 长时间运行验证模块稳定性才是最终目标建链成功只是第一步。以我的习惯新上的100G链路至少要观察24小时重点看有无丢包、误码、光功率波动、模块温度漂移等。有些模块刚开机时光功率正常但激光器热稳定性差运行几小时后光功率下降几个dB误码就出来了。这类隐蔽问题不强跑24小时根本发现不了。长稳测试期间还要留意告警日志。QSFP28模块的IntL机制会实时上报异常比如模块温度超过阈值或某个通道RX光功率低于告警阈值系统都会有记录。这些记录是排查问题的最好线索。5. 常见问题与排查技巧实录5.1 模块插上后系统识别不到优先查这五个点识别不到模块是故障率排第一的问题。处理思路按顺序走先怀疑物理电路再怀疑信号时序然后怀疑模块兼容性最后才怀疑模块本身损坏。第一步量电源确认模块供电引脚上有3.3V电压。第二步量ModPrsL确认模块插入后被拉低。第三步量LPMode确认主机已拉低该引脚让模块退出低功耗模式。第四步用I2C工具读模块的ID寄存器确认I2C总线通信正常。第五步才考虑模块兼容性比如厂商ID不在系统兼容列表里或者模块固件版本过旧。我见过一个人反复插拔模块半天不见好最后发现是交换机对端端口shutdown了。所以排查早期先看一眼对端端口状态能少走很多弯路。还有一个经验QSFP28模块对连接器的弹片力度要求比SFP高如果插拔过很多次连接器弹片变形、氧化是常见的。遇到识别不正常的老端口可以换一个端口试一下这一步能快速把“模块坏”和“端口坏”分开。5.2 光功率正常但链路不通问题可能出在协商或配置光功率正常为什么链路起不来通常原因有几个两端模块速率不匹配、接口被shutdown、光纤收发接反特别是双芯LC场景、VLAN或trunk配置问题、软件版本兼容性。查这类问题时我会把链路两端的模块DDM信息都拉出来对比发射光功率、接收光功率、链路层Up/Down状态。如果TX和RX光功率都正常但物理层不Up优先怀疑速率协商或配置问题。如果对端RX光功率为-30dBm以下说明光路有问题就该用光源和光功率计去分段测量光纤链路。这里要特别提醒MPO场景SR4的MPO接口有12芯模块只用其中的8芯四发四收。如果MPO跳线的排纤方向反了光功率测量结果可能正常但具体到某一对通道时就错位了链路必然起不来。别问我为什么知道这都是实验室里拿血的教训换来的。5.3 误码率偏高从光路和信号完整性两头查误码问题比链路不通更难搞因为它能通但质量不行。排查从物理链路开始先确认两端模块的RX光功率在接收灵敏度范围内一般来说100G模块的灵敏度在-10dBm左右预留3dB以上的余量比较稳妥再确认光纤接头是否脏污用光纤显微镜检查端面。光纤端面脏是误码的头号杀手一根头发丝的灰尘都可能让误码率高出几个数量级。光功率没问题再查信号完整性。如果模块支持CDR时钟数据恢复功能可以尝试开启或关闭CDR看误码有无变化。某些模块的CDR设置与对端不匹配时会表现为偶发性误码。如果链路中间有跳接比如经过配线架或者光纤交汇箱建议对每一个连接点都用插损测试仪扫一遍。曾有案例排查误码问题查了一整天最后发现是ODF架上有一根跳线的接头端面被磨花了光功率只差了0.5dB但反射噪声把信号弄脏了。5.4 故障排查速查表现象优先检查项常用排查手段系统识别不到模块ModPrsL、LPMode、I2C通信万用表量电平、I2C工具读寄存器端口无光输出LPMode是否拉低、激光器状态光功率计测TX光光功率偏低光纤端面脏污、插损超标光纤显微镜、光源光功率计链路Up但Ping不通端口配置、VLAN、对端状态检查配置、抓包误码率偏高接收功率余量、端面质量误码仪测试、DDM监控链路时断时续散热、连接器接触不良长稳测试、温度监测温度告警散热环境、模块功耗检查风扇、更换模块这张表是浓缩经验建议把这张表当作团队内部排查的固定动作手册。现实情况里大部分故障按表操作一遍十分钟内能定位。定位不了的就是那种需要上眼图仪、误码仪的高难度问题了那就老老实实回实验室慢慢测。6. 工具选型与测试环境搭建的几点心得6.1 模块通用性选型兼容性列表要提前看对接项目时模块选型的第一原则不是看参数多好看而是看兼容性列表。大厂交换机的兼容列表一般会列出推荐的厂商和具体型号这份名单之外的模块插上去可能被系统拒认。如果你在做测试环境规划强烈建议先准备一套完整的通用性对照表把交换机品牌型号、模块厂商、固件版本、支持速率一一对应起来。这背后的原因是每个光模块的固件里都有一组能力描述符T0/T1/T2页交换机在识别模块时会去读取这些描述符跟自身的兼容库匹配。库里的能正常工作不在库里的就看系统策略——有的拒认有的只告警不阻断。顺便提一句国产模块这几年进步很大很多项目的兼容性做得比国外品牌还积极会去主动匹配主流交换机的兼容库。选型测试阶段把这些都跑一遍可以省一大笔预算。6.2 测试环境搭建要点复用和隔离都要兼顾搭光模块测试环境需要注意两点一是链路尽量隔离别跟正在跑业务的网络混在一起二是要能灵活替换模块和光纤别为了测一个模块把整个机柜网络都拆了。我的建议是准备一个专用的测试交换机配不同速率的光口再备几套光电转换器和可调光衰减器做链路预算验证。测试时按顺序记录模块型号、序列号、固件版本、DDM数据、长稳时间、误码测试结果形成一份完整的测试报告。这样后续排查问题时有据可查也可以反向追溯某个批次模块的质量。另外如果你的测试环境里既有SFP28又有QSFP28记得两类模块的供电能力不同。SFP28单模块功耗约1WQSFP28能到3.5W测试交换机对两种模块的供电余量要单独确认否则会出现“模块规格没问题但端口供电不足”的情况。关于光模块学习笔记的第二篇我着重聊了QSFP28的引脚定义和实操建链。其实写这篇的目的不是让你把这些引脚全背下来而是建议你在遇到故障时能快速定位到对应的信号和寄存器。光模块看着小但它同时牵扯到电子、光学、通信三个领域的知识一次学不透很正常先记住排查路径再在工作中慢慢加深理解。后续有时间我打算继续整理第三篇重点写光模块的测试方案和更细的调试指令把这个系列做成一份能真正帮上忙的实战手册。