基于STM32的信號(hào)發(fā)生器設(shè)計(jì)_第1頁(yè)
基于STM32的信號(hào)發(fā)生器設(shè)計(jì)_第2頁(yè)
基于STM32的信號(hào)發(fā)生器設(shè)計(jì)_第3頁(yè)
基于STM32的信號(hào)發(fā)生器設(shè)計(jì)_第4頁(yè)
基于STM32的信號(hào)發(fā)生器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于STM32的信號(hào)發(fā)生器設(shè)計(jì)【摘要】本系統(tǒng)以單片機(jī)STM32F107為控制核心,通過(guò)按鍵輸入所需波形參數(shù)的數(shù)字量,然后由STM32F107自帶的DA把數(shù)字量轉(zhuǎn)換成模擬量來(lái)調(diào)整波形的幅值、頻率及方波的占空比;電壓步進(jìn)100mV,頻率步進(jìn)50Hz,方波占空比可調(diào);按鍵應(yīng)用的是獨(dú)立按鍵,用來(lái)切換波形、時(shí)鐘,幅值,頻率以及占空比;其頻率的調(diào)解就是調(diào)節(jié)其中斷間隔的時(shí)間,幅值就是調(diào)節(jié)其數(shù)字的大?。粸榱瞬ㄐ蔚暮铣?,采用的點(diǎn)的個(gè)數(shù)都是128個(gè);顯示部分采用TFT液晶,實(shí)時(shí)顯示其波形名稱,幅值、頻率以及占空比參數(shù)變化。關(guān)鍵字:信號(hào)發(fā)生器設(shè)計(jì);三相;STM32;DA轉(zhuǎn)換目錄TOC\o"1-3"\h\u基于STM32的信號(hào)發(fā)生器設(shè)計(jì) 前言信號(hào)發(fā)生器作為一種歷史悠久的測(cè)量?jī)x器,早在20年代電子設(shè)備剛出現(xiàn)時(shí)就產(chǎn)生了。隨著通信和雷達(dá)技術(shù)的發(fā)展,40年代出現(xiàn)了主要用于測(cè)試各種接收機(jī)的標(biāo)準(zhǔn)信號(hào)發(fā)生器,使得信號(hào)發(fā)生器從定性分析的測(cè)試儀器發(fā)展成定量分析的測(cè)量?jī)x器。同時(shí)還出現(xiàn)了可用來(lái)測(cè)量脈沖電路或作脈沖調(diào)制器的脈沖信號(hào)發(fā)生器。自60年代以來(lái)信號(hào)發(fā)生器有了迅速的發(fā)展,出現(xiàn)了函數(shù)發(fā)生器。這個(gè)時(shí)期的信號(hào)發(fā)生器多采用模擬電子技術(shù),由分立元件或模擬集成電路構(gòu)成,其電路結(jié)構(gòu)復(fù)雜,且僅能產(chǎn)生正弦波、方波、鋸齒波和三角波等幾種簡(jiǎn)單波形。自從70年代微處理器出現(xiàn)以后,利用微處理器、模數(shù)轉(zhuǎn)換器和數(shù)模轉(zhuǎn)換器,硬件和軟件使信號(hào)發(fā)生器的功能擴(kuò)大,產(chǎn)生比較復(fù)雜的波形。這時(shí)期的信號(hào)發(fā)生器多以軟件為主,實(shí)質(zhì)是采用微處理器對(duì)D/A的程序控制,就可以得到各種簡(jiǎn)單的波形。在80年代以后,數(shù)字技術(shù)日益成熟,信號(hào)發(fā)生器絕大部分不再使用機(jī)械驅(qū)動(dòng)而采用數(shù)字電路,從一個(gè)頻率基準(zhǔn)有數(shù)字合成電路產(chǎn)生可變頻率信號(hào)。90年代末出現(xiàn)了集中真正高性能的函數(shù)信號(hào)發(fā)生器,HP公司推出了型號(hào)為HP770S的信號(hào)模擬裝置系統(tǒng),它是由HP8770A任意波形數(shù)字化和HP1770A波形發(fā)生軟件組成。信號(hào)發(fā)生器技術(shù)發(fā)展至今,引導(dǎo)技術(shù)潮流的仍是國(guó)外的幾大儀器公司,如日本橫河、Agilent、Tektronix等。美國(guó)的FLUKE公司的FLUKE-25型函數(shù)發(fā)生器是現(xiàn)有的測(cè)試儀器中最具多樣性功能的幾種儀器之一,它和頻率計(jì)數(shù)器組合在一起,在任何條件下都可以給出很高的波形質(zhì)量,能給出低失真的正弦波和三角波,還能給出過(guò)沖很小的快沿方波,其最高頻率可達(dá)到5MHz,最大輸出幅度可達(dá)到10Vpp。國(guó)內(nèi)也有不少公司已經(jīng)有了類似的儀器。如南京盛普儀器科技有限公司的SPF120DDS信號(hào)發(fā)生器,華高儀器生產(chǎn)的HG1600H型數(shù)字合成函數(shù)\任意波形信號(hào)發(fā)生器。國(guó)內(nèi)信號(hào)發(fā)生器起步晚,但發(fā)展至今,已經(jīng)漸漸跟上國(guó)際的腳步,能夠利用高新技術(shù)開發(fā)出達(dá)到國(guó)際水平的高性能多功能信號(hào)發(fā)生器。信號(hào)發(fā)生器在生產(chǎn)實(shí)踐和科技領(lǐng)域中有著廣泛的應(yīng)用,各種波形曲線均可用三角函數(shù)方程式來(lái)表達(dá)。函數(shù)信號(hào)發(fā)生器是各種測(cè)試和實(shí)驗(yàn)過(guò)程中不可缺少的工具,在通信、測(cè)量、雷達(dá)、控制教學(xué)等領(lǐng)域應(yīng)用十分廣泛。不論是在生產(chǎn)、科研還是在教學(xué)上,信號(hào)發(fā)生器都是電子工程師信號(hào)仿真實(shí)驗(yàn)的最佳工具。而且,信號(hào)發(fā)生器的設(shè)計(jì)方法多,設(shè)計(jì)技術(shù)也越來(lái)越先進(jìn),隨著我國(guó)經(jīng)濟(jì)和科技的發(fā)展,對(duì)對(duì)應(yīng)的測(cè)試儀器和測(cè)試手段也提出了更高的要求,信號(hào)發(fā)生器已成為測(cè)試儀器中至關(guān)重要的一類,因此,開發(fā)信號(hào)發(fā)生器具有重大意義。1設(shè)計(jì)任務(wù)1.1波形發(fā)生器系統(tǒng)的設(shè)計(jì)指標(biāo)設(shè)計(jì)完成一個(gè)頻率振幅可調(diào)的正弦波、方波和三角波信號(hào)發(fā)生器。1.2基本要求根據(jù)ADC的值(8位)來(lái)設(shè)定輸出信號(hào)的幅值,幅值范圍0-3.3V,設(shè)定的幅值顯示在LCD上。(2)輸出信號(hào)的頻率范圍為100Hz-1KHz,128個(gè)點(diǎn)。(3)可通過(guò)按鍵或觸摸筆切換輸出信號(hào)類型。2設(shè)計(jì)方案2.1信號(hào)產(chǎn)生部分方案一:采用模擬分立元件或單片壓控函數(shù)發(fā)生器,可以產(chǎn)生正弦波、方波、三角波,通過(guò)調(diào)整外部元件可以改變輸出頻率,但采用模擬元器件由于元件分散性太大,因而產(chǎn)生頻率穩(wěn)定性較差,精度低,地抗干擾能力低,成本高,而且靈活心性較差,不能實(shí)現(xiàn)任意波形以及波形運(yùn)算輸出等智能化的功能。方案二:使用集成函數(shù)發(fā)生器芯片ICL8038。芯片ICL8032能輸出方波、三角波、正弦波和鋸齒波四種不同的波形,將他作為信號(hào)發(fā)生器。它是電壓控制頻率的集成芯片,失真度很低??奢斎氩煌耐獠侩妷簛?lái)實(shí)現(xiàn)不同的頻率輸出。為了達(dá)到數(shù)控的目的,可用高度的DAC來(lái)輸出電壓以控制正弦波的頻率。方案三:采用鎖相式頻率合成方案,鎖相式頻率合成一個(gè)高穩(wěn)定度和精確度的大量離散技術(shù),他在一定程度上解決了既要頻率穩(wěn)定精確又要頻率在較大的范圍內(nèi)可調(diào)的矛盾,但是頻率受VCO可便頻率范圍的影響,高低頻率比不可能做的很高,而且只能產(chǎn)生正弦波或方波。方案四:直接數(shù)字頻率合成技術(shù)(DDS)。DDS是一種純數(shù)字化方法。它現(xiàn)將所需正弦波一個(gè)周期的離散樣點(diǎn)的幅值數(shù)字量存入ROM中,然后按一定的地址間隔讀出,并經(jīng)DA轉(zhuǎn)換器形成模擬正弦波,再經(jīng)低通濾波器得到質(zhì)量較好的信號(hào)。方案五:利用函數(shù)將波形的點(diǎn)數(shù)據(jù)保存在芯片的RAM中,根據(jù)所要的波形的頻率計(jì)算出它的周期,經(jīng)計(jì)算得到在定時(shí)器定時(shí)時(shí)間固定的前提下產(chǎn)生一個(gè)完整的波形所需要的輸出的點(diǎn)數(shù),這樣數(shù)據(jù)指針可以根據(jù)點(diǎn)數(shù)的數(shù)量來(lái)進(jìn)行移動(dòng),得到頻率準(zhǔn)確、切換快速的信號(hào)。VCO不能實(shí)現(xiàn)穩(wěn)定頻率信號(hào)的輸出并且難于數(shù)字控制。并且電容、電阻參數(shù)隨溫度等其他因素的影響,頻率穩(wěn)定度以及電路的穩(wěn)定度都較低,實(shí)現(xiàn)也比較復(fù)雜,不予采納。雖然ICL8038可很好的實(shí)現(xiàn)頻率輸出的控制,但查看ICL8038的設(shè)計(jì)資料可知頻率輸出范鬧為0.01Hz~1kHz不能達(dá)到題目的要求,故不予選用。PLL方案和DDS方案都能實(shí)現(xiàn)100Hz~1KHz的穩(wěn)定的信號(hào)輸出,.且能達(dá)到較小的頻率步進(jìn),但是PLL的動(dòng)態(tài)特性卻很差,在頻率改變時(shí),環(huán)路從小穩(wěn)定到穩(wěn)定的過(guò)程有時(shí)間問(wèn)延遲。相比較而言,DDS的頻率輸出范圍一般低于PLL,且雜散也大于PLL方案,但DDS信號(hào)源具有輸出頻率穩(wěn)定度高、精度更高、分辨率更高且易于程控等優(yōu)點(diǎn),且頻率改變不存在失調(diào)過(guò)程,盡管有雜散干擾,只需在輸出級(jí)加濾波器仍可以得到質(zhì)量很好的波形。而方案五集中了上述四個(gè)方案的各個(gè)優(yōu)點(diǎn),因此采用方案五來(lái)實(shí)現(xiàn)波形信號(hào)的產(chǎn)生。2.2幅度進(jìn)行調(diào)整部分方案一:用高速模擬乘法器實(shí)現(xiàn)采用AD835高速模擬乘法器,來(lái)實(shí)現(xiàn)模擬調(diào)制。模擬乘法器AD835的-3dB截止頻率為250MHz,能夠滿足題日的要求。但是AD835的差分輸入范圍僅為±1V,因此必須對(duì)輸入信號(hào)進(jìn)行預(yù)處理,這樣在增加硬件的同時(shí),又加大了設(shè)計(jì)的難度。方案二:采用高速的D/A轉(zhuǎn)換器在STM32f107中集成著一個(gè)高速的D/A轉(zhuǎn)換器,我們可以直接在軟件中設(shè)置一個(gè)幅度的參數(shù)來(lái)改變輸出波形的幅度大小。綜上所述,采用方案二,雖然增加了軟件的難度,延遲了波形的輸出時(shí)問(wèn),但是可以不用外加硬件拓展,節(jié)省了成本。2.3對(duì)頻率調(diào)整部分方案一:通過(guò)在存儲(chǔ)芯片ROM中保存不同頻率信號(hào)的信號(hào)發(fā)生點(diǎn)數(shù),在頻率切換時(shí)調(diào)用ROM中所存儲(chǔ)的不同點(diǎn)數(shù)模塊來(lái)實(shí)現(xiàn)頻率的切換。方案二:在存儲(chǔ)芯片RAM中保存由軟件實(shí)時(shí)產(chǎn)生的波形點(diǎn)數(shù),通過(guò)所取的點(diǎn)數(shù)的不同來(lái)決定發(fā)生的波形的頻率。由于設(shè)計(jì)中的信號(hào)要進(jìn)行不斷的改變,因此波形的數(shù)據(jù)不能存儲(chǔ)在ROM中,應(yīng)該存儲(chǔ)RAM中,因此采用方案二的設(shè)計(jì)方法。3系統(tǒng)整體設(shè)計(jì)3.1系統(tǒng)總框圖如圖1所示為系統(tǒng)總框圖。圖1系統(tǒng)總框圖3.2各模塊功能3.2.1波形產(chǎn)生電路通過(guò)軟件將波形數(shù)據(jù)存儲(chǔ)到RAM當(dāng)中去,再把這些數(shù)據(jù)輸送到D/A轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換得到模擬波形。3.2.2按鍵部分用STM32F107開發(fā)板上自身帶有的鍵盤得到鍵值,通過(guò)中斷服務(wù)程序?qū)㈡I值信息傳給控制芯片。3.2.3顯示部分波形直接在示波器上顯示,波形的中間調(diào)試參數(shù)在液晶屏上顯示。液晶原題圖如圖2所示。圖2液晶原題圖3.2.4DAC轉(zhuǎn)換器數(shù)字/模擬轉(zhuǎn)換模塊(DAC)是12位數(shù)字輸入,電壓輸出的數(shù)字/模擬轉(zhuǎn)換器。DAC可以配置為8位或12位模式,也可以與DMA控制器配合使用。DAC工作在12位模式時(shí),數(shù)據(jù)可以設(shè)置成左對(duì)齊或右對(duì)齊。DAC模塊有2個(gè)輸出通道,每個(gè)通道都有單獨(dú)的轉(zhuǎn)換器。在雙DAC模式下,2個(gè)通道可以獨(dú)立地進(jìn)行轉(zhuǎn)換,也可以同時(shí)進(jìn)行轉(zhuǎn)換并同步地更新2個(gè)通道的輸出。DAC可以通過(guò)引腳輸入?yún)⒖茧妷篤REF+以獲得更精確的轉(zhuǎn)換結(jié)果。DAC主要特征●2個(gè)DAC轉(zhuǎn)換器:每個(gè)轉(zhuǎn)換器對(duì)應(yīng)1個(gè)輸出通道●8位或者12位單調(diào)輸出●12位模式下數(shù)據(jù)左對(duì)齊或者右對(duì)齊●同步更新功能●噪聲波形生成●三角波形生成●雙DAC通道同時(shí)或者分別轉(zhuǎn)換●每個(gè)通道都有DMA功能●外部觸發(fā)轉(zhuǎn)換●輸入?yún)⒖茧妷篤REF+DAC輸出電壓:數(shù)字輸入經(jīng)過(guò)DAC被線性地轉(zhuǎn)換為模擬電壓輸出,其范圍為0到VREF+。任一DAC通道引腳上的輸出電壓滿足下面的關(guān)系:DAC輸出=VREFx(DOR/4095)單個(gè)DAC通道的框圖如下圖3所示。圖3單個(gè)DAC通道的框圖4各個(gè)模塊的實(shí)現(xiàn)及分析4.1正弦波的產(chǎn)生本設(shè)計(jì)中信號(hào)的產(chǎn)生直接用STM32F107芯片上集成的D/A轉(zhuǎn)換器和軟件的結(jié)合來(lái)生成。波形的信號(hào)數(shù)據(jù)采用了函數(shù)計(jì)算的方法來(lái)取得:Y=sin(N)(4-1)其中,N表示所要取得的點(diǎn)數(shù)的多少。在設(shè)計(jì)中我選擇N=128,即一個(gè)完整的基本的正弦信號(hào)有128個(gè)數(shù)據(jù)信號(hào)點(diǎn)組成。將數(shù)據(jù)存儲(chǔ)到控制芯片STM32F107的RAM當(dāng)中,根據(jù)所要的頻率來(lái)取得信號(hào)數(shù)據(jù)的多少,點(diǎn)數(shù)多少的計(jì)算如下:N=T/2t(4-2)其中,N表示點(diǎn)數(shù),T表示所要產(chǎn)生的波形信號(hào)的周期,t表示定時(shí)器的時(shí)問(wèn)長(zhǎng)短,從RAM中取得點(diǎn)數(shù)的間隔為:M=128/N(4-3)其中M表示在RAM中的表格取得點(diǎn)數(shù)的間隔,根據(jù)不同的間隔的大小決定產(chǎn)生一個(gè)完整的波形信號(hào)所要的數(shù)據(jù)多少不同。設(shè)計(jì)中要求信號(hào)的最高產(chǎn)生的頻率為1KHZ,根據(jù)條奎斯特定理,采樣的頻率最少要為所要信號(hào)的頻率的兩倍,但是為了更好的保證信號(hào)的完整輸出,我們至少要讓它采樣10個(gè)點(diǎn)才能輸出完整波形,就要求采樣的頻率為他的10倍即10KHZ.采樣時(shí)間的大小為100us。4.2三角波的產(chǎn)生在設(shè)計(jì)中,三角波的產(chǎn)生就直接利用定時(shí)器定時(shí)時(shí)間的長(zhǎng)短來(lái)控制信號(hào)數(shù)據(jù)的輸出,信號(hào)數(shù)據(jù)從一個(gè)較低(或高)的位置開始按照一定的規(guī)律步進(jìn),當(dāng)其達(dá)到一個(gè)高度時(shí)再按照相同的步進(jìn)下降到原來(lái)的數(shù)據(jù)大小,如此反復(fù)的輸出就構(gòu)成了三角波模擬信號(hào)的輸出。4.3方波的產(chǎn)生在設(shè)計(jì)中,方波的產(chǎn)生由大小不同的兩個(gè)信號(hào)數(shù)據(jù)交替輸出形成,每個(gè)信號(hào)數(shù)據(jù)輸出的時(shí)間長(zhǎng)短根據(jù)所要點(diǎn)信號(hào)頻率來(lái)決定。4.4幅度的控制在設(shè)計(jì)中,為了能使波形在示波器中顯示,這樣就要設(shè)定好波形的幅度,在設(shè)計(jì)時(shí)我把波形的幅度控制在128之內(nèi),才能很好的顯示波形。同時(shí)為了改變幅度的大小,我設(shè)置了一個(gè)參數(shù)直接與所取得的信號(hào)數(shù)據(jù)相乘,這就改變了信號(hào)數(shù)據(jù)的大小,也就使得D/A轉(zhuǎn)換時(shí)的數(shù)據(jù)大小產(chǎn)生變化,從而體現(xiàn)在輸出的信號(hào)波形在幅度上發(fā)生改變。4.5頻率的控制在輸出的信號(hào)數(shù)據(jù)的時(shí)間間隔一定時(shí),當(dāng)產(chǎn)生一個(gè)完整波形時(shí)所需要的點(diǎn)數(shù)發(fā)生變化時(shí)信號(hào)的周期就發(fā)生變化,這樣它的頻率就相應(yīng)的變化。因此,在設(shè)計(jì)中,通過(guò)固定定時(shí)器的定時(shí)長(zhǎng)短,改變波形數(shù)據(jù)的點(diǎn)數(shù)多少就改變了信號(hào)的頻率。4.6按鍵模塊按鍵是直接與STM32F107芯片的PC4、PB10、PC13、PA0連接,通過(guò)ARM芯片對(duì)引腳輸入數(shù)據(jù),0表示有效,l表示無(wú)效。鍵l用來(lái)選擇輸出波形,鍵2用來(lái)改變波的幅值,鍵3用來(lái)改變波形的頻率,鍵4用來(lái)改變方波的占空比。按鍵原理圖如圖4所示。圖4按鍵原理圖4.7RTC的設(shè)置RTC(Real-timeclock)是實(shí)時(shí)時(shí)鐘的意思。神舟IV號(hào)開發(fā)板的處理器STM32F107集成了RTC(Real-timeclock)實(shí)時(shí)時(shí)鐘,在處理器復(fù)位或系統(tǒng)掉電但有實(shí)時(shí)時(shí)鐘電池的情況下,能維持系統(tǒng)當(dāng)前的時(shí)間和日期的準(zhǔn)確性。實(shí)時(shí)時(shí)鐘是一個(gè)獨(dú)立的定時(shí)器。RTC實(shí)時(shí)時(shí)鐘模塊擁有一組連續(xù)計(jì)數(shù)的計(jì)數(shù)器,在相應(yīng)軟件配置下,可提供時(shí)鐘日歷的功能。修改計(jì)數(shù)器的值可以重新設(shè)置系統(tǒng)當(dāng)前的時(shí)間和日期。RTC由兩個(gè)主要部分組成。第一部分(APB1接口),用來(lái)和APB1總線相連。此單元還包含一組16位寄存器,可通過(guò)APBI總線對(duì)其進(jìn)行讀寫操作APBI接口由APB1總線時(shí)鐘驅(qū)動(dòng),用來(lái)與APBI總線接口。另一部分(RTC核心)由一組可編程計(jì)數(shù)器組成,分成兩個(gè)主要模塊。第一個(gè)模塊是RTC的預(yù)分頻模塊,它可編程產(chǎn)生最長(zhǎng)為1秒的RTC時(shí)間基準(zhǔn)TR_CLK。RTC的預(yù)分頻模塊包含了一個(gè)20位的可編程分頻器(RTC預(yù)分頻器)。如果在RTC_CR寄存器中設(shè)置了相應(yīng)的允許位,則在每個(gè)TRCLK周期中RTC產(chǎn)生一個(gè)中斷(秒中斷)。第二個(gè)模塊是一個(gè)32位的可編程計(jì)數(shù)器,可被初始化為當(dāng)前的系統(tǒng)時(shí)間。系統(tǒng)時(shí)間按TRCLK周期累加并與存儲(chǔ)在RTCALR寄存器中的可編程時(shí)間相比較,如果RTC_CR控制寄存器中設(shè)置了相應(yīng)允許位,比較匹配時(shí)將產(chǎn)生一個(gè)鬧鐘中斷。圖5為簡(jiǎn)化的RTC框圖。圖5簡(jiǎn)化的RTC框圖5軟件設(shè)計(jì)本系統(tǒng)的軟件設(shè)計(jì)采用C語(yǔ)言,對(duì)ARM7進(jìn)行編程實(shí)現(xiàn)各項(xiàng)功能。采用KEIL軟件編寫,可以實(shí)現(xiàn)波形的切換、幅度頻率的調(diào)節(jié)以及方波的占空比調(diào)節(jié)、液晶顯示等功能。主程序主要起到一個(gè)導(dǎo)向和決策功能,決定什么時(shí)候系統(tǒng)采取何種動(dòng)作。其余各種功能的實(shí)現(xiàn)主要通過(guò)具體的子程序來(lái)完成。系統(tǒng)總流程圖如圖6所示。圖6系統(tǒng)總流程圖6調(diào)試部分6.1控制電路的調(diào)試對(duì)控制電路進(jìn)行時(shí)序仿真,在仿真圖中幾乎總會(huì)出現(xiàn)我們所不需要的毛刺,這些毛刺有時(shí)會(huì)給系統(tǒng)帶來(lái)致命的影響,我們必須采取措施消除這樣的毛刺。由于毛刺一般出現(xiàn)在信號(hào)發(fā)生電平轉(zhuǎn)換的時(shí)刻,也即輸出信號(hào)的建立時(shí)間內(nèi),而在輸出信號(hào)的保持時(shí)間內(nèi)不大會(huì)出現(xiàn)。因此,若帶有毛刺的信號(hào)持續(xù)時(shí)間較長(zhǎng),我們可在輸出信號(hào)的持續(xù)時(shí)間內(nèi)用一定寬度的高電平脈沖選通一個(gè)與門來(lái)獲得該信號(hào),此時(shí)毛刺自然已被消除。高電平脈沖可由軟件控制鎖存器來(lái)得到。若帶有毛刺的信號(hào)保持時(shí)間較短,可利用D觸發(fā)器的D輸入端對(duì)毛刺不敏感的特點(diǎn),在輸出信號(hào)的保持時(shí)間內(nèi)用觸發(fā)器讀取輸出信號(hào),此時(shí)毛刺自然也已被消除,觸發(fā)器的時(shí)鐘沿可由軟件控制地址譯碼器來(lái)得到。另外,在某些情況下,需要對(duì)信號(hào)進(jìn)行一定的延時(shí),以完成特定的功能。利用D觸發(fā)器可在時(shí)鐘的控制下對(duì)信號(hào)進(jìn)行比較精確的延時(shí),這種方法的最小延時(shí)是半個(gè)時(shí)鐘周期。延時(shí)也是消除毛刺的手段之一。6.2硬件電路的調(diào)試在硬件電路調(diào)試中,要注意焊接的藝術(shù)和元件的布局,讓整體顯得美觀。不能出現(xiàn)漏焊、錯(cuò)焊等現(xiàn)象。在燒錄入程序之后,對(duì)電路進(jìn)行測(cè)試,看電路是否能達(dá)到預(yù)期的功能。如果不能,則要進(jìn)行程序的調(diào)試,并檢測(cè)電路連接、元件使用等方面的問(wèn)題,努力排除故障,讓系統(tǒng)功能實(shí)現(xiàn)。7系統(tǒng)測(cè)試與數(shù)據(jù)分析7.1正弦波、方波和三角波的頻率測(cè)試幅值調(diào)至1.0V正弦波、方波和三角波的頻率測(cè)試結(jié)果如表1所示。表1正弦波、方波和三角波的頻率測(cè)試結(jié)果7.2正弦波、方波和三角波的幅值測(cè)試頻率調(diào)至500Hz正弦波、方波和三角波的幅值測(cè)試結(jié)果如表2所示。表2正弦波、方波和三角波的幅值測(cè)試結(jié)果7.3方波占空比測(cè)試幅值調(diào)至1.0V頻率調(diào)至500Hz方波占空比測(cè)試結(jié)果如表3所示。表3方波占空比測(cè)試結(jié)果總結(jié)通過(guò)這次基于STM32的信號(hào)發(fā)生器設(shè)計(jì),讓我對(duì)數(shù)字信號(hào)的產(chǎn)生、調(diào)節(jié)以及DA轉(zhuǎn)換原理有了更加深刻的了解,除此之外,對(duì)M3內(nèi)核的了解以及STM32F107板上資源的了解與運(yùn)用又更加?jì)故炝艘徊?。在測(cè)試階段,尤其是在方案選擇以及程序的編寫上,有很深的體會(huì),有時(shí)候一個(gè)簡(jiǎn)單的錯(cuò)誤就有可能造成致命錯(cuò)誤,導(dǎo)致信號(hào)無(wú)法正常產(chǎn)生。通過(guò)本次課程設(shè)計(jì),我更加深刻的認(rèn)識(shí)到團(tuán)隊(duì)合作的重要性,在剛開始設(shè)計(jì)的時(shí)候由于對(duì)信號(hào)的產(chǎn)生不太熟悉,到處收集資料選擇方案,致使耽誤很多時(shí)間,之后與同學(xué)商量,一起探討。最后成功設(shè)計(jì)出所需波形,完成任務(wù)。所以說(shuō)合作,是設(shè)計(jì)成功的關(guān)鍵,只有大家團(tuán)結(jié)一致,才能更快更好的完成任務(wù)。參考文獻(xiàn)[1]康華光.電子技術(shù)基礎(chǔ)模擬部分第四版[M].北京:高等教育出版社,1999.6.[2]閻石.數(shù)字電子技術(shù)基礎(chǔ)第四版[M].北京:高等教育出版社,1999.6.[3]王福瑞等.單片微機(jī)測(cè)控系統(tǒng)設(shè)計(jì)大全[M].北京航空航天大學(xué)出版社,1998(331-337).[4]寧改娣,楊拴科.DSP控制器原理及應(yīng)用[M].科學(xué)出版社,2002.[5]周立功等.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2005.1.[6]周立功等.ARM嵌入式系統(tǒng)實(shí)驗(yàn)教程[M].北京:北京航空航天大學(xué)出版社,2005.1.[7]唐清善.ProtelDXP高級(jí)實(shí)例教程[M].中國(guó)水利水電出版社,2004.4.[8]羅浩等.一種新的基于ARM的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].信陽(yáng)師范學(xué)院學(xué)報(bào)(自然科學(xué)版),2006.4.[9]秦偉等.基于ARM處理器的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].自動(dòng)化技術(shù)與應(yīng)用.2006年第10期.[10]杜春雷.ARM體系結(jié)構(gòu)與編程.清華大學(xué)出版社,2003.[11]李寧.ARM開發(fā)工具ReaIViewMDK使用入門[M].北京航空航天大學(xué)出版社,2008.[12]李寧.基于MDK的STM32處理器開發(fā)應(yīng)用[M].北京航空航天大學(xué)出版社,2008.[13]劉黎明等.單片機(jī)與嵌入式系統(tǒng)應(yīng)用[J].英文刊名MICROCONTROLLER&EMBEDDEDSYSTEM.2002(7).附錄信號(hào)發(fā)生器各模塊的程序/**功能:STM32DAC數(shù)模轉(zhuǎn)換(正弦波/矩形波/三角波)輸出實(shí)驗(yàn)*說(shuō)明:按SW5輸出正弦波/按SW4輸出矩形波/按SW3輸出三角波,輸出端口PA4**/#include<stdio.h>#include<stm32f10x_lib.h>//STM32F10xLibraryDefinitions#include"STM32_Reg.h"http://STM32registerandbitDefinitions#include"STM32_Init.h"http://STM32Initialization#include"common.h"#include"sine_wave_1024.h"http://輸出端口:PA4#defineSINE_WAVE 1//sine 正弦波 #defineRECT_WAVE 2//rectangular 矩形波#defineHACKLE_WAVE 3//hackle 三角波UINT8flag=0;UINT8func=SINE_WAVE;/*MAINfunction**/intmain(void){UINT16i=0;UINT32*pDAC_BASE=(UINT32*)DAC_BASE;stm32_Init();//STM32setupLED_Init();//打開DAC時(shí)鐘使能RCC->APB1ENR|=(UINT32)(1<<29);//設(shè)置DAC控制參數(shù)*(pDAC_BASE+0x00)=(0x01<<0)|(0x00<<2)|(0x04<<3)|(0x03<<6)|(0x0b<<8);*(pDAC_BASE+0x04)=0x01printf("Programstart\r\n"); while(TRUE) //Loopforever{ if(!Get_SW5()) {func=SINE_WAVE; } elseif(!Get_SW4()) {func=RECT_WAVE; } elseif(!Get_SW3()) {func=HACKLE_WAVE; } switch(func) { caseSINE_WAVE://#ifdefSINE_WAVEif(i<1024)i+=2;elsei=0;*(pDAC_BASE+0x08)=Sine_WAVE[i]<<4;#endif// break; caseRECT_WAVE: #ifdefRECT_WAVEfor(i=0;i<2000;i++)*(pDAC_BASE+0x08)=0x0fff;for(i=0;i<2000;i++)*(pDAC_BASE+0x08)=0;#endif// break; caseHACKLE_WAVE: #ifdefHACKLE_WAVEif(flag){ flag=0;while(TRUE){ if(i<4096)i+=1;elsebreak; *(pDAC_BASE+0x08)=i;}}else{flag=1;while(TRUE){ if(i>0)i-=1;elsebreak; *(pDAC_BASE+0x08)=i;}}#endif break; default: break; } //}//endwhile}//endmain/**設(shè)置方向**/voidSet_IO_direction(UINT8PORT,UINT8GPIO,UINT8Value){RCC->APB2ENR|=RCC_APB2ENR_IOPAEN; if(PORT==PORT_A) { if(GPIO<8) { GPIOA->CRL&=~(0x0f<<(GPIO*4)); //Clrusedbit GPIOA->CRL|=(Value<<(GPIO*4)); //Setusedbit } else { GPIOA->CRH&=~(0x0f<<(GPIO*4-8*4));//Clrusedbit GPIOA->CRH|=(Value<<(GPIO*4-8*4));//Setusedbit }}if(PORT==PORT_B) { if(GPIO<8) { GPIOB->CRL&=~(0x0f<<(GPIO*4)); //Clrusedbit GPIOB->CRL|=(Value<<(GPIO*4)); //Setusedbit } else { GPIOB->CRH&=~(0x0f<<(GPIO*4-8*4));//Clrusedbit GPIOB->CRH|=(Value<<(GPIO*4-8*4));//Setusedbit }}if(PORT==PORT_C) { if(GPIO<8) { GPIOC->CRL&=~(0x0f<<(GPIO*4)); //Clrusedbit GPIOC->CRL|=(Value<<(GPIO*4)); //Setusedbit } else { GPIOC->CRH&=~(0x0f<<(GPIO*4-8*4));//Clrusedbit GPIOC->CRH|=(Value<<(GPIO*4-8*4));//Setusedbit }}if(PORT==PORT_D) { if(GPIO<8) { GPIOD->CRL&=~(0x0f<<(GPIO*4)); //Clrusedbit GPIOD->CRL|=(Value<<(GPIO*4)); //Setusedbit } else { GPIOD->CRH&=~(0x0f<<(GPIO*4-8*4));//Clrusedbit GPIOD->CRH|=(Value<<(GPIO*4-8*4));//Setusedbit }}if(PORT==PORT_E) { if(GPIO<8) { GPIOE->CRL&=~(0x0f<<(GPIO*4)); //Clrusedbit GPIOE->CRL|=(Value<<(GPIO*4)); //Setusedbit } else { GPIOE->CRH&=~(0x0f<<(GPIO*4-8*4));//Clrusedbit GPIOE->CRH|=(Value<<(GPIO*4-8*4));//Setusedbit }}}/*SendCharWritecharactertoSerialPort.**/intSendChar(intch){while(!(USART2->SR&USART_FLAG_TXE));USART2->DR=(ch&0x1FF);return(ch);}/*GetKeyReadcharactertoSerialPort.**/intGetKey(void){while(!(USART2->SR&USART_FLAG_RXNE));return((int)(USART2->DR&0x1FF));}voidLED_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,SW4,INPUT); Set_IO_direction(PORT_E,SW5,INPUT); Turn_OFF_LED1(); Turn_OFF_LED2(); Turn_OFF_LED3(); Turn_OFF_LED4();}/*insertadelaytime.**/voiddelay(unsignedintnCount){for(;nCount!=0;nCount--);}正弦波歸一化程序:tosin[

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論