設計目的
在儀表校準中,我們希望直流電壓源的精度與分辨率能夠足夠的高,因為這是儀表能否校準好的關鍵所在。然而單純使用單片DAC實現源的方法不僅成本高,而且各項性能并不能得到保證,特別是在動態(tài)范圍和分辨率上會產生矛盾。因此就設想使用一片雙通道的D/A轉換器來實現,即使用一個通道來實現電壓源的高精度,另一個通道來實現其對動態(tài)范圍的要求。這樣在節(jié)約了成本的同時,動態(tài)范圍與精度也都達到了要求。經過分析,使用雙12位D/A轉換器LTC1590完全可以實現動態(tài)范圍0~12.5V,分辨率為0.1mV的直流電壓源的產生。
設計實現
設計的思路是先產生一個分辨率為0.02mV,動態(tài)范圍為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倍后得到精調電壓,中間所加的精密數字電位器起調節(jié)分辨率的作用,最后精調電壓與粗調電壓相加便得到標準電壓Vstand。
精密數字電位器采用的是8位256檔的AD8400,設W為AD8400的調節(jié)比例(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的動態(tài)范圍的問題,而V的最小分辨率是由細調電壓V2”決定的,所以
V的分辨率=5×V2”分辨率=0.015W(mV)
由以上分析可知:使用這種方式得到的V的輸出動態(tài)范圍可以達到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來進行細調。但是實際不可能在整個動態(tài)范圍得到恒定的 3.06525mV改變量,這點已經在調試的過程中得到了證實,而純粹的使用程序消除不了這種由于器件非線性引起的誤差。
于是需要測量具體V1對V貢獻的電壓值,再通過V2進行細調。如此的話需要測試整個V1的4096個值,這是現階段實現不了的(在以后如果引入 自動測試的話或許可以進行)也是沒有必要的。分析精調電壓V2可以進行調節(jié)的范圍為0.001×4096=40.96mV>30.6525mV,因 此V1可以以10倍的步進進行改變,如此需要進行測量的值最多在409個,能夠做到。
具體實現的方法是:第一步,恒定V2的值為0,然后以10倍步進改變V1,即分別給V1寫值0、10、20、30……4080、4090,記錄 下的這些值即是對應的V1對V的貢獻值;第二步,恒定V1為0,以較大步進例如100來改變V2的值,通過這些值計算出V2對應的平均步進,通過修改數字 電位器來使其滿足0.01mV;第三步,把V1所對應的貢獻電壓值寫入程序中;第四步,當要求輸出某個電壓時,先通過算式算出所需要的V1的值,再通過查 表得到V1對V的貢獻值,然后通過算式確定V2的值,最后對V1、V2寫值,得到最終電壓V。
除了上述消除非線性誤差的方法,還使用了針對線性誤差的校準方式,在此不做詳細描述,簡單來講是使用了單片機的IAP功能來記錄誤差然后運用算式進行消除。
測試實驗
由于電壓輸出的動態(tài)范圍0~12.5V,分辨率為0.1mV。因此,所包含的點數為125000。如此多的點數在測試時,不可能也無需完全測量,只需測量不同輸出段的多個點,來說明系統整體的性能指標。
結語
觀察上表,部分的輸出電壓有0.1mV的誤差。這是由于在系統定標校準時(進行前述的消除非線性與線性誤差的方式),采用的是HP34401進 行的系統定標,HP34401是五位半的萬用表,與本系統的精度一致,因此在定標時就引入了系統誤差,而在測試實驗中依然采用的是HP34401,這就造 成了部分數據的測試誤差。若采用六位半精度以上的萬用表進行系統定標以及測試,相信精度以及測試結果會更好。不過如今以本人所擁有的實驗條件已經得到了令 人滿意的實驗結果:即通過本文所闡述的此種方法確實能夠低成本地實現高精度直流電壓源。