基于STM32的信號發(fā)生器設(shè)計(共29頁)_第1頁
基于STM32的信號發(fā)生器設(shè)計(共29頁)_第2頁
基于STM32的信號發(fā)生器設(shè)計(共29頁)_第3頁
基于STM32的信號發(fā)生器設(shè)計(共29頁)_第4頁
基于STM32的信號發(fā)生器設(shè)計(共29頁)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 基于(jy)STM32的信號發(fā)生器設(shè)計【摘 要】本系統(tǒng)以單片機STM32F107為控制核心,通過按鍵輸入所需波形參數(shù)的數(shù)字量,然后由STM32F107自帶的DA把數(shù)字量轉(zhuǎn)換成模擬量來調(diào)整波形的幅值、頻率及方波的占空比;電壓步進100mV,頻率步進50Hz,方波占空比可調(diào);按鍵應(yīng)用的是獨立按鍵,用來切換(qi hun)波形、時鐘,幅值,頻率以及占空比;其頻率的調(diào)解就是調(diào)節(jié)其中斷間隔的時間,幅值就是調(diào)節(jié)其數(shù)字的大?。粸榱瞬ㄐ蔚暮铣?,采用的點的個數(shù)都是128個;顯示部分采用TFT液晶,實時顯示其波形名稱,幅值、頻率以及占空比參數(shù)變化。關(guān)鍵字: 信號(xnho)發(fā)生器設(shè)計;三相 ;STM32;DA轉(zhuǎn)

2、換 目錄(ml)TOC o 1-3 h u HYPERLINK l _Toc3523 前言(qin yn) PAGEREF _Toc3523 1 HYPERLINK l _Toc1356 1設(shè)計(shj)任務(wù) PAGEREF _Toc1356 2 HYPERLINK l _Toc16691 1.1 波形發(fā)生器系統(tǒng)的設(shè)計指標(biāo) PAGEREF _Toc16691 2 HYPERLINK l _Toc10806 1.2基本要求 PAGEREF _Toc10806 2 HYPERLINK l _Toc28553 2設(shè)計方案 PAGEREF _Toc28553 3 HYPERLINK l _Toc66

3、2.1 信號產(chǎn)生部分 PAGEREF _Toc66 3 HYPERLINK l _Toc28590 2.2 幅度進行調(diào)整部分 PAGEREF _Toc28590 3 HYPERLINK l _Toc11990 2.3 對頻率調(diào)整部分 PAGEREF _Toc11990 4 HYPERLINK l _Toc12938 3系統(tǒng)整體設(shè)計 PAGEREF _Toc12938 5 HYPERLINK l _Toc26517 3.1 系統(tǒng)總框圖 PAGEREF _Toc26517 5 HYPERLINK l _Toc15596 3.2 各模塊功能 PAGEREF _Toc15596 5 HYPERLINK

4、 l _Toc181 3.2.1 波形產(chǎn)生電路 PAGEREF _Toc181 5 HYPERLINK l _Toc18020 3.2.2 按鍵部分 PAGEREF _Toc18020 5 HYPERLINK l _Toc27876 3.2.3 顯示部分 PAGEREF _Toc27876 5 HYPERLINK l _Toc21159 3.2.4 DAC轉(zhuǎn)換器 PAGEREF _Toc21159 6 HYPERLINK l _Toc5577 4各個模塊的實現(xiàn)及分析 PAGEREF _Toc5577 7 HYPERLINK l _Toc11928 4.1 正弦波的產(chǎn)生 PAGEREF _Toc

5、11928 7 HYPERLINK l _Toc16188 4.2 三角波的產(chǎn)生 PAGEREF _Toc16188 7 HYPERLINK l _Toc14089 4.3 方波的產(chǎn)生 PAGEREF _Toc14089 7 HYPERLINK l _Toc24995 4.4 幅度的控制 PAGEREF _Toc24995 7 HYPERLINK l _Toc15937 4.5 頻率的控制 PAGEREF _Toc15937 7 HYPERLINK l _Toc7127 4.6 按鍵模塊 PAGEREF _Toc7127 8 HYPERLINK l _Toc20147 4.7 RTC的設(shè)置 P

