第 12 章d-a和a-d接口讲义

上传人:今*** 文档编号:107226291 上传时间:2019-10-18 格式:PPT 页数:96 大小:1.09MB
返回 下载 相关 举报
第 12 章d-a和a-d接口讲义_第1页
第1页 / 共96页
第 12 章d-a和a-d接口讲义_第2页
第2页 / 共96页
第 12 章d-a和a-d接口讲义_第3页
第3页 / 共96页
第 12 章d-a和a-d接口讲义_第4页
第4页 / 共96页
第 12 章d-a和a-d接口讲义_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《第 12 章d-a和a-d接口讲义》由会员分享,可在线阅读,更多相关《第 12 章d-a和a-d接口讲义(96页珍藏版)》请在金锄头文库上搜索。

1、第 12 章 数模(D/A)转换与模数 (A/D)转换接口,本章讲述: 12.1 D/A转换器接口 12.2 A/D转换器接口,12.1 D/A转换器接口,D/A(Digit to Analog)和A/D(Analog to Digit)转换是计算机与外部世界联系的重要接口。在一个实际的系统中,有两种基本的量模拟量和数字量。外界的模拟量要输入给计算机,首先要经过A/D转换,才能由计算机进行运算、加工处理等。若计算机的控制对象是模拟量,也必须先把计算机输出的数字量经过D/A转换,才能控制模拟量。 D/A和A/D转换的具体电路已经在数字电路课程中讲述。本章主要介绍如何把D/A和A/D转换的芯片与C

2、PU进行接口以及用CPU控制这些转换的软件编程如何实现。,12.1.1 CPU与8位D/A芯片的接口,D/A转换通常是由输入的二进制数的各位控制一些开关,通过电阻网路,在运算放大器的输入端产生与二进制数各位的权成比例的电流,经过运算放大器相加和转换而成为与二进制数成比例的模拟电压。 若CPU的输出数据要通过D/A转换变为模拟量输出,当然要把CPU数据总线的输出连到D/A的数字输入上。但是,由于CPU要进行各种信息的加工处理,它的数据总线上的数据是不断地改变的,它输出给D/A的数据只在输出指令的几个微秒中出现在数据总线上。所以,必须要有一个锁存器,把CPU输出给D/A转换的数据锁存起来,直至输送

3、新的数据为止。一个最简单的D/A芯片与CPU的接口电路如图12-1所示。,其中,以锁存器74100作为CPU与D/A转换之间的接口。CPU把74100作为一个输出端口,用地址27H来识别,则CPU输给D/A的数据要用一条I/O写(即输出)指令来实现。 图12-1的电路可应用于许多场合,例如: (1) 驱动一个侍服电机; (2) 控制一个电压频率转换器(用于锁相环路); (3) 控制一个可编程的电源; (4) 驱动一个模拟电表。,12.1.2 8位CPU与12位(高于8位的)D/A转换器的接口,1. 一种12位D/A转换芯片 这里介绍一种12位D/A转换片子DAC1210。 DAC1210是美国

4、国家半导体公司生产的12位D/A转换器芯片,是智能化仪表中常用的一种高性能的D/A转换器。DAC1210的逻辑结构框图如图12-2所示。,由图12-2所示DAC1210的逻辑结构是一个12位的D/A转换器。它有两个输入寄存器,一个是8位的,一个是4位。若它与8位CPU接口,DAC1210的输入线DI11DI4以及DI3DI0都连至CPU的数据总线DB7DB0。12位数据需分两次输送,若CPU输出的地址及控制信号,使LE1有效,则8位数据输入至8位输入寄存器:若CPU使LE2有效,则12位数据中的另4位输入至DAC1210的4位输入寄存器。再使LE3有效,把12位输入寄存器的内容同时输入给12位

5、DAC寄存器,进行D/A转换。,若DAC1210与16位CPU相连,则DI11DI0连至CPU的数据总线DB11DB0。CPU的输出地址与控制信号使LE1与LE2同时有效。则CPU输出的12位数据同时输入至8位输入寄存器与4位输入寄存器。然后,使LE3有效,把12位输入寄存器的内容同时输送给12位DAC寄存器,进行D/A转换。,DAC1210共有24个引脚,各引脚定义如下: DI11DI0:12位数字量输入信号,其中DI0为最低位,DI11为最高位。 CS# :片选输入信号,低电平有效。 WR1# :数据写入信号1,低电平有效。当此信号有效时,与B1/2配合起控制作用。 B1/B2#:字节控制

