dsp課程設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩40頁(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)介

1、<p><b>  DSP原理與應(yīng)用</b></p><p>  課程設(shè)計(jì)(學(xué)年論文)說(shuō)明書(shū)</p><p>  課題名稱(chēng): DSP原理與應(yīng)用課程設(shè)計(jì) </p><p>  學(xué)生學(xué)號(hào): </p><p>  專(zhuān)業(yè)班級(jí): </p><

2、;p>  學(xué)生姓名: </p><p>  指導(dǎo)教師: </p><p><b>  目 錄</b></p><p><b>  第一章 緒論1</b></p><p>  第二章 DSP芯片的介紹3</p>

3、;<p>  2.1 DSP芯片的特點(diǎn)3</p><p>  2.1.1 DSP芯片主要特點(diǎn)3</p><p>  2.1.2 DSP芯片的優(yōu)缺點(diǎn)4</p><p>  2.2 DSP芯片的分類(lèi)4</p><p>  2.3 DSP芯片的應(yīng)用5</p><p>  2.4 TMS32

4、0vC5509芯片的介紹6</p><p>  第三章 總體設(shè)計(jì)9</p><p>  3.1 硬件設(shè)計(jì)9</p><p>  3.1.1 DSP芯片9</p><p>  3.1.2 電源設(shè)計(jì)10</p><p>  3.1.3 復(fù)位電路設(shè)計(jì)11</p><p>  3.

5、1.4 時(shí)鐘電路設(shè)計(jì)10</p><p>  3.1.5 程序存儲(chǔ)器擴(kuò)展設(shè)計(jì)11</p><p>  3.1.6 數(shù)據(jù)存儲(chǔ)器擴(kuò)展設(shè)計(jì)9</p><p>  3.1.7 JTAG接口設(shè)計(jì)10</p><p>  3.1.8 A/D接口電路設(shè)計(jì)11</p><p>  3.2 軟件設(shè)計(jì)9</p

6、><p>  第四章CCS集成開(kāi)發(fā)工具9</p><p>  4.1 CCS是什么9</p><p>  4.2 CCS窗口簡(jiǎn)介10</p><p>  4.2.1 CCS窗口示例10</p><p>  4.2.2 CCS中常用的工具11</p><p>  4.3 CCS的安

7、裝與設(shè)置11</p><p>  第五章 正弦信號(hào)發(fā)生器的實(shí)現(xiàn)過(guò)程13</p><p>  5.1 正弦信號(hào)發(fā)生器的理論實(shí)現(xiàn)13</p><p>  5.1.1 常用的理論實(shí)現(xiàn)方法13</p><p>  5.1.2 編程實(shí)現(xiàn)13</p><p>  5.2 調(diào)試過(guò)程18</p>&

8、lt;p>  第六章 實(shí)驗(yàn)心得與體會(huì)13</p><p><b>  參考文獻(xiàn)23</b></p><p><b>  第一章 緒論</b></p><p>  數(shù)字信號(hào)處理是20世紀(jì)60年代,隨著信息學(xué)科和計(jì)算機(jī)學(xué)科的高速發(fā)展而</p><p>  迅速發(fā)展起來(lái)的一門(mén)新興學(xué)科。它的重要

9、性日益在各個(gè)領(lǐng)域的應(yīng)用中表現(xiàn)出來(lái)。其主要標(biāo)志是兩項(xiàng)重大進(jìn)展,即快速傅里葉變換(FFT)算法的提出和數(shù)字濾波器設(shè)計(jì)方法的完善。數(shù)字信號(hào)處理是把信號(hào)用數(shù)字或符號(hào)表示成序列,通過(guò)計(jì)算機(jī)或通用(專(zhuān)用)信號(hào)處理設(shè)備,用數(shù)值計(jì)算方法進(jìn)行各種處理,達(dá)到提取有用信息便于應(yīng)用的目的。例如:濾波、檢測(cè)、變換、增強(qiáng)、估計(jì)、識(shí)別、參數(shù)提取、頻譜分析等。</p><p>  數(shù)字信號(hào)處理的目的是對(duì)真實(shí)世界的連續(xù)模擬信號(hào)進(jìn)行測(cè)量或?yàn)V波。因

10、此在進(jìn)行數(shù)字信號(hào)處理之前需要將信號(hào)從模擬域轉(zhuǎn)換到數(shù)字域,這通常通過(guò)模數(shù)轉(zhuǎn)換器實(shí)現(xiàn)。而數(shù)字信號(hào)處理的輸出經(jīng)常也要變換到模擬域,這是通過(guò)數(shù)模轉(zhuǎn)換器實(shí)現(xiàn)的。數(shù)字信號(hào)處理的算法需要利用計(jì)算機(jī)或?qū)S锰幚碓O(shè)備如數(shù)字信號(hào)處理器(DSP)和專(zhuān)用集成電路(ASIC)等。數(shù)字信號(hào)處理的研究方向應(yīng)該更加廣泛、更加深入.特別是對(duì)于譜分析的本質(zhì)研究,對(duì)于非平穩(wěn)和非高斯隨機(jī)信號(hào)的研究,對(duì)于多維信號(hào)處理的研究等,都具有廣闊前景。</p><p&g

11、t;  數(shù)字信號(hào)處理技術(shù)發(fā)展很快、應(yīng)用很廣、成果很多。多數(shù)科學(xué)和工程中遇到的是模擬信號(hào)。以前都是研究模擬信號(hào)處理的理論和實(shí)現(xiàn)。模擬信號(hào)處理缺點(diǎn):難以做到高精度,受環(huán)境影響較大,可靠性差,且不靈活等。數(shù)字系統(tǒng)的優(yōu)點(diǎn):體積小、功耗低、精度高、可靠性高、靈活性大、易于大規(guī)模集成、可進(jìn)行二維與多維處理。隨著大規(guī)模集成電路以及數(shù)字計(jì)算機(jī)的飛速發(fā)展,加之從60年代末以來(lái)數(shù)字信號(hào)處理理論和技術(shù)的成熟和完善,用數(shù)字方法來(lái)處理信號(hào),即數(shù)字信號(hào)處理,已逐漸

12、取代模擬信號(hào)處理。</p><p>  數(shù)字信號(hào)處理是利用計(jì)算機(jī)或?qū)S锰幚碓O(shè)備,以數(shù)字形式對(duì)信號(hào)進(jìn)行采集、變換、濾波、估值、增強(qiáng)、壓縮、識(shí)別等處理,以得到符合人們所需要的信號(hào)形式。數(shù)字信號(hào)處理是將信號(hào)以數(shù)字方式表示并處理的理論和技術(shù)。數(shù)字信號(hào)處理與模擬信號(hào)處理是信號(hào)處理的子集。數(shù)字信號(hào)處理技術(shù)及設(shè)備具有靈活、精確、抗干擾強(qiáng)、設(shè)備尺寸小、造價(jià)低、速度快等突出優(yōu)點(diǎn),這些都是模擬信號(hào)處理技術(shù)與設(shè)備所無(wú)法比擬的。<

