计算机软件基础

来源:百度文库 编辑:神马文学网 时间:2024/04/28 04:40:39
12.2.2 D/A芯片及其与CPU的接口
理想的D/A芯片对于微处理器来说应该表现为一个简单的输出口或表现为一个只写存储单元。

图12.8 D/A芯片的简化功能示意图
D/A芯片是由集成在单一芯片上的解码网络并根据需要附加上一些功能电路所构成的。简化的功能示意图如图12.8所示。
数字接口单元——把来自微机系统总线的逻辑输入电压(TTL,CMOS等)变换为一组D/A转换电路内部开关所需要的控制电平。有些D/A芯片中还包括一个或多个缓冲寄存器或锁存器。
转换电路——由电阻网络和由二进制码控制的模拟开关组成,通过它进行D/A转换。有些D/A芯片转换的结果电流直接作为模拟量输出,有些芯片把电流经运算放大器OA转换变为电压后输出。
精密基准电压单元——产生解码网络所需要的基准电压。有些芯片基准电压由外部提供。
在过程控制中,被检测的物理量转换后的电压或电流信号通常都是单极性的,对于单极性的模拟输入信号,A/D转换器转换后的数字量不带符号位,可以直接采用二进制码,其D/A转换器输出一般也是单极性的。但有些控制系统的模拟量是双极性的,因此也要求D/A转换器的输出是双极性的。
任何单极性D/A转换器都可以改为双极性的转换器。数字量表示为双极性的可以有原码、反码、补码和偏移二进制码,但最方便的是偏移二进制码。
偏移二进制码是在基本二进制上加一个偏移值得到的。对n位二进制数±Di的偏移二进制码为

式中的就是偏移值。例如一个正负两位二进制数Di=+10B的偏移二进制码为
DiB=10B+100B=110B
当Di=-10B的偏移二进制码为
DiB=-10B+100B=010B
偏移二进制码和基本二进制码的关系如表12.2所示。

图12.9 双极性输出接法
表12.2

因此,把单极性二进制码变成偏移二进制码,这就相当于把座标轴往上平移了半个满量程。所以用偏移二进制实现双极性转换,只要在单极性D/A转换器输出运算放大器的求和点上加上一个能抵消半个量程电流的偏移电流即可。如图12.9所示,所加偏移电路的电源电压为原单极性D/A转换器基准电压VREF。而偏移电阻RB等于最高位的输入电阻,以保证偏移二进制数字输入量最高位为1而其它位均为0时,输出模拟电压为0,如表12.3所示。由于加入了偏移量,双极性输出模拟电压的数值比单极性时降低了一半,如要加大输出模拟电压,则需相应地增大反馈电阻RF。
表12.3

为了适应自动控制和信息处理等对分辨率、精度、速度、价格等提出的各种要求,很多厂家设计生产出多种类型、多功能的D/A芯片。下面仅介绍几种典型的具有代表性的芯片。
一、1408DAC
1408DAC是一种价格便宜、性能较低的8位D/A芯片。使用这种转换芯片时,需外加一些器件和电路,如基准电源、输出极性选择电路、运算放大器等。
有许多厂家生产这种芯片,但命名却不尽相同,如AD1408,SSS1408A,μA0802等,都属于这种芯片。这种芯片的主要性能如下:
·分辨率——8位;
·建立时间——250 ns;
·单调性——8位;
·工作温度范围——0~75℃;
·增益温度系数——20×10-6/℃;
·电源敏感性——27μA/V;
·相对精度*——±0.39%,±0.19%,±0.1%;
·功耗——157 mW。
*注:这种芯片由后缀来区分精度等级,所给3个精度等级分别与AD1408—7,AD1408—8和AD1408—9对应。
1408DAC既可单极性工作又可双极性工作,由外电路选择。
1408DAC的基准电压也可作为一个可变的输入量,器件的输出是数字量和基准量的乘积,它是一个二象限的乘法DAC。

