摘 要: 介紹了一種基于STC89C52單片機且量程可自動切換的積分式直流數(shù)字電壓表的硬件和軟件設(shè)計方法。基于雙積分A/D轉(zhuǎn)換原理,提出了新的轉(zhuǎn)換過程,提高了轉(zhuǎn)換速度,降低了零點漂移率。與常規(guī)電壓表相比,該電壓表精度更高,線性度好,抗干擾性強。
關(guān)鍵詞: STC89C52單片機;量程切換;雙積分A/D轉(zhuǎn)換
0 引言
雙積分A/D轉(zhuǎn)換器是一種將電壓轉(zhuǎn)換為時間的A/D轉(zhuǎn)換器,具有精度高,轉(zhuǎn)換過程需提供基準(zhǔn)電壓,抗干擾能力強等特點,在儀表、測控等領(lǐng)域有著廣泛的應(yīng)用[1-2],而采用單片機控制在電壓表、電壓源等的設(shè)計過程中越來越重要[3-4]。本文介紹了一種基于雙積分A/D轉(zhuǎn)換原理,且具有自動切換量程功能的數(shù)字直流電壓表。該電壓表在A/D轉(zhuǎn)換過程中采用了與常規(guī)不同的積分過程,提高了A/D轉(zhuǎn)換速度,降低了零點漂移率。結(jié)果表明,該電壓表具有線性度好、精度高、抗干擾性強等優(yōu)點。
1 雙積分式直流電壓表的硬件設(shè)計
該電壓表由模擬和數(shù)字兩部分組成,采用硬件和軟件相結(jié)合的方式進行設(shè)計,系統(tǒng)框圖如圖1所示。
在模擬部分,被測電壓被衰減后送入量程自動切換電路,然后雙積分A/D轉(zhuǎn)換電路將模擬信號轉(zhuǎn)換為數(shù)字信號,并送入數(shù)字部分。模擬部分的主要優(yōu)點是對噪聲和某些特定頻率(如工頻)的干擾有很好的抑制作用。
數(shù)字部分以STC89C52單片機為核心,模擬部分得到的數(shù)字信號送入單片機的外部中斷輸入口,單片機將輸入電壓值轉(zhuǎn)換為計數(shù)值,經(jīng)計算后得到被測電壓值,并用5位數(shù)碼管顯示,同時點亮3盞LED燈之一提示所選的量程。
1.1 輸入衰減電路及量程自動切換電路
該電壓表的電壓衰減器利用多個電位器并聯(lián),調(diào)節(jié)各個電位器進而得到衰減電壓,具體電路如圖2所示。電壓表共分為200 mV、2 V和20 V三個擋位,用5位數(shù)碼管來顯示被測電壓,同時用3盞LED燈分別表示這三個檔位。被測電壓被衰減到0~200 mV之后送入積分器,積分器將被測電壓轉(zhuǎn)換為相應(yīng)的積分時間并送到單片機的外部中斷輸入口。單片機中與積分時間相對應(yīng)的是計數(shù)器的計數(shù)值。若2 V、20 V量程里計數(shù)值小于2 000,或者200 mV、2 V量程里計數(shù)差值大于20 000,單片機通過控制模擬開關(guān)改變電壓擋位重新計數(shù)。當(dāng)輸入電壓超過20 V時,表頭全部顯示H,當(dāng)輸入電壓小于0 V時,表頭全部顯示L。
1.2 基于雙積分原理的A/D轉(zhuǎn)換電路
以往的基于雙積分的A/D轉(zhuǎn)換電路都是分為三個階段:自動校零階段、積分階段和反積分階段。積分階段時間固定,自動校零階段和反積分階段的總時間固定,一般為積分階段的3倍[5]。本文基于雙積分原理,提出了一種新的積分方式,將一次完整的A/D轉(zhuǎn)換調(diào)整為可變長。當(dāng)積分時間相同時,由于受單片機控制與常規(guī)雙積分相比,該方法的轉(zhuǎn)換時間更快。
A/D轉(zhuǎn)換電路原理如圖3所示,主要利用了HCF4052四選一開關(guān)、TL062C運放、TL431和積分電容等。其中,HCF4052多路開關(guān)用來選擇不同的電壓輸入;運放中一個用來作積分器,另一個用來作比較器;TL431提供了比較器同相輸入端的比較電壓。
該電壓表中A/D轉(zhuǎn)換電路的積分過程如圖4所示,共分為了4個不同的階段,分別為零(Vgnd)輸入、參考電壓(Vref)輸入、被測電壓(Vin)輸入和參考電壓(Vref)再次輸入。單片機通過兩個I/O口來控制四選一開關(guān),切換這四個階段。注意R38與R39之間的電壓Vcom是一個重要的參考點,考慮到運放失調(diào)電壓的影響,Vcom的電壓控制在220 mV左右。
在階段1,單片機選通模擬開關(guān)將Vgnd送入運放5腳。根據(jù)虛短路的特點,運放的6腳和5腳具有相同的電壓值,Rint右端的電壓比左端大,積分電容開始放電。階段1持續(xù)時間T1固定為20 ms,然后進入階段2,同時單片機開始計數(shù)。階段1的放電量為:
在階段2,模擬開關(guān)選通Vref輸入。此時,Rint右端電壓比左端小,積分電容開始充電。當(dāng)積分電容左端的電壓大于2.5 V時,比較器產(chǎn)生一個低電平送入單片機的外部中斷輸入口,單片機停止計數(shù),進入階段3。階段2總的充電量為:
在階段3,模擬開關(guān)選通Vin輸入。此時,Rint右端電壓大于左端,電容再次放電。階段3持續(xù)時間T3也固定為20 ms。當(dāng)達到20 ms時,進入階段4,同時單片機開始計數(shù)。階段3的放電量為:
在階段4,Vref再次被選通輸入,Rint左端電壓大于右端,電容再次充電。當(dāng)積分電容左端的電壓超過2.5 V時,比較器產(chǎn)生一個低電平送入單片機外部中斷輸入口,同時單片機停止計數(shù)。此后,單片機控制進入到階段1,重復(fù)執(zhí)行上述過程。階段4的充電量為:
由于階段1的放電量與階段2的充電量相等,階段3的放電量等于階段4的充電量。并且當(dāng)計數(shù)周期為Tcp時,固定時間的計數(shù)個數(shù)可根據(jù)N=T/Tcp得出。依據(jù)這兩點可以得到:
已知Vcom、Vref、N1均為一確定值。事實上,當(dāng)N1確定時,N2也是確定的,即輸入電壓Vin與積分階段2和階段4的計數(shù)差(N2-N4)成正比例關(guān)系,只需求得這兩階段的計數(shù)差,即可按比例關(guān)系得到輸入電壓值。式(5)得到的被測電壓與常規(guī)的雙積分原理得到的有所區(qū)別[6],是因為該電壓表的A/D轉(zhuǎn)換電路中加入了偏移電壓Vcom,可對雙極性電壓進行測量。需要說明的是,參考點2電壓的跳變是由運放的虛短路特點引起的。由于A/D轉(zhuǎn)換主要的干擾來自工頻(50 Hz)或工頻倍頻的干擾[7],采樣時間為20 ms時,為工頻電源周期的整數(shù)倍數(shù)可以有效地抗工頻干擾。
1.3 顯示電路
顯示電路主要由5位共陽極數(shù)碼管、顯示量程的3個LED燈和單片機I/O口組成,采用動態(tài)掃描的方式顯示。單片機的P0口作為段碼輸出端口,P2口的高5位作為數(shù)碼管的尾端選通端,低3位接LED燈用于顯示所選量程。
2 雙積分式直流電壓表的軟件設(shè)計
軟件設(shè)計主要包括4個部分:A/D轉(zhuǎn)換部分、擋位自動切換部分、單片機控制部分和顯示部分。該電壓表首先選通最高擋位對輸入電壓進行衰減,然后送到A/D轉(zhuǎn)換部分將電壓轉(zhuǎn)為計數(shù)值。擋位自動切換部分根據(jù)所得計數(shù)值是否落在已定區(qū)間,來判斷輸入電壓是否屬于該擋位。若2 V、20 V擋位時計數(shù)值小于2 000,單片機控制模擬開關(guān)切換到低一擋位;若200 mV、2 V計數(shù)值大于 20 000,則切換到高一擋位重復(fù)A/D轉(zhuǎn)換并計算電壓值。最終得到穩(wěn)定的被測電壓值并進行顯示,同時顯示所選的擋位。通過采樣得到的實測電壓在1 s的時間內(nèi)有12~16個電壓值,根據(jù)A/D轉(zhuǎn)換器的特性,這些實測的電壓值總是處在一定的波動狀態(tài),采用加權(quán)平均濾波的方法對所得數(shù)值進行濾波,可以減小數(shù)據(jù)的波動,使電壓顯示值更加穩(wěn)定。軟件的設(shè)計流程如圖5所示。
3 測試實例
這一部分將該電壓表實測電壓(表1中改進型一欄)、常規(guī)雙積分的電壓表(表1中常規(guī)型一欄)和標(biāo)準(zhǔn)電壓進行了對比,結(jié)果如表1所示。從表1中可以看出,該電壓表精度最小可以達0.01 mV。與常規(guī)電壓表相比,該電壓表的測量誤差更小,主要是因為雙積分電壓表的準(zhǔn)確度與參考電壓的準(zhǔn)確性和零點電位的穩(wěn)定性有很大關(guān)系,而本文中的零點電位直接接地,減小了干擾。在測量過程中還發(fā)現(xiàn),該電壓表比常規(guī)型電壓表的轉(zhuǎn)換速度更快,這主要是A/D轉(zhuǎn)換時間縮短的緣故。
圖6所示為該電壓表和常規(guī)電壓表的線性度曲線對比。
從圖6可以看出,兩表的線性度曲線與理想型很接近。相比之下,該方法電壓表比常規(guī)電壓表的線性度更好。除此之外,由于該電壓表通過計算A/D轉(zhuǎn)換過程的第2階段和第4階段計數(shù)差值來獲得被測電壓值,這一方法大大降低了零點漂移率,得到了比較理想的測量精度。
4 結(jié)論
本文基于雙積分原理,實現(xiàn)了一種高精度、可變量程的積分式直流電壓表,測量范圍最大可以達到0~20 V,測量誤差最大不超過0.16%,測量的最小精度可以達到0.01 mV,是一款性能可靠的高精度直流電壓表。
參考文獻
[1] 楊榮彬.基于雙積分原理的模數(shù)轉(zhuǎn)換器芯片的設(shè)計[D].成都:電子科技大學(xué),2008.
[2] 賈培軍,董軍堂,高延華.一種量程自動切換數(shù)字電壓表的設(shè)計[J].山西電子技術(shù)(應(yīng)用實踐),2007(6):10-12.
[3] 王東鋒,黎映相.0~100 mV精密電壓源的設(shè)計與仿真[J].微型機與應(yīng)用,2012,31(10):31-33.
[4] 左現(xiàn)剛,張志霞.基于AVR單片機的數(shù)控直流穩(wěn)壓電源的設(shè)計[J].微型機與應(yīng)用,2012,31(8):84-86.
[5] 張爽.雙積分型A/D轉(zhuǎn)換器中的自動校零技術(shù)[J].科技資訊,2012(14):36-37.
[6] 孫加紅,王可.基于C8051F020單片機的雙積分A/D轉(zhuǎn)換器設(shè)計[J].信息技術(shù)與信息化,2007(3):110-111.
[7] 陳仁森.積分式直流數(shù)字電壓表的設(shè)計[J].邵陽學(xué)院學(xué)報(自然科學(xué)版),2008,5(1):40-43.