6、AGEREF _Toc20147 8 HYPERLINK l _Toc8565 5 軟件設(shè)計 PAGEREF _Toc8565 10 HYPERLINK l _Toc15516 6調(diào)試部分 PAGEREF _Toc15516 11 HYPERLINK l _Toc28818 6.1控制電路的調(diào)試 PAGEREF _Toc28818 11 HYPERLINK l _Toc17757 6.2硬件電路的調(diào)試 PAGEREF _Toc17757 11 HYPERLINK l _Toc12837 7系統(tǒng)測試與數(shù)據(jù)分析 PAGEREF _Toc12837 12 HYPERLINK l _Toc12999

7、7.1 正弦波、方波和三角波的頻率測試 PAGEREF _Toc12999 12 HYPERLINK l _Toc673 7.2 正弦波、方波和三角波的幅值測試 PAGEREF _Toc673 12 HYPERLINK l _Toc27068 7.3 方波占空比測試 PAGEREF _Toc27068 12 HYPERLINK l _Toc3232 總結(jié) PAGEREF _Toc3232 14 HYPERLINK l _Toc18121 參考文獻 PAGEREF _Toc18121 15 HYPERLINK l _Toc28034 附錄 信號發(fā)生器各模塊的程序 PAGEREF _Toc2803

8、4 16 前言(qin yn) 信號發(fā)生器作為一種歷史悠久的測量儀器,早在20年代(nindi)電子設(shè)備剛出現(xiàn)時就產(chǎn)生了。隨著通信和雷達技術(shù)的發(fā)展,40年代出現(xiàn)了主要用于測試各種接收機的標(biāo)準(zhǔn)信號發(fā)生器,使得信號發(fā)生器從定性分析的測試儀器發(fā)展成定量分析的測量儀器。同時還出現(xiàn)了可用來測量脈沖電路或作脈沖調(diào)制器的脈沖信號發(fā)生器。 自60年代以來信號發(fā)生器有了迅速的發(fā)展,出現(xiàn)了函數(shù)發(fā)生器。這個時期的信號發(fā)生器多采用模擬(mn)電子技術(shù),由分立元件或模擬集成電路構(gòu)成,其電路結(jié)構(gòu)復(fù)雜,且僅能產(chǎn)生正弦波、方波、鋸齒波和三角波等幾種簡單波形。 自從70年代微處理器出現(xiàn)以后,利用微處理器、模數(shù)轉(zhuǎn)換器和數(shù)模轉(zhuǎn)換器

9、,硬件和軟件使信號發(fā)生器的功能擴大,產(chǎn)生比較復(fù)雜的波形。這時期的信號發(fā)生器多以軟件為主,實質(zhì)是采用微處理器對D/A的程序控制,就可以得到各種簡單的波形。 在80年代以后,數(shù)字技術(shù)日益成熟,信號發(fā)生器絕大部分不再使用機械驅(qū)動而采用數(shù)字電路,從一個頻率基準(zhǔn)有數(shù)字合成電路產(chǎn)生可變頻率信號。 90年代末出現(xiàn)了集中真正高性能的函數(shù)信號發(fā)生器,HP公司推出了型號為HP770S的信號模擬裝置系統(tǒng),它是由HP8770A任意波形數(shù)字化和HP1770A波形發(fā)生軟件組成。 信號發(fā)生器技術(shù)發(fā)展至今,引導(dǎo)技術(shù)潮流的仍是國外的幾大儀器公司,如日本橫河、Agilent、Tektronix等。美國的FLUKE公司的FLUKE

10、-25型函數(shù)發(fā)生器是現(xiàn)有的測試儀器中最具多樣性功能的幾種儀器之一,它和頻率計數(shù)器組合在一起,在任何條件下都可以給出很高的波形質(zhì)量,能給出低失真的正弦波和三角波,還能給出過沖很小的快沿方波,其最高頻率可達到5MHz,最大輸出幅度可達到10Vpp。 國內(nèi)也有不少公司已經(jīng)有了類似的儀器。如南京盛普儀器科技有限公司的SPF120DDS信號發(fā)生器,華高儀器生產(chǎn)的HG1600H型數(shù)字合成函數(shù)任意波形信號發(fā)生器。國內(nèi)信號發(fā)生器起步晚,但發(fā)展至今,已經(jīng)漸漸跟上國際的腳步,能夠利用高新技術(shù)開發(fā)出達到國際水平的高性能多功能信號發(fā)生器。 信號發(fā)生器在生產(chǎn)實踐和科技領(lǐng)域中有著廣泛的應(yīng)用,各種波形曲線均可用三角函數(shù)方程

