### DDM功能与SFF协议详解
#### 一、带数字诊断功能的SFP光模块结构
##### 1. 控制模块
- **模拟信号数据采集**:负责收集来自发射和接收模块的各种模拟信号,例如温度、电压等。
- **数据分析处理**:对收集的数据进行分析,判断模块的工作状态是否正常。
- **数据存储**:存储关键的监测数据和配置信息,通常使用EEPROM(电可擦除可编程只读存储器)。
- **光模块信号监测与控制**:监测模块的工作状态并根据需要调整其工作参数。
- **I2C总线接口**:提供与外部设备通信的接口,用于上传或下载监测数据。
##### 2. 发射模块
- 负责将电信号转换为光信号,并通过光纤发送出去。
##### 3. 接收模块
- 将接收到的光信号转换回电信号,以便后续处理。
##### 4. 光模块接口
- **光接口**:用于连接光纤。
- **电接口**:提供与主机系统之间的电气连接。
- **I2C总线**:实现与主机系统的双向通信,主要用于传输监测数据和控制指令。
#### 二、SFF-8472协议
SFF-8472多源协议(MSA)定义了数字诊断功能及相关规范。此协议规定了在模块内部进行信号监测和数字化的方法,并提供了存储和读取这些信息的机制。具体包括:
- 在模块内部电路板上监测和数字化关键参数信号。
- 存储监测结果及校准数据于标准内存结构中。
- 支持通过两线串行接口(I2C)读取数据。
**SFF-8472协议特点**:
- **地址映射**:保留了SFP/GBIC在地址A0h的映射,并在A2h新增256字节的存储空间。
- **监测信息**:存储监测信息、报警标志和管脚状态等。
- **数字控制能力**:提供有限的数字控制选项。
- **用户可写存储**:允许用户存储自定义数据。
#### 三、DDM功能
DDM(Digital Diagnostic Monitoring,数字诊断监视)是一种基于SFF-8472文档定义的功能,用于实时监测SFP光模块的关键参数,包括但不限于:
- **模块温度(Temp)**:监测模块当前温度,确保其在安全范围内工作。
- **工作电压(Vcc)**:监测模块供电电压,确保稳定供电。
- **激光器偏流(Laser Bias)**:监测激光器驱动电流,以保持激光器性能稳定。
- **接收光功率(Rx_power)**:监测接收端光信号强度。
- **发射光功率(Tx_power)**:监测发射端光信号强度。
##### 1. DDM的实现流程
- **数据采集**:监测上述五个参数。
- **模拟到数字转换(A/D)**:将模拟信号转换为数字信号。
- **校准**:通过内部或外部校准方法,将监测数据转换为实际值。
- **存储**:将校准后的数据存储在EEPROM中。
##### 2. 内部校准
- A/D转换值经过物理量变换和相应的缩放处理,输出的数字标定值符合SFF-8472协议中的规定。
##### 3. 外部校准
- 存储原始的A/D转换值,通过软件读取存储单元A2H中特定地址内的校准常数,并通过公式计算出实际值。
- **外部校准分类**:分为线性和非线性校准。
- **外部校准公式**:
- 温度(T) = Tslope * T_AD + Toffset(单位:1/256°C)
- 电压(V) = VSLOPE * V_AD + VOFFSET(单位:100μV)
- 电流(I) = ISLOPE * I_AD + IOFFSET(单位:2μA)
- 发射光功率(TX_PWR) = TX_PWRSLOPE * TX_PWR_AD + TX_PWROFFSET(单位:0.1μW)
- 接收光功率(Rx_PWR)计算较为复杂,涉及多个系数相乘。
##### 4. 收发光功率校准
- 采用外部校准的运算方式,存储数据时使用内部校准的存储方式。
- 存储时使用16位无符号整数表示,1 LSB等于0.1μW。
- 功率值(PWR) = PWRSLOPE * PWR_AD + PWROFFSET
DDM功能与SFF协议共同确保了SFP光模块能够在复杂环境中可靠运行,并且能够实时监测关键参数,帮助维护人员及时发现潜在问题,提高网络稳定性。