《微机原理与接口技术第13章(XP)》由会员分享,可在线阅读,更多相关《微机原理与接口技术第13章(XP)(49页珍藏版)》请在金锄头文库上搜索。
1、第12章 第12章模拟接口 教学重点DAC0832及其与主机的连接ADC0809及其与主机的连接 模拟量与数字量 模拟量 连续变化的物理量 这里的连续有时间上的连续以及空间上的连续 数字量 时间和数值上都离散的量 12 1模拟输入输出系统的基本概念 采样保持器 周期性地采样连续信号 并在A D转换期间保持不变 多路开关 把多个现场信号分时地接通到A D转换器 低通滤波器 用于降低噪声 滤去高频干扰 以增加信噪比 放大器 把传感器输出的信号放大到ADC所需的量程范围 传感器 将各种现场的物理量测量出来并转换成电信号 模拟电压或电流 1 采样 模拟信号是一个连续的时间函数 如图 a 而计算机只能接
2、受离散的数字量 因而要对连续信号采样 采样就是周期性地取连续信号的瞬时值 如图 b 采样后的脉冲序列是离散信号 称为采样信号 0 1T 2T 各时间点称为采样时刻 T为采样周期 采样频率为1 T 由于A D转换需要一定的时间 因此 采样后的信号必须保持 时间以维持到转换结束 就称为保持时间 一 采样 量化和编码 2 量化 采样后的信号 时间上是离散的 但它的值仍是连续的 将采样后的信号值 变成计算机能接受的数字量数据 称为量化 如一台字长为4位的计算机 它能接收的数字代码只能是0000 0001 0010 1111这16种 进行量化时每种代码对应一个确定的模拟电平 然而 采样值并不一定就是某一
3、代码所确定的模拟电平值 所以此时只能将采样值用一个最接近它的代码表示 图 c 为量化的示意图 从图中可以明显地看出 量化过程中必然会引入误差 称之为量化误差 量化误差的最大值是1 2个量化单位 量化单位是相邻的两个确定模拟电平之差 是量化过程中所能分辨的最小电压值 由此可见 要减少量化误差 可以选用位数较多的ADC 二 D A转换的基本原理 数字量是由代码按数值组合起来表示的 如1101B 1 23十1 22十0 21十1 20 13 数 模转换器的核心器件 常用的解码网络有权电阻解码网络 T型解码网络等 目前大多采用后者 欲将数字量转换成模拟量 必须先把每一位代码按其权的大小转换成相应的模拟
4、分量 然后将各模拟分量相加 其总和就是与数字量相应的模拟量 这就是D A转换的基本原理 按这一原理构成的转换器 主要由电阻网络 电子开关和基准电压组成 如下图 D A转换器的原理图 1 基准电压 电子开关 当该位为1时 开关将加权电阻与Ioutl输出端接通产生电流 当该位为0时 开关与Iout2端接通 虚地 D A转换器的原理图 2 整个电路由若干个相同的电路环节组成 每个环节有两个电阻和一个开关 由于Iout2接地 Ioutl为虚地 所以从a b c和d各点向右看的阻抗都是2R 这样各点的电压分别为 Va VREF Vb VREF 2 Vc VREF 4 Vd VREF 8 D A转换器的原
5、理图 2 当各位为1开关S接通Ioutl时 各点的电流为 I0 Vd 2R Vref 8 2RI1 Vc 2R Vref 4 2RI2 Vb 2R Vref 2 2RI3 Vc 2R Vref 1 2R总输出电流Iout1 I3 I2 I1 I0 Vref 2R 1 1 1 2 1 4 1 8 Vref 2R 23 22 21 20 23 Vref 24R 23 22 21 20 D A转换器的原理图 2 设开关S3 S0的状态为1010 则总输出电流Iout1为 Iout1 I3 I2 I1 I0 Vref 24R 1 23 0 22 1 21 0 20 由此通过解码网络在Iout1端得到了
6、一个与输入数字量成比例关系的电流 三 D A转换器特性及连接 D 转换器一般是根据自己的需要选择相应数据位宽度和速度的D A转换器芯片 在选择D A转换器芯片时一般考虑如下指标 1 分辨率 指D A转换器所能分辨的最小电压增量 或1个二进制增量所代表的模拟量大小 一般来说 D A转换器位数越多 其分辨率就越高 分辨率的表示式为 分辨率 Vref 2位数或分辨率 V REF V REF 2位数如 若Vref 5V 8位的D A转换器分辨率为5 256 20mV 2 转换时间 指数字量输入到模拟量输出达到稳定所需的时间 一般电流型D A转换器在几纳秒到几百微秒之内 而电压型D A转换器转换较慢 取
7、决于运算放大器的响应时间 3 精度 指D A转换器实际输出与理论值之间的误差 一般采用数字量的最低有效位 LSB 作为衡量单位 值为 1 2LSB 如D A分辨率为20mV 则精度为 10mV 4 线性度 当数字量变化时 D A转换器输出的模拟量按比例变化的程度 理想的D A转换器是线性的 但实际有一定的误差 模拟输出偏离理想输出的最大值称为线性误差 12 2 2DAC0832芯片 写信号1 在片选和允许输入两信号有效下 用它将数字输入量锁存于输入寄存器中 参考电压输入端 它的范围为 10V 10V 放大器反馈电阻引出端 允许输入锁存 写信号2 在传送控制信号 XFER 有效下 用它将输入寄存
8、器的数字传送到DAC寄存器 同时进入D A转换器开始转换 模拟电流输出1 它是逻辑电平为1的各位输出电流之和 DAC0832是典型的8位电流输出型通用DAC芯片 其外部引脚如下 12 2 2DAC0832芯片 DAC0832的内部结构如下 8位数字输入端DI0 DI7 DI0为最低位 输入寄存器 第1级锁存 的控制端ILE CS WR1 DAC寄存器 第2级锁存 的控制端XFER WR2 DAC0832有三种工作方式 连接方式 1 直通方式 2 单缓冲方式 3 双缓冲方式 DAC0832的工作方式 直通方式 LE1 LE2 1输入的数字数据直接进入D A转换器 输入端DI7 DI0一旦输出数据
9、就立即进行D A转换 这种方式不使用缓冲寄存器 不能直接与CPU或系统总线相连 可使其与8255相连 DAC0832的工作方式 单缓冲方式 接线图p275 LE1 1 或LE2 1两个寄存器之一始终处于直通状态 另一个寄存器处于受控状态 缓冲状态 如把WR2 XFER接地 使DAC寄存器处于直通状态 ILE接 5V WR1接CPU的IOW CS接I O地址译码器 针对CS进行数据写操作 数据写入后立即开始D A转换 DAC0832的工作方式 双缓冲方式 两个寄存器都处于受控 缓冲 状态 能够对一个数据进行D A转换的同时 输入另一个数据当ILE固定为十5V IOW连接到WR1和WR2上 CS作
10、为输入寄存器的选通信号 XFER作为DAC寄存器的选通信号 分别连接到两个I O地址的译码输出 数据写入时分两次进行 首先写入待转换的数字量到8位输入寄存器 然后进行虚拟写操作 产生XFER信号 用于将8位输入寄存器中的数据锁存到DAC寄存器 开始D A转换 双缓冲方式的优点是 在D A转换的同时 可接收下一个转换数据 从而提高了转换速度 采用单缓冲方式连接如图所示 ILE接十5V WR1接CPU的IOW CS接I O地址译码器 WR2 XFER接地 DAC0832的应用 TRG MOVDX 200HMOVAL 0TN OUTDX ALINCALJMPTN 利用DAC可实现任意波形 如锯齿波
11、三角波 正弦波等 的输出 如输出锯齿波的程序段如下 设DAC0832的端口地址为200H DAC0832的应用 输出锯齿波 输出三角波的程序段如下 TRG MOVDX 200HMOVAL 0TNl OUTDX ALINCALJNZTN1MOVAL 0FFHTN2 OUTDX ALDECALJNZTN2JMPTN1 利用上图所示的DAC0832单缓冲方式连接图 也可输出循环正弦波 由于DAC0832是一个单极性输出DAC芯片 因此在正弦波输出中应将0V平移到128数值上 其C语言控制程序如下 include includemain unsignedcharV0 128 VOUT inti whi
12、le kbhit i 0 while i 360 角度最大为360度 VOUT V0 128 sin 3 1419 i 180 计算每10度的正弦值outportb 0 x200 VOUT 输出i 10 2 12位DAC连接 由于8088的I O指令一次只能输出8位数据 因此对于数据宽度大于8位的DAC只能分两次输入数据 为此一般大于8位数据宽度的DAC内部均设计有两级数据缓冲 如12位DACl210内部就有两级数据缓冲 内部结构如下图所示 由于DACl210有两级数据缓冲电路 其控制逻辑与CPU兼容 因此DACl210可以与CPU直接相连 如下图所示 当译码器输出Y0 0 BYTE1 BYT
13、E2为高电平 CPU向DACl210写入高8位数据 当Y1 0 BYTEl BYTE2 0 CPU向DACl210写入低4位数据 当Y2 0 IOW 0时 则写入DACl210芯片的12位数据一起写入DACl210的DAC寄存器 进行D A转换 设译码器Y0端口地址为200H 用该电路产生连续锯齿波输出程序如下 MOVAX 0TN MOVBX AXMOVCL 4SHLAX CLMOVAL AH 高8位数据MOVDX 200HOUTDX AL 输出高8位数据MOVAX BXANDAL 0FH 屏蔽高4位INCDX 低4位端口地址201HOUTDX AL 输出低4位INCAX CMPAX 0FFF
14、HJNZTNMOVAX 0JMPTN 12 3A D转换器 模拟量 数字量 12 3 1A D转换的基本原理 存在多种A D转换技术 各有特点 分别应用于不同的场合4种常用的转换技术计数器式逐次逼近式双积分式并行式 1 计数器式 以最低位为增减量单位的逐步计数法 时钟复位 数字输出 比较器 模拟输入 计数器 D A转换器 比较方法 8255的PA口由零开始输出 DAC输出一个逐步升起的梯形电压 输入的模拟电压和DAC生成的电压被送至比较器进行比较 当二者一致或基本一致 在允许的量化误差范围内 时 比较器输出一个指示信号 立即停止向PA口输出 此时 DAC的输出值就是采样信号的模拟近似值 其相应
15、的数字量即为向PA口中写入的计数值 2 逐次逼近式 从最高位开始的逐位试探法 逐次逼近式 转换前 PA口各位清除为0 转换时 写入的数据先由最高位置1 DAC输出值与被测的模拟值进行比较 如果 低于 该位的1被保留 如果 高于 该位的1被清除 然后下一位再置1 再比较 决定是否保留 直至最低位完成同一过程 写入的数据从最高位到最低位都试探过一遍的最终值就是A D转换的结果 由于每次送出的比较数字量是前次的一半 所以也称为二分搜索法 两种方法相比较 计数器式采用以最低位为增减量单位的逐步计数法 而逐次逼近式采用从最高位开始的逐位试探法 对n位ADC 逐次逼近式只要n次比较就可完成转换 而计数器式
16、的比较次数不固定 最多可能需要2n次 3 双积分式 两个积分阶段实质是电压 时间变换 双积分型A D转换器是将输入电压变换成与平均值成正比的时间间隔 然后利用计数器测量时间间隔 如下图所示 双积分型A D转换器完成一次模 数转换需要三个阶段 积分 采样 K1导通 反积分 比较 K3导通 和结束阶段 K4导通 在对Vin进行积分的阶段 其积分时间是固定的 而在对反极性的标准电压 VR进行积分的阶段 其斜率是固定的 转换过程 积分阶段 K1导通 在每次转换开始时 控制逻辑使开关接向Vin 设它的输出电流为Iin 它正比于Vin 此电流使积分电容器C的两极被充电 积分电路的输出电压Vc逐渐升高 此正斜率持续一个固定时间后 控制逻辑使开关接向K2或K3 反积分阶段 K2或K3导通 当开关接向基准电压K2或K3后 计数器重新开始对时钟计数 设IR是VR的输出电流 它的大小是固定的 由于设置VR与Vin的极性刚好相反 故IR是反向充电电流 即积分电容的放电电流 当逐渐降低的Vc电压超过零点时 比较器的输出发生变化而使计数器停止计数 这个最终的数值与输入电压的幅值成正比 它即是A D转换的结果 双积