《第十二章DAAD转换器及其与CPU的接口》由会员分享,可在线阅读,更多相关《第十二章DAAD转换器及其与CPU的接口(22页珍藏版)》请在金锄头文库上搜索。
1、第十二章 D/A、A/D转换器及其与CPU的接口第十二章第十二章 D/AD/A、A/DA/D转换器及其与转换器及其与CPUCPU的接口的接口12.1 12.1 概述概述12.2 D/A12.2 D/A转换器芯片及其与转换器芯片及其与CPUCPU的接口的接口12.3 A/D12.3 A/D转换器芯片及其与转换器芯片及其与CPUCPU的接口的接口第十二章 D/A、A/D转换器及其与CPU的接口12.1 概概 述述 数数/ /模(模(D/AD/A)和模和模/ /数(数(A/DA/D)转换技术主要用转换技术主要用于计算机控制和测量仪表中。于计算机控制和测量仪表中。 典型的闭环实时控制系统为:典型的闭环
2、实时控制系统为: 第十二章 D/A、A/D转换器及其与CPU的接口12.2 D/A转换器芯片及其接口技术转换器芯片及其接口技术12.2.1 D/A12.2.1 D/A转换原理与基本参数转换原理与基本参数 数字量是由一位一位的数位组成的数字量是由一位一位的数位组成的, ,每个数位都代表一定每个数位都代表一定的权。的权。 D/AD/A转换时,就是把一个数字量的每一位代码按权的转换时,就是把一个数字量的每一位代码按权的大小转换为相应的模拟量分量,然后用线性叠加原理将各位大小转换为相应的模拟量分量,然后用线性叠加原理将各位代码对应的模拟输出量相加,其和就是与数字量成正比的模代码对应的模拟输出量相加,其
3、和就是与数字量成正比的模拟量。拟量。 在实现时,通常采用在实现时,通常采用T T型网络实现数字量往模拟电流的转型网络实现数字量往模拟电流的转换,再利用运算放大器来完成模拟电流到模拟电压的转换。换,再利用运算放大器来完成模拟电流到模拟电压的转换。所以,要把一个数字量转变为模拟电压,需要两个环节。有所以,要把一个数字量转变为模拟电压,需要两个环节。有些些D/AD/A转换器芯片只包含前一个环节,有些包含两个环节。对转换器芯片只包含前一个环节,有些包含两个环节。对于前一种,需外接运算放大器。于前一种,需外接运算放大器。 基本参数:基本参数: 分辨率分辨率 精度精度 线性度线性度 建立时间(转换时间)建
4、立时间(转换时间) 温度系数温度系数第十二章 D/A、A/D转换器及其与CPU的接口12.2.2 DAC1210转换器芯片及其接口转换器芯片及其接口1 1、内部结构、内部结构 第十二章 D/A、A/D转换器及其与CPU的接口2 2、工作方式、工作方式(1 1)单缓冲方式)单缓冲方式 将输入锁存器和将输入锁存器和DACDAC寄存器两级输入当作一级输入。硬寄存器两级输入当作一级输入。硬件连接如下:件连接如下: 第十二章 D/A、A/D转换器及其与CPU的接口(2 2)双缓冲方式)双缓冲方式 是将数据经输入锁存器和是将数据经输入锁存器和DACDAC寄存器两级输入到寄存器两级输入到D/AD/A转换转换
5、器。对于与器。对于与1616位数据总线连接时,分别看作两个端口予以控位数据总线连接时,分别看作两个端口予以控制,写两次。对于与制,写两次。对于与8 8位数据总线连接时,写三次。硬件连接位数据总线连接时,写三次。硬件连接如下:如下: 第十二章 D/A、A/D转换器及其与CPU的接口3 3、输出方式、输出方式 由于由于DAC1210DAC1210属于电流输出型的属于电流输出型的D/AD/A转换器,需用运算放大转换器,需用运算放大器将电流输出转换为电压输出。一般电压输出分为单极性和器将电流输出转换为电压输出。一般电压输出分为单极性和双极性两种。双极性两种。单极性输出方式:单极性输出方式: 双极性输出
6、方式:双极性输出方式: 第十二章 D/A、A/D转换器及其与CPU的接口4 4、应用举例、应用举例 例例1 1 如图所示如图所示, ,向向DAC1210DAC1210连续不断地输出数据连续不断地输出数据, ,即可得到相应的电压信号。即可得到相应的电压信号。设端口地址为设端口地址为PORT,PORT,编写产生连续方波的程序。编写产生连续方波的程序。 MOV DX,PORTLP:MOV AX,0 OUT DX,AX CALL RLY ;延时延时 MOV AX,0FFFH OUT DX,AX CALL RLY JMP LP第十二章 D/A、A/D转换器及其与CPU的接口 例例2 2 同上题同上题,
7、,编写产生连续三角波的程序。编写产生连续三角波的程序。 MOV DX,PORT XOR AX,AX W1:OUT DX,AX INC AX NOP CMP AX,0FFFH JNZ W1 W2:OUT DX,AX DEC AX NOP CMP AX,0 JNZ W2 JMP W1第十二章 D/A、A/D转换器及其与CPU的接口 例例3 3 同上题同上题, ,编写产生连续梯形波的程序。编写产生连续梯形波的程序。 MOV DX,PORT XOR AX,AX OUT DX,AX W3:CALL RLY1 W1:INC AX OUT DX,AX NOP CMP AX,0FFFH JNZ W1 CALL
8、 RLY2 W2:DEC AX OUT DX,AX NOP CMP AX,0 JNZ W2 JMP W3第十二章 D/A、A/D转换器及其与CPU的接口12.2.3 DAC与与CPU接口时应注意的问题接口时应注意的问题1 1、数据锁存问题、数据锁存问题2 2、模拟信号输出问题、模拟信号输出问题3 3、D/AD/A位数多于数据总线位数问题位数多于数据总线位数问题 (可采用两级锁存的办法)(可采用两级锁存的办法) 或或 第十二章 D/A、A/D转换器及其与CPU的接口12.3 A/D转换器芯片及其接口技术转换器芯片及其接口技术12.3.1 12.3.1 采样和量化采样和量化注意注意: :采样时必须
9、要符合采样定理采样时必须要符合采样定理, ,即采样频率即采样频率f f0 0大于等于输大于等于输入信号最高频率入信号最高频率f fm m的的2 2倍。倍。量化:以一定的量化单位,把离散的模拟信号转化为离散的量化:以一定的量化单位,把离散的模拟信号转化为离散的阶跃量的过程。通常用阶跃量的过程。通常用“四舍五入四舍五入”的方法使之整量化。的方法使之整量化。 第十二章 D/A、A/D转换器及其与CPU的接口12.3.2 A/D12.3.2 A/D工作原理工作原理12.3.3 A/D12.3.3 A/D性能参数性能参数 分辨率分辨率 量化误差量化误差 转换时间转换时间 精度精度 漏码漏码第十二章 D/
10、A、A/D转换器及其与CPU的接口12.3.4 ADC080912.3.4 ADC0809一、原理框图一、原理框图第十二章 D/A、A/D转换器及其与CPU的接口二、应用举例二、应用举例1 1、查询法、查询法第十二章 D/A、A/D转换器及其与CPU的接口 假设仅对模拟通道假设仅对模拟通道IN0进行进行A/D转换。采用查询方式的程转换。采用查询方式的程序如下序如下(对对0通道采样一个点通道采样一个点): OUT 50H,AL ;选通选通IN0,启动启动A/D转换转换 NOPW: IN AL,41H ;输入输入EOC标志标志 TEST AL,01H JZ W ;未结束,返回等待未结束,返回等待
11、IN AL,49H ;结束,把结果送入结束,把结果送入AL中中第十二章 D/A、A/D转换器及其与CPU的接口 若对若对IN0IN78个通道的模拟量各采样个通道的模拟量各采样100个点:个点: MOV BX,OFFSETWP ;设置数据存储指针设置数据存储指针 MOV CL,100 ;设置计数初值设置计数初值N:MOV DX,0050HP:OUT DX,AL ;选通一个通道,启动选通一个通道,启动A/D NOPW:IN AL,41H ;输入输入EOC标志标志 TEST AL,01H ;测试状态测试状态 JZ W ;未结束,返回等待未结束,返回等待 IN AL,49H ;结束,读数据结束,读数据
12、 MOVBX,AL ;存数存数 INC BX ;修改存储地址指针修改存储地址指针 INC DX ;修改修改A/D通道地址通道地址 CMP DX,0058H ;判断判断8个通道是否转换完个通道是否转换完 JNZ P ;未完,返回启动新通道未完,返回启动新通道 DEC CL ;100个点是否采样完了,个点是否采样完了, JNZ N ;未完返回再启动未完返回再启动IN0 HLT ;100个点完了,暂停个点完了,暂停 第十二章 D/A、A/D转换器及其与CPU的接口2 2、中断法、中断法第十二章 D/A、A/D转换器及其与CPU的接口 假设假设ADC0809端口地址为端口地址为98H,仅对模拟通道仅对
13、模拟通道IN3进行进行A/D转换。采用中断响应法的程序为转换。采用中断响应法的程序为 CLI MOV AL,03H OUT 98H,AL ;选通选通IN3,并启动并启动A/D转换转换 NOP NOP STI 而在中断服务程序中用一条指令而在中断服务程序中用一条指令 IN AL,98H ;读取转换结果的数字量读取转换结果的数字量第十二章 D/A、A/D转换器及其与CPU的接口 若对若对IN0IN7 8个通道的模拟量各采样个通道的模拟量各采样100个点,并转换成数字量采用个点,并转换成数字量采用中断方式中断方式8259A边沿触发,自动结束,非缓冲方式,单片使用中断类型码边沿触发,自动结束,非缓冲方
14、式,单片使用中断类型码为为7077H,偶地址假设为偶地址假设为20H,奇地址为奇地址为21H的程序如下的程序如下(伪指令省略伪指令省略):WP DB 800DUP(?)(?) MOVAL,13H;ICW1 OUT 20H,AL MOV AL,70H;ICW2 OUT 21H,AL MOV AL,03H;ICW4 OUT 21H,AL PUSH DS MOV AX,0 MOV DS,AX MOV BX,OFFSET XY MOV SI,SEG XY MOV01CCH,BX MOV01CEH,SI POP DS MOV CX,100 MOV DI,0FFSET WP STIPP:MOVBL,00H
15、LL:MOV AL,BL OUT 98H,AL HLT INC BL CMP BL,08H JNZ LL DEC CX JNZ PP HLT中断服务程序:中断服务程序:XY:PUSH AX STI IN AL,98H MOVDI,AL INC DI CLI POP AX IRET第十二章 D/A、A/D转换器及其与CPU的接口举例举例 利用利用8255A8255A间接与间接与08090809接口,接口图如图接口,接口图如图12.412.4所示。所示。采用查询方式,编写转换通道采用查询方式,编写转换通道IN5IN5的模拟量的程序。的模拟量的程序。第十二章 D/A、A/D转换器及其与CPU的接口解
16、解 由接口图分析可知由接口图分析可知8255A8255A的的A A口、口、B B口、口、C C口和控制口口和控制口的地址分别为的地址分别为90H90H、94H94H、98H98H、9CH9CH,程序片段如下:,程序片段如下: ;82558255初始化初始化 MOV ALMOV AL,10011000B10011000B OUT 9CH OUT 9CH,ALAL ;A/DA/D转换转换 MOV ALMOV AL,05H05H OUT 94H OUT 94H,AL AL MOV AL MOV AL,01H01H OUT 9CH OUT 9CH,ALAL MOV AL MOV AL,0 0 OUT 9CH OUT 9CH,ALAL NOP NOP NOP NOP W W:IN ALIN AL,98H 98H TEST AL TEST AL,00100000B00100000B JZ W JZ W MOV AL MOV AL,00000101B00000101B OUT 9CH OUT 9CH,ALAL IN AL IN AL,90H 90H MOV BL MOV BL,AL AL MOV AL MOV AL,00000100B 00000100B OUT 9CH OUT 9CH,ALAL