搜索
写经验 领红包
 > 生活

D/A与A/D转换器你要知道的都在这里了

一、D/A转换器的基本原理及分类

T型电阻网络D/A转换器 :

D/A与A/D转换器你要知道的都在这里了

二:输出电压与数字量的对应关系

D/A与A/D转换器你要知道的都在这里了

三:D/A转换器的主要性能指标

1、分辨率

分辨率是指输入数字量的最低有效位(LSB)发生变化时,所对应的输出模拟量(电压或电流)的变化量。它反映了输出模拟量的最小变化值。

分辨率与输入数字量的位数有确定的关系,可以表示成FS / 2^n 。FS表示满量程输入值,n为二进制位数。对于5V的满量程,采用8位的DAC时,分辨率为5V/256=19.5mV;当采用12位的DAC时,分辨率则为5V/4096=1.22mV。显然,位数越多分辨率就越高。

2、线性度

线性度(也称非线性误差)是实际转换特性曲线与理想直线特性之间的最大偏差。常以相对于满量程的百分数表示。如±1%是指实际输出值与理论值之差在满刻度的±1%以内

3、绝对精度和相对精度

绝对精度(简称精度)是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误差。绝对精度是由DAC的增益误差(当输入数码为全1时,实际输出值与理想输出值之差)、零点误差(数码输入为全0时,DAC的非零输出值)、非线性误差和噪声等引起的。绝对精度(即最大误差)应小于1个LSB。

相对精度与绝对精度表示同一含义,用最大误差相对于满刻度的百分比表示。

4、建立时间

建立时间是指输入的数字量发生满刻度变化时,输出模拟信号达到满刻度值的±1/2LSB所需的时间。是描述D/A转换速率的一个动态指标。

电流输出型DAC的建立时间短。电压输出型DAC的建立时间主要决定于运算放大器的响应时间。根据建立时间的长短,可以将DAC分成超高速(<1μS)、高速(10~1μS)、中速(100~10μS)、低速(≥100μS)几档。

应当注意,精度和分辨率具有一定的联系,但概念不同。DAC的位数多时,分辨率会提高,对应于影响精度的量化误差会减小。但其它误差(如温度漂移、线性不良等)的影响仍会使DAC的精度变差。

四:芯片实例

1:DAC0832

DAC0832是使用非常普遍的8位D/A转换器,由于其片内有输入数据寄存器,故可以直接与单片机接口。DAC0832以电流形式输出,当需要转换为电压输出时,可外接运算放大器。属于该系列的芯片还有DAC0830、DAC0831,它们可以相互代换。DAC0832主要特性:

分辨率8位;

电流建立时间1μS;

数据输入可采用双缓冲、单缓冲或直通方式;

输出电流线性度可在满量程下调节;

逻辑电平输入与TTL电平兼容;

单一电源供电(+5V~+15V);

低功耗,20mW。

D/A与A/D转换器你要知道的都在这里了

pin description:

D/A与A/D转换器你要知道的都在这里了

2:DAC0832三种工作方式

1、单缓冲工作方式

此方式适用于只有一路模拟量输出,或有几路模拟量输出但并不要求同步的系统。

即:默认 CS = XFER = 0, ILE = 1; WR单独控制。 缓冲仅由WR单独控制。

1.1 单极性模拟输出

D/A与A/D转换器你要知道的都在这里了

1.2:双极性模拟输出电压

D/A与A/D转换器你要知道的都在这里了

双极性输出时的分辨率比单极性输出时降低1/2,这是由于对双极性输出而言,最高位作为符号位,只有7位数值位

2、双缓冲工作方式

多路D/A转换输出,如果要求同步进行,就应该采用双缓冲器同步方式 。

即:默认 CS = 0 ILE = 1 ; WR 和 XFER都单独控制, 缓冲由WR和XFER两个控制。

D/A与A/D转换器你要知道的都在这里了

3、直通工作方式

当DAC0832芯片的片选信号CS、写信号WR、及传送控制信号XFER 的引脚全部接地,允许输入锁存信号ILE引脚接+5V时,DAC0832芯片就处于直通工作方式,数字量一旦输入,就直接进入DAC寄存器,进行D/A转换。

即: CS = WR = XFER = 0, ILE = 1;

A/D转换器

一、逐次逼近式ADC的转换原理

D/A与A/D转换器你要知道的都在这里了

二、双积分式ADC的转换原理

D/A与A/D转换器你要知道的都在这里了

三、A/D转换器的主要技术指标

1、分辨率

ADC的分辨率是指使输出数字量变化一个相邻数码所需输入模拟电压的变化量。常用二进制的位数表示。例如12位ADC的分辨率就是12位,或者说分辨率为满刻度FS的1/ 2^n 。一个10V满刻度的12位ADC能分辨输入电压变化最小值是10V×1/ 2^12 =2.4mV。

2、量化误差

ADC把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。量化误差是ADC的有限位数对模拟量进行量化而引起的误差。实际上,要准确表示模拟量,ADC的位数需很大甚至无穷大。一个分辨率有限的ADC的阶梯状转换特性曲线与具有无限分辨率的ADC转换特性曲线(直线)之间的最大偏差即是量化误差。

D/A与A/D转换器你要知道的都在这里了

3、偏移误差

偏移误差是指输入信号为零时,输出信号不为零的值,所以有时又称为零值误差。假定ADC没有非线性误差,则其转换特性曲线各阶梯中点的连线必定是直线,这条直线与横轴相交点所对应的输入电压值就是偏移误差。

4、满刻度误差

满刻度误差又称为增益误差。ADC的满刻度误差是指满刻度输出数码所对应的实际输入电压与理想输入电压之差。

5、线性度

线性度有时又称为非线性度,它是指转换器实际的转换特性与理想直线的最大偏差。

6、绝对精度

在一个转换器中,任何数码所对应的实际模拟量输入与理论模拟输入之差的最大值,称为绝对精度。对于ADC而言,可以在每一个阶梯的水平中点进行测量,它包括了所有的误差。

7、转换速率

ADC的转换速率是能够重复进行数据转换的速度,即每秒转换的次数。而完成一次A/D转换所需的时间(包括稳定时间),则是转换速率的倒数。

四:AD080X demo

D/A与A/D转换器你要知道的都在这里了

D/A与A/D转换器你要知道的都在这里了

PIN5 如果采用中断方式通知CPU,则接外部中断, 否则 5可悬空,延时直接读取即可。

启动时序图如下:

code demo:

[cpp] view plain copy print?

void Launch()

{

CS = 0;

WR = 1; WR = 0; WR = 1;

/*Waiting for INTR goto 0*/

}

D/A与A/D转换器你要知道的都在这里了

读取时序图:

code demo:

[cpp] view plain copy print?

void ReadAD()

{

/* INTR had goto 0*/

CS = 0;

RD = 1; RD = 0; /*delay*/ RD = 1;

/* READ */

}