一、光模块概述:从基本概念到行业标准
大家好,我是老张。在光通信这行摸爬滚打了十几年,今天咱们来聊聊光模块的那些事儿。说实话,每次带新人时,我第一堂课都会讲这个——因为它是整个固件开发的基石。
1.1 光模块到底是什么?
光模块,说白了就是一个光电转换器。它把电信号转成光信号发出去,再把收到的光信号转回电信号。嗯,就这么简单。
但实际工作中,你会发现它远不止这么简单。我见过不少工程师,上来就调固件,结果连模块是单纤还是双纤都没搞清楚——那调试起来可就抓瞎了。
核心组成:
- TOSA(光发射组件)—— 负责把电转光
- ROSA(光接收组件)—— 负责把光转电
- PCBA(电路板)—— 承载MCU、驱动芯片等
- 外壳与接口—— 机械结构,保证插拔可靠
我个人习惯把光模块比作一个"小盒子"。它一端插在设备上,另一端连着光纤。设备给它电,它给你光。反过来也一样。
1.2 光模块的分类:SFP、QSFP、CFP 到底怎么选?
你想想看,市面上光模块种类那么多,怎么区分?其实主要看三个维度:封装形式、速率、传输距离。
先说说最常见的封装:
| 封装类型 | 典型速率 | 常见应用 | 我的经验 |
|---|---|---|---|
| SFP/SFP+ | 1G ~ 10G | 企业网、基站 | 最常用,调试起来也最顺手 |
| QSFP/QSFP28 | 40G ~ 100G | 数据中心 | 注意散热,功耗大 |
| CFP/CFP2 | 100G ~ 400G | 骨干网 | 体积大,但性能强 |
| OSFP | 800G 及以上 | 超大规模数据中心 | 新标准,我还在学习中 |
我记得有一次项目,客户非要在一个10G的端口上插100G的模块。结果呢?插不进去。因为物理尺寸就不一样。所以选型时,封装是第一道坎。
1.3 关键性能指标:速率、距离、功耗
做固件开发,这三个指标你必须烂熟于心。为什么?因为它们直接决定了你的代码怎么写。
速率
速率就是模块每秒能传多少比特。1G、10G、25G、100G……现在400G、800G也慢慢普及了。速率越高,对固件的要求也越高。比如高速信号的眼图调试,那真是让人头秃。
避坑指南:我曾经在调试100G模块时,发现速率上不去。查了两天,最后发现是I2C总线速率设得太低,导致寄存器读写延迟。嗯,从那以后我调高速模块时,第一件事就是检查总线时钟。
传输距离
距离决定了你用哪种激光器。短距离(几百米)用VCSEL,长距离(10km以上)用DFB激光器。固件里需要配置不同的驱动电流和偏置点。
举个例子:同样是10G模块,SR(短距)和LR(长距)的固件参数完全不同。你如果拿SR的固件刷到LR模块上,光功率肯定不合格。
功耗
功耗这事,以前大家不太在意。但现在数据中心讲究PUE,功耗成了硬指标。我见过一个项目,因为模块功耗超标,整机散热压不住,最后只能降速运行。
固件里怎么控制功耗?主要是通过APC(自动功率控制)环路和休眠模式。这部分后面章节会细讲。
1.4 行业标准:MSA 和 IEEE 802.3
做光模块固件,不懂标准寸步难行。我个人觉得,最重要的两个标准就是MSA和IEEE 802.3。
MSA(多源协议)
MSA定义了模块的物理尺寸、引脚定义、管理接口(I2C地址、寄存器映射)等。说白了,就是让大家做的模块能互相替换。
比如SFP MSA规定了:
- 模块尺寸:长宽高必须一致
- 引脚定义:第1脚是VeeT,第20脚是VeeR……
- 管理接口:I2C地址0xA0用于数字诊断,0xA2用于厂商信息
注意:不同厂家的MSA实现可能有细微差异。我遇到过某家模块的A0地址写保护位跟标准不一样,结果读出来的数据全是错的。所以拿到新模块,第一件事就是读寄存器,确认MSA兼容性。
IEEE 802.3
这个标准定义了以太网的物理层规范。光模块作为物理层的一部分,必须符合802.3的要求。比如:
- 信号速率容差:±100ppm
- 眼图模板:发射眼图必须符合模板要求
- 链路建立时序:从模块上电到Link Up的时间
我记得有一次,模块在客户设备上死活Link不上。查了半天,发现是模块的Squelch(静噪)阈值设得太高,导致微弱信号被误判为无信号。这就是典型的802.3规范没吃透。
1.5 知识体系总览
说了这么多,咱们用一张图来总结一下光模块的知识体系。我特意画了这张SVG图,方便你理解各个知识点之间的关系。
这张图把光模块的核心知识点串起来了。你从中心往外看,基本概念是根基,分类是选型依据,性能指标是调试目标,行业标准是行为准则。做固件开发,这四个方面缺一不可。
小结一下:
- 光模块就是光电转换器,核心部件是TOSA和ROSA
- 封装决定了你能插到哪种设备上,选型时先看封装
- 速率、距离、功耗是固件调试的三个核心指标
- MSA和IEEE 802.3是必须遵守的行业规矩
好了,第一章就聊到这儿。这些概念看着简单,但实际项目中踩坑的工程师可不少。你先把基础打牢,后面咱们再深入固件开发的细节。
公众号:蓝海资料掘金营,微信deep3321