dsp原理與應(yīng)用課程設(shè)計_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  XXXX大 學(xué)</b></p><p><b>  課程設(shè)計說明書</b></p><p>  名稱 DSP原理與應(yīng)用課程設(shè)計       </p><p>  2011年 12月26日至2011年12月31日共1周</p><p>  院  系

2、 </p><p>  班 級 </p><p>  姓 名 </p><p>  系 主 任 </p><p>  教研室主任 </p><p>  指導(dǎo)教師 </p>&l

3、t;p><b>  目錄</b></p><p><b>  目錄2</b></p><p><b>  第一章緒論3</b></p><p>  1.1數(shù)字信號處理概述3</p><p>  1.2DSP芯片的特點4</p><p>

4、;  1.2.1、哈佛結(jié)構(gòu)4</p><p>  1.2.2 多總線結(jié)構(gòu)5</p><p>  1.2.3流水線技術(shù)5</p><p>  1.2.4、多處理單元6</p><p>  1.2.5、特殊的DSP指令6</p><p>  1.2.6、指令周期短7</p><p>  

5、1.2.7、運算精度高7</p><p>  1.2.8、硬件配置強(qiáng)7</p><p>  1.2.9、省電管理和低功耗7</p><p>  1.3、TMS320C5X的主要特性7</p><p>  1.4、用DSP實現(xiàn)正余弦函數(shù)的基本方法8</p><p>  第二章 CCS集成開發(fā)環(huán)境10</

6、p><p>  2.1 CCS開發(fā)應(yīng)用程序的一般步驟10</p><p>  2.2、建立工程文件11</p><p>  2.2.1、工程文件的建立、打開和關(guān)閉11</p><p>  2.2.2、在工程文件中添加貨刪除文件11</p><p>  2.2.3、編輯源文件12</p><p&

7、gt;  2.2.4、工程的構(gòu)建12</p><p><b>  2.3、調(diào)試12</b></p><p>  2.3.1、載入可執(zhí)行程序12</p><p>  2.3.2、使用反匯編工具12</p><p>  2.3.3、斷點13</p><p>  2.3.4、查看編輯內(nèi)存14

8、</p><p>  第三章 用CCS環(huán)境編程,調(diào)試實現(xiàn)正弦函數(shù)信號15</p><p>  3.1產(chǎn)生正弦波的原理15</p><p><b>  3.2調(diào)試15</b></p><p>  3.2.1 編寫匯編源程序sin.asm和復(fù)位向量文件sin_v.asm15</p><p> 

9、 3.2.2 編寫鏈接命令文件sin.cmd18</p><p>  3.2.3具體調(diào)試過程18</p><p>  3.3調(diào)試結(jié)果20</p><p>  第四章 設(shè)計心得23</p><p><b>  參考文獻(xiàn)24</b></p><p><b>  緒論</b&g

10、t;</p><p><b>  數(shù)字信號處理概述</b></p><p>  數(shù)字信號處理(Digital Signal Processing,簡稱DSP)是一門涉及許多學(xué)科而又廣泛應(yīng)用于許多領(lǐng)域的新興學(xué)科。20世紀(jì)60年代以來,隨著計算機(jī)和信息技術(shù)的飛速發(fā)展,數(shù)字信號處理技術(shù)應(yīng)運而生并得到迅速的發(fā)展。在過去的二十多年時間里,數(shù)字信號處理已經(jīng)在通

11、信等領(lǐng)域得到極為廣泛的應(yīng)用。 數(shù)字信號處理是利用計算機(jī)或?qū)S锰幚碓O(shè)備,以數(shù)字形式對信號進(jìn)行采集、變換、濾波、估值、增強(qiáng)、壓縮、識別等處理,以得到符合人們需要的信號形式。數(shù)字信號處理是圍繞著數(shù)字信號處理的理論、實現(xiàn)和應(yīng)用等幾個方面發(fā)展起來的。數(shù)字信號處理在理論上的發(fā)展推動了數(shù)字信號處理應(yīng)用的發(fā)展。反過來,數(shù)字信號處理的應(yīng)用又促進(jìn)了數(shù)字信號處理理論的提高。而數(shù)字信號處理的實現(xiàn)則是理論和應(yīng)用之間的橋梁。</p><

12、p>  圖1.1是數(shù)字信號處理系統(tǒng)的簡化框圖。此系統(tǒng)先將模擬信號轉(zhuǎn)換為數(shù)字信號,經(jīng)數(shù)字信號處理后,再轉(zhuǎn)換為模擬信號輸出。其中抗混疊濾波器的作用,是將輸入信號x(t)中高于折疊頻率(其值等于采樣頻率的一半)的分量濾除,以防止信號頻譜的混疊。隨后,信號經(jīng)采樣和A/D轉(zhuǎn)換后,變成數(shù)字信號x(n)。數(shù)字信號處理器對x(n)進(jìn)行處理,得到輸出數(shù)字信號y(n),經(jīng)D/A轉(zhuǎn)換器變成模擬信號。此信號經(jīng)低通濾波器,濾除不需要的高頻分量,最后輸出平滑

