DSP課設——正弦波發生器_第1頁
DSP課設——正弦波發生器_第2頁
DSP課設——正弦波發生器_第3頁
DSP課設——正弦波發生器_第4頁
DSP課設——正弦波發生器_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 正弦波發生器摘要數字信號處理(Digital Signal Processing,簡稱DSP)是一門涉及許多學科而又廣泛應用于許多領域的新興學科。20世紀60年代以來,隨著計算機和信息技術的飛速發展,數字信號處理技術應運而生并得到迅速的發展。數字信號處理是一種通過使用數學技巧執行轉換或提取信息,來處理現實信號的方法,這些信號由數字序列表示。數字信號處理器(DSP)是在模擬信號變成數字信號以后進行高速實時處理的專用處理器。DSP 芯片以其獨特的結構和快速實現各種數字信號處理算法的突出優點,發展十分迅速。本文中提出的基于DSP技術設計的正弦波信號發生器已被廣泛地應用于通信、儀器儀表和工業控制等領

2、域的信號處理系統中。在本文中簡要的概括了一種基于TMS320C5402實現正弦信號發生器的設計原理與方法,介紹了所設計的正弦信號發生器硬件電路結構和軟件程序流程圖。結合DSP硬件特性,通過使用泰勒級數展開法得到設定參數的正弦波形輸出,達到設計目的。該信號發生器彌補了通常信號發生器模式固定,波形不可編程的缺點,其具有實時性強,波形精度高,可方便調節頻率和幅度、穩定性好等優點。關鍵字:DSP;TMS320C5402;信號發生器;正弦信號; 目 錄1 設計目的及要求11.1 設計目的11.2 設計內容及要求12設計方案及原理22.1總體方案22.2設計原理23系統硬件設計33.1系統硬件框圖33.2

3、 TMS320C5402簡介43.3 D/A轉換部分設計54系統軟件設計及調試64.1變頻調幅的方法64.2程序設計64.3程序編寫84.4 CCS簡介144.5運行步驟及結果155 設計心得19參考文獻20附錄 設計程序211 設計目的及要求1.1 設計目的DSP課程設計是對數字信號處理、DSP原理及應用等課程的較全面練習和訓練,是實踐教學中的一個重要環節。通過本次課程設計,綜合運用數字信號處理、DSP技術課程以及其他有關先修課程的理論和生產實際知識去分析和解決具體問題,并使所學知識得到進一步鞏固、深化和發展。初步培養學生對工程設計的獨立工作能力,掌握電子系統設計的一般方法。通過課程設計完成

4、基本技能的訓練,如查閱設計資料和手冊、程序的設計、調試等,提高學生分析問題、解決問題的能力。主要是:1. 掌握DSP程序設計的方法以及軟件的調試等; 2. 掌握CCS軟件的使用;3. 學會用CCS仿真模擬DSP芯片,通過CCS軟件平臺上應用C54X匯編語言來實現正弦信號發生裝置;4. 掌握控制TLC320AIC23的輸出信號,使該信號通過濾波放大后輸出,并在點陣液晶中大致顯示出幅頻圖的基本方法和步驟。1.2 設計內容及要求本題目DSP通過計算法或者查表的方法,得到正弦信號,然后將數據傳遞給TLC320AIC23,控制TLC320AIC23的輸出信號,該信號通過濾波放大后輸出,并在點陣液晶中大致

5、顯示出幅頻圖。1. DSP與TLC320AIC23接口電路的原理圖繪制;2. DSP控制TLC320AIC23的程序編寫與調試;3. TLC320AIC23進行D/A的轉換,實現信號的輸出;4. 控制點陣液晶,實現繪圖功能,將幅頻圖顯示出來;5. 按要求編寫課程設計報告書,正確、完整的闡述設計和實驗結果。6. 在報告中繪制程序的流程圖,并文字說明。2設計方案及原理2.1總體方案總體思想是:(1)基于DSP的特點,本設計采用TMS320C5402這款DSP芯片作為正弦信號發生器的核心控制芯片。(2)用泰勒級數展開法實現正弦波信號。(3)利用點陣的繪圖功能將正弦波的波形顯示出來。2.2設計原理泰勒