图12.10 AD1408片脚功能图
下面以AD1408为例,按组成单元予以简单介绍。
1.AD1408的数字接口
AD1408的片脚分配如图12.10所示。
1408的数字接口简单地由8个输入端组成。数字接口不具备缓冲锁存功能。因此,为了供给它稳定的数字输入,必须外加缓冲寄存器。供给数字输入端的数码,对于单极性为普通二进制码,对于双极性为偏移二进制码。
2.AD1408的基准电压
由于1408是一种乘法数/模转换器,器件的输出是数字输入和基准电流的乘积。基准电流(IREF)可以是固定值,也可以是从近于零值到42mA之间变化。不论采用固定的还是可变的,也不论基准电压的极性如何,基准电流必须总是流入脚14(VREF(+))。可以根据哪种基准电压源更易于获得,而采用正基准电压或负基准电压。这两种基准电压的接法分别示于图12.11(a)和(b)。在用负基准电压时(如图12.11(b)接法),-VREF至少必须比VEE高4V。
1408还可以用双极性基准信号,接法如图12.11(c)所示。这时,片脚15通过R15接双极性的输入电压Vi,14片脚,通过R14接正基准电压,这个正基准电压值应不低于双极输入电压的正向峰值,如图12.11(c)所示,以保证基准电流总是流入脚14。
此外,补偿端脚16(comp)和VEE(脚3)之间应接补偿电容C,以补偿内部基准控制放大器的相移。R14的阻值增加时,C必须相应地增加;对应于R14=1kΩ,15kΩ和5kΩ,C分别应为15pF, 37pF和75pF。
取R15=R14以补偿内部的基准控制放大器的温度漂移。
3.AD1408的模拟输出
1408在片脚4(IOUT)上提供一个单一的模拟电流输出,这个输出端表现为一个电流接收器。这个电流一般可达2mA,当VEE比-7 V更负时,可增加到42mA。当VEE为-5V时,器件的输出电压一致性被限制在-0.6~+0.5 V范围内。这时输出端必须接运算放大器才能提供电压输出。当VEE比-10V更负时,输出电压一致性可以扩展。这时,输出端可以简单地接一负载电阻,在IREF=2mA下,便可给出-5~0V的输出电压范围,如图12.11所示。但必须指出,这时建立时间将受到影响,负载电阻RL不超过500Ω时,影响不大,但当RL增加到25 kΩ时,建立时间将由250 ns增加到12μs。

图12.11 AD1408基准电压接法
(c)中R14=R15
1408既可工作于单极性,又可共和于双极性。单极性工作时的通用接法如图1212所示(不加虚线部分电路)。
这里IREF=VREF/R14,建议IREF取为2 mA,可以看出

RF可根据对VOUT范围的要求来选定。
当双极性工作时,输入数字量为偏移二进制码。运算放大器求和点上加偏置电流IB其值为1/2 IREF,方向为流向求和点。如图12.12中虚线部分所示。这里RB=2R14。

图12.12 AD1408接线图
4.AD1408的零点调整及满量程调整
调整原则是:单极性输出时,输入数字为00H,输出电压为0V;输入数字为FFH,输出电压为, VFS为满量程电压。
双极性输出时,输入数字为00H,输出电压为-VFS;输入数字为80H时,输出电压为0V;输入数字为FFH,输出电压为
对图12.12所示电路,设VREF=2.5 V, RB=2.5 kΩ, R14=R14=1.25 kΩ, RF=5 kΩ, C=15 pF,具体调整步骤如下:
单极性输出(不加RB):数字输入00H,调整运算放大器的调零电位器R1, 使VOUT=0.00 V;数字输入FFH,调R14, 使VOUT=+9.961 V。
双极性输出(加RB):数字输入为00H,调RB, 使VOUT=-5 V;数字输入为80H,调R14, 使VOUT=0 V;数字输入为FFH,使VOUT=4.961 V。
5.CPU与AD1408接口
因AD1408没有输入数据锁存器,必须外加锁存器件,具体电路如图12.13所示。

图12.13 CPU与AD1408接口
采用8D锁存器74LS273为AD1408锁存输入数据。另外,用74LS138译码器为锁存器进行片选译码。本例片选地址设为80H。当微处理器执行输出指令
OUT 80H,AL
时,累加器中的数据在M/IO和WR的控制下送入锁存器中锁存起来,并送入D/A中进行转换、输出。根据对输出模拟值的不同要求,AD1408的基准电压和模拟输出部分有不同的接法。
如果CPU配有可编程并行I/O接口芯片,并且它有空余端口时,可用该端口为AD1408锁存数据。具体接法如图12.14所示。

图12.14 并行接口与AD1408的接法
设PIO(并行输入输出)端口A数据寄存器的口地址为80H,在PIO初始化中设定A口为输出方式的基础上,微处理器输出指令
OUT 80H,AL
时,累加器AL中的数据传送到PIO端口A数据寄存器中锁存起来,并输出给AD1408进行转换输出。
二、DAC0832
DAC0832是用CMOS/Si-Cr工艺制成的8位数/模转换芯片。数字输入端具有双重缓冲功能,可以双缓冲、单缓冲或直通输入,特别适用于要求几个模拟量同时输出的场合,与微处理器接口很方便,主要特性如下:
(1) 分辨率——8位
(2) 建立时间——1 μs
(3) 增益温度系数——/℃
(4) 输入——TTL
(5) 功耗——20 mW
DAC0832的片脚功能框图如图12.15所示。