11、式來表達。函數(shù)信號發(fā)生器是各種測試和實驗過程中不可缺少的工具,在通信、測量、雷達、控制教學(xué)等領(lǐng)域應(yīng)用十分廣泛。不論是在生產(chǎn)、科研還是在教學(xué)上,信號發(fā)生器都是電子工程師信號仿真實驗的最佳工具。而且,信號發(fā)生器的設(shè)計方法多,設(shè)計技術(shù)也越來越先進,隨著我國經(jīng)濟和科技的發(fā)展,對對應(yīng)的測試儀器和測試手段也提出了更高的要求,信號發(fā)生器已成為測試儀器中至關(guān)重要的一類,因此,開發(fā)信號發(fā)生器具有重大意義。1設(shè)計(shj)任務(wù)1.1 波形發(fā)生器系統(tǒng)的設(shè)計(shj)指標(biāo)設(shè)計完成一個頻率振幅(zhnf)可調(diào)的正弦波、方波和三角波信號發(fā)生器。1.2基本要求根據(jù)ADC的值(8位)來設(shè)定輸出信號的幅值,幅值范圍0-3.3V

12、,設(shè)定的幅值顯示在LCD上。(2)輸出信號的頻率范圍為100Hz-1KHz,128個點。(3)可通過按鍵或觸摸筆切換輸出信號類型。 2設(shè)計方案2.1 信號產(chǎn)生(chnshng)部分方案一:采用模擬分立元件或單片壓控函數(shù)發(fā)生器,可以產(chǎn)生正弦波、方波、三角波,通過調(diào)整外部元件可以改變輸出頻率,但采用模擬元器件由于元件分散性太大,因而產(chǎn)生頻率穩(wěn)定性較差,精度低,地抗干擾能力低,成本(chngbn)高,而且靈活心性較差,不能實現(xiàn)任意波形以及波形運算輸出等智能化的功能。 方案二:使用集成(j chn)函數(shù)發(fā)生器芯片ICL8038。芯片ICL8032能輸出方波、三角波、正弦波和鋸齒波四種不同的波形,將他作

13、為信號發(fā)生器。它是電壓控制頻率的集成芯片,失真度很低??奢斎氩煌耐獠侩妷簛韺崿F(xiàn)不同的頻率輸出。為了達到數(shù)控的目的,可用高度的DAC來輸出電壓以控制正弦波的頻率。方案三:采用鎖相式頻率合成方案,鎖相式頻率合成一個高穩(wěn)定度和精確度的大量離散技術(shù),他在一定程度上解決了既要頻率穩(wěn)定精確又要頻率在較大的范圍內(nèi)可調(diào)的矛盾,但是頻率受VCO可便頻率范圍的影響,高低頻率比不可能做的很高,而且只能產(chǎn)生正弦波或方波。方案四:直接數(shù)字頻率合成技術(shù)(DDS)。DDS是一種純數(shù)字化方法。它現(xiàn)將所需正弦波一個周期的離散樣點的幅值數(shù)字量存入ROM中,然后按一定的地址間隔讀出,并經(jīng)轉(zhuǎn)換器形成模擬正弦波,再經(jīng)低通濾波器得到質(zhì)

14、量較好的信號。方案五:利用函數(shù)將波形的點數(shù)據(jù)保存在芯片的RAM中,根據(jù)所要的波形的頻率計算出它的周期,經(jīng)計算得到在定時器定時時間固定的前提下產(chǎn)生一個完整的波形所需要的輸出的點數(shù),這樣數(shù)據(jù)指針可以根據(jù)點數(shù)的數(shù)量來進行移動,得到頻率準(zhǔn)確、切換快速的信號。VCO不能實現(xiàn)穩(wěn)定頻率信號的輸出并且難于數(shù)字控制。并且電容、電阻參數(shù)隨溫度等其他因素的影響,頻率穩(wěn)定度以及電路的穩(wěn)定度都較低,實現(xiàn)也比較復(fù)雜,不予采納。雖然ICL8038可很好的實現(xiàn)頻率輸出的控制,但查看ICL8038的設(shè)計資料可知頻率輸出范鬧為0.01Hz1kHz不能達到題目的要求,故不予選用。PLL方案和DDS方案都能實現(xiàn)100Hz1KHz的穩(wěn)

