2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  二、文獻(xiàn)綜述</b></p><p>  信號(hào)發(fā)生器是用來提供各種測量所需信號(hào)的儀器,它是一種常用的信號(hào)源,廣泛應(yīng)用于電子電路、自動(dòng)控制和科學(xué)試驗(yàn)等領(lǐng)域。在分析電子線路時(shí),常常需要了解輸出信號(hào)與輸入信號(hào)之間的關(guān)系,為此常信號(hào)發(fā)生器產(chǎn)生一個(gè)信號(hào)來激勵(lì)系統(tǒng),以便觀察、分析它對激勵(lì)信號(hào)的反映。自十九世紀(jì)六十年代以來,信號(hào)發(fā)生器有了迅速的發(fā)展出現(xiàn)了函數(shù)發(fā)生器、掃頻信號(hào)發(fā)

2、生器、合成信號(hào)發(fā)生器、程控信號(hào)發(fā)生器等新種類,各類信號(hào)發(fā)生器的主要性能指標(biāo)也都有了大幅度的提高,同時(shí)在簡化機(jī)械結(jié)構(gòu)、小型化、多功能等各方面也有了顯著的進(jìn)展。        產(chǎn)生所需參數(shù)的電測試信號(hào)儀器。按其信號(hào)波形分為四大類:①正弦信號(hào)發(fā)生器。主要用于測量電路和系統(tǒng)的頻率特性、非線性失真、增益及靈敏度等。按其不同性能和用途還可細(xì)分為低頻(20赫至10兆赫)信號(hào)發(fā)生器、高頻(1

3、00千赫至300兆赫)信號(hào)發(fā)生器、微波信號(hào)發(fā)生器、掃頻和程控信號(hào)發(fā)生器、頻率合成式信號(hào)發(fā)生器等。②函數(shù)(波形)信號(hào)發(fā)生器。能產(chǎn)生某些特定的周期性時(shí)間函數(shù)波形(正弦波、方波、三角波、鋸齒波和脈沖波等)信號(hào),頻率范圍可從幾個(gè)微赫到幾十兆赫。除供通信、儀表和自動(dòng)控制系統(tǒng)測試用外,還廣泛用于其他非電測量領(lǐng)</p><p>  各種波形曲線均可以用三角函數(shù)方程式來表示。能夠產(chǎn)生多種波形,如三角波、鋸齒波、矩形波(含方波)、

4、正弦波的電路被稱為函數(shù)信號(hào)發(fā)生器。函數(shù)信號(hào)發(fā)生器在電路實(shí)驗(yàn)和設(shè)備檢測中具有十分廣泛的用途。函數(shù)信號(hào)發(fā)生器的實(shí)現(xiàn)方法通常有以下幾種:(1)用分立元件組成的函數(shù)發(fā)生器:通常是單函數(shù)發(fā)生器且頻率不高,其工作不很穩(wěn)定,不易調(diào)試。(2)可以由晶體管、運(yùn)放IC等通用器件制作,更多的則是用專門的函數(shù)信號(hào)發(fā)生器IC產(chǎn)生。早期的函數(shù)信號(hào)發(fā)生器IC,如L8038、BA205、XR2207/2209等,它們的功能較少,精度不高,頻率上限只有300kHz,

5、無法產(chǎn)生更高頻率的信號(hào),調(diào)節(jié)方式也不夠靈活,頻率和占空比不能獨(dú)立調(diào)節(jié),二者互相影響。(3)利用單片集成芯片的函數(shù)發(fā)生器:能產(chǎn)生多種波形,達(dá)到較高的頻率,且易于調(diào)試。鑒于此,美國美信公司開發(fā)了新一代函數(shù)信號(hào)發(fā)生器ICMAX038,它克服了(2)中芯片的缺點(diǎn),可以達(dá)到更高的技術(shù)指標(biāo),是上述芯片望塵莫及的。MAX038頻率高、精度好,因此它被稱為高頻精密函數(shù)信號(hào)發(fā)生器IC。在鎖相環(huán)、壓控振蕩器、頻率合成器、脈寬調(diào)制器等電路的設(shè)計(jì)上,MAX0

