招生咨询08:00-24:00
微信公众号
咨询老师
一、概述
在实际工程中大量遇到的是连续变化的物理量。所谓连续,包括两方面的含义:一方面从时间上来说,它是随时间连续变化的;另一方面从数值上来说,它的数值也是连续变化的。这种连续变化的物理量通常称为模拟量。例如温度、压力、流量、位移、转速以及连续变化的电压、电流等等。而微型计算机只能处理数字量的信息,模拟接口的作用就是实现模拟量和数字量之间的转换。模/数(A/D)转换就是把输入的模拟量变为数字量,供微型计算机处理。数/模(D/A)转换就是将微型计算机处理后的数字量转换为模拟量形式的控制信号。
(一)控制系统中的模拟接口
微型计算机控制系统对所要监视和控制的生产过程的各种参数,如温度、压力等,必须先由传感器(Transducer)进行检测,并转换为电信号,然后经过数据放大器放大(这时输出一般为0~5V电平的模拟信号)。接着,通过A/D转换器将标准的模拟信号转换为等价的数字信号,再传送给微型机。微型机对各种信号进行处理后输出数字信号,再由D/A转换器将数字信号转换模拟信号,作为控制装置的输出去控制生产过程的各种参数。其过程如图7-45所示。
图7-45 微型机与控制系统的接口
图7-45中,传感器是把非电量的模拟量(如温度、压力、流量等)转换成电压或电流信号。因此,传感器也称为非电量转换器。常用的传感器有温度传感器、压力传感器。流量传感器、振动传感器和重量传感器等。根据传感器结构特点或物理效应,传感器又可分应变式(利用电阻应变片,将被测量转换成相应电阻输出)、电容式(利用弹性电极输入时,产生位移,使电容量发生变化)、压电式(利用压电材料物质效应,将被测量转换成电荷输出)和压阻式(利用半导体材料和集成电路工艺,输出电阻变化)等。随着人工智能计算机的深入研究,传感器也向着智能传感器方向发展,能把图像、声音等通过智能传感器直接输入计算机,使计算机具有视觉和听觉等能力。
量程放大器把微弱的传感器信号(通常为毫伏或微伏级)放大到A/D转换器所需的量程范围。
低通滤波器用来降低噪声,滤去不必要的干扰,以增加信噪比。
多路开关可以使多个模拟信号共用一个A/D转换器,这是因为模拟信号一般变化较缓慢,这样,可以用多路开关把多个模拟信号用一条通路来监视和控制。
由于模拟信号是连续不断地在变化,而A/D转换总需要一定时间,所以需要采样一保持电路(Sample/hold circuit)把转换的信号采样后还保持一段时间,以便给A/D转换器转换。
A/D转换器和D/A转换器则通过相应的A/D转换和D/A转换把模拟量转换成数字量和数字量转换成模拟量。
(二)采样一保持电路
采样一保持电路广泛应用于数据采集系统和实时控制系统中,它的功能有两种:
(1)采样跟踪状态:在此期间应尽可能快地接受输入信号,使输出和输入信号相一致。(2)保持状态:把采样结束前瞬间的输入信号保持下来,使输出和保持的信号一致
由于模/数转换需要一定时间,在此期间,要求模拟信号保持稳定,因此当输入信号变化速率较快时,都应采用采样一保持电路,如果输入信号变化缓慢,则可不用保持电路。
采样一保持电路的工作原理如图7-46所示。
图7-46 采样—保持电路的工作原理图
(a)电路图;(b)波形图
此电路由模拟开关K,存储元件C,运算放大器A所组成。模拟开关由数字指令控制,当数字指令为“1”时,模拟开关K接通,存储在C上的信号跟踪输入信号,经运算放大器输出,这就是采样过程。这段时间称为采样时间。当数字指令为“0”时,模拟开关K断开,存储电容C将K断开瞬间的输入信号保持下来,并通过放大器输出,即输出信号保持断开瞬间的输入信号,这个过程称为保持过程。这段时间称为保持时间。
微型计算机控制系统的特点是必须用采样开关将连续变化的模拟信号,转变为离散的脉冲序列。香农(Shannon)采样定理指出:当采样器的采样频率高于或等于连续信号的最高频率的两倍时,原信号才能通过采样器而无失真地复现出来。
(三)量化与编码
1. 量化
采样后的信号经量化后才能输入到计算机,采样信号经量化后成为数字信号的过程称力量化过程。
A/D转换就是量化的过程,它把采样后模拟信号转变成数字量。
图7-47就是量化的示意图。3位A/D转换器把模拟范围分割成8(23=8)个离散区间,可把0~7V的采样信号量化为数字量,如输入5V被量化为101数字代码,这样,就可输入给计算机进行加工处理。
从图中可以看出,量化过程会产生1/2LSB(即0.5V)的误差,要减少量化误差,一般是采取位数更多的A/D转换器,把模拟范围分割成更多的离散区间,以减少LSB(A/D转换器的最低二进制位)的值。
2. 编码
在量化过程中,对双极性(有正、负)信号通常有三种表示方法:
(1)符号一数值码,这类似于原码表示法。增加一位符号位,其他数值表示与单极性一样。通常,数值为正时,符号位用“0”表示;数值为负时,符号位为“1”。
(2)偏移二进制码,这是一种直接的二进制编码,用满刻度来加以偏移。符号位在正值(包括零在内)时,均为“1”,而在负值时均为“0”。这种编码常用于微型计算机的双极性模拟量转换。
(3)补码表示法。这种方法与计算机的补码表示方法相同,其符号位的特征正好和偏移二进制码相反。而数值部分相同。
后二种表示法无+0和-0之分,且在从正值变到负值或者相反变化时,变化的码位较少,较适合微型计算机的A/D转换之用。
表7-12列出了常用双极性编码法(三位加符号位)的代码。由于模拟信号要选择极性,故要正确建立代码与模拟信号之间的关系。“正基准”表示当数字值增加时,模拟信号向正方向增加,而“负基准”表示当数字值增加时模拟信号向负满度方向减小。
表7-12 常用的双极性编码
数 |
十进制分数 |
符号—数值 |
2的补码 |
偏移二进制 | |
正基准 |
负基准 | ||||
+7 |
+7/8 |
-7/8 |
0111 |
0111 |
1111 |
+6 |
+6/8 |
-6/8 |
0110 |
0110 |
1110 |
+5 |
+5/8 |
-5/8 |
0101 |
0101 |
1101 |
+4 |
+4/8 |
-4/8 |
0100 |
0100 |
1100 |
+3 |
+3/8 |
-3/8 |
0011 |
0011 |
1011 |
+2 |
+2/8 |
-2/8 |
0010 |
0010 |
1010 |
+1 |
+1/8 |
-1/8 |
0001 |
0001 |
1001 |
0 |
0+ |
0- |
0000 |
0000 |
1000 |
0 |
0- |
0+ |
1000 |
(0000) |
(1000) |
-1 |
-1/8 |
+1/8 |
1001 |
1111 |
0111 |
-2 |
-2/8 |
+2/8 |
1010 |
1110 |
0110 |
-3 |
-3/8 |
+3/8 |
1011 |
1101 |
0101 |
-4 |
-4/8 |
+4/8 |
1100 |
1100 |
0100 |
-5 |
-5/8 |
+5/8 |
1101 |
1011 |
0011 |
-6 |
-6/8 |
+6/8 |
1110 |
1010 |
0010 |
-7 |
-7/8 |
+7/8 |
1111 |
1001 |
0001 |
-8 |
-8/8 |
+8/8 |
|
(1000) |
(0000) |
(四)模/数转换器的性能指标
模/数转换器的性能指标常用一组基本参数来表示,主要有分辨率、精度和转换时间。
1. 分辨率
分辨率是指ADC对输入电压微小变化响应能力的度量。它是数字输出的最低位(LSB)所对应的模拟输入电平值,若输入电压的满刻度值为VFS,转换器的位数为n,分辨率为前一单元fix = v ns = "urn:schemas-microsoft-com:vml" />前一单元ferrelative="t" o:spt="75" coordsize="21600,21600"> ,当输入电压满刻度值为VFS=10V,则10位ADC的分辨率为10V/1024≈0.01V。模拟电压输入低于此值时,ADC不予响应。由于分辨率与转换器的位数n直接有关,所以常用位数来表示分辨率。
2. 绝对精度
绝对精度是指在输出端产生给定的数字代码,实际需要的模拟输入值与理论上要求的模拟输入值之差。例如指定一个数字量80H,理论上应输入5V电压才能转换成这个数,而实际上输入4.997~4.999V才能输出80H数字量,则绝对误差为(4.997+4.999)/2-5=2(mV)。
3. 相对精度
相对精度(又称线性度)是指满刻度值校准后,任意数字输出所对应的实际模拟输入值(中间值)与理论值(中间值)之差。注意这里是指在整个转换范围内的任一个数字输出值。
4. 转换时间
转换时间是指ADC完成一次转换所需的时间,即从启动信号开始到转换结束并得到稳定的数字输出量所需的时间。通常为微秒级。
一般约定,转换时间大于1ms的为低速,1ms~1μs的为中速,小于lμs的为高速,小于1ns的为超高速。
5. 量程
量程是指所能转换的输入电压范围。
二、模/数转换器集成芯片ADC0809
(一)芯片简介
ADC0809是CMOS的8位A/D转换器,采用逐次逼近式进行A/D转换。芯片内有一个8路模拟开关,一个比较器,一个带有树状模拟开关的256R分压器和一个逐次逼近的寄存器,其内部逻辑框图如图7-48所示。ADC0809有八路模拟量输入通道。ALE为地址锁存信号,高电平有效时,ADDC~ADDA被锁存,从而可通过对ADDC、ADDB、ADDA三端输入的地址译码,选通八路模拟量输入(IN0~IN7)的任意一路进入片内进行A/D转换。
图7-48 ADC0809内部逻辑框图
树状开关和256R分压器组成一个基本D/A转换器。当给ADC0809一个启动信号(START)后,通过控制与时序电路以及逐次逼近寄存器,采用逐步逼近的方式进行A/D转换。
ADC0809的START是A/D转换启动信号高电平有效,EOC是转换结束信号,当A/D转换完毕,EOC的高电平可用作中断请求信号。
ADC0809转换后的数字量通过三态缓冲器输出,当输出允许OE=“1”时,打开三态输出门输出数字量。
输入ADC0809的模拟信号是单极性的(0~+5V)。在实用中,输入信号有时是双极性的(-5~+5V),此时可采用图7-49所示双极性模拟输入电路。
图7-49 ADC0809双极性模拟输入电路图
(a)信号源内阻小时;(b)信号源内阻大时
若信号源内阻较小,有一定负载能力,可用图7-49(a),否则可用图7-49(b)的接线。
(二)ADC0809同微处理器的连接
1. 直接连接
由于ADC0809具有三态输出缓冲器,所以它能同微处理器(或微机总线)直接相连,如图7-50所示。
图7-50 ADC0809直接与微处理器连接
图中,地址译码器的输入 (地址为84H~87H)与 经过或非门2控制0809的起动信号START和通道地址锁存允许信号, 与 经过或非门1使0809的输出允许信号有效,通道地址选择信号ADDC、ADDB和ADDA同数据总线D2、D1、D0相连。本例中转换结束信号EOC未用,采用软件延时来等待转换结束,已知ADC0809的转换时间为100μs。则从输入通道IN7读入一个模拟量经ADC0809转换后进入微处理器的程序为
MOV AL,07H ;送输入通道号7
OUT 84H,AL ;并发出启动信号
CALL DELAY100 ;等待转换结束,延时100μs
1N AL,84H ;转换结束,读入数据
HLT
若改用中断方式,则可将EOC信号作为中断请求号,在中断服务程序中读入转换后的数据。
2. 通过并行接口芯片同微处理器的连接
ADC0809通过并行接口芯片Intel 8255A与微处理器(或系统总线)相连的接口如图7-51所示。
图7-51 ADC0809通过8255A的接口
图中,地址译码器的输出 (地址为80H~83H)用来选通8255A, (地址为84H~87H)用来选通ADC0809。0809的START与ALE同8255A的PB4相连,EOC同PC7相连,数字量输出D0~D7同系统总线D0~D7相连。
则从输入IN0读入一个模拟量经ADC0809转换后送入微处理器的程序为
MOV AL,88H ;8255A初始化,0方式
OUT 83H,AL ;PB口输出,PC口高4位输入
MOV AL,00H ;取通道号0,且产生PB4为信号
OUT 81H,AL ;启动ADC0809转换
ADD AL,10H
OUT 81H,AL
SUB AL,10H
OUT 81H,AL
LOP: IN AL,82H ;检查EOC
TEST AL,80H
JZ LOP ;EOC=0,继续查询
IN AL,84H ;EOC=1,使0809的OE有效,允许输出
HLT ;读入数字量