如何提高DSP的ADC精度

发布者:剑戟辉煌最新更新时间:2011-09-16 关键字:ADC 手机看文章 扫描二维码
随时随地手机看文章
   

引言

  TI公司的C2000系列DSP以其出色的性能、丰富的片上外设在工业自动化、电机控制、工业生产领域得到广泛应用。TMS320F2812是C2000系列中性能出色的一个,F2812片上集成了12位16通道的数/模转化器,理论上精度可以达到0.1%以上。但实际上由于增益误差(<5%)和偏移误差(<2%)的存在,使得精度只能在5%左右,所以必须对ADC进行校正。

  传统的对于ADC的校正方法是在两路通道输入已知标准电压,根据两点确定一条直线的原理,确定出AD转换的曲线,并以此校正转化值。但由于在校正过程中存在偶然因素的影响,使得这种校正方法精度只能达到3%左右。对此,提出了利用最小二乘法和线性回归的思想进行校正的方法,通过对多个测量点的分析计算,找出最佳的拟合曲线,使得总体的均方误差最小。

  最小二乘法是高斯于1809年提出的,在多学科领域中获得广泛应用的数据处理方法。用最小二乘法估测未知参数,可以有效消除测量中粗大误差和系统误差的影响。回归分析是英国统计学家高尔顿在18*首先提出的。一元线性回归是利用数理统计中的回归分析,来确定两种或两种以上变数间相互依赖的定量关系的一种统计分析方法之一,运用十分广泛。一般来说,线性回归都可以通过最小二乘法求出其方程,可以计算出对于y=bx+a的直线。

  1 校正原理与实现方案

  DSP的ADC模块的输入、输出是线性关系,理想情况下,输入输出方程应该是y=x。但实际上,ADC模块是存在增益误差和偏移误差的,其中增益误差是实际曲线斜率和理想曲线斜率之间的偏差,偏移误差是0 V输入时实际输出值与理想输出值(0 V)之间的偏差。F2812的ADC模拟输入电压为0~3 V,输出为0~4 095,模拟输入与数字输出之间的对应关系为:数字输出值=4 095×(模拟输入值-参考电压值)/3.0ADC模块输入/输出特性曲线如图1所示。

图1 ADC模块输入/输出特性曲线

  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所示。

 


图2 输入电路[page]

 3.2 校正算法

  设ADC模块的输入/输出曲线为y=a+bx,输入电压值为xi,对应的转化输出值为yi。由最小二乘估计算法可得方程:


  解此方程组即可得到a,b的估计值:


  式中,

这样便得到了最佳的拟合曲线(回归方程):于是可以用此方程进行转化值校正。

  3.3 实验数据处理

  将实验获得的6组数据利用上述最小二乘法和线性回归方法进行处理,得到a,6的最小二乘估计值分别为,于是回归方程为:y=0.003 612+1.039 091x。以回归方程为标准,由x=(y-0.003 612)/1.039 091可以计算出校正后的转化值,并与未转化的值进行比较,结果如表1所示。


  在Excel中,绘制出未校正输入/输出分布点,和回归曲线,如图3所示。


图3 回归曲线示意图

  3.4 结果分析

  由表1和图3可以看出,如果不采取校正措施,则F2812的ADC模块会存在5%左右的相对误差;而采用提出的校正方法,可以将误差下降到1%以下。这就大大提高了A/D转化的精度,对于对控制要求精度很高的场合,牺牲ADC模块的6个通道,得到比较高的转化精度,还是非常必要而且值得的。

  4 结语

  在此提出一种采用最小二乘法和线性回归校正DSP的ADC模块的方法,实验证明此方法可以大大提高转化精度,有效弥补了DSP中AD转化精度不高的缺陷。此方法硬件电路简单,成本代价较低,具有很高的推广和利用价值。

关键字:ADC 引用地址:如何提高DSP的ADC精度

上一篇:微处理器的二次引导加载方案
下一篇:TMS320VC5402 DSP与单片机的HPI接口实现

推荐阅读最新更新时间:2024-05-02 21:34