13、/p><p>  數(shù)字信號(hào)處理(Digital Signal Processing,簡(jiǎn)稱(chēng)DSP)是一門(mén)涉及許多學(xué)科而又廣泛應(yīng)用于許多領(lǐng)域的新興學(xué)科。數(shù)字信號(hào)處理是圍繞著數(shù)字信號(hào)處理的理論、實(shí)現(xiàn)和應(yīng)用等幾個(gè)方面發(fā)展起來(lái)的。數(shù)字信號(hào)處理在理論上的發(fā)展推動(dòng)了數(shù)字信號(hào)處理應(yīng)用的發(fā)展。反過(guò)來(lái),數(shù)字信號(hào)處理的應(yīng)用又促進(jìn)了數(shù)字信號(hào)處理理論的提高。而數(shù)字信號(hào)處理的實(shí)現(xiàn)則是理論和應(yīng)用之間的橋梁。數(shù)字信號(hào)處理是以眾多的學(xué)科為理論基礎(chǔ)的,

14、它所涉及的范圍及其廣泛。例如,在數(shù)學(xué)領(lǐng)域,微積分、概率統(tǒng)計(jì)、隨機(jī)過(guò)程、數(shù)值分析等都是數(shù)字信號(hào)處理的基本工具,與網(wǎng)絡(luò)理論、信號(hào)與系統(tǒng)、控制論、通信理論、故障診斷等也密切相關(guān)。一些新興的學(xué)科,如人工智能、模式識(shí)別、神經(jīng)網(wǎng)絡(luò)等,都與數(shù)字信號(hào)處理密不可分??梢哉f(shuō),數(shù)字信號(hào)處理是把許多經(jīng)典的理論體系作為自己的理論基礎(chǔ),同時(shí)又使自己成為一系列新興學(xué)科的理論基礎(chǔ)。</p><p>  長(zhǎng)期以來(lái),信號(hào)處理技術(shù)—直用于轉(zhuǎn)換或產(chǎn)生模

15、擬或數(shù)字信號(hào)。其中應(yīng)用得最頻繁的領(lǐng)域就是信號(hào)的濾波。此外,從數(shù)字通信、語(yǔ)音、音頻和生物醫(yī)學(xué)信號(hào)處理到檢測(cè)儀器儀表和機(jī)器人技術(shù)等許多領(lǐng)域中,都廣泛地應(yīng)用了數(shù)字信號(hào)處理(digital signal processing,DSP)技術(shù)。數(shù)字信號(hào)處理己經(jīng)發(fā)展成為一項(xiàng)成熟的技術(shù),并且在許多應(yīng)用領(lǐng)域逐步代替了傳統(tǒng)的模擬信號(hào)處理系統(tǒng)。世界上三大DSP芯片生產(chǎn)商:1.德克薩斯儀器公司(TI) 2.模擬器件公司(ADI) 3.摩托羅拉公司(Motoro

16、la).這三家公司幾乎壟斷了通用DSP芯片市場(chǎng)。數(shù)字信號(hào)處理的書(shū)籍很多,其中以麻省理工學(xué)院奧本海姆編著的《Discrete Time Signal Processing》最為經(jīng)典 ,有中譯本《離散時(shí)間信號(hào)處理》由西安交通大學(xué)出版。現(xiàn)在是第二版。</p><p>  第二章 DSP芯片的介紹</p><p>  2.1 DSP芯片的特點(diǎn)</p><p>  DSP

17、芯片,也稱(chēng)數(shù)字信號(hào)處理器, 是一種具有特殊結(jié)構(gòu)的微處理器。DSP芯片的內(nèi)部采用程序和數(shù)據(jù)分開(kāi)的哈佛結(jié)構(gòu),具有專(zhuān)門(mén)的硬件乘法器,廣泛采用流水線操作,提供特殊的DSP指令,可以用來(lái)快速的實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法。</p><p>  2.1.1 DSP芯片主要特點(diǎn)</p><p>  根據(jù)數(shù)字信號(hào)處理的要求,DSP芯片一般具有如下的一些主要特點(diǎn):</p><p>  

18、⑴在一個(gè)指令周期內(nèi)可完成一次乘法和一次加法。 </p><p>  ⑵程序和數(shù)據(jù)空間分開(kāi),可以同時(shí)訪問(wèn)指令和數(shù)據(jù)。 </p><p> ?、瞧瑑?nèi)具有快速RAM,通??赏ㄟ^(guò)獨(dú)立的數(shù)據(jù)總線在兩塊中同時(shí)訪問(wèn)。 </p><p>  ⑷具有低開(kāi)銷(xiāo)或無(wú)開(kāi)銷(xiāo)循環(huán)及跳轉(zhuǎn)的硬件支持。 </p><p> ?、煽焖俚闹袛嗵幚砗陀布蘒/O支持。 </p&g

19、t;<p>  ⑹具有在單周期內(nèi)操作的多個(gè)硬件地址產(chǎn)生器。 </p><p>  ⑺可以并行執(zhí)行多個(gè)操作。 </p><p> ?、讨С至魉€操作,使取指、譯碼和執(zhí)行等操作可以重疊執(zhí)行。 </p><p> ?、团c通用微處理器相比,DSP芯片的其他通用功能相對(duì)較弱些。 </p><p>  2.1.2 DSP芯片的優(yōu)缺點(diǎn)<

20、;/p><p>  DSP芯片主要應(yīng)用在信號(hào)處理 、圖像處理 、儀器 、聲音語(yǔ)言 、控制軍事 、通訊 、醫(yī)療 、家用電器等諸多領(lǐng)域。其優(yōu)點(diǎn)主要有:大規(guī)模集成性、穩(wěn)定性好、精度高、可編程性、高速性能、可嵌入性、接口和集成方便;缺點(diǎn)主要有:成本較高、高頻時(shí)鐘的高頻干擾、功率消耗較大等。 </p><p>  2.2 DSP芯片的分類(lèi)</p><p>  DSP芯片可以按照

21、下列三種方式進(jìn)行分類(lèi)。 </p><p><b>  1.按基礎(chǔ)特性分 </b></p><p>  這是根據(jù)DSP芯片的工作時(shí)鐘和指令類(lèi)型來(lái)分類(lèi)的。如果在某時(shí)鐘頻率范圍內(nèi)的任何時(shí)鐘頻率上,DSP芯片都能正常工作,除計(jì)算速度有變化外,沒(méi)有性能的下降,這類(lèi)DSP芯片一般稱(chēng)為靜態(tài)DSP芯片。例如,日本OKI 電氣公司的DSP芯片、TI公司的TMS320C2XX系列芯片屬于

22、這一類(lèi) </p><p>  如果有兩種或兩種以上的DSP芯片,它們的指令集和相應(yīng)的機(jī)器代碼機(jī)管腳結(jié)構(gòu)相互兼容,則這類(lèi)DSP芯片稱(chēng)為一致性DSP芯片。例如,美國(guó)TI公司的TMS320C54X就屬于這一類(lèi)。 </p><p><b>  2.按數(shù)據(jù)格式分 </b></p><p>  這是根據(jù)DSP芯片工作的數(shù)據(jù)格式來(lái)分類(lèi)的。數(shù)據(jù)以定點(diǎn)格式工作的