6、級數展開法是一種有效的方法,與查表法和查表結合插值法相比,該方法需要的存儲單元很少,而且精度更高。我們知道一個角度為x的正弦和余弦函數,都可以展開為泰勒級數,且其前五項可以看為: (1) (2)程序的設計思想是這樣的,正弦波的波形可以看為由無數點組成,這些點與軸的每一個角度值相對應,那么我們可以利用DSP處理器處理大量重復計算的優勢來計算,軸每一點對應的y軸的值(在x軸取360個點來進行逼近),由于程序的編制采用小數形式,其弧度大于1的正弦值得不到,這就對正弦波的產生造成了障礙。可由于正弦波的特殊的對稱形式給程序的編制找到了出口。的弧度為0.7854 EPROM PAGE 0 .data :

7、EPROM PAGE 0 STACK : SPRAM PAGE 1 sin_vars : DARAM1 PAGE 1 coef_s : DARAM1 PAGE 1 cos_vars : DARAM2 PAGE 1 coef_c : DARAM2 PAGE 1 sin_x : align(512) DARAM3 PAGE 1 .vectors : VECS PAGE 0在實際應用中,正弦波是通過D/A口輸出的。選擇每個正弦周期中的樣點數、改變每個樣點之間的延遲,就能夠產生不同頻率的波形,也可以利用軟件改變波形的幅度以及起始相位。4.4 CCS簡介本實驗是基于CCS開發環境的。CCS是TI公司推出

8、的為開發TMS320系列DSP軟件的集成開發環境,是目前使用最為廣泛的DSP開發軟件之一。它提供了環境配置、源文件編譯、編譯連接、程序調試、跟蹤分析等環節,并把軟、硬件開發工具集成在一起,使程序的編寫、匯編、程序的軟硬件仿真和調試等開發工作在統一的環境中進行,從而加速軟件開發進程。CCS有兩種工作模式:(1)硬件在線編程模式:可以實時運行在DSP芯片上,與硬件開發板相結合在線編程和調試應用程序;(2)軟件仿真器模式:可以脫離DSP芯片,在PC機上模擬DSP的指令集和工作機制,主要用于前期算法實現和調試。本次設計采取硬件在線編程模式。如圖4.3所示圖4.3 DSP試驗箱4.5運行步驟及結果1 運

9、行步驟本次課程設計采用CCS中的C5000。第一步,軟件中芯片的選擇,如圖所示,選擇C5416 XDS510 Emulator。圖4.4 set up CCS界面 第二步,仿真器C5416 XDS510 Emulator的設置圖4.5 仿真器XDS510的設置第三步,設置完成后,退出set up C5000后可自動打開CCS5000,選擇Project下的new,新建工程,如圖4.5所示;將DspregDefine.h文件添加到工程sinlcd_54下的Include文件中,rts.lib文件添加到Libraries文件中,將程序的命令鏈接文件(.CMD),中斷向量表(VECTORS.ASM)

10、添加到Source文件下,如圖4.6所示。 圖4.6 新建工程圖4.7 添加文件到工程第四步 對編寫完成的程序進行編譯,結果如圖4.8所示圖4.8 編譯成功第五步 匯編無誤后就可將程序下載到實驗箱中,點擊如圖所示命令運.out文件,再點擊run即可在實驗箱中得到結果。圖4.9下載程序到實驗箱2仿真結果及分析圖4.10仿真結果在CCS集成環境中實現正弦波能夠起到防止干擾的作用,同時也大大地減小了波形的線性失真。同時我們也能從中看出CCS能夠精確地對各個角度進行計算得出相應的正弦值,幅度和頻率易于調節,波形也較為穩定,抗干擾能力較強。最重要的是這種設計方案簡單可行,新穎實用,具有很高的實踐和推廣價

11、值。分析:通過不斷的發現錯誤、改正錯誤和調試,最終得到了所希望的圖象,即正弦波信號。5 設計心得為期兩周的DSP課程設計已進入尾聲了,在這兩周的時間里,我認認真真地復習了DSP的相關理論知識。由于基礎知識學得不是很扎實,正好利用課程設計這個機會,對沒有掌握好的知識進行一個補習。在剛開始的時候,我首先從最簡單的程序開始著手,首先看懂程序是什么意思,在嘗試在這個基礎上對程序進行修改 ,看程序是否出錯,或者說實驗的結果會有什么樣的改變。用這種方法是自己盡快的熟悉這個系統的編程的方式。本次課程設計中遇到一些課堂中從未有過的問題,通過網絡查找和同學交流,大大促進了設計進程。并在過程中進一步提高自身的創作

