微機原理與嵌入式接口技術(shù)課件:DA 與 AD 轉(zhuǎn)換技術(shù)_第1頁
微機原理與嵌入式接口技術(shù)課件:DA 與 AD 轉(zhuǎn)換技術(shù)_第2頁
微機原理與嵌入式接口技術(shù)課件:DA 與 AD 轉(zhuǎn)換技術(shù)_第3頁
微機原理與嵌入式接口技術(shù)課件:DA 與 AD 轉(zhuǎn)換技術(shù)_第4頁
微機原理與嵌入式接口技術(shù)課件:DA 與 AD 轉(zhuǎn)換技術(shù)_第5頁
已閱讀5頁,還剩144頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

D/A

與A/D

轉(zhuǎn)換技術(shù)7.1D/A轉(zhuǎn)換基礎(chǔ)7.2STM32的DAC7.3D/A轉(zhuǎn)換基礎(chǔ)7.4STM32的ADC組習(xí)題7

本章要點

☆D/A轉(zhuǎn)換器工作原理

☆D/A轉(zhuǎn)換器主要技術(shù)指標(biāo)

☆STM32的DAC功能和轉(zhuǎn)換方法

☆STM32的DAC應(yīng)用

☆A(yù)/D轉(zhuǎn)換器的工作原理

☆A(yù)/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)

☆STM32的ADC功能和工作模式

☆STM32的ADC轉(zhuǎn)換方法

☆STM32的ADC應(yīng)用

將模擬信號轉(zhuǎn)換成數(shù)字信號的裝置稱為模/數(shù)轉(zhuǎn)換器(簡稱ADC);將數(shù)字信號轉(zhuǎn)換成模擬信號的裝置稱為數(shù)/模轉(zhuǎn)換器(簡稱DAC)。

微型計算機完成測量與控制任務(wù)的工作過程如圖7.1

所示。

在微機控制系統(tǒng)中,D/A轉(zhuǎn)換器是計算機與被控制設(shè)備之間傳輸信息時必不可少的橋梁,擔(dān)負(fù)著把數(shù)字量轉(zhuǎn)換成模擬量的任務(wù)。D/A轉(zhuǎn)換器按處理數(shù)據(jù)的位數(shù)不同,可分為8位、10

位、12

位和16

位等轉(zhuǎn)換器。圖7.1微型計算機完成測量與控制任務(wù)的工作過程

7.1.1轉(zhuǎn)換原理

D/A轉(zhuǎn)換器的作用是將數(shù)字量轉(zhuǎn)換成模擬量,它的基本要求是輸出電壓VO

應(yīng)和輸入數(shù)字量成正比,即

典型的D/A轉(zhuǎn)換器芯片通常由模擬開關(guān)、電阻網(wǎng)絡(luò)以及緩沖電路組成,如圖7.2

所示。電阻網(wǎng)絡(luò)是D/A轉(zhuǎn)換器的核心部件,主要有加權(quán)電阻網(wǎng)絡(luò)和“T”形電阻網(wǎng)絡(luò)兩種結(jié)構(gòu)形式。圖7.2

D/A轉(zhuǎn)換器結(jié)構(gòu)框圖

1.

加權(quán)電阻網(wǎng)絡(luò)D/A轉(zhuǎn)換器的工作原理

圖7.3

所示的是加權(quán)電阻網(wǎng)絡(luò)D/A轉(zhuǎn)換器的原理圖,根據(jù)運算放大器原理,放大器輸入電流是通過各個電阻的電流總和。而通過各電阻的電流又是由各位二進制數(shù)字所對應(yīng)的開關(guān)控制。放大器的輸出電壓應(yīng)為

其中V

REF為參考電壓,R

F=R,D

1

~D

n

為輸入的二進制數(shù)字,其取值為0

時相應(yīng)的開關(guān)斷開,實際電路中的開關(guān)是CMOs電子開關(guān)。圖7.3加權(quán)電阻網(wǎng)絡(luò)D/A轉(zhuǎn)換器原理

2.

T形電阻網(wǎng)絡(luò)D/A轉(zhuǎn)換器的工作原理

T形電阻網(wǎng)絡(luò)采用分流的原理實現(xiàn)對數(shù)字量的轉(zhuǎn)換。在圖7.4

中只有兩種電阻R和2R,用集成工藝生產(chǎn)較容易,精度也容易保證,因此應(yīng)用比較廣泛。根據(jù)運算放大器特性,運放的反向輸入端看作虛地,則各節(jié)點D

1~D

n

對地的等效電阻都是R。

如果開關(guān)接入運算放大器反相輸入端,則流經(jīng)各個開關(guān)的電流大小滿足如下關(guān)系:

取反饋電阻R

F=R,則輸出電壓為圖7.4

T形電阻網(wǎng)絡(luò)D/A轉(zhuǎn)換器原理

實際電路中各開關(guān)由二進制輸入的各位來控制。因此對于任意的二進制數(shù)字輸出,對應(yīng)的模擬輸出電壓為

其中最高位D

n

稱為最高有效位,最低位D

1

稱為最低有效位。

7.1.2

D/A轉(zhuǎn)換器的主要性能指標(biāo)

D/A轉(zhuǎn)換器的主要性能指標(biāo)有分辨率、轉(zhuǎn)換精度、建立時間、溫度系數(shù)、非線性誤差等,它們都是衡量D/A轉(zhuǎn)換器技術(shù)指標(biāo)的重要參數(shù)。

1.

分辨率

分辨率是指D/A轉(zhuǎn)換器對數(shù)字輸入量變化的敏感程度的度量,它是D/A轉(zhuǎn)換器所能分辨的最小的輸入量,通常用數(shù)字量的位數(shù)來表示,如8

位、12

位等。

2.

轉(zhuǎn)換精度