15、定的信號輸出,且能達到較小的頻率步進,但是PLL的動態(tài)特性卻很差,在頻率改變時,環(huán)路從小穩(wěn)定到穩(wěn)定的過程有時間問延遲。相比較而言,DDS 的頻率輸出范圍一般低于PLL,且雜散也大于PLL方案,但DDS信號源具有輸出頻率穩(wěn)定度高、精度更高、分辨率更高且易于程控等優(yōu)點,且頻率改變不存在失調(diào)過程,盡管有雜散干擾,只需在輸出級加濾波器仍可以得到質(zhì)量很好的波形。而方案五集中了上述四個方案的各個優(yōu)點,因此采用方案五來實現(xiàn)波形信號的產(chǎn)生。2.2 幅度進行調(diào)整(tiozhng)部分方案(fng n)一:用高速模擬乘法器實現(xiàn)采用AD835高速模擬乘法器,來實現(xiàn)模擬調(diào)制。模擬乘法器AD835的-3dB截止頻率為2

16、50MHz,能夠滿足(mnz)題日的要求。但是AD835的差分輸入范圍僅為1V,因此必須對輸入信號進行預(yù)處理,這樣在增加硬件的同時,又加大了設(shè)計的難度。方案二:采用高速的D/A轉(zhuǎn)換器在STM32f107中集成著一個高速的D/A轉(zhuǎn)換器,我們可以直接在軟件中設(shè)置一個幅度的參數(shù)來改變輸出波形的幅度大小。綜上所述,采用方案二,雖然增加了軟件的難度,延遲了波形的輸出時問,但是可以不用外加硬件拓展,節(jié)省了成本。2.3 對頻率調(diào)整部分方案一:通過在存儲芯片ROM中保存不同頻率信號的信號發(fā)生點數(shù),在頻率切換時調(diào)用ROM中所存儲的不同點數(shù)模塊來實現(xiàn)頻率的切換。方案二:在存儲芯片RAM中保存由軟件實時產(chǎn)生的波形點

17、數(shù),通過所取的點數(shù)的不同來決定發(fā)生的波形的頻率。由于設(shè)計中的信號要進行不斷的改變,因此波形的數(shù)據(jù)不能存儲在ROM中,應(yīng)該存儲RAM中,因此采用方案二的設(shè)計方法。3系統(tǒng)整體(zhngt)設(shè)計3.1 系統(tǒng)(xtng)總框圖如圖1所示為系統(tǒng)(xtng)總框圖。 圖1 系統(tǒng)總框圖3.2 各模塊功能3.2.1 波形產(chǎn)生電路 通過軟件將波形數(shù)據(jù)存儲到RAM當(dāng)中去,再把這些數(shù)據(jù)輸送到D/A轉(zhuǎn)換器進行轉(zhuǎn)換得到模擬波形。3.2.2 按鍵部分 用STM32F107開發(fā)板上自身帶有的鍵盤得到鍵值,通過中斷服務(wù)程序?qū)㈡I值信息傳給控制芯片。3.2.3 顯示部分 波形直接在示波器上顯示,波形的中間調(diào)試參數(shù)在液晶屏上顯示。

18、 液晶原題圖如圖2所示。 圖2 液晶(yjng)原題圖3.2.4 DAC轉(zhuǎn)換器 數(shù)字/模擬轉(zhuǎn)換模塊(DAC)是12位數(shù)字輸入,電壓輸出的數(shù)字/模擬轉(zhuǎn)換器。DAC可以配置為8位或12位模式,也可以與DMA控制器配合使用(shyng)。DAC工作在12位模式時,數(shù)據(jù)可以設(shè)置成左對齊或右對齊。DAC模塊有2個輸出通道,每個通道都有單獨的轉(zhuǎn)換器。在雙DAC模式下,2個通道可以獨立地進行轉(zhuǎn)換,也可以同時進行轉(zhuǎn)換并同步地更新2個通道的輸出。DAC可以通過引腳輸入?yún)⒖茧妷篤REF+以獲得更精確的轉(zhuǎn)換結(jié)果。 DAC主要(zhyo)特征 2個DAC轉(zhuǎn)換器:每個轉(zhuǎn)換器對應(yīng)1個輸出通道 8位或者12位單調(diào)輸出 12

19、位模式下數(shù)據(jù)左對齊或者右對齊 同步更新功能 噪聲波形生成 三角波形生成 雙DAC通道同時或者分別轉(zhuǎn)換 每個通道都有DMA功能 外部觸發(fā)轉(zhuǎn)換 輸入?yún)⒖茧妷篤REF+ DAC輸出電壓:數(shù)字輸入經(jīng)過DAC被線性地轉(zhuǎn)換為模擬電壓輸出,其范圍為0到VREF+。 任一DAC通道引腳上的輸出電壓滿足下面的關(guān)系: DAC輸出 = VREF x (DOR / 4095) 單個DAC通道的框圖(kungt)如下圖3所示。 圖3 單個DAC通道(tngdo)的框圖4各個(gg)模塊的實現(xiàn)及分析4.1 正弦波的產(chǎn)生 本設(shè)計中信號的產(chǎn)生直接用STM32F107芯片上集成的D/A轉(zhuǎn)換器和軟件的結(jié)合來生成。波形的信號數(shù)據(jù)采