13、的模擬信號y(t)。</p><p><b>  圖1.1</b></p><p>  雖然數(shù)字信號處理的理論發(fā)展迅速,但在20世紀(jì)80年代以前,由于實現(xiàn)方法的限制,數(shù)字信號處理的理論還得不到廣泛的應(yīng)用。直到20世紀(jì)70年代末80年代初世界上第一片單片可編程DSP芯片的誕生,才將理論研究結(jié)果廣泛應(yīng)用到低成本的實際系統(tǒng)中,并且推動了新的理論和應(yīng)用領(lǐng)域的發(fā)展??梢院敛豢鋸?/p>

14、地說,DSP芯片的誕生及發(fā)展對近20年來通信、計算機(jī)、控制等領(lǐng)域的技術(shù)發(fā)展起到十分重要的作用。</p><p><b>  DSP芯片的特點</b></p><p>  DSP芯片,也稱數(shù)字信號處理器, 是一種具有特殊結(jié)構(gòu)的微處理器。DSP芯片的內(nèi)部采用程序和數(shù)據(jù)分開的哈佛結(jié)構(gòu),具有專門的硬件乘法器,廣泛采用流水線操作,提供特殊的DSP指令,可以用來快速的實現(xiàn)各種數(shù)字

15、信號處理算法。它是一種特別適合于進(jìn)行數(shù)字信號處理運算的微處理器具,其主機(jī)應(yīng)用是實時快速地實現(xiàn)各種數(shù)字信號處理算法。根據(jù)數(shù)字信號處理的要求,DSP芯片一般具有如下主要特點:</p><p>  1.2.1、哈佛結(jié)構(gòu)</p><p>  DSP芯片普遍采用數(shù)據(jù)總線和程序總線分離的哈佛結(jié)構(gòu)或改進(jìn)的哈佛結(jié)構(gòu),比傳統(tǒng)處理器的馮·諾伊曼結(jié)構(gòu)有更快的指令執(zhí)行速度。 </p>&

16、lt;p>  (1) 馮·諾伊曼(Von Neuman)結(jié)構(gòu) </p><p>  該結(jié)構(gòu)采用單存儲空間,即程序指令和數(shù)據(jù)共用一個存儲空間,使用單一的地址和數(shù)據(jù)總線,取指令和取操作數(shù)都是通過一條總線分時進(jìn)行。</p><p>  當(dāng)進(jìn)行高速運算時,不但不能同時進(jìn)行取指令和取操作數(shù),而且還會造成數(shù)據(jù)傳輸通道的瓶頸現(xiàn)象,其工作速度較慢。</p>&

17、lt;p> ?。?)哈佛(Harvard)結(jié)構(gòu) </p><p>  該結(jié)構(gòu)采用雙存儲空間,程序存儲器和數(shù)據(jù)存儲器分開,有各自獨立的程序總線和數(shù)據(jù)總線,可獨立編址和獨立訪問,可對程序和數(shù)據(jù)進(jìn)行獨立傳輸,使取指令操作、指令執(zhí)行操作、數(shù)據(jù)吞吐并行完成,大大地提高了數(shù)據(jù)處理能力和指令的執(zhí)行速度,非常適合于實時的數(shù)字信號處理。微處理器的哈佛結(jié)構(gòu)如圖1.2.2所示。 </p><p>  1.

18、2.2 多總線結(jié)構(gòu) </p><p>  DSP芯片都采用多總線結(jié)構(gòu),可同時進(jìn)行取指令和多個數(shù)據(jù)存取操作,并由輔助寄存器自動增減地址進(jìn)行尋址,使CPU在一個機(jī)器周期內(nèi)可多次對程序空間和數(shù)據(jù)空間進(jìn)行訪問,大大地提高了DSP的運行速度。如:TMS320C54x系列內(nèi)部有P、C、D、E等4組總線,每組總線中都有地址總線和數(shù)據(jù)總線,這樣在一個機(jī)器周期內(nèi)可以完成如下操作: </p><p> ?。?

19、)從程序存儲器中取一條指令;</p><p> ?。?)從數(shù)據(jù)存儲器中讀兩個操作數(shù);</p><p> ?。?)向數(shù)據(jù)存儲器寫一個操作數(shù)。</p><p>  1.2.3流水線技術(shù) </p><p>  DSP執(zhí)行一條之靈,需要通過取指、譯碼、取操作數(shù)和執(zhí)行等幾個階段。在DSP芯片中,采用流水線結(jié)構(gòu),在程序運行過程中這幾個階段是重疊的,如圖1