23、DSP芯片稱(chēng)為定點(diǎn)DSP芯片,如TI公司的TMS320C1X/C2X、TMS320C2XX/C5X、TMS320C54X/C62XX系列,AD公司的ADSP21XX系列,AT&T公司的DSP16/16A,Motolora公司的MC56000等。以浮點(diǎn)格式工作的稱(chēng)為浮點(diǎn)DSP芯片,如TI公司的TMS320C3X/C4X/C8X,AD公司的ADSP21XXX系列,AT&T公司的DSP32/32C,Motolora公司的MC9

24、6002等。 </p><p>  不同浮點(diǎn)DSP芯片所采用的浮點(diǎn)格式不完全一樣,有的DSP芯片采用自定義的浮點(diǎn)格式,如TMS320C3X,而有的DSP芯片則采用IEEE的標(biāo)準(zhǔn)浮點(diǎn)格式,如Motorola公司的MC96002、FUJITSU公司的MB86232和ZORAN公司的ZR35325等。 </p><p><b>  3.按用途分 </b></p>

25、<p>  按照DSP的用途來(lái)分,可分為通用型DSP芯片和專(zhuān)用型DSP芯片。通用型DSP芯片適合普通的DSP應(yīng)用,如TI公司的一系列DSP芯片屬于通用型DSP芯片。專(zhuān)用DSP芯片是為特定的DSP運(yùn)算而設(shè)計(jì)的,更適合特殊的運(yùn)算,如數(shù)字濾波、卷積和FFT,如Motorola公司的DSP56200,Zoran公司的ZR34881,Inmos公司的IMSA100等就屬于專(zhuān)用型DSP芯片。 </p><p>

26、  2.3 DSP芯片的應(yīng)用</p><p>  數(shù)字信號(hào)處理(DSP)芯片是一種特別適合于進(jìn)行數(shù)字信號(hào)處理運(yùn)算的微處理器可實(shí)時(shí)快速地實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法。自20世紀(jì)80年代初誕生以來(lái)已廣泛應(yīng)用于通信、電子、航空航天、軍事及家電產(chǎn)品成為一種十分重要的電子產(chǎn)品的核心部件。DSP芯片得到了飛速的發(fā)展。DSP芯片的高速發(fā)展,一方面得益于集成電路技術(shù)的發(fā)展,另一方面也得益于巨大的市場(chǎng)。在近20年時(shí)間里,DSP芯片已

27、經(jīng)在信號(hào)處理、通信、雷達(dá)等許多領(lǐng)域得到廣泛的應(yīng)用。目前,DSP芯片的價(jià)格越來(lái)越低,性能價(jià)格比日益提高,具有巨大的應(yīng)用潛力。DSP芯片的應(yīng)用主要有:</p><p>  (1) 信號(hào)處理——如數(shù)字濾波、自適應(yīng)濾波、快速傅立葉變換、相關(guān)運(yùn)算、譜分析、卷積、模式匹配、加窗、波形產(chǎn)生等;</p><p>  (2) 通信——如調(diào)制解調(diào)器、自適應(yīng)均衡、數(shù)據(jù)加密、數(shù)據(jù)壓縮、回波抵消、多路復(fù)用、傳真、擴(kuò)

28、頻通信、糾錯(cuò)編碼、可視電話等;</p><p>  (3) 語(yǔ)音——如語(yǔ)音編碼、語(yǔ)音合成、語(yǔ)音識(shí)別、語(yǔ)音增強(qiáng)、說(shuō)話人辨認(rèn)、說(shuō)話人確認(rèn)、語(yǔ)音郵件、語(yǔ)音存儲(chǔ)等;</p><p>  (4) 圖形/圖像——如二維和三維圖形處理、圖像壓縮與傳輸、圖像增強(qiáng)、動(dòng)畫(huà)、機(jī)器人視覺(jué)等;</p><p>  (5) 軍事——如保密通信、雷達(dá)處理、聲納處理、導(dǎo)航、導(dǎo)彈制導(dǎo)等;</p

29、><p>  (6) 儀器儀表——如頻譜分析、函數(shù)發(fā)生、鎖相環(huán)、地震處理等;</p><p>  (7) 自動(dòng)控制——如引擎控制、聲控、自動(dòng)駕駛、機(jī)器人控制、磁盤(pán)控制等;</p><p>  (8) 醫(yī)療——如助聽(tīng)、超聲設(shè)備、診斷工具、病人監(jiān)護(hù)等;</p><p>  (9) 家用電器——如高保真音響、音樂(lè)合成、音調(diào)控制、玩具與游戲、數(shù)字電話/電

30、視等。</p><p>  隨著DSP芯片性能價(jià)格比的不斷提高,可以預(yù)見(jiàn)DSP芯片將會(huì)在更多的領(lǐng)域內(nèi)得到更為廣泛的應(yīng)用。</p><p>  2.4 TMS320VC5509芯片的介紹</p><p>  TMS320 C54x系列DSP芯片是使用靜態(tài)CMOS技術(shù)制造的。其方框圖見(jiàn)圖2-1,從圖中可以看出C54x系列DSP芯片具有以下功能單元:</p>

31、<p><b>  總線</b></p><p>  C54x共有八條總線分別是:</p><p>  PB: 程序讀取總線 CB: 數(shù)據(jù)讀取總線1       DB: 數(shù)據(jù)讀取總線2 EB: 數(shù)據(jù)寫(xiě)入總線    &

32、#160;  PAB: 程序讀取地址總線 CAB: 數(shù)據(jù)讀取地址總線1       DAB: 數(shù)據(jù)讀取地址總線2 EAB: 數(shù)據(jù)寫(xiě)入地址總線</p><p>  中央處理器(CPU)</p><p>  CPU由以下幾個(gè)部件組成:</p><p>  先進(jìn)的多總線結(jié)構(gòu): 包括三個(gè)

33、獨(dú)立的數(shù)據(jù)總線和一個(gè)程序總線</p><p>  40位的算術(shù)邏輯單元: 包括一個(gè)40位移位器和兩個(gè)獨(dú)立的40位累加器</p><p>  17bit 17bit的并行乘法器同一個(gè)專(zhuān)用的加法器相配合: 用來(lái)執(zhí)行不經(jīng)流水線的單周期乘加(MAC)運(yùn)算</p><p>  指數(shù)譯碼器: 可以在一個(gè)周期里計(jì)算出一個(gè)40位累加器的指數(shù)值</p><p>

34、;  兩個(gè)地址生成器: 包括8個(gè)輔助寄存器和兩個(gè)輔助寄存器算術(shù)單元</p><p>  程序控制器: 對(duì)指令進(jìn)行解碼、管理流水線和程序流程</p><p><b>  片上存儲(chǔ)器</b></p><p>  C54x共有192K字的尋址能力(64K字的程序區(qū),64K字的數(shù)據(jù)區(qū),和64K字的I/O區(qū))如圖2-2所示。</p><