图12.15 DAC0832片脚功能框图
DAC0832片脚功能说明:
ILE——允许输入锁存;
——片选信号。它与ILE结合起来可以控制WR1是否起作用;
——写信号1。在和ILE有效下,用它将数字输入并锁存于输入寄存器中;
——写信号2。在有效下,用它将输入寄存器中的数字传送到8位D/A寄存器中;
——传送控制信号。用它来控制是否起作用。在控制多个DAC0832同时输出时特别有用;
DI0~DI7——8位数字输入。DI0为最低位;
IOUT1——D/A电流输出1。它是逻辑电平为1的各位输出电流之和;
IOUT2——D/A电流输出2。它是逻辑电平为0的各位输出电流之和;
Rfb——反馈电阻。该电阻被制作在芯片内,用作运算放大器的反馈电阻;
VREF——基准电压输入。可以超出±10 V范围。芯片用于四象限乘时,为模拟电压输入;
VCC——电源电压。+5 V~+15 V,最佳用+15 V;
AGND——模拟地。芯片模拟电路接地点;
DGND——数字地。芯片数字电路接地点。
下面按组成单元予以简单介绍。
1.DAC0832的数字接口
DAC0832的数字接口由8条数字输入线(DI0~DI7)、两个写信号()、一个片选信号、一个允许输入锁存信号ILE和一个传送控制信号组成。由于数字输入为双重缓冲,给用户带来很大方便。
图12.15中的为寄存器锁存命令。当为1时,寄存器的输出随输入变化,寄存器处于直通状态,当为0时,输入数据被锁存在寄存器,输出不再随输入变化。当ILE为高电平、同时为低电平时,使为1,输入寄存器的输出随数据总线上的数据变化;当变高时,输入数据被锁存在输入寄存器中,当同时为低电平时,使为1,D/A寄存器的输出随它的输入变化。当变高时,将输入寄存器中的数据锁存在D/A寄存器中。
DAC0832由于有双重缓冲,特别适用于要求多个模拟量同时输出的场合。由3片DAC0832组成的这种系统如图12.16所示。

图12.16 3个模拟量同时输出的接线图
ILE置为高电平,在为低电平和片选信号分别为低电平的控制下,有关数据分别被输入给相应DAC0832的输入寄存器。当需要进行同时模拟输出时,在均为低电平的作用下,把各输入寄存器中的数据同时传送给各自的D/A寄存器。3个D/A同时转换,同时给出模拟输出。
可以看出,工作在双缓冲方式时,能做到在对某数据转换的同时,进行下一个数据的采集,因此转换速度较高。
在不要求多相D/A同时输出时,可以采用单缓冲方式(两个并联或者使两个寄存器之一始终处于直通状态)。这时只需一次写操作,因而可以提高D/A的数据吞吐量。
为了保证DAC0832可靠工作,一般情况下WR脉冲的宽度应不小于500 ns。若VCC=15 V,则可小至100 ns。输入数据保持时间不应小于90 ns,否则可能锁存错误数据。图12.17单极性工作输出接线图无用的数字信号端应根据要求接地或接VCC,不能悬空,否则D/A将视为1。
2.DAC0832的模拟输出
(1)单极性工作 当输入数字为单极性数字时,电路接法如图12.17所示。

图12.17 单极性工作输出接线图
VREF可以是稳定的直流电压,也可以是从-10V到+10V之间的可变电压。当为可变电压时,即可实现二象限乘。VOUT的极性与VREF相反,其数值由数字输入和VREF决定。
R1用于零校准,R2用于满度增益校准。在一般情况下,内部反馈电阻RFb能满足满度增益精度要求,因而,在反馈回路中不需串加校准电阻R2,也不需并联R3。
(2)双极性工作 当输入为双极性数字(偏移二进制码)时,电路接法如图12.18所示。如果基准电压VREF也是可变电压,则可实现四象限乘。

图12.18 双极性工作输出接线图
3.CPU与DAC0832接口
因DAC0832本身有数据锁存器,所以与CPU的接口很简单,只需外加地址译码给出片选信号即可。如不要求几片DAC0832同时输出模拟数据,则可只用一级缓冲。这时,可将接在地址译码的同一个输出端上,把接同一个控制信号。因本例没有外界的禁止输入锁存控制,ILE可以简单地接+5 V。整个数字接口电路如图12.19所示,这里转换器的地址安排为81H。