汽车ADC如何帮助设计人员在ADAS中实现功能安全
尽管当今的车辆在多种驾驶场景中实现了自动化,但背后真正推动汽车从部分自动驾驶实现全自动驾驶的不是汽车制造商,而是移动服务提供商,例如出租车公司、汽车租赁公司、送货服务公司以及需要提供安全、高效、方便且经济实用的公共和私人交通工具的城市。 在完全自主的自动驾驶汽车驶上公共道路之前,它必须经历六个不同的自动化等级,即从0级(无自动化)到5级(完全自动化),如图1所示。自动化等级每提升一级,都需要对高级驾驶辅助系统 (ADAS) 技术进行大幅改进,并实现对所有安全关键型功能的适当管理。 图 1:自动驾驶等级 自动驾驶汽车使用多项传感器技术,包括摄像头、雷达和激光雷达。根据不同的环境条件和距离,这些传感器各有优缺点。传感器融合
[汽车电子]
汽车<font color='red'>ADC</font>如何帮助设计人员在ADAS中实现功能安全
STM32ADC模块速度配置问题
简介:本文介绍了STM32单片机时钟配置问题以及精度和速度之间的关系 STM32F103xx系列称为增强型产品,增强型产品的最高时钟频率可以达到72MHz。增强型产品的英文名称为Performance Line。 STM32F101xx系列称为基本型产品,基本型产品的最高时钟频率可以达到36MHz。基本型产品的英文名称为Access Line。 根据设计,当ADC模块的频率为14MHz时,可以达到ADC的最快采样转换速度。 要得到14MHz的ADC频率,就要求SYSCLK的频率是14MHz的倍数,即14MHz、28MHz、42MHz、56MHz、70MHz、84MHz等;对于基本型产品14MHz和28MHz处于它的
[单片机]
STM32F4之ADC1【库函数操作】
折腾了两天ADC多通道采样,采样的结果都很乱,完全不是预期值。在amobbs求助也没有找到结果。于是决定从简单开始,一步步折腾着破ADC。 【ADC试验1实验说明】 1、这个实验仅仅是初始化一个ADC,对其输入进行采样。 2、使用STM32F4的ADC1进行采样,采样值不输出之在编译器里边观察。 3、使用ST外设库进行实验 4、本实验只为采集到数据,采样周期、采样间隔设置为最大。 【ADC试验1实验结果】 成功采集到了ADC1,通道1引脚PA1上的输入。数据稳定不跳变。 【ADC试验1实验步骤】 1、首先怀疑是工程中使用的USART、EXTI什么的影响了ADC的。重建工程,加入ST外设库,添加引
[单片机]
STM32 ADC单次转换DMA读取
DMA读取方式很适合高频率的ADC采样信号。 ADC的DMA读取方式,其实和上一篇的中断读取方式差不多,初始化代码更是相似。初始化代码如下: static void ADC_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //ʹÄÜPB,PE¶Ë¿ÚʱÖÓ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN; GPIO_Init(GPI
[单片机]
高速12位模数转换器AD7892及其在图像采集中的应用
摘要: AD7892是美国AD公司生产的LC2MOS型单电源12位模数转换器,可并行或串行输出,文中介绍了它的功能、特点,工作时序以及在图像采集系统中的应用电路。 1 AD7892的特点及功能 AD7892是美国ANALOG DEVICE公司生产的具有采样保护功能的逐次逼近式12位高速ADC,根据输入模拟信号范围的不同可分为AD7892-1,AD7892-2,AD7892-3三种类型。其中,AD7892-1输入信号范围为±10V或者±5V(可设置),AD7892-2输入信号范围为0~+2.5V,这两种的采样转换速率均为500kSPS,AD7892-3的输入信号范围为±2.5V,采样转换速率为600kSPS,AD78
[模拟电子]
控制系统借助高性能数据转换取得进步
引言 许多工业控制系统都通过采用精细复杂的高次控制环路来保持某种关键参数 (电气、机械、热力或液压) 的精准调节。在这个技术发展日新月异的时代,控制系统设计人员在实现其设计目标的过程中正面临着前所未有的挑战。系统必须比以往更快、更准确和更灵活,同时要把更多的功能集成到日趋缩小的外壳之中并消耗较少的功率。因此,人们需要那些不仅能够提升现有设计的性能水平、而且还可实现新功能的新型解决方案。很多工业控制系统的核心是一个模数转换器 (ADC)。在诸如电网监视器、光网络开关和生产机器人系统等系统中,ADC 起着非常重要的作用,可将关键信号从模拟转换为数字以进行数字信号处理。这种模数转换必须越来越多地以高分辨率、高速和低功耗来完成。 改善您的控
[嵌入式]
基于STM32单片机的ADC与DMA配置的介绍与使用
本文使用ADC转换电位器输出的电压值,并用DMA模式传输转换的结果,每8次采样转换取平均值,做一个简单的数字滤波。 ADC的详细配置与使用 见之前的日记STM32中ADC的使用,只是最后增加一步配置DMA: DMA for ADC channels features configuration To enable the DMA mode for ADC channels group, use the ADC_DMACmd()funcTIon. To configure the DMA transfer request, use ADC_DMAConfig() func TI on. DMA的配置 (摘自STM32F3官
[单片机]
基于STM32单片机的<font color='red'>ADC</font>与DMA配置的介绍与使用
N76E003 ADC计算电压值
分享下调试ADC计算电压值理解的相关内容。 最重要的公式 要记住ADC测量结果无非就是一个代表电压量的值,管脚上的模拟信号转换为12位二进制数据(0xFFF),例如:如果参考电压是5V,ADC输入也是5V,那ADC转换结果就是0xFFF;如果参考电压是5V,ADC输入是2.5V,那ADC转换结果就是0xFFF除以2。ADC转换结果除以满量程ADC值(即0xFFF)就是与参考电压的比例,这个比例乘以参考电压就是实际电压值(Vain)。 计算代码如下: // CN Spec, 18.1.1, P193, ADC_DATA = 4095 * (Vain/Vref) // So: Vain = (ADC_DATA * Vref)
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved