《基于構(gòu)件化的嵌入式系統(tǒng)設(shè)計》 課件 項目5、6 利用Timer實現(xiàn)PWM和輸入捕獲功能;利用ADC設(shè)計簡易數(shù)字電壓表_第1頁
《基于構(gòu)件化的嵌入式系統(tǒng)設(shè)計》 課件 項目5、6 利用Timer實現(xiàn)PWM和輸入捕獲功能;利用ADC設(shè)計簡易數(shù)字電壓表_第2頁
《基于構(gòu)件化的嵌入式系統(tǒng)設(shè)計》 課件 項目5、6 利用Timer實現(xiàn)PWM和輸入捕獲功能;利用ADC設(shè)計簡易數(shù)字電壓表_第3頁
《基于構(gòu)件化的嵌入式系統(tǒng)設(shè)計》 課件 項目5、6 利用Timer實現(xiàn)PWM和輸入捕獲功能;利用ADC設(shè)計簡易數(shù)字電壓表_第4頁
《基于構(gòu)件化的嵌入式系統(tǒng)設(shè)計》 課件 項目5、6 利用Timer實現(xiàn)PWM和輸入捕獲功能;利用ADC設(shè)計簡易數(shù)字電壓表_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

嵌入式系統(tǒng)設(shè)計

為了實現(xiàn)嵌入式系統(tǒng)設(shè)計的可移植和可復(fù)用,嵌入式硬件和嵌入式軟件均采用構(gòu)件化的設(shè)計思想,即對嵌入式硬件和嵌入式軟件進行封裝,供系統(tǒng)設(shè)計者調(diào)用,并倡導(dǎo)嵌入式軟件分層設(shè)計的理念,以大幅度降低嵌入式技術(shù)學(xué)習(xí)難度和開發(fā)難度。

本書特色:項目任務(wù)驅(qū)動,突出學(xué)以致用,注重實踐創(chuàng)新。每個項目且均采用了“通用知識”→“嵌入式構(gòu)件設(shè)計”→“應(yīng)用層程序設(shè)計”→“學(xué)以致用與創(chuàng)新”的學(xué)習(xí)流程。采用“搭積木”的思想,逐步提高嵌入式系統(tǒng)設(shè)計能力。

本書可作為高等學(xué)校電子信息類、計算機類、自動化類等專業(yè)的嵌入式系統(tǒng)設(shè)計教材,也可作為嵌入式技術(shù)培訓(xùn)教材,還可供從事嵌入式技術(shù)開發(fā)的工程技術(shù)人員參考。項目1:GPIO基礎(chǔ)應(yīng)用—實現(xiàn)閃燈和開關(guān)狀態(tài)檢測與控制功能項目2:利用定時中斷實現(xiàn)頻閃燈項目3:GPIO和定時器的綜合應(yīng)用—實現(xiàn)數(shù)碼管顯示、鍵盤測控、測溫功能項目4:利用UART實現(xiàn)上位機和下位機的通信項目5:利用Timer實現(xiàn)PWM和輸入捕獲功能項目6:利用

ADC

設(shè)計簡易數(shù)字電壓表項目7:利用

SPI

實現(xiàn)多機串行通信項目8:利用

CAN

實現(xiàn)多機通信教

內(nèi)

項目5利用Timer實現(xiàn)PWM和輸入捕獲功能【項目導(dǎo)讀】

在項目2中已學(xué)習(xí)STM32F103C8T6中的16位定時器(Timer)的基本定時功能。在本項目中學(xué)習(xí)利用Timer實現(xiàn)PWM功能和輸入捕獲功能。

脈寬調(diào)制(PulseWidthModulation,PWM)信號是一個高電平和低電平重復(fù)交替的輸出信號,PWM廣泛應(yīng)用于電機轉(zhuǎn)速控制、燈光亮度控制等領(lǐng)域。輸入捕獲(InputCapture)可用于測量脈沖信號的周期和脈寬?!緦W(xué)習(xí)目標】1)理解PWM的通用知識,包括PWM的相關(guān)概念、技術(shù)指標及應(yīng)用場合。2)理解輸入捕獲的通用知識,包括輸入捕獲的過程、原理及應(yīng)用場合。3)熟悉MCU的Timer通道引腳,掌握MCU的PWM和輸入捕獲底層驅(qū)動構(gòu)件的使用方法,能利用其底層驅(qū)動構(gòu)件頭文件進行PWM功能和輸入捕獲功能的應(yīng)用層程序設(shè)計,能利用PWM控制小燈的亮度、利用輸入捕獲測量脈沖信號的周期和脈寬。*4)熟悉MCU的PWM和輸入捕獲底層驅(qū)動構(gòu)件源文件的設(shè)計方法。項目5利用Timer實現(xiàn)PWM和輸入捕獲功能任務(wù)5.1理解PWM和輸入捕獲的通用知識5.1.1PWM的通用知識1、

PWM的基本概念與技術(shù)指標

PWM信號是一個高電平和低電平重復(fù)交替的輸出信號。

目前經(jīng)常使用的PWM信號主要是通過MCU編程實現(xiàn)的。利用MCU輸出PWM信號時,需要一個產(chǎn)生PWM信號的時鐘源,設(shè)其周期為TCLK。任務(wù)5.1理解PWM和輸入捕獲的通用知識5.1.1PWM的通用知識1、

PWM的基本概念與技術(shù)指標(1)周期:持續(xù)的時鐘周期個數(shù)。

TPWM=8

TCLK

圖(a):2

TCLK

圖(b):4

TCLK

圖(c):6

TCLK(3)占空比:脈寬/周期,百分比

(2)脈寬:一個PWM周期內(nèi)PWM信號

處于高電平的時間。

圖(a):25%

圖(b):50%

圖(c):75%任務(wù)5.1理解PWM和輸入捕獲的通用知識5.1.1PWM的通用知識1、

PWM的基本概念與技術(shù)指標(4)極性:決定了PWM信號的有效電平

正極性:PWM信號的有效電平為高電平,平時電平(空閑電平)為低電平;

負極性:PWM信號的有效電平為低電平,平時電平(空閑電平)為高電平。(5)分辨率△T

:PWM脈寬的最小時間增量,等于計數(shù)時鐘周期。

脈沖寬度的增加與減少只能是△T的整數(shù)倍。

任務(wù)5.1理解PWM和輸入捕獲的通用知識5.1.1PWM的通用知識1、

PWM的基本概念與技術(shù)指標(6)對齊方式——邊沿對齊

向上單向計數(shù)初值

IN=0模值

MOD=7通道值CnV=4PWM周期=(MOD-IN+1)×TCLKPWM脈寬=(CnV-IN)×TCLK任務(wù)5.1理解PWM和輸入捕獲的通用知識5.1.1PWM的通用知識1、

PWM的基本概念與技術(shù)指標(6)對齊方式——中心對齊

向上/向下雙向計數(shù)初值

IN=0模值

MOD=4通道值CnV=2PWM周期=2×(MOD-IN)×TCLKPWM脈寬=2×(CnV-IN)×TCLK任務(wù)5.1理解PWM和輸入捕獲的通用知識5.1.1PWM的通用知識2、

PWM的應(yīng)用場合

(1)利用PWM為其他設(shè)備產(chǎn)生類似于時鐘的信號。例如,PWM可用來控制燈以一定的頻率閃爍。

(2)利用PWM控制輸入到某個設(shè)備的平均電流或電壓。例如,PWM可用來控制直流電動機轉(zhuǎn)速。

(3)利用PWM控制命令字編碼。例如,用不同的脈寬代表不同的命令,控制無線遙控車做不同的動作(左轉(zhuǎn)、右轉(zhuǎn)、前進等)。任務(wù)5.1理解PWM和輸入捕獲的通用知識

【知識鞏固】

(1)PWM涉及哪些基本概念和技術(shù)指標?

(2)PWM有哪些主要用途?5.1.1PWM的通用知識5.1.2輸入捕獲的通用知識任務(wù)5.1理解PWM和輸入捕獲的通用知識

MCU的定時/計數(shù)器的通道引腳在捕獲到外部脈沖信號的沿跳變(上升沿或下降沿)時,會將計數(shù)器的當前值鎖存到對應(yīng)的通道值寄存器;若允許輸入捕獲中斷(通道中斷),則可在中斷服務(wù)程序中通過讀取通道值寄存器的值得到沿跳變對應(yīng)的時刻。

脈沖信號的周期

=

時刻3-時刻1=時刻4-時刻2

脈沖信號的脈寬

=時刻2-時刻1=時刻4-時刻3

當被測脈沖信號的周期或脈寬小于定時器的溢出周期時:脈沖信號的周期或脈寬=對應(yīng)的計數(shù)次數(shù)*計數(shù)周期

=對應(yīng)的計數(shù)次數(shù)/計數(shù)頻率【知識鞏固】簡述利用輸入捕獲測量脈沖信號的周期和脈寬的基本原理。

任務(wù)5.2掌握Timer_PWM_INCAP底層驅(qū)動構(gòu)件使用方法5.2.1MCU的Timer通道引腳

每個Timer的4個通道引腳有不同的組合,具體由復(fù)用功能I/O引腳的配置決定,其實現(xiàn)請參閱后續(xù)底層驅(qū)動構(gòu)件頭文件中的宏定義。5.2.2Timer_PWM_INCAP底層驅(qū)動構(gòu)件的組成及使用方法

Timer_PWM_INCAP底層驅(qū)動構(gòu)件由timer_pwm_incap.h頭文件和timer_pwm_incap.c源文件組成,若要使用Timer_PWM_INCAP底層驅(qū)動構(gòu)件,只需將這兩個文件添加到所建工程的04_Driver(MCU底層驅(qū)動構(gòu)件)文件夾中,即可實現(xiàn)對PWM功能和輸入捕獲功能的操作。見工程文件:..EmbeddedSource\03-Software\STM32F103\STM32F103.uvprojx

其中,timer_pwm_incap.h頭文件主要包括相關(guān)頭文件的包含、一些必要的宏定義、對外接口函數(shù)的聲明,而timer_pwm_incap.c源文件則是對外接口函數(shù)的具體實現(xiàn),初學(xué)者不必深究。

用戶只要熟悉timer_pwm_incap.h頭文件的內(nèi)容,即可使用Timer_PWM_INCAP底層驅(qū)動構(gòu)件進行編程。任務(wù)5.2掌握Timer_PWM_INCAP底層驅(qū)動構(gòu)件使用方法【學(xué)以致用】

根據(jù)

timer_pwm_incap.h頭文件,寫出實現(xiàn)下列功能的函數(shù)調(diào)用語句。

(1)初始化TIMER1_CH1通道PWM,正極性、邊沿對齊、周期為1000us、占空比為30%。

(2)將TIMER1_CH1通道的PWM輸出占空比更新為50%。

(3)初始化TIMER2_CH1通道為輸入捕獲功能,并采用上升沿捕獲。

(4)為TIMER2_CH1通道選擇為下降沿捕獲方式。

(5)將TIMER2_CH1通道的輸入捕獲值保存至變量cap_value中。

(6)使能TIMER2_CH1通道中斷。5.2.2Timer_PWM_INCAP底層驅(qū)動構(gòu)件的組成及使用方法任務(wù)5.2掌握Timer_PWM_INCAP底層驅(qū)動構(gòu)件使用方法任務(wù)5.3利用PWM控制小燈的亮度

在嵌入式軟件最小系統(tǒng)框架下,設(shè)計07_Source(應(yīng)用層軟件構(gòu)件)的文件,以實現(xiàn):利用PWM控制與PWM通道引腳相連接的小燈的亮度。1)工程總頭文件includes.h:

包含04、05、06文件夾中的頭文件2)主程序源文件main.c:

初始化(PWM)在工程文件中分析代碼并編程:..EmbeddedSource\03-Software\STM32F103\STM32F103.uvprojx【學(xué)以致用與創(chuàng)新】

(1)利用PWM實現(xiàn)頻閃燈。

(2)利用PWM控制小燈逐漸變亮。任務(wù)5.4利用輸入捕獲測量脈沖信號的周期和脈寬

在嵌入式軟件最小系統(tǒng)框架下,設(shè)計07_Source(應(yīng)用層軟件構(gòu)件)的文件,以實現(xiàn):利用Timer的輸入捕獲功能(采用通道中斷方式)測量PWM信號的周期和脈寬,并通過UART使用printf函數(shù)向PC串口調(diào)試窗口輸出對應(yīng)的測量信息。1)工程總頭文件includes.h:

包含04、05、06文件夾中的頭文件2)主程序源文件main.c:

定義全局變量(存放脈沖信號的周期和脈寬對應(yīng)的計數(shù)次數(shù))

在主程序中,初始化(UART、PWM、INCAP);

使能Timer通道中斷;

在主循環(huán)中,輸出全局變量的值(周期和脈寬對應(yīng)的計數(shù)次數(shù))在工程文件中分析代碼并編程:..EmbeddedSource\03-Software\STM32F103\STM32F103.uvprojx3)中斷服務(wù)程序源文件isr.c:聲明全局變量

在Timer通道中斷服務(wù)程序中,獲取通道捕獲值,計算并

更新全局變量的值(脈沖信號周期和脈寬對應(yīng)的計數(shù)次數(shù))任務(wù)5.4利用輸入捕獲測量脈沖信號的周期和脈寬【學(xué)以致用與創(chuàng)新】

(1)根據(jù)脈沖信號的輸入捕獲原理,畫出上述程序的設(shè)計和執(zhí)行流程圖,理解上述中斷服務(wù)程序。

(2)計算并輸出脈沖信號的周期和脈寬。

嵌入式系統(tǒng)設(shè)計

為了實現(xiàn)嵌入式系統(tǒng)設(shè)計的可移植和可復(fù)用,嵌入式硬件和嵌入式軟件均采用構(gòu)件化的設(shè)計思想,即對嵌入式硬件和嵌入式軟件進行封裝,供系統(tǒng)設(shè)計者調(diào)用,并倡導(dǎo)嵌入式軟件分層設(shè)計的理念,以大幅度降低嵌入式技術(shù)學(xué)習(xí)難度和開發(fā)難度。

本書特色:項目任務(wù)驅(qū)動,突出學(xué)以致用,注重實踐創(chuàng)新。每個項目且均采用了“通用知識”→“嵌入式構(gòu)件設(shè)計”→“應(yīng)用層程序設(shè)計”→“學(xué)以致用與創(chuàng)新”的學(xué)習(xí)流程。采用“搭積木”的思想,逐步提高嵌入式系統(tǒng)設(shè)計能力。

本書可作為高等學(xué)校電子信息類、計算機類、自動化類等專業(yè)的嵌入式系統(tǒng)設(shè)計教材,也可作為嵌入式技術(shù)培訓(xùn)教材,還可供從事嵌入式技術(shù)開發(fā)的工程技術(shù)人員參考。項目1:GPIO基礎(chǔ)應(yīng)用—實現(xiàn)閃燈和開關(guān)狀態(tài)檢測與控制功能項目2:利用定時中斷實現(xiàn)頻閃燈項目3:GPIO和定時器的綜合應(yīng)用—實現(xiàn)數(shù)碼管顯示、鍵盤測控、測溫功能項目4:利用UART實現(xiàn)上位機和下位機的通信項目5:利用Timer實現(xiàn)PWM和輸入捕獲功能項目6:利用ADC設(shè)計簡易數(shù)字電壓表項目7:利用

SPI

實現(xiàn)多機串行通信項目8:利用

CAN

實現(xiàn)多機通信教

內(nèi)

項目6利用ADC設(shè)計簡易數(shù)字電壓表【項目導(dǎo)讀】

在嵌入式測控系統(tǒng)中,往往需要通過ADC(AnalogtoDigitalConverter,模/數(shù)轉(zhuǎn)換器)將模擬輸入量轉(zhuǎn)換為數(shù)字量,以供MCU接收和處理。

【學(xué)習(xí)目標】(1)理解ADC的通用知識,包括ADC的相關(guān)概念和最簡單的A/D轉(zhuǎn)換采樣電路。(2)熟悉MCU的ADC主要特性和引腳,掌握MCU的ADC底層驅(qū)動構(gòu)件的使用方法。(3)掌握簡易數(shù)字電壓表的硬件電路組成和工作原理,以及利用MCU的ADC底層驅(qū)動構(gòu)件頭文件進行ADC應(yīng)用層程序設(shè)計的方法。*(4)熟悉MCU的ADC底層驅(qū)動構(gòu)件源文件的設(shè)計方法。任務(wù)6.1理解ADC的通用知識1、

ADC的相關(guān)概念(1)轉(zhuǎn)換精度

設(shè)ADC的二進制位數(shù)為n,則其分辨率為1/2n。例如,某一ADC是12位,若模擬輸入信號的量程為5V,則該ADC可以檢測到的模擬量變化最小值(理論上的轉(zhuǎn)換精度)為

5V/212

1.22mV。任務(wù)6.1理解ADC的通用知識1、

ADC的相關(guān)概念(2)轉(zhuǎn)換速度

完成一次A/D轉(zhuǎn)換所要花費的時間。(3)單端輸入與差分輸入

單端輸入:只有一個輸入引腳,使用公共地GND作為參考電平。輸入電路簡單,但A/D轉(zhuǎn)換值易因受到干擾而變化。

差分輸入:兩個輸入引腳(VIN+、VIN-),ADC的采樣值是兩個輸入引腳的電平差值,從而降低了干擾。任務(wù)6.1理解ADC的通用知識1、

ADC的相關(guān)概念(4)ADC參考電壓

A/D轉(zhuǎn)換需要一個參考電壓VREF。在一般要求下,ADC參考電壓使用芯片的供電電源電壓。在更為精確的要求下,ADC參考電壓使用單獨電源。(5)軟件濾波

為了使采樣的數(shù)據(jù)更準確,必須對采樣的數(shù)據(jù)進行篩選,去掉誤差較大的數(shù)據(jù)(毛刺)??赏ㄟ^中值濾波或均值濾波實現(xiàn)。(6)物理量回歸

在得到穩(wěn)定的A/D采樣值以后,還需要把A/D采樣值與實際物理量對應(yīng)起來。

例如,利用MCU采集室內(nèi)溫度,經(jīng)A/D轉(zhuǎn)換后的數(shù)值是126,實際它代表的溫度是多少?光敏電阻或熱敏電阻

例如:采樣電路任務(wù)6.1理解ADC的通用知識2、

MCU的ADC內(nèi)部結(jié)構(gòu)及編程模型任務(wù)6.1理解ADC的通用知識

【知識鞏固】

(1)ADC有哪些基本概念?

(2)軟件濾波的作用是什么?任務(wù)6.2掌握MCU的ADC底層驅(qū)動構(gòu)件使用方法6.2.1MCU的ADC主要特性和引腳

STM32F103C8T6具有兩個12位的ADC模塊:ADC1和ADC2,均具有10個外部模擬輸入通道(通道共用),采用單端輸入方式。

供電電壓VDDA為2.4~3.6V,芯片內(nèi)部已將參考電壓VREF+連接到VDDA,VREF-連接到VSSA,因此各模擬通道的輸入電壓范圍為0~VDDA。

輸入時鐘不得超過14MHz。ADC轉(zhuǎn)換時間≥14個ADC時鐘周期,微妙級。6.2.2MCU的ADC底層驅(qū)動構(gòu)件的組成及使用方法

ADC底層驅(qū)動構(gòu)件由adc.h頭文件和adc.c源文件組成,若要使用ADC底層驅(qū)動構(gòu)件,只需將這兩個文件添加到所建工程的04_Driver(MCU底層驅(qū)動構(gòu)件)文件夾中,即可實現(xiàn)對ADC的操作。見工程文件:..EmbeddedSource\03-Software\STM32F103\STM32F103.uvprojx

其中,adc.h頭文件主要包括相關(guān)頭文件的包含、一些必要的宏定義、對外接口函數(shù)的聲明,而adc.c源文件則是對外接口函數(shù)的具體實現(xiàn),初學(xué)者不必深究。

用戶只要熟悉adc.h頭文件的內(nèi)容,即可使用ADC底層驅(qū)動構(gòu)件進行編程。任務(wù)6.2掌握MCU的ADC底層驅(qū)動構(gòu)件使用方法

【學(xué)以致用】

根據(jù)

adc.h頭文件,寫出實現(xiàn)下列功能的函數(shù)調(diào)用語句。

(1)對ADC1模塊進行初始化。

(2)獲取ADC1通道8的A/D轉(zhuǎn)換值。6.3.1

簡易數(shù)字電壓表的硬件電路組成和工作原理任務(wù)6.3簡易數(shù)字電壓表的設(shè)計

MCU通過ADC對A端的模擬電壓進行A/D轉(zhuǎn)換,根據(jù)A/D轉(zhuǎn)換結(jié)果可計算出A端對應(yīng)的電壓值:ADCresult

:A/D轉(zhuǎn)換結(jié)果對應(yīng)

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論