6、38都是優(yōu)選的器件。(</p><p>  (1)輸出的幅度穩(wěn)定.其穩(wěn)定度按其用途不同,可從百分之兒到萬分之幾,甚至更高;</p><p>  (2)輸出波形要好。如正弦波振蕩器要求失真度小,—般在3%以下,有些情況下要求達(dá)到小于1%;</p><p>  (3)輸出額率的穩(wěn)定皮要高。一般希望每小時(shí)效率變化的相對值(指短期穩(wěn)定度△f/f時(shí))小于10-3 對作為精

7、確頻率測量用的信號(hào)頻率輸出,其穩(wěn)定度要求就更高;</p><p>  (4)要求有一定的輸出功率。對于低頻振蕩器,常希望有1W以上的輸出功率,而對高頻振蕩器的輸出功率要求較低.</p><p>  低頻信號(hào)發(fā)生器的原理:系統(tǒng)包括主振級、主振輸出調(diào)節(jié)電位器、電壓放大器、輸出衰減器、功率放大器、阻抗變換器(輸出變壓器)和指示電壓表。主振級產(chǎn)生低頻正弦振蕩信號(hào),經(jīng)電壓放大器放大,達(dá)到電壓輸出幅度

8、的要求,經(jīng)輸出衰減器可直接輸出電壓,用主振輸出調(diào)節(jié)電位器調(diào)節(jié)輸出電壓的大小。設(shè)計(jì)針對低頻信號(hào)源進(jìn)行設(shè)計(jì),設(shè)計(jì)以LPC2138為控制芯片,探索研究了低頻信號(hào)發(fā)生器的原理和應(yīng)用,設(shè)計(jì)輸出頻率及幅度可調(diào),頻率范圍為1HZ~50KHZ的正弦波、方波、三角波、調(diào)幅波、調(diào)頻波及其復(fù)合波信號(hào),具有信號(hào)頻率、波形、幅度變化容易,硬件簡單可靠等特點(diǎn)的多功能信號(hào)源。</p><p>  在信號(hào)源中對它本身的抗干擾能力還是有很高的要求

9、的。干擾的渠道主要有三條: 空間干擾(場干擾),電磁信號(hào)通過空間輻射進(jìn)入系統(tǒng);過程通道干擾,干擾通過與系統(tǒng)相連的前向通道、后向通道及與其它系統(tǒng)的相互通道進(jìn)入;供電系統(tǒng)干擾,電磁信號(hào)通過供電線路進(jìn)入系統(tǒng)。一般情況下空間干擾在強(qiáng)度上遠(yuǎn)小于其它兩種,故系統(tǒng)中應(yīng)重點(diǎn)防止過程通道與供電系統(tǒng)的干擾??垢蓴_措施有硬件措施和軟件措施。硬件措施如果得當(dāng),可將絕大部分干擾拒之門外,但仍然會(huì)有少數(shù)干擾進(jìn)入系統(tǒng),故軟件措施作為第二道防線必不可少。由于軟件抗干擾

10、措施是以CPU為代價(jià)的,如果沒有硬件消除絕大多數(shù)干擾,CPU將疲于奔命,無暇顧及正常工作,嚴(yán)重影響系統(tǒng)的工作效率和實(shí)時(shí)性。因此,一個(gè)成功的抗干擾系統(tǒng)是由硬件和軟件相結(jié)合構(gòu)成的。在輸出信號(hào)時(shí),外部干擾有可能使信號(hào)出錯(cuò)。在軟件上,最有效的方法就是重復(fù)輸出同一個(gè)信號(hào),只要重復(fù)周期盡可能短,鎖存器接收到一個(gè)被干擾的錯(cuò)誤信號(hào)后還來不及作出有效的反應(yīng),一個(gè)正確的輸出信號(hào)又來到,就可以及時(shí)防止錯(cuò)誤動(dòng)作的產(chǎn)生。CPU抗干擾措施前面幾項(xiàng)抗干擾措施是針對I

11、/O通道,干擾還未作用到系統(tǒng)本身,這時(shí)系統(tǒng)還能正確無誤地執(zhí)行各種抗干擾程序</p><p>  在設(shè)計(jì)中,信號(hào)的輸出為一個(gè)完整的周期信號(hào)不斷的輸出,使得信號(hào)源能夠在輸出時(shí)具備一定的抗干擾能力。然后在末級還串上了一由RC組成的低通濾波器,形成了軟件與硬件相結(jié)合的抗干擾措施,同時(shí)提高了系統(tǒng)的帶載能力。</p><p>  在設(shè)計(jì)復(fù)合波形時(shí),本來是要將頻率分別為1W、2W、3W的三個(gè)正弦信號(hào)進(jìn)行

12、復(fù)合的,這就要求在信號(hào)數(shù)據(jù)輸出時(shí)必須先輸出一個(gè)3W的信號(hào)數(shù)據(jù)等下一個(gè)時(shí)輸出3W、2W的信號(hào)數(shù)據(jù),第三個(gè)時(shí)輸出3W、2W、1W的信號(hào)數(shù)據(jù),也就是說,3W數(shù)據(jù)信號(hào)不斷的輸出,2W點(diǎn)是間隔一個(gè)輸出,1W點(diǎn)間隔三個(gè)點(diǎn)輸出,這樣才能將三個(gè)不同頻率的波形整合到一起。但是在不同的波形之間波形的疊加最好是在同頻率的波形之間進(jìn)行,就選擇了三個(gè)同頻率的正弦波、三角波和方波進(jìn)行復(fù)合。設(shè)計(jì)中碰到它們復(fù)合時(shí)幅度的控制問題,若幅度沒控制好,示波器顯示出來的將是一些

13、雜波,并不是一個(gè)復(fù)合的波形,因此應(yīng)該將復(fù)合波形的幅度系數(shù)除掉一個(gè)參數(shù),以保證波形的完好輸出。</p><p>  設(shè)計(jì)的低頻信號(hào)發(fā)生器的達(dá)到很高穩(wěn)定性,可以將其用在電子線路與系統(tǒng)的設(shè)計(jì)、測試和維修中。</p><p><b>  多功能信號(hào)源設(shè)計(jì)</b></p><p>  基于ARM的多功能信號(hào)源設(shè)計(jì)</p><p>

14、;<b>  【摘要】</b></p><p>  本設(shè)計(jì)主要研究和設(shè)計(jì)基于ARM(LPC2138)嵌入式系統(tǒng)的多功能數(shù)字信號(hào)發(fā)生器,采用數(shù)值計(jì)算合成和D/A轉(zhuǎn)換模塊來完成,可產(chǎn)生輸出頻率及幅度可調(diào),頻率范圍為1HZ~50KHZ的正弦波、方波、三角波及其復(fù)合波信號(hào),具有信號(hào)頻率、波形、幅度變化容易,硬件簡單可靠等特點(diǎn)。</p><p><b>  目 錄&l

15、t;/b></p><p>  引言 ………………………………………………………………………………1 </p><p>  1 系統(tǒng)設(shè)計(jì)任務(wù)與要求………………………………………………………………1</p><p>  1.1設(shè)計(jì)任務(wù) ………………………………………………………………………1 </p><p>  1.2 設(shè)計(jì)要求………

16、………………………………………………………………1 </p><p>  2 方案論證及選擇………………………………………………………………1</p><p>  2.1信號(hào)產(chǎn)生部分…………………………………………………………………1 </p><p>  2.2 幅度調(diào)制(AM)信號(hào)的產(chǎn)生……………………………………………………2</p><

17、p>  2.3 頻率調(diào)制(FM)信號(hào)的產(chǎn)生…………………………………………………2</p><p>  2.4 濾波電路………………………………………………………………………2</p><p>  3 系統(tǒng)設(shè)計(jì) ……………………………………………………………………3</p><p>  3.1 系統(tǒng)框圖……………………………………………………………………

18、…3</p><p>  3.2 各功能模塊………………………………………………………………………3</p><p>  3.2.1波形產(chǎn)生電路……………………………………………………………3 </p><p>  3.2.2鍵盤模塊…………………………………………………………………3</p><p>  3.2.3濾波器設(shè)計(jì)……………………

19、…………………………………………3</p><p>  3.2.4顯示模塊…………………………………………………………………3</p><p>  3.3各個(gè)功能塊的實(shí)現(xiàn)原理及分析 ………………………………………………3</p><p>  3.3.1正弦波的產(chǎn)生……………………………………………………………3 </p><p>  3.3.

20、2三角波的產(chǎn)生……………………………………………………………4</p><p>  3.3.3方波的產(chǎn)生………………………………………………………………4</p><p>  3.3.4復(fù)合波形的產(chǎn)生…………………………………………………………4</p><p>  3.3.5幅度的控制………………………………………………………………4 </p>&l

21、t;p>  3.3.6頻率的控制………………………………………………………………4</p><p>  3.3.7濾波器設(shè)計(jì)………………………………………………………………4</p><p>  3.3.8鍵盤模塊………………………………………………………………4</p><p>  4 軟件設(shè)計(jì) ……………………………………………………………………5&l

22、t;/p><p>  5 系統(tǒng)測試與數(shù)據(jù)分析 …………………………………………………………7</p><p>  5.1 測試工具…………………………………………………………………………7 </p><p>  5.2 測試數(shù)據(jù)及表格…………………………………………………………………7</p><p>  5.2.1 頻率與間隔點(diǎn)數(shù)的計(jì)算………

23、…………………………………………7</p><p>  5.2.2 不同波的幅度與頻率的測試…………………………………………7</p><p>  5.3 調(diào)試結(jié)果圖………………………………………………………………………9 </p><p>  5.3.1 三角波………………………………………………………………9</p><p>  5.

24、3.2 正弦波…………………………………………………………………9</p><p>  5.3.3 方波……………………………………………………………………10</p><p>  5.3.4 合成波…………………………………………………………………10</p><p>  6 結(jié)論 ……………………………………………………………………………11</p

25、><p>  致謝語 ……………………………………………………………………………11</p><p>  參考文獻(xiàn)……………………………………………………………………………11</p><p>  附錄 ……………………………………………………………………………13</p><p><b>  引 言</b></

26、p><p>  信號(hào)發(fā)生器是用來提供各種測量所需信號(hào)的儀器,它是一種常用的信號(hào)源,廣泛應(yīng)用于電子電路、自動(dòng)控制和科學(xué)試驗(yàn)等領(lǐng)域。在分析電子線路時(shí),常常需要了解輸出信號(hào)與輸入信號(hào)之間的關(guān)系,為此常信號(hào)發(fā)生器產(chǎn)生一個(gè)信號(hào)來激勵(lì)系統(tǒng),以便觀察、分析它對激勵(lì)信號(hào)的反映。自十九世紀(jì)六十年代以來,信號(hào)發(fā)生器有了迅速的發(fā)展出現(xiàn)了函數(shù)發(fā)生器、掃頻信號(hào)發(fā)生器、合成信號(hào)發(fā)生器、程控信號(hào)發(fā)生器等新種類,各類信號(hào)發(fā)生器的主要性能指標(biāo)也都有了

27、大幅度的提高,同時(shí)在簡化機(jī)械結(jié)構(gòu)、小型化、多功能等各方面也有了顯著的進(jìn)展[1]。</p><p>  在實(shí)際應(yīng)用中,低頻信號(hào)發(fā)生器用來產(chǎn)生1HZ一1MHZ的低頻信號(hào),這種信號(hào)發(fā)主器在電子線路與系統(tǒng)的設(shè)計(jì)、測試和維修中的應(yīng)用最為廣泛。</p><p>  本設(shè)計(jì)以LPC2138為控制芯片,探索研究了低頻信號(hào)發(fā)生器的原理和應(yīng)用,設(shè)計(jì)輸出頻率及幅度可調(diào),頻率范圍為1HZ~50KHZ的正弦波、方波

28、、三角波、調(diào)幅波、調(diào)頻波及其復(fù)合波信號(hào),具有信號(hào)頻率、波形、幅度變化容易,硬件簡單可靠等特點(diǎn)的多功能信號(hào)源。</p><p>  1 系統(tǒng)設(shè)計(jì)任務(wù)與要求</p><p><b>  1.1 任務(wù)</b></p><p>  設(shè)計(jì)一個(gè)多功能信號(hào)發(fā)生器</p><p><b>  1.2 要求</b>&

29、lt;/p><p>  (1)能夠產(chǎn)生正弦波、方波和三角波(頻率范圍1HZ~50KHZ)</p><p>  (2)能產(chǎn)生由以上波形整合成的復(fù)合波形</p><p> ?。ǎ常?shí)現(xiàn)波形間的切換</p><p><b>  2 方案論證及選擇</b></p><p>  2.1 信號(hào)產(chǎn)生部分</p