35、;p>  芯片內(nèi)部采用改進(jìn)的哈佛結(jié)構(gòu),允許同時(shí)取指令和取數(shù)據(jù),而且還允許在程序空間和數(shù)據(jù)空間之間相互傳送數(shù)據(jù)。 所謂哈佛結(jié)構(gòu),是將程序和數(shù)據(jù)的存貯空間分開(kāi),各有各的地址總線和數(shù)據(jù)總線。這樣同一條指令可以同時(shí)對(duì)不同的存貯空間進(jìn)行讀操作或?qū)懖僮?從而提高了處理速度。 </p><p>  C54x DSP芯片還提供了塊指令循環(huán)功能,此功能可以大大地提高執(zhí)行循環(huán)的速度,但是此功能只能在一重循環(huán)中使用,因?yàn)樗惶峁?/p>

36、了一個(gè)循環(huán)記數(shù)寄存器BRC,所以在遇到多重循環(huán)時(shí)就要盡量把這個(gè)功能用在最里層的循環(huán)中,最里層循環(huán)是執(zhí)行次數(shù)最多的循環(huán)。 </p><p><b>  第三章 總體設(shè)計(jì)</b></p><p>  基于TMS320VC5509的語(yǔ)音信號(hào)采集系統(tǒng)的結(jié)構(gòu)如圖2–1所示,該系統(tǒng)的中央處理單元采用美國(guó)TI(德州儀器)公司的高性能定點(diǎn)數(shù)字信號(hào)處理芯片TMS320VC55

37、09,TMS320VC5509是TI公司推出的定點(diǎn)數(shù)字信號(hào)處理器,它采用修正的哈佛結(jié)構(gòu),包括12組獨(dú)立總線,即1組程序讀總線,1組程序地址總線,3組數(shù)據(jù)讀總線,2組數(shù)據(jù)寫(xiě)總線,5組數(shù)據(jù)地址總線。這種結(jié)構(gòu)允許同時(shí)執(zhí)行程序指令和對(duì)數(shù)據(jù)操作, 運(yùn)行速度快,單周期定點(diǎn)指令執(zhí)行時(shí)間為10ns。在語(yǔ)音信號(hào)采集中, 模擬信號(hào)向數(shù)字信號(hào)轉(zhuǎn)換(ADC)的精度和實(shí)時(shí)性對(duì)后續(xù)信號(hào)處理過(guò)程起到了重要作用。設(shè)計(jì)中采用TLC320AD50完成語(yǔ)音信號(hào)的A/D轉(zhuǎn)換。

38、TLC320AD50是TI公司提供的一款32 bit同步串口A/D和D/A轉(zhuǎn)換芯片,ADC之后有1個(gè)抽取濾波器以提高輸入信號(hào)的信噪比, 其采樣頻率最高可達(dá)22.5 Kb/s,滿足語(yǔ)音信號(hào)處理關(guān)于采樣頻率的要求。</p><p><b>  3.1 硬件設(shè)計(jì)</b></p><p>  圖2-2 TMS320VC5509芯片</p><p>  

39、3.1.1 DSP芯片</p><p>  作為DSP家庭高性?xún)r(jià)比代表的16位定點(diǎn)DSP芯片,C5402適用于語(yǔ)音通信等實(shí)時(shí)嵌入應(yīng)用場(chǎng)合。與其它C54X芯片一樣,C5402具有高度靈活的可操作性和高速的處理能力。其性能特點(diǎn)如下:操作速率可達(dá)100MIPS;具有先進(jìn)的多總線結(jié)構(gòu),三條16位數(shù)據(jù)存儲(chǔ)器總線和一條程序存儲(chǔ)器總線;40位算術(shù)邏輯單元(ALU),包括一個(gè)40位桶形移位器和兩個(gè)40位累加器;一個(gè)17×

40、;17乘法器和一個(gè)40位專(zhuān)用加法器,允許16位帶/不帶符號(hào)的乘法;整合維特比加速器,用于提高維特比編譯碼的速度;單周期正規(guī)化及指數(shù)譯碼;8個(gè)輔助寄存器及一個(gè)軟件棧,允許使用業(yè)界最先進(jìn)的定點(diǎn)DSP C語(yǔ)言編譯器;數(shù)據(jù)/程序?qū)ぶ房臻g為1M×16bit,內(nèi)置4K×16bit ROM和16K×16bit RAM;內(nèi)置可編程等待狀態(tài)發(fā)生器、鎖相環(huán)(PLL)時(shí)鐘產(chǎn)生器、兩個(gè)多通道緩沖串口、一個(gè)與外部處理器通信的8位并行

41、HPI口、兩個(gè)16位定時(shí)器以及6通道DMA控制器且低功耗。與C54X系列的其它芯片相比,C5402具有高性能、低功耗和低價(jià)格等特點(diǎn)。它采用6級(jí)流水線,且當(dāng)RPT(重復(fù)指令)時(shí),一些多周期的指令就變成了單周期的指令;芯片內(nèi)部RAM</p><p>  3.1.2 電源設(shè)計(jì)</p><p>  為了降低芯片功耗,C54x系列芯片大部分都采用低電壓設(shè)計(jì),并且采用雙電源供電,即內(nèi)核電源CVDD:采

42、用1.8V,主要為芯片的內(nèi)部邏輯提供電壓,包括CPU、時(shí)鐘電路和所有的外設(shè)邏輯;I/O電源DVDD:采用3.3V,主要供I/O接口使用。可直接與外部低壓器件接口,而無(wú)需額外的電平變換電路。DSP芯片采用的供電方式,主要取決于應(yīng)用系統(tǒng)中提供什么樣的電源。在實(shí)際中,大部分?jǐn)?shù)字系統(tǒng)所使用的電源可工作于5V或3.3V,本設(shè)計(jì)采用TI公司提供的雙電源芯片: TPS73HD318電源的最大輸出電流為750mA,并且提供兩個(gè)寬度為200ms的低電平復(fù)

43、位脈沖。電路圖如圖3.1-1所示。</p><p>  圖3.1-1由TPS7301 芯片組成的電源電路</p><p>  3.1.3 復(fù)位電路設(shè)計(jì)</p><p>  TMS320VC5502的復(fù)位輸入引腳RS為處理器提供了一種硬件初始化的方法,它是一種不可屏蔽的外中斷,可在任何時(shí)候?qū)MS320VC5502進(jìn)行復(fù)位。當(dāng)系統(tǒng)上電后,RS引腳應(yīng)至少保持5個(gè)時(shí)鐘周期