轉(zhuǎn)換精度反映了D/A轉(zhuǎn)換器的精確程度。它與D/A轉(zhuǎn)換器芯片結(jié)構(gòu)、外部電路配置、電源等因素有關(guān)。轉(zhuǎn)換精度又分為絕對轉(zhuǎn)換精度和相對轉(zhuǎn)換精度。

絕對轉(zhuǎn)換精度是以理想狀態(tài)為參照,即D/A轉(zhuǎn)換器的實際輸出值與理論的理想值之間的差值,一般應(yīng)低于1/2LsB。

3.

建立時間

D/A轉(zhuǎn)換器的建立時間也稱轉(zhuǎn)換時間,是對D/A轉(zhuǎn)換器轉(zhuǎn)換速度快慢的敏感性能描述指標(biāo),即當(dāng)輸入數(shù)據(jù)發(fā)生變化后,輸出模擬量達(dá)到穩(wěn)定數(shù)值,也即進入規(guī)定的精度范圍內(nèi)所需要的時間。

4.

溫度系數(shù)

溫度系數(shù)是D/A轉(zhuǎn)換器受環(huán)境溫度影響的特征。

5.

非線性誤差

非線性誤差也稱為線性度,它是指實際轉(zhuǎn)換特性曲線與理想轉(zhuǎn)換特性曲線之間的最大偏差。一般要求非線性誤差的絕對值不大于1/2LsB。非線性誤差越小,說明線性度越好,D/A轉(zhuǎn)換器輸出的模擬量與理想值的偏差就越小。

7.2

STM32的DAC

7.2.1

STM32DAC功能簡介

STM32的DAC模塊(數(shù)字/模擬轉(zhuǎn)換模塊)是12

位數(shù)字輸入、電壓輸出型DAC??梢耘渲贸?

位或12

位模式,也可以與DMA控制器配合使用。DAC工作在12

位模式時,數(shù)據(jù)可以設(shè)置成左對齊或右對齊。DAC模塊有兩個輸出通道,每個通道都有獨立的轉(zhuǎn)換器。在雙DAC模式下,兩個通道可以獨立地進行轉(zhuǎn)換,也可以同時進行轉(zhuǎn)換并同步更新兩個通道的輸出。DAC可以通過引腳輸入?yún)⒖茧妷篤

REF+

以獲得更精確的轉(zhuǎn)換結(jié)果。

STM32的DAC模塊主要有以下特點:

·兩個DAC轉(zhuǎn)換器:每個轉(zhuǎn)換器對應(yīng)1

個輸出通道;

·12

位模式下,數(shù)據(jù)左對齊或右對齊;

·三角波、噪聲生成;

·兩個DAC通道同時或分步轉(zhuǎn)換;

·每個通道都有DMA功能;

·外部觸發(fā)轉(zhuǎn)換;

·外部可輸入?yún)⒖茧妷篤

REF+

單個通道的DAC框圖如圖7.5

所示。圖中V

DDA為模擬電源,V

ssA為模擬電源地,V

REF+為參考電源,DAC_OUTx為DAC通道x的模擬量輸出(PA4

或PA5

引腳),EXIT_9為外部觸發(fā)引腳。圖7.5

STM32DAC通道模塊框圖

數(shù)字輸入經(jīng)過DAC被線性地轉(zhuǎn)換為模擬電壓輸出,其范圍為0

到V

REF+

。DAC通道引腳上的輸出電壓滿足下面的關(guān)系:

其中V

O

是DAC輸出的模擬電壓,DOR

為數(shù)字量輸出。

【例7.1】假設(shè)V

REF+

為3.3

V,D/A轉(zhuǎn)換位數(shù)n=12,試求當(dāng)DOR=2000

時,輸出的模擬電壓V

O

等于多少?

7.2.2

STM32DAC的工作模式

1.

DAC的觸發(fā)

STM32DAC的啟動方式可以設(shè)置為觸發(fā)啟動或非觸發(fā)啟動,由DAC控制寄存器(DAC_CR)中的TENx位決定(x表示DAC的通道,1

或2)。

當(dāng)TENx=0

時關(guān)閉通道x的觸發(fā),存入DHRx寄存器的數(shù)據(jù)會在一個APB1

時鐘周期內(nèi)自動轉(zhuǎn)存到DORx寄存器中,在經(jīng)過時間TsETTLING之后,輸出即有效,這段時間的長短依電源電壓和模擬輸出負(fù)載的不同會有所變化。時序圖如圖7.6

所示。

7.6

DAC數(shù)據(jù)轉(zhuǎn)換時序圖

軟件觸發(fā):對DAC_ssWTRIGR寄存器中的sWTRIGx

位置1

可以使能一次軟件觸發(fā),當(dāng)數(shù)據(jù)傳入DORx寄存器后的一個APB1

周期,該位由硬件自動置0。

定時器觸發(fā):對DAC_CR的TsEL1[2:0]位進行配置,可以選擇TIM2、TIM4、TIM5、TIM6、TIM7

和TIM8

定時器觸發(fā),當(dāng)選定的定時器發(fā)生事件后,產(chǎn)生一次定時器觸發(fā),啟動一次DAC轉(zhuǎn)換。

外部中斷觸發(fā):對DAC_CR的TsEL1[2:0]位進行配置,可以選擇外部中斷線9

觸發(fā),當(dāng)該線路發(fā)生指定事件后,使能一次外部中斷觸發(fā),啟動一次DAC轉(zhuǎn)換。

2.

DAC的波形輸出模式

STM32的DAC有3

種輸出模式,分別是關(guān)閉波形輸出、三角波輸出和噪聲輸出。波形輸出模式受DAC_CR寄存器中WAVE1[1:0]位控制,關(guān)閉波形輸出時,用戶可根據(jù)需要自定義波形輸出。

1)三角波輸出

