|
|
| | -文章搜索 - 最新文章 - | |
基于P87LPC764的Σ-ΔADC应用设计方法 |
| 发布时间:2006年3月4日 点击次数:1353 |
| 来源:单片机与嵌入式系统应用 作者:广州周立功单片机发展有限公司 |
摘要 Σ-ΔADC应用设计方法以很低的采样分辨率和很高的采样速率将模拟信号数字化,克服了传统RC充放电电路模拟ADC受RC误差、PCB分布电容及温度的影响导致一致性太差的缺点。 关键词 P87LPC764 片内比较器 Σ-ΔADC 噪声整形 数字滤波 一、简介 Σ-ΔADC主要使用数字技术,具有数字系统高可靠性、高稳定性的优点,也为用单片机软件实现ADC提供了可能性。 Σ-ΔADC具有分辨率高、线性度好、抗干扰能力强(对噪声的抑制能力不亚于双积分ADC)、成本低等不可多得的优点。Σ-ΔADC以很低的采样分辨率(1bit)和很高的采样速率将模拟信号数字化,通过使用采样、噪声整形和数字滤波等方法增加有效分辨率,然后,对ADC输出进行采样抽取,以降低有效采样速率。 本文研究用低成本单片机实现8位精度的Σ-ΔADC的软件实现方法,并给出具体线路及源代码。关于16位分辨率ADC实现的技术较为复杂,后续将有文章详细介绍。 本方案适用于PHILIPS 51LPC系列P87LPC760/761/762/764等内含比较器的单片机,经在摩托车车速里程表、电子秤(人体秤、脂肪秤、厨房秤)、电热水器、电饭锅、消毒碗柜、电冰箱等一系列产品中实际使用证明:不受RC器件的误差、PCB板的分布电容及环境温度变化的影响,软件便于无障碍地移植,测量结果一致性好,实用、可靠、价格低廉,且能够满足大多数速度要求不太高的产品。 二、原理 Σ-ΔADC主要由调制器、数字滤波和采样抽取等几部分组成,如图1所示。调制器本质上是一个高速低精度(1bit)的ADC,调制器以非常大的过采样率采样模拟信号。在这个阶段,调制器将输入和输出之间的差值(Δ)进行一阶或多阶积分(Σ),结果通过一个量化器(1位ADC)输出二进制码流。该码流一方面输出给数字滤波,另一方面通过一位DAC后和输入信号比较产生差值信号,继续反馈循环。通过数字滤波和采样抽取,滤除经过调制器整形后的量化噪声,提高系统精度。采样抽取的底限是满足信号无损重建的采样定律,采样频率大于奈奎斯特频率两倍(fn>2fb)。
1. 调制器数学模型 图2所示为调制器的组成框图,其中一位A/D的量化器由比较器构成,检测出差值积分后的正负结果转换成1、0的位流。转换过程中会产生基于转换精度的量化误差(±1/2LSB),它是分布在整个频域范围内的白噪声。
调制器的离散描述如图3所示。
积分器在Z域由具有如下传递函数的累加器构成:
系统的Z域描述如下:
输入信号无损地传到输出端W(z)=1。量化噪声的传递函数N(z)=1-z-1,对应于频域的一阶高通滤波器(HP1),传输特性如图4中HP1线所示。
噪声传输特性图4中HP2线是二阶系统的噪声传输特性。当采用二阶以上系统时,通带内的量化噪声已基本滤除,噪声被转移到所关心的频带以外,将通过数字滤波去除。 2. 过采样对量化噪声的影响 奈奎斯特采样时,量化噪声的能谱密度为
其中Δ为量化步长,fa为模拟信号经抗混叠低通滤波后的通带频率(=奈奎斯特频率)。通带范围内,噪声电压的有效值为
当以Kfs的采样速率进行过采样时,奈奎斯特频率增至Kfs/2,量化噪声位于0~(1/2)Kfs之间,其有效值降为原来的
3. 信噪比以及精度转换 通过以上分析可知,提高调制器的阶数(n)和过采样率(OSR)均可提高系统的信噪比SNR。
b位ADC的理想信噪比(动态范围DR)可用如下方式求得。 信号功率:
噪声信号功率(白噪声):
信噪比:
由以上关系可得图7所示关联图。
图7中,左边纵轴为信噪比SNR(或动态范围DR),单位为3dB;右边纵轴为位数;横轴为过采样率(OSR)。函数线由式(1)计算所得,n为调制器的阶数。右纵轴的分布由式(2)计算所得。 DR为信号的动态范围,即最大信号与杂散信号之比。由于此处输入的为理想信号,无谐波分量,杂散信号只有量化噪声,故动态范围即为信噪比SNR。 由图7可知,8位ADC的理想信噪比大致为45dB,采用一阶调制器实现需要大于64的过采样率。实现12位精度需要大于380的过采样率,16位需大于2415。 三、实现 1. 基本方案 如图8所示为用单片机实现一阶Σ-ΔADC的原理图,虚线框内为MCU。
其中,阻抗变换器实际为一跟随器,用于减小信号源内阻的影响。如果不考虑边缘的非线性,积分器可用简单的RC网络替代,如图9所示。
一位量化器可用单片机的内部比较器,也可以用普通口线替代,只是不同的单片机口线翻转电平不一样,测量结果差别很大。一位DAC用口线置高或置低来模拟,需较强的高电平驱动能力。图10所示为用P87LPC764内部比较器实现的8位ADC原理图,比较器偏置在(1/2)VCC,输入信号的内阻必须足够小,必要时可加跟随器。
;特殊功能寄存器定义 2. 试验结果 表1为试验测试报告。测试条件:VCC = 4.92V,晶振12MHz,采用以上线路和源代码。由于没有采用跟随器,结果有些偏差。 表1 测试报告 3. 扩充方案 (1) 原理 图11所示为一阶Σ-ΔADC原理图。该方案由于相对于被测信号量化,被测信号即为比较基准,被测信号和基准之间无电压差,其积分为零,故只对反馈信号求积。电容C的信号围绕Vin上下变化,完成Σ-ΔADC差值(Δ)和积分(Σ)的作用,实现比较巧妙,完全符合一阶Σ-Δ模型。输入信号端加一电阻电容,形成一阶RC低通滤波器,滤除高频杂散信号,有抗混叠滤波的作用,同时也可补偿比较器的失调误差。
图11所示电路,采样频率500kHz(20μs采样一次),过采样率OSR=256>64,输出数据速率 1.95kHz,采用一级256阶梳状滤波后完全可满足8位精度的要求。 另外,这种电路形式对信号源的输入阻抗没有要求,因而可达到更高的精度。 为了进一步认识其工作过程,作一下时域分析。1位DAC输出可看作PWM脉冲。 对于RC时间常数远大于脉冲宽度标准PWM信号,有 Vin=Vref [Ton/(Ton+Toff)] (1) 如果分级地调整波形使较大的时间常数稳定下来,这将消耗很长的时间。如采用对分搜索,可大大加快计算过程,可能效果会比较理想,但要花费较大的软件资源。 这里,我们采用一种新的思路(Σ-Δ),使用相对小的时间常数,每20μs对比较器作一次采样。VC<Vin时,输出为正脉冲,反之为负脉冲。这种方法在固定周期内把PWM波形分解成数个小脉冲,代替表示占空比的单脉冲。 Vin=Vref [ΣTon/Σ(Ton+Toff)] (2) 我们把该系统看作一个动态的控制系统,系统动态平衡时,电容的充电电荷等于其放电电荷。VC在Vin上下波动,VC≈Vin,故充放电公式写作: Vcharge = (Vout-VC) [1-exp(-t/RC)] ≈ (Vout-Vin) [1-exp (-t/RC)] Vdischarge = (VC-V0) [1-exp(-t/RC)] ≈ (Vin-V0) [1-exp (-t/RC)] 令 n=Ton脉冲的总次数; m=Toff脉冲的总次数; t=采样时间。 则 n (Vout-Vin) [1-exp(-t/RC)] = m (Vin-V0) [1-exp(-t/RC)] 解得 Vin = (nVout+mV0) / (n+m) (3) 其中Vout=Vref-Vos,Vos为口线的失调电压,Vref =VCC,V0为口线的低电平电压。所以 Vin = nVref /(n+m)-(nVos-mV0) / (n+m) (4) 前面一项为测量结果,后面为误差,方程中不存在RC值,它不是误差因子。比较器的失调电压和口线的失调电压均会影响测量精度。前者使VC不能正确地跟踪Vin而造成误差。 (2) 利用P87LPC764 内部比较器实现8位Σ-ΔADC 这里,用P87LPC764的内部比较器来实现,如图12所示。在正确测量之前,必须保证VC = Vin(实际有一微小误差)。为此,进行两次测量:第一次使VC锁定Vin,扔掉测量结果;第二次进行真正测量。8位精度需256个计数。
图13是8位Σ-ΔADC实现原理流程图。
;特殊功能寄存器定义 表2为测试报告。测试条件:VCC = 4.87V,晶振6MHz采用以上线路和源代码。 表2 测试报告 由以上结果可知,Σ-ΔADC转换具有非常高的准确度和线性度。 (3) 利用P87LPC764双比较器实现4路A/D
图14为4路8位Σ-ΔADC原理图。 ;特殊功能寄存器定义 |
|
|
|
|
[技术文章] 相关文章: 按平台模式设计的虚拟I²C总线软件包VIIC简介:
摘要:VIIC是主方式下的虚拟I2C总线软件包,用于80C51系列单片机的单主系统中。只需两根普通I/O口线就可随时扩展I2C总线外围器件。将VIIC1.0装入程序存储器中,对其中的符号单元赋值后,使用三条通用操作命令就可实现任何I2C总线外围器件的应用程序设计。本文以VIIC为例,介绍应用软件形式的广义平台设计方法,给出VIIC1.0程序文本。按照这一思路,也可移植到其他系列的嵌入式系统中。 关键词:平台模式虚拟I2C总线VIIC应用程序设计 一、 I2C总线及其虚拟应用 1. I2C总线应用呼唤平台模式 目前,单片机应用系统的外围扩展已从并行方式为主过渡到以串行方式为主的...... 嵌入式系统、智能家电及家居网络
基于AT89C51单片机的微型可编程控制器
触摸屏的工作原理及典型应用
用AT89C2051设计的PC/AT键盘
RS422/RS485网络的无极性接线设计
键盘信息泄漏与防泄漏键盘设计
DSP系统监控芯片的选择与使用要点
TPS60101用于低功耗系统的电源解决方案
用GNU工具开发基于ARM的嵌入式系统 |
|
|
|