基于AVR微控制器的交流信號峰值檢測與校正
摘要:微控制器外圍電路的設(shè)計(jì)已經(jīng)是一個(gè)比較成熟的領(lǐng)域,相比硬件,軟件系統(tǒng)的研發(fā)周期更短,投入更少,在中國更加具有發(fā)展空間。基于AVR單片機(jī)的硬件結(jié)構(gòu)和工作原理,采用一種全新的檢測交流信號峰值的算法,并輔以相應(yīng)的自校正算法來實(shí)現(xiàn)精確的峰值檢測。通過硬件上的實(shí)現(xiàn)證明此種算法的速度非???,精度高達(dá)0.1%,在測控工業(yè)應(yīng)用中具有非常好的前景。
關(guān)鍵詞:峰值檢測;自我校正;算法
0 引言
單片機(jī)在民用電子產(chǎn)品中的應(yīng)用主要以測量和控制為主。一個(gè)完整的單片機(jī)系統(tǒng)除了健全的軟件系統(tǒng)外,往往還需要外圍電路的支持。而現(xiàn)如今,對一些傳統(tǒng)電路的設(shè)計(jì)已經(jīng)非常成熟,因此在硬件上要想有所突破要比在軟件算法的突破難得多。拿峰值檢波電路來說,理論上,交流電源在正半周的一段時(shí)間內(nèi),通過二極管對電容充電,使電容上的電壓逐漸趨近于峰值電壓。只要RC足夠大,可以認(rèn)為其輸出的直流電壓數(shù)值上十分接近于交流電壓的峰值。但是由于泄放電流的影響,輸出電流很難精確地等于輸入電流的峰值。盡管有很多改良后的解決方案,但無論是哪一個(gè)種檢波電路,它們的一個(gè)相通的缺點(diǎn)就在于電路是非線性的。非線性的電路使內(nèi)部的軟件系統(tǒng)不能用相對簡單的方法來實(shí)現(xiàn)系統(tǒng)誤差的校正。系統(tǒng)誤差是指在相同的條件下(包括溫度,電路,測量工具等),誤差值隨輸入值按一定規(guī)律變化,這種變化可以是線性或非線性的。非線性系統(tǒng)誤差通常采用查表法來修正,通過實(shí)際校準(zhǔn)將各校準(zhǔn)點(diǎn)的數(shù)據(jù)存入校準(zhǔn)表中,在以后的實(shí)際測量中,通過查表求得修正了的測量結(jié)果,因此需要建立大量的校正點(diǎn)數(shù)據(jù)來提高計(jì)算結(jié)果的準(zhǔn)確度,增加算法的計(jì)算量和復(fù)雜程度就不可避免的了。一個(gè)系統(tǒng)研發(fā)人員追求的是簡潔度與先進(jìn)性,而不是復(fù)雜度,因此簡化外部模擬輸入電路是當(dāng)務(wù)之急。
1 硬件電路設(shè)計(jì)
圖1給出的是精密電壓表與精密電流表的模擬輸入部分電路。整個(gè)電路只用到放大器與分壓電路,設(shè)計(jì)簡潔,而且在低頻區(qū)系統(tǒng)誤差是線性的,因此用作AVR內(nèi)部ADC的模擬輸入電路。
不足的是,圖l中的LM324放大器對高頻信號的頻率響應(yīng)不理想。如果用傳統(tǒng)的峰值計(jì)算的算法,利用Nyquist定理,在采樣頻率不小于信號頻率的條件下,對多個(gè)樣本的幅值進(jìn)行綜合運(yùn)算如下:
這種方法對采樣頻率有較高的要求,尤其是高頻輸入的時(shí)候,要求高速的ADC,而且樣本數(shù)過大會造成計(jì)算量加大,所以要想在高頻區(qū)有所應(yīng)用非常困難。如果使用專用轉(zhuǎn)換芯片又會增加產(chǎn)品制作的成本,而且存在系統(tǒng)誤差難測算的問題。因此筆者在硬件設(shè)計(jì)和軟件設(shè)計(jì)上都做出了一些新的嘗試。
硬件電路方面,借助圖2的頻率測量電路和AVR的輸入捕捉功能(ICP)配合來測算輸入信號的頻率。74HCU04是高速的16進(jìn)制CMOS反相器,傳輸時(shí)間很短,具有很好的頻率特性。
評論