30、><p><b>  方案一:</b></p><p>  使用集成函數(shù)發(fā)生器芯片ICL8038。</p><p>  芯片ICL8038能輸出方波、三角波、正弦波和鋸齒波四種不同的波形,將他作為信號(hào)發(fā)生器。它是電壓控制頻率的集成芯片,失真度很低??奢斎氩煌耐獠侩妷簛韺?shí)現(xiàn)不同的頻率輸出。為了達(dá)到數(shù)控的目的,可用高精度DAC來輸出電壓以控制正弦波的

31、頻率。</p><p><b>  方案二:</b></p><p>  鎖相環(huán)頻率合成器(PLL)[2]</p><p>  鎖相環(huán)頻率合成器(PLL)是常用的頻率合成方法。鎖相環(huán)由參考信號(hào)源、鑒相器、低通濾波器、壓控振蕩器幾個(gè)部分組成。通過鑒相器獲得輸出的信號(hào)FO與輸入信號(hào)Fi的相位差,經(jīng)低通濾波器轉(zhuǎn)換為相應(yīng)的控制電壓,控制VCO輸出的信號(hào)

32、頻率,只有當(dāng)輸出信號(hào)與輸入信號(hào)的頻率于相位完全相等時(shí),鎖相環(huán)才達(dá)到穩(wěn)定。</p><p>  如果在環(huán)路中加上分頻系數(shù)可程控的分頻器,即可獲得頻率程控的信號(hào)。由于輸出信號(hào)的頻率穩(wěn)定度取決于參考振蕩器信號(hào)fi ,參考信號(hào)fi 由晶振分頻得到,晶振的穩(wěn)定度相當(dāng)高,因而該方案能獲得頻率穩(wěn)定的信號(hào)。一般來說PLL的頻率輸出范圍相當(dāng)大,足以實(shí)現(xiàn)1kHz-10MHZ的正弦輸出。如果fi=100Hz只要分頻系數(shù)足夠精細(xì)(能夠以

33、1步進(jìn)),頻率100Hz步進(jìn)就可以實(shí)現(xiàn)。</p><p><b>  方案三:</b></p><p>  直接數(shù)字頻率合成(DDS)[3]</p><p>  DDS是一種純數(shù)字化方法。它現(xiàn)將所需正弦波一個(gè)周期的離散樣點(diǎn)的幅值數(shù)字量存入ROM中,然后按一定的地址間隔(相位增量)讀出,并經(jīng)DA轉(zhuǎn)換器形成模擬正弦信號(hào),再經(jīng)低通濾波器得到質(zhì)量較好的