44、穩(wěn)定的低電平,以確保數(shù)據(jù)、地址和控制線的正確配置。復(fù)位后(RS回到高電平),CPU從程序存儲(chǔ)器的FF80H單元取指,并開(kāi)始執(zhí)行程序。本設(shè)計(jì)采用手動(dòng)復(fù)位電路(如圖3.1-2)。</p><p>  圖3.1-2 手動(dòng)復(fù)位電路</p><p>  3.1.4 時(shí)鐘電路設(shè)計(jì)</p><p>  時(shí)鐘電路用來(lái)為’C54x芯片提供時(shí)鐘信號(hào),由一個(gè)內(nèi)部振蕩器和一個(gè)鎖相環(huán)PLL組

45、成,可通過(guò)芯片內(nèi)部的晶體振蕩器或外部的時(shí)鐘電路驅(qū)動(dòng)。利用DSP芯片內(nèi)部提供的晶振電路,在DSP芯片的X1、X2之間連接晶體振蕩器。使用芯片內(nèi)部的振蕩器在芯片的X1和X2/CLKIN引腳之間接入一個(gè)晶體,用于啟動(dòng)內(nèi)部振蕩器。時(shí)鐘電路圖如圖3.1-3。</p><p>  C1=C2=20pF</p><p>  圖3.1-3時(shí)鐘模塊電路</p><p>  3.1.5

46、 程序存儲(chǔ)器擴(kuò)展設(shè)計(jì)</p><p>  FLASH存儲(chǔ)器用以擴(kuò)展程序存儲(chǔ)器 AT29LV1024是1M位的FLASH存儲(chǔ)器FLASH存儲(chǔ)器與EPROM相比,具有更高的性能價(jià)格比,而且體積小、功耗低、可電擦寫(xiě)、使用方便,并且3.3V的FLASH可以直接與DSP芯片連接。地址線:A0~A15;數(shù)據(jù)線:I/O0~I/O15;控制線:—片選信號(hào);—編程寫(xiě)信號(hào);—輸出使能信號(hào)。擴(kuò)展連接圖如圖3.1-4。</p>

47、;<p>  圖3.1-4程序存儲(chǔ)器擴(kuò)展電路</p><p>  3.1.6數(shù)據(jù)存儲(chǔ)器擴(kuò)展設(shè)計(jì)</p><p>  要實(shí)現(xiàn)語(yǔ)音數(shù)據(jù)和系統(tǒng)程序的存儲(chǔ),TMS320VC5502必須有外接擴(kuò)展存儲(chǔ)器。TMS320VC5502 的速度為100 MI/s,為保證DSP運(yùn)行速度,需要外部存儲(chǔ)器的速度接近10ns。系統(tǒng)選擇ICSI64LV16作為外部存儲(chǔ)器,其容量64K字×16

48、bit。其硬件連接圖如圖3.1-5所示。</p><p>  圖3.1-5數(shù)據(jù)存儲(chǔ)器擴(kuò)展電路</p><p>  3.1.7 JTAG接口設(shè)計(jì)</p><p>  在系統(tǒng)中,通過(guò)JTAG測(cè)試口訪問(wèn)和調(diào)試DSP芯片。JTAG是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議(IEEE 1149.1兼容),針對(duì)現(xiàn)代超大規(guī)模集成電路測(cè)試、檢驗(yàn)困難而提出的基于邊界掃描機(jī)制和標(biāo)準(zhǔn)測(cè)試存取口的國(guó)際標(biāo)準(zhǔn)。標(biāo)

49、準(zhǔn)JTAG測(cè)試端口包括4個(gè)必選引腳和一個(gè)可選的異步JTAG的復(fù)位引腳TRST,分別是工作模式選擇引腳TMS,串行數(shù)據(jù)輸入引腳TDI,串行數(shù)據(jù)輸出引腳TDO,端口工作時(shí)鐘引腳TCK。JTAG接口引腳連接如圖3.1-6所示。</p><p>  圖3.1-6 JTAG接口引腳連接圖</p><p>  3.1.8 A/D接口電路設(shè)計(jì)</p><p>  A/D轉(zhuǎn)換模塊是

50、整個(gè)系統(tǒng)的主要部分,它接收來(lái)自外部的信號(hào)或模擬數(shù)據(jù),然后經(jīng)過(guò)處理轉(zhuǎn)換成數(shù)字信號(hào)傳遞給CPU做后續(xù)的處理。TLC320AD50是一款SIGMA- DELTA 型單片音頻接口芯片, 通過(guò)串行口與DSP 或其它設(shè)備通信。它內(nèi)部集成了16 位的D/A 和A/D 轉(zhuǎn)換器, 采樣速率最高可達(dá)22.05 Kb/s, 其采樣速率可通過(guò)DSP 編程來(lái)設(shè)置。設(shè)置AD50時(shí),串行通信數(shù)據(jù)最低為高電平。在DAC 之前有一個(gè)插值濾波器以保證輸出信號(hào)平滑, ADC

51、 之后有一個(gè)抽取濾波器以提高輸入信號(hào)的信噪比。AD50 的發(fā)送和接收可以同時(shí)進(jìn)行。</p><p>  圖3.1-7 TLC320AD50與 TMS320VC5509 串行口的連接</p><p>  3.1.9總體電路圖</p><p>  第四章 CCS集成開(kāi)發(fā)工具</p><p>  4.1 CCS是什么</p><

52、;p>  通常,DSP廠商和第三方都會(huì)為DSP的開(kāi)發(fā)應(yīng)用提供各種各樣的軟硬件開(kāi)發(fā)工具(代碼生成工具和代碼調(diào)試工具等)。早期的DSP開(kāi)發(fā)工具沒(méi)有集成化,需要在DOS環(huán)境下鍵入比較復(fù)雜的命令,使用起來(lái)不很方便,調(diào)試、開(kāi)發(fā)的效率也不高。1999年,TI公司推出了CCS(Code Composer Studio)集成開(kāi)發(fā)工具(直譯為代碼設(shè)計(jì)工作室),為DSP用戶提供了十分便利的開(kāi)發(fā)環(huán)境。</p><p>  CCS

53、內(nèi)部集成了以下軟件工具:</p><p>  DSP代碼生成工具(包括DSP的C編譯器、匯編優(yōu)化器、匯編器和鏈接器等)</p><p>  CCS集成開(kāi)發(fā)工具(編輯、鏈接和調(diào)試DSP目標(biāo)程序)。</p><p>  實(shí)時(shí)分析插件DSP/BIOS和實(shí)時(shí)數(shù)據(jù)交換模塊RTDX等(必須有硬件開(kāi)發(fā)板)。</p><p>  CCS是一種可視化集成開(kāi)發(fā)工

54、具,它集代碼生成軟件和代碼調(diào)試工具</p><p>  于一體,具有強(qiáng)大的應(yīng)用開(kāi)發(fā)功能:</p><p> ?、趴梢暬a編輯界面:可以直接編寫(xiě)匯編語(yǔ)言和C語(yǔ)言程序、.H頭文件和.CMD命令文件等。</p><p> ?、拼a生成工具:包括DSP的匯編器、C編譯器和鏈接器等。</p><p> ?、歉鞣N調(diào)試工具:包括加載執(zhí)行文件、運(yùn)行、單步操

