廉價(jià)隔離型高精度D/A轉(zhuǎn)換器
在自動(dòng)化儀表,電動(dòng)組合儀表II型輸出0~10mA的電流,III型輸出4~20mA的電流。本文介紹的電路可以作為0~20mA的恒流源輸出,因此適用性較廣,可為各種儀器儀表輸出標(biāo)準(zhǔn)電流,或者進(jìn)行長距離的信號(hào)傳輸。本電路具有串行接口,易于構(gòu)成網(wǎng)絡(luò)測量和控制。同時(shí)應(yīng)用光電隔離使本電路與輸出電路隔離,從而解決了測量設(shè)備的共地問題,保證了測量設(shè)備的安全。另外,利用單片機(jī)便于計(jì)算和控制的特點(diǎn),對輸出電流進(jìn)行軟件校正,最后輸出電流精度達(dá)到± 0.1%。
1 電路原理
該電路通過擴(kuò)展鍵盤/顯示器可任意設(shè)置輸出電流值(0.00~20.00mA),精度達(dá)到±0.1%;通過串行口,采用PC機(jī)控制輸出電流的大小,并且在PC機(jī)上同步顯示輸出的電流值。具體電路原理如圖1所示。
(1)脈寬調(diào)制波(PWM)的產(chǎn)生
啟動(dòng)單片機(jī)的定時(shí)器T0和T1,設(shè)定時(shí)器T0和T1工作于16位定時(shí)器方式,利用中斷實(shí)現(xiàn)PWM輸出(設(shè)定1個(gè)脈沖對應(yīng)0.01mA)。
定時(shí)器T0中預(yù)置數(shù)據(jù)——PWM的脈寬數(shù)據(jù)的補(bǔ)碼。
定時(shí)器T1中預(yù)置數(shù)據(jù)——PWM的周期數(shù)據(jù)的補(bǔ)碼。
中斷子程序如下:
TT0:CLR TR0
CLR P3.4
MOV TL0,#DATA_L ;輸入數(shù)據(jù)低八位
MOV TH0,#DATA_H ;輸入數(shù)據(jù)高八位
RETI
TT1:CLR TR1
SETB P3.4
MOV TL1,PWM_TL
MOV TH1,PWM_TH;置周期
SETB TR1
SETB TR0
RET1
采用定時(shí)器定時(shí)和定時(shí)器中斷服務(wù)子程序共同完成脈寬制波(PWM)的產(chǎn)生。
脈寬調(diào)制波形如圖2所示。
(2)光電隔離及RC電路
采用光電耦合器U4,使MCU電路與輸出相隔離。欲使輸出電流精度較高,一般應(yīng)采用開關(guān)速度較快的光電隔離器,如6N135、6N137等。在光電隔離后,對PWM信號(hào)采用雙RC電路(R5,R6及C7,C8)來獲取直流電壓分量。
(3)電壓/電流轉(zhuǎn)換電路
如圖1所示,在a點(diǎn)處得到0~5V的直流電壓,作為運(yùn)放的正向輸入信號(hào)。圖1中的運(yùn)放構(gòu)成一個(gè)跟隨器,NPN型三極管G1、G2構(gòu)成電流放大器。根據(jù)運(yùn)算放大器的有關(guān)特性,有Ua=UR10,Iout=Ua/R10。本電路要求R10是精密電阻,則流過R10的電流大小與Ua點(diǎn)的電壓成正比。Ua是a點(diǎn)電壓,UR10是R10兩端電壓,Iout是輸出電流。
(4)微機(jī)通信
本系統(tǒng)中設(shè)計(jì)了ICL232串口芯片,完成TTL電平與串口電平之間的轉(zhuǎn)換,這樣單片機(jī)與PC機(jī)就可以進(jìn)行雙向通信了。單片機(jī)采用定時(shí)器T2作波特率發(fā)生器,波特率設(shè)為2 400 bps,串行口工作方式設(shè)為方式1。這樣,PC機(jī)就可以通過串行口編程控制輸出電流的大?。?.00~20.00mA)。
2 測量結(jié)果
經(jīng)過實(shí)測得到表1所示測量數(shù)據(jù)。
表1 未校正前電流輸出測量值 單位:mA
設(shè)置值 | 輸出值 | 設(shè)置值 | 輸出值 | 設(shè)置值 | 輸出值 | 設(shè)置值 | 輸出值 |
0.5 | 0.486 9 | 5.5 | 5.529 | 10.5 | 10.557 | 15.5 | 15.608 |
1 | 0.990 0 | 6 | 6.032 | 11 | 11.062 | 16 | 16.111 |
1.5 | 1.492 8 | 6.5 | 6.534 | 11.5 | 11.567 | 16.5 | 16.614 |
2 | 2.000 | 7 | 7.037 | 12 | 12.072 | 17 | 17.118 |
2.5 | 2.504 | 7.5 | 7.540 | 12.5 | 12.577 | 17.5 | 17.621 |
3 | 3.008 | 8 | 8.042 | 13 | 13.082 | 18 | 18.124 |
3.4 | 3.513 | 8.5 | 8.545 | 13.5 | 13.587 | 18.5 | 18.628 |
4 | 4.017 | 9 | 9.048 | 14 | 14.093 | 19 | 19.131 |
4.5 | 4.521 | 9.5 | 9.551 | 14.5 | 14.598 | 19.5 | 19.634 |
5 | 5.026 | 10 | 10.054 | 15 | 15.103 | 20 | 20.14 |
誤差與設(shè)定值的關(guān)系可用兩條直線(ab、ac)
描述,如圖3所示。
通過對以上測量數(shù)據(jù)的分析,測量值與設(shè)置值之間存在著一定的誤差,原因主要有以下幾點(diǎn):
①本電路用到了雙積分RC電路,RC電路中充、放電過程存在著非線性問題,同時(shí)電路中的電容存在著精度、漏電等問題,因此輸入脈寬調(diào)制信號(hào)轉(zhuǎn)化為直流電壓時(shí)存在一定的非線性關(guān)系,產(chǎn)生了一定的誤差。
②跟隨器主要由運(yùn)算放大器構(gòu)成,如果是理想的運(yùn)算放大器,則“虛短”和“虛斷”的條件才成立,而實(shí)際應(yīng)用中,沒有理想的運(yùn)算放大器。因此,正相、反相輸入端電壓差不為零,也會(huì)產(chǎn)生一定的誤差。
3 解決方法
通過對上述測量數(shù)據(jù)的比較、分析,可采用軟件線性回歸的方法對輸出電流進(jìn)行校正。
設(shè)直線方程y=ax+b,其中y為校正后PWM的脈寬設(shè)定值,x為電流輸出設(shè)定值。
本電路校正方法是:將數(shù)據(jù)從2mA處分為兩段進(jìn)行線性回歸。
直線ac:
y=a1x+b1,a1=(2-0.5)/(2-0.0486 9),b1=2-a1×2;
直線ab;
y=a2x+b2,a2=(20-2)/(20.14-2),b2=2-a2×1。
通過單片機(jī)校正后,實(shí)測數(shù)據(jù)和表2所列。
表2 校正后電流輸出值
設(shè)置值 | 輸出值 | 設(shè)置值 | 輸出值 | 設(shè)置值 | 輸出值 | 設(shè)置值 | 輸出值 |
0.5 | 0.489 9 | 5.5 | 2.518 | 10.5 | 10.509 | 15.5 | 15.517 |
1 | 0.990 0 | 6 | 6.019 | 11 | 11.011 | 16 | 16.019 |
1.5 | 1.499 9 | 6.5 | 6.517 | 11.5 | 11.513 | 16.5 | 16.518 |
2 | 2.000 | 7 | 7.016 | 12 | 12.014 | 17 | 17.016 |
2.5 | 2.502 | 7.5 | 7.514 | 12.5 | 13.015 | 17.5 | 17.519 |
3 | 3.002 | 8 | 8.014 | 13 | 13.015 | 18 | 18.019 |
3.5 | 3.501 | 8.5 | 8.511 | 13.5 | 13.515 | 18.5 | 18.518 |
4 | 4.002 | 9 | 9.009 | 14 | 14.016 | 19 | 19.018 |
4.5 | 4.502 | 9.5 | 9.503 | 14.5 | 14.518 | 19.5 | 19.519 |
5 | 5.002 | 10 | 10.001 | 15 | 15.017 | 20 | 20.020 |
經(jīng)過上述方法校正,輸出電流值的精度達(dá)到±0.1%。
4 結(jié)論
本電路的硬件部分采用通用器件,結(jié)構(gòu)簡單,成本低;充分利用了89C52的定時(shí)器資源,使用了定時(shí)器T0、T1、T2。89C52的其它端口和引腳都未被占用,這樣,該電路可以很容易地移植到其它控制系統(tǒng)和測量系統(tǒng)中;同時(shí)采用軟件對輸出電流進(jìn)行校正,精度達(dá)到±0.1%;具有串行接口,便于組網(wǎng)控制;因此,本電路具有光電隔離、通用性強(qiáng)、精度高、低成本的特點(diǎn),且實(shí)用價(jià)值較高。