20、.2.3所示。這樣,在執(zhí)行本條指令的同時,還一次完成了后面三條指令的取操作數(shù)、譯碼和取指,大大增強(qiáng)了DSP的處理能力。利用這種流水線結(jié)構(gòu),加上執(zhí)行重復(fù)操作,就能保證在單指令周期內(nèi)完成數(shù)字信號處理中用得最多的乘法 - 累加運算。如:</p><p>  1.2.4、多處理單元</p><p>  DSP內(nèi)部一般包括有多個處理單元,如算術(shù)邏輯運算單元(ALU)、輔助寄存器運算單元(ARAU)、

21、累加器(ACC)以及硬件乘法器(MUL)等。他們可以在一個指令周期內(nèi)同時進(jìn)行運算。DSP芯片在進(jìn)行連續(xù)的乘加運算時,每一次乘加運算都是單周期的。這種多處理單元結(jié)構(gòu),特別適用于FIT和IIR濾波器。此外,許多DSP芯片的多處理單元結(jié)構(gòu)還可以將一些特殊的算法,如FFT的位碼倒置尋址和取模運算等,在芯片內(nèi)部用硬件實現(xiàn)以提高運行速度。</p><p>  1.2.5、特殊的DSP指令</p><p&g

22、t;  為了滿足數(shù)字信號處理的需要,在DSP的指令系統(tǒng)中,設(shè)計了一些完成特殊功能的指令。</p><p>  如:TMS320C54x中的FIRS和LMS指令,專門用于完成系數(shù)對稱的FIR濾波器和LMS算法。 </p><p>  1.2.6、指令周期短</p><p>  早期的DSP指令周期約200ns,采用4umNMOS制造工藝,其運算速度為5MIPS(每秒執(zhí)

23、行500萬條指令)。隨著集成電路工藝的發(fā)展,DSP廣泛采用亞微米CMOS制造工藝,其運算速度越來越快,以TMS320C54X為例,其運行速度可大100MIPS以上。</p><p>  1.2.7、運算精度高</p><p>  早期的DSP的字長為8位,后來逐步提高到16位、24位、32位。為防止運算過程中溢出,有的累加器達(dá)到40位。此外,一批浮點DSP,例如TMS320C3X、TMS3

24、20C4X等,提供了更大的動態(tài)范圍。</p><p>  1.2.8、硬件配置強(qiáng)</p><p>  新一代的DSP芯片具有較強(qiáng)的接口功能,除了具有串行口、定時器、主機(jī)接口(HPI)、DMA控制器、軟件可編程等待狀態(tài)發(fā)生器等片內(nèi)外設(shè)外,還配有中斷處理器、PLL、片內(nèi)存儲器、測試接口等單元電路,可以方便地構(gòu)成一個嵌入式自封閉控制的處理系統(tǒng)。</p><p>  1.2

25、.9、省電管理和低功耗 </p><p>  DSP功耗一般為0.5~4W,若采用低功耗技術(shù)可使功耗降到0.25W,可用電池供電,適用于便攜式數(shù)字終端設(shè)備。 </p><p>  1.3、TMS320C5X的主要特性</p><p>  TMS320C54X是為實現(xiàn)低功耗、高性能而專門設(shè)計的定點DSP芯片,其主要應(yīng)用是無線通信系統(tǒng)等。該芯片的內(nèi)部結(jié)構(gòu)與TMS320C

26、5X不同,因而指令系統(tǒng)與TMS320C5X和TMS320C2X等是互不兼容的。 </p><p>  TMS320C54X的主要特點包括:</p><p>  (1) 運算速度快。指令周期為25/20/15/12.5/10ns,運算能力為40/50/66/80/100 MIPS;</p><p>  (2) 優(yōu)化的CPU結(jié)構(gòu)。內(nèi)部有1個40位的算術(shù)邏輯單元,2個40

27、位的累加器,2個40位加法器,1個17×17的乘法器和1個40位的桶形移位器。有4條內(nèi)部總線和2個地址產(chǎn)生器。此外,內(nèi)部還集成了維特比加速器,用于提高維特比編譯碼的速度。先進(jìn)的DSP結(jié)構(gòu)可高效地實現(xiàn)無線通信系統(tǒng)中的各種功能,如用TMS320C54X實現(xiàn)全速率的GSM 需12.7 MIPS,實現(xiàn)半速率GSM 需26.2 MIPS,而實現(xiàn)全速率GSM 語音編碼器僅需2.3 MIPS,實現(xiàn)IS-54/136 VSELP語音編碼僅需1