55、作、設(shè)置斷點(diǎn)、查看編輯存儲(chǔ)器和寄存器、觀察變量、評(píng)估程序和執(zhí)行時(shí)間等。</p><p> ?、忍结樄ぞ撸嚎蓪C機(jī)數(shù)據(jù)文件中的數(shù)據(jù)傳到DSP,或者將DSP中數(shù)據(jù)傳到PC機(jī)數(shù)據(jù)文件中,以便實(shí)現(xiàn)各種算法仿真和數(shù)據(jù)監(jiān)視。</p><p>  ⑸圖形顯示工具:可以將DSP程序生成的數(shù)據(jù)繪制成時(shí)域/頻域圖等,以便于觀察和分析。</p><p> ?、释ㄓ脭U(kuò)展語(yǔ)言GEL:可以讓

56、用戶通過(guò)GEL語(yǔ)言編程,建立需要的GEL函數(shù)來(lái)擴(kuò)展CCS的功能,包括配置各種參數(shù)、修改變量等。</p><p> ?、薉SP/BIOS工具:它是DSP芯片簡(jiǎn)化了的操作系統(tǒng)內(nèi)核,即各種DSP芯片操作系統(tǒng)的底層文件,為嵌入式系統(tǒng)應(yīng)用提供基本的運(yùn)行服務(wù),具有代碼較少、邏輯精簡(jiǎn)等優(yōu)點(diǎn)。</p><p> ?、涕_(kāi)放式的插入架構(gòu)技術(shù):只需安裝相應(yīng)的驅(qū)動(dòng)程序,就能夠集成第三方的專(zhuān)用插件。</p&g

57、t;<p>  4.2 CCS窗口簡(jiǎn)介</p><p>  4.2.1 CCS窗口示例</p><p>  CCS系統(tǒng)設(shè)置完成后,就可以打開(kāi)CCS應(yīng)用程序,在CCS集成開(kāi)發(fā)環(huán)境下完成工程定義,程序的編輯、編譯、鏈接和調(diào)試,以及程序運(yùn)行結(jié)果的分析和評(píng)估等工作。一個(gè)典型的CCS集成開(kāi)發(fā)環(huán)境住窗口如圖3-1所示。該示例窗口由菜單欄、工具欄、工程窗口、源程序編輯和調(diào)試窗口、存儲(chǔ)器

58、窗口、CPU寄存器窗口、輸出窗口等組成。此外,還可以根據(jù)需要打開(kāi)反匯編窗口、圖形顯示窗口、變量觀察窗口,以及時(shí)鐘窗口等。</p><p>  圖3-1 CCS應(yīng)用窗口示例</p><p>  4.2.2 CCS中常用的工具</p><p>  菜單欄——和CCS所有功能相關(guān)的菜單都在這里面。 </p><p>  編譯工具欄——編譯程序時(shí)

59、常用的一些工具。 </p><p>  調(diào)試工具欄——調(diào)試程序時(shí)常用的一些工具。 </p><p>  工程文件框——打開(kāi)的工程所有文件會(huì)按類(lèi)別放在這里,便于我們編程時(shí)在各個(gè)文件之間的切換。 </p><p>  代碼編輯區(qū)——顧名思義,代碼都是在這里編輯完成的了,是我們最主要的工作區(qū)域。 </p><p>  編譯信息輸出區(qū)——編譯時(shí)產(chǎn)生的

60、信息會(huì)在這個(gè)區(qū)域內(nèi)輸出,能讓我們直觀的了解到正在編譯哪個(gè)文件,編譯過(guò)程中是否產(chǎn)生了錯(cuò)誤,而這些錯(cuò)誤是哪些,由于什么原因引起的,這些內(nèi)容都會(huì)顯示在這里。</p><p>  4.3 CCS的安裝與設(shè)置</p><p>  CCS的安裝步驟如下:</p><p>  (1)將CCS的安裝光盤(pán)插入計(jì)算機(jī)的CD-ROM光盤(pán)驅(qū)動(dòng)器中,運(yùn)行CCS安裝程序Set-up.exe.

61、按屏幕提示,將CCS系統(tǒng)安裝到C:\ti(默認(rèn)系統(tǒng))安裝目錄下。安裝完成后:</p><p>  ①在桌面上將出現(xiàn)Set-upCCS2(’C5000)和CCS2(’C5000)兩個(gè)快捷方式圖標(biāo),分別對(duì)應(yīng)CCS配置程序和CCS應(yīng)用程序。</p><p> ?、谠贑:\ti目錄下有bin、c5400、c5500、cc、docs、drivers、examples、myprojects、plugi

62、ns、 tutoria、uninstall共11個(gè)文件夾,以及DosRun等3個(gè)文件夾,用戶的工程文件都將存放在myprojects文件夾下。</p><p> ?。?)單擊Set-upCCS2(’C5000)快捷方式圖標(biāo),運(yùn)行CCS配置程序,彈出對(duì)話框如圖3-2所示。</p><p>  圖3-2 CSS配置對(duì)話框</p><p>  從對(duì)話框的Availabl

63、e Configurations列表框中選擇應(yīng)用平臺(tái)類(lèi)型。配置完成后,保存設(shè)置并退出。CCS系統(tǒng)將C5402軟件仿真器作為系統(tǒng)配置,顯示在System Configuration列表框中。</p><p>  第五章 正弦信號(hào)發(fā)生器的實(shí)現(xiàn)過(guò)程</p><p>  5.1 正弦信號(hào)發(fā)生器的理論實(shí)現(xiàn)</p><p>  5.1.1 常用的理論實(shí)現(xiàn)方法</p

64、><p>  在通信、儀器和控制等領(lǐng)域的信號(hào)處理系統(tǒng)中,可能會(huì)用到正弦波信號(hào)發(fā)生器。一般來(lái)說(shuō)產(chǎn)生正弦波的方法有兩種:</p><p> ?、俨楸矸ǎ捍朔椒ㄓ糜趯?duì)精度要求不高的場(chǎng)合,如果要求精度高,表就很大,相應(yīng)的存儲(chǔ)器容量也要增大。</p><p> ?、谔├占?jí)數(shù)展開(kāi)法。這是一種更為有效的方法。與查表法相比,該方法需要的存儲(chǔ)單元很少,而且精度高。</p>

65、<p>  一個(gè)角度正弦和余弦函數(shù),都可以展開(kāi)成泰勒級(jí)數(shù),取其前5項(xiàng)進(jìn)行近似。</p><p>  本次課程設(shè)計(jì)利用泰勒級(jí)數(shù)展開(kāi)法求正弦值,產(chǎn)生正弦波。軟件流程圖如圖4-1</p><p>  5.1.2 編程實(shí)現(xiàn)</p><p>  先計(jì)算0~45°(間隔為0.5°)的sin和cos值,在利用sin2a=2sina*cosa求出si