12、、創新水平,扎實基礎,擴展所學。并且此次課程設計,基于課程理論知識和網上資料,使我對數字信號處理課程有了更深一步的了解和掌握,對利用CCS軟件編程的數字信號處理方法有了進一步的了解。在理論課的基礎上進行實驗實習,是對本門課程的深入學習和掌握,在以后的工作學習中,數字信號的處理都是采用計算機仿真的方法進行測試,因此,掌握基于計算機的數字信號處理方法對以后的工作和學習有很大的幫助。這樣一個課程設計對我們的發展有著極大的幫助!由于基礎知識不夠扎實,在本次課程設計的過程中,我經常遇到各種難題,比如說程序看不懂,調試時顯示結果與預期不一致等等。而每當我遇到困難的時候,老師總會給予我耐心的教導,幫助我發現

13、問題,糾正錯誤;同學也會很熱情的幫助我修改和完善設計方案。在這樣一個良好的環境下,我順利地完成了本次DSP課程設計,讓我發現了自己所學知識的盲點和漏洞,提升了我的動手能力,通過實驗我基本了解了DSP應用系統開發方法和設計過程,掌握了匯編源程序的編輯、匯編和鏈接過程,熟悉了CCS集成開發環境,CCS的安裝及設置,CCS集成開發環境,CCS的基本使用,調試應用程序。我成功通過CCS軟件應用C54X匯編語言實現了正弦信號發生裝置,這次實驗使我能夠更真實地體會到DSP的功能和用途。特在此對給予我幫助的老師和同學們表示衷心的感謝!參考文獻 1 鄒彥. DSP原理及應用M. 北京:電子工業出版社,2005

14、,1. 2 戴明楨.TMS320C54xDSP結構.原理及應用M.北京航空航天大學出版 3 胡圣堯. DSP原理及應用M.東南大學出版社,2008.7. 4 清源科技.TMS320C54xDSP應用程序設計教程M.機械工業出版社,2004,1 5 清源科技.TMS320C54x硬件開發教程M.機械工業出版社,2003,1.附錄 設計程序主程序清單:.title sin.asm ;為匯編文件取名為“sin.asm”.mmregs ;定義存儲器映像寄存器.def _c_int00.ref sinx,d_xs,d_sinx,cosx,d_xc,d_cosx;定義標號sin_x: .usect sin

15、_x,360 ;為sin_x保留360個存儲空間STACK: .usect STACK,10 ;為堆棧保留10個存儲空間k_theta .set 286 ;theta=pi/360(0.5deg)PA0 .set 0_c_int00 .text ;定義文本程序代碼段STM #STACK+10,SP ;設置堆棧指針STM k_theta,AR0 ;AR0-K_theta(increment)STM 0,AR1 ;(AR1)=X(rad)STM #sin_x,AR6 ;AR6- - sin(x)STM #90,BRC ;form sin0(deg.)sin90(deg);重復執行塊語句(下條語句開

16、始至loop1-1 )91次RPTB loop1-1 LDM AR1,ALD #d_xs,DP ;DPd_xsSTL A,d_xs ;(A)低16位d_xsSTL A,d_xc ;(A)低16位d_xcCALL sinx ;調用sinx程序CALL cosx ;調用conx程序LD #d_sinx,DP ;DP d_sinxLD d_sinx,16,A ;A=sin(x)MPYA d_cosx ;B= sin(x)*cos(x)STH B,1,*AR6+ ;AR6- - 2*sin(x)*cos(x) MAR *AR1+0 ;修改輔助寄存器AR1loop1: STM #sin_x+89,AR7

17、 ;sin91(deg.)- -sin179(deg.) STM #88,BRC ;重復執行下條指令至loop2-1 RPTB loop2-1 ;處90次 LD *AR7-,A ;(AR7) A,然后AR7減去1 STL A,*AR6+ ;(A) 低16位AR6loop2: STM #179,BRC ;sin180(deg.)- -sin359(deg.);(BRC)=179,重復執行180次 STM #sin_x,AR7 ;AR7指向sin_x首地址 RPTB loop3-1 ; LD *AR7+,A ;(AR7) A,然后AR7加1 NEG A ;累加器變負 STL A,*AR6+ ;A低

