微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 模数转换器与嵌入式微处理器的接口技术

模数转换器与嵌入式微处理器的接口技术

时间:06-04 来源:互联网 点击:

软件校正

有时由于需要得到精确的参考电压,对精确度的要求甚至超过了产品成本所能承受的范围。当无法进行手工调节时,即可采用软件来补偿参考电压的变化。这通常可通过提供已知的用于校正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满足应用系统的精确度和稳定性要求。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top