图12.19 CPU与DAC0832接口
和前两例一样,微处理器只要执行输出指令
OUT 81H,AL
即可把累加器AL中的数据送入DAC0832进行转换输出。模拟输出部分电路详见前面关于DAC0832芯片模拟输出一节。
DAC0832为电流输出型DAC,使用时需外加运算放大器,芯片的电源电压最好工作在+15V,经过运算放大器后,输出电压极性与VREF极性相反。图12.20为接有两路8位D/A转换器0832的硬件电路图,双极性输出(输入数字为偏移二进制码时)。微机通过低8位数据线与DAC通讯,两路D/A转换器口地址分别为80H~86H中的偶地址和88H~8EH中的偶地址,通过两级运算放大器使模拟电压输出。

图12.20 两路8位D/A的转换电路
三、AD558
D/A转换芯片AD558由内部锁存器,利用R~2R的T型解码网络和晶体管开关组成,其仅需要+5V电压供电,输出模拟电压范围为0~256 V。图12.21是AD558的内部结构框图,图12.22是AD558与PC机的连接图。

图12.21 D/A转换芯片AD558内部结构框图
AD558的锁存器通过CS和CE两信号控制。当CPU执行一条OUT指令时WR信号为低电平,地址30BH为PC机内译码器的输出,该输出信号使CS为低电平,因此CPU的输出数据被锁存于AD558内并通过T型解码网络转换成模拟电信号从VOUT端输出。AD558DAC可以10 mV的信号进行分辨。
下面是用AD558产生锯齿波模拟信号的程序。
CODE  SEGMENT
ASSUME CS:CODE
DAC   PROCF AR
START: PUSH DS
PUSH AX
LOP1: MOVAL,0      ;输出锯齿波最小值
MOV DX,30BH   ;AD558端口地址
LOP2: OUT DX,AL     ;输出进行D/A转换
INC AL      ;锯齿波值加1
CMP AL,00     ;一个锯齿波周期结束了吗?
JNZ LOP2     ;否;继续将数值加1
JMP LOP1     ;是,进行下一周期输出
RET
DAC   ENDP
CODE  ENDS
END START

图12.22 DAC AD558与PC机连接电路图
四、AD7522
AD7522是CMOS数/模转换芯片。数字输入端具有双重锁存,使器件易于接向8位的微处理器。不仅可以锁存10位并行数码,而且可以接纳串行信息。具有一对互补的电流输出。是四象限乘法数/模转换器。输出增益可通过反馈电阻的不同接法进行改变。模拟地和数字地是分开的。主要特性如下:
·分辨率——10位;
·非线性度——±0.05%~±0.2%;
·微分非线性——±0.1%~±0.4%;
·建立时间——500 ns;
·增益温度系数——/℃;
·非线性温度系数——/℃;
·电源温度系数——/℃;
·输入——TTL/CMOS;
·功耗——20 mW;
·工作温度范围——0~+70℃,-25~+85℃。
这种芯片的非线性度、微分非线性和工作温度范围(由封装材料决定)都分为几个等级,由芯片型号的后缀来识别。如表12.4所示。这种芯片的功能部件框图如图12.23所示。片脚功能示于表12.5。
表12.4 AD7522芯片的非线性度,微分非线性和工作温度范围 芯片型号
非线性度
微分非线性
工作温度范围
AD7522JN/JD
±0.2%
±0.4%
0~+70℃/(-25~+85℃)
AD7522KN/KD
±0.1%
±0.2%
0~70℃/(-25~+85℃)
AD7522LN/LD
±0.05%
±0.1%
0~70℃/(-25~+85℃)

图12.23 片脚分配及功能部件框图
表12.5 AD7522片脚功能表 片脚号
记忆符
功 能 说 明
1
VDD
主电源+15V
2
LDTR
单极性工作时接模拟地,双极性工作时接IOUT2
3
VREF
基准电压输入。由于AD7522为乘法DAC,VREF可以大大超过±10V,达±25V,它可以是固定的或可变的交流或直流电压
4
RFB2
反馈电阻中间抽头(满度增益为1/2)。要求增益为1/2或1/4时,接至输出运算放大器的输出端
5
RFB1
反馈电阻端(满度增益为1)。在正常增益为1下工作时,接输出运算放大器的输出端;若要求增益为1/4,则接至放大器的求和点上
6
IOUT1
电流输出(由逻辑电平为1的各数据位提供的)。一般接在输出运算放大器的求和点上
7
IOUT2
互补电流输出(由逻辑电平为0的各数据位提供的)。在单极性工作时接模拟地;双极性工作时接倒相运算放大器求和点上
8
AGND
模拟地
9
SRO
串行输出
10~19
DB9~DB0
并行数据输入。DB9为MSB,DB0为LSB
20