選擇三角波輸出時可在一個基值上疊加一個小幅度的三角波。選擇DAC的三角波生成功能,在DAC_CR寄存器MAMP1[3:0]位中設(shè)置三角波的幅度。DAC內(nèi)部的三角波計數(shù)器在每次觸發(fā)事件之后的3

個APB1

時鐘周期后累加1。計數(shù)器的值與DAC_DHRx寄存器的數(shù)值相加并丟棄溢出位的數(shù)據(jù)后寫入DAC_DORx寄存器。在傳入DAC_DORx寄存器的數(shù)值小于設(shè)置的最大幅度時,三角波計數(shù)器逐步累加。一旦達(dá)到設(shè)置的最大幅度,則計數(shù)器開始遞減,到0

后再開始累加,周而復(fù)始。三角波生成的示意圖如圖7.7

所示。圖7.7

DAC生成三角波的示意圖

2)噪聲輸出

可以利用線性反饋移位寄存器(LFsR)產(chǎn)生幅度變化的偽噪聲。選擇DAC噪聲生成功能,在DAC_CR寄存器MAMP1[3:0]位中設(shè)置噪聲的屏蔽位,可改變噪聲幅度。LFsR的預(yù)裝入值為0xAAA。按照特定算法,在每次觸發(fā)事件后3

個APB1

時鐘周期之后更新該寄存器的值。設(shè)置DAC_CR寄存器的MAMP1[3:0]位可以屏蔽部分或者全部LFsR的數(shù)據(jù),這樣得到的LsFR

值與DAC_DHRx的數(shù)值相加,去掉溢出位之后即被寫入DAC_DORx寄

存器。

3.

DAC的輸出緩存

STM32的DAC集成了2

個輸出緩存,可以用來減少輸出阻抗,無需外部運放即可直接驅(qū)動外部負(fù)載。每個DAC通道輸出緩存可以通過設(shè)置DAC_CR寄存器的BOFFx

位來使能或者關(guān)閉。

7.2.3

STM32DAC的轉(zhuǎn)換

1.

DAC數(shù)據(jù)格式

STM32的DAC是12

位的數(shù)字輸入,它可配置為8

位和12

位,也可配置為單通道和雙通道,在12

位模式下具有左對齊和右對齊兩種格式以適應(yīng)不同格式的用戶數(shù)據(jù)。單通道和雙通道數(shù)據(jù)格式如圖7.8

所示,下面分別進行介紹。圖7.8

DAC數(shù)據(jù)格式

1)單DAC通道

8

位數(shù)據(jù)右對齊:數(shù)據(jù)寫入寄存器DAC_DHR8Rx[7:0]位(實際是寫入寄存器DHRx[11:4]位)。

12

位數(shù)據(jù)左對齊:數(shù)據(jù)寫入寄存器DAC_DHR12Lx[15:4]位(實際是寫入寄存器DHRx[11:0]位)。

12

位數(shù)據(jù)右對齊:數(shù)據(jù)寫入寄存器DAC_DHR12Rx[11:0]位(實際是寫入寄存器DHRx[11:0]位)。

2)雙DAC通道

8

位數(shù)據(jù)右對齊:將DAC1

數(shù)據(jù)寫入寄存器DAC_DHR8RD[7:0]位(實際是存入寄存器DHR1[11:4]位),將DAC2

數(shù)據(jù)寫入寄存器DAC_DHR8RD[15:8]位(實際是存入寄存器DHR2[11:4]位)。

12

位數(shù)據(jù)左對齊:將DAC1

數(shù)據(jù)寫入寄存器DAC_DHR12LD[15:4]位(實際是存入寄存器DHR1[11:0]位),將DAC2

數(shù)據(jù)寫入寄存器DAC_DHR12LD[31:20]位(實際是存入寄存器DHR2[11:0]位)。

12

位數(shù)據(jù)右對齊:將DAC1

數(shù)據(jù)寫入寄存器DAC_DHR12RD[11:0]位(實際是存入寄

存器DHR1[11:0]位),將DAC2

數(shù)據(jù)寫入寄存器DAC_DHR12RD[27:16]位(實際是存入寄存器DHR2[11:0]位)。

根據(jù)對DAC_DHRyyyD

寄存器的操作,經(jīng)過相應(yīng)的移位后,寫入的數(shù)據(jù)被轉(zhuǎn)存到DHR1

和DHR2

寄存器中(DHR1

和DHR2

是內(nèi)部的數(shù)據(jù)保存寄存器x)。隨后,DHR1和DHR2

的內(nèi)容或被自動地傳送到DORx寄存器,或通過軟件觸發(fā)或外部事件觸發(fā)被傳送到DORx寄存器。2.

DAC轉(zhuǎn)

2.

DAC轉(zhuǎn)換

不能直接對寄存器DAC_DORx寫入數(shù)據(jù),任何輸出到DAC通道x的數(shù)據(jù)都必須寫入DAC_DHRx寄存器(數(shù)據(jù)實際寫入DAC_DHR8Rx、DAC_DHR12Lx、DAC_DHR12Rx、DAC_DHR8RD、DAC_DHR12LD

或者DAC_DHR12RD

寄存器)。

如果通道觸發(fā)設(shè)置為禁止,用戶在設(shè)置數(shù)據(jù)格式并賦值時,DAC會自動啟動數(shù)模轉(zhuǎn)換,輸出DOR

寄存器所對應(yīng)的模擬量;如果通道觸發(fā)設(shè)置為定時器觸發(fā)或外部中斷觸發(fā),在相應(yīng)事件發(fā)生后,也會自動啟動數(shù)模轉(zhuǎn)換,輸出DOR

寄存器所對應(yīng)的模擬量;如果通道觸發(fā)設(shè)置為軟件觸發(fā),則需要用戶軟件觸發(fā)啟動DAC進行數(shù)模轉(zhuǎn)換。

