可以。你昨天混淆的是两套不同的命名体系:
- 供应商或行业常用名称,例如:
text
QSFP28-100G-ER4
- 公司内部成品命名,例如:
text
QFP-BPxxHG-40DC
它们不能直接按字符串一一对应。
一、QSFP28-100G-ER4 的含义
通常可以这样理解:
| 部分 | 含义 |
|---|---|
QSFP28 |
光模块外形和产品系列 |
100G |
总速率约 100 Gb/s |
ER4 |
100G ER 类远距离方案,4 通常表示 4 个波长通道 |
这里的 ER4 是供应商或行业方案名称,不是公司内部命名规则。
尤其要注意:ER4 中的 4 与自动测试程序里的 i < 4 不一定有关系。它可能表示光学波长数量,而不是程序要测试的通道数量。
二、公司内部命名的格式
图片中的格式大致是:
text
QFP - 模块类型 - 波长 - 速率 - 距离 - DDM - 温度 - 定制标记
例如:
text
QFP - MM 85 FG - S1 D C Z
各字段含义如下:
| 字段 | 含义 | 示例 |
|---|---|---|
| 第 1 段 | 产品类型 | QFP |
| 第 2 段 | 模块类型 | MM、BP |
| 第 3 段 | 波长 | 85、31 |
| 第 4 段 | 速率 | FG、HG |
| 第 5 段 | 传输距离 | S1、10、40、ER |
| 第 6 段 | 是否带 DDM | D 或 N |
| 第 7 段 | 工作温度等级 | C、E、I |
| 第 8 段 | 定制功能标记 | 可选 |
三、QFP-BPxxHG-40DC 的拆解
可以按下面理解:
text
QFP - BP xx HG - 40 D C
QFP:公司内部对 QSFP+、QSFP28、QSFP56 系列的产品类型简称。BP:BIDI PAM4。图片中明确写的是:
text
BP = BIDI PAM4
xx:波长字段的占位符。实际产品中应替换成真实波长代码,例如图片中的85、31,或者 BIDI 对应的代码。HG:100 Gb/s。40:传输距离 40 km。D:带 DDM 数字诊断功能。C:商业温度等级,约0~70 C。- 最后的定制标记没有写出,可能表示该产品没有特殊定制,具体以负责人确认的完整型号为准。
因此,QFP-BPxxHG-40DC 表示的是:
text
公司内部定义的 BIDI PAM4、100G、40 km、带 DDM、商业温度等级模块
四、它和 QSFP28-100G-ER4 是否相同
不能直接认为相同。
原因是:
text
ER4
通常强调 4 波长 ER 方案,而公司代码中的:
text
BP
表示 BIDI PAM4 方案。
这两个字段描述的光学结构可能不同。因此:
text
QSFP28-100G-ER4
更像是供应商或行业名称;
text
QFP-BPxxHG-40DC
是公司内部用于生产、数据库和测试软件的标准型号。
你们的软件数据库中的 Type 应该使用公司内部型号,例如:
text
QFP-BPxxHG-40DC
而不是直接使用模块供应商写入的:
text
QSFP28-100G-ER4
这也就是之前出现型号匹配和告警门限检查问题的根本背景:供应商 PN 与公司内部型号不是同一个字段。
五、和当前自动测试软件的关系
自动软件需要使用公司内部型号去查询数据库中的:
- 告警门限
- APC 补偿表
- MOD 补偿表
- APD 补偿表
- 发射和接收测试参数
所以正确流程应是:
text
模块供应商 PN
↓
识别或映射为公司内部型号
↓
用公司内部型号查询数据库
↓
执行门限和补偿表检查
不要仅仅根据 QSFP28-100G-ER4 中的 4 就把程序循环改成 4,也不要仅仅因为公司型号中写了 ER1 就认为程序一定只有一个通道。
图片中的 ER = ER1 位于"传输距离"字段,它是公司的距离编码,不是程序通道数。程序中的 i < 1 还是 i < 4,应由负责人定义的终测流程决定。
单通道和四通道,体现的是模块内部有几路独立的高速信号和光路。
可以把它理解成"车道数量":
text
单通道模块:1 条高速通道完成全部传输
四通道模块:4 条高速通道共同组成总速率
例如两种常见 100G 实现:
text
单通道 100G:
主机电信号 -> 1 路 100G -> 1 个激光器 -> 1 个光学波长 -> 光纤
text
四通道 100G:
主机电信号 -> 4 路 25G -> 4 个激光器 -> 4 个光学波长 -> 光纤
四路 25G 合起来就是 100G。
在实际模块上,区别通常体现在这些地方:
| 位置 | 单通道 | 四通道 |
|---|---|---|
| 发射端 | 1 路激光器/调制控制 | 4 路激光器/调制控制 |
| 接收端 | 1 路接收器 | 4 路接收器 |
| 光学波长 | 常见 1 个波长 | 常见 4 个波长 |
| 校准参数 | 1 组参数 | 每个通道可能各有一组参数 |
| 补偿表 | 可能一张连续的 32 点表 | 常见 4 路交错的 32 点表,共 128 字节 |
| 测试工装 | 测 1 路 | 光开关、光源、功率计可能需逐路切换 |
| 程序循环 | 常见 ch = 0 |
常见 ch = 0,1,2,3 |
你们刚才遇到的 LUT 就是一个很直观的例子。
单通道连续 LUT 可能是:
text
温度点0 温度点1 温度点2 ...
CH0 CH0 CH0
而你负责人提供的手动 ER1 软件读取方式是:
csharp
lut[4 * i + channel]
对应四通道交错结构:
text
温度点0:CH0 CH1 CH2 CH3
温度点1:CH0 CH1 CH2 CH3
温度点2:CH0 CH1 CH2 CH3
...
所以自动软件要取 CH0 时,必须读取:
text
768, 772, 776, ...
而不是连续读取:
text
768, 769, 770, ...
后者会把同一温度点的 CH0、CH1、CH2、CH3 混成一条曲线,这就是之前 Flash 检查异常的原因。
还要区分一个容易混淆的点:
text
模块内部有四通道
不一定表示自动终测必须测四次。
负责人要求自动流程写成:
csharp
for (int i = 0; i < 1; i++)
表示当前终测流程只执行 CH0 的光学测试或校验。它不等于模块 Flash 里的 LUT 已变成单通道布局。
对你当前这个项目,可以这样理解:
text
手动 ER1 原始软件:支持 CH0 到 CH3,Flash LUT 也是四通道交错格式。
自动终测软件:负责人要求只测 CH0,因此外层测试循环是 i < 1。
Flash 检查:仍需按四通道布局取 CH0 的数据。
最后,单通道/四通道和单模/多模没有直接等号:
text
单模/多模:光纤中光怎么传播
单通道/四通道:模块内部有几路高速信号或光路