ADC技术帮助实现更精确测量
扫描二维码
随时随地手机看文章
任何计量和医疗测量应用的一个关键考虑和成功因素就是模数转换器(ADC)模块。仪表和监视器将真实世界中的信号,即(定义上所说的)模拟信号,转换到数字电子领域来处理、记录和应对。用微控制器(MCU)读取并由ADC模块进行转换的最常见的测量信号是电压和电流,因为所有传感器都能够转换到这一电子领域。系统设计人员为其应用选择一款带有最合适ADC模块的MCU,并不像寻找信号粒度那样简单。分辨率只是部分考虑因素,除此之外,还要分析速度、线性度、噪声和其他导致测量误差的因素,并了解它们的影响。首先要找到一款合适的MCU产品,其次是了解ADC模块并使用该模块,以最大程度地减少不利影响,甚至将这些因素转化为系统的优势。
电表、高精度医疗设备等应用需要测量非常小的信号,因此,在为应用设计选择MCU时,ADC的分辨率通常是一个关键性的参数(即10位、12位或16位分辨率)和考量因素。需要记住的是,所有ADC都存在固有的误差,因为它们需要对真实世界的信息进行转换,以离散的步长将信号进行数字化,这个过程被称为量子化。因此,数字输出不能完美地表示模拟输入信号。例如,对于5V的最大输入电压,一个16位转换器将提供的最低有效位(LSB)步长为76uV。因此,ADC只能以76uV的步长(76uV、152uV、228uV等)对数值进行数字化。对于这种情况,这意味着在最理想的情况下,测量结果的精度绝不会优于±0.5LSB(±38uV)。
电表必须能够准确地测量一个比较大的电流范围。一款典型的美国电表需要以1%的精度读取从0.25A到200A范围的电流。这相当于800个精度为1%的等级(200/0.25),即80,000(800*100),等价于16位。横跨这一电流范围的电表最大电压非常小(<1V=,因此,使用了差分对输入将电压精度降低到5uV左右的水平。
类似地,在一个高精度医疗器件中,如小型血样葡萄糖测定仪(0.3μl),也需要很高的ADC精度。缩小可测量的电压带差分输入,将可比单端输入提供更好的抗噪声性能。ADC输入信号线相当于天线,收集环境电活动(噪声)。使用单端输入时无法分辨信号和噪声,但是差分输入的两种输入具有相同的噪声,从而有效地消除了噪声。在实践中,差分输入放大器并未实现完美的匹配,因此转换结果可能会出现小部分的噪声电压。差分输入放大器与理想情况的接近程度用共模抑制比(CMRR)表示。
不同类型的ADC具有不同的速度(转换时间)。转换时间与通道数成正比。对于一个逐次逼近型ADC(可在飞思卡尔支持16位ADC的9S08MM、MCF51MM、MCF51EM和9S08LH MCU系列中找到),转换时间将随着通道数的对数而变化。由于模拟技术本质上较数字技术慢,因此随着通道数的增加,所需的转换时间也将增加。在速度与精度之间需要进行一定程度的权衡。这些逐次逼近型ADC包含获取输入电压(VIN)的采样和保持电路、一个比较器、一个逐次逼近型寄存器子电路和一个内部参考电容数模转换器(DAC)(图1)。DAC为比较器提供一个模拟电压,它等值于从逐次逼近型寄存器(SAR)输出的数字代码,这个模拟电压是为了和VIN相比较。
再次以电表为例,市电电压/电流信号有一个基本的频率(50/60Hz,因国家而异)。所需的ADC采样频率通常被作为测量电源频率(50/60Hz)的21次谐波所需频率。这要求采样频率达到2*21*60,即2.52kHz或约400us。这意味着所有必需的测量都必须在400us内完成。但是,由于电流互感器线圈或类似的系统电路会使电路测量失真,从而产生滞后,这将导致更严格的频率要求。这种滞后意味着,在规定时间内进行电流转换之前,必须先完成前一个电压转换。针对每个CT对这种延迟进行了校准,但是转换速度可能会降低到所需的5us以下。可取的解决办法是使用具有可编程同步硬件触发机制的多个独立的ADC模块。飞思卡尔的9S08MM、MCF51MM和MCF51EM微控制器提供了一种可编程延迟模块(PDB)来完成这一任务。
一些ADC器件具有可设置的转换时间。任何缩短采样时间的方法都会对转换精度产生负面影响,因为这将增加采集误差,误差产生的原因是采集电路无法在分配的时间内为ADC的输入端充满电荷。如果不能及时确定结果,缩短SAR保持时间也将增加误差的机率。这些误差的严重程度取决于ADC和实现方案,但总的原则是允许ADC拥有应用能够处理的足够长的比较时间。
不幸的是,其他一些嵌入式ADC特性引入了误差并降低了精度,包括偏移、增益、温度漂移和非线性性能。一些ADC,如飞思卡尔最新产品中的16位ADC,具有通过校准减小偏移和增益误差的能力。校准过程分为三个步骤:采样、比较和取近似值,可用于调整转换结果。许多ADC在端点处表现出一些非线性特性,因为很难测量与参考相同的信号。通常在产品电气特性中规定的零标度和满量程误差可以应用于转换结果标度的极端情况。仅考虑这两个误差,就可以计算出地电势与电源之间调整后的传递函数(图2中的绿色虚线)。另一种查看这些误差的方法是借助偏移和增益。一些ADC模块能够通过预定的增益调整和偏移调整来调整结果(通过校准),这些调整改进了调整后的传递函数,从而能够更好地表示理想的传递函数(图2中的蓝线)。
ADC的非线性特性无法由系统纠正,必须由模块设计人员解决。存在两种类型的非线性特性,即差分非线性和积分非线性。对很多控制应用来说,差分非线性(DNL)是ADC最关键的性能测量指标,因为它代表了ADC将输入电压的微小变化与代码转换的正确变化相关联的能力。DNL指每次转换的当前代码宽度(CCW)与理想代码宽度(ICW)之差。积分非线性(INL)通过凸显当前和理想的转换电压之差来表示实际传递函数中的曲率。很多的ADC都能够通过一个与ADC通道内部相连的片上温度传感器测量芯片的温度,如果温度补偿曲线已知,则允许包含温度补偿,一般通过产品开发期间所控制的环境表征来实现。
这些误差可以被汇总并表示为总的未调整误差(TUE)数,通常在一些LSB中引用。TUE指最大误差(大于或小于理想的直接传递函数),包括前述的DNL、INL、零标度和满量程误差,或者指实际传递函数与理想ADC之间的最大偏离。
一个ADC的有效位数(BNOB)是分辨率和精度的真实指标。这个数值表明了在一个给定系统中有多少位提供了准确信息,即结果中有多少部分表示噪声,多少部分表示信号。可以通过以下公式计算:
ENOB=(SINAD-1.76dB)/6.02dB
其中,信号噪声及失真比(SINAD)是指有用信息(信号)和背景噪声(噪声或误差)之间的比率。SINAD值不仅受到ADC设计和芯片集成的影响,还受到PCB的布局和设计,以及所选附加分立元器件的影响。较大的SINAD值意味着较多的信号是数据并且误差很小,这能改进测量微伏级变化的信号时测量结果的精度。较小的SINAD值意味着信号被系统中的噪声干扰,精度受到影响。
了解ADC模块电气规范中的数据,将有助于根据系统需求作出明智的决策,但是除此以外,还可以应用一些技术来改善转换结果的分辨率和准确性。第一种技术称为抖动。在一个ADC的输入端添加少量的受控噪声(0.5LSB高斯白噪声),可强制信号处于最接近的分辨率步长之上或之下,从而可避免必须向下舍入到该值以下。转换的LSB状态将在0和1之间随机振荡,而不是维持在一个固定值上。通过引入微小噪声,我们扩展了ADC能够转换的信号的有效范围,而不是简单地去除了在这个低电平上的所有信号(仅被量化成一位的分辨率)。事实上,此量化误差涵盖了一系列的噪声值。抖动仅增加了采样电路的分辨率,改善了线性度,但并没有提高精度。不过,通过在信号上增加1~2位LSB噪声并采用过采样的技术却可以提高精度。
在向信号添加人工噪声时,一定要注意噪声的平均值必须为0。但许多系统具有来自其他噪声源的白噪声,包括热噪声、CPU核、开关端口和电源的变化。血压监测仪尤其容易受白噪声影响,因为血液脉动会产生电磁干扰和振荡等,它们将被PCB吸收,进而进入到微控制器。
过采样是指采样频率远远高于被采样信号的尼奎斯特(Nyquist)频率的信号采样过程。实际上,过采样用于实现成本更低、分辨率更高的ADC转换。例如,要实现16位转换器,只需要使用12位转换器以目标采样率的256倍频率运行。对每一个附加分辨率位,信号必须以4倍频率过采样。对一组256个连续的12位采样数据取平均值,可使结果的分辨率增加4位,这样就产生一个16位的分辨率。因为现实世界的ADC并不能瞬间完成转换,所以输入值应当在转换器进行转换期间保持恒定。采样和保持电路通过用一个电容储存输入端的模拟电压,并用一个电子开关将电容从输入端断开的方式来完成这一任务。使用设置好最适合输入信号的采样和保持时间的ADC,将帮助改进转换结果的精度。
可以将以上两种方法(噪声注入和过采样)结合起来,更进一步地改善精度。这一技术通常被认为是过采样和抽取。通过增加1~2个噪声LSB,同时进行的采样不会产生相同的结果。这个方法增加了SINAD并且提高了ENOB。通过在输入信号处增加1~2个噪声LSB和过采样,结果被平均后可以提供一个更精确的值。从ADC测量中获得的平均数据还能使输入信号中的毛刺变平,从而具有减小信号波动和噪声的优点。普通噪声的平均值将一直保持为0,因此,通过平均同时进行的采样结果,可以减弱噪声的影响。系统所应用的平均数量取决于信号变化的速率和所需的采样间隔。一些ADC模块内置有取平均值的能力(图3)。
以上概念都被融入到系统的软件设计之中,但是还有一些硬件改进技术也可以提高转换精度。许多电路(特别是电池电压和温度检测电路)使用高值电阻分压器生成模拟参考。通常,电容器被放置于输入端,这将使模拟交流电源的源阻抗降低,因此,ADC将能够恰当地获取到信号。PCB本身的固有电阻小于1MΩ。模拟输入端的漏电流(IIN)通常要求不超过1μA,其典型值一般在25nA左右。这种漏电流将会产生误差(EIL):
EIL=IIN*RAS
其中,RAS是ADC电压源的模拟源电阻。消除这种误差的最佳方式是,在系统可控范围内减少RAS和任何形式的漏电流(如PCB漏电)。
系统电源也会以噪声形式影响转换精度。如果ADC使用噪声较大的电源(包括ADC电压参考),那么将无法准确地表示传感器正在输出的电平。有几种ADC设计方法可以去除一些电源噪声,但是消除电源噪声的最佳方式是为转换营造一个安静的环境。MCU提供的一些模式可以暂停CPU和各种外设。飞思卡尔Flexis模式就被称为WAIT模式。在这种环境下,器件没有驱动输出,但是ADC转换仍然会发生并中断CPU,即快速唤醒器件,完成转换后将恢复所有的操作和通信。
最难消除的噪声是同步噪声,这种噪声的参数与转换调度相同。这类噪声可以伪装成增益或偏移误差。减少这种影响的唯一方法就是针对同步噪声来改变转换时间,这种做法只有在噪声源具有较低频率时才有效。许多随机噪声很难预防,如EMC事件、线路噪声和白噪声,因为它们具有随机性,但是通过过采样取平均值可以起到一定的作用。
能源计量已经成为一种示例应用,这类应用要求准确的模拟信号转换。另一个应用是医疗设备,在下面的例子中,家用便携式血糖测计仪具有MMS功能。所有这些便携式家用医疗产品都要求具有较长的电池寿命、快速的响应时间、强大的数据处理及有线和无线通信接口。基于微机电系统(MEMS)的压力和加速度传感器可用于采集物理参数,这些参数提供自然、连续的信号电压或电流的精密和准确转换,从而使MCU能够通过ADC模块来处理它们(图4)。
糖尿病患者需要随时监控身体的血糖含量并采取相应的措施。因此,家用医疗市场开发了家用医疗产品,从而使患者能够更轻松地完成上述行为。这些设备均由电池供电,带有相对简单的用户界面。现在的仪表都带有日期/时间时钟和存储器,许多仪表能够将数据传输到计算机中,甚至通过手机网络传送到医生的诊疗室。一些血糖检测仪具有直流马达,可以将刺血针插入到皮肤中来收集血样。血样发生的化学反应将产生电流。电流的大小与血样中的葡萄糖含量相对应。这些葡萄糖含量在1毫克/分升范围内。葡萄糖含量的读数只需花几秒钟时间就达到其最大值,此时要求具有稳定的参考电压。家用血糖检测仪的准确度是大家都比较关心的一个问题,因为它们必须满足国际标准组织(ISO)15197精度标准,标准规定,对于浓度超过75mg/dl或更低浓度的绝对水平,血糖检测仪的检测结果在95%的情况下都必须在实验室标准的20%以内。影响仪表精度的因素包括仪表校准、环境温度、血样容量和质量、血液中含量较高的其他物质、血细胞比容、仪表中的污垢、湿度,以及测试条的老化。
这些要求是针对整个系统而言。如果所有有源电子系统元件都有精度要求,则ADC所需规格通常为16位分辨率,ENOB>13.5位,最少4个差分成对输入(两个差分对),速率大于100kHz。每个血糖仪厂家都会根据使用的组件和特殊算法以自己的方式来划分精度,但是以上参数统一被市场所用。
本文小结
对于任何的医疗测量或计量系统来说,最大的挑战就是将真实世界的模拟信号精确地转换到嵌入式控制器的数字域。高分辨率的ADC提供了高粒度的结果(LSB表示nV的变化),但是不一定能提供应用所需的精度。许多引起误差的因素不可避免,因为无法实现完美的模数转换。不过,不同的ADC技术,例如取平均值、过采样和抽取、校准、泄漏控制、噪声降低和温度补偿,可以被用来提高转换精度(TUE)和ADC ENOB。
飞思卡尔公司的Flexis微控制器MM256/128和JE256/128器件在一个可互换的8位或32位微控制器上实现了超低功率操作、USB连接、图形显示支持和出色的测量精度,允许器件设计人员以较低的成本设计出功能丰富的产品。此类器件适用于工业控制、仪表和医疗应用,或其他任何需要大量高精度模拟的应用。器件为设计者提供了高分辨率ADC和DAC模块两种选择,并且JE256/128器件还将通用的运算放大器和跨阻放大器集成到了微控制器中。这些高度集成的微控制器具有丰富的外设集合,包括一个USB 2.0控制器、多个串行接口和一个外部总线接口。与飞思卡尔控制器系列中的其他USB微控制器一样,MM256/128器件也得到医疗应用USB栈支持。这种免费赠送的USB栈目前支持MSD、HID、CDC和个人医疗器件类应用(PHDC),而医疗设备连接库支持设备间的通信(符合IEEE11073)。此外,飞思卡尔的MQX软件能够支持实时的操作系统(RTOS)功能和USB栈。