3.

DAC使能

將DAC_CR寄存器的Enx位置1

即可使DAC通道x供電。過一段啟動時間,DAC通道x才會被使能。同其他外設(shè)一樣,要想使用,必須先開啟相應(yīng)的時鐘。STM32的DAC模塊時鐘是由APB1

提供的。

4.

DMA請求

STM32的DAC2

個通道都具有DMA功能。2

個DMA通道可分別用于2

個DAC通道的DMA請求。如果將DAC_CR寄存器中的DMAEnx位置1,一旦有外部觸發(fā)(而不是軟件觸發(fā))發(fā)生,則產(chǎn)生一個DMA請求,將指定地址中的數(shù)據(jù)存入DAC_DHRx寄存器中,隨后數(shù)據(jù)被傳送到DAC_DORx寄存器,啟動DAC轉(zhuǎn)換輸出。查STM32數(shù)據(jù)手冊可知,DAC通道1

與DMA2

的通道3

對應(yīng),DAC通道2

與DMA2

的通道4

對應(yīng)。

7.2.4

STM32DAC的應(yīng)用

1.

STM32DAC硬件電路

STM32的DAC集成在芯片內(nèi)部,因此它的硬件電路非常簡單,如圖7.9

所示。其內(nèi)部帶運算放大器,具有一定的負(fù)載能力,開啟輸出緩沖使能可以增加帶負(fù)載

能力。一旦使能DACx通道,相應(yīng)的GPIO(PA4

或PA5)引腳就會自動與DAC的模擬輸出相連。圖7.9

DAC硬件電路

2.

開啟DAC輸出的步驟

要正確使用STM32的DAC,需要對相應(yīng)的GPIO

引腳、系統(tǒng)時鐘、DAC控制寄存器等進行一系列的設(shè)置,如果使用了定時器觸發(fā)、外部中斷觸發(fā)和DMA功能,還需要對這些外設(shè)進行配置。下面以軟件觸發(fā)DAC通道1

產(chǎn)生三角波為例,講述使用DAC的一般步驟。

1)GPIO

引腳配置

STM32的DAC通道1

模擬量輸出在PA4

引腳上,因此需要先使能PORtA的時鐘,并將PA4

引腳配置為模擬量輸入。DAC本身是輸出,將PA4

引腳配置為模擬量輸入是為了避免額外的干擾和降低功耗。

3.

DAC應(yīng)用的軟件設(shè)計

下面通過幾個應(yīng)用實例,進一步了解和掌握STM32DAC應(yīng)用的具體方法。

【例7.1】在DAC通道1

上自定義輸出方波,通道觸發(fā)關(guān)閉。

【例7.2】使用軟件觸發(fā)方式,在DAC通道1

上產(chǎn)生正弦波,DAC通道2

上產(chǎn)生鋸齒波。

【例7.3】使用定時器2

觸發(fā),在DAC通道1

上產(chǎn)生三角波,通道2

上產(chǎn)生噪聲。

【例7.4】用DMA的方式在ADC通道1

上產(chǎn)生正弦波,選擇定時器2

觸發(fā)。

7.3A∕D

轉(zhuǎn)換基礎(chǔ)

7.3.1A∕D

轉(zhuǎn)換原理在A/D轉(zhuǎn)換中,因為輸入的模擬信號在時間上是連續(xù)的,而輸出的數(shù)字信號是離散量,所以進行轉(zhuǎn)換時只能按一定的時間間隔對輸入的模擬信號進行采樣,然后再把采樣值轉(zhuǎn)換為數(shù)字量輸出。通常A/D轉(zhuǎn)換需要經(jīng)過采樣、保持、量化、編碼四個步驟。

1.

采樣和保持

A/D轉(zhuǎn)換需要一定的時間,在轉(zhuǎn)換過程中,如果輸入到ADC的模擬量發(fā)生變化,則不能保證轉(zhuǎn)換精度。為此,需要在ADC前加入采樣保持電路,最基本的采樣保持器電路如圖7.10

所示。采樣時,V

C

為高電平,開關(guān)s

導(dǎo)通,模擬信號V

in通過s

向電容CH充電,如果電容CH

電容值很小,電容可以在很短的時間內(nèi)完成充放電,輸出電壓V

O

跟蹤輸入模擬信號的變化。保持時,V

C

為低電平,開關(guān)s

斷開,由于集成運放的輸入阻抗高,電容放電緩慢,輸出電壓V

O

保持在模擬開關(guān)斷開瞬間的輸入信號值。圖7.10基本的采樣保持器電路圖

在進行數(shù)據(jù)采集之前,需要確定采樣頻率:即在一段固定時間內(nèi)采集數(shù)據(jù)的點數(shù)。采樣頻率是一個很重要的參數(shù),采樣頻率越高,采樣越密,單位時間內(nèi)的采樣值越多,采樣信號就越接近輸入信號的波形,如圖7.11

所示。圖7.11采樣和保持波形示意圖

2.

量化與編碼

輸入的模擬電壓信號經(jīng)過采樣和保持后,得到的是階梯波,而階梯波仍是一個模擬信號。量化就是用基本量化單位的個數(shù)來表示采樣到的模擬信號的幅值,從而實現(xiàn)模擬量到數(shù)字量的轉(zhuǎn)換,這個過程也稱為量化過程。編碼是把已經(jīng)量化的模擬值用二進制、BCD或其他碼來表示,這個過程稱為編碼。

例如,一個12

位的A/D轉(zhuǎn)換器,把輸入電壓分成了4096

等份,若量程為0~3.3

V,則量化單位Δ為

由于模擬電壓信號在數(shù)值上是連續(xù)的,不一定被量化單位Δ整除,所以在量化過程中就可能引入誤差量。A/D轉(zhuǎn)換器的位數(shù)越多,量化的誤差就越小。例如10