6、信号。此引脚为高电平时,12位数字同时送入输入寄存器;为低电平时,只将12位数字量的低4位送到4位输入寄存器。, XFER# :传送控制信号,低电平有效,与2配合使用。 WR2#:数据写入信号2,低电平有效。此信号有效时,信号才起作用。 IOUT1:电流输出1。 IOUT2:电流输出2。 RFB:内部反馈电阻引脚。, VREF:参考电压,-10V+10V。 VCC:芯片电源,+5V+15V。 AGND:模拟地。 DGND:数字地。,2. DAC的输出连接方式 有的D/A转换片子的输出是电压,有的片子输出的是电流。在实际应用中,执行部件往往要求电压驱动,所以,电流输出的要经过电流-电压变换器。输

7、出电压又可能只要求单极性,而有的要求有正有负(双极性)。 (1) 单极性输出 一个电流输出的D/A片子转换为单极性电压输出的电路如图12-3所示。,输出与RFB端间接的电阻R2以及接于参考电源的R1是为了调整增益,电容C则起防止振荡的作用。 (2) 双极性输出 其输出电路如图12-4所示。,3. 8位CPU与12位D/A接口方法 许多应用场合要求D/A有更高的灵敏度和精度,8位就不能满足要求了,常常要求10位、12位或14位D/A转换器。 那么,如何把一个多于8位的D/A转换器接口到8位的微型机呢? 可以把12位分成两段,第一次微型机先输出低8位到锁存器,第二次再把另四位送到另一个锁存器上,如

8、图12-5所示。,而要输出的12位是存储在两个相邻的单元内: 地址 数据位 A D7 D6 D5 D4 D3 D2 D1 D0 A+1 D11 D10 D9 D8 A+2 D7 D6 D5 D4 D3 D2 D1 D0 A+3 D11 D10 D9 D8 为无用的位。,但是,若用图12-5的电路输出,则输出电压上会出现毛刺。这是由于,若原来的数据为0000 1111 0000,下一个输出的值为0001 0000 1011,但在输出过程中是先输出低8位,如下所示: 数据先由0000 1111 0000变为0000 0000 1011,则输出电压要下降;然后再输出高四位,变为0001 0000 1

9、011,输出电压再升高,就出现了毛刺。为了解决这个问题,可以采用双缓冲器结构,如图 12-6所示。,CPU输出时,先输出低8位给缓冲器1(此时缓冲器2不通,故输出不变),然后输出高两位。等这两者都输出后,再输出一个打开缓冲器2的选通脉冲,把10位同时输给D/A转换,这样就避免了毛刺。 程序如下: ORG 2000H START: MOV BX,DATA MOV CL,64H,DAC: MOV AL,BX OUT 54H,AL INC BX MOV AL,BX OUT 55H,AL OUT 56H,AL INC BX DEC CL JNZ DAC JMP START ORG 3000H DATA

10、: DW W1,W2,W100; 定义100个字(每个字10位) END START,12.2 A/D转换器接口 12.2.1 概述,在一个实际的系统中,要用微型计算机来监视和控制过程中发生的各种参数,就首先要用传感器把各种物理参数(如压力、温度等)测量出来,并且转换为电信号,再经过A/D转换,传送给微型计算机;微型计算机对各种信号计算、加工处理后输出,经过D/A转换再去控制各种参数,其过程如图12-14所示。,其中: (1) 传感器把各种现场的物理量测量出来,并且转换为电信号。 (2) 量程放大器把传感器的信号(通常为mVV级)放大到A/D转换所需要的量程范围。 (3) 低通滤波器降低干扰,

