260 likes | 336 Vues
D/A 和 A/D 转换器接口设计. 在微机过程控制和数据采集等系统中,经常要对一些过程参数进行测量和控制,这些参数往往是连续变化的物理量,例如温度、压力、流量、速度和位移等。这里所指的连续变化 , 即数值是随时间连续可变的,通常称这些物理量为模拟量,然而计算机本身所能识别和处理都是数字量。这些模拟量在进入计算机之前必须转换成二进制数码表示的数字信号。能够把模拟量变成数字量的器件称为模数转换器( ADC )。
E N D
D/A和A/D转换器接口设计 在微机过程控制和数据采集等系统中,经常要对一些过程参数进行测量和控制,这些参数往往是连续变化的物理量,例如温度、压力、流量、速度和位移等。这里所指的连续变化,即数值是随时间连续可变的,通常称这些物理量为模拟量,然而计算机本身所能识别和处理都是数字量。这些模拟量在进入计算机之前必须转换成二进制数码表示的数字信号。能够把模拟量变成数字量的器件称为模数转换器(ADC)。 相反,微机加工处理的结果是数字量,也要转换成模拟量才能去控制相应的设备。能够把数字量变成模拟量的器件称为数模转换器(DAC)。本章将介绍数模(D/A)、模数(A/D)转换器原理及其与单片机系统的接口应用技术。
D/A转换的一般工作原理: 常用电阻分压/分流来实现D/A转换。 D/A转换器将数字信息转换成与数值成正比的电压/电流。有权电阻解码网络与 T型解码网络两种构建方法,又以T型解码网络最为常用。 权电阻解码网络 简单。但随着D/A转换的位数增加,权电阻值跨度增大,在集成电路中难于实现。 T 型解码网络 电阻数量大一倍。但电阻值归一化程度高,容易集成,精度高。应用最为普遍。 D/A转换
权电阻解码网络 若: R0 = R R1 = R/2 R2 = R/4 R3 = R/8 ………… R7 = R/128 从而:I0 = Vref/R I1 = 2 Vref/R I2 = 4 Vref/R I3 = 8 Vref/R ………… I7 =128Vref/R 简单, 权电阻值跨度大,在集成电路中难于实现 Vref D7 R7 D6 R R6 D5 R5 D4 R4 I D3 Iout + R3 D2 加法器电路 R2 D1 R1 D0 开关控制电路的作用: 将“0”值对应的开关打到地, 将“1”值对应的开关接通Vref R0 开关控制电路
T 型解码网络 电阻数量增大一倍, 但阻值归一,集成容易,精度高 Vref 深度负反馈条件下,运放的“虚短特性”: Vd 0 ,(因开环增益极大,输入端之间压差极小) Ii 0 ,(因输入阻抗极大,输入电流极小) “1” I7 D7 2R “0” R I6 2R R I5 2R R I4 每个2R支路的电流均为上一支路的1/2: I7 = (Vref/2R) I6 = (Vref/2R)/2 I5 = (Vref/2R)/4 ………… I0 = (Vref/2R)/128 2R R I3 2R R + I2 Iout 2R R I1 加法器电路 2R R I0 D0 开关控制电路 2R 2R 开关控制电路:“0”值将开关打到地;“1”值将开关接通Vref
8位CMOS数模转换芯片 DAC 0832: DAC0832 √8位D/A,分辨率=Vref/256 √CMOS低功耗器件,+5~+15V 单电源供电 √电流输出型器件(需外接运放) √具有双缓冲控制输出 √采用T型电阻解码网络结构 √参考电压源,-10~+10V CS VCC WR1ILE AGND WR2 D3 XFER D2 D4 D1 D5 D0 D6 Vref D7 RfbIout2 DGND Iout1 20 PIN DIP封装
CS VCC WR1ILE AGND WR2 D3 XFER D2 D4 D1 D5 D0 D6 Vref D7 RfbIout2 DGND Iout1 DAC 0832引脚定义 D0—D7:8位数字量输入端 /CS: 片选端,低有效 ILE: 数据锁存允许,高有效 /WR1: 写控制信号1,低有效 /WR2: 写控制信号2,低有效 /XFER: 数据传送控制信号 Iout1:电流输出端1 Iout2:电流输出端2 Rfb: 内置反馈电阻端 Vref: 参考电压源,-10~+10V DGND: 数字量地 AGND: 模拟量地 Vcc: +5~+15V单电源供电端 DAC0832 20 PIN DIP封装
DAC0832内部结构框图 8位的电子开关受DAC寄存器输出控制 Vref D0—D7:8位数字量输入端 /CS: 片选端,低有效 ILE: 数据锁存允许,高有效 /WR1: 写控制信号1,低有效 /WR2: 写控制信号2,低有效 /XFER:数据传送控制信号 Iout1:电流输出端1 Iout2:电流输出端2 Rfb: 内置反馈电阻端 Vref: 参考电压源,-10~+10V DGND: 数字量地 AGND: 模拟量地 Vcc: +5~+15V单电源供电端 输入寄存器 DAC D/A D7 D0 Iout2 寄存器 转换器 Iout1 Rfb LE2 LE1 1 ILE 1 & LE=1,Q 跟随 D LE=0,Q 锁存 D 0 CS 1 ≥1 WR1 0 0 WR2 1 ≥1 XFER 0
DAC0832 与单片机的连接 89C51单片机 DAC 0832 +5V P0.0—P0.7 DI0—DI7 8位 Vcc Vref P2.0 CS +5V ILE XFER EA Rfb WR WR1 +12V 30Px2 WR2 接示波器 Iout1 uA741 + Iout2 12MHz -12V GND AGND DGND
DAC 0832 常 见 的 几 种 用 法
DAC 0832 常 见 的 几 种 用 法 直通方式 单缓冲方式 双缓冲方式
DAC0832常见的几种用法 Vref 或非门 输入寄存器 DAC D/A D7 D0 Iout2 寄存器 转换器 Iout1 ≥1 输入任一为“1”输出皆为“0”输入全为“0”,输出才为“1” Rfb LE2 LE1 1 ILE 1 & 非与门 LE=1,Q 跟随 D LE=0,Q 锁存 D 0 CS 1 & ≥1 WR1 0 0 输入全为“0”,输出才为“1”输入任一为“1”输出皆为“0” WR2 1 ≥1 XFER 0
DAC0832 的编程应用举例 例1 产生矩形波 例2 产生锯齿波 START:MOV R0,#0FEH LOOP:MOV A, #33H MOVX @R0,A LCALL DELAY MOV A,#0FEH MOVX @R0,A LCALL DMS2 SJMP LOOP START:CLR A MOV R0,#0FEH DOWN:MOVX @R0,A INC A JNZ DOWN MOV A, #FEH UP:MOVX @R0,A DEC A JNZ UP SJMP DOWN
DAC0832编程应用举例: 同样的编程思路,如何产生如下的梯形波: 梯形波
A/D转换器接口 A/D转换的一般工作模式常用的有: 逐次逼近式 双积分式 并行式 Σ-Δ式 尤以前两种最为普遍。
逐次逼近式A/D转换器结构 START CLK EOC 控制逻辑与时序 Vin D0 D7 输出锁存器 + 比较器 SAR - Vst D/A转换器 +Vref -Vref OE
逐次逼近式A/D转换器工作原理 D/A转换器的输出,从二进制数据的最高位起,依次逐位置1,与待转换的模拟量比较,若前者小于后者,该位置1并保留下来,若前者大于后者,该位 清0;然后再照此 比较下一位,…… 直至比完最低位。 最后得到的结果 即A/D转换的值。 START CLK EOC 控制逻辑与时序 输出锁存器 Vin D0 D7 比较器 SAR Vst D/A转换器 +Vref -Vref OE
逐次逼近式A/D转换器特点 转换速度较快(比较次数等于A/D的位数)通常在几S至几百S数量级。 被转换的模拟量若频率很高(变化较快)则要加S/H电路。 被转换的模拟量若幅度过小(信号微弱)则需要加信号调理电路。
双积分式A/D转换器结构与工作原理 电路对未知输入电压先进行固定时间T的积分(充电),然后对已知标准电压进行反向积分(放电),直至放电为0,放电所花时间T(正比于输入电压) Vin +Vin +- +- 积分器 比较器 t -标准电压 控制逻辑 T T 时间固定 斜率固定 时钟 计数器 例如:ICL7107 输出
双积分式A/D转换器特点 转换速度较慢(因为A/D转换的过程要两次积分)通常在几十mS至几百mS数量级。 适用于转换变化较缓慢的模拟量(频率较低)输入端一般不需要在加S/H电路。 抗干扰性强(信号波动对精度影响不大)。 性价比高,与逐次比较型相比,同样价格条件下转换精度较高。
8位CMOS模数转换芯片ADC 0809 √8位A/D,量化间隔=Vin/(256-1) √CMOS低功耗器件 √8 通道多路开关输入切换电路 √单电源+5,Vref=+5V Vin范围:单极性0—+5V √逐次逼近结构 √每次转换时间:100S 60个时钟周期, fmax=640KHz (推荐CLK=500KHz) √转换结果读取方式: ①延时读数 ②查询EOC=1 ③EOC申请中断 IN3 IN2 IN4 IN1 IN5 IN0 ADC0809 IN6 ADDA IN7 ADDB START ADDC EOC ALE D3 D7 OE D6 CLK D5 VCC D4 Vref+ D0 GND Vref- D1 D2
IN0—IN7:8通道模拟量输入端 D0—D7: 8位数字量输出端 ADDC、ADDB、ADDA: 接地址锁存器的低三位地址 ALE: 地址锁存允许控制信号 START:清0内寄存器,启动转换 OE: 允许读A/D结果,高有效 CLK:时钟输入端,应≤640KHz EOC:转换结束时为高 Vcc:+5V Vref+:正参考电压 Vref-:负参考电压 ADC 0809引脚定义: IN3 IN2 IN4 IN1 IN5 IN0 ADC0809 IN6 ADDA IN7 ADDB START ADDC EOC ALE D3 D7 OE D6 CLK D5 VCC D4 Vref+ D0 GND Vref- D1 D2
IN3 IN2 IN4 IN1 IN5 IN0 ADC0809 IN6 ADDA IN7 ADDB START ADDC EOC ALE D3 D7 OE D6 CLK D5 VCC D4 Vref+ D0 GND Vref- D1 D2 IN0—IN7:8通道模拟量输入端 D0—D7: 8位数字量输出端 ADDC、ADDB、ADDA: 接地址锁存器的低三位地址 ALE: 地址锁存允许控制信号 START:清0内寄存器,启动转换 OE: 允许读A/D结果,高有效 CLK:时钟输入端,应≤640KHz EOC:转换结束时为高 Vcc:+5V Vref+:正参考电压 Vref-:负参考电压 转换结果对应的输入电压计算 由于AD0809是8位的模数转换器,其所能表示的数字量为0~255。因此,0~255对应的输入电压就是(Vref+)-(Vref-)。 最小的转换当量为Δ=((Vref+)-(Vref-))÷ 255 如果Vref+接+2.55V,Vref-接地。 则2V的电压输入转换后为 2V ÷ Δ=200。反之,如果知道转换后的数字量也可以换算出输入的模拟量。
ADC0809 结构框图 START CLK EOC IN0 控制逻辑与时序 8 通道多路开关 D0 D7 Vin 输出锁存器 + IN7 比较器 SAR - Vst ADDA 地址译码锁存 D/A转换器 ADDB ADDC ALE +Vref -Vref OE
ADC0809 与 单片机的连接 51单片机 ADC 0809 锁存器74LS373 VREF Ref+ D0-D7 A0 ADDA P0.0-P0.7 8D Q0 A1 Ref- Q1 ADDB ALE G A2 +5V Q2 ADDC VIN0 EA 2 VIN1 OE VIN2 CLK VIN3 WR VIN4 START ≥1 CS0 VIN5 ALE VIN6 EOC ≥1 OE VIN7 INT1 RD 口地址可以为:0x0000~0x0007
根据系统要求不同以及CPU忙闲程度,A/D转换通常可采用三种软件编程控制方式;程序查询方式,定时采样方式和中断控制方式。根据系统要求不同以及CPU忙闲程度,A/D转换通常可采用三种软件编程控制方式;程序查询方式,定时采样方式和中断控制方式。 1.程序查询方式 对A/D转换器而言,所谓程序查询方式即条件传送I/O方式。在接入模拟量以后,发出一启动A/D转换命令,用查询检测P3. 2引脚电平是否为“0”(A/D转换器数据是否准备就绪)的方法来读取A/D转换器的数据,否则继续查询,直到P3.2引脚电平为“0”。这种方法较好地协调了CPU与A/D转换器在速度上的差别,通常用于检测回路较少、而CPU工作不十分繁忙的情况下。
2.定时采样方式 这种方式实际是无条件传送I/O方式,当向A/D转换器发出启动命令后,即进行软件延时,延时时间取决于进行一次A/D转换所需的时间,此时A/D转换器的数据(准备就绪)肯定转换完毕,从A/D转换器中读取数据即为采样值。 3.中断采样方式 不论采用查询方式,还是采用定时方式,CPU大部分时间都消耗在查询或延时等待上,这对于多回路的采样检测并且CPU工作很忙的测控系统中,不宜采用这两种方式,而采用中断方式。 在这种方式中,CPU启动A/D转换后,可以继续执行主程序。当A/D转换结束时,发出一转换结束信号EOC,该信号反相器接89C51的P3.2(INT0)引脚,向CPU发出中断清求。CPU响应中断后,即可读入数据并进行处理。