位的A/D轉(zhuǎn)換器最小量化誤差為

由此可見,A/D轉(zhuǎn)換器的位數(shù)越多,量化等級越細(xì),量化誤差越小。量化時對誤差有兩種處理方法:只舍不入和有舍有入。只舍不入是將不足一個量化單位的尾數(shù)去掉,取原整數(shù),誤差相對較大。有舍有入是當(dāng)尾數(shù)小于Δ/2

時用舍尾取整法得其量化值,當(dāng)尾數(shù)大于Δ/2

用舍尾入整法得其量化值。

7.3.2A∕D

轉(zhuǎn)換器分類

隨著大規(guī)模、超大規(guī)模集成電路技術(shù)的飛速發(fā)展,A/D轉(zhuǎn)換器的設(shè)計思想和制作技術(shù)層出不窮。為了滿足不同檢測和控制任務(wù)的需求,大量結(jié)構(gòu)不同、性能各異的A/D轉(zhuǎn)換器應(yīng)運而生。盡管A/D轉(zhuǎn)換器的種類很多,但目前應(yīng)用較為廣泛的主要有三種類型:逐次逼近型A/D轉(zhuǎn)換器、雙積分型A/D轉(zhuǎn)換器和V/F變換型A/D轉(zhuǎn)換器。下面簡要介紹這三種A/D轉(zhuǎn)換器的基本原理。

1.

逐次逼近型A/D轉(zhuǎn)換器的基本原理

逐次逼近型A/D轉(zhuǎn)換器是較為常用的一種A/D轉(zhuǎn)換器。它由比較器、參考電源、D/A轉(zhuǎn)換器、逐次逼近寄存器與控制邏輯等部分組成。圖7.12逐次逼近型A/D轉(zhuǎn)換器的基本原理

2.

雙積分型A/D轉(zhuǎn)換器的基本原理

雙積分型A/D轉(zhuǎn)換器是一種高精度、低速度的轉(zhuǎn)換器件,在各種實時性要求不高的測量儀表中有廣泛應(yīng)用。其基本原理是:把待轉(zhuǎn)換的模擬電壓V

A

變換成與之成比例的時間,并在此時間內(nèi)用恒定頻率的脈沖去計數(shù),這樣就將其轉(zhuǎn)換為數(shù)字n;n

和V

A

也成正比,也稱為模擬電壓—時間間隔—數(shù)字量轉(zhuǎn)換原理。雙積分型A/D轉(zhuǎn)換器的電路結(jié)構(gòu)如圖7.13

所示,它由積分器、計數(shù)器、比較器和邏輯控制電路組成。圖7.13雙積分型A/D轉(zhuǎn)換器的電路結(jié)構(gòu)圖

雙積分型A/D轉(zhuǎn)換器的工作原理如圖7.14

所示。轉(zhuǎn)換器先將計數(shù)器復(fù)位,積分電容C完全放電后,其工作分為兩個階段:

在第一階段,首先對輸入模擬電壓進行固定時間的積分,積分結(jié)束后積分器的輸出電壓為V;然后在此基礎(chǔ)上對該電壓按照一個固定的斜率(取決于參考電壓)進行第二階段的反向積分,并記錄積分器輸出由V

降為0

的時間。圖7.14雙積分型A/D轉(zhuǎn)換器的工作原理

雙積分型A/D轉(zhuǎn)換過程中進行兩次積分,具有如下優(yōu)點:

·抗干擾能力強。尤其對工頻干擾有較強的抑制作用,只要選擇定時器積分時間為20ms

的整數(shù)倍即可。

·具有較高的轉(zhuǎn)換精度。這主要取決于計數(shù)脈沖周期,計數(shù)脈沖頻率越高,計數(shù)精度也就越高。

·電路結(jié)構(gòu)簡單。對積分元件R、C參數(shù)精度要求不高,只要穩(wěn)定性好即可。

·編碼方便。數(shù)字量輸出既可以是二進制,也可以是BCD碼,僅取決于計數(shù)器的計數(shù)規(guī)律。

3.

V/F變換型A/D轉(zhuǎn)換器的基本原理

V/F變換是把電壓信號轉(zhuǎn)變?yōu)轭l率信號,其核心部件是電壓—頻率(V/F)變換器。它是將待轉(zhuǎn)換的模擬電壓信號先變換為脈沖信號,該脈沖信號的頻率與信號幅值成正比,然后在一段標(biāo)準(zhǔn)時間內(nèi),用計數(shù)器累計所產(chǎn)生的脈沖數(shù),從而實現(xiàn)A/D轉(zhuǎn)換,這就是電壓—頻率—數(shù)字轉(zhuǎn)換原理。

V/F變換器內(nèi)部電路圖如圖7.15(a)所示。圖7.15

V/F變換器

圖7.16

給出了完整的V/F變換型A/D轉(zhuǎn)換器的工作原理圖。時基電路產(chǎn)生若干精確的時間間隔,即時基信號,通常取10

s、1

s

或0.1

s

等。計數(shù)器的計數(shù)值經(jīng)鎖存器鎖存后輸出,完成A/D轉(zhuǎn)換全部過程。圖7.16

V/F變換型A/D轉(zhuǎn)換器的工作原理圖

V/F變換型A/D轉(zhuǎn)換器具有以下優(yōu)點:

·由于應(yīng)用了積分電容,具有很好的抗干擾性。V/F變換本身是一個積分過程,用V/F變換器實現(xiàn)A/D變換就是頻率計數(shù)過程,相當(dāng)于在計數(shù)時間內(nèi)對頻率信號進行積分,因而具有較強的抗干擾能力。

·具有良好的線性度和較高的分辨率。數(shù)字位數(shù)與時基信號持續(xù)時間T有關(guān),T越長,則轉(zhuǎn)換數(shù)字量的位數(shù)就越多。