34、信號(hào)。</p><p><b>  方案四:</b></p><p>  基于計(jì)算的數(shù)字頻率合成[4]</p><p>  利用函數(shù)將波形的點(diǎn)數(shù)保存在芯片的RAM中,根據(jù)所要的波形的頻率計(jì)算出它的周期,經(jīng)計(jì)算得到在定時(shí)器定時(shí)時(shí)間固定的前提下產(chǎn)生一個(gè)完整的波形所需要的輸出的點(diǎn)數(shù),這樣數(shù)據(jù)指針可以根據(jù)點(diǎn)數(shù)的數(shù)量來進(jìn)行移動(dòng),得到頻率準(zhǔn)確、切換快速的信

35、號(hào)。</p><p>  方案一(VOC)不能實(shí)現(xiàn)穩(wěn)定頻率信號(hào)的輸出并且難于數(shù)字控制。并且電容、電阻參數(shù)隨溫度等其他因素的影響,頻率穩(wěn)定度以及電路的穩(wěn)定度都較低,實(shí)現(xiàn)也較復(fù)雜,不予采納。雖然ICL8038可很好的實(shí)現(xiàn)頻率輸出的控制,但查看ICL8038的設(shè)計(jì)資料[4]可知其頻率輸出范圍為0.01Hz~300kHz,不能達(dá)到題目的要求,故不予選用。PLL方案和DDS方案都能實(shí)現(xiàn)1kHz~10MHz的穩(wěn)定的信號(hào)輸出,

36、且能達(dá)到100Hz頻率步進(jìn),但是PLL的動(dòng)態(tài)特性卻很差,在頻率改變時(shí),環(huán)路從不穩(wěn)定到穩(wěn)定的過程有時(shí)間延遲。相比較而言,DDS的頻率輸出范圍一般低于PLL,且雜散也大于PLL方案,但DDS信號(hào)源具有輸出頻率穩(wěn)定度高、精度更高、分辨率更高且易于程控等優(yōu)點(diǎn),且頻率改變不存在失調(diào)過程,盡管有雜散干擾,只需在輸出級加濾波器仍可以得到質(zhì)量很好的波形。而方案四集中了上述三個(gè)方案的各個(gè)優(yōu)點(diǎn),因此采用方案四來實(shí)現(xiàn)波形信號(hào)的產(chǎn)生。</p>&

37、lt;p>  2.2 對幅度進(jìn)行調(diào)整</p><p><b>  方案一:</b></p><p>  用高速模擬乘法器實(shí)現(xiàn)</p><p>  采用AD835高速模擬乘法器,來實(shí)現(xiàn)模擬調(diào)制。模擬乘法器AD835的-3dB截止頻率為250MHz,能夠滿足題目的要求。但是AD835的差分輸入范圍僅為±1V,因此必須對輸入信號(hào)進(jìn)行預(yù)

38、處理,這樣在增加硬件的同時(shí),又加大了設(shè)計(jì)的難度。</p><p><b>  方案二:</b></p><p>  采用高速的D/A轉(zhuǎn)換器</p><p>  在LPC2138中集成著一個(gè)高速的D/A轉(zhuǎn)換器[5],我們可以直接在軟件中設(shè)置一個(gè)幅度的參數(shù)來改變輸出波形的幅度大小。</p><p>  綜上所述,采用方案(二

39、)雖然增加了軟件的難度,延遲了波形的輸出時(shí)間,但是可以不用外加硬件拓展,節(jié)省了成本。</p><p>  2.3 對頻率進(jìn)行調(diào)整</p><p><b>  方案一:</b></p><p>  通過在存儲(chǔ)芯片ROM中保存不同頻率信號(hào)的信號(hào)發(fā)生點(diǎn)數(shù),在頻率切換時(shí)調(diào)用ROM中所存儲(chǔ)的不同點(diǎn)數(shù)模塊來實(shí)現(xiàn)頻率的切換。</p><

40、p><b>  方案二:</b></p><p>  在存儲(chǔ)芯片RAM中保存由軟件實(shí)時(shí)產(chǎn)生的波形點(diǎn)數(shù),通過所取的點(diǎn)數(shù)的不同來決定發(fā)生的波形的頻率。</p><p>  由于設(shè)計(jì)中的信號(hào)要進(jìn)行不斷的改變,因此波形的數(shù)據(jù)不能存儲(chǔ)在ROM中,應(yīng)該存儲(chǔ)RAM中,因此采用方案二的設(shè)計(jì)方法。</p><p><b>  2.4 濾波電路&l