28、2.8 MIPS;</p><p>  (3) 低功耗方式。TMS320C54X可以在3.3V或2.7V電壓下工作,三個低功耗方式(IDLE1、IDLE2和IDLE3)可以節(jié)省DSP的功耗,TMS320C54X特別適合于無線移動設(shè)備。用TMS320C54X實現(xiàn)IS54/136 VSELP語音編碼僅需31.1mW,實現(xiàn)GSM 語音編碼器僅需5.6mW;</p><p>  (4) 智能外設(shè)。

29、除了標(biāo)準(zhǔn)的串行口和時分復(fù)用(TDM)串行口外,TMS320C54X還提供了自動緩沖串行口BSP(auto-Buffered Serial Port)和與外部處理器通信的HPI(Host Port Interface)接口。BSP可提供2K字?jǐn)?shù)據(jù)緩沖的讀寫能力,從而降低處理器的額外開銷,指令周期為20ns時,BSP的最大數(shù)據(jù)吞吐量為50M bit/s,即使在IDLE方式下,BSP也可以全速工作。HPI可以與外部標(biāo)準(zhǔn)的微處理器直接接口。&l

30、t;/p><p>  1.4、用DSP實現(xiàn)正余弦函數(shù)的基本方法</p><p>  在通信、儀器和控制等領(lǐng)域的信號處理系統(tǒng)中,可能會用到正弦發(fā)生器。一般,產(chǎn)生正弦波的方法有兩種:</p><p> ?。?)查表法。此中方法用于對精度要求不是很高的場合。如果要求精度高,表就很大,相應(yīng)的存儲器容量也要增大。</p><p> ?。?)臺勞級數(shù)展開法。

31、這是一種更為有效的方法。與查表法相比,需要的存儲單元很少,而且精度很高。</p><p>  一個角度θ的正弦和余弦函數(shù),都可以展開成臺勞級數(shù),取其前5項進(jìn)行近似:</p><p>  Sinθ=x-x3/3!+x5 /5!-x7/7!+x9/9!=x(1-x2/2*3(1-x2/4*5(1-x2/6*7(1-x2 /8*9)))</p><p>  Cosθ=1-

32、x2 /2!+x 4/4!-x 6/6!+x8 /8!=1-x2 /2!(1-x2 /3*4(1-x2 /5*6(1-x 2/7*8)))</p><p>  上式中的X為θ的弧度值。</p><p>  也可以有遞推公式求正弦和余弦值:</p><p>  Sin nθ=2cosθ*sin(n-1)θ-sin(n-2)θ</p><p> 

33、 Cos nθ=2cosθ*cos(n-1)θ-cos(n-2)θ</p><p>  利用遞推公式計算正弦和余弦值需已知Cosθ和正、余弦的前兩個值。用這種方法,求少數(shù)點還可以,如產(chǎn)生連續(xù)正弦、余弦波,則積累誤差太大,不可取。</p><p>  第二章 CCS集成開發(fā)環(huán)境</p><p>  2.1 CCS開發(fā)應(yīng)用程序的一般步驟</p><p

34、>  利用CCS集成開發(fā)環(huán)境,用戶可以在一個開發(fā)環(huán)境下完成工程定義、程序編輯、編譯鏈接、調(diào)試和數(shù)據(jù)分析等工作環(huán)節(jié).使用CCS開發(fā)應(yīng)用程序的一般步驟為:</p><p>  (1)打開或創(chuàng)建一個工程文件.工程文件中包括源程序(C或匯編)、目標(biāo)文件、庫文件、連接命令文件和包含文件.</p><p>  (2)編輯各類文件.如頭文件(.h文件),命令文件(.cmd文件)和源程序(.c,.a

35、sm文件)等.可以使用一般的編輯軟件或CCS集成編輯環(huán)境進(jìn)行各類文件編輯.</p><p>  (3)對工程進(jìn)行編譯.如果有語法錯誤,將在構(gòu)建(Build)窗口中顯示出來.用戶可以根據(jù)顯示的信息定位錯誤位置,更改錯誤.</p><p> ?。?)排除程序的語法錯誤后,用戶可以對計算結(jié)果/輸出數(shù)據(jù)進(jìn)行分析,評估算法性能.CCS提供了探針、圖形顯示、性能測試等工具來分析數(shù)據(jù)、評估性能</

36、p><p>  圖2.1為一個典型的CCS集成環(huán)境窗口示例.整個窗口由主菜單、工具條、工程窗口、編輯窗口、圖形顯示窗口、內(nèi)存單元顯示窗口和寄存器顯示窗口等構(gòu)成.</p><p><b>  圖2.1</b></p><p>  2.2、建立工程文件</p><p>  與Visual Basic、Visual C以及Delp