·電路結(jié)構(gòu)簡單。對外接電容C要求不高,只要求保持良好的穩(wěn)定性即可。

·接口簡單、占用計算機硬件資源少。頻率信號可輸入CPU的任一個I/O端口或作為中斷及計數(shù)輸入等。

·便于遠(yuǎn)距離傳輸。由于頻率量是開關(guān)信號,因此可以長距離傳輸而不受干擾。

由于以上這些特點,V/F變換器應(yīng)用于一些非快速而需進行較長距離信號傳輸?shù)模粒疍轉(zhuǎn)換過程,此外還可以簡化電路、降低成本、提高性價比。

上述三種A/D轉(zhuǎn)換方法各有特點,不同的性能使它們各自適用于不同的應(yīng)用場合。雙積分型ADC屬于間接轉(zhuǎn)換,其特點是精度高、價格便宜,抗干擾能力強,但轉(zhuǎn)換速率較低。由于雙積分型ADC是利用平均值轉(zhuǎn)換,因此對于常態(tài)干擾的抑制能力較強,常用于數(shù)字電壓表等低速場合。

7.3.3

A/D

轉(zhuǎn)換性能指標(biāo)

A/D

轉(zhuǎn)換可以有多種實現(xiàn)方式,但它們的性能特點和價格有很大差異。因此在選用時應(yīng)注意各種A/D轉(zhuǎn)換器的主要性能是否滿足應(yīng)用要求,以及在價格上是否合理。AD

轉(zhuǎn)換器的性能指標(biāo)主要有以下幾個方面。

1.

分辨率

ADC的分辨率是指能分辨的輸入模擬量的最小值,即輸出數(shù)字量最低位LSB

由1→0或由0→1

變化時輸入模擬量變化的最小值,是A/D輸出的二進制或十進制數(shù)的位數(shù),也是A/D轉(zhuǎn)換器理論上能達(dá)到的精度。分辨率通常用二進制位數(shù)來表示。

2.

轉(zhuǎn)換速率

ADC的轉(zhuǎn)換速率就是能夠重復(fù)進行數(shù)據(jù)轉(zhuǎn)換的速度,即每秒轉(zhuǎn)換的次數(shù)。而完成一次A/D轉(zhuǎn)換所需要的時間,則是轉(zhuǎn)換速率的倒數(shù)。ADC的轉(zhuǎn)換速率與A/D轉(zhuǎn)換原理相關(guān),雙積分型ADC轉(zhuǎn)換速率較慢,而逐次逼近型ADC轉(zhuǎn)換速率較快。

3.

量化誤差

量化誤差是由ADC的有限分辨率所引起的誤差。A/D轉(zhuǎn)換的結(jié)果只能是有限數(shù)量的定值,而模擬信號的取值則是無限的。一個分辨率有限的ADC的階梯狀輸入輸出特性曲線與具有無限分辨率的ADC輸入輸出特性曲線(直線)之間的最大偏差,稱為量化誤差,如圖7.17

所示。

圖7.17

ADC的輸入輸出特性與量化誤差

4.

轉(zhuǎn)換精度

ADC的轉(zhuǎn)換精度有絕對精度和相對精度之分。

所謂絕對精度是指在ADC的整個量程范圍內(nèi),所對應(yīng)的模擬信號值與實際值之差的最大值,也就是ADC輸出數(shù)值偏離線性最大的距離,單位是LSB,它包括所有的誤差。相對精度是絕對精度與滿量程輸入信號的百分比。

應(yīng)當(dāng)注意,精度和分辨率是兩個不同概念。精度是指轉(zhuǎn)換后所得到的實際值相對于理論值的誤差或接近程度;而分辨率則是指能夠?qū)D(zhuǎn)換結(jié)果發(fā)生影響的最小輸入量。

引起ADC誤差的原因除了量化誤差以外,還有設(shè)備誤差。由ADC各種元件的非理想特性造成的誤差稱為設(shè)備誤差,主要有以下幾種。

(1)偏移誤差。偏移誤差指ADC的最低有效位為1

時,其實際輸入電壓與理論輸入電壓之差。

(2)滿刻度誤差。滿刻度誤差又稱為增益誤差。

(3)線性度。線性度有時也稱為非線性度,它是指ADC實際的輸入輸出特性曲線與理想直線的最大偏差。

7.3.4多通道數(shù)據(jù)采集

在計算機測量和控制系統(tǒng)中,很多時候需要對多種參數(shù)進行采集和控制,為了節(jié)省硬件,可以共用同一個A/D或D/A轉(zhuǎn)換器,實現(xiàn)多個回路的多參數(shù)的采集、轉(zhuǎn)換和控制。解決多個回路和A/D或D/A轉(zhuǎn)換器之間的切換問題的硬件設(shè)備稱作多路模擬開關(guān)。

圖7.18

所示是一個多回路分時共用A/D、D/A轉(zhuǎn)換器的多路模擬開關(guān)框圖。圖中,在模擬量輸入端和模擬量輸出端都分別用到了多路模擬開關(guān),但是兩個多路模擬開關(guān)作用不同。在模擬量輸入通道中實現(xiàn)的是“多選一”形式,即多路模擬開關(guān)的輸入是多路待轉(zhuǎn)換的模擬量,每次只能選其中的一路,該通路經(jīng)采樣保持器,送到A/D轉(zhuǎn)換器進行轉(zhuǎn)換后,送入計算機進行處理。在模擬量輸出通道中實現(xiàn)的是“一到多”形式,即D/A轉(zhuǎn)換器輸出的模擬控制信號,經(jīng)過多路模擬開關(guān)變換,被送到多個控制對象中的某一個上。圖7.18多回路分時共用A/D、D/A轉(zhuǎn)換器框圖

7.4

STM32的ADC

