您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > MSP430ADDA转换器的应用
1第6章A/D、D/A转换器的应用6.1A/D、D/A转换器的工作原理6.1.1D/A转换器的工作原理D/A转换器(DigitaltoAnalogConverter)是一种能把数字量转换成模拟量的电子器件;A/D转换器(AnalogtoDigitalConverter)则相反,它能把模拟量转换成相应的数字量。在微机控制系统中,经常要用到A/D和D/A转换器。D/A转换器从工作原理分为T型电阻网络、倒T型电阻网络、权电阻网络几种形式。倒T型电阻网络的工作原理如图6.1所示。图6.1倒T型电阻网络型D/A转换器输出电压的大小与数字量具有对应的关系。D/A转换器的主要性能指标:1)分辨率是指输入数字量的最低有效位(LSB)发生变化时,所对应的输出模拟量(电压或电流)的变化量。它反映了输出模拟量的最小变化值。分辨率与输入数字量的位数有确定的关系,可以表示成FS/2n。FS表示满量程输入值,n为二进制位数。对于5V的满量程,采用8位的DAC时,分辨率为5V/256=19.5mV;当采用12位的DAC时,分辨率则为5V/4096=1.22mV。显然,位数越多分辨率就越高。10101010101010102RD7R2R2R2R2R2R2R2R2RRRRI7I7I-+VREFI6I5I4I3I2I1I0I6I5I4I3I2I1I0RfbIO1IO2D6D5D4D3D2D1D0VORRR22)线性度(也称非线性误差)是实际转换特性曲线与理想直线特性之间的最大偏差。常以相对于满量程的百分数表示。如±1%是指实际输出值与理论值之差在满刻度的±1%以内。3)绝对精度(简称精度)是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误差。绝对精度是由DAC的增益误差(当输入数码为全1时,实际输出值与理想输出值之差)、零点误差(数码输入为全0时,DAC的非零输出值)、非线性误差和噪声等引起的。绝对精度(即最大误差)应小于1个LSB。4)建立时间是指输入的数字量发生满刻度变化时,输出模拟信号达到满刻度值的±1/2LSB所需的时间。是描述D/A转换速率的一个动态指标。电流输出型DAC的建立时间短。电压输出型DAC的建立时间主要决定于运算放大器的响应时间。根据建立时间的长短,可以将DAC分成高速(<1μS)、中速(100~1μS)、低速(≥100μS)几档。应当注意,精度和分辨率具有一定的联系,但概念不同。DAC的位数多时,分辨率会提高,对应于影响精度的量化误差会减小。但其它误差(如温度漂移、线性不良等)的影响仍会使DAC的精度变差。6.1.2典型的D/A转换器DAC0832DAC0832芯片由8位输入寄存器、8位DAC寄存器、8位D/A转换及控制电路三部分组成,如图6-2所示。DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适应于各种需要,如要求多路D/A异步输入、同步转换等。D/A转换结果采用电流形式输出,若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接。DAC0832属于倒T型电阻网络型D/A转换器,内部无运算放大器。DAC0832的主要技术指标:1)分辨率8位2)电流建立时间1µs3)只需在满量程下调整其线性度4)可单缓冲、双缓冲或直接数字输入;5)低功耗20mW6)单一电源+5~+15V3图6.2DAC0832内部结构DI0~DI7:数据输入线,TLL电平。ILE:数据锁存允许控制信号输入线,高电平有效。CS:片选信号输入线,低电平有效。WR1:为输入寄存器的写选通信号,低电平有效。XFER:数据传送控制信号输入线,低电平有效。WR2:为DAC寄存器写选通输入线,低电平有效。Iout1:电流输出线。当输入全为1时Iout1最大。Iout2:电流输出线。其值与Iout1之和为一常数。Rfb:反馈信号输入线,芯片内部有反馈电阻.Vcc:电源输入线(+5v~+15v)Vref:基准电压输入线(-10v~+10v)AGND:模拟地,摸拟信号和基准电源的参考地.DGND:数字地,两种地线在基准电源处共地比较好.6.1.3A/D转换器的工作原理A/D转换器的按工作原理分为积分型、逐次逼近型、并行比较型/串并行型、Σ-Δ调制型等。积分型AD工作原理是将输入电压转换成时间(脉冲宽度信号)或频率(脉冲频率),然后由定时器/计数器获得数字值。其优点是用简单电路就能获得高分辨率,但缺点是由于转换精度依赖于积分时间,因此转换速率极低。初期的单片AD转换器大多采用积分型,现在逐次比较型已逐步成为主流。下面重点讲述逐次逼近式A/D转换器的工作原理。逐次逼近式A/D转换器是一种采用对分搜索原理来实现A/D转换的方法,逻辑框图如图6-3所示。D7D6D0D1D2D3D4D58位输入寄存器8位DAC寄存器8位D/A转换电路RfVREFIout2Iout1RfILECSWR1WR2XFERDAC0832AGNDVCCDGNDLE1LE2M1M3M2D/A转换器N位寄存器控制逻辑VINSTARTEOCVNVREF锁存缓存器D7D0D3D5D1D2D4D6OE4图6.3逐次逼近式A/D转换器逻辑框图逐次逼近转换过程和用天平称重物非常相似。天平称重物过程是,从最重的砝码开始试放,与被称物体进行比较,若物体重于砝码,则该砝码保留,否则移去。再加上第二个次重砝码,由物体的重量是否大于砝码的重量决定第二个砝码是留下还是移去。照此一直加到最小一个砝码为止。将所有留下的砝码重量相加,就得此物体的重量。仿照这一思路,逐次比较型A/D转换器,就是将输入模拟信号与不同的参考电压作多次比较,使转换所得的数字量在数值上逐次逼近输入模拟量对应值。图6.3逐次逼近式A/D转换器工作原理:启动信号START发出后,在第一个时钟脉冲作用下,控制逻辑使N位寄存器的最高位置1,其他位置0,其值送入D/A转换器。输入电压首先与D/A转换器输出电压(VREF/2)相比较,如VIN≥VREF/2,比较器输出为1,若VINVREF/2,则为0。比较结果存于数据寄存器的Dn-1位。然后在第二个脉冲作用下,N位寄存器的次高位置1,其他低位置0。如最高位已存1,则此时VN=(3/4)VREF。于是VIN再与(3/4)VREF相比较,如VIN≥(3/4)VREF,则次高位Dn-2存1,否则Dn-2=0;……。以此类推,逐次比较得到输出数字量。A/D转换器的主要技术指标1)ADC的分辨率是指使输出数字量变化一个相邻数码所需输入模拟电压的变化量。常用二进制的位数表示。例如12位ADC的分辨率就是12位,或者说分辨率为满刻度FS的1/212。一个5V满刻度的12位ADC能分辨输入电压变化最小值是5V×1/212=1.22mV。2)偏移误差是指输入信号为零时,输出信号不为零的值,所以有时又称为零值误差。假定ADC没有非线性误差,则其转换特性曲线各阶梯中点的连线必定是直线,这条直线与横轴相交点所对应的输入电压值就是偏移误差。3)满刻度误差又称为增益误差。ADC的满刻度误差是指满刻度输出数码所对应的实际输入电压与理想输入电压之差。4)线性度有时又称为非线性度,它是指转换器实际的转换特性与理想直线的最大偏差。5)绝对精度是指在一个转换器中,任何数码所对应的实际模拟量输入与理论模拟输入之差的最大值,称为绝对精度。对于ADC而言,可以在每一个阶梯的水平中点进行测量,它包括了所有的误差。6)ADC的转换速率是能够重复进行数据转换的速度,即每秒转换的次数。而完成一次A/D转换所需的时间(包括稳定时间),则是转换速率的倒数。实例6-1D/A转换器应用一:锯齿波、三角波和方波发生器任务要求:以MSP430F249为控制核心,DAC0832为数模转换器,设计一个简易波形发生器,分别产生锯齿波、三角波和方波,周期均为100ms,产生的波形如图6.4所示。5图6.4锯齿波、三角波和方波示意图1)硬件电路设计数模转换器采用通用的8位D/A转换芯片DAC0832,DAC0832接成直通方式工作,工作和参考电源均为+5V。反相放大电路采用通用运放uA741,工作电源为±15V,反馈电阻直接采用DAC0832的内部电阻。MSP430F249单片机的P4口作为数据输出口,D/A转换结果由仿真软件的虚拟示波器进行观察。系统硬件电路如图6.5所示。P40P41P42P43P44P45P46P47P40P41P42P43P44P45P46P47GNDVCCGNDGNDGNDGNDGNDVCCP2.5/ROSC/CA525P2.4/CA1/TA224P2.3/CA0/TA123P2.2/CAOUT/TA0/CA422P2.1/TAINCLK/CA321P2.0/ACLK/CA220P1.2/TA114P1.1/TA013P1.0/TACLK/CAOUT12P1.3/TA215P1.4/SMCLK16P1.7/TA219P1.6/TA118P1.5/TA017P2.6/ADC12CLK/CA626P2.7/TA0/CA727P3.0/UCB0STE/UCA0CLK28P3.1/UCB0SIMO/UCB0SDA29P3.2/UCB0SOMI/UCB0SCL30P3.3/UCB0CLK/UCA0STE31P3.4/UCA0TXD/UCA0SIMO32P3.5/UCA0RXD/UCA0SOMI33P3.6/UCA1TXD/UCA1SIMO34P3.7/UCA1RXD/UCA1SOMI35P4.5/TB541P4.4/TB440P4.3/TB339P4.2/TB238P4.1/TB137P4.0/TB036P4.6/TB642P4.7/TBCLK43AVCC64AVSS62P5.0/UCB1STE/UCA1CLK44P5.1/UCB1SIMO/UCB1SDA45P5.2/UCB1SOMI/UCB1SCL46P5.3/UCB1CLK/UCA1STE47P5.4/MCLK48P5.5/SMCLK49P5.6/ACLK50P5.7/TBOUTH/SVSOUT51P6.0/A059P6.1/A160P6.2/A261P6.3/A32P6.4/A43P6.5/A54P6.6/A65P6.7/A7/SVSIN6XT2OUT52XT2IN53RST/NMI58TCK57TDI/TCLK55TMS56VEREF+10VREF+7XIN8XOUT9TDO/TDI54VREF-/VEREF-11U1MSP430F249VREF8GND3VCC20CS1WR12DI34DI25DI16DI07RFB9GND10IOUT111IOUT212DI713DI614DI515DI416XFER17WR218ILE(BY1/BY2)19U2DAC08323267415U3UA741+15v-15vABCD图6.5简易波形发生器硬件电路2)程序设计为了精确控制输出波形的周期,单片机CPU时钟采用XT2外接8MHz晶振。设置MSP430F249单片机的P4口为输出,P4口输出的数据由小到大,例如从0到0xFF就能产生锯齿波。要求产生的锯齿波周期为100ms,因此,单片机输出的每个数据保持时间为100000/256=390.625us;P4口输出的数据由小到大,再由大到小,例如从0加一变化到0xFF,再从0xFF减一变化到0就能产生三角波,单片机输出的每个数据保持时间为锯齿波的一半,即195us;方波高电平-1V,低电平-5V,对应的P4口数据分别51和255,方波高电平和低电平时间各为50ms。#includeMSP430F249.h#defineCPU_F((double)8000000)//系统时钟为8MHz#definedelay_us(x)__delay_cycles((long)(CPU_F*(double)x/1000000.0))#definedelay_ms(x)__delay_cycles((long)(CPU_F*(double)x/1000.0))voidsawtooth(void){
本文标题:MSP430ADDA转换器的应用
链接地址:https://www.777doc.com/doc-3435351 .html