摘要: 文章对SFF-8472和XENPAK标准的光模块显示了光电探测器增益的变化如何影响测量的功率电平。光电探测器是为光纤应用校准的。给出了一种光收发器监视器的校准方法。
本应用笔记重点介绍光模块的SFF-8472和XENPAK标准。它显示了光电探测器增益的变化如何影响测量的功率电平。光电探测器是为光纤应用校准的。给出了一种光收发器监测器的内部和外部校准方法。DS1852光模块诊断监视器的特点。
光纤标准,如SFF-8472和现在正在出现的XENPAK标准,要求监控关键光纤信号,如偏压电流(mA)、发射功率(mW)和接收功率(mW)。发射和接收的功率由光电探测器监测,光电探测器的电流作为功率水平的量度。光电探测器各部分之间的增益变化很大,使得在没有校准的情况下使用这种测量是不可靠的。
图1显示了传输功率监测过程中测量数据的路径。光输出通过光电探测器的响应度(毫安/毫瓦)转换成电流。该电流通过A/D转换成数字形式,然后放置在2线总线上,便于主机访问。光电探测器的响应率在不同部件之间的差异可达10倍之多。因此,在未经校准的原始环境中,根据光电探测器的增益,主机将获得相同传输功率的显着不同的数据值。
图1所示。
校准确保从输入到输出有一对一的对应关系。例如,无论光电探测器的类型或特性如何,1mW的传输功率都会产生相同的数字数据值。此外,标准将通过明确定义主机的全尺寸读出来施加缩放要求。简而言之,测量的准确性是通过校准来保证的,尺度是通过标准来定义的。
在DS1852中,可以在内部或外部进行校准。
内部校准可以与图2所示的可编程增益进行比较。在用户的工厂测试台上执行单点校准。这需要将信号提升到满量程附近的水平,然后对内部校准寄存器进行编程,直到数字值Nad按预期读取。内部校准的范围和分辨率值在SFF-8472标准中规定了以下每个信号:电源电压,偏置电流,发射功率,接收功率。一旦设置了此校准,每个传入的原始数据点都相应地按比例放大,而无需用户的任何干预,输出与标准刻度一致的数字值或计数。因此,使用术语“内部校准”。
图2所示。
外部校准是DS1852, DS1854, DS1857和DS1858的功能。图3说明了它的工作原理。IC的数字输出Nad未校准。用户依靠具有计算能力的设备,如微控制器,从DS185X IC检索校准常数并执行计算。外部校准在SFF-8472标准中有解释,分为两大类:线性和非线性。在线性情况下,需要两个常数,一个用于偏移,一个用于增益;对于每个原始数据点x,计算一个校准值y = ax + b。非线性情况涉及(n +1)个系数,n是最高次幂。例如,y = ax(4) + bx(3) + cx(2) + dx + e是接收功率的建议公式。
图3所示。
无论采用何种方法,A/D的结果是两个传递函数的乘积,第一个是要测量的参数与施加到A/D的电压之间的关系。在传输功率的情况下,这是光电探测器的响应度。
VAD = f1 × Param,其中Param为待测参数,f1为转换过程传递函数,VAD为A/D输入电压。
F1只是模块内电路的一个函数,用于推导测量参数的电压指示。
二是输入A/D的电压与校准结果之间的关系。
NAD =增益× VAD +偏置,其中NAD为A/D的数值输出,增益为比例因子。
所以总的来说,传递函数是NAD = f1 ×增益×参数+偏移。使用DS1852实施的内部校准没有提供偏移。在此例中,NAD = f1 ×增益×参数。
该标准对内部校准的NAD施加了额外的约束。它要求NAD = f2 × Param,其中f2是标准定义的缩放约束,以便所有应用程序都使用一个通用的缩放。
例如,定义Tx输出功率为Param (mW) = NAD × 0.0001, f2 = 10,000。
这反过来又限制了f1 × Gain的乘积为10,000。
由于f2 = f1 ×增益,鉴于f2是标准设定的通用值,增益的值通常依赖于f1,即模块内的电路。例如,将电流转换为电压的电阻器通常与激光监视器光电二极管串联使用,以实现APC功能。因此,在传输功率监测的情况下,电阻两端的电压(激光驱动器的反馈电压)也是A/D、VAD的输入。改变电阻值(f1的一个组成部分)将需要改变增益值,因此最终它们的乘积是恒定的,并且观察到标准的标度。
对于DS1852,增益由4个粗标度位和12个细标度位的组合设置。设置这些位的过程见附录A。
这里最大的区别是f1和增益的乘积没有限制,如果信号电平非常低,除了噪声。NAD的值有些武断,因为最终校准结果不受标准规定的精度格式的约束。这是内部校准的情况,其中精度格式是16位固定的。用户必须对该结果执行算术运算,以将其转换为校准单位(计数)。执行此操作所需的常量存储在内存中。校准常数的使用详细说明在SFF-8472文件中。对于线性关系,校准计数= NAD × calconstant1 + calconstant2。
这种方法的另一个优点是,至少如果使用DS1852,则A/D可以缩放,使满量程计数对应于该特定产品的最大信号值,而不仅仅是标准定义的值。例如,如果一个模块的最大输出功率为1mW,则a /D可以按比例调整,使1mW的输出功率为FFFFh。在这种情况下,可实现的最佳分辨率为0.02 μ W (1mW的1/65536),而根据SFF-8472标准,“内部校准”模式为0.1 μ W。
用户需要确保他的计算引擎不受外部校准的16位固定精度的限制。如果是这种情况,则放弃本节中概述的分辨率优势。为了保持这种优势,需要32位固定精度或浮点精度。
校准常数是在生产过程中为每个被测模块和每个被监测通道导出的。然后将这些常数存储在DS185X IC中的EEPROM存储器中,以便稍后用于校准。提取这些系数需要进行(n + 1)点校准,其中n为校准方程的阶数。对于线性拟合,需要两个系数,一个用于增益,一个用于偏移:y = ax + b。用户将其设置斜坡,直到信号点1(即发射功率)实现。读取X1 (A/D原始计数);Y1是标准推荐的与信号点1对应的数字读出值。同样,对于信号点2,x2和y2是确定的。测试器导出a和b,并将它们存储在DS185X IC的内存中。
每个输入(V(CC), V(BIN), V(PIN)和V(RIN))的比例因子是16位宽。它们分别位于表3地址C8h到CFh。16位是两个trim的组合。较低的12位是二进制加权的,并为缩放输入到输出关系提供高分辨率修剪。上面4位是下面12位的航向调整。换句话说,上面的4位扩展了二进制加权后的低12位的LSB值。
让我们假设您的模块的最大输出功率为5mW。调整激光直到它运行在5mW。因此,期望的输出分辨率为50,000十进制(C350h)。
将比例修剪设置为0FFFh(上面的4位为全零,下面的12位为全1)。
对上面的四位使用SAR方法,从1000b开始,找到使输出re高于所需值(在本例中,大于或等于C350h)所需的最小4位微调。如果该值超过C350,则没有问题。这意味着0000b是上面四位所需的值。这一步现在已经调整了低12位的LSB等效值,以便获得较低12位的最佳修剪。如果在4位中使用太高的值,则12位的分辨率太高,并且牺牲了绝对精度。如果在4位中使用过低的值,则12位的分辨率太小,并且不可能实现最大增益,并且在整个范围内存在较大的增益误差。
使用在第二步中找到的值(假设它是0010b),在较低的12位上使用SAR方法来完成对部件的修剪。
writeTrimValue(trim:integer);(*写入trim到部件*)程序forcerefence (Vin: real);(*对输入引脚施加参考电压*)过程waitForNewConversion ;(*将更新字节写入零,并等待更新带有当前trim的新转换*)函数readValue :integer;(*读取转换后的数字答案*)程序ProgramTrim(trim:integer);(*启用表3 &的EE;程序calVad(maxInput:real)var Bit:integer;(* counter -表示二进制位15-0*)trim:整型;(*当前修剪值*)LSB:真实;(*电压的lsb值*)Vin:实数;(*参考输入电压*)Dec_in:整数;(*输入电压的十进制表示*)Dec_out:整数;(*电压值为十进制*)delta:整数;(*当前电压误差*)bestDelta:整数;(*误差最接近零*)bestTrim:整数;(*给出最佳delta的trim)Begin bestDelta:= 1000000;bestTrim:= 0;修剪:= 4095;(* 0FFFh *) lsb:= maxInput / 65535;Dec_in:= 63888;(*输入为满量程的~97.5% *)Vin:= lsb * Dec_in;(*使用SAR方法在VAD刻度位15-12上修剪航向调整*)为Bit:= 15降至11 do(*必须走得太远1位,以便零是可能的解决方案*)开始if (Bit >11)则开始trim:= trim + lshft(1,Bit);结束;writeTrimValue(修剪);waitForNewConversion;Dec_out:= readVoltage;delta:= Dec_out - Dec_in;if (delta >= 0) then begin bestTrim:= trim;if (Bit >11) then Begin trim:= trim - lshft(1,trimBit);结束;结束;(* bestTrim的上4位包含航向调整的答案*)(*它是允许满量程修剪的最小值与低12位*)(*将bestTrim的下12位*归零)trim:= land(bestTrim,61440(*F000h*));(*land 是逻辑与函数*)(*使用SAR方法在VAD标度位11-0上调整分辨率*)为Bit:= 11降至-1 do(*必须走得太远,以便零是可能的解决方案*)开始if (Bit >0)然后开始修剪:=修剪+ lshft(1,Bit);结束;writeTrimValue(修剪);waitForNewConversion;Dec_out:= readVoltage;delta:= Dec_out - Dec_in;if (abs(delta) <= abs(bestDelta)) then begin bestTrim:= trim;bestDelta:= delta;结束;If (得尔塔 >0) then begin if (Bit >0) then Begin trim:= trim - lshft(1,trimBit);结束;结束;(* bestTrim现在包含给出最小增量的trim)
社群二维码
关注“华强商城“微信公众号
Copyright 2010-2023 hqbuy.com,Inc.All right reserved. 服务热线:400-830-6691 粤ICP备05106676号 经营许可证:粤B2-20210308