STM32芯片內(nèi)部集成有12

位的A/D轉(zhuǎn)換器,該ADC是一種逐次逼近型模/數(shù)轉(zhuǎn)換器。它有多達(dá)18

個通道,可測量16

個外部和2

個內(nèi)部信號源。各通道的A/D轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC的結(jié)果可以左對齊或右對齊方式儲存在16

位的寄存器中。ADC的輸入時鐘不得超過14

MHZ,它是由PCLK2

經(jīng)分頻產(chǎn)生的。

7.4.1

STM32ADC功能簡介

·12

位分辨率

·轉(zhuǎn)換結(jié)束、注入轉(zhuǎn)換結(jié)束和發(fā)生模擬看門狗事件時產(chǎn)生中斷

·單次和連續(xù)轉(zhuǎn)換模式

·從通道0

到通道n

的自動掃描模式

·自校準(zhǔn)

·帶內(nèi)嵌數(shù)據(jù)一致性的數(shù)據(jù)對齊

·采樣間隔可以按通道分別設(shè)置

·規(guī)則轉(zhuǎn)換和注入轉(zhuǎn)換均有外部觸發(fā)選項

·間斷模式

·雙重模式(帶2

個或以上ADC的器件)

·ADC轉(zhuǎn)換時間:1μs~2μs

·ADC供電要求:2.4~3.6

V;

·ADC輸入范圍:V

REF-≤V

in≤V

REF+

·規(guī)則通道轉(zhuǎn)換期間有DMA請求產(chǎn)生

圖7.19

所示為一個ADC模塊的框圖,其引腳說明見表7.1。圖7.19

ADC模塊框圖

根據(jù)STM32產(chǎn)品不同,ADC轉(zhuǎn)換器個數(shù)不等,最多有3

個,分別是ADC1、ADC2和ADC3。每個ADC轉(zhuǎn)換器都可以獨立工作,分配了與之對應(yīng)的通道和I/O引腳,如表7.2

所示。例如通道0,描述為ADC123_In0,引腳PA0,表示使用PA0

引腳作為模擬量輸入的ADC通道0,ADC1、ADC2

和ADC3

都可以使用。通道16

為內(nèi)部溫度傳感器輸入,通道17為V

REFINT內(nèi)部參考電壓輸入,溫度傳感器和V

REFINT只能使用ADC1

進行轉(zhuǎn)換。

所有輸入通道被分成規(guī)則通道(最多16

通道)和注入通道(最多4

通道)兩類,注入通道的轉(zhuǎn)換結(jié)果分別存放于4

個16

位數(shù)據(jù)寄存器中,而所有的規(guī)則通道則共用一個16

位的數(shù)據(jù)寄存器。除此以外,兩通道的觸發(fā)控制和轉(zhuǎn)換結(jié)束的標(biāo)志信號都有不同,注入組的控制和狀態(tài)信號一般都以字母J開頭。

需要注意ADC3

的規(guī)則轉(zhuǎn)換和注入轉(zhuǎn)換與ADC1

和ADC2

的不同;TIM8_CH4

和TIM8_TRGO

及它們的重映射位只存在于大容量產(chǎn)品中。

7.4.2

STM32ADC的工作模式

STM32的ADC有多種轉(zhuǎn)換工作模式,功能十分強大。如圖7.20

所示,單通道單次轉(zhuǎn)換可用于系統(tǒng)初始時檢測某些外部條件是否滿足,從而決定系統(tǒng)是否啟動。而多通道連續(xù)轉(zhuǎn)換則在ADC初始化完成后經(jīng)一次觸發(fā)后自動連續(xù)轉(zhuǎn)換,CPU只需要在轉(zhuǎn)換完成后從ADC的數(shù)據(jù)寄存器中取走結(jié)果。在這些工作方式的支持下,STM32的ADC將許多原來由應(yīng)用軟件完成的工作變成由硬件實現(xiàn),大大簡化了應(yīng)用程序,節(jié)約了CPU的運行時間。

特別是在連續(xù)轉(zhuǎn)換工作模式下,配合DMA控制器可將A/D轉(zhuǎn)換結(jié)果自動搬運到指定的內(nèi)存空間,CPU不參與A/D轉(zhuǎn)換結(jié)果的讀取和轉(zhuǎn)換的啟動,讓ADC全自動化地工作,把CPU的負(fù)荷降到最低。圖7.20

STM32ADC的基本工作模式

1.

獨立ADC和雙ADC模式

含有2

個或以上ADC模塊的STM32產(chǎn)品,可以采用雙ADC模式,也可以采用獨立ADC模式。在獨立ADC模式下,每個ADC模塊可以獨立工作,但不能同步。在雙ADC模式下,可實現(xiàn)同步觸發(fā)和交替觸發(fā)等很多種不同模式。這些模式在STM32參考手冊中有詳細(xì)介紹。本節(jié)只討論獨立ADC模式。

2.

規(guī)則通道和注入通道

STM32的每個ADC模塊都是通過內(nèi)部的模擬多路開關(guān),切換到不同的輸入通道進行采樣與轉(zhuǎn)換。為了避免在程序中頻繁切換通道的麻煩,STM32引入了成組轉(zhuǎn)換的工作原理,可以由程序預(yù)先設(shè)置好待轉(zhuǎn)換的通道后,對多個模擬通道自動地進行逐個采樣和轉(zhuǎn)換。按照功能不同將輸入通道分成了規(guī)則通道組和注入通道組。

1)規(guī)則通道

規(guī)則通道組最多可以安排16

個通道,最少要安排1

個通道,多于1

個通道的稱為多通道數(shù)據(jù)采集,只有1

個通道的稱為單通道數(shù)據(jù)采集。規(guī)則通道組個數(shù)要寫入ADC_SQR1

