嵌入式學(xué)習(xí)之ADC
相信很多學(xué)習(xí)嵌入式的同學(xué)都會(huì)使用ADC模塊,筆者在大學(xué)時(shí)代也經(jīng)常使用ADC做溫度采樣,往往得到溫度值就暗自開(kāi)心,也沒(méi)有深究ADC中連續(xù)采樣、單次采樣和被動(dòng)觸發(fā)模式是干嘛用的。直到工作多年后才發(fā)現(xiàn)ADC的應(yīng)用不僅僅那么簡(jiǎn)單,涉及到的采樣頻率,分辨率,轉(zhuǎn)換誤差和轉(zhuǎn)換時(shí)間都需要去深入了解,這樣才能得到更精確的模擬信號(hào)量。
本文引用地址:http://m.butianyuan.cn/article/202105/425838.htmADC采樣頻率
ADC采樣模塊,就是用來(lái)得到當(dāng)前傳感器的值。比如可以通過(guò)高鐵中的溫度傳感器得到高鐵中的溫度,通過(guò)煙霧傳感器得到煙霧濃度,通過(guò)雷達(dá)得到前方是否有障礙物等等。在電力電子的世界,傳感器就相當(dāng)于人的眼睛,耳朵和感覺(jué),人的大腦就相當(dāng)于CPU;通過(guò)ADC采樣模塊得到了外界參數(shù),再送入CPU,由CPU控制列車(chē)降速,停止,升溫降溫等等操作。在高精度的傳感器和CPU方面,歐洲,韓國(guó),日本和美國(guó)還是要比我國(guó)做得好,我們只是在他們的基礎(chǔ)之上,應(yīng)用做得好,還需要多多投入基礎(chǔ)研發(fā)。
我們來(lái)看一個(gè)例子,230V 50Hz的家用市電,CPU是如何采樣的呢?
第一步:將模擬信號(hào)經(jīng)過(guò)變壓互感器進(jìn)行降壓到0-3V以內(nèi),再將得到的小信號(hào)送給單片機(jī)
第二步:軟件經(jīng)過(guò)采樣,得到數(shù)字信號(hào);再將數(shù)字信號(hào)乘以采樣比將得到模擬信號(hào)的波形。理論上來(lái)說(shuō),采樣頻率越高,得到的信號(hào)越準(zhǔn)確,更接近于實(shí)際信號(hào),但是更加耗費(fèi)單片機(jī)的資源;采樣頻率越小,得到的信號(hào)精度越差,但是對(duì)單片機(jī)的性能要求不高。實(shí)際應(yīng)用中,需要根據(jù)實(shí)際的芯片性能,對(duì)采樣信號(hào)進(jìn)行采樣頻率的設(shè)定。ADC采樣,大家需要牢記采樣定理:
在進(jìn)行模擬/數(shù)字信號(hào)的轉(zhuǎn)換過(guò)程中,當(dāng)采樣頻率fs.max大于信號(hào)中最高頻率fmax的2倍時(shí)(fs.max>2fmax),采樣之后的數(shù)字信號(hào)完整地保留了原始信號(hào)中的信息,一般實(shí)際應(yīng)用中保證采樣頻率為信號(hào)最高頻率的2.56~4倍
采樣定理又稱(chēng)取樣定理或抽樣定理,它說(shuō)明了采樣頻率和信號(hào)之間的關(guān)系,是模擬信號(hào)離散化的重要依據(jù);簡(jiǎn)單來(lái)講就是采樣頻率一定要大于信號(hào)最高頻率的2倍,這樣你才能得到真實(shí)的信號(hào)。
比如下面的這個(gè)例子,市電頻率50Hz,使用20K,1K和50Hz的采樣頻率去模擬市電,只有20K和1K能夠模擬出真實(shí)的波形;50Hz完全失真,提取不到市電的信號(hào)。
ADC轉(zhuǎn)換參數(shù)
ADC的轉(zhuǎn)換參數(shù)有:分辨率,ADC轉(zhuǎn)換時(shí)間和轉(zhuǎn)換誤差等
分辨率:AD模塊對(duì)模擬信號(hào)分辨能力,及數(shù)值部分的精度;我們將常說(shuō)的16位或12位的采樣芯片,說(shuō)的就是ADC的分辨率;比如輸入0-3V,12位AD采樣分辨率為3V/2^12=0.732mV;16位AD采樣分辨率為3V/2^16=0.0458mV;分辨率越高,采樣的范圍越精確,價(jià)格也越貴;
轉(zhuǎn)換時(shí)間:從軟件發(fā)出開(kāi)始采樣到采樣完成的時(shí)間。進(jìn)行一個(gè)采樣時(shí),需要經(jīng)過(guò)如下步驟:
第一步:軟件發(fā)出采樣指令,ADC先將需要采樣的通道值保持??;保證采樣得到的都是同一時(shí)刻的值;
第二步:通過(guò)比較寄存器將每一個(gè)需要采樣的通道與基準(zhǔn)電壓比較,并將比較的值存入ADC結(jié)果寄存器;比較完成后,發(fā)出轉(zhuǎn)換完成信號(hào);
第三步:CPU讀到轉(zhuǎn)換完成的信號(hào)后,開(kāi)始讀取結(jié)果寄存器的值,完成采樣;
這個(gè)步驟跟芯片性能密切相關(guān),一定要注意,采樣周期不能大于轉(zhuǎn)換時(shí)間,否則CPU此次采樣還未完成,下一次采樣已經(jīng)開(kāi)始,CPU負(fù)荷太重會(huì)導(dǎo)致各種位置問(wèn)題。
ADC采樣方式
ADC的采樣方式一般有:?jiǎn)未尾蓸?,連續(xù)采樣和觸發(fā)采樣;
單次采樣:軟件發(fā)出采樣指令,CPU啟動(dòng)采樣,采樣完成;ADC停止工作;采樣頻率由軟件控制
連續(xù)采樣:軟件發(fā)出采樣指令,CPU啟動(dòng)采樣,采樣完成,接著又開(kāi)始采樣個(gè)采樣頻率與ADC轉(zhuǎn)換頻率一致;
觸發(fā)采樣:收到觸發(fā)信號(hào),CPU啟動(dòng)采樣,采樣完成;ADC停止工作。觸發(fā)信號(hào)可以為定時(shí)器或過(guò)零或者周期處,也可以為外部引腳,被觸發(fā)一次采樣一次;采樣頻率與觸發(fā)信號(hào)頻率一致;
最常見(jiàn)的是觸發(fā)采樣,一般在定時(shí)器的零點(diǎn)和周期處分別采樣,得到平均值去計(jì)算或保護(hù);
在工業(yè)控制領(lǐng)域,ADC往往不是單獨(dú)存在,筆者經(jīng)常把ADC和PWM聯(lián)系在一起使用,在PWM的零點(diǎn)和周期處采樣,再根據(jù)PWM驅(qū)動(dòng)duty上一次的值計(jì)算出下一次的duty值,去控制輸出量電壓電流功率等等;下一節(jié)我們將通過(guò)PWM和ADC的結(jié)合深入了解工業(yè)控制中是如何控制物理量的;如新能源汽車(chē)的充電電流,變頻器的輸出電壓等等。
評(píng)論