1、第五部分:F2812模/数转换器(ADC),ADC and DAC,现实生活中的信号大多为连续信号,而计算机只能处理数字信号。模数转换(Analog-to-Digital Conversion ADC)和数模转换(Digital-to-Analog Conversion DAC)技术使得计算机可以处理现实生活中的信号了。数字信息有两个重要特征:它经过采样(sampled)得到的和它是经过量化(quantized)的,这两个因素限制了数字信号中包含信息的多少。,3.1 Quantizationsample-and-hold (S/H)analog-to-digital converter (AD
2、C),ADC and DAC,ADC and DAC,ADC and DAC,采样就是把自变量(在这个例子里面是时间)由连续的变为离散的。 量化就是把应变量(这个例子里就是电压)由连续的变为离散的。 数字化后的每一个采样点可能有的最大误差是 LSB(Least Significant Bit 最低有效位) 量化误差一个重要特性是它很像随机噪声,在大多数情况下它对信号带来的影响和随机噪声没有什么区别 量化误差是一种随机误差,所以AD的位数决定了数据的精度,于是我们可以这样说,如果把8位的AD换成12位的,将会提高测量的精度 。 考虑系统要采用多少位AD的时应注意的问题。抖动(dithering)
3、,ADC and DAC,ADC and DAC,3.2 Sampling Theorem只要能从采样点重构出原来的连续信号就可以说前面的采样是正确的。,概述,在自动控制和测量系统中,被控制和被测量的对象往往是一些连续变化的物理量。如:温度、压力、流量、速度、电流、电压等。这些随时间连续变化的物理量,称为模拟量(Analog)。计算机参与测量和控制时,模拟量不能直接送入计算机,必须先把它们转换成数字量(Digital)。能够将模拟量转换成数字量的器件称为模拟数字转换器,简称ADC。,模拟量连续变化的物理量,数字量时间和数值上都离散的量,概述,模/数与数/模转换通道的组成,一般模/数转换通道由传
4、感器、信号处理、多路转换开关、采样保持器以及A/D转换器组成 。,传感器:能够把非电物理量转换成电量(电流或电压)的器件,一般传感器由电容、电阻、电感或敏感材料组成,在外加激励电流或电压的驱动下,不同类型的传感器会随不同非电物理量的变化,引起传感器的组成材料发生改变,使得输出连续变化的电流或电压与非电物理量的变化成正比。,一、传感器(Transducer),由于传感器组成材料发生改变引起输出电流或电压的变化十分微弱,容易受外界干扰,因此,在市场上能买到的各种变送器,已将传感器与放大电路制作在一起,输出统一标准的010mA或420mA电流,或05V电压,以便传输或直接送A/D转换器进行A/D转换
5、,其中,420mA标准电流输出的传感器较为普遍,常说的流量变送器、压力变送器等一般输出420mA标准电流,内部处于恒流输出结构,显然电流型传感器比电压型传感器抗干扰能力强,易于远距离传输,因此,电流型传感器被广泛用于生产过程的检测系统中。,二、信号放大处理,信号放大处理电路,接在A/D转换器与传感器之间,用于解决以下存在问题: A/D转换器与传感器二者电压不匹配;如果是电流型输出传感器,要进行变换与放大处理,将电流信号对应变换成电压信号;传感器工作在现场,可能存在复杂的强电磁波的干扰,通常采用RC低通滤波器,滤除叠加在传感器输出信号上的高频干扰信号,也可采用有源滤波技术,使得滤波特性更好。,三
6、、多路转换开关(Multiplexer),一个数据采集系统(A/D转换)往往要采集多路模拟信号; 通常只用一片A/D转换芯片,轮流选择输入信号进行采集,既节省了硬件开销,又不影响对系统的监测与控制; 许多A/D转换芯片内部具备多路转换开关,一片A/D转换芯片可以轮流采集多路模拟输入信号,如果A/D转换芯片不具有多路转换功能,则在A/D转换之前外加模拟多路转换开关。,四、采样保持器(Sample Holder),在A/D转换器进行采样期间,保持被转换输入信号不变的电路称为采样保持电路;A/D转换器完成一次转换所需要的时间称为转换时间;不同A/D转换芯片,其转换时间各异,对于连续变化较快的模拟信号
7、如果不采取采样保持措施,将会引起转换误差;慢速变化的模拟信号,在A/D转换系统中,完全可以不必采用采样保持电路,而且并不会影响A/D转换的精度。,采样/保持示意图,五、A/D转换器(Analog to Digit),A/D转换器是模/数转换通道的核心环节,其功能是将模拟输入电信号转换成数字量(二进制数或BCD码等),以便由计算机读取、分析处理,并依据它发出对生产过程的控制信号。,A/D转换器及接口技术,A/D转换器是将模拟量转换为数字量的器件,这个模拟量泛指电压、电阻、电流、时间等参量,但在一般情况下,模拟量是指电压而言的。在数字系统中,数字量是离散的,一般用一个称为量子Q的基本单位来度量。,
8、2. A/D转换器的主要性能指标 (1) 分辨率。 习惯上以输出的二进制位数或BCD码位数表示分辨率。 如一个输出为8位二进制数的A/D 转换器,称其分辨率为8位。 也可以用对应于1 LSB的输入模拟电压来表示分辨率。分辨率还可以用百分数来表示,例如8位A/D转换器的分辨率百分数为 (1/256)100%=0.39%。 (2) 量化误差。 A/D转换是用数字量对模拟量进行量化。由于存在最小量化单位,在转换中就会出现误差,仍以上述04.99 V 转换为二进制数000111的A/D 转换器为例,模拟量1.42 V对应于数字量010;而(1.42 V- 1/2 LSB) (1.42 V+ 1/2 L
9、SB)也都对应于010, 这样就带来了转换误差。,量化误差ADC把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。量化误差是ADC的有限位数对模拟量进行量化而引起的误差。实际上,要准确表示模拟量,ADC的位数需很大甚至无穷大。一个分辨率有限的ADC的阶梯状转换特性曲线与具有无限分辨率的ADC转换特性曲线(直线)之间的最大偏差即是量化误差。,量化特性及量化误差,理想ADC的传输特性和量化误差,这一误差称为量化误差。理想A/D转换器的量化误差为 LSB,如下图所示。 (3) 转换精度。 转换精度是指一个实际的A/D转换器与理想的A/D转换器相比的转换误差。绝对精度一般以LSB为单位给出
10、。相对精度则是绝对精度与满量程的比值。不同厂家生产的A/D转换器的转换精度指标的表达方式可能不同。有的给出综合误差指标,有的给出分项误差指标。通常误差指标有失调误差(零点误差)、增益误差(满量程误差)、非线性误差和微分非线性误差。下面分别介绍这些误差。,精度 绝对精度 绝对精度定义为:对应于产生一个给定的输出数字码,理想模拟输入电压与实际模拟输入电压的差值。 绝对精度由增益误差、偏移误差、非线性误差以及噪声等组成。,相对精度相对精度定义为在整个转换范围内,任一数字输出码所对应的模拟输入实际值与理想值之差与模拟满量程值之比。, 失调误差。 失调误差也称为零点误差,这是指当输入模拟量从0逐渐增长使
11、输出数字量从00跳至01时,输入模拟量实际数值与理想的模拟量数值(即 1 LSB的对应值)之差。这反映了A/D转换器零点的偏差。一定温度下的失调误差可以通过电路调整来消除。 增益误差。 当输出数字量达到满量程时,所对应的输入模拟量与理想的模拟量数值之差,称为增益误差或满量程误差,计算此项误差时应将失调误差除去。一定温度下的增益误差也可以通过电路调整来消除。, 非线性误差。 非线性误差是指实际转换特性与理想转换特性之间的最大偏差,它可能出现在转换曲线的某处。此项误差不包括量化误差、 失调误差和增益误差。它不能通过电路调整来消除。 微分非线性误差。 在A/D转换曲线上,实际台阶幅度与理想台阶幅度(
12、即理论上的1 LSB)之差,称为微分非线性误差。如果此误差超过1 LSB, 就会出现丢失某个数字码的现象。 在上述几项误差中,如果失调误差和增益误差能得到完全补偿,那么只需考虑后两项非线性误差。需要指出的是精度所对应的误差指标中未包括量化误差,因此实际的总误差还要把量化误差考虑在内。总误差E总与分项误差Ei之间的关系如下,图3.17 ADC的积分线性度误差 图3.18 ADC的微分线性度误差,与微分线性度误差直接关联的一个ADC的常用术语是失码(Missing Cord)或跳码(Skipped Cord),也叫做非单调性。,图3.19 ADC的失码现象,E总= (4) 转换时间。 转换时间是指
13、A/D转换器完成一次转换所需要的时间。 其倒数为转换速率。 (5) 温度系数。 温度系数表示A/D转换器受环境温度影响的程度。一般用环境温度变化1所产生的相对转换误差来表示,以10-6/为单位。,温度对误差的影响 环境温度的改变会造成偏移、增益和线性度误差的变化。,模块主要包括以下特点,12位模数转换模块ADC; 两个采样和保持(S/H)器; 同时或顺序采样模式; 模拟输入电压范围:0 V到3 V; 快速的转换时间,ADC时钟可以配置为25 MHz,最高采样带宽12.5 MSPS; 16通道模拟输入; 自动排序功能支持16通道独立循环“自动转换”,每次转换的通道可以软件编程选择; 排序器可以工
14、作在两个独立的8通道排序器模式,也可以工作在16通道级联模式; 16个结果寄存器存放ADC的转换结果,转换后的数字量表示为:,有多个触发源启动ADC转换(SOC) S/W 软件立即启动 EVA 事件管理器A (在EVA中有多个事件源可启动AD转换) EVB 事件管理器B (在EVB中有多个事件源可启动AD转换) 外部引脚 灵活的中断控制,允许每个或每隔一个序列转换结束产生中断请求; 排序器可工作在启动/停止模式,允许“多个排序触发”同步转换; EVA和EVB可以独立触发,工作在双触发模式; 采样保持(S/H)采集时间窗口有独立的预定标控制; 只有F2810/F2811/F2812芯片的B版本以
15、后的芯片才有增强的重叠排序器功能;,为获得更高精度的模数转换结果,正确的PCB板设计是非常重要的。连接到ADCINxx引脚的模拟量输入信号线要尽可能地远离数字电路信号线。为减小数字信号的转换引起的噪声对ADC产生耦合干扰,需要将ADC模块的电源输入同数字电源隔离开,给出了外部参考电路,该电路采用精准的参考电压并通过分压保证准确的参考范围,在给处理器引脚提供参考之前增加缓冲电路,采用该电路主要有两个优点稳定的ADCREFP 和ADCREFM 对于实现良好的ADC 性能非常重要,然而ADCREFP 和ADCREFM 是静态的,而ADC 使用参考则是动态的。在每次模数转换过程中对两个参考电压引脚进行
16、采样,并且要求在特定的ADC 时钟周期内能够稳定。外部参考电路刚好能够满足ADC 的动态和稳定性要求;在ADC 操作过程中ADCREFP 和ADCREFM 的电流会有所波动,如果不采用外部缓冲电路则分压电阻上的电流会产生变化,从而会改变输入的参考电压值,结果会使增益误差变大;,ADC功能框图 (级联模式),AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x3;.AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x2;,ADC功能框图 (双序列模式),ADC 示例,AdcRegs.ADCTRL3.bit.SMODE_SEL=1;设置并发模式AdcRegs
17、.ADCMAXCONV.all = 0x0001; 双重序列发生器2*4=8ADCCHSELSEQ1.bit.CONV00=0x4;设置ADCINA4和ADCINB4的转换次序(第一)ADCCHSELSEQ1.bit.CONV01=0x0;设置ADCINA0和ADCINB0的转换次序(第二)。ADCCHSELSEQ3.bit.CONV10=0x6;设置ADCINA6和ADCINB6的转换次序(第11)ADCCHSELSEQ3.bit.CONV11=0x7;设置ADCINA7和ADCINB7的转换次序(第11)Result结果ADCINA4-ADCRESULT0ADCINB4-ADCRESULT
18、1。ADCINA7-ADCRESULT14ADCINB7-ADCRESULT15,F2812 ADC 时钟电路,CLKIN(30 MHz),HSPCLK(150 MHz),FCLK(25 MHz),FCLK = HSPCLK/(2*ADCCLKPS),ADCCLK =FCLK/(CPS+1),ADCCLK(25 MHz),To ADC pipeline,sampling window,ADCCLKmax=25 MHz!,SYSCLKOUT(150 MHz),sampling window = (ACQ_PS + 1)*(1/ADCCLK),PCLKCR.ADCENCLK = 1,ADC输入通道
19、选择序列控制寄存器,设置转换序列的通道以及先后顺序,EVA SOC 停止/启动方式,前提:EVA下溢启动3个ADC I1/I2/I3;定时器周期SOC3个ADC V1/V2/V3,EVA SOC 停止/启动方式,Bits 15-12 11-8 7-4 3-00x007103 V1 I3 I2 I1 ADCCHSELSEQ10x007104 x x V3 V2 ADCCHSELSEQ2,MAX_CONV1 =2(bit.3舍弃),转换顺序设置如下:,复位和初始化之后,等待SOC 触发 第一次触发(2: CONV00 (I1), CONV01 (I2), CONV02 (I3) SEQ1 等待第二
20、次触发 第二次触发执行: CONV03 (V1), CONV04 (V2), CONV05 (V3) 第二次触发结束, ADC Results(在连续模式,为了避免数据重写,必须确保 在下一个转换序列开始前,读取寄存器:, 用户可以通过软件复位 SEQ1 到状态 CONV00 SEQ1 保持当前状态等待另外一次触发,ADC 转换结果寄存器ADCRESULT0 0x007108 ;ADCRESULT15 0x007117,模拟输入0V3V:analog voltsconverted valueRESULTx3.0FFFh1111|1111|1111|00001.57FFh0111|1111|11
21、11|00000.000731h0000|0000|0001|000000h0000|0000|0000|0000,MSB,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,LSB,ADC转换结果的读取Integer format,RESULTx,ACC,Data Mem,bit shift right,15,0,x,x,x,x,x,x,Example: read RESULT0 register,#include DSP281x_Device.hvoid main(void) Uint16 value;/ unsigned value = AdcRegs.ADCRE
22、SULT0 4;,电源级别 ADCRFDN ADCBGNDADCPWDNADC加电 1 1 1ADC掉电 1 0 0ADC关闭 0 0 0保留 1 0 x保留 0 1 x,ADC的低功耗方式,1、给ADC模拟电路的其他部分家电前,给参考电路和带隙电路加电2、ADC完全加电后,需要等待20s,才能进行第一次转换。3、ADC掉电,3位被同时清除。通过软件设置。,选择外部参考信号源的ADC初始化代码如下:,ADC 单元寄存器,52,用过采样和求均值提高ADC分辨率,很多应用需要使用模/数转换器ADC进行测量这些应用所需要的分辨率取决于信号的动态范围必须测量的参数的最小变化和信噪比SNR因此很多系统使
23、用较高分辨率的片外ADC然而也可以通过使用一些技术来达到较高的分辨率和SNR这里介绍用过采样和求均值的方法来提高模数转换的分辨率和SNR过采样和求均值技术可以在不使用昂贵的片外ADC的情况下提高测量分辨率,关键点,可用过采样和求均值技术提高测量分辨率不必采用昂贵的片外ADC 过采样和求均值对SNR和测量分辨率的改善是以增加CPU时间和降低数据吞吐率为代价的 对于白噪声的情况过采样和求均值可以改善信噪比,数据转换器噪声源,ADC转换时可能引入很多种噪声例如:热噪声,杂色噪声,电源电压变化参考电压变化由采样时钟抖动引起的相位噪声,以及由量化误差引起的噪声.由量化误差引起的噪声通常被称为量化噪声这些
24、噪声源的噪声功率是可以变化的减小噪声精心设计电路板和在参考电压信号线上加旁路电容,根据要增加的分辨率计算过采样率,过采样和求均值法何时有效,噪声必须逼近白噪声在整个有用频带内具有平均分布的功率谱密度 噪声幅度必须足够大能引起输入信号样本之间的随机变化变化幅度至少为两个相邻代 码之间的距离即1 LSB输入信号可以用一个在两个相邻ADC代码之间具有等概率分布的随机变量表示,过采样和求均值技术对相关或不能用白噪声模拟的噪声,例如反馈系统的噪声不起作用另外如果量化噪声的功率大于自然白噪声,例如热噪声过采样和求均值技术也不会奏效,ADC的分辨率较低时就属于这种情况大多数使用12位ADC的应用都可以从过采样和求均值技术获益,