寄存器的L[3:0]位中,而它們的轉(zhuǎn)換順序要寫入ADC_SQR1~ADC_SQR3

寄存器中,規(guī)則通道的觸發(fā)方式在ADC_CR2

寄存器中的EXTSEL[2:0]位中配置。

2)注入通道

注入通道組最多可以安排4

個通道,如果啟用注入通道,最少要安排1

個通道。注入通道的個數(shù)要寫入ADC_JSQR寄存器的L[1:0]位中,而它們的轉(zhuǎn)換順序要寫入ADC_JSQR

寄存器中,注入通道的觸發(fā)方式在ADC_CR2

寄存器中的JEXTSEL[2:0]位中配置。

3.

單次轉(zhuǎn)換模式

在單次轉(zhuǎn)換模式下,ADC只執(zhí)行一次轉(zhuǎn)換。將ADC_CR2

寄存器中的CONT位置0

可選擇單次轉(zhuǎn)換模式。該模式既可通過軟件啟動(只使用規(guī)則通道),也可以通過外部觸發(fā)啟動(適用于規(guī)則通道和注入通道),啟動一次轉(zhuǎn)換一次,一旦轉(zhuǎn)換完成,則:

(1)如果是規(guī)則通道被轉(zhuǎn)換:轉(zhuǎn)換結(jié)果存儲在16

位的寄存器ADC_DR

中,置轉(zhuǎn)換結(jié)束標(biāo)志位EOC=1,如果使能了中斷EOCIE,則產(chǎn)生中斷,然后ADC停止工作。

(2)如果是注入通道被轉(zhuǎn)換:轉(zhuǎn)換結(jié)果存儲在16

位的寄存器ADC_CRJ1

中,注入轉(zhuǎn)換結(jié)束標(biāo)志位JEOC=1,如果使能了中斷JEOCIE,則產(chǎn)生中斷,然后ADC停止工作。

4.

連續(xù)轉(zhuǎn)換模式

在連續(xù)轉(zhuǎn)換模式中,當(dāng)前面一次ADC轉(zhuǎn)換結(jié)束后,馬上啟動另一次轉(zhuǎn)換。將ADC_CR2

寄存器中的COnT位置1

可選擇連續(xù)轉(zhuǎn)換模式,此模式可通過外部觸發(fā)啟動或軟件觸發(fā)啟動,一旦啟動后,ADC執(zhí)行轉(zhuǎn)換,轉(zhuǎn)換結(jié)果存入ADC_DR

寄存器中,如果使能中斷則產(chǎn)生中斷信號,ADC會繼續(xù)啟動下一次的ADC轉(zhuǎn)換,一直循環(huán)往復(fù)。由于規(guī)則通道共用一個結(jié)果數(shù)據(jù)寄存器,如果規(guī)則通道的ADC_DR

寄存器中的數(shù)據(jù)沒有及時取走,數(shù)據(jù)會被下一次的轉(zhuǎn)換結(jié)果替換。

5.

掃描模式

掃描模式用來掃描一組模擬通道,該模式可通過設(shè)置ADC_CR1

寄存器中SCAN

位設(shè)置,SCAN=0

表示關(guān)閉掃描模式,SCAN=1

表示開啟掃描模式。

6.

間斷模式

間斷模式是對多通道轉(zhuǎn)換序列的一個補充,間隔長度為n(n≤8),它必須由外部事件觸發(fā)。

7.4.3

STM32ADC的轉(zhuǎn)換

1.

ADC數(shù)據(jù)格式

1)規(guī)則通道

在規(guī)則通道模式下,ADC轉(zhuǎn)換結(jié)果存放在ADC_DR

中。

2)注入通道

在注入通道模式下,ADC轉(zhuǎn)換結(jié)果要減去存放在ADC_JOFRx寄存器中定義的偏移量,最終結(jié)果寫入ADC_JDRx寄存器(x=1~4

對應(yīng)選擇的注入通道號)。

2.

可編程采樣時間

ADC使用若干個ADC_CLK

周期對輸入電壓進行采樣,采樣周期數(shù)目可以通過ADC_sMPR1

和ADC_sMPR2

寄存器中的SMP[2:0]位更改。每個通道可以分別用不同的時間采樣??傓D(zhuǎn)換時間計算如下:TCONV

=采樣時間+12.5

個周期。

3.

校準(zhǔn)

ADC有一個內(nèi)置自校準(zhǔn)模式。校準(zhǔn)可大幅減小因內(nèi)部電容器組的變化而造成的準(zhǔn)精度誤差。在校準(zhǔn)期間,每個電容器上都會計算出一個誤差修正碼(數(shù)字值),這個碼用于消除在隨后的轉(zhuǎn)換中每個電容器上產(chǎn)生的誤差。通過設(shè)置ADC_CR2

寄存器的CAL

位啟動校準(zhǔn)。一旦校準(zhǔn)結(jié)束,CAL

位被硬件復(fù)位,可以開始正常轉(zhuǎn)換。建議在上電時執(zhí)行一次ADC校準(zhǔn)。校準(zhǔn)階段結(jié)束后,校準(zhǔn)碼存儲在ADC_DR

中。

4.

轉(zhuǎn)換啟動

ADC啟動可以由軟件觸發(fā),也可以由外部事件觸發(fā)(例如定時器捕獲、EXTI

線)。如果設(shè)置了EXTTRIG

控制位,則外部事件就能夠觸發(fā)轉(zhuǎn)換。EXTTSEL[2:0]和JEXTSEL[2:0]控制位允許應(yīng)用程序選擇8

個可能事件中的某一個,EXTSEL[2:0]位設(shè)置規(guī)則通道組觸發(fā)源,JEXTSEL[2:0]位設(shè)置注入通道組觸發(fā)源的采樣。規(guī)則通道和注入通道觸發(fā)源清單如表7.3

所示,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論