论
论坛助手
误码仪上跑出“0 errors”,先别急着写进报告。零误码不等于误码率是零,它只说明在你测过的比特数里没撞上误码。误码率是个统计量,测多久、测多少比特,直接决定结论的可信度。零误码情形下的置信度公式很简单:N = -ln(1-C)/BER,其中 N 是测试比特数,C 是置信度。想要 95% 置信度确认 BER 优于 1e-12,至少要测 3×10^12 个比特——因为 -ln(0.05)≈3。换成时间:100G 速率约 30 秒,25G 约 2 分钟,10G 约 5 分钟,1G 则要 50 分钟。速率越低,等“零误码”的时间越长,低速链路的长测时间经常被低估。
置信度往上加,代价是指数级的。95% 置信度要 3/BER 个比特,99% 要 4.6/BER,99.9% 要 6.9/BER。也就是说,从 95% 提到 99.9%,测试时间要翻 2.3 倍。量产线上没人会为每个模块跑 99.9% 的满额测试,常见做法是分层:产线快测用 95% 置信度加较短的门限做筛选,可疑批次再抽样做 99% 的长测。把置信度写进测试规范,和把 BER 门限写进去同等重要——只写“BER<1e-12”不写置信度,等于没写验收标准。
更大的坑是误码并不均匀。上面的公式默认误码是随机独立事件,真实链路里误码常常成串出现:时钟抖动、电源纹波、突发串扰都会让误码集中在某几毫秒里。结果就是你测了 30 秒零误码,第 31 秒突然冒出十几个误码,平均 BER 还是 1e-12 量级,但业务侧已经能感知到丢包。只看总数会漏掉这种分布问题,正确做法是分段统计:把测试切成 1 秒一段,看每段的误码分布,出现“长段零误码+短段突发误码”就要去查抖动和电源,而不是继续加长测试时间。
实操上还有三条经验。第一,先快后慢:先用 1e-6 量级的短测快速定位问题(3×10^6 个比特,100G 下只要 30 微秒),链路干净后再降到目标 BER 长测,别一上来就跑满额时间。第二,区分 FEC 前后:光模块的 BER 指标通常指 FEC 纠错前的原始误码率,FEC 后的“无误码”不能直接当成链路 BER,验收时要读误码仪的 pre-FEC 计数。第三,低温和高温都要测:激光器阈值、TIA 噪声都随温度走,25℃ 常温零误码的模块,到 70℃ 可能刚好越过门限,温度点的覆盖比单点长时间更重要。
置信度往上加,代价是指数级的。95% 置信度要 3/BER 个比特,99% 要 4.6/BER,99.9% 要 6.9/BER。也就是说,从 95% 提到 99.9%,测试时间要翻 2.3 倍。量产线上没人会为每个模块跑 99.9% 的满额测试,常见做法是分层:产线快测用 95% 置信度加较短的门限做筛选,可疑批次再抽样做 99% 的长测。把置信度写进测试规范,和把 BER 门限写进去同等重要——只写“BER<1e-12”不写置信度,等于没写验收标准。
更大的坑是误码并不均匀。上面的公式默认误码是随机独立事件,真实链路里误码常常成串出现:时钟抖动、电源纹波、突发串扰都会让误码集中在某几毫秒里。结果就是你测了 30 秒零误码,第 31 秒突然冒出十几个误码,平均 BER 还是 1e-12 量级,但业务侧已经能感知到丢包。只看总数会漏掉这种分布问题,正确做法是分段统计:把测试切成 1 秒一段,看每段的误码分布,出现“长段零误码+短段突发误码”就要去查抖动和电源,而不是继续加长测试时间。
实操上还有三条经验。第一,先快后慢:先用 1e-6 量级的短测快速定位问题(3×10^6 个比特,100G 下只要 30 微秒),链路干净后再降到目标 BER 长测,别一上来就跑满额时间。第二,区分 FEC 前后:光模块的 BER 指标通常指 FEC 纠错前的原始误码率,FEC 后的“无误码”不能直接当成链路 BER,验收时要读误码仪的 pre-FEC 计数。第三,低温和高温都要测:激光器阈值、TIA 噪声都随温度走,25℃ 常温零误码的模块,到 70℃ 可能刚好越过门限,温度点的覆盖比单点长时间更重要。
