1 / 50

8.3 A/D 转换器及接口技术

8.3 A/D 转换器及接口技术. 8.3.1 A/D 转换器概述 在大规模集成电路高速发展的今天,由于计算机控制技术在工程领域内的广泛应用, A/D 转换器在应用系统中占据着重要的地位。为了满足各种不同的检测及控制任务的需要,大量结构不同,性能各异的 A/D 转换电路应运而生。尽管 A/D 转换器的种类繁多,但目前广泛使用的还是逐次比较式和双积分式。. 8.3.2 A/D 转换器的主要技术指标 A/D 转换器的主要技术指标如下: (1) 分辨率:指对输入模拟量变化的灵敏度。习惯上用输出二进制的位数或 BCD 码位数表示。

pennie
Download Presentation

8.3 A/D 转换器及接口技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 8.3 A/D转换器及接口技术 • 8.3.1 A/D转换器概述 • 在大规模集成电路高速发展的今天,由于计算机控制技术在工程领域内的广泛应用,A/D转换器在应用系统中占据着重要的地位。为了满足各种不同的检测及控制任务的需要,大量结构不同,性能各异的A/D转换电路应运而生。尽管A/D转换器的种类繁多,但目前广泛使用的还是逐次比较式和双积分式。

  2. 8.3.2 A/D转换器的主要技术指标 • A/D转换器的主要技术指标如下: • (1) 分辨率:指对输入模拟量变化的灵敏度。习惯上用输出二进制的位数或BCD码位数表示。 • (2) 转换精度:指与数字输出量所对应的模拟输入量的实际值与理论值之间的差值。精度有绝对精度和相对精度两种表示方法。 • (3) 转换速率:指能够重复进行数据转换的速度,即每秒转换的次数,而完成一次A/D转换所需的时间(包括稳定时间),为转换速率的倒数。

  3. 8.3.3 AT89C51单片机与ADC0809接口应用 • 1. ADC0809内部结构及特性 • ADC0809是8位逐次比较式A/D转换器,其内部包括8位A/D转换器,8路模拟开关、三态输出锁存器以及地址译码器等。它可分别对8路0~5 V模拟量输入信号进行转换。输出量有三态锁存缓冲,可直接连到单片机的数据总线上。图8-10是ADC0809的内部结构图。

  4. 图8-10 ADC0809内部结构图

  5. 2. ADC0809引脚功能 • 图8-11是ADC0809的引脚图,引脚功能如下: • (1)  IN0~IN7:8路模拟量输的入端。 • (2)  2-1~2-8:8位数字量输出端口,2-1为最高有效位,2-8为最低有效位。 • (3)  START:启动控制输入端,加正脉冲,立即启动A/D转换。

  6. 图8-11 ADC0809引脚图

  7. (4)  ALE:地址锁存控制端。 • (5)  EOC:转换结束信号输出端。 • (6)  OE:输出允许控制端。 • (7)  CLK:时钟信号输入端。 • (8)  REF(+)、REF(-):参考电压输入端,一般REF(+)接VCC,REF(-)接GND。 • (9)  ADDA、ADDB、ADDC:8位模拟开关的3位地址选通输入端,用来选择对应的输入通道,其对应关系如表8-2所示。 • (10)  VCC和GND:电源端和接地端。

  8. ADDC ADDB ADDA 输入通道 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 • 表8-2 8路模拟开关功能表

  9. 3.AT89C51与ADC0809接口 • ADC0809与AT89C51的连接有三种方式:查询方式、中断方式和定时方式。应用时采用什么方式,应该根据具体情况来选择。 • 图8-12为单片机AT89C51与ADC0809的硬件电路图。该连接图既可作为中断方式,又可作为查询方式,通过软件编程,这两种方式都能够实现。

  10. 图8-12 AT89C51与ADC0809的接口图

  11. [例8.3] 用查询方式分别对8路模拟信号轮流采样一次,并依次把结果转存到以30H为首址的数据存储区,程序如下: • MAIN: MOV R1,#30H ;置数据区首址 • MOV DPTR,#0FFF8H ;指向IN0 • MOV R7,#08H ;置通道数 • LOOP:MOVX @DPTR,A ;启动A/D转换 • MOV R6,#05H ;软件延时 • DLAY: NOP • DJNZ R6,DLAY

  12. WAIT:JNB P3.2,WAIT • ;查询EOC是否为高,高则转换结束 • MOVX A,@DPTR;读取转换结果 • MOV @R1,A ;存取数据 • INC DPTR ;指向下一个通道 • INC R1 ;指向下一个存储单元 • DJNZ R7,LOOP ;巡回检测八个通道 • RET

  13. [例8.4] 利用中断方式分别对8路模拟信号轮流采集一次,转换结果依次存放在首址为30H的片内数据区,程序如下: • ORG 0000H • AJMP MAIN • ORG 0003H • AJMP PINT1 • MIAN:MOV R1,#30H ;置数据区首址 • MOV DPTR,#0FEF8H ;指向IN0 • MOV R7,#08H

  14. SETB IT0 • SETB EX0 ;开中断 • SETB EA • LOOP:MOVX @DPTR,A ;启动A/D转换 • PINT1:MOVX A,@DPTR ;读取数据 • MOV @R1,A ;存取数据

  15. INC R1 ;更新存储单元 • INC DPTR ;更新通道 • DJNZ R7,DONE • CLR EXO ;关中断 • CLR EA • RETI ;中断返回 • DONE: MOVX @DPTR,A • RETI

  16. 8.3.4 AT89C51与MC14433接口应用 • 1. MC14433的结构及特性 • MC14433是3 位双积分A/D转换器,它具有抗干扰性能好、转换精度高、自动校零、自动极性输出、自动量程控制信号输出、动态高位扫描BCD码输出、单基准电压、过量欠量程输出标志等特点,但其转换速度慢,在不要求高速转换的场合被广泛地应用。

  17. 2.MC14433引脚介绍 • MC14433的引脚如图8-13所示。各引脚功能如下: • (1)  VAG:被测电压VX和基准电压VR的接地端(模拟地)。 • (2)  VR:外接基准电压(+2 V或+200 mV)。 • (3)  VX:被测电压输入端。 • (4)  R1,R1/C1,C1:外接积分电阻和外接积分电容端。 • (5)  CO1,CO2:外接失调补偿电容,典型值为0.1 μF。

  18. (6)  DU:更新输出的A/D转换数据结果的输入端,当DU与EOC相连时,每次的A/D转换结果都被更新。 • (7)  CLK1,CLK0:时钟信号输入、输出端。 • (8)  VDD、VEE:分别为正电源端(接+5 V)和模拟负电源端(接-5 V)。 • (9)  VSS:数字地或系统地。 • (10)  EOC:转换周期结束标志,每当一个A/D转换周期结束,输出一个宽度为时钟周期二分之一的正脉冲。

  19. (11)   (11) OR:过量程标志,平时为高电平,当|VX|>VR时,为低电平。 • (12)  DS1~DS4:多路选通脉冲输出端,DS1对应千位,DS4对应个位,每个选通脉冲宽度为18个时钟周期,两个相邻脉冲之间间隔2个时钟周期,其脉冲时序图见图8-14。

  20. 图8-14 MC14433选通脉冲时序图

  21. (13)  Q0~Q3:BCD码数据输出端,其中Q0为最低位,Q3为最高位。在DS2、DS3和DS4选通期间,分别输出三位完整的BCD码,即0~9这10个数码中的任何一个。但在DS1选通期间,Q0~Q3输出除了表示千位的0或1外,还表示了正负极性及欠过量程,其含义见表8-3。

  22. DS1 Q3 Q2 Q1 Q0 输出结果状态 1 1 × × 0 千位数为0 1 0 × × 0 千位数为1 1 × 1 × 0 输出结果为正值 1 × 0 × 0 输出结果为负值 1 0 × × 1 输入信号为过量程 1 1 × × 1 输入信号为欠量程 • 表8-3 DS1选通时Q0~Q3表示的输出结果

  23. 3.AT89C51与MC14433的接口 • 由于MC14433的A/D转换结果是动态分时输出BCD码。Q0~Q3和DS1~DS4都不是总线式的,因此,单片机只能通过并行口或扩展并行口与其相连。图8-15为AT89C51与MC14433的硬件接口图。

  24. 图8-15 AT89C51与MC14433接口图

  25. 图8-15中,MC14433用集成精密+2.5 V电压基准源经电位器分压作为A/D转换的基准电压。EOC与DU相连,用来选择连续转换方式,每次转换结果都送至输出寄存器,并且由EOC作为查询或中断方式读取转换结果的输入信号。 • 用MC14433设计的A/D转换电路中,在程序设计时,因为要对符号位进行位处理,所以要将数据保存在能够进行位处理的单元。下面的程序是在中断程序中用查询方式读取MC14433的BCD码扫描输出值,并将读取的数据存在能进行位寻址的2EH、2FH单元,数据存放格式如图8-16所示。

  26. 图8-16 数据存放格式

  27. 程序如下: • MAIN:SETB IT1 ;INT1为边沿触发方式 • MOV IE,#10000100B • ;CPU开中断,允许INT1中断 • 中断服务程序: • PINT1: MOV A,P1 • JNB ACC.4,PINT1 ;等待DS1信号 • JB ACC.0,PER ;过欠量程转PER

  28. JB ACC.2,PL1 ;结果为正转PL1 • SETB 77H ;负数,符号位置1 • AJMP PL2 • PL1:CLR 77H ;正数,符号位清0 • PL2:JB ACC.3,PL3 ;ACC.3=0时,千位数为1 • SETB 74H ;千位数置1 • AJMP PL4

  29. PL3:CLR 74H ;千位数清零 • PL4:MOV A,P1 • JNB ACC.5,PL4 • ;等待百位BCD码的选通信号 • MOV R0,#2EH • XCHD A,@R0 ;百位数送入2EH低4位 • PL5:MOV A,P1 • JNB ACC.6,PL5 ;等待十位数选通信号DS3

  30. SWAP A ;高低4位交换 • INC R0 ;指向2FH单元 • MOV @R0,A ;十位数送入2FH • PL6:MOV A,P1 • JNB ACC.7,PL6 ;等待个位数选通信号DS4 • XCHD A,@R0 ;个位数送入2FH低4位 • RETI • PER:SETB 10H ;置过欠量程标志 • RETI

  31. 8.4 D/A转换器及接口技术 • 8.4.1 D/A转换器的主要技术指标 • 1. 分辨率 • 分辨率指最小输出电压(对应的输入数字量最低有效位为1)与最大输出电压(对应的数字输入量所有位全为1)之比。 • 例如,对于10位D/A转换器,其分辨率为

  32. 2. 转换精度 • D/A的转换精度主要取决于D/A转换器的二进制位数。例如,8位的D/A相对误差是1/256,16位的D/A相对误差为1/65 536。显然,二进制位数越多精度越高。 • 3. 建立时间 • D/A转换器是指从数字输入端发生变化开始,到输出模拟信号电压(或模拟信号电流)达到满刻度值(1/2)LSB时所需要的时间。

  33. 8.4.2 D/A转换器与单片机的接口 • 1. 不带数据锁存器的D/A转换器的接口方法 • 对于这类D/A转换器与单片机的接口连接,只需在D/A转换器输入端外加一个锁存器即可。MC1408是一个不带锁存器的8位D/A转换器,图8-17是MC1408与89C51的接口连线图。

  34. 从图8-17中可知,由于MC1408不带数据锁存器,所以用一片片外锁存器74LS273作为具有数据锁存的并行输出口,其输出端与MC1408的输入端相连,用2.5 V的AD580作为D/A的参考电压源。MC1408的输出外接一个运放,目的是由电流型转换为电压型的输出,用RBP选择输出电压的极性:若连上RBP,输出电压是双极性的;若断开RBP,则输出电压是单极性的。

  35. 图8-17 不带数据锁存器的D/A转换器与AT89C51的连接图

  36. 根据图8-17中的连接方法,选通74LS273的口地址为FEH,以下三条指令就能实现D/A转换。根据图8-17中的连接方法,选通74LS273的口地址为FEH,以下三条指令就能实现D/A转换。 • MOV A,#NN ;NN为待转换的数字量 • MOV R0,#0FEH ;送口地址 • MOVX @R0,A ;输出转换数据

  37. 执行MOVX指令,即产生信号,将锁存在74LS273中的数据输出到MC1408,立即进行D/A转换。执行MOVX指令,即产生信号,将锁存在74LS273中的数据输出到MC1408,立即进行D/A转换。 • 以下程序可以产生连续的锯齿波。 • MOV R0,#0FEH • MOV A,#00H ;置转换初值 • LOOP:MOVX @R0,A ;启动D/A转换 • INC A ;转换值加1 • AJMP LOOP

  38. 2. 带数据锁存器的D/A转换器的接口方法 • 1)  DAC0832特性与结构 • DAC0832具有两个输入数据寄存器的8位DAC,分辨率为8位,电流稳定时间1 μs,可采用单缓冲、双缓冲或直接数字输入工作方式,转换结果为电流型,它能直接与51系列单片机接口。DAC0809是单一电源供电(+5 V~+15 V),低功耗。图8-18是DAC0832的内部逻辑结构图。

  39. 图8-18 DAC0832的内部结构图

  40. 2)  DAC0832引脚功能介绍 • 图8-19是DAC0832的引脚图。各引脚功能如下: • (1)  DI0~DI7:数据输入线。 • (2)  ILE:数据锁存允许端,高电平有效。 • (3) :输入寄存器选择信号端,低电平有效。 • (4)  :输入寄存器的写选通信号端,低电平有效。 • (5)   :DAC寄存器的写选通信号端,低电平有效。 • (6)   :数据转换控制信号线,低电平有效。

  41. 图8-19 DAC0832的引脚图

  42. (7)  VREF:基准电源输入端。 • (8)  Rfb:反馈信号输入端(反馈电阻在芯片内部)。 • (9)  IOUT1、IOUT2:电流输出端。 • (10)  VCC:电源输入端。 • (11)  AGND:模拟信号地。 • (12)  DGND:数字信号地。

  43. 3)  DAC0832与AT89C51的接口 • 从图8-19可知,只有当和ILE同时有效时,才能够通过 将数据写入输入寄存器。 • (1) 单缓冲工作方式:在应用系统中,当只有一路模拟量输出或虽有多路模拟量但不需要做同步输出时,就可以采用单缓冲工作方式。

  44. 图8-20 DAC0832单缓冲方式下的连接方法

  45. 在图8-20中,D/A转换器的基准电压VREF取自MC1403的分压输出,LM324的功能是把电流型输出转换成单极性的电压型输出,由于 、 并接到地址锁存器的A0,所以0832的口地址为FFFEH。 • 按照图8-23,产生梯形波的程序如下:

  46. START: MOV DPTR,#0FFFEH ;选中0832 • STEP: MOV R6,#20H ;置阶跃值 • MOV R4,#05H ;置阶跃次数 • MOV A,#00H ;送初值 • LOOP: MOVX @DPTR,A ;启动D/A转换 • ACALL DELAY ;调延时程序 • ADD A,R6 ;加阶跃值 • DJNZ R4,LOOP ;重复数到否 • AJMP STEP

  47. (2) 双缓冲工作方式:双缓冲工作方式用于需要同时输出几路模拟信号的场合。此种方式下,每一路模拟量都需要一片DAC0832,从而构成多个0832同步输出系统,图8-21是两路模拟信号同步输出的电路连接方法。

  48. 图8-21 两路模拟信号同步输出系统

  49. 下面是按照图8-21使两路模拟电压同时输出的程序清单:下面是按照图8-21使两路模拟电压同时输出的程序清单: • MOV DPTR,#0FFFEH • MOV A,#Xdata • MOVX @DPTR,A • ;Xdata写入第一片0832的输入寄存器 • MOV DPTR,#0FFFDH • MOV A,#Ydata

  50. MOVX @DPTR,A • ;Ydata写入第二片0832的输入寄存器 • MOV DPTR,#0FBH • MOV @DPTR,A • ;两片0832的输入寄存器的数据同时送到各自的DAC寄存器

More Related