66、n值(間隔為1°)。然后,通過(guò)復(fù)制,獲得0~359°的正弦值。重復(fù)向</p><p>  5.1.2 編程實(shí)現(xiàn)</p><p>  先計(jì)算0~45°(間隔為0.5°)的sin和cos值,在利用sin2a=2sina*cosa求出sin值(間隔為1°)。然后,通過(guò)復(fù)制,獲得0~359°的正弦值。重復(fù)向PA口輸出,便可得到正弦波。程

67、序如下:</p><p>  1.產(chǎn)生正弦波程序清單sin.asm:</p><p>  .title "sin.asm" ;為匯編文件取名為“sin.asm”</p><p>  .mmregs ;定義存儲(chǔ)器映像寄存器</p><p>  .def _c_int00</p&

68、gt;<p>  .ref sinx,d_xs,d_sinx,cosx,d_xc,d_cosx;定義標(biāo)號(hào)</p><p>  sin_x: .usect "sin_x",360 ;為"sin_x"保留360個(gè)存儲(chǔ)空間</p><p>  STACK: .usect "STACK",10

69、 ;為堆棧保留10個(gè)存儲(chǔ)空間</p><p>  k_theta .set 286 ;theta=pi/360(0.5deg)</p><p>  PA0 .set 0</p><p><b>  _c_int00 </b></p><p>  .text

70、 ;定義文本程序代碼段</p><p>  STM #STACK+10,SP ;設(shè)置堆棧指針</p><p>  STM k_theta,AR0 ;AR0-->K_theta(increment)</p><p>  STM 0,AR1 ;(AR1)=X(rad)</p>

71、<p>  STM #sin_x,AR6 ;AR6- - >sin(x)</p><p>  STM #90,BRC ;form sin0(deg.)—sin90(deg)</p><p> ?。恢貜?fù)執(zhí)行塊語(yǔ)句(下條語(yǔ)句開(kāi)始至loop1-1 )91次</p><p>  RPTB loop1-1

72、 </p><p>  LDM AR1,A</p><p>  LD #d_xs,DP ;DPd_xs</p><p>  STL A,@d_xs ;(A)低16位→d_xs</p><p>  STL A,@d_xc ;(A)低16位→d_xc&l

73、t;/p><p>  CALL sinx ;調(diào)用sinx程序</p><p>  CALL cosx ;調(diào)用conx程序</p><p>  LD #d_sinx,DP ;DP d_sinx</p><p>  LD @d_sinx,16,A ;A=sin

74、(x)</p><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 ;修改輔助寄存器AR1</p><p>

75、  loop1: STM #sin_x+89,AR7 ;sin91(deg.)- -sin179(deg.)</p><p>  STM #88,BRC ;重復(fù)執(zhí)行下條指令至loop2-1</p><p>  RPTB loop2-1 ;處90次</p><p>  LD *AR7-,A

76、 ;((AR7)) →A,然后AR7減去1</p><p>  STL A,*AR6+ ;(A) 低16位→AR6</p><p>  loop2: STM #179,BRC ;sin180(deg.)- -sin359(deg.)</p><p> ??;(BRC)=179,重復(fù)執(zhí)行180次</p&

77、gt;<p>  STM #sin_x,AR7 ;AR7指向sin_x首地址</p><p>  RPTB loop3-1 ;</p><p>  LD *AR7+,A ;((AR7)) →A,然后AR7加1</p><p>  NEG A ;累加器變

78、負(fù)</p><p>  STL A,*AR6+ ;A低16位→AR6</p><p>  loop3: STM #sin_x,AR6 ;generate sin wave AR6指向sin_x</p><p>  STM #1,AR0 ;AR 01</p><p>  

79、STM #360,BK ;BK360</p><p>  loop4: PORTW *AR6+0%,PA0 ;PA0=*AR6+0%,向PA0輸出數(shù)據(jù)</p><p>  B loop4 ;</p><p><b>  sinx:</b></p><p

80、>  .def d_xs,d_sinx ;定義標(biāo)號(hào)d_xs,d_sinx</p><p>  .data ;定義數(shù)據(jù)代碼段</p><p>  table_s .word 01c7h ;c1=1/(8*9)</p><p>  .word 030bh ;c1=

81、1/(6*7)</p><p>  .word 0666h ;c1=1/(4*5)</p><p>  .word 1556h ;c1=1/(2*3)</p><p>  d_coef_s .usect "coef_s",4 ;為"coef_s"保留4個(gè)存儲(chǔ)空間&l

82、t;/p><p>  d_xs .usect "sin_vars",1 ;為d_xs中sin_vars保留1個(gè)存儲(chǔ)空間</p><p>  d_squr_xs .usect "sin_vars",1 ;為d_squr_xs中sin_vars保留1個(gè)存儲(chǔ)空間</p><p>  d_temp_s

83、 .usect "sin_vars",1 ;為d_temp_s中sin_vars保留1個(gè)存儲(chǔ)空間</p><p>  d_sinx .usect "sin_vars",1 ;為d_sinx中sin_vars保留1個(gè)存儲(chǔ)空間</p><p>  c_l_s .usect "sin_vars&qu

84、ot;,1 ;為d_xs中sin_vars保留1個(gè)存儲(chǔ)空間</p><p>  .text ;定義代碼開(kāi)始段</p><p>  SSBX FRCT ;設(shè)置FRCT=1以解決冗余符號(hào)位</p><p>  STM #d_coef_s,AR5 ;AR5指向d_coe

85、f_s首地址</p><p>  RPT #3 ;重復(fù)下條指令4次</p><p>  MVPD #table_s,*AR5+ ;table_s中的數(shù)復(fù)制到AR5指向的單元</p><p>  STM #d_coef_s,AR3 ;AR3指向d_coef_s首地址</p><

86、p>  STM #d_xs,AR2 ;AR2指向d_xs首地址</p><p>  STM #c_l_s,AR4 ;AR4指向c_l_s首地址</p><p>  ST #7FFFh,c_l_s ;7FFFh →c_l_s</p><p>  SQUR *AR2+,A

87、 ;AR2指向累加器A中的數(shù)值求其平方</p><p>  ST A,*AR2 ;(A)左移16位→AR2</p><p>  ||LD *AR4,B ;(AR4)左移16位→B</p><p>  MASR *AR2+,*AR3+,B,A ;從累加器A中減去(AR2)*(AR3)<

88、;/p><p>  MPYA A ;操作數(shù)與累加器A中高位相乘</p><p>  STH A,*AR2 ;(A)高16位→AR2</p><p>  MASR *AR2-,*AR3+,B,A ;從累加器A中減去(AR2)*(AR3)</p><p>  MPYA

89、 *AR2+ ;AR2指向的數(shù)與累加器A的高16位相乘</p><p>  ST B,*AR2 ;(B)左移16位→AR2</p><p>  ||LD *AR4,B ;(AR4)左移16位→B</p><p>  MASR *AR2-,*AR3+,B,A ;從

90、累加器A中減去(AR2)*(AR3)</p><p>  MPYA *AR2+ ;與累加器A中高16位相乘</p><p>  ST B,*AR2 ;(B)左移16位→AR2</p><p>  ||LD *AR4,B ;(AR4)左移16位→B MA

