版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> DSP課程設(shè)計(jì)</b></p><p> 設(shè)計(jì)題目:正弦信號發(fā)生器的設(shè)計(jì)</p><p> 學(xué)院: 信息工程 </p><p> 班級: 通信110 </p><p>
2、 姓名: </p><p> 學(xué)號: </p><p> 同組人: </p><p> 指導(dǎo)老師: </p&g
3、t;<p> 實(shí)驗(yàn)地點(diǎn): 中區(qū)圖書館起點(diǎn)機(jī)房 </p><p> 時間: 2013 年 12 月 23 日</p><p><b> 設(shè)計(jì)題目</b></p><p><b> 正弦信號發(fā)生器</b></p><
4、;p><b> 設(shè)計(jì)目的</b></p><p> 通過實(shí)驗(yàn)掌握DSP的軟件開發(fā)過程</p><p> 學(xué)會運(yùn)用匯編語言進(jìn)行程序設(shè)計(jì),在此集成開發(fā)環(huán)境下完成工程項(xiàng)目創(chuàng)建, 程序編寫,編譯,鏈接,調(diào)試以及數(shù)據(jù)的分析。</p><p> 學(xué)會用CCS(Code Composer
5、160;Studio)仿真模擬DSP芯片,通過CCS軟件平臺上應(yīng)用C54X匯編語言來實(shí)現(xiàn)正弦信號發(fā)生裝置。 </p><p><b> 設(shè)計(jì)內(nèi)容</b></p><p> 編寫一個產(chǎn)生正弦波信號的程序,在CCS軟件下進(jìn)行模擬運(yùn)行,觀察輸出結(jié)果</p><p> 設(shè)計(jì)原理 本實(shí)驗(yàn)產(chǎn)生正弦波的方法是泰勒級數(shù)展開法。泰勒級數(shù)展開法需要的
6、存儲單元少,具有穩(wěn)定性好,算法簡單,易于編程等優(yōu)點(diǎn),而且展開的級數(shù)越多,失真度就越小。求一個角度的正弦值取泰勒級數(shù)的前5項(xiàng),得近似計(jì)算式: </p><p><b> 總體方案設(shè)計(jì)</b></p><p> 本實(shí)驗(yàn)是基于CCS開發(fā)環(huán)境的。CCS是TI公司推出的為開發(fā)TMS320系列DSP軟件的集成開發(fā)環(huán)境,是目前使用最為廣泛的DSP開發(fā)軟件之一。它提供了環(huán)境配置、
7、源文件編譯、編譯連接、程序調(diào)試、跟蹤分析等環(huán)節(jié),并把軟、硬件開發(fā)工具集成在一起,使程序的編寫、匯編、程序的軟硬件仿真和調(diào)試等開發(fā)工作在統(tǒng)一的環(huán)境中進(jìn)行,從而加速軟件開發(fā)進(jìn)程。通過CCS軟件平臺上應(yīng)用C54X匯編語言來實(shí)現(xiàn)正弦信號發(fā)生裝置。 總體思想是:正弦波的波形可以看作由無數(shù)點(diǎn)組成,這些點(diǎn)與x軸的每一個角度值相對應(yīng),可以利用DSP處理器處理大量重復(fù)計(jì)算的優(yōu)勢來計(jì)算x軸每一點(diǎn)對應(yīng)的y的值(在x軸取N個點(diǎn)進(jìn)行逼近)。整個系統(tǒng)軟件
8、由主程序和基于泰勒展開法的SIN子程序組成,相應(yīng)的軟件流程圖如圖。</p><p><b> 設(shè)計(jì)內(nèi)容</b></p><p><b> 1、設(shè)置</b></p><p> 在Family下選擇C55xx,將看到所有C55xx的仿真驅(qū)動,包括軟件仿真和硬件仿真;</p><p> 在Plat
9、form下選擇Simulator,在Available Factory Boards中只顯示軟件仿真驅(qū)動,選中相應(yīng)的驅(qū)動;</p><p> 雙擊C55xx Rev4.0 CPU Functional Simulator,可以在My System下看到所加入的驅(qū)動;</p><p> 點(diǎn)擊Save & Quit,將保存設(shè)置退出Setup CCStudio v3.1并啟動運(yùn)行CC
10、Studio。</p><p> 2、編寫匯編源程序sin。</p><p> 3.、建立匯編源程序</p><p> 在CCS環(huán)境下,點(diǎn)擊file/new/source file菜單命令,打開一個空白文檔,將匯編程序輸入。</p><p> 單擊file/save菜單命令,在D:\program files\ti\myproject
11、s下保存文件名為sin,并選擇保存類型為*.asm。</p><p> 4、建立鏈接命令文件。</p><p> 5、創(chuàng)建新的工程文件</p><p> 啟動CCS,在Project菜單中選擇New項(xiàng),在Project中輸入denglin,CCS將創(chuàng)建一個名為denglin.pjt的工程。 </p><p> 6、將文件添加到工程中&
12、lt;/p><p> 在工程中添加源文件,執(zhí)行菜單project/add files to project,把sin文件添加到工程中。</p><p><b> 7、生成和運(yùn)行程序</b></p><p> (1)選擇菜單命令Project→Rebuild All,對工程重新編譯、匯編和鏈接,主窗口下方的信息窗口將顯示build進(jìn)行匯編、編譯
13、和鏈接的相關(guān)信息。</p><p> 選擇菜單命令File→Load Program,在當(dāng)前目錄的Debug目錄下選擇sin并打開,將Build生成的程序加載到DSP中。 </p><p> (3)選擇菜單命令Debug→Run或在Debug工具欄上單擊Run按鈕,運(yùn)行該程序。 </p><p><b> 8、觀察運(yùn)行結(jié)果</b><
14、/p><p> 點(diǎn)擊view/gragh菜單命令觀看圖像</p><p><b> 主要參數(shù)</b></p><p><b> 源程序</b></p><p><b> 匯編源程序sin</b></p><p><b> .mmregs&
15、lt;/b></p><p> .def start</p><p> .def d_xs,d_sinx,d_xc,d_cosx,sinx,cosx</p><p> sin_x: .usect "sin_x",360</p><p> STACK: .usect "
16、STACK",10H</p><p> k_theta .set 286 ;theta=pi/360(0.5deg)</p><p><b> start:</b></p><p><b> .text</b></p><p> STM #S
17、TACK+10H,SP</p><p> STM k_theta,AR0</p><p> STM 0,AR1</p><p> STM #sin_x,AR6</p><p> STM #90,BRC</p><p> RPTB loop1-1</p><p> L
18、DM AR1,A</p><p> LD #d_xs,DP</p><p> STL A,@d_xs</p><p> STL A,@d_xc</p><p> CALL sinx ;d_sinx=sin(x)</p><p> CALL cosx
19、 ;d_cosx=cos(x)</p><p> LD #d_sinx,DP</p><p> LD @d_sinx,16,A ;A=sin(x)</p><p> MPYA @d_cosx ;B=sin(x)*cos(x)</p><p> STH B,1,*AR6+
20、 ;AR6----2*sin(x)</p><p> MAR *AR1+0</p><p> loop1: STM #sin_x+89, AR7 ;sin91(deg.)-sin179(deg.)</p><p> STM #88,BRC</p><p> RPTB loop2-1</p>
21、<p> LD *AR7-,A</p><p> STL A,*AR6+</p><p> loop2: STM #179,BRC ;sin180(deg.)-sin359(deg.)</p><p> STM #sin_x,AR7</p><p> RPTB loop3-1&l
22、t;/p><p> LD *AR7+,A</p><p><b> NEG A</b></p><p> STL A,*AR6+</p><p> loop3: STM #sin_x,AR6 ;generate sin wave</p><p> STM
23、 #1,AR0</p><p> STM #360,BK</p><p> B loop3</p><p><b> sinx:</b></p><p> .def d_xs,d_sinx</p><p><b> .data</b></p&g
24、t;<p> table_s .word 01C7H ;C1=1/(8*9)</p><p> .word 030BH ;C2=1/(6*7)</p><p> .word 0666H ;C3=1/(4*5)</p><p> .word 1556H ;C4=
25、1/(2*3)</p><p> d_coef_s .usect "coef_s",4</p><p> d_xs .usect "sin_vars",1</p><p> d_squr_xs .usect "sin_vars",1</p><p&g
26、t; d_temp_s .usect "sin_vars",1</p><p> d_sinx .usect "sin_vars",1</p><p> d_l_s .usect "sin_vars",1</p><p><b> .text</
27、b></p><p> SSBX FRCT</p><p> STM #d_coef_s,AR5 ;move coeffs table_s</p><p><b> RPT #3</b></p><p> MVPD #table_s,*AR5+</p><
28、;p> STM #d_coef_s,AR3</p><p> STM #d_xs,AR2</p><p> STM #d_l_s,AR4</p><p> ST #7FFFH,d_l_s</p><p> SQUR *AR2+,A ;A=x^2</p><
29、p> ST A,*AR2 ;(AR2)=x^2</p><p> ||LD *AR4,B ;B=1</p><p> MASR *AR2+,*AR3+,B,A ;A=1-x^2/72,T=x^2</p><p> MPYA A
30、 ;A=T*A=x^2(1-x^2/72)</p><p> STH A,*AR2 ;(d_temp)=x^2(1-x^2/72)</p><p> MASR *AR2-,*AR3+,B,A ;A=1-x^2/42(1-x^2/72);T=x^2(1-x^2/72)</p><p> MPYA
31、 *AR2+ ;B=x^2(1-x^2/42(1-x^2/72))</p><p> ST B,*AR2 ;(d_temp)=x^2(1-x^2/42(1-x^2/72))</p><p> ||LD *AR4,B ;B=1</p><p> M
32、ASR *AR2-,*AR3+,B,A ;A=1-x^2/20(1-x^2/42(1-x^2/72))</p><p> MPYA *AR2+ ;B=x^2(1-x^2/20(1-x^2/42(1-x^2/72)))</p><p> ST B,*AR2 ;(d_temp)=B</p
33、><p> ||LD *AR4,B ;B=1</p><p> MASR *AR2-,*AR3+,B,A ;A=1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72)))</p><p> MPYA d_xs ;B=x(1-x^2/6(1-x^2/20(
34、1-x^2/42(1-x^2/72))))</p><p> STH B,d_sinx ;sin(theta)</p><p><b> RET</b></p><p> cosx: </p><p> .def d_xc,d_cosx</p>
35、<p> d_coef_c .usect "coef_c",4</p><p><b> .data</b></p><p> table_c .word 0249H ;C1=1/(7*8)</p><p> .word 0444H ;C2=1/(5*
36、6)</p><p> .word 0AABH ;C3=1/(3*4)</p><p> .word 4000H ;C4=1/2</p><p> d_xc .usect "cos_vars",1</p><p> d_squr_xc .usect &q
37、uot;cos_vars",1</p><p> d_temp_c .usect "cos_vars",1</p><p> d_cosx .usect "cos_vars",1</p><p> c_l_c .usect "cos_vars",1<
38、/p><p><b> .text</b></p><p> SSBX FRCT</p><p> STM #d_coef_c,AR5 ;move coeffs table_c</p><p><b> RPT #3</b></p><p> M
39、VPD #table_c,*AR5+</p><p> STM #d_coef_c,AR3</p><p> STM #d_xc,AR2</p><p> STM #c_l_c,AR4</p><p> ST #7FFFH,c_l_c</p><p> SQUR *AR2+,
40、A ;A=x^2</p><p> ST A,*AR2 ;(AR2)=x^2</p><p> ||LD *AR4,B ;B=1</p><p> MASR *AR2+,*AR3+,B,A ;A=1-x^2/56,T=x^2</p>
41、;<p> MPYA A ;A=T*A=x^2(1-x^2/56)</p><p> STH A,*AR2 ;(d_temp)=x^2(1-x^2/56)</p><p> MASR *AR2-,*AR3+,B,A ;A=1-x^2/30(1-x^2/56); T=x^
42、2(1-x^2/56)</p><p> MPYA *AR2+ ;B=x^2(1-x^2/30(1-x^2/56))</p><p> ST B,*AR2 ;(d_temp)=x^2(1-x^2/30(1-x^2/56))</p><p> ||LD *AR4,B
43、 ;B=1</p><p> MASR *AR2-,*AR3+,B,A ;A=1-x^2/12(1-x^2/30(1-x^2/56))</p><p> SFTA A,-1,A ;-1/2</p><p><b> NEG A</b></p><
44、p> MPYA *AR2+ ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))</p><p> MAR *AR2+</p><p><b> RETD</b></p><p> ADD *AR4,16,B ;B=-x^2/2(1-x
45、^2/12(1-x^2/30(1-x^2/56)))</p><p> STH B,*AR2 ;cos(theta)</p><p><b> RET</b></p><p><b> .end</b></p><p><b> 鏈接命令文件&l
46、t;/b></p><p><b> MEMORY</b></p><p><b> {</b></p><p><b> PAGE 0:</b></p><p> EPROM: org=0E000H, len=1000H</p><p>
47、; VECS: org=0FF80H, len=0080H</p><p><b> PAGE 1:</b></p><p> SPRAM: org=0060H, len=0020H</p><p> DARAM1: org=0080H, len=0010H</p><p> DARAM2:
48、org=0090H, len=0010H</p><p> DARAM3: org=0200H, len=0200H</p><p><b> }</b></p><p><b> SECTIONS</b></p><p><b> {</b></p>
49、<p> .text :> EPROM PAGE 0</p><p> .data :> EPROM PAGE 0</p><p> STACK :> SPRAM PAGE 1</p><p> sin_vars :> DARAM1 PAGE 1</p
50、><p> coef_s :> DARAM1 PAGE 1</p><p> cos_vars :> DARAM2 PAGE 1</p><p> coef_c :> DARAM2 PAGE 1</p><p> sin_x : align(512) {} >
51、; DARAM3 PAGE 1</p><p> .vectors :>VECS PAGE 0</p><p><b> }</b></p><p><b> 實(shí)驗(yàn)結(jié)果及分析</b></p><p> 結(jié)果成功生成了正弦波圖像,表明改程序能通過TMS320C54
52、x產(chǎn)生正弦信號</p><p><b> 設(shè)計(jì)總結(jié)</b></p><p> 這次實(shí)驗(yàn)把平時書本上生硬的文字變成了活生生的圖像,使我對這門學(xué)科的基本知識、理論解起來更加方便直觀和深刻。通過實(shí)驗(yàn)我基本了解了DSP應(yīng)用系統(tǒng)開發(fā)方法和設(shè)計(jì)過程,掌握了匯編源程序的編輯、匯編和鏈接過程,熟悉了CCS集成開發(fā)環(huán)境,CCS的安裝及設(shè)置,CCS集成開發(fā)環(huán)境,CCS的基本使用,調(diào)試
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- dsp課程設(shè)計(jì)--正弦信號發(fā)生器的設(shè)計(jì)
- dsp課程設(shè)計(jì)--正弦信號發(fā)生器的設(shè)計(jì)
- dsp課程設(shè)計(jì)--正弦信號發(fā)生器的設(shè)計(jì)
- dsp課程設(shè)計(jì)---正弦波信號發(fā)生器
- dsp課程設(shè)計(jì)---正弦波信號發(fā)生器報(bào)告
- 正弦波信號發(fā)生器課程設(shè)計(jì)
- dsp課程設(shè)計(jì)——信號發(fā)生器(方波)
- 基于dsp正弦波發(fā)生器課程設(shè)計(jì)
- eda課程設(shè)計(jì)——基于dds的正弦信號發(fā)生器設(shè)計(jì)
- 幅值可調(diào)的正弦信號發(fā)生器 課程設(shè)計(jì)
- 高壓正弦發(fā)生器課程設(shè)計(jì)
- 幅值可調(diào)的正弦信號發(fā)生器課程設(shè)計(jì)
- eda課程設(shè)計(jì)報(bào)告---正弦函數(shù)信號發(fā)生器的設(shè)計(jì)
- dsp課程設(shè)計(jì)--多波形信號發(fā)生器
- 幅值可調(diào)的正弦信號發(fā)生器 課程設(shè)計(jì)論文
- 基于dsp技術(shù)的正弦信號發(fā)生課程設(shè)計(jì)
- 信號發(fā)生器課程設(shè)計(jì)----函數(shù)信號發(fā)生器
- 正弦波發(fā)生器課程設(shè)計(jì)
- 信號發(fā)生器課程設(shè)計(jì)報(bào)告--函數(shù)信號發(fā)生器的設(shè)計(jì)
- 信號發(fā)生器課程設(shè)計(jì)---函數(shù)發(fā)生器的設(shè)計(jì)
評論
0/150
提交評論