一种提高DSP的ADC精度的方法
扫描二维码
随时随地手机看文章
0 引言
TI公司的C2000系列DSP以其出色的性能、丰富的片上外设在工业自动化、电机控制、工业生产领域得到广泛应用。TMS320F2812是C2000系列中性能出色的一个,F2812片上集成了12位16通道的数/模转化器,理论上精度可以达到0.1%以上。但实际上由于增益误差(<5%)和偏移误差(<2%)的存在,使得精度只能在5%左右,所以必须对ADC进行校正。
传统的对于ADC的校正方法是在两路通道输入已知标准电压,根据两点确定一条直线的原理,确定出AD转换的曲线,并以此校正转化值。但由于在校正过程中存在偶然因素的影响,使得这种校正方法精度只能达到3%左右。对此,提出了利用最小二乘法和线性回归的思想进行校正的方法,通过对多个测量点的分析计算,找出最佳的拟合曲线,使得总体的均方误差最小。
最小二乘法是高斯于1809年提出的,在多学科领域中获得广泛应用的数据处理方法。用最小二乘法估测未知参数,可以有效消除测量中粗大误差和系统误差的影响。回归分析是英国统计学家高尔顿在1889年首先提出的。一元线性回归是利用数理统计中的回归分析,来确定两种或两种以上变数间相互依赖的定量关系的一种统计分析方法之一,运用十分广泛。一般来说,线性回归都可以通过最小二乘法求出其方程,可以计算出对于y=bx+a的直线。
1 校正原理与实现方案
DSP的ADC模块的输入、输出是线性关系,理想情况下,输入输出方程应该是y=x。但实际上,ADC模块是存在增益误差和偏移误差的,其中增益误差是实际曲线斜率和理想曲线斜率之间的偏差,偏移误差是0 V输入时实际输出值与理想输出值(0 V)之间的偏差。F2812的ADC模拟输入电压为0~3 V,输出为0~4 095,模拟输入与数字输出之间的对应关系为:数字输出值=4 095×(模拟输入值-参考电压值)/3.OADC模块输入/输出特性曲线如图1所示。
F2812的ADC共有输入通道16个,由于通道之间的误差会在±0.2%以内,所以可以任选其中的6路通道作为校正输入端,并分别输入6个不相等的标准直流参考电压。通过在程序中定义结构体变量读取转化后的值,得到6组输入/输出平面上的坐标点。然后利用最小二乘和一元线性回归思想处理数据,求出的拟合最佳曲线,使得各个坐标点到该最佳曲线的距离的平方和(残差平方和)最小。
2 最小二乘法和一元线性回归
2.1 最小二乘原理
对于线性模型,如果有t个不可测量的未知量,理论上,可对与该t个未知量有函数关系的直接测量量进行t次测量,即可得到函数关系。但由于测量数据不可避免地包含着测量误差,所得到的结果也必定含有一定的误差。为了提高所得结果的精度,可以把测量次数增加到n(n>t),以利用抵偿性减小随机误差的影响。
高斯认为,根据观测数据求取未知参数时,未知参数最合适数值应是这样的数值,即选出使得模型输出与观测数据尽可能接近的参数估计,接近程度用模型输出和数据之差的平方和来度量。这就是最小二乘的基本思想。最小二乘法原理指出,最精确的值应在使残余误差平方和最小的条件下求得。
2.2 一元线性回归原理
一元线性回归是处理2个变量之间的关系,即两个变量x和y之间若存在线性关系,则通过试验,分析所得数据,找出两者之间函数曲线。也就是工程上常遇到的直线拟合问题。
3 实验方案与结果分析
3.1 实验方案
实验利用F2812开发板和DSP调试软件CCS2.0完成。用稳定信号源产生6个标准电压,分别为0.2 V,0.5 V,1.0 V,1.5 V,2.0 V,2.5 V,输入通道选为A0,A1,A2,B0,B1,B2。ADCL0引脚接电路板的模拟地,与模拟输入引脚相连的信号线应该避开数字信号线,以减少数字信号对模拟信号的干扰。输入电路如图2所示。
[!--empirenews.page--]
3.2 校正算法
设ADC模块的输入/输出曲线为y=a+bx,输入电压值为xi,对应的转化输出值为yi。由最小二乘估计算法可得方程:
3.3 实验数据处理
将实验获得的6组数据利用上述最小二乘法和线性回归方法进行处理,得到a,6的最小二乘估计值分别为,于是回归方程为:y=0.003 612+1.039 091x。以回归方程为标准,由x=(y-0.003 612)/1.039 091可以计算出校正后的转化值,并与未转化的值进行比较,结果如表1所示。
在Excel中,绘制出未校正输入/输出分布点,和回归曲线,如图3所示。
3.4 结果分析
由表1和图3可以看出,如果不采取校正措施,则F2812的ADC模块会存在5%左右的相对误差;而采用提出的校正方法,可以将误差下降到1%以下。这就大大提高了A/D转化的精度,对于对控制要求精度很高的场合,牺牲ADC模块的6个通道,得到比较高的转化精度,还是非常必要而且值得的。
4 结语
在此提出一种采用最小二乘法和线性回归校正DSP的ADC模块的方法,实验证明此方法可以大大提高转化精度,有效弥补了DSP中AD转化精度不高的缺陷。此方法硬件电路简单,成本代价较低,具有很高的推广和利用价值。