微机原理与接口技术(八)
- 模拟量输入输出通道
- D/A转换器
- A/D转换器
模拟量输入输出通道
模拟量I/O通道:
见图160
模拟量的输入通道中的主要部件
- 传感器(Transducer)
- 非电量→电压、电流
- 变送器(Transformer)
- 转换成标准的电信号
- 信号处理(Signal Processing)
- 放大、整形、滤波
- 多路转换开关(Multiplexer)
- 多选一
- 采样保持电路(Sample Holder,S/H)
- 保证变换时信号恒定不变
- A/D变换器(A/D Converter)
- 模拟量转换为数字量
模拟量的输出通道
- D/A变换器(D/A Converter)
- 数字量转换为模拟量
- 低通滤波
- 平滑输出波形
- 整型、放大、驱动
- 提供足够的驱动电压,电流
闭环控制系统应用案例
水泥厂增湿塔出口温度控制系统
见图161
无线传感器接口
见图162
D/A转换器
- D/A转换器的基本工作原理
- D/A转换器的主要技术指标
- 典型D/A转换器芯片及应用
1.D/A转换器的基本工作原理
- 组成
- 模拟开关
- 电阻网络
- 运算放大器
见图163
基本变换原理
- 当运放的放大倍数足够大时,输出电压VO与输入电压Vin的 关系为:
- V0 = - Rf / R * Vin
见图164
- 若输入端有n个支路, 则输出电压VO与输入电压Vi的关系为:
- V0 = - Rf ∑ 1/Ri * Vin
见图165
n=8 的权电阻网络
见图166
如果每个支路由一个开关Si控制,Si=1表示Si合上,Si=0表 示Si断开,则上式变换为
- V0 = - ∑ 1/2^i^ * SiVref
- 若Si=1,该项对VO有贡献
- 若Si=0,该项对VO无贡献
- V0 = - ∑ 1/2^i^ * SiVref
如果用8位二进制代码来控制图中的S1~S8 (Di=1时Si闭合; Di=0时Si断开),则不同的二进制代码就对应不同输出电压VO
当代码在0~FFH之间变化时,VO相应地在 0~(255/256)Vref之间变化
为控制电阻网络各支路电阻值的精度,实际的D/A转换器采用 R-2R梯形电阻网络,它只用两种阻值的电阻(R和2R)。
实际的D/A转换器——R-2R梯形电阻网络
见图167
2.主要技术指标
分辨率(Resolution)
- 输入的二进制数每±1个最低有效位 (LSB,Least Significant Bit) 使输出变化的程度。
分辨率表示方法:
- 可用输入数字量的位数来表示,如8位、10位等;
- 也可用一个LSB 使输出变化的程度来表示。
例:
- 一个满量程为5V的10位D/A变换器的分辨率为:
- 5/(2^10^-1) = 5/1023= 0.04888V= 48.88mV
转换精度(误差)
实际输出值与理论值之间的最大偏差
- 影响转换精度的因素:
- 分辩率、电源波动、温度变化…
转换时间
- 从开始转换到与满量程值相差±1/2 LSB所对应的模拟量所 需要的时间
见图168
3.典型D/A转换器DAC0832
- 特点
- 8位电流输出型D/A转换器
- T型电阻网络
- 差动输出
1)主要引脚功能
- 输入寄存器控制信号:
- D7~D0:输入数据线
- ILE:输入锁存允许
- #CS:片选信号
- #WR1:写输入锁存器
- DAC寄存器的控制信号:
- #WR2:写DAC寄存器
- #XFER:允许输入锁存器的数据传送到DAC寄存器
见图169
2)DAC0832的内部结构
见图170
3)工作模式
- 单缓冲模式
- 双缓冲模式
- 无缓冲模式
单缓冲模式
使输入锁存器或DAC寄存器二者之一处于直通,即芯片只占用一 个端口地址。
CPU只需一次写入即开始转换。写入数据的程序为:
1
2
3MOV DX,PORT
MOV AL,DATA
OUT DX,AL单缓冲模式应用例:
输入寄存器和DAC寄存器均需控制。
- 当输入寄存器控制信号有效时,数据写入输入寄存器中,并同时位 于DAC寄存器的输入端;
- 在DAC寄存器控制信号有效时,数据写入DAC寄存器,并启动变换。
此时芯片占用两个端口地址。
优点:
- 数据接收与D/A转换可异步进行
- 可实现多个DAC同步转换输出。
- 分时写入、同步转换
工作时序
见图172
双缓冲模式同步转换例:
见图173
1
2
3
4
5
6
7
8MOV AL,data
MOV DX,port1
OUT DX,AL ;0832-1的输入寄存器地址
MOV DX,port2
OUT DX,AL ;0832-2的输入寄存器地址
MOV DX,port3
OUT DX,AL ;DAC寄存器地址
HLT无缓冲器模式
使内部的两个寄存器都处于直通状态。模拟输出始终跟随输入变化。
不能直接与数据总线连接,需外加并行接口(如74LS373、8255等)。
4.D/A转换器的应用
- 信号发生器 → 向D/A转换器写入某种按规律变化的数 据,即可在输出端获得相应的各种波形
- 用于闭环控制系统
A/D转换器
用于将连续变化的模拟信号转换为数字信号的装置,简 称ADC,是模拟系统与计算机之间的接口部件。
A/D转换器类型:
- 计数型A/D转换器 → 速度慢、价格低,适用于慢速系统
- 双积分型A/D转换器 → 分辩率高、抗干扰性 好、转换速度慢,适 用于中速系统
- 逐位反馈型A/D转换器 → 转换精度高、速度 快、抗干扰性差。
要点:
- A/D转换器的一般工作原理
- A/D转换器的主要技术指标
- A/D转换器的应用
- 与系统的连接
- 数据采集程序的编写
1.A/D转换器的工作原理
逐位反馈型A/D转换器
类似天平称重量时的尝试法,逐步用砝码的累积重量去逼近被称物体
见图174
2.主要技术指标
转换精度
- 量化误差
- 量化误差=1/2 △
- 量化间隔(△)=Vmax /(2^n^-1)
- (2^n^-1)为字长
- 量化间隔(△)=Vmax /(2^n^-1)
- 量化误差=1/2 △
- 非线性误差
- 其它误差
- 量化误差
例:设满量程电压=10V,A/D变换器位数=10位,则:
- 其量化间隔(分辨率)= 10V / 1023 ≈ 9.78mV
- 量化误差 = 1 / 2 △ ≈ 4.89mV
其他指标
- 转换时间
- 实现一次转换需要的时间。精度越高(字长越长),转换速 度越慢。
- 动态范围
- 允许转换的电压范围
3.典型的A/D转换器芯片
- ADC0809:
- 8通道(8路)输入
- 8位字长
- 逐位逼近型
- 转换时间100μs
- 内置三态输出缓冲器
主要引脚功能
- D7~D0 → 输出数据线(三态)
- IN0~IN7 → 8通道(路)模拟输入
- ADDA、ADDB、ADDC → 通道地址
- ALE → 通道地址锁存
- START → 启动转换
- EOC → 转换结束状态输出
- OE → 输出允许
- CLK → 时钟输入(10KHz~1.2MHz)
内部结构
见图175
工作时序
见图176
ADC0809的工作流程
见图177
判断转换结束的方法
- 软件延时等待(比如延时120us)
- 此时不用EOC信号,CPU效率最低
- 软件查询EOC状态
- 查询控制方式
- 把EOC作为中断申请信号,接到中断控制器的IN端。
- 在中断服务程序中读入转换结果,效率较高
ADC0809的应用
- 硬件连接
- 通常情况下A/D转换器需要经数字接口与系统连接
- 数据采集程序设计
- 从数据采集到存储
ADC0809与系统的连接
- 一般需通过数字接口与系统连接
- 获取转换结果及状态信息(EOC)需通过输入接口
- 选择通道地址、输出地址锁存(ALE)及启动变换(START) 信号需通过输出接口
- 由于ALE和START信号的特点,通常将两者并联后,连接到数 字输出接口。
见图178
- 当仅采集单路模拟量时
- 此时通道可由硬件确定,系统无须输出通道地址,则也无须地址锁存。
- 当循环采集多路模拟量时
- 系统须通过软件方式循环输出不同的通道地址,及相应的地址锁存信号。
ADC0809与系统的连接例
单路模拟量输入:
见图179
多路模拟量输入:
见图180
循环数据采集程序流程
见图181
I/O接口系统综合设计示例详解I
- I/O数字接口
示例1
设某8253的端口地址范围为FFE8H—FFEBH,输入该芯片的时钟频率为2MHz。
要求
- 设计芯片与系统的接线图,并编写程序实现在OUT1产生周期为1s的连续方波。
题目分析
工作时钟频率:2MHz
8253端口地址:FFE8H—FFEBH
- 端口地址范围:1111 1111 1110 10XX
8253 OUT1端输出周期为1s的连续方波
- 计数初值:1s/0.5us=2000000
- 超出16bit计数器可存储的最大值,需要2个计算通道级联实现
- 计数初值:1s/0.5us=2000000
可以选择将外部时钟信号接入通道0的CLK0,其OUT0输出接入CLK1,作为通道1的时钟信号。
OUT0输出连续方波,工作频率设置为1KHz。
原则:两通道计算初值乘积=2000000
CLK0:2MHz,OUT0:1KHz,CNT0计数初值=2000
CLK1:1KHz,OUT1:1Hz,CNT1计数初值=1000
见图182
示例2
通过三态门循环检测OUT 0 端的状态
- 若为低电平 , 则等待
- 若为高电平,则读取拨段开 关的当前位置 ,并将开关的当前位置状态用七段数码管 显示出来 。
有任意键按下时 ,工作结束 。
分析:
- 由给定条件得8255 CNT0的计数初值:
- 1.148MHz/1Hz=1148000>65536
- 需要两级分频。可利用CNT1实现。
- 由给定条件得8255 CNT0的计数初值:
见图183
由图得7段数码管编码:
符号 “0” “1” “2” “3” “4” “5” “6“ ”7“ 七段码 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 8253输出端连接图:
见图184
CNT1的输出脉冲频率设置的原则:
- 使两级分频时的计数初值在允许范围内。
8253初始化程序:
见图185
I/O 控制程序
见图186
I/O接口系统综合设计示例详解II
- I/O数字与模拟接口
示例1:
- 某炉温控制电路原理图如图所示。图中,8位A/D转换器的输入模拟量范围为0~5V。要求将炉温控制在允许的范围内(其对应的上限值和下限值分别为MAX和MIN)。若低于下限或高于上限(超出阈值),则调用控制算法子程序F(X),将子程序运算的结果(在AL中)从8255的PB口输出,对炉温进行调节。否则,继续执行以上操作,直到有键按下时才退出。
见图187
硬件系统设计
8255接口地址范围: 0011 1010 0000 ~ 0011 1010 0011 (部分地址译码 )
硬件系统原理示意图:
见图188
题目分析:
A/D转换器为单路模拟量输入;
由A/D转换器工作时序,可得出其工作流程:
- 启动变换
- 若#EOC=0,则转换结束
- 使OE=1
- 读取转换结果。
见图189
程序控制流程
见图190
程序块
见图191
示例2
设计一个简单的水库水位监视系统。要求:
- 通过ADC0809的IN0端监测水位的高低。
- 系统始终监视水位的高低变化,水位到达最高点的90%时开始报警,扬声器 发出0.5秒500Hz和0.5秒1KHz交替变化的声音,报警灯点亮;
- 水位恢复正常后,系统不再报警。
设计:
- 利用8253产生音频报警信号。设地址范围:F814H~F817H
- 利用8255控制ADC0809的A/D转换和报警控制。地址范围:F800H~F803H
题目分析:
单路数据采集,无需设定通道地址,无需送地址锁存信号
∵ADC0809输入为最大模拟量值时,输出数字量=FFH。
∴水位到达最高点的90%时,对应的数字量是230(E6H)
扬声器发出0.5秒500Hz和0.5秒1KHz交替变化的声音
- 需要利用8253两个通道分别发出500Hz和1KHz频率的连续方波,另外一个通道产 生周期为0.5秒的连续方波信号作为上述两通道的选题控制信号。
- 8253的三个通道全部工作于方式3,计数初值
- 通道0 :50kHz/500Hz=100;
- 通道1:50kHz/1kHz=50;
- 通道2:50kHz/1Hz=50000
- 利用PC0启动报警(输出高电平启动)。
- 8253的三个通道全部工作于方式3,计数初值
- 需要利用8253两个通道分别发出500Hz和1KHz频率的连续方波,另外一个通道产 生周期为0.5秒的连续方波信号作为上述两通道的选题控制信号。
硬件系统设计
见图192
芯片初始化:
见图193
控制程序:
见图194
课程结束总结
主要内容
- 计算机基础知识
- 8088 微处理器与总线
- 8086 CPU指令集
- 汇编语言程序设计方法
- 半导体存储器及其接口设计
- 输入输出技术及输入输出接口
1.计算机基础知识
- 熟练掌握三种常用计数制及BCD码的表示及其相互间的转换
- ACCII码的概念
- 二进制数的算术运算
- 无符号数的运算
- 补码的运算
- 溢出问题
- 逻辑运算、逻辑门和译码器
2.微处理器
微型计算机系统组成
8088CPU主要引线的功能
8088CPU的内部结构和工作原理
8088CPU时序
- 时钟周期、总线周期
内部寄存器组
- 内部寄存器种类、数量、功能及其内容的含意
存储器寻址
- 段基地址,偏移地址,逻辑地址,物理地址,编址方式
了解总线的基本概念
3.8086指令系统
- 8种寻址方式
- 指令系统
- 数据传送类
- 算术运算类
- 逻辑运算和移位
- 串操作
- 程序控制
- 处理器控制
指令系统
- 指令格式
- 单操作数,双操作数,零操作数
- 各指令对操作数的要求
- 指令的执行原理
- 串操作指令,转移和调用类指令,循环类指令
4.汇编语言程序设计
- 汇编程序设计过程
- 汇编语言源程序的结构
- 操作数中的数据项和表达式
- 伪指令
- DOS功能调用
- 简单汇编语言源程序的设计
5.存储系统
- 半导体存储器的分类及其特点
- Cache的基本概念
- 存储器系统设计
- 译码电路及其他控制信号
- 存储器扩展技术
6.输入输出技术及输入输出接口
- I/O接口、I/O端口的的概念和端口的编址方式
- 常用简单接口芯片及其应用
- 4种基本输入输出方法的特点
- 中断技术
- 可编程数字接口
- 模拟接口
设计实现简单I/O接口控制系统(I/O控制程序,硬联电路)