20、用了函數(shù)計算的方法來取得: Y=sin(N) (4-1) 其中,N表示所要取得的點數(shù)的多少。在設(shè)計中我選擇N=128,即一個完整的基本的正弦信號有128個數(shù)據(jù)信號點組成。將數(shù)據(jù)存儲到控制芯片STM32F107的RAM當(dāng)中,根據(jù)所要的頻率來取得信號數(shù)據(jù)的多少,點數(shù)多少的計算如下: N=T/2t (4-2) 其中,N表示點數(shù),T表示所要產(chǎn)生的波形信號的周期,t表示定時器的時問長短,從RAM中取得點數(shù)的間隔為: M=128/N (4-3) 其中M表示在RAM中的表格取得點數(shù)的間隔,根據(jù)不同的間隔的大小決定產(chǎn)生一個完整的波形信號所要的數(shù)據(jù)多少不同。 設(shè)計中要求信號的最高產(chǎn)生的頻率為1KHZ,根據(jù)條奎斯

21、特定理,采樣的頻率最少要為所要信號的頻率的兩倍,但是為了更好的保證信號的完整輸出,我們至少(zhsho)要讓它采樣10個點才能輸出完整波形,就要求采樣的頻率為他的10倍即10KHZ采樣時間的大小為100us。4.2 三角(snjio)波的產(chǎn)生在設(shè)計中,三角波的產(chǎn)生就直接利用定時器定時時間的長短來控制信號數(shù)據(jù)的輸出,信號數(shù)據(jù)從一個(y )較低(或高)的位置開始按照一定的規(guī)律步進,當(dāng)其達到一個高度時再按照相同的步進下降到原來的數(shù)據(jù)大小,如此反復(fù)的輸出就構(gòu)成了三角波模擬信號的輸出。4.3 方波的產(chǎn)生 在設(shè)計中,方波的產(chǎn)生由大小不同的兩個信號數(shù)據(jù)交替輸出形成,每個信號數(shù)據(jù)輸出的時間長短根據(jù)所要點信號頻

22、率來決定。4.4 幅度的控制在設(shè)計中,為了能使波形在示波器中顯示,這樣就要設(shè)定好波形的幅度,在設(shè)計時我把波形的幅度控制在128之內(nèi),才能很好的顯示波形。同時為了改變幅度的大小,我設(shè)置了一個參數(shù)直接與所取得的信號數(shù)據(jù)相乘,這就改變了信號數(shù)據(jù)的大小,也就使得D/A轉(zhuǎn)換時的數(shù)據(jù)大小產(chǎn)生變化,從而體現(xiàn)在輸出的信號波形在幅度上發(fā)生改變。4.5 頻率的控制在輸出的信號數(shù)據(jù)的時間間隔一定時,當(dāng)產(chǎn)生一個完整波形時所需要的點數(shù)發(fā)生變化時信號的周期就發(fā)生變化,這樣它的頻率就相應(yīng)的變化。因此,在設(shè)計中,通過固定定時器的定時長短,改變波形數(shù)據(jù)的點數(shù)多少就改變了信號的頻率。4.6 按鍵模塊按鍵是直接與STM32F107

23、芯片的PC4、PB10、PC13、PA0連接,通過ARM芯片對引腳輸入數(shù)據(jù),0表示有效,l表示無效。鍵l用來選擇輸出波形,鍵2用來改變波的幅值,鍵3用來改變波形的頻率,鍵4用來改變方波的占空比。按鍵原理圖如圖4所示。 圖4 按鍵(n jin)原理圖4.7 RTC的設(shè)置(shzh) RTC( Real-time clock)是實時時鐘的意思。神舟IV號開發(fā)板的處理器STM32F107集成了RTC( Real-time clock)實時時鐘,在處理器復(fù)位或系統(tǒng)掉電但有實時時鐘電池的情況下,能維持系統(tǒng)當(dāng)前的時間和日期的準(zhǔn)確性。實時時鐘是一個獨立的定時器。RTC實時時鐘模塊擁有一組連續(xù)計數(shù)(j sh)

