過程校準(zhǔn)儀中高精度電壓源的設(shè)計*
設(shè)計目的
本文引用地址:http://m.butianyuan.cn/article/81670.htm在儀表校準(zhǔn)中,我們希望直流電壓源的精度與分辨率能夠足夠的高,因為這是儀表能否校準(zhǔn)好的關(guān)鍵所在。然而單純使用單片DAC實現(xiàn)源的方法不僅成本高,而且各項性能并不能得到保證,特別是在動態(tài)范圍和分辨率上會產(chǎn)生矛盾。因此就設(shè)想使用一片雙通道的D/A轉(zhuǎn)換器來實現(xiàn),即使用一個通道來實現(xiàn)電壓源的高精度,另一個通道來實現(xiàn)其對動態(tài)范圍的要求。這樣在節(jié)約了成本的同時,動態(tài)范圍與精度也都達(dá)到了要求。經(jīng)過分析,使用雙12位D/A轉(zhuǎn)換器LTC1590完全可以實現(xiàn)動態(tài)范圍0~12.5V,分辨率為0.1mV的直流電壓源的產(chǎn)生。
設(shè)計實現(xiàn)
設(shè)計的思路是先產(chǎn)生一個分辨率為0.02mV,動態(tài)范圍為0~2.5V的基本電壓信號Vstand,然后通過放大電路將該基本電壓放大5倍,就可以得到0~12.5V,分辨率為0.1mV的直流電壓,從而實現(xiàn)高精度的電壓源。因此,該設(shè)計中最核心的部分是標(biāo)準(zhǔn)電壓信號Vstand的產(chǎn)生。
標(biāo)準(zhǔn)電壓信號Vstand的產(chǎn)生
本設(shè)計中使用的是雙12位D/A芯片LTC1590CN,示意圖如圖1所示。
D/A1、D/A2分別代表的是LTC1590中兩個獨立的、精度都為12位的D/A轉(zhuǎn)換器。參考電壓都采用AD780提供的2.5V電壓。
D/A1用來提供粗調(diào)電壓V1。D/A2輸出的電壓V2經(jīng)過衰減200倍后得到精調(diào)電壓,中間所加的精密數(shù)字電位器起調(diào)節(jié)分辨率的作用,最后精調(diào)電壓與粗調(diào)電壓相加便得到標(biāo)準(zhǔn)電壓Vstand。
精密數(shù)字電位器采用的是8位256檔的AD8400,設(shè)W為AD8400的調(diào)節(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的整數(shù))
最終的輸出電壓V為V1、V2”之和放大5倍,于是有:
V=5×Vstand=(V1+V2”)×5=(V1分辨率×N+V2”分辨率×M)×5
由于V1是粗調(diào)電壓,解決的是V的動態(tài)范圍的問題,而V的最小分辨率是由細(xì)調(diào)電壓V2”決定的,所以
V的分辨率=5×V2”分辨率=0.015W(mV)
由以上分析可知:使用這種方式得到的V的輸出動態(tài)范圍可以達(dá)到0~12.5V,而分辨率約為0.015W (mV),若W=1(即不采用AD8400),0.015mV與0.1mV不構(gòu)成整數(shù)倍關(guān)系,單純的由程序控制不能達(dá)到0.1mV的分辨率要求。這就是為什么要采用精密數(shù)字電位器的原因。
當(dāng)W=171/256時可以得到V的分辨率=0.015W =0.01mV
這樣我們就從理論上得到了最后輸出的電壓源的分辨率可以達(dá)到0.01mV,不僅完全可以滿足系統(tǒng)所要求的0.1mV分辨率,還留有充足的余量,使得V的輸出可以通過對精密數(shù)字電位器以及D/A2的軟件修正來進(jìn)行校準(zhǔn),從而避免由于元器件溫度漂移、D/A非線性誤差等對輸出造成的影響。
產(chǎn)生Vstand的電路圖如圖2,Vstand在圖2中是網(wǎng)絡(luò)標(biāo)號STAND_VOL所代表的信號。
高精度電壓源V的產(chǎn)生
將Vstand放大5倍輸出即可得到最終需要的高精度電壓源。該部分原理圖如圖3所示。
為了保證精度,整個系統(tǒng)的電路中所使用的運算放大器都是采用的高精度運放OPA2277PA。
AD780AN提供2.5V的基準(zhǔn)參考電壓,TPS76350與TC7660分別提供部分芯片需要的±5V電壓,使用LT1316CS8構(gòu)成24V的升壓模塊,這些部分的電路原理圖在此不作詳細(xì)介紹。
系統(tǒng)采用單片機(jī)SST89E58RD2進(jìn)行控制,另外的功能模塊以及外圍的鍵盤輸入、液晶顯示電路在此不作詳細(xì)介紹。最終的硬件實物如圖4所示。
硬件電路搭好之后,通過單片機(jī)程序?qū)D8400的值設(shè)為(向AD8400的寄存器寫數(shù)據(jù)),然后通過算法將預(yù)輸出的電壓值分別拆分成D/A1、D/A2各自需要輸出的電壓再將值寫入LTC1590的寄存器中,便可從輸出端得到直流電壓V。
以上是整個系統(tǒng)的程序流程圖,先前一直介紹的便是此過程校準(zhǔn)儀所擁有的4個功能中的電壓輸出功能。
重寫先前的算式V=5×Vstand=(V1+V2”)×5=(V1分辨率×N+V2”分辨率×M)×5,V1相對于最終輸出電壓V的貢獻(xiàn)應(yīng)該是提供V1分辨率×5=0.61305×5=3.06525mV的改變量,然后通過V2來進(jìn)行細(xì)調(diào)。但是實際不可能在整個動態(tài)范圍得到恒定的3.06525mV改變量,這點已經(jīng)在調(diào)試的過程中得到了證實,而純粹的使用程序消除不了這種由于器件非線性引起的誤差。
于是需要測量具體V1對V貢獻(xiàn)的電壓值,再通過V2進(jìn)行細(xì)調(diào)。如此的話需要測試整個V1的4096個值,這是現(xiàn)階段實現(xiàn)不了的(在以后如果引入自動測試的話或許可以進(jìn)行)也是沒有必要的。分析精調(diào)電壓V2可以進(jìn)行調(diào)節(jié)的范圍為0.001×4096=40.96mV>30.6525mV,因此V1可以以10倍的步進(jìn)進(jìn)行改變,如此需要進(jìn)行測量的值最多在409個,能夠做到。
具體實現(xiàn)的方法是:第一步,恒定V2的值為0,然后以10倍步進(jìn)改變V1,即分別給V1寫值0、10、20、30……4080、4090,記錄下的這些值即是對應(yīng)的V1對V的貢獻(xiàn)值;第二步,恒定V1為0,以較大步進(jìn)例如100來改變V2的值,通過這些值計算出V2對應(yīng)的平均步進(jìn),通過修改數(shù)字電位器來使其滿足0.01mV;第三步,把V1所對應(yīng)的貢獻(xiàn)電壓值寫入程序中;第四步,當(dāng)要求輸出某個電壓時,先通過算式算出所需要的V1的值,再通過查表得到V1對V的貢獻(xiàn)值,然后通過算式確定V2的值,最后對V1、V2寫值,得到最終電壓V。
除了上述消除非線性誤差的方法,還使用了針對線性誤差的校準(zhǔn)方式,在此不做詳細(xì)描述,簡單來講是使用了單片機(jī)的IAP功能來記錄誤差然后運用算式進(jìn)行消除。
測試實驗
由于電壓輸出的動態(tài)范圍0~12.5V,分辨率為0.1mV。因此,所包含的點數(shù)為125000。如此多的點數(shù)在測試時,不可能也無需完全測量,只需測量不同輸出段的多個點,來說明系統(tǒng)整體的性能指標(biāo)。
結(jié)語
觀察上表,部分的輸出電壓有0.1mV的誤差。這是由于在系統(tǒng)定標(biāo)校準(zhǔn)時(進(jìn)行前述的消除非線性與線性誤差的方式),采用的是HP34401進(jìn)行的系統(tǒng)定標(biāo),HP34401是五位半的萬用表,與本系統(tǒng)的精度一致,因此在定標(biāo)時就引入了系統(tǒng)誤差,而在測試實驗中依然采用的是HP34401,這就造成了部分?jǐn)?shù)據(jù)的測試誤差。若采用六位半精度以上的萬用表進(jìn)行系統(tǒng)定標(biāo)以及測試,相信精度以及測試結(jié)果會更好。不過如今以本人所擁有的實驗條件已經(jīng)得到了令人滿意的實驗結(jié)果:即通過本文所闡述的此種方法確實能夠低成本地實現(xiàn)高精度直流電壓源。
評論