37、hi等集成開發(fā)工具類似,CCS是采用工程(Project)來集中管理應(yīng)用程序文檔的。一個工程包括匯編語言/C語言源程序、庫文件、鏈接命令文件和頭文件等。如圖2.2為工程文件名為sin的工程窗口。</p><p><b>  圖2.2</b></p><p>  2.2.1、工程文件的建立、打開和關(guān)閉</p><p>  CCS集成開發(fā)環(huán)境要求,

38、對于每一個DSP開發(fā)應(yīng)用項目,都要創(chuàng)建一個后綴名為.pjt的工程文件,以便于對開發(fā)應(yīng)用項目的設(shè)計文檔進(jìn)行管理。選擇Project→New,在彈出的對話框中鍵入新的工程文件名,如sin.pjt確認(rèn)后一個新的工程文件sin.pjt便建立了,并顯示在工程文件窗口中。如要打開已有的工程文件,只要選擇Project→Open,在彈出的對話框中選擇需要的工程文件就可以了。若要關(guān)閉工程文件,只要在工程文件窗口中選擇要關(guān)閉的工程文件,再右擊后選擇Clo

39、se即可關(guān)閉。</p><p>  2.2.2、在工程文件中添加貨刪除文件</p><p>  工程文件創(chuàng)建后,就可以利用一下任何一種操作方法往工程文件中添加文件:</p><p> ?。?)在菜單欄中選擇Project→Add Files To Project。</p><p> ?。?)在工程窗口中右擊工程文件,在彈出的快捷菜單中選擇Ad

40、d Files To Project。</p><p>  若要移除某個文件,在彈出的快捷菜單中選擇Remove from Project即可刪除文件。</p><p>  2.2.3、編輯源文件</p><p>  CCS集成編輯環(huán)境可以編輯任何文本文件(對C程序和匯編程序),可以打開多個窗口或?qū)ν晃募蜷_多個窗口,進(jìn)行多窗口顯示.點擊主萊單命令File→

41、 New → Source File彈出編輯窗口進(jìn)行編輯.</p><p>  2.2.4、工程的構(gòu)建</p><p>  如上述工程文件已經(jīng)建立,工程所需的文本文件(如.asm .c .cmd等文件)也已經(jīng)編輯好,并且已經(jīng)添加到工程文件中,即可進(jìn)行工程構(gòu)建了。</p><p><b>  2.3、調(diào)試</b></p><

42、p>  工程構(gòu)建完成后,即可進(jìn)入程序的調(diào)試階段。</p><p>  2.3.1、載入可執(zhí)行程序</p><p>  命令File → Load Program載入編譯鏈接好的可執(zhí)行程序.用戶也可以修改”Program Load”屬性,使得在構(gòu)建工程后自動裝入可執(zhí)行程序.設(shè)置方法為選擇命令Options→Program Load.</p><p>  2.3.

43、2、使用反匯編工具</p><p>  在某些時候(例如調(diào)試C語言關(guān)鍵代碼),用戶可能需要深入到匯編指令一級.此時可以利用CCS的反匯編工具.用戶的執(zhí)行程序(不論是C程序或是匯編程序) 載入到目標(biāo)板或仿真器時,CCS調(diào)試器自動打開一個反匯編窗口.如圖2.3所示.</p><p><b>  圖2.3</b></p><p><b> 

44、 2.3.3、斷點</b></p><p>  設(shè)置斷點是調(diào)試程序的必要工具。在調(diào)試過程中,可以通過設(shè)置斷點來暫停程序運行,以便于檢查、分析程序的運行情況,觀察和修改中間變量、寄存器貨存儲單元的數(shù)值。CCS提供了兩類斷點:軟件斷點和硬件斷點。</p><p>  斷點設(shè)置,有兩種方法可以增加一條斷點。</p><p> ?。?)使用斷點對話框</p

45、><p>  選擇命令Debug →Breakpoints將彈出對話框如圖2-7所示。</p><p>  在”Breakpoint Type”欄中可以選擇”無條件斷點(Break at Location)”或”有條件斷點(Break at Location if expression is TRUE)”.在”Location”欄中填寫需要中斷的指令地址.用戶可以觀察反匯編窗口,確定指令所處地

46、址.對C代碼,由于一條C語句可能對應(yīng)若干條匯編指令,難以用唯一地址確定位置.為此可以采用”filename line lineNumber”的形式定位源程序中的一條C語句.斷點類型和位置設(shè)置完成后,依次單擊”Add”和”O(jiān)K”按鈕即可.斷點設(shè)置成功后,該語句條用彩色光條顯示。</p><p> ?。?)采用工程工具條</p><p>  將光標(biāo)移到需要設(shè)置斷點的語句上,點擊工程工具條上的”

