ADC测试参数定义、分析及策略之线性测试2007-11-0810:53:32分类:线性测试动态测试关注的是器件的传输和性能特征,即采样和重现时序变化信号的能力,相比之下,线性测试关注的则是器件内部电路的误差。对ADC来说,这些内部误差包括器件的增益、偏移、积分非线性(INL)和微分非线性(DNL)误差,这些参数说明了静止的模拟信号转换成数字信号的情况,主要关注具体电平与相应数字代码之间的关系。测试ADC静态性能时,要考虑两个重要因素:第一,对于给定的模拟电压,一个具体数字代码并不能告诉多少有关器件的信息,它仅仅说明这个器件功能正常,要知道器件功能到底如何还必须考虑模拟电压的范围(它会产生一个输出代码)以及代码间的转换点;第二,动态测试一般关注器件在特定输入信号情况下的输出特性,然而静态测试是一个交互性过程,要在不同输入信号下测试实际输出。总的来说,ADC的误差可以分为与直流(DC)和交流(AC)有关的误差。DC误差又细分为四类:量化误差、微分非线性误差、积分非线性误差、偏移与增益误差。AC误差一般与信噪及总谐波失真问题有关。◆量化误差(QuantizationError)量化误差是基本误差,用图3所示的简单3bitADC来说明。输入电压被数字化,以8个离散电平来划分,分别由代码000b到111b去代表它们,每一代码跨越Vref/8的电压范围。代码大小一般被定义为一个最低有效位(LeastSignificantBit,LSB)。若假定Vref=8V时,每个代码之间的电压变换就代表1V。换言之,产生指定代码的实际电压与代表该码的电压两者之间存在误差。一般来说,0.5LSB偏移加入到输入端便导致在理想过渡点上有正负0.5LSB的量化误差。图3理想ADC转换特性◆偏移与增益误差(OffsetGainError)器件理想输出与实际输出之差定义为偏移误差,所有数字代码都存在这种误差。在实际中,偏移误差会使传递函数或模拟输入电压与对应数值输出代码间存在一个固定的偏移。通常计算偏移误差方法是测量第一个数字代码转换或“零”转换的电压,并将它与理论零点电压相比较。增益误差是预估传递函数和实际斜率的差别,增益误差通常在模数转换器最末或最后一个传输代码转换点计算。为了找到零点与最后一个转换代码点以计算偏移和增益误差,可以采用多种测量方式,最常用的两种是代码平均法和电压抖动法。代码平均测量就是不断增大器件的输入电压,然后检测转换输出结果。每次增大输入电压都会得到一些转换代码,用这些代码的和算出一个平均值,测量产生这些平均转换代码的输入电压,计算出器件偏移和增益。电压抖动法和代码平均法类似,不同的是它采用了一个动态反馈回路控制器件输入电压,根据转换代码和预期代码的差对输入电压进行增减调整,直到两代码之间的差值为零,当预期转换代码接近输入电压或在转换点附近变化时,测量所施加的“抖动”电压平均值,计算偏移和增益。◆微分非线性(Differentialnonlinearity,DNL)理论上说,模数器件相邻两个数据之间,模拟量的差值都是一样的。就好比疏密均匀的尺子。但实际上,相邻两刻度之间的间距不可能都是相等的。所以,ADC相邻两刻度之间最大的差异就叫微分非线性DNL,也称为差分非线性。同样举例来说明,如果对于12bit的ADC,其INL=8LSB,DNL=3LSB,在基准电压为4.095V时,测得A电压对应读数为1000b,测得B电压对应读数为1200b。那么就可以判断出,B点电压值比A点高出197mV到203mV,而不是准确的200mV。图4DNL误差特性图4中,001b到010b码制过渡过程的DNL为0LSB,因为刚好为1LSB。但是000b到001b过渡就有个0.2LSB的DNL,因为此时有1.2LSB的代码宽度。应当注意:如果在ADC或者DAC的datasheet中没有清楚说明DNL参数的话,可视该转换器没有漏码,即暗示它有优于正负1LSB的DNL。◆积分非线性(Integralnonlinearity,INL)积分非线性表示了ADC器件在所有的数值点上对应的模拟值和真实值之间误差最大的那一点的误差值,也就是输出数值偏离线性最大的距离。单位是LSB。例如,一个12bit的ADC,INL值为1LSB,那么,对应基准4.095V,测某电压得到的转换结果是1000b,那么,真实电压值可能分布在0.999V到1.001V之间。INL是DNL误差的数学积分,即一个具有良好INL的ADC保证有良好的DNL。图5INL误差特性总之,非线性微分和积分是指代码转换与理想状态之间的差异。非线性微分(DNL)主要是代码步距与理论步距之差,而非线性积分(INL)则关注所有代码非线性误差的累计效应。对一个ADC来说,一段范围的输入电压产生一个给定输出代码,非线性微分误差为正时输入电压范围比理想的大,非线性微分误差为负时输入电压范围比理想的要小。从整个输出代码来看,每个输入电压代码步距差异累积起来以后和理想值相比会产生一个总差异,这个差异就是非线性积分误差。图6INL和DNL与增益和偏移一样,计算非线性微分与积分误差也有很多种方法,代码平均和电压抖动两种方法都可以使用,但是由于存在重复搜索,当器件位数较多时这两种方法执行起来很费时。一个更加有效计算INL和DNL的方法是直方图法,采用线性或正弦直方图。图7说明了线性斜升技术的应用,首先使输入电压线性增加,同时对输出以固定间隔连续采样,电压逐步增加时连续几次采样都会得到同样输出代码,这些采样次数称为“点击数”。图7计算直方图从统计上讲,每个代码的点击数量直接与该代码的相应输入电压范围成正比,点击数越多表明该代码的输入电压范围越大,非线性微分误差也就越大;同样,代码点击数越少表明该代码输入电压范围越小,非线性微分误差也就越小。用数学方法计算,如果某个代码点击数为9,而“理想”情况下是8,则该器件的非线性微分误差就是(9-8)/8或0.125。非线性积分是所有代码非线性微分的累计值,对于斜升直方图,它就是每个非线性微分误差的和。从数学观点来看,非线性积分误差等于在代码X-1的非线性微分误差加上代码X和代码X-1的非线性微分误差平均值。附相关计算公式:SNR=10×log10(Ps/Pn)SINAD=10×log10(Ps/(Pn+Pd))THD=10×log10(Pd/Ph(1))SFDR=10×log10(Ph(1)/max(Ph(2:10)))这里:Ps代表信号功率;Pn代表噪声功率;Pd是由第2到第5次谐波引起的失真功率;Ph(1)是基次谐波功率;Ph(2:10)是从第2到第9次谐波功率。续:其他半导体器件的测试技术和策略很多嵌入式半导体器件由不同的模拟和数字电路混合而成,利用前面讨论的混合信号测试原理,我们可以确保在器件运行过程中不会出现问题。下面简单介绍两种器件的测试技术和策略,分别是数模转换器和数字滤波器。数模转换器(DAC)与模数转换器相反,它是将输入端得到的数字代码转换成模拟输出电压。实际上所有前面讨论的线性和静态测试方法在这里都成立,将正弦波以器件代码的形式进行数字处理,然后输入数模转换器,再检测模拟输出的电压波形,由此可计算出动态参数(SNR、THD、SFDR和SINAD),对输出采用傅立叶变换可将其从时域转换成频域。除了线性误差是以理想状态计算的模拟输出电压为参考外,静态和线性参数(偏移、增益、非线性微分、非线性积分)都可以用模数转换器同样的方法计算。数字滤波器顾名思义就是一个数字控制的滤波器,其特性参数(增益、频率相应、相位余量)都是数字化的,测试主要集中在器件对不同输入频率的动态输出响应上。测试器件的频率和响应增益时,用一个连续且含多个非重叠频率的多音调信号作为输入,对器件的输入输出信号分别进行采样和数字化处理,并对波形做傅立叶分析。比较每一输入频率的输入信号和输出信号幅值计算出增益,滤波器截止频率和-3dB点则是通过在这些点上选择3到4个输入频率,用数学方法从每一个滤波器响应频率的幅值推导这些点而计算出。数字滤波器相移的计算根据傅立叶转换提供的波形相位数据,计算方法是将输出频率的相移减去输入频率的相移,负相移表示正延时或输出波形滞后于输入波形,正相移表示输出波形在输入波形的前面,也即负延时。参考文献:[1]DefiningandTestingDynamicParametersinHigh-SpeedADCs,MaximApplicationNote.[2][3][4][5]=article&mcontentid=1045&contentid=Mzk4XzEyL2luZGV4Lmh0bQ