8位短周期控制。在串行方式下用于控制周期的长短。若为0,则只打入高8位,低2位被舍掉;若为1,则可接受完整的10位串行字
21
SPC
串/并行控制,若为0,且低字节选通(LBS)和高字节选通(HBS)起作用时,则并行数据被打入输入缓冲器;若为1,则根据HBS和LBS的时钟输入将串行数据移入输入缓冲器
22
LDAC
打入DAC。若LDAC为0,AD7522工作于“保持”方式,输入缓冲器中的数字输出功能被封锁;若为1,AD7522工作于“打入”方式,输入缓冲器中的数据打入DAC寄存器
24
LBS
低字节选通。在并行方式下(SPC为0)在该信号的上升沿时,把出现在DB0到DB7上的并行数据选通输入到输入缓冲器中;在串行方式下,出现在串行输入端的串行输入位在HBS和LBS的上升沿时,被移入输入缓冲器(在串行方式下,HBS和LBS必须同时加时钟脉冲)
25
HBS
高字节选通。与LBS功能同,但对DB8和DB9起作用
26
SRI
串行输入
27
VCC
逻辑电源。如施加+5V,则所有数字输入/输出与TTL兼容;如施加+10~+15V,则与CMOS兼容
28
DGND
数字地
下面介绍AD7522各组成单元的功能。
1.AD7522的数字接口
AD7522的数字接口由10条数字输入线(DB0~DB9),一个串并行控制信号(SPC),一个串行输入(SRI),两个并行方式使用的选通信号(LBS和HBS),一个打入DAC信号(LDAC),一个短周期控制信号和一个串行输出(SRO)组成。
D/A转换电路的数字输入为双重缓冲,这就大大简化了这种器件与8位微处理器的接口。当微处理器配有串行I/O时,串行工作方式使它宜于在远离微机的地方使用。
下面介绍适用于各种数据传输形式的接线法。
(1)并行单组输入:当7522用于转换来自10位以上的微处理器的10位数据时,可以进行数据的并行单组输入。
因为是并行输入,所有用于串行的控制线这时都无用,都要接数字地。如图12.24所示。

图12.24 并行单且输入控制端接线图
因为10位数字同时输入给输入缓冲器,因此,高字节选通(HBS)和低字节选通(LBS)可以连在一起,并由片选信号和写信号提供选通信号。
数字从输入缓冲器到D/A寄存器的传输是在LDAC的控制下实现的。与对输入缓冲器输入数据是由LBS和HBS的前沿触发不同,向D/A寄存器输入数据是由有效电平控制的。为了实现这一传输,LDAC信号保持高电平至少500 ns。
在此并行单组输入方式下,LDAC信号可由如图12.25所示的3种途径得到。
D/A转换电路的数字输入在图12.25(a)中须两步完成,在图12.25(b), (c)中只须一步。

图12.25 并行单组输入方式下产生LDAC信号的3种途径接线图
前面曾经指出,这种芯片分为“J”,“K”,“L”3个等级,为了保证精度和单调性,对于“J”级把DB0和DB1接数字地,对于“K”级只把DB0接数字地。
(2)并行两组输入:当7522用于转换来自8位微处理器的10位数据时,数据必须分两组输入。有两种输入方法,一种是分3步,另一种是分2步,分别示于图12.26。

图12.26 并行两组输入控制接线图
在三步方法中,LBS,HBS和LDAC的控制信号分别由3个片选信号(,)与组合而成。
在两步方法中,LDAC和HBS一样,控制信号也由组合而成。
图12.27串行输入接线图两种方法中,都是先输入低8位,后输入高两位。
串行输入芯片片脚线如图12.27所示。

图12.27 串行输入接线图
对于串行工作方式,并行数字输入端(DB0~DB9)均接数字地,SPC应置为逻辑1。
串行输入数据加到SRI端,通过同时选通LBS和HBS端,记录每一位的输入。串行数字是由最高位(MSB)开始输入的,每一个时钟输入(CLOCK IN)信号(上升沿)输入一位,并移位到输入缓冲器。
在串行工作方式中,传输串行输入数据到输入缓冲器和传输输入缓冲器的内容到D/A寄存器,必须分别地完成。为了传输输入缓冲器的内容到D/A寄存器,最后一个CLOCK IN信号可以同时作打入D/A信号(LDAC)。
当串行工作时,通过施加一个逻辑0到输入端,AD7522可以作为8位器件使用。这时8个时钟脉冲后就把数据打入DAC寄存器,并开始转换。
AD7522有两个互补的电流输出端IOUT1和IOUT2,为了得到电压输出,需要外加运算放大器。
2.AD7522的单极性工作和双极性工作
(1)单极性工作:单极性工作时,IOUT1接运算放大器求和点,IOUT2接模拟地,T型网络终端也接模拟地,如图12.28所示。这时数字输入和模拟输出间的关系如表12.6所示。