47、設(shè)置斷點”按鈕.則該語句位置一斷點,默認(rèn)情況下為”無條件斷點”.用戶也可以使用斷點對話框修改斷點屬性,例如將”無條件斷點”改為”有條件斷點”。</p><p><b>  (3)斷點的刪除</b></p><p>  在圖2-7所示斷點對話框中,單擊”Breakpoint”列表中的一個斷點,然后點擊”Delete”按鈕可刪除此斷點.點擊”Delete all”按鈕或工

48、程工具條上的”取消所有斷點”按鈕,將刪除所有斷點。</p><p>  (4)允許和禁止斷點</p><p>  在圖2.4所示斷點對話框中,單擊”Enable All”或”Disable All”將允許或禁止所有斷點.”允許”狀態(tài)下,斷點位置前的復(fù)選框有”對勾”符號.注意只有當(dāng)設(shè)一斷點,并使其”允許”時,斷點才發(fā)揮作用。</p><p><b>  圖2

49、.4</b></p><p>  2.3.4、查看編輯內(nèi)存</p><p>  CCS允許顯示特定區(qū)域的內(nèi)存單元數(shù)據(jù).方法為選擇View Memory或單擊調(diào)試工具條上的”顯示內(nèi)存數(shù)據(jù)”按鈕.在彈出對話框中輸入內(nèi)存變量名(或?qū)?yīng)地址)、顯示方式即可顯示指定地址的內(nèi)存單元.為改變內(nèi)存窗口顯示屬性(如數(shù)椐顯示格式,是否對照顯示等),可以在內(nèi)存顯示窗口中單擊右鍵,從關(guān)聯(lián)萊單中選

50、Properties即彈出選項對話框.如圖2.5所示:</p><p><b>  圖2.5</b></p><p>  第三章 用CCS環(huán)境編程,調(diào)試實現(xiàn)正弦函數(shù)信號</p><p>  3.1產(chǎn)生正弦波的原理</p><p>  在通信、儀器和控制等領(lǐng)域的信號處理系統(tǒng)中,可能會用到正弦發(fā)生器。一般,產(chǎn)生正弦波的方法有

51、兩種:</p><p>  1、查表法。此中方法用于對精度要求不是很高的場合。如果要求精度高,表就很大,相應(yīng)的存儲器容量也要增大。</p><p>  2、臺勞級數(shù)展開法。這是一種更為有效的方法。與查表法相比,需要的存儲單元很少,而且精度很高。</p><p>  一個角度θ的正弦和余弦函數(shù),都可以展開成臺勞級數(shù),取其前5項進(jìn)行近似:</p><

52、p>  Sinθ=x-x3/3!+x5 /5!-x7/7!+x9/9!=x(1-x2/2*3(1-x2/4*5(1-x2/6*7(1-x2 /8*9)))</p><p>  Cosθ=1-x2 /2!+x 4/4!-x 6/6!+x8 /8!=1-x2 /2!(1-x2 /3*4(1-x2 /5*6(1-x 2/7*8)))</p><p>  上式中的X為θ的弧度值。</p

53、><p>  也可以有遞推公式求正弦和余弦值:</p><p>  Sin nθ=2cosθ*sin(n-1)θ-sin(n-2)θ</p><p>  Cos nθ=2cosθ*cos(n-1)θ-cos(n-2)θ</p><p>  利用遞推公式計算正弦和余弦值需已知Cosθ和正、余弦的前兩個值。用這種方法,求少數(shù)點還可以,如產(chǎn)生連續(xù)正弦、

54、余弦波,則積累誤差太大,不可取。</p><p><b>  3.2調(diào)試</b></p><p>  3.2.1 編寫匯編源程序sin.asm和復(fù)位向量文件sin_v.asm </p><p>  打開軟件,新建一個工程,并命名為sinoutput,在File菜單下新建一文件,并編寫程序,編寫完成后保存,并命名為sin.asm,具體程序清單見附

55、錄。</p><p>  此文件主要分為幾下幾個功能模塊:</p><p>  程序存儲器向數(shù)據(jù)存儲器傳輸數(shù)據(jù)</p><p>  STM #d_coef_s, AR5</p><p><b>  RPT #3</b></p><p>  MVPD #table_s, *AR5+&

56、lt;/p><p>  數(shù)據(jù)代碼段.data的編寫即系數(shù)表的建立:</p><p>  .data ;定義數(shù)據(jù)代碼段</p><p>  table_s .word 01c7h ;c1=1/(8 * 9)</p><p>  .word 030bh

57、 ;c2=1/(6 * 7)</p><p>  .word 0666h ;c3=1/(4 * 5)</p><p>  .word 1556h ;c4=1/(2 * 3)</p><p>  計算一個角度的正弦值</p><p>  SQUR *AR2+, A ;

58、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/72</p><p><b>  ;

59、T= x^2</b></p><p>  MPYA A ;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^

60、2/42(1- x^2/72)</p><p>  ;T= x^2(1- x^2/72)</p><p>  MPYA *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&g

61、t;<p>  ||LD *AR4, B ;B=1</p><p>  MASR *AR2- , *AR3+, B, A </p><p>  ; 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

62、- x^2/72)))</p><p>  ST B, *AR2 ;(d_temp)=B=…</p><p>  ||LD *AR4, B ;B=1</p><p>  MASR *AR2-,*AR3+,B,A </p><p>  ;A=1- x^2/6(1- x^2/20(1- x^2/42(1-

63、 x^2/72)))</p><p>  MPYA d_xs ;B=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))))</p><p>  STH B, d_sinx ;sin(theta)</p><p>  計算從O(deg.)到90(deg.)的正弦值</p><p>  STM