41、t;/b></p><p><b>  方案一:</b></p><p>  利用運(yùn)放芯片TL082構(gòu)成的有源二階巴爾沃基濾波器[6],它的頻率范圍可以達(dá)到1MHZ,遠(yuǎn)遠(yuǎn)高于我們所要的達(dá)到的最高頻率,而且可以同時(shí)提高輸出電壓的穩(wěn)定性即帶載能力。</p><p><b>  方案二:</b></p>&l

42、t;p>  采用硬件構(gòu)建的模擬濾波器,通常這種濾波電路主要采用無源元件R,L和C組成的低通濾波電路[6]。其優(yōu)點(diǎn)是具有不用電感,體積小,重量輕等優(yōu)點(diǎn);缺點(diǎn)是其集成運(yùn)放的帶寬有限,電路的工作頻率有限難以做得很高。</p><p>  由于所設(shè)計(jì)的信號(hào)源的頻率相對來說不是很高,采用RC濾波器已經(jīng)可以很好的完成設(shè)計(jì)的要求。因此采用方案二。</p><p><b>  3 系統(tǒng)設(shè)計(jì)

43、</b></p><p>  3.1 系統(tǒng)框圖(如圖3-1)</p><p>  圖3-1 系統(tǒng)方框圖</p><p><b>  3.2 各功能模塊</b></p><p>  3.2.1 波形產(chǎn)生電路</p><p>  通過軟件將波形數(shù)據(jù)存儲(chǔ)到RAM當(dāng)中去,再把這些數(shù)據(jù)輸送到

44、D/A轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換得到模擬波形。</p><p>  3.2.2 鍵盤模塊</p><p>  用LPC2138開發(fā)板上自身帶有的鍵盤得到鍵值,通過中斷服務(wù)程序?qū)㈡I盤信息傳給控制芯片。</p><p>  3.2.3 濾波器設(shè)計(jì)</p><p>  直接采用RC過程的簡單的濾波電路,此方法設(shè)計(jì)簡單,又完全滿足設(shè)計(jì)要求。 </p&g

45、t;<p>  3.2.4 顯示模塊</p><p>  波形直接在示波器上顯示,波形的中間調(diào)試參數(shù)在上位機(jī)EasyARM2131上顯示,這樣節(jié)省了外部顯示模塊的擴(kuò)展,使得硬件電路更加的簡便。</p><p>  3.3 各個(gè)功能塊的實(shí)現(xiàn)原理及分析</p><p>  3.3.1 正弦波的產(chǎn)生</p><p>  本設(shè)計(jì)中信

46、號(hào)的產(chǎn)生直接用LPC2138芯片上集成的D/A轉(zhuǎn)換器和軟件的結(jié)合來生成。波形的信號(hào)數(shù)據(jù)采用了函數(shù)計(jì)算的方法來取得:</p><p>  Y=sin(N)[7] (3-1)</p><p>  其中,N表示所要取得的點(diǎn)數(shù)的多少。在設(shè)計(jì)中我選擇N=1024,即一個(gè)完整的基本的正弦信號(hào)有1024個(gè)數(shù)據(jù)信號(hào)點(diǎn)組成。</p><p> 

47、 將數(shù)據(jù)存儲(chǔ)到控制芯片LPC2138的RAM當(dāng)中,根據(jù)所要的頻率來取得信號(hào)數(shù)據(jù)的多少,點(diǎn)數(shù)多少的計(jì)算如下:</p><p>  N=T/2t[7] (3-2)</p><p>  其中,N表示點(diǎn)數(shù),T表示所要產(chǎn)生的波形信號(hào)的周期,t表示定時(shí)器的時(shí)間長短.</p><p>  從RAM中 取得點(diǎn)數(shù)的間隔為:</p&g

48、t;<p>  M=1023/N[8] (3-3)</p><p>  其中M表示在RAM中的表格取得點(diǎn)數(shù)的間隔.根據(jù)不同的間隔的大小決定產(chǎn)生一個(gè)完整的波形信號(hào)所要的數(shù)據(jù)多少不同.</p><p>  設(shè)計(jì)中要求信號(hào)的最高產(chǎn)生的頻率為50KHZ, 根據(jù)奈奎斯特定理,采樣的頻率最少要為所要信號(hào)的頻率的兩倍,但是為了更好的保證信號(hào)的完整

49、輸出,我們至少要讓它采樣10個(gè)點(diǎn)才能輸出完整波形,就要求采樣的頻率為他的10倍即500KHZ,采樣時(shí)間的大小為2us,這剛好滿足了LPC2138控制芯片上的集成D/A轉(zhuǎn)換器最高轉(zhuǎn)換時(shí)間為1us的限制。</p><p>  3.3.2 三角波的產(chǎn)生</p><p>  在設(shè)計(jì)中,三角波的產(chǎn)生就直接利用定時(shí)器定時(shí)時(shí)間的長短來控制信號(hào)數(shù)據(jù)的輸出,信號(hào)數(shù)據(jù)從一個(gè)較低(或高)的位置開始按照一定的規(guī)

50、律步進(jìn)[9],當(dāng)其達(dá)到一個(gè)高度時(shí)再按照相同的步進(jìn)下降到原來的數(shù)據(jù)大小,如此反復(fù)的輸出就構(gòu)成了三角波模擬信號(hào)的輸出。</p><p>  3.3.3 方波的產(chǎn)生</p><p>  在設(shè)計(jì)中,方波的產(chǎn)生由大小不同的兩個(gè)信號(hào)數(shù)據(jù)交替輸出形成,每個(gè)信號(hào)數(shù)據(jù)輸出的時(shí)間長短根據(jù)所要點(diǎn)信號(hào)頻率來決定。</p><p>  3.3.4 復(fù)合波形的產(chǎn)生</p>&

51、lt;p>  復(fù)合波形由正弦波、方波和三角波合成。</p><p>  V∑(wt)=A*Vsin(wt)+B*Vpul(wt)+C*Vtri(wt)[10] (3-4)</p><p>  其中:V∑(wt)為復(fù)合波形函數(shù),Vsin(wt) 為正弦,Vpul(wt)為方波, Vtri(wt)三角波,A、B、C為他們在復(fù)合波形中所占的比率系數(shù),只要改變?nèi)齻€(gè)比例系