图12.28 单极性工作输出接线图表
表12.6 数字输入和模拟输出关系 数 字 输 入
模 拟 输 出
1 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0
-VREF(1-2-10)
-VREF(1/2+2-10)
-VREF/20
-VREF(1/2-2-10)
-VREF(2-10)
0
图中R1和R2用作满度增益校准。校准时,先把R1, R2均调为0Ω,使D/A寄存器的数字输入为全1,如果模拟输出VOUT大于应有值则增大R1使VOUT为应有值。如VOUT小于应有值,增加R2使VOUT为应有值。
图中CR2, CR3均为肖特基二极管,CR1, CR2和CR3均用于保护AD7522芯片。电容器C1用作对运算放大器进行相位补偿。
满度增益可以选为1,1/2或1/4,由反馈回路的接法(反馈电阻值)来决定。如选1,R2接RFB1;如选1/2,R2接RFB2;如选1/4,R2接RFB2且IOUT1接RFB1。
(2)双极性工作:当数字输入为偏移二进制时,工作于双极性输入方式。如偏移二进制数字输入同双极性基准电压相结合,则可实现四象限乘。
双极性工作时,使用两个运算放大器,具体接法如图12.29所示。OA2用于倒相,OA1用于求和。这时,T型网络终端LDTR应接A2的求和点。数字输入和模拟输出间的关系如表12.7所示。
图中R1和R2用作满度增益校准时。校准先把R1, R2均调为0 Ω,使DAC寄存器的数字输入为全0,如果VOUT大于+VREF则增加R2;如VOUT小于VREF则增加R1,REF最后均使VOUT达+VREF。

图12.29 双极性工作输出接线图表
表12.7 数字输入和模拟输出关系 数 字 输 入
模 拟 输 出
1 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0
+VREF(1-2-9)
+VREF(2-9)
0
-VREF(2-9)
-VREF(1-2-9)
-VREF
3.CPU与AD7522接口举例
AD7522为10位DAC,当它与8位的微处理器CPU接口时,必须进行输入数据的两级缓冲锁存。因AD7522本身具有双重缓冲功能,所以给接口带来很大方便。三步操作方式下的接口电路如图12.30所示。3个口地址安排为98H,99H和9AH,分别用于选通10位数字的低字节、高字节和打入D/A寄存器。模拟输出电路见前面所介绍内容。

图12.30 CPU与AD7522接口
设待转换的10位数据预先已由其它程序放入定义保留的从DATA开始的两个单元中。微处理器执行下列程序段就能实现把10位数字数据送入AD7522并进行转换给出模拟输出。
MOV BX,OFFSET DATA
MOV AL,[BX]
OUT 98H,AL    ;数据的低8位送低8位锁存器
INC BX
MOV AL,[BX]
OUT 99H,AL    ;数据的高2位送高2位锁存器
OUT 9AH,AL    ;10位数据(锁存在输入缓冲器中的)送入DAC
寄存器并开始转换
   .
.
.
DATA DB 12,3    ;DATA单元存数据的低8位,DATA+1单元存数
据的高2位
五、AD561
AD561是一种高速的D/A转换芯片。从工艺上讲,它属于双极型器件,具有稳定的内部基准电压,能提供0~2 mA良好的模拟电流输出。接输出范围电阻可直接以电压形式输出,这时建立时间为250 ns(达到±1/2 LSB),如后接运算放大器(AD509),建立时间为600 ns。主要特性如下:
·分辨率——10位;
·非线性度——J级±0.05%,K级±0.025%;
·微分非线性度——±0.05%;
·建立时间——250 ns;
·增益温度系数——J级/℃,K级/℃;
·输入——TTL/CMOS;
·输出——单极性/双极性;
·功耗——290 mW;
·工作温度范围——0~+70℃。
AD561的片脚功能如图12.31所示。

