基于AVR微控制器的交流信號峰值檢測與校正 2011-05-03 16:38:51來源:互聯(lián)網(wǎng)

摘要:微控制器外圍電路的設(shè)計已經(jīng)是一個比較成熟的領(lǐng)域,相比硬件,軟件系統(tǒng)的研發(fā)周期更短,投入更少,在中國更加具有發(fā)展空間?;贏VR單片機的硬件結(jié)構(gòu)和工作原理,采用一種全新的檢測交流信號峰值的算法,并輔以相應(yīng)的自校正算法來實現(xiàn)精確的峰值檢測。通過硬件上的實現(xiàn)證明此種算法的速度非常快,精度高達0.1%,在測控工業(yè)應(yīng)用中具有非常好的前景。
關(guān)鍵詞:峰值檢測;自我校正;算法

0 引言
單片機在民用電子產(chǎn)品中的應(yīng)用主要以測量和控制為主。一個完整的單片機系統(tǒng)除了健全的軟件系統(tǒng)外,往往還需要外圍電路的支持。而現(xiàn)如今,對一些傳統(tǒng)電路的設(shè)計已經(jīng)非常成熟,因此在硬件上要想有所突破要比在軟件算法的突破難得多。拿峰值檢波電路來說,理論上,交流電源在正半周的一段時間內(nèi),通過二極管對電容充電,使電容上的電壓逐漸趨近于峰值電壓。只要RC足夠大,可以認為其輸出的直流電壓數(shù)值上十分接近于交流電壓的峰值。但是由于泄放電流的影響,輸出電流很難精確地等于輸入電流的峰值。盡管有很多改良后的解決方案,但無論是哪一個種檢波電路,它們的一個相通的缺點就在于電路是非線性的。非線性的電路使內(nèi)部的軟件系統(tǒng)不能用相對簡單的方法來實現(xiàn)系統(tǒng)誤差的校正。系統(tǒng)誤差是指在相同的條件下(包括溫度,電路,測量工具等),誤差值隨輸入值按一定規(guī)律變化,這種變化可以是線性或非線性的。非線性系統(tǒng)誤差通常采用查表法來修正,通過實際校準將各校準點的數(shù)據(jù)存入校準表中,在以后的實際測量中,通過查表求得修正了的測量結(jié)果,因此需要建立大量的校正點數(shù)據(jù)來提高計算結(jié)果的準確度,增加算法的計算量和復(fù)雜程度就不可避免的了。一個系統(tǒng)研發(fā)人員追求的是簡潔度與先進性,而不是復(fù)雜度,因此簡化外部模擬輸入電路是當務(wù)之急。

1 硬件電路設(shè)計
圖1給出的是精密電壓表與精密電流表的模擬輸入部分電路。整個電路只用到放大器與分壓電路,設(shè)計簡潔,而且在低頻區(qū)系統(tǒng)誤差是線性的,因此用作AVR內(nèi)部ADC的模擬輸入電路。


點擊看大圖

不足的是,圖l中的LM324放大器對高頻信號的頻率響應(yīng)不理想。如果用傳統(tǒng)的峰值計算的算法,利用Nyquist定理,在采樣頻率不小于信號頻率的條件下,對多個樣本的幅值進行綜合運算如下:


點擊看大圖
這種方法對采樣頻率有較高的要求,尤其是高頻輸入的時候,要求高速的ADC,而且樣本數(shù)過大會造成計算量加大,所以要想在高頻區(qū)有所應(yīng)用非常困難。如果使用專用轉(zhuǎn)換芯片又會增加產(chǎn)品制作的成本,而且存在系統(tǒng)誤差難測算的問題。因此筆者在硬件設(shè)計和軟件設(shè)計上都做出了一些新的嘗試。


點擊看大圖

硬件電路方面,借助圖2的頻率測量電路和AVR的輸入捕捉功能(ICP)配合來測算輸入信號的頻率。74HCU04是高速的16進制CMOS反相器,傳輸時間很短,具有很好的頻率特性。

2 正弦波峰值測量理論的建立
算法上,通過測算出來的信號周期值,在1/4個周期上任取兩點就可以推導(dǎo)求出信號的峰值,下面是對該方法的推導(dǎo)和求證。
首先,利用AVR ATmega64的定時器1的輸入捕捉功能,在單位圓的1/4周期內(nèi)截取兩個點yl,y2。無論它的捕捉屬性是上升沿還是下降沿,因為延時的關(guān)系不可能絕對準確地捕捉到電平翻轉(zhuǎn)的瞬間時刻,也就是說檢測的初相不同于真實的初相,又因為初相會隨著峰值和頻率發(fā)生變化,因此不能用勾股定理中使用相位相加為90度方法取出兩點再求出峰值。具體的推導(dǎo)如下。