64、#90, BRC </p><p>  RPTB loop1-1</p><p>  LDM AR1, A</p><p>  LD # d_xs, DP</p><p>  STL A,@d_xs</p><p>  STL A,@d_xc</p><p>  CAL

65、L sinx ; (d sinx) = sin(x)</p><p>  CALL cosx ; (d cosx) = cos(x)</p><p>  LD #d_sinx,DP</p><p>  LD @d_sinx,16,A ; A= sin(x)</p>&

66、lt;p>  MPYA @d_cosx ; B= sin(x) * cos(x)</p><p>  STH B,1, *AR6+ ;AR6-->2 * sin(x) * cos(x)</p><p>  MAR *AR1+0</p><p>  計算從91(deg.)到179(deg.)的正弦值</p&

67、gt;<p>  STM #sin_x+89,AR7 </p><p>  STM #88, BRC</p><p>  RPTB loop2-1</p><p>  LD *AR7-,A</p><p>  STL A, *AR6+</p><p>  計算從180(deg.)到

68、359(deg.)的正弦值</p><p>  STM #179 , BRC </p><p>  STM #sin_x, AR7</p><p>  RPTB loop3-1</p><p>  LD *AR7+, A</p><p><b>  NEG A</b&

69、gt;</p><p>  STL A, *AR6+</p><p>  計算一個角度的余弦值</p><p>  SQUR *AR2+, A ; A= x-2</p><p>  ST A, *AR2 ;(AR2)= x'2</p><p&g

70、t;  ||LD *AR4,B ;B=1</p><p>  MASR *AR2+, *AR3+,B,A ;A=I-x-2/56</p><p><b>  ;T= x2</b></p><p>  MPYA A ;A=T * A=x2(1-x2/56)&

71、lt;/p><p>  STH A, *AR2 ;(d temp) =x'2(1-x2/56)</p><p>  MASR *AR2-, *AR3+,B,A ;A=1-x2/30(1-x2/56)</p><p>  ;T=x2(1-x2/56)</p><p>  MPYA *AR2

