模数转化器首要包括Sigma-Delta型、逐次迫临型和闪速型,运用中工程师遍及重视的问题是怎么进步转化精度?本文给出了按实践需求挑选并校对模数转化器的一些软件和硬件的运用技巧。
模数转化器(ADC)接纳模仿输入(电压或电流),并转化为可被微处理器读取的数字值。图1给出了一个简略的电压输入ADC,假定该器材的输入由两部分组成:参阅信号和丈量信号,别的还带有一个输出和表明输入值的8位数字字。
参阅电压是ADC所能转化的最大值,示例中的8位ADC可转化为介于0V和参阅电压之间的恣意电压,电压规模分为256个值或步长。步长的巨细由下式给定:Vref/256,这儿Vref表明参阅电压,转化器的步长界说为转化器的分辩率。关于5V的参阅电压,步长为:
5V/256=0.0195V或19.5mV
8位转化器将模仿输入表明为数字字,数字字的最高有用位指示输入电压是否大于参阅电压的一半(5V参阅电压的一半为2.5V),后续的各位均表明前一位所表明规模的一半。
表1说明晰这一点,将0010 1100中各位表明的电压相加,能够得到:
0.625+0.156+0.078 =0.859V
ADC的分辩率由参阅输入和字宽决议,分辩率界说了可被ADC丈量的最小电压改动。如前所述,分辩率的巨细等于最小的步长巨细,并可用参阅电压除以转化值的数目加以核算。
上例的分辩率为19.5mV,这意味着任何低于19.5mV的输入电压得到的输出成果为0,介于19.5mV和39mV之间的输入电压得到的输出成果为1,介于39mV和58.6mV之间的输入电压得到的输出成果为2。
能够经过下降参阅输入进步分辩率,如将参阅输入由5V变成2.5V,那么分辩率将为2.5/256,或9.7mV。但这时可被丈量的最大电压将为2.5V,而非5V。
既能进步分辩率,又不下降可丈量电压规模的仅有办法是增加ADC的位数。10位的ADC具有210或1,024个或许的输出代码,因此此刻的分辩率为5V/1024,即4.88mV;而相同的参阅输入条件下,12位ADC具有1.22mV的分辩率。
ADC的类型
ADC具有各种速率,运用不同的接口电路,并可供给不同的准确度。最常用的ADC类型包括闪速ADC、逐次迫临ADC和sigma-delta ADC。
1. 闪速ADC
闪速ADC是转化速率最快的一类ADC。闪速ADC在每个电压阶跃中运用一个比较器和一组电阻。因此4位ADC具有16个比较器,8位ADC则具有256个比较器。一切的比较器输出衔接到一块逻辑器材上,该逻辑器材依据比较器的电压凹凸确认输出。
闪速ADC的转化速率是比较器推迟和逻辑器材推迟(逻辑器材的推迟一般能够忽略不计)之和。闪速ADC的转化速率很快,但需求占有巨大的IC空间;并且由于所需的比较器数目很大,闪速ADC几乎便是功率“黑洞”,需求消耗很高的电流强度。10位闪速ADC所需的电流约为0.5A。
闪速ADC的一种变形便是半闪速ADC,该ADC运用内置的数模转化器(DAC)减少了内部比较器的数目。半闪速转化器的转化速率低于真实的闪速转化器,但高于其它类型的ADC。这儿将其归为闪速转化器类型。
2. 逐次迫临ADC
逐次迫临转化器选用一个比较器和计数逻辑器材完结转化。转化的第一步是查验输入是否高于参阅电压的一半,假如高于,将输出的最高有用位(MSB)置为1。然后输入值减去输出参阅电压的一半,再查验得到的成果是否大于参阅电压的1/4,依此类推直至一切的输出位均置“1”或清零。逐次迫临ADC所需的时钟周期与履行转化所需的输出位数相同。
3. Sigma-delta ADC
Sigma-delta ADC选用1位DAC、滤波和附加采样来完结十分准确的转化,转化精度取决于参阅输入和输入时钟频率。
Sigma-delta转化器的首要优势在于其较高的分辩率。闪速和逐次迫临ADC选用并联电阻或串联电阻,这些办法的问题在于电阻的准确度将直接影响转化成果的准确度。虽然新式ADC选用十分准确的激光微调电阻网络,但在电阻并联中依然不甚准确。sigma-delta转化器中不存在电阻并联,但经过若干次采样可得到收敛的成果。
Sigma-delta转化器的首要下风在于其转化速率。由于该转化器的作业机理是对输入进行附加采样,因此转化需求消耗更多的时钟周期。在给定的时钟速率条件下,Sigma-delta转化器的速率低于其它类型的转化器;或从另一视点而言,关于给定的转化速率,Sigma-delta转化器需求更高的时钟频率。
Sigma-delta转化器的另一下风在于将占空(duty cycle)信息转化为数字输出字的数字滤波器的结构很杂乱,但Sigma-delta转化器因其具有在IC裸片上增加数字滤波器或DSP功用而日益得到广泛运用。
ADC比较器
图2显现了sigma-delta、逐次迫临和闪速转化器的分辩率规模,一起还给出了每种转化器类型的最大转化速率。如图所示,sigma-delta ADC的转化速率在逐次迫临ADC的转化速率规模以内,但比不上转化速率最低的闪速转化ADC。表中没有给出速率和准确度的折衷成果。例如,能够找到8至16位的逐次迫临ADC,但在给定的系列产品中16位ADC的转化速率并不是最快的;并且在闪速ADC中,速率最快的不是12位ADC,而是6位或8位ADC。
上述图表扼要描绘了ADC技能的当时开展状况。跟着CMOS工艺的不断改善,逐次迫临转化的时刻已由曾经的数十微秒敏捷下降至数微秒。虽然并非一切的技能进步都将对一切类型的转化器发生影响,CMOS工艺的改善仍将进步各类转化器的速率,但在ADC芯片上增加更为杂乱的DSP功用并不能改善逐次迫临转化器的功用。DSP功用能够改善sigma-delta型ADC,由于该产品能够在芯片上增加更好、更快,也更杂乱的滤波器。
采样与坚持
ADC转化直流信号的作业原理简略明晰。但假如在转化期间输入信号的改动超越一个最低有用位(LSB),ADC将得到不正确(或至少是不准确)的成果。减小差错的一种办法是在ADC之前增加低通滤波器,并挑选恰当的参数以保证ADC的输入在一个转化周期中的改动不超越一个最低有用位。
处理改动的输入信号的另一种办法是在ADC之前增加采样-坚持(S/H)电路,图3显现了采样-坚持电路的作业原理。S/H电路具有带有操控输入的模仿(固态)开关,当开关闭合时,输入信号将衔接至坚持电容,而缓冲器的输出将盯梢输入。当开关敞开时,输入信号将与坚持电容断开。
图中还给出了S/H的作业波形,S/H输入衔接一个缓慢上升的信号,当操控信号较低时(采样方式),输出将盯梢输入;跟着操控信号的增强(坚持方式),输出将与输入的坚持电容断开,并坚持在S/H切换至坚持方式时的输入值。当电路再次闭合,电容敏捷充电,输出再次盯梢输入。一般S/H在ADC转化开端前切换至坚持方式,而当转化完毕后切回至采样方式。
在抱负条件下,坚持电容不会发生漏电并且缓冲放大器具有无穷大的输入阻抗,因此输出将坚持安稳。但在实践中,坚持电容会漏电,并且缓冲放大器的输入阻抗是有限的,因此输出电平将跟着电容放电发生缓慢的漂移。
S/H电路在坚持方式下坚持输出的功用取决于坚持电容的质量、缓冲放大器(首要是输入阻抗)的特性和采样/坚持开关(实践的电子开关在开路时总会有漏电)的质量。坚持方式下输出呈现出的漂移量称为固定差错率(droop rate),可用毫伏/秒、毫伏/微秒或微伏/微秒来表明。
实践中,S/H电路由于电子开关无法抵达抱负状况而具有有限的输入阻抗。这意味着在采样方式下,坚持电容需求经过某些电阻进行充电,这约束了S/H可获取的输入速率。S/H在采样方式下为取得满刻度输入一切必要坚持的采样时刻称为收集时刻,单位是纳秒或微秒。
采样时一些电阻与坚持电容相串联,这样的作用等同于低通RC滤波器。这无疑约束了S/H所能获取的最大频率,该频率称为满功率带宽,单位是千赫或兆赫。
如前所述,由于电子开关无法抵达抱负状况,某些输入信号将呈现在输出中,即便在坚持方式下也是如此,这种状况称为馈通,单位是分贝。
输出偏移表明输入信号与输出信号之间的差异,S/H电路数据表一般以毫伏的方式表明坚持方式下的偏移和采样方式的偏移。
运用软件
运用S/H的ADC体系有必要能处理硬件异常状况。在某些体系中,软件经过端口或寄存器输出位直接操控S/H的操控输入。S/H一般置为采样方式,而软件有必要满意收集时刻要求。在某些体系中,这项作业的完结只是只需将S/H置为采样方式,直到需求转化停止。
当S/H置为坚持方式后,另一位(或写入地址,或进行其它操作)将发动ADC。转化完结后,软件将读取成果。可是,一旦异常中止(或呈现最坏状况的中止仓库)导致S/H的输出电路改动至少一个最低有用位,将会呈现问题。这种状况一旦发生,软件有必要在S/H切换至坚持方式之前制止中止,并在开端转化之前敞开中止,这样就能保证ADC在发生S/H差错之前完结转化作业。
软件还有必要能调理S/H的充电时刻。当电子开关闭合并与S/H电容的输入信号连通时,电容有必要在有限的时刻内充电,由于此刻开关和任何驱动输入的电源都将具有非零阻抗。假如这些阻抗之和充沛大,软件将需求增加推迟,以使得坚持电容在转化之前,在终值的一个最低有用位改动以内有充沛的时刻进行充电。
内部微操控器ADC
许多微操控器均带有片上ADC。典型的器材包括Microchip的PIC167C7xx系列产品和Atmel的AT90S4434。大多数微操控器ADC选用逐次迫临法,由于这种办法能对转化速率和微操控器裸片空间本钱进行最佳折衷。
P%&&&&&%16C7xx微操控器包括一个带有模仿输入多路复用器的8位逐次迫临ADC。该系列微操控器具有4至8个通道,内部寄存器操控所选的通道并发动转化。输入一旦选定,在发动A/D转化之前,有必要经过一段安稳时刻使S/H%&&&&&%充电。软件有必要保证上述操作所需的推迟时刻。
转化准确度
一些微操控器(如Microchip系列产品)答应运用一个输入引脚作为参阅电压,该引脚一般与某种精细参阅电源相连。转化后从A/D转化器上读取的值为:
(Vin/Vref)×256
某些微操控器运用电源电压作为参阅。在5V体系下,这意味着Vref为5V。因此选用8位ADC丈量3.2V信号将得到如下成果:
(Vin×256)/Vref =(3.2v×256)/5V =16310 =A316
可是得到的成果还取决于5V电源值。假如电源电压超越1%,即为5.05V,那么A/D转化的成果将为:
(3.2V×256)/5.05V=16210=A216
因此电源电压1%的改动将导致转化成果计数改动1。典型电源的电压改动规模为2%或3%, 因此电源电压的改动将对转化成果发生显着的影响。电源电压的输出常常遭到电源间负载、温度、沟通输入改动的影响。
这儿提出了一个影响一切ADC规划的问题:参阅电压的准确度。典型的ADC参阅电压可为2.5V额外值,但可在2.47V和2.53V(这些数值来自数据表的实数部分)之间改动。假如选用10位的ADC,在上述给定的参阅规模极限条件下,转化2V的输入将得到如下成果:当Vref=2.47V时, 转化成果=(2V×1,024)/2.47=82910;当Vref = 2.53V时,转化成果=(2V×1,024)/2.53=80910。
各部分之间参阅电压的改动可导致输出发生20个计数的改动。图4显现了参阅改动对ADC成果的影响。虽然差错的百分比在整个规模内保持不变,但ADC值越大,差错值显着也越大。
软件校对
有时由于需求得到准确的参阅电压,对准确度的要求乃至超越了产品本钱所能接受的规模。当无法进行手艺调理时,即可选用软件来补偿参阅电压的改动。这一般可经过供给已知的用于校对ADC的准确输入来完结。这个参阅电压能够十分准确(当然也十分贵重),由于只要很少的出产线需求这类参阅电压。
在上述2.47V示例中,ADC的输入可选用2V的准确电压。当软件读取ADC时,知道正确的值应为819,由此校对常数为829/819,或1.012。类似地,2.53V参阅电压的校对常数为809/819,或0.988。
这意味着需求浮点运算来校对ADC值。假如运用的处理器可处理浮点运算,那么这种办法便是可取的。但关于比较简略的处理器,则有或许不具有必要的处理时刻或代码空间来完结浮点运算。
进行ADC校对的一种有用办法是查表。但该办法的缺点是需求满意大的固定存储器来保持对应于每个或许的ADC值的查表值,关于10位的ADC,查表需求1024字的存储空间。
电压参阅与其额外值恰当挨近,不然就不能称其为参阅了。假定在作业温度中参阅电压满意安稳,ADC差错占ADC读数值的百分比将是安稳的。由于ADC具有有限的分辩率,精度校对ADC差错的精度不会大于1LSB。
这样咱们就可按下面给出的办法简化ADC的校对工艺。作为查询表的代替,咱们能够别的存储一个值,该值告诉软件将要从ADC读取值中增加或删去的(二进制)百分比,由此校对差错。咱们能够增加或删去输入的1/8、1/16或1/24,但都将导致准确度下降1 LSB。咱们只需存储单个校对常数,而除法运算则可由一系列移位加或移位减运算完结。
上述2.47V示例可由ADC值与.988相乘的成果加以校对,也可经过初始值减去1/128,再减去1/256和1/512得到相同的成果。在初始的2V示例中,选用整数表明法,可得到如下成果:
829-829/128-829/156-829/512 =829-6-3-1 =819
上述成果将ADC读取值校对为819,这是额外参阅电压为2.5V条件下的抱负值。类似地,2.53V参阅电压可经过增加1/128 和1/256加以校对。
咱们还有必要坚信在希望的作业温度规模内参阅电压充沛安稳,不然在希望温度邻近只能得到较好的校对成果。假如参阅电压的温度安稳性不行好,那么有必要挑选更好的参阅电压,或许将作业温度规模分为多个段并在每个段上运用不同的校对值。当然,这也意味着需求运用热敏电阻或其它办法来丈量温度。
该办法经过对移位成果进行切断舍入而完结舍入差错处理。在2.47V示例给出的电子表格中,一切景象下的校对值均在抱负值的两个计数以内。大多数校对值都是正确无误的,或许仅差错一个计数。2V输入条件下得到的校对成果显着优于开端的差错(10个计数),这正好满意了许多运用体系的需求。假如运用体系连这点差错都无法接受,那么的确需求更好的参阅电压或许求助于手艺调理。
校对技能相同可用来补偿其它体系的不准确度,如电阻累计差错。假如所丈量的体系包括电压输入,即可在输入中运用准确电压,并进行恰当的校对,由此在ADC中补偿参阅输入的改动并在输入条件下补偿电阻公役的影响。
校对值的核算和运用
校对值可经过读取已知的参阅输入并找到恰当的校对系数(二进制系数)核算得到。关于上述给定的示例,抱负值与最坏条件下的ADC值之间的差异将不会超越1.2%,因此初始值的1/2和1/4中不会呈现分数,而能被测验和运用的值只能为1/128、1/256和1/512。这样就能够从挨近希望值的当地开端作业。
咱们能够容易地运用核算器求得校对系数,但假如要在运用体系的固定点处理器上核算校对系数,那么还需求选用依据整数的办法。依据该办法,单个字节(或字)用来存储校对常数,而第7位指示参阅电压的凹凸状况(如参阅电压为低,则需减去校对值,不然加上校对值)。第0、1和2位指示是否需求运用1/128、1/256和1/512系数。
当然也可为每个或许的系数别离运用一个字节,其间第4个字节指示参阅电压的凹凸状况。
写入校对值
不论运用表格仍是校对常数,怎么使校对值写入体系呢?任何校对规划的一项要害组成部分便是固定存储器的有用性。许多微操控器都带有片上EEPROM,而校对一般在电路板测验过程中进行。在高产量环境下,校对或许能够运用某类自动测验设备加以施行。
咱们一般希望经过使引脚接地,将处理器置于某种“校对方式”中。出产测验设备可用程序加以操控,因此可在模仿输入运用十分准确的电压,并使校对引脚接地。微操控器可进入校对方式,并在该方式下读取参阅值并核算补偿值或生成检索表。
在某些景象下,由于内存不行而无法向微操控器增加校对代码。此刻就有必要使微操控器将ADC值回来至输出引脚(串联状况),或许回来至一组引脚(并联状况),该值由出产测验设备读取。这样外部核算机就能核算校对值或查表值,并经由相同的接口回来至微操控器。
假如出产测验设备能对微操控器的内部电路进行程序操控,那么校对数据就能嵌入闪存的程序数据中。假如校对的参阅电压在微操控器以内,那么测验设备首要有必要将校对程序载入微操控器中并运转校对程序,然后载入实践的运用代码。
可是某些十分小的微操控器由于没有足够的引脚,因此无法进行必要的校对。在这类景象中,有必要使输出引脚还充任校对引脚,能够选用外部电阻使该引脚完结此两层功用。出产测验设备一般在发动挑选校对方式之前使引脚接地。
上述功用完结中,微操控器发动时一切的引脚均处于输入状况,并在将校对引脚装备为输出引脚之前读取校对值。假如引脚的电压为高,则发动正常的作业方式;假如引脚的电压为低,则有必要在外部接地,由此使微操控器进入校对方式。当然引脚在外部接地时,输出不应对体系发生任何损坏。
假如要校对运用于备用ADC输入的准确参阅电压,那么能够运用备用输入自身对体系校对。只需运用一个电阻器即可在备用输入中使ADC电压归零(在上述示例中只需接地即可)。当引脚丈量得到的电压超越某些预先确认的阈值(即超越满标度电压的2/3)时,有必要使软件进入校对方式。
挑选校对电压时,有必要在参阅电压为最低或许值时,不使ADC抵达饱满时的最大值。这能保证核算校对常数(或表)时,不会由于校对常数的位舍入差错而下降准确度。这一般使校对电压高于满标度的90%,虽然希望能挑选最挨近规范的参阅电压以便利规划。
在某些运用中,还能够经过改动ADC的输入来处理参阅输入问题:能够选用改动规模为10%的光传感器,替代具有固定值的光传感器,或许选用改动规模为25%的温度传感器。当然还有必要考虑这些传感器的精度,但这已超出了本文评论的规模。
虽然有时很难确认哪种ADC适用于详细的运用体系,但该产品的多个系列使得咱们能够轻松地挑选满意需求的产品。使软件与硬件相匹配就能保证挑选的ADC满意运用体系的准确度和安稳性要求。
作者简介:
Stuart Ball在嵌入式体系规划范畴具有20余年经历的电器工程师,编写了3本有关嵌入式体系的书本。本文的内容节选自Stuart最新出书的作品“Analog Interfacing to Embedded Microprocessors”,该书由Butterworth-Heinemann公司出书。他的联络邮件:SBall85964@aol.com或 stuart@stuartball.com。
作者:Stuart Ball Email: SBall85964@aol.com或stuart@stuartball.com