91、SR *AR2-,*AR3+,B,A ;從累加器A中減去(AR2)*(AR3)</p><p>  MPYA d_xs ;d_xs指向的操作數(shù)與累加器A中高16位相乘</p><p>  STH B,d_sinx ;(B)高16位→d_sinx</p><p>  RET

92、 ;返回</p><p><b>  cosx:</b></p><p>  .def d_xc,d_cosx ;定義標(biāo)號(hào)d_xc,d_cosx</p><p>  d_coef_c .usect "coef_c",4 ;為coef_c保留4個(gè)存儲(chǔ)空間</

93、p><p>  .data ;定義數(shù)據(jù)代碼段</p><p>  table_c .word 0249h ;c1=1/(7*8)</p><p>  .word 0444h ;c2=1/(6*5)</p><p>  .word 0aa

94、bh ;c3=1/(3*4)</p><p>  .word 4000h ;c4=1/2</p><p>  d_xc .usect "cos_vars",1 ;為d_xc中cos_vars保存1個(gè)存儲(chǔ)單元</p><p>  d_squr_xc .usect &q

95、uot;cos_vars",1 ;為d_squr_xc中cos_vars保存1個(gè)存儲(chǔ)單元</p><p>  d_temp_c .usect "cos_vars",1 ;為d_temp_c中cos_vars保存1個(gè)存儲(chǔ)單元</p><p>  d_cosx .usect "cos_vars",1

96、 ;為d_cosx中cos_vars保存1個(gè)存儲(chǔ)單元</p><p>  c_l_c .usect "cos_vars",1 ;為c_l_c中cos_vars保存1個(gè)存儲(chǔ)單元</p><p>  .text ;定義文本代碼段</p><p>  SSBX FRCT

97、 ;FRCT=1以清除冗余符號(hào)位</p><p>  STM #d_coef_c,AR5 ;AR5指向d_coef_c首地址</p><p>  RPT #3 ;重復(fù)下條指令4次</p><p>  MVPD #table_c,*AR5+ ;把table_c中的數(shù)復(fù)制到中AR5&l

98、t;/p><p>  STM #d_coef_c,AR3 ;AR3指向d_coef_c首地址</p><p>  STM #d_xc,AR2 ;AR2 指向d_xc首地址</p><p>  STM #c_l_c,AR4 ;AR4指向c_l_c首地址</p><p>  ST

99、 #7FFFh,c_l_c ;7FFFh→c_l_c</p><p>  SQUR *AR2+,A ;求X的平方存放在累加器A中</p><p>  ST A,*AR2 ;(A)左移16位→AR2</p><p>  ||LD *AR4,B ;(AR4)左移1

100、6位→B</p><p>  MASR *AR2+,*AR3+,B,A ;A=1-x^2/56,T=x^2</p><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)</

101、p><p>  MASR *AR2-,*AR3+,B,A ;A=1-x^2/30(1-x^2/56),</p><p>  T= x^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

102、 ;(d_temp)= x^2(1-x^2/30(1-x^2/56))</p><p>  ||LD *AR4,B ;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

103、 ;-1/2</p><p>  NEG A ;</p><p>  MPYA *AR2+ ;B=1-x^2/2(1-x^2/12(1-x^2/30</p><p> ??;(1-x^2/56)))</p><p>  MAR *AR2+

104、 ;</p><p>  RETD ;</p><p>  ADD *AR4,16,B ;B=1-x^2/2(1-x^2/12(1-x^2/30</p><p> ??;(1-x^2/56)))</p><p>  STH B,*AR2

105、 ;cos(theta)</p><p>  RET ;</p><p>  .end ;</p><p>  2. .cmd文件描述輸入文件和輸出文件,說(shuō)明系統(tǒng)中有哪些可用存儲(chǔ)器、程序段、堆棧及復(fù)位向量和中斷向量等安排在什么地方。其中MEMORY段就是用來(lái)規(guī)定目標(biāo)

106、存儲(chǔ)器的模型,通過(guò)這條指令,可以定義系統(tǒng)中所包含的各種形式的存儲(chǔ)器,以及它們占據(jù)的地址范圍;SECTIONS段說(shuō)明如何將輸入段組合成輸出段以及在可執(zhí)行文件中定義輸出段、規(guī)定輸出段在存儲(chǔ)器中的位置等。正弦波程序鏈接命令文件sin.cmd:</p><p><b>  MEMORY</b></p><p><b>  {</b></p>

107、<p><b>  PAGE 0:</b></p><p>  EPROM: org = 0E000h, len = 1000h</p><p>  VECS: org = 0FF80h, len = 0080h</p><p><b>  PAGE 1:</b>

108、;</p><p>  SPRAM: org = 0060h, len = 0020h</p><p>  DARAM1: org = 0080h, len = 0010h</p><p>  DARAM2: org = 0090h, len = 0010h</p><p&

109、gt;  DARAM3: org = 0200h, len = 0200h</p><p><b>  }</b></p><p>  SECTIONS </p><p><b>  {</b></p><p>  .text :>EPROM PAGE

110、 0 ;文本代碼段其實(shí)地址為0E000h,長(zhǎng)度為1000h</p><p>  .data :>EPROM PAGE 0 ;數(shù)據(jù)代碼段其實(shí)地址為0D000h</p><p>  STACK :>SPRAM PAGE 1 ;堆棧起始地址為0060h,長(zhǎng)度為0020h</p><p>  sin_vars :>DARA

111、M1 PAGE 1 ;標(biāo)號(hào)為sin_vars段的起始地址為0080</p><p><b> ?。婚L(zhǎng)度為0010h</b></p><p>  coef_s :>DARAM1 PAGE 1 ;標(biāo)號(hào)為coef_s段的起始地址為0070h</p><p><b> ??;長(zhǎng)度為0010h</b></

112、p><p>  cos_vars :>DARAM2 PAGE 1 ;標(biāo)號(hào)為cos_vars段的起始地址為0090h</p><p><b> ??;長(zhǎng)度為0010h</b></p><p>  coef_c :>DARAM2 PAGE 1 ;標(biāo)號(hào)為coef_c段的起始地址為0080h</p><p&

113、gt;<b> ??;長(zhǎng)度為0020h</b></p><p>  sin_x : align(512) {} > DARAM3 PAGE 1</p><p>  .vectors :>VECS PAGE 0</p><p><b>  }</b></p><p> 

114、 3.復(fù)位向量文件sin_v.asm:</p><p>  .title "sin_v.asm"</p><p>  .ref _c_int00</p><p>  .sect ".vectors"</p><p>  B _c_int00<

115、/p><p><b>  .end</b></p><p><b>  5.2 調(diào)試過(guò)程</b></p><p>  1. 打開(kāi)Setup CCStudio v3.3如圖4-2所示。</p><p>  圖4-1 Setup CCStudio v3.3的打開(kāi)界面</p><p>

溫馨提示

  • 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ù)僅提供信息存儲(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)論