11、增加信扰比。 (4) 多路开关通常要监视和控制的现场信号是很多的,而且它们的变化是缓慢的,所以没有必要一种现场信号就有一个A/D转换器和占用一条与微型计算机联系的通路,而可以利用多路开关,把多个现场信号,用一条通路来监视和控制。,(5) 采样/保持电路因为现场信号总是在变化的,而A/D转换总是需要一定时间的,所以,需要把要转换的信号采样后保持一段时间,以备转换。另外,现场信号的变化是缓慢的,没有必要始终监视,而可以用巡回检测的办法,所以,也要求有采样/保持电路。 当用巡回检测的办法来监视现场信号时,就存在一个问题: 应该经过多长时间去采样一次被测信号,使采样的结果能够反映被测信号,即采样频率应

12、该多高。采样定理告诉我们:采样频率至少应该大于被测信号频谱中的最高频率的两倍。 本章主要讨论A/D转换。,12.2.2 用软件实现A/D转换,利用D/A转换器,CPU可用软件实现A/D转换。 1. 计数器式A/D转换 计数器式A/D转换可以用硬件实现,如图12-15所示。也可以利用一个D/A转换电路,用软件实现,如图12-16所示。 软件实现实际上是用一种类似于线性搜索的办法,每次让一个锁存器加1,再把它经D/A转换后为VC,与输入模拟电压VX相比较,把比较的结果用一个输入端口输入,若仍是VXVC,则循环;当VX=VC时就停止循环,此时锁存器中的数据即为转换所得的结果。,其程序如下: ORG

13、2000H START: MOV CL,0;用CL作比较用的寄存 器,初值为零 DALOOP: MOV AL,CL OUT 27H,AL IN AL,15H;输入比较器的状态, 若VXVC,则D5=0 AND 20H;屏蔽除D5外的其他位 JNZ DONE;D50,则转换完成 INC CL JMP DALOOP DONE: MOV AL,CL OUT 02H,AL;转换完成数据输出显 示 HALT,但是用上述软件来实现转换,比硬件更慢。255步的比较需要7ms(若CPU为8080A)。显然转换的位数越多,时间就更长。 所以,用软件实现计数器式的A/D转换是不实用的;但是当转换速度要求不高时硬件

14、实现的芯片仍然是有用的,它的成本较低。,2. 逐次逼近式A/D转换 用软件实现逐次逼近式A/D转换,实际上是把输入模拟电压VX作为一个关键字,用对分搜索的办法来逼近它。 例如,在8位的情况下,要转换一个相当于数113的模拟电压,搜索过程可用表12-5来描述。,用软件实现逐次逼近式A/D转换的流程图如图12-17所示。 如果仍然使用图12-16所示的接口电路,则寄存器AL用于I/O数据传送和位操作,寄存器DH存放每次试探的数据,寄存器DL存放累加的结果,寄存器CL作为循环次数计数器。 程序如下: ORG 2000H START: SUB AL,AL;清AL MOV DX,8000H;置DH=80

15、H, DL=00H MOV CL,8;置循环次数 AGAIN: OR AL,DH;建立新试探值 MOV DL,AL;存入DL中,IN AL,15H;输入比较结果的状态 ;若VXVC,则D5=0 AND AL,20H;屏蔽除D5外的所有位 JZ OK;小于VX,转至OK MOV AL,DH NOT AL AND AL,DL;使新的试探值置0 MOV DL,AL;和DL OK: RR DH;移至下一位试探 MOV AL,DL DEC CL JNZ AGAIN;未完,进入下一循环 DONE: HALT 对于8位的转换,若CPU为8080,时钟周期为500ns,则转换时间为240s。若要求更快转换,则可用硬件实现的逐次逼近式转换器。,12.2.3 A/D转换芯片介绍,1. 8通道8位A/D转换器ADC 0809 ADC 0809是CMOS的8位单片A/D转换器。片内有8路模拟开关,可控制选择8个模拟量中的一个。A/D转换采用逐次逼近原理。输出的数字信号有TTL三态缓冲器控制,故可直接连至数据总线。 (1) 主要功能 分辨率为8位; 总的不可调误差在12LSB1LSB范围内;, 转换时间为100s; 具有锁存控制的8路多路开关; 输出有三态缓冲器控制; 单一5V电源供电,此时模拟电压输入范围为05V; 输出与TTL兼容; 工作温度范围为-4085。,(2) ADC 0809功能方框图 AD

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号