52、數(shù)就可以得到不同的復(fù)合波形。</p><p>  根據(jù)波形合成的知識(shí),要使多個(gè)波形合成必須保證子波形的頻率是一致的,因此,設(shè)計(jì)時(shí)三種波形的組成信號(hào)數(shù)據(jù)的多少是一樣的,這樣在定時(shí)時(shí)間一樣的情況下就保證了三個(gè)波形的頻率是一樣的。</p><p>  3.3.5 幅度的控制</p><p>  在設(shè)計(jì)中,為了能使波形在示波器中顯示,這樣就要設(shè)定好波形的幅度,在設(shè)計(jì)時(shí)我把

53、波形的幅度控制在1024之內(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ā)生改變。</p><p>  3.3.6 頻率的控制</p><p>  在輸出的信號(hào)數(shù)據(jù)的時(shí)間間隔一定時(shí),當(dāng)產(chǎn)生一個(gè)完整波形時(shí)所需要的點(diǎn)數(shù)發(fā)生變化時(shí)信號(hào)的周期就發(fā)生變化,

54、這樣它的頻率就相應(yīng)的變化。因此,在設(shè)計(jì)中, 通過固定定時(shí)器的定時(shí)長短,改變波形數(shù)據(jù)的點(diǎn)數(shù)多少就改變了信號(hào)的頻率。</p><p>  3.3.7 濾波器設(shè)計(jì)</p><p>  由于我所設(shè)計(jì)的信號(hào)源的輸出頻率還不是很高,所以可以用簡單的低通濾波器就可以完成濾波的功能,因此我選擇使用RC低通濾波器。參數(shù)為:R=100歐姆,C=0.1UF。</p><p><b

55、>  具體結(jié)構(gòu)如下:</b></p><p>  3.3.8 鍵盤模塊</p><p>  鍵盤是直接與ARM(LPC2138)芯片的P0口P0.16—P0.21連接,通過ARM芯片對P0.16—P0.21輸入數(shù)據(jù),0表示有效,1表示無效[11]。鍵1用來選擇輸出波形,鍵2用來選擇所要改變的參數(shù),鍵3和鍵4用來加/減鍵3所選的參數(shù)</p><p>

56、;<b>  4 軟件設(shè)計(jì)</b></p><p><b>  中斷0</b></p><p><b>  中斷1</b></p><p><b>  對波形進(jìn)行選擇</b></p><p>  5 系統(tǒng)測試與數(shù)據(jù)分析</p><p&g

57、t;<b>  5.1 測試工具</b></p><p>  雙蹤示波器 YB-4325(20MHZ)</p><p><b>  萬用表</b></p><p>  5.2 測試數(shù)據(jù)及表格</p><p>  5.2.1 頻率與間隔點(diǎn)數(shù)的計(jì)算</p><p>  由于正弦波

58、總的波形長度分為1024個(gè)分點(diǎn),即0~1023,因此在頻率為fKHz時(shí),點(diǎn)數(shù)n=1000/2/f,所以間隔=1023*n,具體如下:</p><p>  5.2.2 不同波的幅度與頻率的測試</p><p>  根據(jù)精度的計(jì)算方法可知,波形產(chǎn)生的精度=1/1023≈0.001,即偏差為±0.0005,這使產(chǎn)品產(chǎn)生的波形達(dá)到了很高的精度。</p><p>

59、<b>  5.3 調(diào)試結(jié)果圖</b></p><p>  5.3.1 三角波</p><p>  頻率=200HZ 幅度=2.4V</p><p>  5.3.2 正弦波</p><p>  頻率=40HZ 幅度=100MV</p><p><b>  方波</b&g

60、t;</p><p>  頻率=1000HZ 幅度=2V</p><p><b>  5.3.4合成波</b></p><p>  頻率=100HZ 幅度=0.8V</p><p><b>  6 結(jié)論</b></p><p>  本設(shè)計(jì)以LPC2138為核心很好的完

61、成了設(shè)計(jì)的要求,在設(shè)計(jì)中力求硬件電路的簡單,充分發(fā)揮軟件的編程的方便靈活的特點(diǎn),并最大限度挖掘嵌入式系統(tǒng)內(nèi)資源,來滿足系統(tǒng)設(shè)計(jì)要求。</p><p><b>  附錄:(程序)</b></p><p>  **********************************************************************************

62、************************************************************************************************</p><p>  #include "config.h"</p><p>  #include "math.h"</p><p> 

63、 #include "stdio.h"</p><p>  const uint32 LED1=( 1 << 18);// P0.7控制蜂鳴器,低電平蜂鳴(#DEFINE BEEP OX00000070)</p><p>  const uint32 LED2=( 1 << 19);</p><p>  const

64、uint32 LED3=( 1 << 20);</p><p>  const uint32 LED4=( 1 << 21);</p><p>  const uint32 LED5=( 1 << 22);</p><p>  const uint32 LED6=( 1 << 23);</p><p

65、>  const uint32 LED7=( 1 << 24);</p><p>  const uint32 LED8=( 1 << 25);</p><p>  #define BEEP 1<<7</p><p>  #define key1 1<<16</p><p>  

66、#define key2 1<<17</p><p>  #define key3 1<<18</p><p>  #define key4 1<<19</p><p>  #define key5 1<<20</p><p>  #define key6 1<<

67、21</p><p>  uint32 pinsave;</p><p>  #define pinvalue (0x3f<<16) //定義鍵盤</p><p>  uint16 delay;</p><p>  uint16 bo=0 ;</p><p>  uint16 canshu=0;&

68、lt;/p><p>  uint16 da;</p><p>  static uint16 l=0;</p><p>  uint16 k=0,b,c;</p><p>  uint16 zj_flag=0;</p><p>  uint16 table[1024];</p><p>  stat