图12.31 AD561片脚功能图
1.AD561的数字接口
AD561的数字口由10个数字输入端D1~D10组成。数字接口不具备缓冲锁存功能,因此必须外加锁存器。输入数字,对单极性为普通二进制码,对双极性为偏移二进制码,如为直接(不加运算放大器)输出0~+10V, 则应反码输入。
对于TTL/DTL或5V CMOS,VCC为+5V。
对于高压CMOS,VCC为+10V~+15V。
由于逻辑输入端为高阻抗,所以即使用不带缓冲的CMOS电路进行输入也没有困难。
2.AD561的模拟输出
AD561可以直接输出,也可经运算放大器输出,可以单极性输出,也可以双极性输出,现将各种输出接线法介绍如下。
(1)经运算放大器输出:
0~+10V单极性输出,如图12.32所示。
±5V双极性输出,如图12.33所示。
±10V双极性输出,接线图如图12.33所示,只需将R2换为一个4.2 kΩ固定电阻接一个1.5 kΩ可变电阻,R4换为2 kΩ即可。

图12.32 0~+10V单极性输出接线图

图12.33 ±5V双极性输出接线图
(2)直接输出:AD561的输出阻抗很高(40MΩ),输出电压一致性很好,因此,不需借助于运算放大器就可实现满意的电压输出。在满度输出电流情况下,通过改变输出电路接法和输出范围电阻的阻值,可保证从-2V到10V的输出电压范围。但是,为了保证精度,负载必须是高阻抗器件。
0~-2V输出:如图12.34(a)所示,在输出端用一个阻值为1 kΩ的输出范围电阻R接地。这样,对应于全0到全1的数字量变化,I0从0到2 mA,这个电流流经电阻R,使输出端得到0~-2 V的电压输出。

图12.34 直接电压输出接线图
0~+10 V输出:当要求0~+10V输出时,输出端不接1 kΩ电阻,而是在反馈输入端通过50 Ω可调电阻接+10 V精密电源,如图12.34(b)所示。但这时的输入应为取反后的数字码。
-1~+1 V双极性输出:当要求-1~+1 V双极性输出时,可采用如图12.34(c)所示的接线法。
(3) 校准:经运算放大器输出时,在单极性下,R1用于零校准;双极性时,用R3进行零校准(R1在双极性时一般不需调整,除非运算放大器的偏移过大)。R2用于满度增益校准。
直接输出时,R2, R3均用于零输出校准。
3.CPU与AD561接口
因AD561本身不具备输入数据锁存功能,必须外加锁存器。CPU为8位微处理器时,而AD561为10位D/A,所以必须进行双重缓冲锁存。具体接口电路如图12.35所示。可以用三步输入操作,也可用两步输入操作,本图适用于两步输入。

图12.35 AD561与CPU接口电路
第一步选址98H,将数据的低8位锁存在锁存器(1)中。第二步选址99H,把数据的低8位进一步锁入锁存器(2)中,同时将数据的高2位锁入2位锁存器中。这样就把整个10位数据送入DAC进行转换,随之给出模拟输出。有关模拟输出电路见AD561芯片介绍。
向AD561输出数据的程序段基本同上例,只是因三步改为两步,把第三步输出指令
OUT 9AH,AL
去掉即可。
六、DAC1210/1209/1208系列D/A转换器及接口
1.主要技术指标
DAC1210/1209/1208都是12位D/A转换器,主要区别是线性误差不同,主要指标为:
·分辨率12位;
·电流建立时间1 μs;
·线性误差DAC1210为0.05%VFS,DAC1209为0.024%VFS,DAC1208为0.012%VFS;
·逻辑电平输入与TTL电平兼容;
·具有双缓冲数据锁存器,可接成双缓冲或直接数字输入;
·单电源+5~+15 V,低功耗20 mW,参考电压VREF为-10~+10V。
2.内部结构
内部结构如图12.36所示,包括两级数据锁存器和12位相乘型D/A转换器。第1级输入锁存器分成高8位和低4位两个锁存器,可以高8位和低4位一次输入锁存,也可以仅输入低4位。第2级是一个12位的DAC寄存器,数据输入后立即送D/A转换器,转换结束输出模拟电流信号。

