Ch.8 模拟量的输入输出
本章内容模拟量输入输出通道的组成 D/A转换器
原理
A/D转换器
原理及连接使用方法
概述
模拟量I/O接口的作用:
实际工业生产环境——连续变化的模拟量
例如:电压、电流、压力、温度、位移、流量
计算机内部——离散的数字量
二进制数、十进制数
工业生产过程的闭环控制模拟量
传感器
A/D
数字量
计算机
数字量
D/A
模拟量
执行元件
模拟量输入 (数据采集)
模拟量输出 (过程控制)
8.1 模拟量I/O通道的组成输入通道工 业 生 产 过 物理量 变换 传 感 器 放大 滤波 多路转换 & 采样保持
A/D 转换
输入 接口
10101100
微 型
计 信号 处理 信号 变换 I/O 接口算 机 00101101
输出通道执行 机构 放大 驱动 D/A 转换 输出 接口
程
模拟电路的任务
模拟接口电路的任务
8.2 数/模(D/A)变换器
8.2.1 D/A变换器的基本原理及技术指标
D/A变换器的基本工作原理
组成:模拟开关、电阻网络、运算放大器 两种电阻网络:权电阻网络、R-2R梯形电阻网络 Rf 基本结构如图:模拟开关 电阻网络
数字量
∑
VO Vref
D/A变换原理
运放的放大倍数足够大时,输出电压VO与输 入电压Vin的关系为:
Rf VO = - Vin R式中:Rf 为反馈电阻 R 为输入电阻 R Vin∑
Rf
VO
R-2R梯形电阻网络Rf n-1 2 1 0
Vi
+
V0
2R Vref Vn-1 R…
2R R V2
2R R V1
2R 2R V0
8.3 模/数(A/D)转换器
用途
将连续变化的模拟信号转换为数字信号,以便 于计算机进行处理。常用于数据采集系统。 计数型A/D变换器 双积分型A/D变换器 逐次逼近型A/D变换器
类型
8.3.1 工作原理及技术指标
逐次逼近型A/D转换器的结构Vi
逐次变换 寄存器
…
D/A
比较器
…时序及控制逻辑 数字量输出
…
主要技术指标
精度
量化间隔(分辨率) = 满量程电压 A/D的最大数字量输出例:某8位ADC的满量程电压为5V,则其分辨率为 5V/255=19.6mV
量化误差: 用数字(离散)量表示连续量时, 由于数字量字长有限而无法精确地表示连续量 所造成的误差。(字长越长,精度越高)量化误差 = 量化间隔/2
主要技术指标(续)
转换时间转换一次需要的时间。精度越高(字长越 长),转换速度越慢。
输入动态范围允许转换的电压的范围。如0~5V、0~ 10V等。
典型的A/D转换器简介
ADC0809
8通道(8路)输入 8位字长 逐位逼近型 转换时间100μs 内置三态输出缓冲器
ADC0809内部结构START EOC CLK OE8 个 模 拟 输 入 通 道
IN7 8路模 拟开 8选1 关 IN0
时序与控制
逐位逼近寄存器 SAR
D7 三态 输出 锁存
器
比较器
ADDC ADDB ADDAALE
地址 锁存 及 译码
树状开关 D/A 电阻网络
D0
VREF(+)
VREF(-)
引脚功能D7~D0:输出数据线(三态) IN0~IN7:8通道(路)模拟输入 ADDA、ADDB、ADDC:通道地址(通道选择) ALE:通道地址锁存 START:启动转换 EOC:转换结束,可用于查询或作为中断申请 OE:输出允许(打开输出三态门) CLK:时钟输入(10KHz~1.2MHz) VREF(+)、VREF(-):基准参考电压
工作时序ADDA~
ADDC
①
ALE/START EOC
地址 ② 锁存
③
启动
④
OE D0~
转换时间
⑤
D7
ADC0809的工作过程
根据时序图,ADC0809的工作过程如下:①把通道地址送到ADDA~ADDC上,选择模拟 输入; ②在通道地址信号有效期间,ALE上的上升沿该 地址锁存到内部地址锁存器; ③START引脚上的下降沿启动A/D变换; ④变换开始后,EOC引脚呈现低电平, EOC重 新变为高电平时表示转换结束; ⑤OE信号打开输出锁存器的三态门送出结果 。
ADC0809与系统的连接
地址线ADDA-ADDC
多路输入时,地址线不能接死,而是要通过一个接口芯 片与数据总线连接。接口芯片可以选用:
锁存器74LS273,74LS373等(要占用一个I/O地址) 可编程并行接口8255(要占用四个I/O地址)
CPU用一条OUT指令把通道地址通过接口芯片送给 0809ADC0809 IN0 IN1 IN2 IN3 IN4 ADDC ADDB ADDA 输 入 8255 ADC0809 IN0 IN1 IN2 IN3 IN4 ADDC ADDB ADDA
DBA1 A0来自I/O 译码
D0-D7
74LS273
DB来自I/O 译码
D0-D7Q2 Q1 Q0
A1 A0 PB2 PB1 CS# PB0
CP
数据输出线D0-D7
内部已接有三态门,故可直接连到DB上 也可另外通过一个输入接口与DB相连ADC0809
74LS244
ADC0809 D0-D7
DB
D0-D7
DB来自I/O 译码
DO E1# E2#
DI
来自I/O 译码
OE
+5V
OE
直接连DB
通过输入接口连DB
地址锁存ALE和启动转换START
两种连接方法:
独立连接:用两个信号分别进行控制——需占用两个I/O端口 或两个I/O线(用8255时); 统一连接:用一个脉冲信号的上升沿进行地址锁存,下降沿 实现启动转换——只需占用一个I/O端口或一个I/O线(用 8255时).ADC0809 ADC0809
来自I/O 译码1 来自I/O 译码2
ALE START 来自I/O 译码
ALE START
独立连接
统一连接
转换结束EOC
软件延时等待(比如延时1ms)——不用EOC信号
CPU效率最低
软件查询EOC状态
EOC通过一个三态门连到数据总线的D0(其他也可以) 三态门要占用一个I/O端口地址 CPU效率低在中断服务程序中读入转换结果,效率高
把EOC作为中断申请信号,接到8259的IRQ端
系统总线D0~D7 A0 A1 IOR IOW A15 A14 A13 A12 A11 A10 A7 A2 A9 A8 A6 A5 A4 A3 D0~D7 A0 A1 RD WR PA0~PA7 PC1 EOC D0~D7 IN0
PB0PB1 PB2
ADDAADDB ADDC
~
IN7
+&CS PB4 PB5
START ALEOE
8255 &
ADC0809
程序:循环采样MOV DX,8255CNTL MOV AL,91H OUT DX,AL ;均为方式0,A入,B出,C下半入 MOV BL,0 ;通道号,指向第0路 MOV CX,8 AGAIN: MOV AL,BL MOV DX,8255PB OUT DX,AL ; 送通道地址 OR AL,10H ;送ALE上升沿 OUT DX, AL