设计目的
在仪表校准中,我们希望直流电压源的精度与分辨率能够足够的高,因为这是仪表能否校准好的关键所在。然而单纯使用单片DAC实现源的方法不仅成本高,而且各项性能并不能得到保证,特别是在动态范围和分辨率上会产生矛盾。因此就设想使用一片双通道的D/A转换器来实现,即使用一个通道来实现电压源的高精度,另一个通道来实现其对动态范围的要求。这样在节约了成本的同时,动态范围与精度也都达到了要求。经过分析,使用双12位D/A转换器LTC1590完全可以实现动态范围0~12.5V,分辨率为0.1mV的直流电压源的产生。
设计实现
设计的思路是先产生一个分辨率为0.02mV,动态范围为0~2.5V的基本电压信号Vstand,然后通过放大电路将该基本电压放大5倍,就可以得到0~12.5V,分辨率为0.1mV的直流电压,从而实现高精度的电压源。因此,该设计中最核心的部分是标准电压信号Vstand的产生。
标准电压信号Vstand的产生
本设计中使用的是双12位D/A芯片LTC1590CN,示意图如图1所示。
D/A1、D/A2分别代表的是LTC1590中两个独立的、精度都为12位的D/A转换器。参考电压都采用AD780提供的2.5V电压。D/A1用来提供粗调电压V1。D/A2输出的电压V2经过衰减200倍后得到精调电压,中间所加的精密数字电位器起调节分辨率的作用,最后精调电压与粗调电压相加便得到标准电压Vstand。
精密数字电位器采用的是8位256档的AD8400,设W为AD8400的调节比例(0≤W≤1),可以得到:V2’=V2×W
于是V1分辨率=2.5V/212=2.5V/4096=0.61035(mV)≈0.61 (mV),
V2”分辨率=V2’分辨率/200=W×V2分辨率/200=W×2.5V/4096×200 ≈0.003W(mV)
则V1=V1分辨率×N, V2”=V2”分辨率×M(N,M=0~4096的整数)
最终的输出电压V为V1、V2”之和放大5倍,于是有:
V=5×Vstand=(V1+V2”)×5=(V1分辨率×N+V2”分辨率×M)×5
由于V1是粗调电压,解决的是V的动态范围的问题,而V的最小分辨率是由细调电压V2”决定的,所以
V的分辨率=5×V2”分辨率=0.015W(mV)
由以上分析可知:使用这种方式得到的V的输出动态范围可以达到0~12.5V,而分辨率约为0.015W (mV),若W=1(即不采用AD8400),0.015mV与0.1mV不构成整数倍关系,单纯的由程序控制不能达到0.1mV的分辨率要求。这就是为 什么要采用精密数字电位器的原因。
当W=171/256时可以得到V的分辨率=0.015W =0.01mV
这样我们就从理论上得到了最后输出的电压源的分辨率可以达到0.01mV,不仅完全可以满足系统所要求的0.1mV分辨率,还留有充足的余量,使得V的输出可以通过对精密数字电位器以及D/A2的软件修正来进行校准,从而避免由于元器件温度漂移、D/A非线性误差等对输出造成的影响。
产生Vstand的电路图如图2,Vstand在图2中是网络标号STAND_VOL所代表的信号。
高精度电压源V的产生将Vstand放大5倍输出即可得到最终需要的高精度电压源。该部分原理图如图3所示。
为了保证精度,整个系统的电路中所使用的运算放大器都是采用的高精度运放OPA2277PA。AD780AN提供2.5V的基准参考电压,TPS76350与TC7660分别提供部分芯片需要的±5V电压,使用LT1316CS8构成24V的升压模块,这些部分的电路原理图在此不作详细介绍。
系统采用单片机SST89E58RD2进行控制,另外的功能模块以及外围的键盘输入、液晶显示电路在此不作详细介绍。最终的硬件实物如图4所示。
硬件电路搭好之后,通过单片机程序将AD8400的值设为(向AD8400的寄存器写数据),然后通过算法将预输出的电压值分别拆分成D/A1、D/A2各自需要输出的电压再将值写入LTC1590的寄存器中,便可从输出端得到直流电压V。以上是整个系统的程序流程图,先前一直介绍的便是此过程校准仪所拥有的4个功能中的电压输出功能。
重写先前的算式V=5×Vstand=(V1+V2”)×5=(V1分辨率×N+V2”分辨率×M)×5,V1相对于最终输出电压V的贡献应该 是提供V1分辨率×5=0.61305×5=3.06525mV的改变量,然后通过V2来进行细调。但是实际不可能在整个动态范围得到恒定的 3.06525mV改变量,这点已经在调试的过程中得到了证实,而纯粹的使用程序消除不了这种由于器件非线性引起的误差。