69、ic uint16 i;</p><p>  static uint16 a=0;</p><p>  static uint16 hight=13,fc=5;</p><p>  #defineUART_BPS115200// 通訊波特率115200</p><p>  /*******************************

70、********************************************************/</p><p>  ** 函數(shù)名稱 :UART0_Init()</p><p>  ** 函數(shù)功能 :初始化串口0:波特率115200,8位數(shù)據(jù)位,1位停止位,無奇偶校驗(yàn)。</p><p>  ** 入口參數(shù) :無</p><p&g

71、t;  ** 出口參數(shù) :無</p><p>  /***************************************************************************************/</p><p>  void UART0_Init (void)</p><p><b>  {</b></p

72、><p>  uint16 Fdiv;</p><p>  U0LCR = 0x83;// DLAB = 1</p><p>  Fdiv = (Fpclk / 16) / UART_BPS;</p><p>  U0DLM = Fdiv / 256;</p><p>  U0DLL = Fdiv % 256;<

73、/p><p>  U0LCR = 0x03;</p><p><b>  }</b></p><p>  /***************************************************************************************/</p><p>  ** 函數(shù)名稱 :U

74、ART0_SendByte()</p><p>  ** 函數(shù)功能 :向串口發(fā)送字節(jié)數(shù)據(jù),并等待數(shù)據(jù)發(fā)送完畢。</p><p>  ** 入口參數(shù) :data要發(fā)送的數(shù)據(jù)</p><p>  ** 出口參數(shù) :無</p><p>  /****************************************************

75、***********************************/</p><p>  void UART0_SendByte (uint8 data)</p><p>  { // data=18;</p><p>  U0THR = data;</p><p>  while ((U0LSR & 0x40) == 0);

76、// 等待數(shù)據(jù)發(fā)送完畢</p><p><b>  }</b></p><p>  /***************************************************************************************/</p><p>  ** 函數(shù)名稱 :PC_DispChar()</p>

77、;<p>  ** 函數(shù)功能 :向PC機(jī)發(fā)送顯示字符。</p><p>  ** 入口參數(shù) :x顯示字符的橫坐標(biāo)</p><p>  ** y顯示字符的縱坐標(biāo)</p><p>  ** chr顯示的字符,不能為ff</p><p>  ** color顯示的狀態(tài),包括前景色、背景色、閃爍位。&

78、lt;/p><p>  **與DOS字符顯示一樣:0~3,前景色,4~6,背景色,7,閃爍位。</p><p>  ** 出口參數(shù) :無</p><p>  /***************************************************************************************/</p>

79、<p>  void PC_DispChar (uint8 x, uint8 y, uint8 chr, uint8 color)</p><p><b>  {</b></p><p>  UART0_SendByte(0xff);// 起始字符</p><p>  UART0_SendByte(x);</p>&l

80、t;p>  UART0_SendByte(y);</p><p>  UART0_SendByte(chr);</p><p>  UART0_SendByte(color);</p><p><b>  }</b></p><p>  /**************************************

81、************************************************/</p><p>  ** 函數(shù)名稱 :ISendStr()</p><p>  ** 函數(shù)功能 :向上位機(jī)發(fā)送字符串。</p><p>  ** 入口參數(shù) :x顯示字符的橫坐標(biāo)</p><p>  ** y顯示字符的縱坐標(biāo)<

82、;/p><p>  ** color顯示的狀態(tài),包括前景色、背景色、閃爍位。</p><p>  **與DOS字符顯示一樣:0~3,前景色,4~6,背景色,7,閃爍位。</p><p>  ** str要發(fā)送的字符串,以'\0'結(jié)束</p><p>  ** 出口參數(shù) :無</p>&

83、lt;p>  /**************************************************************************************/</p><p>  void ISendStr (uint8 x, uint8 y, uint8 color, char *str)</p><p><b>  {</b>

84、</p><p><b>  while (1)</b></p><p><b>  {</b></p><p>  if (*str == '\0')break;// 結(jié)束字符</p><p>  PC_DispChar(x++, y, *str++, color);</

85、p><p>  if (x >= 80)</p><p><b>  {</b></p><p><b>  x = 0;</b></p><p><b>  y++;</b></p><p><b>  }</b></p&

86、gt;<p><b>  }</b></p><p><b>  }</b></p><p>  /****************************************************/</p><p><b>  **正弦</b></p><p&

87、gt;  /****************************************************/</p><p>  void sin_wave(void)</p><p>  { if(a == 1024)</p><p><b>  a=0;</b></p><p>  DACR=(((tab

88、le[a++])*hight/26)<<6); </p><p><b>  }</b></p><p><b>  /*</b></p><p>  /**********************************************************/</p><p&g

89、t;<b>  **三角波</b></p><p>  /**********************************************************/</p><p>  void trip_wave(void)</p><p><b>  { </b></p><p>

90、  if (zj_flag==0)</p><p><b>  {</b></p><p><b>  b+=2;</b></p><p>  if (b>1020)</p><p><b>  {</b></p><p>  zj_flag=1;

91、</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  b-=2;</b&g

92、t;</p><p><b>  if (b<10)</b></p><p><b>  {</b></p><p><b>  b=10;</b></p><p>  zj_flag=0;</p><p><b>  }</b&g

93、t;</p><p><b>  }</b></p><p>  DACR=((b*hight/26)<<6);</p><p><b>  }</b></p><p>  /***************************************************/ <

94、;/p><p><b>  **方波</b></p><p>  /***************************************************/ </p><p>  void fang_wave(void)</p><p><b>  { </b></p>

95、<p><b>  k++; </b></p><p><b>  if(k<512)</b></p><p>  c=1024*hight/26;</p><p><b>  else</b></p><p><b>  c=10;</b&

96、gt;</p><p>  if(k>1024)</p><p><b>  k=1;</b></p><p>  DACR=(c<<6);</p><p><b>  }</b></p><p>  /***************************

97、***********************/ </p><p><b>  **合成波</b></p><p>  /**************************************************/ </p><p>  void hecheng(void)</p><p>  { if(l&

98、lt;512)</p><p><b>  { b=b+1;</b></p><p>  da=(table[a++])/20+256+(b)/10;}</p><p><b>  else</b></p><p><b>  {b=b-1;</b></p>&l

99、t;p>  da=(table[a++])/20+1+(b)/10;}</p><p>  DACR=(da<<6);</p><p><b>  l++;</b></p><p>  if(l>1024)</p><p><b>  l=0;</b></p>

100、<p>  if(a == 1024)</p><p><b>  a=0;</b></p><p>  T0IR = 0x01;</p><p>  VICVectAddr = 0x00;</p><p><b>  }</b></p><p>  /******

101、*********************************************************************************/</p><p>  ** 函數(shù)名稱 :IRQ_Timer0()</p><p>  ** 函數(shù)功能 :定時(shí)器0中斷服務(wù)程序,取反LED9控制口。</p><p>  ** 入口參數(shù) :無</p&g

102、t;<p>  ** 出口參數(shù) :無</p><p>  /***************************************************************************************/</p><p>  void __irq IRQ_Timer0(void)</p><p><b>  

103、{</b></p><p>  pinsave=(IO0PIN&pinvalue);</p><p>  if(pinsave!=pinvalue)</p><p><b>  { </b></p><p>  while(delay++==2)</p><p>  {

104、 delay=0;</p><p>  if(pinsave == (IO0PIN&pinvalue))</p><p>  switch(pinsave)</p><p><b>  {</b></p><p>  case 0x003e0000:</p><p><b> 

105、 { </b></p><p><b>  bo=bo+1;</b></p><p><b>  if(bo>4)</b></p><p><b>  bo=1; }</b></p><p><b>  break;</b></p&

106、gt;<p>  case 0x003d0000:</p><p>  {canshu+=1;</p><p>  if(canshu>2)</p><p><b>  canshu=1;</b></p><p><b>  }</b></p><p>&

107、lt;b>  break;</b></p><p>  case 0x003b0000:</p><p>  {switch(canshu)</p><p><b>  {case 1:</b></p><p>  {if(hight<26)</p><p>  hight

108、=hight+1;}</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  {if(fc<100)</p><p><b>  fc=fc+2;}</b></p><p><

109、b>  break;}</b></p><p><b>  }</b></p><p><b>  break; </b></p><p>  case 0x00370000:</p><p>  {switch(canshu)</p><p><b&

110、gt;  {case 1:</b></p><p>  {if(hight<26)</p><p>  hight=hight-1;}</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  

111、{if(fc<100)</p><p><b>  fc=fc-2;}</b></p><p><b>  break;}</b></p><p><b>  }</b></p><p><b>  break; }</b></p>&

112、lt;p><b>  }</b></p><p>  } </p><p>  T0IR=0x01;</p><p>  VICVectAddr=0x00;}</p><p>  /********************************************

113、*******************************************/</p><p>  ** 函數(shù)名稱 :Timer1_CapInt()</p><p>  ** 函數(shù)功能 :定時(shí)器1捕獲中斷服務(wù)程序</p><p>  ** 入口參數(shù) :無</p><p>  ** 出口參數(shù) :無</p><p&g

114、t;  /***************************************************************************************/</p><p>  void __irq IRQ_Timer1(void)</p><p><b>  {</b></p><p>  switch(bo)

115、</p><p><b>  { case 1:</b></p><p>  sin_wave(); </p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  t

116、rip_wave();</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  fang_wave(); </p><p><b>  break;</b></p><p

117、><b>  case 4:</b></p><p>  hecheng();</p><p><b>  break;</b></p><p><b>  default:</b></p><p><b>  break;}</b></p&g

118、t;<p>  T1IR=0x01;</p><p>  VICVectAddr=0x00;</p><p><b>  }</b></p><p>  /***************************************************************************************/

119、** 函數(shù)名稱 :main()</p><p>  ** 函數(shù)功能 :用P0.7控制BEEP,讓BEEP鳴叫。</p><p>  ** 調(diào)試說明 :需將跳線JP5和LED短接。</p><p>  /***********************************************************************************

120、****/</p><p>  int main (void)</p><p>  { char str[30];</p><p>  const double T = (2 * 3.1415926)/1024; //把一個(gè)周期分成2048份 </p><p>  for(i=0;i<1024;i++) </p&

121、gt;<p><b>  {</b></p><p>  table[i] = 512*(1+sin(T*i));</p><p><b>  }</b></p><p>  PINSEL0 = 0x00000000; // 設(shè)置管腳連接GPIO,管腳功能選折寄存器全部為0時(shí)選為GPIO功能</p&g

122、t;<p>  PINSEL1=(2<<18);</p><p>  PINSEL2=PINSEL2&(~0x08);</p><p>  DACR=(0<<16); //最大定時(shí)1US,電流700UA</p><p>  IRQEnable();</p>&l

123、t;p><b>  T0TC=0;</b></p><p><b>  T0PR=0;</b></p><p>  T0MCR=0x03;</p><p>  T0MR0=Fpclk/2;</p><p>  T0TCR = 0x03; // 啟動(dòng)并復(fù)位T0TC</p

124、><p>  T0TCR=0x01;</p><p><b>  T1TC=0;</b></p><p><b>  T1PR=0;</b></p><p>  T1MCR=0x03;</p><p>  T1MR0=Fpclk/205000*(fc/100);

125、 //把一秒分成2048份,再根據(jù)要求的頻率來進(jìn)行設(shè)置t</p><p>  T1TCR = 0x03; // 啟動(dòng)并復(fù)位T1TC</p><p>  T1TCR=0x01;</p><p>  VICIntSelect=0x00;</p><p>  VICVectCntl0=0x20|0x04;</p>

126、<p>  VICVectAddr0=(uint32)IRQ_Timer0;</p><p>  VICVectCntl1 = 0x20 | 0x05; // 設(shè)置定時(shí)器1中斷通道分配最高優(yōu)先級</p><p>  VICVectAddr1 = (uint32)IRQ_Timer1;</p><p>  VICIntEnable

溫馨提示

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

評論

0/150

提交評論