24、的計數(shù)器,在相應(yīng)軟件配置下,可提供時鐘日歷的功能。修改計數(shù)器的值可以重新設(shè)置系統(tǒng)當(dāng)前的時間和日期。RTC由兩個主要部分組成。第一部分(APB1接口),用來和APB1總線相連。此單元還包含一組16位寄存器,可通過APBI總線對其進行讀寫操作APBI接口由APB1總線時鐘驅(qū)動,用來與APBI總線接口。另一部分(RTC核心)由一組可編程計數(shù)器組成,分成兩個主要模塊。第一個模塊是RTC的預(yù)分頻模塊,它可編程產(chǎn)生最長為1秒的RTC時間基準(zhǔn)TR_CLK。RTC的預(yù)分頻模塊包含了一個20位的可編程分頻器(RTC預(yù)分頻器)。如果在RTC_CR寄存器中設(shè)置了相應(yīng)的允許位,則在每個TR CLK周期中RTC產(chǎn)生一個

25、中斷(秒中斷)。第二個模塊是一個32位的可編程計數(shù)器,可被初始化為當(dāng)前的系統(tǒng)時間。系統(tǒng)時間按TR CLK周期累加并與存儲在RTC ALR寄存器中的可編程時間相比較,如果RTC_CR控制寄存器中設(shè)置了相應(yīng)允許位,比較匹配時將產(chǎn)生一個鬧鐘中斷。圖5為簡化的RTC框圖 。 圖5簡化(jinhu)的RTC框圖 5 軟件設(shè)計本系統(tǒng)的軟件設(shè)計采用(ciyng)C語言,對ARM7進行編程實現(xiàn)各項功能。采用KEIL軟件編寫,可以實現(xiàn)波形的切換、幅度頻率的調(diào)節(jié)以及方波的占空比調(diào)節(jié)、液晶顯示等功能。主程序主要起到一個導(dǎo)向(do xin)和決策功能,決定什么時候系統(tǒng)采取何種動作。其余各種功能的實現(xiàn)主要通過具體的子程

26、序來完成。系統(tǒng)(xtng)總流程圖如圖6所示。 圖6 系統(tǒng)總流程圖6調(diào)試(dio sh)部分6.1控制電路的調(diào)試(dio sh)對控制電路進行時序仿真,在仿真圖中幾乎總會(zn hu)出現(xiàn)我們所不需要的毛刺,這些毛刺有時會給系統(tǒng)帶來致命的影響,我們必須采取措施消除這樣的毛刺。由于毛刺一般出現(xiàn)在信號發(fā)生電平轉(zhuǎn)換的時刻,也即輸出信號的建立時間內(nèi),而在輸出信號的保持時間內(nèi)不大會出現(xiàn)。因此,若帶有毛刺的信號持續(xù)時間較長,我們可在輸出信號的持續(xù)時間內(nèi)用一定寬度的高電平脈沖選通一個與門來獲得該信號,此時毛刺自然已被消除。高電平脈沖可由軟件控制鎖存器來得到。若帶有毛刺的信號保持時間較短,可利用D觸發(fā)器的D輸

27、入端對毛刺不敏感的特點,在輸出信號的保持時間內(nèi)用觸發(fā)器讀取輸出信號,此時毛刺自然也已被消除,觸發(fā)器的時鐘沿可由軟件控制地址譯碼器來得到。另外 ,在某些情況下,需要對信號進行一定的延時,以完成特定的功能。利用D觸發(fā)器可在時鐘的控制下對信號進行比較精確的延時,這種方法的最小延時是半個時鐘周期。延時也是消除毛刺的手段之一。6.2硬件電路的調(diào)試在硬件電路調(diào)試中,要注意焊接的藝術(shù)和元件的布局,讓整體顯得美觀。不能出現(xiàn)漏焊、錯焊等現(xiàn)象。在燒錄入程序之后,對電路進行測試,看電路是否能達到預(yù)期的功能。如果不能,則要進行程序的調(diào)試,并檢測電路連接、元件使用等方面的問題,努力排除故障,讓系統(tǒng)功能實現(xiàn)。7系統(tǒng)(xt

28、ng)測試與數(shù)據(jù)分析7.1 正弦波、方波和三角(snjio)波的頻率測試幅值調(diào)至1.0V正弦波、方波和三角波的頻率(pnl)測試結(jié)果如表1所示。 表1 正弦波、方波和三角波的頻率測試結(jié)果7.2 正弦波、方波和三角波的幅值測試頻率調(diào)至500Hz 正弦波、方波和三角波的幅值測試結(jié)果如表2所示。 表2 正弦波、方波和三角波的幅值測試結(jié)果7.3 方波占空比測試幅值調(diào)至1.0V 頻率調(diào)至500Hz方波占空比測試(csh)結(jié)果如表3所示。 表3 方波占空比測試(csh)結(jié)果 總結(jié)(zngji) 通過這次基于STM32的信號發(fā)生器設(shè)計(shj),讓我對數(shù)字信號的產(chǎn)生、調(diào)節(jié)以及DA轉(zhuǎn)換原理有了更加深刻的了解,