18、16位AR6loop3: STM #sin_x,AR6 ;generate sin wave AR6指向sin_x STM #1,AR0 ;AR 01 STM #360,BK ;BK360loop4: PORTW *AR6+0%,PA0 ;PA0=*AR6+0%,向PA0輸出數據 B loop4 ;sinx: .def d_xs,d_sinx ;定義標號d_xs,d_sinx .data ;定義數據代碼段table_s .word 01c7h ;c1=1/(8*9) .word 030bh ;c1=1/(6*7) .word 0666h ;c1=1/(4*5) .word 1556h ;c1=

19、1/(2*3)d_coef_s .usect coef_s,4 ;為coef_s保留4個存儲空間d_xs .usect sin_vars,1 ;為d_xs中sin_vars保留1個存儲空間d_squr_xs .usect sin_vars,1 ;為d_squr_xs中sin_vars保留1個存儲空間d_temp_s .usect sin_vars,1 ;為d_temp_s中sin_vars保留1個存儲空間d_sinx .usect sin_vars,1 ;為d_sinx中sin_vars保留1個存儲空間c_l_s .usect sin_vars,1 ;為d_xs中sin_vars保留1個存儲空

20、間 .text ;定義代碼開始段 SSBX FRCT ;設置FRCT=1以解決冗余符號位 STM #d_coef_s,AR5 ;AR5指向d_coef_s首地址 RPT #3 ;重復下條指令4次 MVPD #table_s,*AR5+ ;table_s中的數復制到AR5指向的單元 STM #d_coef_s,AR3 ;AR3指向d_coef_s首地址 STM #d_xs,AR2 ;AR2指向d_xs首地址 STM #c_l_s,AR4 ;AR4指向c_l_s首地址 ST #7FFFh,c_l_s ;7FFFh c_l_s SQUR *AR2+,A ;AR2指向累加器A中的數值求其平方 ST A

21、,*AR2 ;(A)左移16位AR2 |LD *AR4,B ;(AR4)左移16位B MASR *AR2+,*AR3+,B,A ;從累加器A中減去(AR2)*(AR3) MPYA A ;操作數與累加器A中高位相乘 STH A,*AR2 ;(A)高16位AR2 MASR *AR2-,*AR3+,B,A ;從累加器A中減去(AR2)*(AR3) MPYA *AR2+ ;AR2指向的數與累加器A的高16位相乘 ST B,*AR2 ;(B)左移16位AR2 |LD *AR4,B ;(AR4)左移16位B MASR *AR2-,*AR3+,B,A ;從累加器A中減去(AR2)*(AR3) MPYA *A

22、R2+ ;與累加器A中高16位相乘 ST B,*AR2 ;(B)左移16位AR2 |LD *AR4,B ;(AR4)左移16位B MASR *AR2-,*AR3+,B,A ;從累加器A中減去(AR2)*(AR3) MPYA d_xs ;d_xs指向的操作數與累加器A中高16位相乘 STH B,d_sinx ;(B)高16位d_sinx RET ;返回cosx: .def d_xc,d_cosx ;定義標號d_xc,d_cosxd_coef_c .usect coef_c,4 ;為coef_c保留4個存儲空間 .data ;定義數據代碼段table_c .word 0249h ;c1=1/(7*

23、8) .word 0444h ;c2=1/(6*5) .word 0aabh ;c3=1/(3*4) .word 4000h ;c4=1/2d_xc .usect cos_vars,1 ;為d_xc中cos_vars保存1個存儲單元d_squr_xc .usect cos_vars,1 ;為d_squr_xc中cos_vars保存1個存儲單元d_temp_c .usect cos_vars,1 ;為d_temp_c中cos_vars保存1個存儲單元d_cosx .usect cos_vars,1 ;為d_cosx中cos_vars保存1個存儲單元c_l_c .usect cos_vars,1 ;為c_l_c中cos_vars保存1個存儲單元 .text ;定義文本代碼段 SSBX FRCT ;FRCT=1以清除冗余符號位 STM #d_coef_c,AR5 ;AR5指向d_coef_c首地址 RPT #3 ;重復下條指令4次 MVPD #table_c,*AR5+ ;把table_c中的數復制到中AR5 STM #d_coef_c,AR3 ;AR3指向d_coef_c首地址 STM #d_xc,AR2 ;AR2 指向d_xc首地址 ST

溫馨提示

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

評論

0/150

提交評論