72、+ ;B=x2(1-x'2/30(1-x2/56))</p><p>  ST B, *AR2 ;(d temp)=x'2(1-x2/30(1-x'2/56))</p><p>  ||LD *AR4, B ;B=1</p><p>  MASR *

73、AR2-, * AR3+,B,A ;A=1-x2/12(1-x'2/30(1-x2/56))</p><p>  SFTA A,-1,A ;-1/2</p><p><b>  NEG A</b></p><p>  MPYA *AR2+ ;B=-x'2/2(

74、1-x'2/12(1-x'2/30</p><p>  ;(1-x'2/56) ))</p><p>  MAR *AR2+</p><p><b>  RETD</b></p><p>  ADD *AR4,16,B ;B=1-x'2/2(1-x'2

75、/12(1-x2/30</p><p>  ;(1-)c2/56)))</p><p>  STH B, *AR2 ;cos(theta)</p><p>  3.2.2 編寫鏈接命令文件sin.cmd</p><p>  在File菜單下,新建一文件,編寫鏈接命令程序,命名為sin.cmd并保存。連接命令文件主要

76、是對程序和數(shù)據(jù)存儲空間的分配,并控制著整個程序的執(zhí)行。</p><p>  3.2.3具體調(diào)試過程</p><p> ?。?)、如上所述,先建立一個名為sinoutput的工程文件夾,在File菜單下新建編寫匯編源程序sin.asm、復(fù)位向量文件sin_v.asm和鏈接命令文件sin.cmd,并建立一個空的文件,命名為sin.DAT,以輸出數(shù)據(jù)所用。</p><p>

77、; ?。?)、文件建立完成后,加載到工程文件中,加載完成后,會出現(xiàn)如圖3.1所示的界面:</p><p><b>  圖3.1</b></p><p>  在加載的過程中,要注意對GEL函數(shù)的加載,加載完成后保存,并將軟件關(guān)閉重新啟動,再次打開軟件后,會在c5402sim.gel文件中發(fā)現(xiàn)如下所示的GEL函數(shù)設(shè)置:</p><p>  Gel-

78、MapAdd(0x0000u,2,0x0001u,0,1);以設(shè)置I/O口:輸入口的地址為0x0001u,輸出口的地址為0x0000u。</p><p>  、對文件進(jìn)行編譯,如果編譯沒有錯誤,即出現(xiàn)如圖3.2所示的提示框后,選擇File/Load Program命令,選擇sin.out文件,并加載。</p><p><b>  圖3.2</b></p>

79、<p> ?。?)、將數(shù)據(jù)文件與I/O口地址相關(guān)聯(lián)。選擇Tools/PortConnect命令,打開連接對話框。單擊Connect按鈕,在彈出的Connect對話框中,進(jìn)行如圖3.3所示進(jìn)行設(shè)置就可以了,設(shè)置完成后,會出現(xiàn)如圖3.4所示的窗口。</p><p><b>  圖3.3</b></p><p><b>  圖3.4</b>

80、</p><p><b>  3.3調(diào)試結(jié)果</b></p><p>  運行程序,計算結(jié)果共512個樣點,保存在sin.DAT中。選擇View/Graph/TimeFrequency命令,在彈出的對話框中設(shè)置參數(shù)(見圖3.5),就可</p><p><b>  圖3.5</b></p><p> 

81、 以根據(jù)存儲器中的數(shù)據(jù)畫出正弦波了,如圖3.6所示。在sin.DAT中也會有輸出的數(shù)據(jù),如圖3.7所示。</p><p><b>  圖3.6</b></p><p><b>  圖3.7</b></p><p><b>  第四章 設(shè)計心得</b></p><p>  每次課

82、程設(shè)計總會讓我們學(xué)到很多知識,讓我們將課本上學(xué)到的知識在實踐操作中,讓我們加深對課本理論知識的理解和掌握,也提高了我們得實踐操作能力。我覺得做課程設(shè)計是十分有意義的,這不僅是鍛煉培養(yǎng)獨立分析與解決問題的能力,也是一次團(tuán)隊合作開發(fā)過程。</p><p>  通過這次用DSP來實現(xiàn)正弦函數(shù)的課程設(shè)計,我更熟悉了CCS的開發(fā)環(huán)境以及正弦波的設(shè)計、運行和調(diào)試整個過程。在用CCS軟件仿真的過程中,由于程序文件在書寫過程中出

83、現(xiàn)了格式的錯誤,有些字母漏掉或者輸入錯誤,導(dǎo)致我在仿真的過程中,編譯出現(xiàn)了很多的錯誤,影響了仿真的效率。不過,在我一遍遍的查找課本、同學(xué)的幫助下我終于更正了錯誤,最終得到正確的仿真波形圖,這使我意識到在進(jìn)行實驗的過程中哪怕一個細(xì)節(jié)的錯誤也會導(dǎo)致實驗的失敗,也警示我在以后的工作和生活中要養(yǎng)成細(xì)心的習(xí)慣。</p><p>  在我們的生活和學(xué)習(xí)中,總會遇到這樣那樣的問題,解決問題需要有一個好的學(xué)習(xí)態(tài)度。DSP的實訓(xùn),

84、讓我知道,生活中我不僅有書本,更是有同學(xué)、朋友的,遇到問題不要一個人只看課本,還要和同學(xué)溝通,互相學(xué)習(xí)。畢竟三人行必有我?guī)熝?,遇到問題我們要向身邊的人學(xué)習(xí)。</p><p><b>  參考文獻(xiàn)</b></p><p>  1、《數(shù)字信號處理的硬件實現(xiàn)》 戴明楨主編 航空工業(yè)出版社 1998年5月</p><p>  2、《TMS320

85、C54X》DSP結(jié)構(gòu)、原理及應(yīng)用 戴明楨、周建江主編 北京航空航天大學(xué)出版社 2001年6月</p><p>  3、《DSP基本理論與應(yīng)用技術(shù)》 李哲英主編 機(jī)械出版社 2003年4月</p><p>  4、《TMS320C54x DSP應(yīng)用程序設(shè)計與開發(fā)》 劉益成編 機(jī)械工業(yè)出版社 2001年3月</p><p>  5、《DSP集成開發(fā)與應(yīng)用

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論