29、除此之外,對M3內(nèi)核的了解以及STM32F107板上資源的了解與運用又更加嫻熟了一步。在測試階段,尤其是在方案選擇以及程序的編寫上,有很深的體會,有時候一個簡單的錯誤就有可能造成致命錯誤,導(dǎo)致信號無法正常產(chǎn)生。通過本次課程設(shè)計,我更加深刻的認識到團隊合作的重要性,在剛開始設(shè)計的時候由于對信號的產(chǎn)生不太熟悉,到處收集資料(zlio)選擇方案,致使耽誤很多時間,之后與同學(xué)商量,一起探討。最后成功設(shè)計出所需波形,完成任務(wù)。所以說合作,是設(shè)計成功的關(guān)鍵,只有大家團結(jié)一致,才能更快更好的完成任務(wù)。參考文獻1 康華光.電子技術(shù)(jsh)基礎(chǔ)模擬部分第四版M.北京:高等教育出版社,1999.6. 2 閻石.

30、數(shù)字電子技術(shù)基礎(chǔ)第四版M.北京:高等教育出版社,1999.6. 3王福瑞等單片微機測控(c kn)系統(tǒng)設(shè)計大全M北京航空航天大學(xué)出版社,1998(331337) 4寧改娣,楊拴科DSP控制器原理(yunl)及應(yīng)用M科學(xué)出版社,2002 5 周立功等.ARM嵌入式系統(tǒng)基礎(chǔ)教程M.北京:北京航空航天大學(xué)出版社,2005.1. 6 周立功等.ARM嵌入式系統(tǒng)實驗教程M.北京:北京航空航天大學(xué)出版社,2005.1. 7 唐清善.Protel DXP高級實例教程M.中國水利水電出版社,2004.4. 8 羅浩等.一種新的基于ARM的數(shù)據(jù)采集系統(tǒng)設(shè)計J.信陽師范學(xué)院學(xué)報(自然科學(xué)版),2006.4. 9

31、秦偉等.基于ARM 處理器的數(shù)據(jù)采集系統(tǒng)的設(shè)計J.自動化技術(shù)與應(yīng)用.2006 年第10 期. 10 杜春雷.ARM體系結(jié)構(gòu)與編程.清華大學(xué)出版社,2003. 11 李寧.ARM開發(fā)工具ReaIView MDK使用入門M.北京航空航天大學(xué)出版社,2008. 12 李寧.基于MDK的STM32處理器開發(fā)應(yīng)用M.北京航空航天大學(xué)出版社,2008. 13劉黎明等.單片機與嵌入式系統(tǒng)應(yīng)用J.英文刊名MICROCON TROLLER&EMBEDDED SYSTEM. 2002(7). 附錄(fl) 信號(xnho)發(fā)生器各模塊(m kui)的程序/* 功 能 :STM32 DAC 數(shù)模轉(zhuǎn)換(正弦波/矩形波

32、/三角波)輸出實驗 * 說 明 :按 SW5 輸出正弦波 / 按 SW4 輸出矩形波 / 按 SW3 輸出三角波, 輸出端口 PA4 */#include #include / STM32F10 x Library Definitions#include STM32_Reg.h / STM32 register and bit Definitions#include STM32_Init.h / STM32 Initialization#include common.h#include sine_wave_1024.h/ 輸出端口 : PA4#define SINE_WAVE1/sine 正弦

33、波#define RECT_WAVE2/rectangular矩形波#define HACKLE_WAVE3/hackle三角波UINT8 flag = 0;UINT8 func = SINE_WAVE;/* MAIN function */int main (void) UINT16 i = 0; UINT32 *pDAC_BASE = (UINT32 *)DAC_BASE; stm32_Init(); / STM32 setup LED_Init(); /打開(d ki)DAC時鐘使能 RCC-APB1ENR |= (UINT32)(1 29); /設(shè)置(shzh)DAC控制參數(shù) *(pD

