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