当前位置: 首页 > news >正文

一文看懂光模块的工作原理

你们好,我的网工朋友

光模块有很多类别,是我们经常要用到的PHY层器件。虽然封装,速率,传输距离有所不同,但是其内部组成基本是一致的。

以太网交换机常用的光模块有SFP,GBIC,XFP,XENPAK。

SFP的全称是指Small Form-factor Pluggabletransceiver ,即小封装可插拔收发器。

GBIC的全称是指GigaBit Interface Converter,即千兆以太网接口转换器。

XFP的全称是指10-Gigabit small Form-factorPluggable transceiver ,即万兆以太网接口。

XENPAK的全称是指10 Gigabit EtherNet TransceiverPAcKage,即万兆以太网接口收发器集合封装。

今天以SFP光模块为例,给你介绍光模块内部的组成和工作原理。

今日文章阅读福利:《 100G光模块数据手册 》

私信我,发送暗号“光模块”前20名私信的小友即可免费获得该学习资源。限时开放,过时不候哈。

01 什么是光模块?

SFP的英文Small Form-factor Pluggable的简写,即小型化可插拔光模块。SFP收发合一Transceiver因其小型化,热插拔方便,支持SFF8472标准,模拟量读取方便(IIC读取),且检测精度高(+/-2dBm以内。

如果你觉得这些概念过于晦涩,那来举个简单的例子。

我们平时用手机追剧、聊天等,常会用到WiFi网络。

家里安装了WiFi的朋友,对光猫肯定并不陌生,其一般就安装在你家电视墙附近,插上网线就能使用WiFi了。

这个过程的简单逻辑就是,光纤传输信号到光猫,光猫再把这种光信号转换成电信号,最后电信号以WiFi的形式传导给你用。在这复杂的信号转换过程中,往往就要用到光模块。

因此,光模块在网络世界里,是必不可少的存在。

电信市场和数通市场的规模持续增加,对于光模块的需求也会接着持续增加,具体的应用领域包括:

数据中心:数据中心之间信息实时海量交互,这就产生了数据中心互联网络需求,光纤通信则成为了实现互联的必要手段。

移动通信基站:运营商的移动通信基站需要光模块来实现设备间的互连,基站有RRU和BBU设备,在应用中,我们要将这两个设备的链路接通,就需要光模块和光纤跳线。

无源波分系统:无源波分是5G前传所采用的技术方案中占比最高的,而无源波分系统由彩光模块、复用器和光纤组成。

SAN/NAS存储网络:作为数据存储系统,NAS(附加式网络存储装置),SAN(区域存储网络)都需要用到光模块。

依托于电信市场和数通市场的发展,后期光模块的需求会不断增加。

02 SFP光模块的内部结构,我来告诉你

由下图可见,光模块主要部分是由光发射组件TOSA,激光驱动器,光接收组件ROSA(L16.2光模块光接收部分使用APD接收机,还需要升压电路),限幅放大器和控制器组成的。

其中,驱动芯片和限幅放大器一般都支持从155Mb/s到2.67Gb/s多速率。

速率不同,传输距离不同的光模块有很多只是前端光组件的差别,高速率SFP光模块BOM成本的90%都集中在光组件上。

由上图还可以看出,为了保证上电顺序,SFP光模块的金手指部分的长度是不一样的,最长的是信号地,其次是电源,最短的是信号,这样在插拔的时候就保证了地-电源-信号的顺序。

01 光发射组件 TOSA(Transmiter Optical Sub-Assembly)

常用的光发射组件由两大类,一类是采用发光二极管LED封装的TOSA,一类是采用半导体激光二极管LD封装的TOSA。

前者谱线宽,耦合效率低(虽然LED可以发出几毫瓦的光功率,但是方向性差,能耦合到光纤中用于传输的部分只占1%-2%)。

但是价格低,使用寿命长,在低速短距的情况下还是有少量的运用,常用于百兆以太网多模光纤中短距离的数据传输,波长一般是1300nm。我们接触到的光模块一般都是采用的激光二极管。

激光器的种类:

1.VCSEL激光器(垂直表面腔发射激光器):850nm波长,用于千兆以太网多模光纤短距传输,千兆以太网交换机大量使用该类型的光模块,传输光板不会用到,不详细介绍;

2.FP和DFB激光器。

二者的区别在于输出光特性的不同,FP激光器是多纵模激光器MLM,能够产生包含有若干离散波长的光,除了中心波长的主模外,其他波长的次模也具有较高的幅度,而且主模和次模也处于动态的竞争当中,不过频带范围十分狭窄。

DFB激光器是单纵模激光器SLM,主模光功率占到整个发光功率的99%以上,其他少量的次模可以忽略不计。

对于这两种不同类型激光器的光模块,用光谱仪测试其谱宽的时候方法是不一样的。

  • FP激光器光模块,测试其发送侧的谱宽是测试RMS谱宽;
  • DFB激光器光模块,测试其发送侧的谱宽是测试-20dB的谱宽,而且要求测试边模抑制比。

目前在我们所使用的光模块中,155M,622M模块发射波长为1310nm,采用的都是FP激光器,1550nm波长采用的是DFB激光器。2.5G除了2Km 即I-16使用FP激光器外,其他都是使用的DFB激光器。

激光二极管的谐振腔有两个反射镜面,它们是半透明的。它们的作用一方面构成谐振腔保证光子在其中往复运动以激射出新的光子,另一方面有相当一部分光子从反射镜透射出去即发光。前镜面透射出去的光谓之主光,通过与光纤的耦合发送光纤当中变成有用的传输。

而后反射镜面幅射出去的光谓之副光又叫背向光。TOSA将此背向光转换为背光电流,利用它可以来监控光源器件发光功率的大小。

上图为温度升高情况下,激光器输入电流和输出光功率的变化情况。

当激光器腔中的光学增益超过腔体端反射面的损耗时,激光器就会激射出相干的光信号,临界时激光器中的电流称为阈值电流(Ith)。

随着温度升高激光器腔体中的光学增益会降低,由于腔体内光学增益降低,激光器就需要更大的注入电流来获得相干光输出,结果激光器的阈值电流就升高了。

由上图可见,由于阈值电流的升高,导致了输出光功率的降低,如果要保持光功率不变的话,则驱动器必须要输出的更大的偏置电流。

为了补偿激光器阈值的变化,需要采用“自动功率控制(APC)”电路, APC电路监测激光器背光电流,通过调节激光器的偏置电流来保持背光电流的稳定。

一般来说,背光电流与平均光功率之间的比例关系是线性的,因此通过保持背光电流的稳定,使得激光器的平均光功率保持恒定。

还是上图,随着温度的升高,激光器输入电流和输出光功率的特性曲线的斜率会变小,也就是说激光器光电转换的效率降低了。我们知道,消光比Er=10×lg[P1/P0](dB),其中,P1、P0分别代表数字逻辑信号“1”和“0”时激光器的输出光功率,P1-P0表示调制之后光信号的幅度。

假定输出光功率不变的情况下,转换斜率的降低,会引起输出光信号消光比的降低,反映到眼图上,眼图的张开度会变小。

对于光模块而言,在温度变化过程中,除了要保持输出光功率的稳定,同时也要保持消光比的稳定。

保持消光比的稳定就是要增加调制电流,最常用的做法是查表法,利用控制器内部的数字可调电位器(电阻器)来保持消光比。

在数字电位器内置有受温度控制的电阻值表,电阻值作为温度的函数,存储在非易失存储器中,温度范围从-45°C~+95°C,步长为2°C。使用芯片内集成的温度传感器,这种电阻的阻值就可以随温度的变化而自动调整。

数字电位器是设置成随温度升高而减小电阻值,将其连接在驱动器的“调制电流设定端”,在温度升高的过程中,控制器根据测得的温度值查表,不断减小电位器的电阻值,使得调制电流增大,这样,消光比的变化将会得到补偿。

保持消光比,还有一种方法就是K因子补偿法,激光器的驱动器中加入“K-因子”补偿特性,它是在激光器偏置电流增大的同时,按比例增大调制电流。

过程如下:为保持平均光功率稳定,偏置电流是由APC电路控制的,随着偏置电流提高,电路提取偏置电流的一部分用以调节调制电流。

这样,总的调制电流等于原有调制电流加上偏置电流乘以一个因子K。

这个K因子可以通过驱动器芯片外接的电阻来设定,由于调制电流能随着偏置电流增大而增大,于是当激光器温度发生变化或者激光器老化时,消光比能够得到补偿。

上图是一个典型的查表法的控制电路,在控制器中,H0和H1是控制器自带的两个数字电位器,H0用于控制调制电流,H1用于控制偏置电流。

APC功能是驱动器内部集成的,但是其补偿能力在-40到85度这么宽的范围内往往有限,所以用H1实现粗调,驱动器内的APC实现比较精确的自动调整。

这两个数字电位器均使用查表法。具体的电阻值是光模块厂商根据TOSA的特性摸索出来设定的,往往对于不同厂家或者不同批次的TOSA,都要重新修正该电阻值。另外上图中的:

  • MON1用于检测偏置电流的值;
  • MON2用于检测输出光功率;
  • MON3一般用于接收光功率的检测。

这些测量的值都可以通过IIC总线读取相应的寄存器获得,使用方便,精度高,绝大部分厂家能够保证精度控制在2dBm以内,可以有效避免目前一些单板模拟量检测不准这个问题。

从上图也可以看出,光模块的工作原理还是比较简单的,除了保持稳定的光功率和消光比之外,就是要做好驱动器到激光器之间的RC匹配(上图没有画出,在经过串行的10欧姆电阻后,一般都需要加RC电路到地),光模块光口指标的好坏都是由这些RC来决定的。

02 光接收组件ROSA(Receiver Optical Sub-Assembly)

ROSA里面封装了光检测二极管和互阻放大器TIA。光检测二极管有PIN管和APD雪崩二极管两类。

APD光二极管具有倍增效应,能使在同样大小光的作用下产生比PIN光二极管大几十倍甚至几百倍的光电流,相当于起了一种光放大作用(实际上不是真正的光放大),因此能大大提高光接收机的灵敏度(比PIN光接收机提高约10dB以上),但是APD的倍增效应会使耦合进ROSA的噪声也会同时被放大,影响接收机的灵敏度,因此对采用APD作为接收机的光模块需要处理好滤波等问题。

对于接收机,光功率高于过载点或者低于灵敏度,均可能会出现误码或者LOF。PIN管的过载点为-3dBm(一般能达到0dBm),APD为-9dBm(一般能达到-5dBm),对于APD接收机,因为其过载功率低,如果接收功率过大的话,可能会照成击穿损坏。

在我们使用的光模块中,除了L16.1和L16.2使用APD接收机的光模块外,其余都是采用PIN管接收机。

Transceiver的接收侧,比较简单。对于2.5G输出,有些厂商是CML输出,有些厂商是LVPECL输出,需要注意其Datasheet。

附SFP光模块使用的参考电路:

SFP模块决大部分厂家都采用内部交流耦合,模块内部也做好了上下拉匹配,所以靠近光模块这一侧不需要加匹配。

对于MOD_DEF0(光模块在位),MOD_DEF1(IIC Clock),MOD_DEF0(IIC Data),LOS(和SFF定义相反,高为无光输入,低为正常。SFF 是Signal Detect,SD高表示有光信号,低表示无光信号),Tx_Fault(发送失效)都必须要在用户侧的上拉。

当SFP检测到异常情况引发保护关断后,Tx_Fault变高,无光输出,必须要用Tx_Disable信号对其进行复位。

整理:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

相关文章:

一文看懂光模块的工作原理

你们好,我的网工朋友 光模块有很多类别,是我们经常要用到的PHY层器件。虽然封装,速率,传输距离有所不同,但是其内部组成基本是一致的。 以太网交换机常用的光模块有SFP,GBIC,XFP,X…...

基于SpringBoot的桂林旅游景点导游平台

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 景点类型管理 景点信息管理 线路推荐管理 用户注册 线路推荐 论坛交流 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实…...

【小程序 - 加强】自定义组件、使用npm包、全局数据共享、分包_05

目录 一、自定义组件 1. 组件的创建与引用 1.1 创建组件 1.2 引用组件 1.2.1 局部引用组件 1.2.2 全局引用组件 1.2.3 全局引用 VS 局部引用 1.2.4 组件和页面的区别 2. 样式 2.1 组件样式隔离 2.2 组件样式隔离的注意点 2.3 修改组件的样式隔离选项 2.4 styleIso…...

Vue.js3学习篇--Vue模板应用

目录 一,模板基础 1.模板插值 (1)基础插值 (2)HTML代码插值 (3)标签属性插值 2.模板指令 (1)定义 (2)指令参数 二.条件渲染 1.使用v-if指令渲染 2.使…...

【软考】5.2 传输介质/通信方式/IP地址/子网划分

《传输介质》 双绞线:网线;传输距离在100m以内 无屏蔽双绞线:UTP;可靠性相对较低屏蔽双绞线:STP;屏蔽怕干扰;可靠性相对较高;一般用于对传输可靠性要求很高的场合 网线&#xff1a…...

软件测试银行项目网上支付接口调用测试实例

公司最近有一个网站商城项目要开始开发了,这几天老板和几个同事一起开着需求会议, 讨论了接下来的业务规划和需求策略,等技术需求一下来还要讨论技术需求, 确认后再慢慢的进入开发阶段,趁着闲暇时间新造的人想总结一…...

w806 adc 中断扫描通道采集

用到了该芯片adc 扫描4个adc 通道,官方的死循环等待非常浪费时间,这里改用adc 中断采集方式,记录一下 int32_t adcFilterSum[4]{0}; int32_t detec_adc_value[4]{0};//mV int16_t detec_convt_ok[4]{0};/*is OK*/ ADC_HandleTypeDef hadc;vo…...

使用CSS的Positions布局打造响应式网页

在当今移动互联网的时代,响应式网页设计已经成为了一个必备的技能。通过使用CSS Positions布局,我们可以轻松地实现一个响应式的网页,使网页能够在不同的屏幕尺寸下自动适应。本文将介绍如何使用CSS Positions布局来打造一个响应式网页&#…...

模型训练环境相关(CUDA、PyTorch)

模型训练环境相关(CUDA、PyTorch) 1. 查看当前 GPU 所能支持的最高版本的 CUDA2. 如何判断是否安装了 CUDA3. 安装 PyTorch3.1 创建虚拟环境3.2 激活并进入虚拟环境3.3 安装 PyTorch 1. 查看当前 GPU 所能支持的最高版本的 CUDA 打开 NVIDIA 控制面板&a…...

链动2+1模式:社交电商行业的新型商业模式与营销手段

链动21模式是近年来在社交电商行业中崭露头角的一种新型商业模式和营销手段。在经历了多年的发展之后,社交电商行业已经进入了一个竞争激烈、用户获取成本高昂的阶段。在这个阶段,如何迅速吸引用户并增加他们的留存率和复购率成为了亟待解决的问题。 为了…...

竞赛选题 深度学习 opencv python 实现中国交通标志识别

文章目录 0 前言1 yolov5实现中国交通标志检测2.算法原理2.1 算法简介2.2网络架构2.3 关键代码 3 数据集处理3.1 VOC格式介绍3.2 将中国交通标志检测数据集CCTSDB数据转换成VOC数据格式3.3 手动标注数据集 4 模型训练5 实现效果5.1 视频效果 6 最后 0 前言 🔥 优质…...

LuatOS-SOC接口文档(air780E)-- fskv - kv数据库,掉电不丢数据

示例 -- 本库的目标是替代fdb库 -- 1. 兼容fdb的函数 -- 2. 使用fdb的flash空间,启用时也会替代fdb库 -- 3. 功能上与EEPROM是类似的 fskv.init() fskv.set("wendal", 1234) log.info("fskv", "wendal", fskv.get("wendal"))--[[ fs…...

一篇文章教你Pytest快速入门和基础讲解,一定要看!

前言 目前有两种纯测试的测试框架,pytest和unittestunittest应该是广为人知,而且也是老框架了,很多人都用来做自动化,无论是UI还是接口pytest是基于unittest开发的另一款更高级更好用的单元测试框架出去面试也好,跟别…...

SpringBoot项目:Cannot find declaration to go to

SpringBoot项目get,set方法总报Cannot find declaration to go to 搜了很多答案,没解决 后来仔细一想,原来是我的idea软件重装了,lombok插件没重新安装导致。 安装步骤: 1、下载地址:https://plugins.jetbrains.com…...

【高并发】多线程和高并发提纲

文章目录 三大源头两个主要问题三大解决方案 最近正在面试,对多线程和高并发相关问题整理了一个简单的提纲。 个人感觉这三大部分由底向上,足够引出对并发编程中大部分问题的讨论~ 三大源头 线程切换带来的原子性问题。 原子操作:利用CPU提…...

vue.js处理数组对象中某个字段是否变为两个字段

一、场景: 产品要求做一个时间步骤条,使用目前后端已返回的数据进行操作实现。时间步骤条要求日期和时间分开显示且相同日期只显示第一个日期。 图左边为实现效果,右边为后台返回的接口。接口中current字段表示当前到达第几步,从…...

从零开始的C++(补充三的内容)

auto:在编译阶段根据数据的类型确认auto所代表的类型,并将auto换成对应的类型。 特点: 1、auto所能代表的类型必须是在编译阶段就能确认的。 2、auto修饰的变量必须初始化,否则编译器无法判断auto的实际类型。 3、auto会根据第一个数据来…...

微信小程序通过createSelectorQuery获取元素 高度,宽度与界面距离

小程序官方有提供给我们一个 const query wx.createSelectorQuery() 函数 我们可以先编写这样一段代码 wxml <view><button bindtap"getDom">点击查看</button><view class "textIn" style "height: 100px;width: 30px;&quo…...

MySQL-事务

MySQL-事务 1.什么是事务 举例&#xff1a;想象炒菜的过程。 洗菜切菜炒菜装盘 我相信缺少任何任何一个步骤&#xff0c;都不完美&#xff01;&#xff01;&#xff01;可以将炒菜的过程理解为一个事务&#xff0c;是一组操作的集合&#xff0c;而MySQL中的事务也是如此。但…...

自动定时删除磁盘文件的脚本(从文件日期最早的开始删)

#!/bin/bash# 指定的挂载点 MOUNTPOINT"/media/vm/MyDisk512GB"# 设置磁盘大小的限制 (例如&#xff1a;800G) LIMIT$((800 * 1024 * 1024)) # 单位是KB# 获取挂载点的已使用空间 USED_SPACE$(df -kP "$MOUNTPOINT" | tail -1 | awk {print $3})echo &quo…...

Carsim与Matlab Simulink联合仿真四轮电动汽车转向容错控制模型

Carsim与matlab/simulink联合仿真&#xff0c;线控转向&#xff0c;四轮电动汽车转向失效容错控制模型&#xff0c;提供参考文献 线控转向系统&#xff08;Steer-by-Wire&#xff09;在四轮独立驱动电动汽车中的应用越来越火&#xff0c;但转向失效问题始终是悬在工程师头上的…...

Qwen3.5-2B图文对话实战:教育场景中学生作业图题智能解析案例

Qwen3.5-2B图文对话实战&#xff1a;教育场景中学生作业图题智能解析案例 1. 引言&#xff1a;教育场景中的AI助手需求 想象一下这样的场景&#xff1a;晚上10点&#xff0c;孩子拿着数学作业来问问题&#xff0c;题目是一张手绘的几何图形。家长可能已经忘记了几十年前学过的…...

RoundedTB安装与部署:从Microsoft Store到手动编译的完整指南

RoundedTB安装与部署&#xff1a;从Microsoft Store到手动编译的完整指南 【免费下载链接】RoundedTB Add margins, rounded corners and segments to your taskbars! 项目地址: https://gitcode.com/gh_mirrors/ro/RoundedTB RoundedTB是一款功能强大的Windows任务栏美…...

单片机抢答器项目避坑指南:从按键抖动处理到中断优先级设置

单片机抢答器项目避坑指南&#xff1a;从按键抖动处理到中断优先级设置 在嵌入式系统开发中&#xff0c;抢答器是一个经典的教学项目&#xff0c;但看似简单的功能背后却隐藏着许多技术细节。很多开发者在实现基本功能后&#xff0c;往往会忽略一些关键优化点&#xff0c;导致系…...

Vivado 2019.2实战:手把手教你封装自己的UART串口IP核(含参数化配置避坑指南)

Vivado 2019.2实战&#xff1a;从零构建可配置UART IP核的完整指南 在FPGA开发中&#xff0c;UART通信是最基础也最常用的功能之一。每次新项目都重新编写UART驱动不仅效率低下&#xff0c;还容易引入错误。本文将带你完整经历将一个经过验证的UART发送模块封装成可配置IP核的全…...

Stable Diffusion工作流升级:Pixel Fashion Atelier预设Prompt库详解

Stable Diffusion工作流升级&#xff1a;Pixel Fashion Atelier预设Prompt库详解 1. 项目概述 像素时装锻造坊&#xff08;Pixel Fashion Atelier&#xff09;是一款基于Stable Diffusion与Anything-v5模型的图像生成工作站。这个创新工具将复古日系RPG的视觉风格与现代AI图像…...

Kali Linux 2026.1 重磅发布,内核升至6.18

作为全球最受欢迎的渗透测试与安全审计Linux发行版,Kali Linux在2026年迎来了年度首发版本——Kali Linux 2026.1。这次更新不仅延续了每年“.1”版本的视觉刷新传统,更特别致敬BackTrack Linux 20周年,引入“BackTrack模式”,同时升级内核至6.18,并新增8款实用工具。无论…...

保姆级教程:用Qt的QNetworkAccessManager实现网络延迟与带宽的简易测试工具(附完整源码)

从零构建Qt网络性能测试工具&#xff1a;延迟与带宽测量的实战指南 在开发网络应用时&#xff0c;我们常常需要了解当前网络环境对应用性能的影响。无论是评估服务器响应速度&#xff0c;还是测试用户在不同网络条件下的体验&#xff0c;一个轻量级的网络测试工具都能派上大用场…...

概率预测实战 —— DeepAR 模型在电力负荷预测中的应用

1. 为什么电力行业需要概率预测&#xff1f; 想象一下你正在规划下周的家庭用电。如果只知道"大概会用100度电"&#xff0c;和知道"90%概率在95-105度之间"&#xff0c;哪种信息更有价值&#xff1f;这就是电力负荷预测从点预测升级到概率预测的核心价值。…...

动态链接库emp.dll详解:从原理到实战修复

动态链接库emp.dll深度解析&#xff1a;技术原理与高效修复指南 引言&#xff1a;动态链接库的现代价值 在Windows系统的软件生态中&#xff0c;动态链接库(DLL)如同建筑中的预制构件&#xff0c;通过代码复用机制显著提升了开发效率和系统资源利用率。emp.dll作为其中一员&…...