34、AC_BASE + 0 x00) = (0 x01 0)| (0 x00 2) | (0 x04 3) | (0 x03 6) | (0 x0b 8); *(pDAC_BASE + 0 x04) = 0 x01 printf( Program start rn); while (TRUE)/ Loop forever if(!Get_SW5()func = SINE_WAVE;else if(!Get_SW4()func = RECT_WAVE;else if(!Get_SW3()func = HACKLE_WAVE; switch(func)case SINE_WAVE:/#ifdef SI

35、NE_WAVE if(i 1024) i+=2; else i = 0; *(pDAC_BASE + 0 x08) = Sine_WAVEi 4;#endif/break;case RECT_WAVE: #ifdef RECT_WAVEfor(i=0;i2000;i+)*(pDAC_BASE + 0 x08) = 0 x0fff;for(i=0;i2000;i+)*(pDAC_BASE + 0 x08) = 0;#endif/break;case HACKLE_WAVE:#ifdef HACKLE_WAVE if(flag) flag = 0;while(TRUE) if(i 0) i -=

36、1; else break; *(pDAC_BASE + 0 x08) = i; #endifbreak;default:break;/ / end while / end main/* * 設(shè)置(shzh)方向 */void Set_IO_direction(UINT8 PORT, UINT8 GPIO, UINT8 Value) RCC-APB2ENR |= RCC_APB2ENR_IOPAEN; if(PORT = PORT_A) if(GPIO CRL &= (0 x0f CRL |= (Value CRH &= (0 x0f CRH |= (Value (GPIO * 4 - 8 *

37、 4);/Set used bit if(PORT = PORT_B) if(GPIO CRL &= (0 x0f CRL |= (Value CRH &= (0 x0f CRH |= (Value (GPIO * 4 - 8 * 4);/Set used bit if(PORT = PORT_C) if(GPIO CRL &= (0 x0f CRL |= (Value CRH &= (0 x0f CRH |= (Value (GPIO * 4 - 8 * 4);/Set used bit if(PORT = PORT_D) if(GPIO CRL &= (0 x0f CRL |= (Valu

38、e CRH &= (0 x0f CRH |= (Value (GPIO * 4 - 8 * 4);/Set used bit if(PORT = PORT_E) if(GPIO CRL &= (0 x0f CRL |= (Value CRH &= (0 x0f CRH |= (Value SR & USART_FLAG_TXE); USART2-DR = (ch & 0 x1FF); return (ch);/* GetKey Read character to Serial Port. */int GetKey (void) while (!(USART2-SR & USART_FLAG_R

39、XNE); return (int)(USART2-DR & 0 x1FF);void LED_Init(void)Set_IO_direction(PORT_E,LED1,OUTPUT);Set_IO_direction(PORT_E,LED2,OUTPUT);Set_IO_direction(PORT_E,LED3,OUTPUT);Set_IO_direction(PORT_E,LED4,OUTPUT);Set_IO_direction(PORT_B,SW2,INPUT);Set_IO_direction(PORT_B,SW3,INPUT);Set_IO_direction(PORT_E,

40、SW4,INPUT);Set_IO_direction(PORT_E,SW5,INPUT);Turn_OFF_LED1();Turn_OFF_LED2();Turn_OFF_LED3();Turn_OFF_LED4();/* insert a delay time. */void delay(unsigned int nCount) for(; nCount != 0; nCount-);正弦波歸一化程序(chngx):tosin256=0 x80,0 x83,0 x86,0 x89,0 x8d,0 x90,0 x93,0 x96,0 x99,0 x9c,0 x9f,0 xa2,0 xa5,0

41、 xa8,0 xab,0 xae,0 xb1,0 xb4,0 xb7,0 xba,0 xbc,0 xbf,0 xc2,0 xc5 ,0 xc7,0 xca,0 xcc,0 xcf,0 xd1,0 xd4,0 xd6,0 xd8,0 xda,0 xdd,0 xdf,0 xe1,0 xe3,0 xe5,0 xe7,0 xe9,0 xea,0 xec,0 xee,0 xef,0 xf1,0 xf2,0 xf4,0 xf5 ,0 xf6,0 xf7,0 xf8,0 xf9,0 xfa,0 xfb,0 xfc,0 xfd,0 xfd,0 xfe,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,

溫馨提示

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

評論

0/150

提交評論