1、 1-1-在工业生产中,往往要对许多自然信号进行在工业生产中,往往要对许多自然信号进行研究,例如温度、压力、流量等,称为模研究,例如温度、压力、流量等,称为模拟量。拟量。这些模拟量是一些时间连续、取值连续的物这些模拟量是一些时间连续、取值连续的物理量,不能直接被计算机处理;理量,不能直接被计算机处理;必须先转化成离散的数字信号,再输入计算必须先转化成离散的数字信号,再输入计算机识别和处理;机识别和处理;又必须把计算机发出的控制命令等转化为模又必须把计算机发出的控制命令等转化为模拟信号,去驱动模拟调节执行机构。拟信号,去驱动模拟调节执行机构。这两个过程,都需要数这两个过程,都需要数/模和模模和模
2、/数转换接口来数转换接口来完成。完成。2第六章第六章 模拟量输入输出模拟量输入输出主要内容:主要内容:数数/模模(D/A)(D/A)转换转换 及及 典型的典型的D/AD/A转换器转换器 DAC1210 DAC1210 和和 DAC0832DAC0832;模模/数数(A/D)(A/D)转换转换 及及 典型的典型的A/DA/D转换器转换器 ADC0809 ADC0809 和和 AD1674AD1674(AD574AD574)。)。要点:要点:u输入、转换及输出是如何控制的输入、转换及输出是如何控制的?3第六章 模拟量输入输出6.1 模拟量输入与输出通道的组成 P318图图6.1 模拟量输入、输出通
3、道结构框图模拟量输入、输出通道结构框图模拟接口电路的任务模拟接口电路的任务模拟电路的任务模拟电路的任务0010110110101100工工业业生生产产过过程程传传感感器器放大放大滤波滤波多路转换多路转换&采样保持采样保持A/D转换转换放大放大驱动驱动D/A转换转换输出输出接口接口微微型型计计算算机机执行执行机构机构输入输入接口接口物理量物理量变换变换信号信号处理处理信号信号变换变换I/O接口接口输入通道输入通道输出通道输出通道变变送送器器 4n传感器(传感器(Transducer)非电量非电量电压、电流电压、电流 常用传感器的分类常用传感器的分类 传感器的种类很多,应用十分广泛。按可以被测量的
4、性质分为传感器的种类很多,应用十分广泛。按可以被测量的性质分为热工量、机械量、物性合成分量和状态量。热工量、机械量、物性合成分量和状态量。(1)热工量)热工量 包括温度、温差、压力、压差、流量、流速、风速等传感器。包括温度、温差、压力、压差、流量、流速、风速等传感器。(2)机械量)机械量 包括力、速度、加速度、几何尺寸、振动、光洁度、产品计数包括力、速度、加速度、几何尺寸、振动、光洁度、产品计数等传感器。等传感器。(3)物性合成分量)物性合成分量 包括气体化学成分、液体化学成分、酸碱度(包括气体化学成分、液体化学成分、酸碱度(PH值)、咸度、值)、咸度、浓度、粘度、密度等。浓度、粘度、密度等。
5、(4)状态量)状态量 包括颜色、透明度、磨损量、气体泄漏、表面质量等。包括颜色、透明度、磨损量、气体泄漏、表面质量等。此外,还可以按传感器输出量的性质、传感器的结构以及传感器此外,还可以按传感器输出量的性质、传感器的结构以及传感器的工作原理进行分类。的工作原理进行分类。5变送器(变送器(Transformer)转换成标准的电信号 6信号处理(信号处理(Signal Processing)放大、整形、滤波 多路转换开关(多路转换开关(Multiplexer)l多选一采样保持电路(采样保持电路(Sample Holder,S/H)l对高速变化的信号源,冻结时变信号的瞬时值,保证变换时信号恒定不变A
6、/D变换器(变换器(A/D Converter)l模拟量转换为数字量 7-7-D/A变换器(变换器(D/A Converter)数字量转换为模拟量数字量转换为模拟量低通滤波低通滤波 平滑输出波形平滑输出波形放大驱动放大驱动 提供足够的驱动电压,电流提供足够的驱动电压,电流 8D/A转换的工作原理10ni VO=DVR其中,VR为基准电压,D=Di2i,n为输入位数 式表明模拟输出与数字量输入成正比,一般D/A转换器都是依据该原理设计。D/A转换的形式较多,在集成电路中,一般采用电阻解码网络,其结构如图8-3所示。6.2 D/A(数/模)转换器 9D/A转换器结构 10运放的放大倍数足够大时,输
7、出电压运放的放大倍数足够大时,输出电压VO与输入与输入电压电压Vin的关系为:的关系为:VinRf VOR fOinRV=-VR 11若输入端有若输入端有n个支路个支路,则输出电压则输出电压VO与输入电压与输入电压Vi的关系为:的关系为:n0fini=1i1V=-RVRVinRf VOR1Rn 122R4R8R16R32R64R128R256RVrefRf VOS1S2S3S4S5S6S7S881810211iiniifiinifVSRRVRRVI7=Vref/(256R)I5=Vref/(64R)Vo=-Rf*(I1+I2+.)13如果每个支路由一个开关如果每个支路由一个开关Si控制,控制,
8、Si=1表示表示Si合合上,上,Si=0表示表示Si断开,则上式变换为断开,则上式变换为若若Si=1,该项对该项对VO有贡献;有贡献;若若Si=0,该项对该项对VO无贡献无贡献81810211iiniifiinifVSRRVRRV 14如果用8位二进制代码来控制图中的S1S8(Di=1时Si闭合;Di=0时Si断开),则不同的二进制代码就对应不同输出电压VO;当代码在0FFH之间变化时,VO相应地在 0(255/256)Vref之间变化;为控制电阻网络各支路电阻值的精度,实际的D/A转换器采用R-2R梯形电阻网络,它只用两种阻值的电阻(R和2R)。15所有开关断开,Vo=0 反馈电阻RfR当S
9、7闭合时,Vo=-(VRef/(256 R)Rf =-(1/256)VRef 多个开关闭合,各个贡献的Vo相加全部开关闭合,Vo=-255/256VRef 16 17 四位二进制数转换为模拟量为例,用T型电阻解码网络加运算放大器实现D/A转换,其结构如图8-4所示。T型电阻网络的D/A转换器 18用Di(i=3,2,1,0)控制电子开关Ki,当Di=0时,Ki接通“地”;当Di=1时,Ki接通运算放大器的“虚地”。无论Ki接至何处,A、B、C、D点的等效电阻均为R。其中:D=Di2i=D323+D222+D121+D020 VD=VREF VC=VREF/2 VB=VREF/4 VA=VREF
10、/8 I0=VD/2R=VREF/2R I1=VC/2R=VREF/4R I2=VB/2R=VREF/8R I3=VA/2R=VREF/16R 30i 19所以有:I=Di Ii=D VREF/(24R)VO=Rf I=D Rf VREF/(24R)于是对于 n 位二进制数 D,则有:I=Di Ii=D VREF/(2nR)VO=Rf I=D Rf VREF/(2nR)30i1n0i【例】有一8位D/A转换器,其基准电压VREF为-10V,若当输入量全0时、全1时模拟输出电压是多少?若输入量为10101010时,模拟输出电压是多少?若输入全 0,则 VO=0。若输入全 1,则 VO=D Rf
11、VREF/(28R)=(27+26+25+24+23+22+21+20)10/28=9.96V 若输入为 10101010,则 VO=D Rf VREF/(28R)=(27+25+23+21)10/28=6.64V 20 21数字量0 对应 VI=0,VOUT=-VRef数字量80H 对应 VI=-1/2VRef,VOUT=0 数字量0FFH 对应 VI=-VRef,VOUT=VRef双极性输出和偏移码 P323 图6.7这种称为偏移的二进制编码,在双极性的A/D、D/A应用VOUT=-R4*(V1/R2+VRef/R3)(设 R4=R3=2R2)=-(2V1+Vref)22 23 248位D
12、/A转换器与CPU的典型连接OUT DR,AL1:写入(相通,对写入(相通,对DR端口执行端口执行IO输出时)输出时)0:锁存(断开)锁存(断开)8D锁存器,如锁存器,如74LS273 25DAC0832主要特性电流输出型D/A转换器。数字输入端具有双重缓冲功能,与所有通用微处理器可直接接口。可以工作在双缓冲、单缓冲或直通数字输入。满足TTL电平规范的逻辑输入。分辨率为8位,满刻度误差+1LSB,建立时间为ls,功耗20mW。26DAC0832 逻辑结构框图1:写入写入0:锁存锁存1:写入写入0:锁存锁存 27DAC0832 8位双缓冲电流输出型D/A转换器件 控制信号:ILECS WR1=1
13、,DI 输入寄存器 =0,输入寄存器锁存WR2 XFER=1,输入寄存器 转换 =0,转换寄存器锁存工作方式:双缓冲、单缓冲、直通接口要求:以双缓冲方式为例 分别送出有关信号(两个译码加IOW),CPU用2个I/O地址、执行2条OUT指令 28 直通方式。直通方式。当当CS、WR1、WR2、XFER都接数字地,都接数字地,ILE接高电平时,芯接高电平时,芯片即处于直通状态片即处于直通状态 单缓冲方式。单缓冲方式。此方式是使两个寄存器中任一个处于直通状态,另一个工作此方式是使两个寄存器中任一个处于直通状态,另一个工作于受控锁存器状态或两个寄存器同步受控于受控锁存器状态或两个寄存器同步受控 双缓冲
14、方式。双缓冲方式。双缓冲方式的一大用途是数据接收和启动转换可以异步进行,双缓冲方式的一大用途是数据接收和启动转换可以异步进行,即在对某数据转换的同时,能进行下一数据的接收,以提高即在对某数据转换的同时,能进行下一数据的接收,以提高转换速率转换速率 29双缓冲方式数据经过双重缓冲后再送入D/A转换电路,执行两次写操作才能完成一次D/A转换。该方式可在D/A转换的同时进行下一个数据的输入,提高了转换速率。更为重要的是,这种方式特别适用于要求同时输出多个模拟量的场合。此时,要用多片DAC0832组成模拟输出系统,每片对应一个模拟量。如图8-7所示。30在这种方式下,需要执行两条输出指令才能启动D/A
15、转换器,若DAC0832输入寄存器端口地址为n,DAC寄存器的端口地址为n+1,则完成数字量到模拟量的转换需要如下指令。MOV DX,nOUT DX,AL;打开输入寄存器,数据装入并锁存INC DXOUT DX,AL;打开DAC寄存器,数据通过,送D/A转换器 第一条输出指令打开DAC0832的输入寄存器,把AL中的数据送入输入寄存器并锁存起来。第二条输出指令打开DAC0832的DAC寄存器,使输入寄存器的数据通过DAC寄存器送D/A转换器中进行转换,此时,AL中数值与转换结果无关,该指令执行时实际上无CPU的数据输出给DAC寄存器,而是利用执行指令时出现的I/O写信号打开DAC寄存器。31单
16、缓冲方式若不需要多个模拟量同时输出时,可采用单缓冲方式。此时,两个寄存器之一处于直通状态,输入数据只经过一级缓冲送入D/A转换电路。该方式只需执行一次写操作,即可完成D/A转换 在这种方式下,若DAC0832端口地址为n,则完成数字量到模拟量的转换需要如下指令。MOV DX,nOUT DX,AL 32D7D0IOWA9A0AEN系系统统总总线线DI07 WR1ILECSDAC0832译译码码器器WR2XFERDGND VerfRfbI01I02AGND+-AR+5VVout DAC0832单缓冲方式连接单缓冲方式连接+5V200H 33直通方式在直通方式时,两个寄存器处于直通状态,需要将 端都
17、接数字地,ILE接高电平。数据直接送入D/A转换电路进行D/A转换。该方式可用于一些不采用微型计算机的控制系统中。CS1WR2WRXFER、341.1.单极性反向输出单极性反向输出-+Rf bVoutiIOUT1IOUT2AGNDDAC0832VOUT i R fbRf b 352.2.单极性同向输出单极性同向输出+-iIOUT1DAC0832RVoutVinR1R2IOUT2VinIVoutI正向比例放大:363.3.双极性输出双极性输出-A1+VoutIOUT1IOUT2DAC0832Rf bVR E FVR E FD0D1D2D3D4D5D6D7R-A2+2R2RVR E FV1加法电路
18、(输出反相)加法电路(输出反相)VOUT2(V1)VREF双极性双极性 V Voutout=2V=2VREFREF/2/2n nD-VD-VREFREF 37 38DAC0832D/A转换器应用利用D/A转换器可以产生各种波形,如方波、三角波、锯齿波等,以及它们组合产生的复合波形和不规则波形。这些复合波形利用标准的调试设备是很难产生的。硬件设计可利用图8-9提供的接口,程序如下:锯齿波 MOV DX,21BH;8255A控制端口地址MOV AL,82HOUT DX,AL;设置8255A端口工作方式为0,输出MOV DX,218H;8255A端口A地址MOV AL,00H;输出数据初值LOP:O
19、UT DX,AL;产生锯齿波INC ALJMP LOP 程序中,输入的数据从0开始逐渐增大,至0FFH后再恢复到0,重复此过程,即可得到正向锯齿波,若数据从0FFH逐渐减小至0,则形成负向锯齿波。39三角波利用正、负向锯齿波组合,可产生三角波。MOV DX,21BH;8255A控制端口地址MOV AL,82HOUT DX,ALL:MOV DX,218HMOV AL,00H;输出数据正向初值L1:OUT DX,ALINC AL JNZ L1MOV AL,0FFH;输出数据负向初值L2:OUT DX,ALDEC AL JNZ L2 JMP L 40 41 42(3)方波MOV DX,21BH;82
20、55A控制端口地址MOV AL,82H OUT DX,ALMOV DX,218H REP:MOV AL,00H OUT DX,AL;输出低电平CALL WAIT;输出延时MOV AL,0FFH OUT DX,AL ;输出高电平CALL WAITJMP REP 其中,WAIT为延时子程序,通过延时时间确定方波宽度。43+5VD7D0IOW地址总线地址译码320H321H+5VILEVREFDI7DI0DAC0832VCCRfbIOUT1IOUT2WR1WR2CSXFERAGNDDGND_+DAC 0832与与8位微处理器的连接例位微处理器的连接例V0 44MOV DX,320H ;指向输入寄存器
21、MOV AL,DATA ;DATA为被转换的数据OUT DX,AL ;数据打入输入寄存器 INC DX ;指向DAC寄存器OUT DX,AL ;选通DAC寄存器,启动D/A转换设CS的端口地址为320H,XFER的端口地址为321H。编写数据通过DAC0832进行D/A转换输出的程序段。45-1:写入写入0:锁存锁存1:写入写入0:锁存锁存1:写入写入0:锁存锁存 46 12位双缓冲电流输出型D/A转换器件 控制信号:CS、WR1同为0时:若B1/B2=1,写12位 若B1/B2=0,只写低4位 WR2、XFER同为0,输入寄存器 转换 接口要求分别产生以上有关信号:3个译码加IOW,CPU分
22、别用3个I/O 地址执行3条OUT指令。DAC1210 47接口电路 P330图6.14 48 接口电路 用250H地址写高8位(同时写低4位,但随后又覆盖了,最后仅高8位的保留有效)用251H地址写低4位(重写低4位)注意低4位接数据总线的高4位 用252H地址启动12位转换。程序中的12位数据要和接口电路一致。49驱动程序 mov DX,250H mov CL,4 shl BX,CL ;设BX中原低12位为待转换的数据 mov AL,BH out DX,AL ;写入高8位 inc DX ;DX=251H mov AL,BL ;置低4位数据,在AL的高4位上 out DX,AL inc DX ;DX=252H out DX,AL ;启动 D/A ;只用来产生控制信号,;数据总线上的数据无关(空写)