图12.36 DAC1210/1209/1208内部结构图
3.引脚功能
DI11~DI0——12位数据输入。
——片选,低电平有效。
——写入信号1,低电平有效。
——12位/4位输入选择,高电平时,高8位和低4位
输入锁存;低电平时,低4位输入锁存。
——传送控制,低电平有效。
——写入信号2,低电平有效,当同时为低电平有
效时,第1级锁存器中的数据传送到第2级DAC寄存器中。
IOUT1——D/A转换电流输出1,当DAC寄存器为全1时输出电流量大;当
DAC寄存器为全0时输出电流为0。
IOUT2——D/A转换电流输出2,与IOUT配合使用。
Rfb——反馈电阻。
VREF——参考电压。
VCC——电源电压。
4.工作方式
DAC1210/1209/1208有两种工作方式,一种是单缓冲方式,另一种是双缓冲方式。
(1)单缓冲方式 单缓冲连接方式如图1238所示,使连接,联接,接+5V,使均为1,同时选通输入锁存器和DAC寄存器。于是,数据可直接送入DAC寄存器。工作时序如图12.37所示。

图12.37 单缓冲工作时序

图12.38 单缓冲工作方式
(2)双缓冲工作方式 双缓冲工作方式是将输入数据经两级锁存器传送给D/A转换器。也就是将输入锁存器和DAC寄存器看作两个端口分别予以控制。图12.39所示是与8位数据总线的连接方式,12位数据分两步送入高8位锁存器和低4位锁存器,然后由XFER控制,一起送DAC寄存器,其工作时序如图12.40所示。

图12.39 8位数据总线连接方式

图12.40 双缓冲工作时序图
5.输出方式
DAC1210/1209/1208属于电流输出型D/A转换器,需用运算放大器将电流输出转换为电压输出。一般电压输出可分为单极性和双极性两种,其中单极性输出如图12.41所示,双极性输出如图12.42所示。

图12.41 单极性输出方式

图12.42 双极性输出方式
由图12.42可以推出输出电压与输入数字量的对应关系:

因为

所以
6.与CPU接口电路设计
由于DAC1210系列D/A转换器的逻辑电平与CPU兼容,其内部的两级锁存器可视为两级外部输出端口,因此可直接与CPU系统总线连接,如图12.43所示。图中采用16位数据总线接口单缓冲工作方式。第1级运算放大器将DAC输出电流转换为单极性电压输出,输出幅度为-10~0 V。第2级运算放大器产生双极性电压输出,输出幅度为-10~+10V。
向DAC1210连续不断地输出数据,即可得到相应的电压信号。设端口地址为PORT,产生连续方波的程序如下:
MOV DX,PORT    ;DAC1210输入锁存器地址(要求偶地址)
LP:MOV AX,0000H
OUT DX,AX
CALL RLY       ;延时
MOV AX,0FFFFH
OUT DX,AX
CALL RLY
JMP LP

图12.43 DAC1210接口电路
七、AD394
AD394有4个独立的12位D/A转换器,其满刻度精度为0.05%,精度达到1/2 LSB的时间为15 μs。每个D/A转换器均有独立的缓冲寄存器,4个D/A转换器可分别装入不同的数据,也可以同时装入相同的数据。每个D/A转换器的输出接二级运算放大器,有独立的模拟量输出端,属于双极性输出的D/A转换器,内部结构如图12.44所示。

图12.44 AD394内部结构
从B1~B12输入12位数据,B1为最高有效位,在参考电压VREF=10 V时,输出电压范围为±10V。输出电压与输入数据之间的转换关系可表示如下:
B1=1时,V0=VREF[低位 的值/2048];
B1=0时,V0=-VREF[(2048-低11位的值)/2048]。
AD394可以与16/32位数据总线系统直接连接,4个D/A转换器的选择可由地址译码实现。若与8位数据总线连接,须在AD394和8位CPU之间增加一级数据锁存器,将12位数据分两次传送。
AD394在16/32位数据总线系统中的连接如图12.45所示,12位数据线与16/32位数据总线的低12位直线连接,由地址译码产生。若设4个D/A转换器的端口地址分别为PORT0~PORT3,主存中数据缓冲区地址为BLOCK,则数据输出转换程序可设计如下:
LEA BX,BLOCK
MOV DX,PORT0   ;设置端口地址0
MOV AX,[BX]  ;取数
INC BX
INC BX
OUT DX,AX    ;输出数据
MOV DX,PORT1   ;设置端口地址1
MOV AX,[BX]  ;取数
INC BX
INC BX
OUT DX,AX    ;输出数据

图12.45 AD394的连接使用
八、12位D/A转换与16位机的一种间接接口
图12.46为12位DAC通过8255作锁存器与8086CPU的连接图。此时,8086CPU以字的形式组织该接口。两片8255A具有相同的口地址,且使用BHE控制信号允许高8位数据传送。一个8255A的PA0~PA7提供12位DAC的低字节数据,另一个8255A的PA0~PA7提供12位DAC的高4位数据。

图12.46 12位D/A转换及接口电路