利用單片機構成高精度PWM式12位D/A
[一].前言
在用單片機制作的變送器類和控制器類的儀表中,需要輸出1-5V或4-20mA的直流信號的時候,,通常采用專用的D/A芯片,,一般是每路一片。當輸出信號的精度較高時,,D/A芯片的位數也將隨之增加,。在工業(yè)儀表中,通常增加到12位,。12位D/A的價格目前比單片機的價格要高得多,,占用的接口線數量也多。尤其是在需隔離的場合時,,所需的光電耦合器數量與接口線相當,,造成元器件數量大批增加,使體積和造價隨之升高,。如果在單片機控制的儀表里用PWM
方式完成D/A輸出,,將會使成本降低到12位D/A芯片的十分之一左右。我們在S系列流量儀表中采用了這種方式,,使用效果非常理想,。下面介紹一下PWM方式D/A的構成原理。
[二].電路原理
一般12位D/A轉換器在手冊中給出的精度為±1/2LSB,,溫度漂移的綜合指標在20-50ppm/℃,,上述兩項指標在0.2級儀表中是可以滿足要求的,下面給出的電路可以達到上述兩項指標,。
圖1中的T是固定寬度,,τ的寬度是可變的。τ分為5000份,,每份2us,。所以τ的最大值τmax=2×5000=10000us,這就是T的寬度,。當τ=T時,,占空比為1,Vo=5.000V,,τ=0時,,Vo=0V。這種脈沖電壓經過兩級RC濾波后得到的電壓可由下式表示:
VM必須是精密電壓源,。Vo與占空比成正比,,且線性較好,這種方式在理論上是很成熟的,但實際應用上還存在一些問題,。圖2是實際線路,,其中單片機可用8098或8031兩種常用芯片,VM的數值為5.000V±2mV,,D/A與單片機必須是電氣隔離的,。否則數字脈沖電流產生的干擾會影響D/A精度,從示波器可以看到高達50mV的干擾毛刺電壓,,因此有必要加光電隔離,。經隔離后的脈沖驅動模擬開關CD4053。CD4053是三組兩觸點模擬開關,,由PWM脈沖控制開關的公共接點使之與+5.000V和地接通,,在VI得到與單片機輸出相一致的PWM波形。該波形經兩級RC濾波后由運放構成的電壓跟隨器輸出Vo,。其中RC的時間常數一般取RC≥2T,,這樣兩級RC加起來就會得到紋波小于3mV的直流電壓,本電路中RC=220ms,,如果想進一步減小紋波,,可適當提高RC的乘積,但電路的響應速度也會放慢,。
用運放做RC濾波器輸出的緩沖大有益處,。它不僅提高了濾波電路帶載能力,而且使線性度得到了提高,。通過實驗可知,,這一級運放的的緩沖作用是保證整個D/A精度和線性度的重要環(huán)節(jié),。盡管RC濾波器無負載,,處在非常理想的條件下工作,但Vo并不完全與占空比成正比,。經測試,,Vo與理想值有一些誤差,如圖3所示,。
圖中的曲線1表示理想值,,曲線2表示實測值。由圖中可見,,曲線2的根部不太理想,。這是因為所使用的電容不是純電容,其中含有一定的電感,。在占空比極小時,,由于脈沖非常窄,它產生的高次諧波的頻率很高,電感對高次諧波的感抗較大,,因此在脈沖沿的位置上,,盡管電壓變化很大,但實際實際給電容充電卻很小,。這樣就在窄脈沖時產生非線性,。當采用無感電容時,這種非線性有較大改善,,但仍不能完全吻合,。由于無感電容容量太小,價格也較高,,所以在大時間常數濾波電路中沒有實際意義,。在實際使用中解決這一問題的方法是舍棄根部非線性部分,只用線性部分,,在工業(yè)儀表中,,標準的信號一般為1-5V或4-20mA。而曲線2的非線性部分在0.4V以下,,所以當采用1-5V輸出信號時,,精度為0.03%完全滿足12位
D/A要求。
除精度滿足要求外,,溫度特性也必須滿足要求,。影響溫度特性的原因主要是5V精密電源和運算放大器的溫度特性。為不使價格太高,,選用2DW232精密穩(wěn)壓二極管,,運放的電阻與濾波電阻要匹配且溫度系數≤25ppm。運算放大器選擇溫漂≤10uV/℃的均可,,一般廉價低溫漂運放都可滿足這個指標,。采用上述措施后D/A的總溫度漂為33ppm/℃。
[三].實測數據
由于這個線路是在0.2級精密儀表中使用的,,因此要求線性度和溫度特性必須滿足要求,,另外,這個數據是測量V/I轉換后4-20mA電源值與給定電流值之間的誤差,。這個誤差還包含了V/I轉換的誤差,。因此實際的D/A自身的誤差比總誤差要小。
Igd(mA) Io(mA) Δ=Io-Igd
4.000 3.999 -0.001
8.000 7.998 -0.002
11.000 11.002 +0.002
16.000 16.006 +0.006
20.000 20.008 +0.008
線性=Δmax/20=0.0004
20℃ 60.℃
4.000mA 3.993mA Δ=-0.007mA
20.000mA 19.974mA Δ=-0.026mA
溫度漂移=Δmax/20×40=33ppm/℃
由以上數據可知,,滿量程的線性度為0.04%,,滿量程的溫度漂移為0.033%/10℃,系統響應時間約為2.2s,,輸出信號與標準值相差0.1%時所用的時間為11s,。
[四].結束語
上面所介紹的D/A電路結構簡單,,原理易懂,在8098及8031單片機上都可以應用,,筆者采用8098單片機的四路高速輸入輸出同時控制四路精密D/A輸出,。后面加一級V/I轉換電路,構成標準的4-20mA電流輸出,,電路經一年多的現場實際應用,,效果很好,適于目前0.2級儀表的全部要求,。
|