HOME> 世界杯收视率> AD转换芯片精度计算及校正方法

AD转换芯片精度计算及校正方法

文章目录

前言一、转换精度二、重要参数1.线性误差(INL)和差分线性误差(DNL)2.失调误差和增益误差

三、转换校正总结

前言

本文对模数转换芯片的精度进行简要介绍,帮助大家正确选型,并介绍了一个基本的ADC转换结果校正方法。专业术语在不同厂家的芯片使用手册中可能不相同,若要详细了解还需要阅读产品手册~

一、转换精度

【重要参数】 FS:满量程值。 LSB:最低有效位,即ADC输出的二进制码最低位0…(n个0)1代表的电压值大小。

假设ADC的输出位数为n位,那么

L

S

B

=

[

+

F

S

(

F

S

)

]

2

n

LSB={[+FS-(-FS)]\over2^{n}}

LSB=2n[+FS−(−FS)]​

【量化误差】 ADC输出的值是按LSB变化的,当输入电压值介于1LSB之间时,输出值会按一定规则入位或舍弃,这个过程产生的误差是量化误差,无法消除。

量化误差最大是1LSB,因此在对ADC芯片进行选型时,首先考虑芯片的输出位数,这决定了其LSB值。在满量程值不变的情况下,输出位数越高,LSB值越小,精度也就越高。

若计算得到的LSB满足设计对ADC误差的要求,那么才对芯片进行其他性能的考量。

下图是某16位输出ADC芯片的理想传递函数曲线,该芯片可以测量负输入,输出为二进制补码,且输出码的转换在LSB的中间位置(1/2LSB或3/2LSB处)。由于输出是补码形式,因此当最高位为1时表示输入为负电压,最高位是0时表示输入为正电压。

例如,输出100…000时,对应输入是

F

S

1

2

L

S

B

F

S

+

1

2

L

S

B

-FS-{1\over2}LSB \thicksim FS+{1\over2}LSB

−FS−21​LSB∼FS+21​LSB; 输出为000…000时,对应输入是

0

1

2

L

S

B

0

+

1

2

L

S

B

0-{1\over2}LSB \thicksim 0+{1\over2}LSB

0−21​LSB∼0+21​LSB。

经推导,输入正电压时,将输出码直接转换为十进制,与LSB相乘得到对应的电压值;输入负电压时,将输出码按位取反后转换为十进制,再取该十进制的相反数,与LSB相乘后即为对应的电压值。

二、重要参数

1.线性误差(INL)和差分线性误差(DNL)

线性误差又称积分非线性,指实际测量中每一个独立编码与一条从“0”端到“满量程”端直线之间的偏移值。其中“0”端指在第一次码变化的前1/2LSB处,“满量程”端指在最后一次码跳变的后1/2LSB处。每一个码的偏移值是从码的中间位置计算的。如下图所示:

理想状态中,输出码值与其中间位置对应的输入值满足线性关系,且为

V

o

u

t

=

V

i

n

Vout=Vin

Vout=Vin(斜率为1,偏置为0)

但在实际使用中,二者的关系并非严格线性,存在线性误差,每一个码的误差不一样。

若该误差的最大值在

±

1

2

L

S

B

±{1\over2}LSB

±21​LSB 以内,当输入模拟电压值正好是码的中间位置值时,能正确译出码值;当输入电压相对中间位置值有偏差时,可能会译为相邻码值。若该误差的最大值在±1LSB内,则译码结果为正确码值或者是相邻码值。

因此,在芯片选型时,尽量选择INL在全量程范围内的绝对值小于1/2LSB的型号,输入输出的关系更接近于线性,精度会更高。 下图为某ADC芯片的INL性能曲线,能看出每一个码的偏移值并不相同。 还有一个对应参数,是差分线性误差,又称差分非线性(DNL),其含义是任意两个相邻码之间所测得变化值与理想的

1

L

S

B

1LSB

1LSB 值之间的差异。设置该参数的目的是为了保证在输入电压增加的过程中,输出码能够没有遗漏地递增出现。

2.失调误差和增益误差

实际使用时,我们一般假设输入与输出之间满足线性关系,但是线性的斜率与偏置值并不理想(理想中斜率为1,偏置为0),这就是在校正时需要计算的值。

其中偏置值由失调误差决定,斜率由增益误差(Gain Error)决定。

【失调误差】 指码跳变时的实际电压值与理想电压值之差,是将整个传递函数偏移了相同的值,对应线性函数中的偏置,可以通过从ADC输出中减去该值来校准。

消除失调误差后,可以保证实际输出码的第一次跃迁与理想的转换一致,但不能保证其他跃迁也和理想情况在相同输入值下发生。这就引出了增益误差的概念。

【增益误差】 指消除失调误差后,理想增益点与实际增益点之差(增益点是最后一次码跳变后的1/2LSB点),对术语的解释在不同厂家的手册中可能不一样,但是本质相同。增益误差的概念如下图所示: 由图可知,增益误差带来的是斜率的改变。

还有一个相似的参数是满量程误差(Full Scale Calibration Error),该误差是在未进行失调误差校正的情况下,最后一次码跃迁时的实际输入与理想输入之间的差值。

三、转换校正

在使用ADC芯片时,为了修正增益误差和失调误差,提高转换精度,一般会使用硬件或软件校正。校准过程根据实际测得的输入与输出值进行计算,不依靠器件手册中提供的误差参考值。

例如,在下图中,输入电压量程为

10

V

10

V

-10V \thicksim 10V

−10V∼10V 实线是理论转换结果,表达式为

V

o

u

t

=

V

i

n

Vout=Vin

Vout=Vin; 虚线为实际转换结果,偏置是

y

0

y0

y0,斜率为

k

k

k,即

V

o

u

t

=

k

×

V

i

n

+

y

0

Vout=k \times Vin+y0

Vout=k×Vin+y0,那么对Vout的修正结果即为

V

c

o

r

r

e

c

t

e

d

=

(

V

o

u

t

y

0

)

k

Vcorrected={(Vout-y0) \over k}

Vcorrected=k(Vout−y0)​,可以在软件中利用公式完成此修正。

其中,

y

0

y0

y0的值是在输入电压0V时,实际输出与输入间的偏差;

计算

k

k

k值时,选择量程内的两个不同输入电压

V

i

n

1

Vin1

Vin1、

V

i

n

2

Vin2

Vin2,测量其对应的实际输出

y

1

y1

y1、

y

2

y2

y2,则

k

=

(

y

2

y

1

)

(

V

i

n

2

V

i

n

1

)

k={(y2-y1) \over ( Vin2-Vin1)}

k=(Vin2−Vin1)(y2−y1)​

根据上述方法,即可完成对ADC输出值的校正。

总结

在使用ADC时,除了前期选型注意精度要求外,在实际调试时一定要根据实际转换值与输入值做校正,校正后的转换结果误差会很小。

参考链接: ADC失调误差和增益误差