畢業(yè)設(shè)計(jì)--基于dsp的電機(jī)調(diào)速驅(qū)動(dòng)電路的設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩92頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  摘要</b></p><p>  介紹了一種基于感應(yīng)電機(jī)數(shù)學(xué)模型,提出了一種基于TMS320F240的全數(shù)字化矢量控制SVPWM交流調(diào)速系統(tǒng),在對(duì)系統(tǒng)的總體設(shè)計(jì)方案作了分析的基礎(chǔ)上,重點(diǎn)介紹了電流采樣、速度檢測(cè)、驅(qū)動(dòng)保護(hù)以及控制系統(tǒng)軟件設(shè)計(jì).結(jié)果表明,該系統(tǒng)硬件結(jié)構(gòu)簡(jiǎn)單、實(shí)時(shí)性強(qiáng). 基于DSP交流電動(dòng)機(jī)VVVF控制系統(tǒng)設(shè)計(jì)方案,采用SVPWM控制策略,具

2、有過(guò)調(diào)制功能,當(dāng)母線(xiàn)電壓波動(dòng)時(shí),能使PWM波形輸出穩(wěn)定,實(shí)驗(yàn)波形顯示該系統(tǒng)具有較好的性能</p><p>  關(guān)鍵詞:數(shù)字信號(hào)處理器;空間矢量PWM;矢量控制系統(tǒng);智能功率模塊; 變頻調(diào)速; 交流異步電機(jī)</p><p><b>  Abstract</b></p><p>  Because of the electrical machin

3、ery mathematics model of reaction , control SVPWM and exchange the speed of adjusting systematically after putting forward a kind of totally digitilized vector based on TMS320F240, on the basis of the thing that the desi

4、gn plan of totality to the system has done analysis , have recommended especially the electric current samples , the speed measure , drive protection and control system software design. The result indicates , hist system

5、 hardware is of simple struc</p><p>  Exchange the design plan of the motor VVVF control system because of DSP, adopt SVPWM control strategy, have functions of modulating , when the voltage of bus bar fluctu

6、ates , can make PWM wave form export steadily , the experiment wave form shows that should have better performance systematically</p><p>  Key Word:Digital signal processor; Space vector PWM; Control syst

7、em of the vector; Intellectual power module; Frequency conversion adjusts the speed; Exchange the asynchronous motor</p><p>  目 錄</p><p>  摘要……………………………………………………………………………………1</p

8、><p>  目錄……………………………………………………………………………………2</p><p>  緒論 …………………………………………………………………4</p><p>  1.1DSP芯片的概述……………………………………………………………………4</p><p>  1.2采用DSP設(shè)計(jì)的優(yōu)勢(shì) …………………………………………

9、…………………4</p><p>  1.3本論文所做設(shè)計(jì)要求達(dá)到的功能 ………………………………………………4</p><p>  DSP的特點(diǎn)………………………………………………………………5</p><p>  2.1DSP系統(tǒng) …………………………………………………………………………5</p><p>  2.2可編程DSP芯片 …

10、………………………………………………………………8</p><p>  2.3溢出問(wèn)題及其解決方案…………………………………………………………14</p><p>  2.4倍率的問(wèn)題和解決方案…………………………………………………………14</p><p>  2.5 DSP芯片的定點(diǎn)運(yùn)算……………………………………………………………15</p>&

11、lt;p>  2.5.1數(shù) 的 定 標(biāo) …………………………………………………………………15</p><p>  2.5.2高級(jí)語(yǔ)言:從浮點(diǎn)到定點(diǎn)……………………………………………………17</p><p>  2.5.3 DSP定點(diǎn)算術(shù)運(yùn)………………………………………………………………23</p><p>  2.5.4非線(xiàn)性運(yùn)算的定點(diǎn)快速實(shí)現(xiàn)………………

12、…………………………………27</p><p>  異步電動(dòng)機(jī)調(diào)速的概述以及驅(qū)動(dòng)電路設(shè)計(jì)</p><p>  3.1三相異步電動(dòng)機(jī)的結(jié)構(gòu)和原理…………………………………………………33</p><p>  3.2三相異步電動(dòng)機(jī)轉(zhuǎn)動(dòng)的基本工作原理…………………………………………34</p><p>  3.3三相交流電動(dòng)機(jī)的旋轉(zhuǎn)原理………………

13、……………………………………34</p><p>  3.4三相異步電動(dòng)機(jī)的調(diào)速…………………………………………………………35</p><p>  3.5DSP控制思想以及PC機(jī)與DSP間的通訊 …………………………………38</p><p>  3.6電機(jī)的變頻調(diào)速…………………………………………………………………43</p><p> 

14、 3.7電壓空間矢量技術(shù)SVPWM ……………………………………………………45</p><p>  DSP模塊及其功能………………………………………………………59</p><p>  4.1仿真模塊…………………………………………………………………………59</p><p>  4.2SPI模塊接口 ……………………………………………………………………60&l

15、t;/p><p>  4.3 RS232串行通信接口模塊………………………………………………………61</p><p>  4.4 CAN控制器模塊…………………………………………………………………64</p><p>  4.5模數(shù)轉(zhuǎn)換模塊……………………………………………………………………64</p><p>  4.6儲(chǔ)存器空間………………

16、………………………………………………………67</p><p>  4.7數(shù)字輸入/輸出模塊(I/O)……………………………………………………71</p><p>  C語(yǔ)言的開(kāi)發(fā)…………………………………………………………75</p><p>  5.1 FOC算法………………………………………………………………………75</p><p>

17、  5.2 設(shè)計(jì)程序總體思路 …………………………………………………………75</p><p>  5.3 設(shè)計(jì)程序 ……………………………………………………………………77</p><p><b>  總結(jié)</b></p><p>  6.1 結(jié)果的 ………………………………………………………………………87</p><p

18、>  6.2設(shè)計(jì)總結(jié)體會(huì) ………………………………………………………………87</p><p>  6.3參考文獻(xiàn) …………………………………………………………………89</p><p>  6.4致謝 …………………………………………………………………………90</p><p><b>  第一章 緒論</b></p>

19、<p>  1.1 DSP芯片概述</p><p>  DSP芯片,也稱(chēng)數(shù)字信號(hào)處理器,是一種特別適合于進(jìn)行數(shù)字信號(hào)處理運(yùn)算的微處理器,其主要應(yīng)用是實(shí)時(shí)快速地實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法。根據(jù)數(shù)字信號(hào)處理的要求,DSP芯片一般具有如下主要特點(diǎn):</p><p>  (1) 在一個(gè)指令周期內(nèi)可完成一次乘法和一次加法;</p><p>  (2) 程序和數(shù)據(jù)

20、空間分開(kāi),可以同時(shí)訪(fǎng)問(wèn)指令和數(shù)據(jù);</p><p>  (3) 片內(nèi)具有快速 RAM,通??赏ㄟ^(guò)獨(dú)立的數(shù)據(jù)總線(xiàn)在兩塊中同時(shí)訪(fǎng)問(wèn);</p><p>  (4) 具有低開(kāi)銷(xiāo)或無(wú)開(kāi)銷(xiāo)循環(huán)及跳轉(zhuǎn)的硬件支持;</p><p>  (5) 快速的中斷處理和硬件I/O支持;</p><p>  (6) 具有在單周期內(nèi)操作的多個(gè)硬件地址產(chǎn)生器;</p&

21、gt;<p>  (7) 可以并行執(zhí)行多個(gè)操作;</p><p>  (8) 支持流水線(xiàn)操作,使取指、譯碼和執(zhí)行等操作可以重疊執(zhí)行。</p><p>  當(dāng)然,與通用微處理器相比,DSP芯片的其他通用功能相對(duì)較弱些。</p><p>  1.2 DSP(數(shù)字信號(hào)處理器)在電機(jī)控制方面的優(yōu)勢(shì)</p><p>  DSP以運(yùn)算速度

22、快為顯著特征,而單片機(jī)則以數(shù)字控制功能強(qiáng)為特點(diǎn)。電動(dòng)機(jī)的數(shù)字控制既要求控制器有強(qiáng)大的I/O控制功能,又要求控制器有高速的信號(hào)處理能力以實(shí)現(xiàn)實(shí)時(shí)控制,因此,世界上各大DSP生產(chǎn)商將DSP的高運(yùn)算速度與單片機(jī)的高控制能力相結(jié)合,開(kāi)發(fā)出電動(dòng)機(jī)控制的專(zhuān)用DSP。這種DSP還集成了電動(dòng)機(jī)控制所必須的可增加死區(qū)且靈活多變的多路PWM信號(hào)發(fā)生器,高速高精度ADC,以及用于電動(dòng)機(jī)速度和位置反饋的編碼器接口等電路,因此可以說(shuō)這種DSP價(jià)格的不斷下調(diào),并與

23、單片機(jī)的價(jià)格越來(lái)越接近,以及其開(kāi)發(fā)工具價(jià)格的不斷下降,一個(gè)電動(dòng)機(jī)DSP控制的普及時(shí)代已經(jīng)來(lái)臨。</p><p>  3 本論文所做設(shè)計(jì)要求達(dá)到的功能</p><p>  設(shè)計(jì)完整的DSP的驅(qū)動(dòng)電路。</p><p>  運(yùn)用C語(yǔ)言編程實(shí)現(xiàn)驅(qū)動(dòng)電路的控制功能。</p><p>  在微機(jī)中實(shí)現(xiàn)虛擬控制,我們?cè)谖C(jī)上輸入一個(gè)轉(zhuǎn)速,電機(jī)會(huì)按照我們

24、所輸入的轉(zhuǎn)速,轉(zhuǎn)動(dòng),實(shí)現(xiàn)自動(dòng)調(diào)節(jié)的功能。</p><p>  第二章 DSP的特點(diǎn)</p><p>  2.1 DSP的系統(tǒng)</p><p>  數(shù)字信號(hào)處理(Digital Signal Processing,簡(jiǎn)稱(chēng)DSP)是一門(mén)涉及許多學(xué)科而又廣泛應(yīng)用于許多領(lǐng)域的新興學(xué)科。20世紀(jì)60年代以來(lái),隨著計(jì)算機(jī)和信息技術(shù)的飛速發(fā)展,數(shù)字信號(hào)處理技術(shù)應(yīng)運(yùn)而生并得到迅速的

25、發(fā)展。在過(guò)去的二十多年時(shí)間里,數(shù)字信號(hào)處理已經(jīng)在通信等領(lǐng)域得到極為廣泛的應(yīng)用。</p><p>  數(shù)字信號(hào)處理是利用計(jì)算機(jī)或?qū)S锰幚碓O(shè)備,以數(shù)字形式對(duì)信號(hào)進(jìn)行采集、變換、濾波、估值、增強(qiáng)、壓縮、識(shí)別等處理,以得到符合人們需要的信號(hào)形式。</p><p>  數(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ò)

26、來(lái),數(shù)字信號(hào)處理的應(yīng)用又促進(jìn)了數(shù)字信號(hào)處理理論的提高。而數(shù)字信號(hào)處理的實(shí)現(xiàn)則是理論和應(yīng)用之間的橋梁。</p><p>  數(shù)字信號(hào)處理是以眾多學(xué)科為理論基礎(chǔ)的,它所涉及的范圍極其廣泛。例如,在數(shù)學(xué)領(lǐng)域,微積分、概率統(tǒng)計(jì)、隨機(jī)過(guò)程、數(shù)值分析等都是數(shù)字信號(hào)處理的基本工具,與網(wǎng)絡(luò)理論、信號(hào)與系統(tǒng)、控制論、通信理論、故障診斷等也密切相關(guān)。近來(lái)新興的一些學(xué)科,如人工智能、模式識(shí)別、神經(jīng)網(wǎng)絡(luò)等,都與數(shù)字信號(hào)處理密不可分??梢?/p>

27、說(shuō),數(shù)字信號(hào)處理是把許多經(jīng)典的理論體系作為自己的理論基礎(chǔ),同時(shí)又使自己成為一系列新興學(xué)科的理論基礎(chǔ)。</p><p>  數(shù)字信號(hào)處理的實(shí)現(xiàn)方法一般有以下幾種:</p><p>  (1) 在通用的計(jì)算機(jī)(如PC機(jī))上用軟件(如Fortran、C語(yǔ)言)實(shí)現(xiàn);</p><p>  (2) 在通用計(jì)算機(jī)系統(tǒng)中加上專(zhuān)用的加速處理機(jī)實(shí)現(xiàn);</p><p&

28、gt;  (3) 用通用的單片機(jī)(如MCS-51、96系列等)實(shí)現(xiàn),這種方法可用于一些不太復(fù)雜的數(shù)字信號(hào)處理,如數(shù)字控制等;</p><p>  (4) 用通用的可編程DSP芯片實(shí)現(xiàn)。與單片機(jī)相比,DSP芯片具有更加適合于數(shù)字信號(hào)處理的軟件和硬件資源,可用于復(fù)雜的數(shù)字信號(hào)處理算法;</p><p>  (5) 用專(zhuān)用的DSP芯片實(shí)現(xiàn)。在一些特殊的場(chǎng)合,要求的信號(hào)處理速度極高,用通用DSP芯

29、片很難實(shí)現(xiàn),例如專(zhuān)用于FFT、數(shù)字濾波、卷積、相關(guān)等算法的DSP芯片,這種芯片將相應(yīng)的信號(hào)處理算法在芯片內(nèi)部用硬件實(shí)現(xiàn),無(wú)需進(jìn)行編程。</p><p>  在上述幾種方法中,第1種方法的缺點(diǎn)是速度較慢,一般可用于DSP算法的模擬;第2種和第5種方法專(zhuān)用性強(qiáng),應(yīng)用受到很大的限制,第2種方法也不便于系統(tǒng)的獨(dú)立運(yùn)行;第3種方法只適用于實(shí)現(xiàn)簡(jiǎn)單的DSP算法;只有第4種方法才使數(shù)字信號(hào)處理的應(yīng)用打開(kāi)了新的局面。.</

30、p><p>  2.2 DSP系統(tǒng)</p><p>  2.2.1 DSP系統(tǒng)構(gòu)成</p><p>  圖1.1所示為一個(gè)典型的DSP系統(tǒng)。圖中的輸入信號(hào)可以有各種各樣的形式。例如,它可以是麥克風(fēng)輸出的語(yǔ)音信號(hào)或是電話(huà)線(xiàn)來(lái)的已調(diào)數(shù)據(jù)信號(hào),可以是編碼后在數(shù)字鏈路上傳輸或存儲(chǔ)在計(jì)算機(jī)里的攝像機(jī)圖像信號(hào)等。</p><p>  圖1.1 典型的D

31、SP系統(tǒng)</p><p>  輸入信號(hào)首先進(jìn)行帶限濾波和抽樣,然后進(jìn)行A/D(Analog to Digital)變換將信號(hào)變換成數(shù)字比特流。根據(jù)奈奎斯特抽樣定理,為保證信息不丟失,抽樣頻率至少必須是輸入帶限信號(hào)最高頻率的2倍。</p><p>  DSP芯片的輸入是A/D變換后得到的以抽樣形式表示的數(shù)字信號(hào),DSP芯片對(duì)輸入的數(shù)字信號(hào)進(jìn)行某種形式的處理,如進(jìn)行一系列的乘累加操作(MAC)

32、。數(shù)字處理是DSP的關(guān)鍵,這與其他系統(tǒng)(如電話(huà)交換系統(tǒng))有很大的不同,在交換系統(tǒng)中,處理器的作用是進(jìn)行路由選擇,它并不對(duì)輸入數(shù)據(jù)進(jìn)行修改。因此雖然兩者都是實(shí)時(shí)系統(tǒng),但兩者的實(shí)時(shí)約束條件卻有很大的不同。最后,經(jīng)過(guò)處理后的數(shù)字樣值再經(jīng)D/A(Digital to Analog)變換轉(zhuǎn)換為模擬樣值,之后再進(jìn)行內(nèi)插和平滑濾波就可得到連續(xù)的模擬波形。</p><p>  必須指出的是,上面給出的DSP系統(tǒng)模型是一個(gè)典型模型

33、,但并不是所有的DSP系統(tǒng)都必須具有模型中的所有部件。如語(yǔ)音識(shí)別系統(tǒng)在輸出端并不是連續(xù)的波形,而是識(shí)別結(jié)果,如數(shù)字、文字等;有些輸入信號(hào)本身就是數(shù)字信號(hào)(如CD:Compact Disk),因此就不必進(jìn)行模數(shù)變換了。</p><p>  2.2.2 DSP系統(tǒng)的特點(diǎn)</p><p>  數(shù)字信號(hào)處理系統(tǒng)是以數(shù)字信號(hào)處理為基礎(chǔ),因此具有數(shù)字處理的全部?jī)?yōu)點(diǎn):</p><p

34、>  (1) 接口方便。DSP系統(tǒng)與其他以現(xiàn)代數(shù)字技術(shù)為基礎(chǔ)的系統(tǒng)或設(shè)備都是相互兼容的,與這樣的系統(tǒng)接口以實(shí)現(xiàn)某種功能要比模擬系統(tǒng)與這些系統(tǒng)接口要容易得多;</p><p>  (2) 編程方便。DSP系統(tǒng)中的可編程DSP芯片可使設(shè)計(jì)人員在開(kāi)發(fā)過(guò)程中靈活方便地對(duì)軟件進(jìn)行修改和升級(jí);</p><p>  (3) 穩(wěn)定性好。DSP系統(tǒng)以數(shù)字處理為基礎(chǔ),受環(huán)境溫度以及噪聲的影響較小,可靠性

35、高;</p><p>  (4) 精度高。16位數(shù)字系統(tǒng)可以達(dá)到的精度;</p><p>  (5) 可重復(fù)性好。模擬系統(tǒng)的性能受元器件參數(shù)性能變化比較大,而數(shù)字系統(tǒng)基本不受影響,因此數(shù)字系統(tǒng)便于測(cè)試、調(diào)試和大規(guī)模生產(chǎn);</p><p>  (6) 集成方便。DSP系統(tǒng)中的數(shù)字部件有高度的規(guī)范性,便于大規(guī)模集成。</p><p>  當(dāng)然,數(shù)

36、字信號(hào)處理也存在一定的缺點(diǎn)。例如,對(duì)于簡(jiǎn)單的信號(hào)處理任務(wù),如與模擬交換線(xiàn)的電話(huà)接口,若采用DSP則使成本增加。DSP系統(tǒng)中的高速時(shí)鐘可能帶來(lái)高頻干擾和電磁泄漏等問(wèn)題,而且DSP系統(tǒng)消耗的功率也較大。此外,DSP技術(shù)更新的速度快,數(shù)學(xué)知識(shí)要求多,開(kāi)發(fā)和調(diào)試工具還不盡完善。</p><p>  雖然DSP系統(tǒng)存在著一些缺點(diǎn),但其突出的優(yōu)點(diǎn)已經(jīng)使之在通信、語(yǔ)音、圖像、雷達(dá)、生物醫(yī)學(xué)、工業(yè)控制、儀器儀表等許多領(lǐng)域得到越來(lái)

37、越廣泛的應(yīng)用。</p><p>  2.2.3 DSP系統(tǒng)的設(shè)計(jì)過(guò)程</p><p>  總的來(lái)說(shuō),DSP系統(tǒng)的設(shè)計(jì)還沒(méi)有非常好的正規(guī)設(shè)計(jì)方法。圖1.2所示是DSP系統(tǒng)設(shè)計(jì)的一般過(guò)程。</p><p>  圖1.2 DSP系統(tǒng)的設(shè)計(jì)流程</p><p>  在設(shè)計(jì) DSP 系統(tǒng)之前,首先必須根據(jù)應(yīng)用系統(tǒng)的目標(biāo)確定系統(tǒng)的性能指標(biāo)、信號(hào)處理的

38、要求,通??捎脭?shù)據(jù)流程圖、數(shù)學(xué)運(yùn)算序列、正式的符號(hào)或自然語(yǔ)言來(lái)描述。</p><p>  第二步是根據(jù)系統(tǒng)的要求進(jìn)行高級(jí)語(yǔ)言的模擬。一般來(lái)說(shuō),為了實(shí)現(xiàn)系統(tǒng)的最終目標(biāo),需要對(duì)輸入的信號(hào)進(jìn)行適當(dāng)?shù)奶幚?,而處理方法的不同?huì)導(dǎo)致不同的系統(tǒng)性能,要得到最佳的系統(tǒng)性能,就必須在這一步確定最佳的處理方法,即數(shù)字信號(hào)處理的算法(Algorithm),因此這一步也稱(chēng)算法模擬階段。例如,語(yǔ)音壓縮編碼算法就是要在確定的壓縮比條件下,獲

39、得最佳的合成語(yǔ)音。算法模擬所用的輸入數(shù)據(jù)是實(shí)際信號(hào)經(jīng)采集而獲得的,通常以計(jì)算機(jī)文件的形式存儲(chǔ)為數(shù)據(jù)文件。如語(yǔ)音壓縮編碼算法模擬時(shí)所用的語(yǔ)音信號(hào)就是實(shí)際采集而獲得并存儲(chǔ)為計(jì)算機(jī)文件形式的語(yǔ)音數(shù)據(jù)文件。有些算法模擬時(shí)所用的輸入數(shù)據(jù)并不一定要是實(shí)際采集的信號(hào)數(shù)據(jù),只要能夠驗(yàn)證算法的可行性,輸入假設(shè)的數(shù)據(jù)也是可以的。</p><p>  在完成第二步之后,接下來(lái)就可以設(shè)計(jì)實(shí)時(shí)DSP系統(tǒng),實(shí)時(shí)DSP系統(tǒng)的設(shè)計(jì)包括硬件設(shè)計(jì)和

40、軟件設(shè)計(jì)兩個(gè)方面。硬件設(shè)計(jì)首先要根據(jù)系統(tǒng)運(yùn)算量的大小、對(duì)運(yùn)算精度的要求、系統(tǒng)成本限制以及體積、功耗等要求選擇合適的DSP芯片。然后設(shè)計(jì)DSP芯片的外圍電路及其他電路。軟件設(shè)計(jì)和編程主要根據(jù)系統(tǒng)要求和所選的DSP芯片編寫(xiě)相應(yīng)的DSP匯編程序,若系統(tǒng)運(yùn)算量不大且有高級(jí)語(yǔ)言編譯器支持,也可用高級(jí)語(yǔ)言(如C語(yǔ)言)編程。由于現(xiàn)有的高級(jí)語(yǔ)言編譯器的效率還比不上手工編寫(xiě)匯編語(yǔ)言的效率,因此在實(shí)際應(yīng)用系統(tǒng)中常常采用高級(jí)語(yǔ)言和匯編語(yǔ)言的混合編程方法,即在

41、算法運(yùn)算量大的地方,用手工編寫(xiě)的方法編寫(xiě)匯編語(yǔ)言,而運(yùn)算量不大的地方則采用高級(jí)語(yǔ)言。采用這種方法,既可縮短軟件開(kāi)發(fā)的周期,提高程序的可讀性和可移植性,又能滿(mǎn)足系統(tǒng)實(shí)時(shí)運(yùn)算的要求。</p><p>  DSP硬件和軟件設(shè)計(jì)完成后,就需要進(jìn)行硬件和軟件的調(diào)試。軟件的調(diào)試一般借助于DSP開(kāi)發(fā)工具,如軟件模擬器、DSP開(kāi)發(fā)系統(tǒng)或仿真器等。調(diào)試DSP算法時(shí)一般采用比較實(shí)時(shí)結(jié)果與模擬結(jié)果的方法,如果實(shí)時(shí)程序和模擬程序的輸入相

42、同,則兩者的輸出應(yīng)該一致。應(yīng)用系統(tǒng)的其他軟件可以根據(jù)實(shí)際情況進(jìn)行調(diào)試。硬件調(diào)試一般采用硬件仿真器進(jìn)行調(diào)試,如果沒(méi)有相應(yīng)的硬件仿真器,且硬件系統(tǒng)不是十分復(fù)雜,也可以借助于一般的工具進(jìn)行調(diào)試。</p><p>  系統(tǒng)的軟件和硬件分別調(diào)試完成后,就可以將軟件脫離開(kāi)發(fā)系統(tǒng)而直接在應(yīng)用系統(tǒng)上運(yùn)行。當(dāng)然,DSP系統(tǒng)的開(kāi)發(fā),特別是軟件開(kāi)發(fā)是一個(gè)需要反復(fù)進(jìn)行的過(guò)程,雖然通過(guò)算法模擬基本上可以知道實(shí)時(shí)系統(tǒng)的性能,但實(shí)際上模擬環(huán)境

43、不可能做到與實(shí)時(shí)系統(tǒng)環(huán)境完全一致,而且將模擬算法移植到實(shí)時(shí)系統(tǒng)時(shí)必須考慮算法是否能夠?qū)崟r(shí)運(yùn)行的問(wèn)題。如果算法運(yùn)算量太大不能在硬件上實(shí)時(shí)運(yùn)行,則必須重新修改或簡(jiǎn)化算法。</p><p>  2.3 可編程DSP芯片</p><p>  2.3.2 DSP芯片的發(fā)展</p><p>  世界上第一個(gè)單片 DSP 芯片應(yīng)當(dāng)是1978年 AMI公司發(fā)布的 S2811,1

44、979年美國(guó)Intel公司發(fā)布的商用可編程器件2920是DSP芯片的一個(gè)主要里程碑。這兩種芯片內(nèi)部都沒(méi)有現(xiàn)代DSP芯片所必須有的單周期乘法器。1980 年,日本 NEC 公司推出的μP D7720是第一個(gè)具有乘法器的商用 DSP 芯片。</p><p>  在這之后,最成功的DSP 芯片當(dāng)數(shù)美國(guó)德州儀器公司(Texas Instruments,簡(jiǎn)稱(chēng)TI)的一系列產(chǎn)品。TI 公司在1982年成功推出其第一代 DSP

45、 芯片 TMS32010及其系列產(chǎn)品TMS32011、TMS320C10/C14/C15/C16/C17等,之后相繼推出了第二代DSP芯片TMS32020、TMS320C25/C26/C28,第三代DSP芯片TMS320C30/C31/C32,第四代DSP芯片TMS320C40/C44,第五代 DSP 芯片TMS320C5X/C54X,第二代DSP芯片的改進(jìn)型TMS320C2XX,集多片DSP芯片于一體的高性能DSP芯片TMS320C8

46、X以及目前速度最快的第六代DSP芯片TMS320C62X/C67X等。TI將常用的DSP芯片歸納為三大系列,即:TMS320C2000系列(包括TMS320C2X/C2XX)、TMS320C5000系列(包括TMS320C5X/C54X/C55X)、TMS320C6000系列(TMS320C62X/C67X)。如今,TI公司的一系列DSP產(chǎn)品已經(jīng)成為當(dāng)今世界上最有影響的DSP芯片。TI公司也成為世界</p><p&g

47、t;  第一個(gè)采用CMOS工藝生產(chǎn)浮點(diǎn)DSP芯片的是日本的 Hitachi 公司,它于1982年推出了浮點(diǎn)DSP芯片。1983 年 日本Fujitsu 公司推出的MB8764,其指令周期為 120ns,且具有雙內(nèi)部總線(xiàn),從而使處理吞吐量發(fā)生了一個(gè)大的飛躍。而第一個(gè)高性能浮點(diǎn)DSP芯片應(yīng)是 AT&T 公司于1984 年推出的DSP32。</p><p>  與其他公司相比,Motorola 公司在推出 DS

48、P 芯片方面相對(duì)較晚。1986年,該公司推出了定點(diǎn)處理器MC56001。1990年,推出了與IEEE 浮點(diǎn)格式兼容的浮點(diǎn) DSP 芯片 MC96002。</p><p>  美國(guó)模擬器件公司(Analog Devices,簡(jiǎn)稱(chēng)AD)在DSP芯片市場(chǎng)上也占有一定的份額,相繼推出了一系列具有自己特點(diǎn)的DSP芯片,其定點(diǎn)DSP芯片有ADSP2101/2103/2105、ASDP2111/2115、ADSP2161/21

49、62/2164以及ADSP2171/2181,浮點(diǎn)DSP芯片有ADSP21000/21020、ADSP21060/21062等。</p><p>  自1980年以來(lái),DSP芯片得到了突飛猛進(jìn)的發(fā)展,DSP芯片的應(yīng)用越來(lái)越廣泛。從運(yùn)算速度來(lái)看,MAC(一次乘法和一次加法)時(shí)間已經(jīng)從20世紀(jì)80年代初的400ns(如TMS32010)降低到10ns以下(如TMS320C54X、TMS320C62X/67X等),處理

50、能力提高了幾十倍。DSP芯片內(nèi)部關(guān)鍵的乘法器部件從1980年的占模片區(qū)(die area)的40%左右下降到5%以下,片內(nèi)RAM數(shù)量增加一個(gè)數(shù)量級(jí)以上。從制造工藝來(lái)看,1980年采用4μm 的 N溝道MOS(NMOS)工藝,而現(xiàn)在則普遍采用亞微米(Micron)CMOS工藝。DSP芯片的引腳數(shù)量從1980年的最多64個(gè)增加到現(xiàn)在的200個(gè)以上,引腳數(shù)量的增加,意味著結(jié)構(gòu)靈活性的增加,如外部存儲(chǔ)器的擴(kuò)展和處理器間的通信等。此外,DSP芯片

51、的發(fā)展使DSP系統(tǒng)的成本、體積、重量和功耗都有很大程度的下降。表1.1 是TI公司DSP芯片1982年、1992年、1999年的比較表。表1.2則是世界上主要DSP芯片供應(yīng)商的代表芯片的一些數(shù)據(jù)。</p><p>  表1.1 TI DSP 芯片發(fā)展比較表(典型值)</p><p>  表1.2 單片可編程DSP芯片</p><p>  2.3.3 DSP芯片

52、的分類(lèi)</p><p>  DSP芯片可以按照下列三種方式進(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

53、 電氣公司的DSP芯片、TI公司的TMS320C2XX系列芯片屬于這一類(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>  

54、這是根據(jù)DSP芯片工作的數(shù)據(jù)格式來(lái)分類(lèi)的。數(shù)據(jù)以定點(diǎn)格式工作的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&a

55、mp;T公司的DSP32/32C,Motolora公司的MC96002等。</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>

56、  3.按用途分</b></p><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)用型

57、DSP芯片。</p><p>  本書(shū)主要討論通用型DSP芯片。</p><p>  2.3.4 DSP芯片的選擇</p><p>  設(shè)計(jì)DSP應(yīng)用系統(tǒng),選擇DSP芯片是非常重要的一個(gè)環(huán)節(jié)。只有選定了DSP芯片,才能進(jìn)一步設(shè)計(jì)其外圍電路及系統(tǒng)的其他電路??偟膩?lái)說(shuō),DSP芯片的選擇應(yīng)根據(jù)實(shí)際的應(yīng)用系統(tǒng)需要而確定。不同的DSP應(yīng)用系統(tǒng)由于應(yīng)用場(chǎng)合、應(yīng)用目的等不盡相同

58、,對(duì)DSP芯片的選擇也是不同的。一般來(lái)說(shuō),選擇DSP芯片時(shí)應(yīng)考慮到如下諸多因素。</p><p>  1.DSP芯片的運(yùn)算速度。運(yùn)算速度是DSP芯片的一個(gè)最重要的性能指標(biāo),也是選擇DSP芯片時(shí)所需要考慮的一個(gè)主要因素。DSP芯片的運(yùn)算速度可以用以下幾種性能指標(biāo)來(lái)衡量:</p><p>  (1) 指令周期:即執(zhí)行一條指令所需的時(shí)間,通常以ns(納秒)為單位。如TMS320LC549-80在

59、主頻為80MHz時(shí)的指令周期為12.5ns;</p><p>  (2) MAC時(shí)間:即一次乘法加上一次加法的時(shí)間。大部分DSP芯片可在一個(gè)指令周期內(nèi)完成一次乘法和加法操作,如TMS320LC549-80的MAC時(shí)間就是12.5ns;</p><p>  (3) FFT執(zhí)行時(shí)間:即運(yùn)行一個(gè)N點(diǎn)FFT程序所需的時(shí)間。由于FFT運(yùn)算涉及的運(yùn)算在數(shù)字信號(hào)處理中很有代表性,因此FFT運(yùn)算時(shí)間常作為

60、衡量DSP芯片運(yùn)算能力的一個(gè)指標(biāo);</p><p>  (4) MIPS:即每秒執(zhí)行百萬(wàn)條指令。如TMS320LC549-80的處理能力為80 MIPS,即每秒可執(zhí)行八千萬(wàn)條指令;</p><p>  (5)MOPS:即每秒執(zhí)行百萬(wàn)次操作。如TMS320C40的運(yùn)算能力為275 MOPS;</p><p>  (6) MFLOPS:即每秒執(zhí)行百萬(wàn)次浮點(diǎn)操作。如TM

61、S320C31在主頻為40MHz時(shí)的處理能力為40 MFLOPS;</p><p>  (7)BOPS:即每秒執(zhí)行十億次操作。如TMS320C80的處理能力為2 BOPS。</p><p>  2.DSP芯片的價(jià)格。DSP芯片的價(jià)格也是選擇DSP芯片所需考慮的一個(gè)重要因素。如果采用價(jià)格昂貴的DSP芯片,即使性能再高,其應(yīng)用范圍肯定會(huì)受到一定的限制,尤其是民用產(chǎn)品。因此根據(jù)實(shí)際系統(tǒng)的應(yīng)用情

62、況,需確定一個(gè)價(jià)格適中的DSP芯片。當(dāng)然,由于DSP芯片發(fā)展迅速,DSP芯片的價(jià)格往往下降較快,因此在開(kāi)發(fā)階段選用某種價(jià)格稍貴的DSP芯片,等到系統(tǒng)開(kāi)發(fā)完畢,其價(jià)格可能已經(jīng)下降一半甚至更多。</p><p>  3.DSP芯片的硬件資源。不同的DSP芯片所提供的硬件資源是不相同的,如片內(nèi)RAM、ROM的數(shù)量,外部可擴(kuò)展的程序和數(shù)據(jù)空間,總線(xiàn)接口,I/O接口等。即使是同一系列的DSP芯片(如TI的TMS320C54

63、X系列),系列中不同DSP芯片也具有不同的內(nèi)部硬件資源,可以適應(yīng)不同的需要。</p><p>  4.DSP芯片的運(yùn)算精度。一般的定點(diǎn)DSP芯片的字長(zhǎng)為16位,如TMS320系列。但有的公司的定點(diǎn)芯片為24位,如Motorola公司的MC56001等。浮點(diǎn)芯片的字長(zhǎng)一般為32位,累加器為40位。</p><p>  5.DSP芯片的開(kāi)發(fā)工具。在DSP系統(tǒng)的開(kāi)發(fā)過(guò)程中,開(kāi)發(fā)工具是必不可少的。

64、如果沒(méi)有開(kāi)發(fā)工具的支持,要想開(kāi)發(fā)一個(gè)復(fù)雜的DSP系統(tǒng)幾乎是不可能的。如果有功能強(qiáng)大的開(kāi)發(fā)工具的支持,如C語(yǔ)言支持,則開(kāi)發(fā)的時(shí)間就會(huì)大大縮短。所以,在選擇DSP芯片的同時(shí)必須注意其開(kāi)發(fā)工具的支持情況,包括軟件和硬件的開(kāi)發(fā)工具。</p><p>  6.DSP芯片的功耗。在某些DSP應(yīng)用場(chǎng)合,功耗也是一個(gè)需要特別注意的問(wèn)題。如便攜式的DSP設(shè)備、手持設(shè)備、野外應(yīng)用的DSP設(shè)備等都對(duì)功耗有特殊的要求。目前,3.3V供電

65、的低功耗高速DSP芯片已大量使用。</p><p>  7.其他。除了上述因素外,選擇DSP芯片還應(yīng)考慮到封裝的形式、質(zhì)量標(biāo)準(zhǔn)、供貨情況、生命周期等。有的DSP芯片可能有DIP、PGA、PLCC、PQFP等多種封裝形式。有些DSP系統(tǒng)可能最終要求的是工業(yè)級(jí)或軍用級(jí)標(biāo)準(zhǔn),在選擇時(shí)就需要注意到所選的芯片是否有工業(yè)級(jí)或軍用級(jí)的同類(lèi)產(chǎn)品。如果所設(shè)計(jì)的DSP系統(tǒng)不僅僅是一個(gè)實(shí)驗(yàn)系統(tǒng),而是需要批量生產(chǎn)并可能有幾年甚至十幾年的

66、生命周期,那么需要考慮所選的DSP芯片供貨情況如何,是否也有同樣甚至更長(zhǎng)的生命周期等。</p><p>  在上述諸多因素中,一般而言,定點(diǎn)DSP芯片的價(jià)格較便宜,功耗較低,但運(yùn)算精度稍低。而浮點(diǎn)DSP芯片的優(yōu)點(diǎn)是運(yùn)算精度高,且C語(yǔ)言編程調(diào)試方便,但價(jià)格稍貴,功耗也較大。例如TI的TMS320C2XX/C54X系列屬于定點(diǎn)DSP芯片,低功耗和低成本是其主要的特點(diǎn)。而TMS320C3X/C4X/C67X屬于浮點(diǎn)DS

67、P芯片,運(yùn)算精度高,用C語(yǔ)言編程方便,開(kāi)發(fā)周期短,但同時(shí)其價(jià)格和功耗也相對(duì)較高。</p><p>  DSP應(yīng)用系統(tǒng)的運(yùn)算量是確定選用處理能力為多大的DSP芯片的基礎(chǔ)。運(yùn)算量小則可以選用處理能力不是很強(qiáng)的DSP芯片,從而可以降低系統(tǒng)成本。相反,運(yùn)算量大的DSP系統(tǒng)則必須選用處理能力強(qiáng)的DSP芯片,如果DSP芯片的處理能力達(dá)不到系統(tǒng)要求,則必須用多個(gè)DSP芯片并行處理。那么如何確定DSP系統(tǒng)的運(yùn)算量以選擇DSP芯片

68、呢?下面我們來(lái)考慮兩種情況。</p><p><b>  1.按樣點(diǎn)處理</b></p><p>  所謂按樣點(diǎn)處理就是DSP算法對(duì)每一個(gè)輸入樣點(diǎn)循環(huán)一次。數(shù)字濾波就是這種情況。在數(shù)字濾波器中,通常需要對(duì)每一個(gè)輸入樣點(diǎn)計(jì)算一次。例如,一個(gè)采用LMS算法的256 抽頭的自適應(yīng)FIR濾波器,假定每個(gè)抽頭的計(jì)算需要3個(gè)MAC周期,則256抽頭計(jì)算需要256×3=7

69、68個(gè)MAC周期。如果采樣頻率為8kHz,即樣點(diǎn)之間的間隔為125s,DSP芯片的MAC周期為200ns,則768個(gè)MAC周期需要153.6s的時(shí)間,顯然無(wú)法實(shí)時(shí)處理,需要選用速度更高的DSP芯片。表1.3示出了兩種信號(hào)帶寬對(duì)三種 DSP 芯片的處理要求,三種DSP芯片的MAC周期分別為200ns、50ns和25ns。從表中可以看出,對(duì)話(huà)帶的應(yīng)用,后兩種DSP芯片可以實(shí)時(shí)實(shí)現(xiàn),對(duì)聲頻應(yīng)用,只有第三種DSP芯片能夠?qū)崟r(shí)處理。當(dāng)然,在這個(gè)例

70、子中,沒(méi)有考慮其他的運(yùn)算量。</p><p>  表1.3 用DSP芯片實(shí)現(xiàn)數(shù)字濾波</p><p><b>  2.按幀處理</b></p><p>  有些數(shù)字信號(hào)處理算法不是每個(gè)輸入樣點(diǎn)循環(huán)一次,而是每隔一定的時(shí)間間隔(通常稱(chēng)為幀)循環(huán)一次。例如,中低速語(yǔ)音編碼算法通常以10ms或20ms為一幀,每隔10ms或20ms語(yǔ)音編碼算法循環(huán)一

71、次。所以,選擇DSP芯片時(shí)應(yīng)該比較一幀內(nèi)DSP芯片的處理能力和DSP算法的運(yùn)算量。假設(shè)DSP芯片的指令周期為 p(ns),一幀的時(shí)間為 (ns),則該DSP芯片在一幀內(nèi)所能提供的最大運(yùn)算量為 /p條指令。例如TMS320LC549-80的指令周期為12.5ns,設(shè)幀長(zhǎng)為20ms,則一幀內(nèi)TMS320LC549-80所能提供的最大運(yùn)算量為160萬(wàn)條指令。因此,只要語(yǔ)音編碼算法的運(yùn)算量不超過(guò)160萬(wàn)條指令,就可以在TMS320LC549-8

72、0上實(shí)時(shí)運(yùn)行。</p><p>  2.3.5 DSP芯片的應(yīng)用</p><p>  自從20世紀(jì)70年代末80年代初DSP芯片誕生以來(lái),DSP芯片得到了飛速的發(fā)展。DSP芯片的高速發(fā)展,一方面得益于集成電路技術(shù)的發(fā)展,另一方面也得益于巨大的市場(chǎng)。在近20年時(shí)間里,DSP芯片已經(jīng)在信號(hào)處理、通信、雷達(dá)等許多領(lǐng)域得到廣泛的應(yīng)用。目前,DSP芯片的價(jià)格越來(lái)越低,性能價(jià)格比日益提高,具有巨大的

73、應(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ò)頻通信、糾錯(cuò)編碼、可視電話(huà)等;</p><p>  (3) 語(yǔ)音——如語(yǔ)音編碼、語(yǔ)音合成

74、、語(yǔ)音識(shí)別、語(yǔ)音增強(qiáng)、說(shuō)話(huà)人辨認(rèn)、說(shuō)話(huà)人確認(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><p>  (6) 儀器儀表——如頻譜分析、函數(shù)發(fā)生、鎖相環(huán)、地震處理等;</p&g

75、t;<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ù)字電話(huà)/電視等。</p><p>  隨著DSP芯片性能價(jià)格比的不斷提高,可以預(yù)見(jiàn)DSP芯片將會(huì)在

76、更多的領(lǐng)域內(nèi)得到更為廣泛的應(yīng)用。</p><p>  3.溢出問(wèn)題及其解決方案</p><p>  對(duì)于運(yùn)算結(jié)果發(fā)生溢出的處理,有2種方法:溢出條件分支和累加器飽和。通過(guò)它們使得在演算過(guò)程發(fā)生溢出時(shí),可以提供幾種選擇范的方式。</p><p>  所謂的溢出條件分支是當(dāng)運(yùn)算結(jié)果發(fā)生溢出時(shí),可以使用BCND OV指令跳到溢出處理程序處理,該指令可以用在任何ALU操作之

77、后可能引起的累加器溢出的運(yùn)算指令后面。</p><p>  對(duì)DSP應(yīng)用而言,累加器飽和溢出模式是很有用的功能。該模式可以仿真模擬系統(tǒng)的飽和影響特性。當(dāng)累加器在溢出飽和模式,且發(fā)生發(fā)生溢出時(shí),則溢出標(biāo)志位會(huì)被設(shè)定,且依照溢出的方向(正或負(fù)),累加器會(huì)加載正飽和(7FFFFFFFh)或負(fù)飽和(80000000h)值。如果OVM狀態(tài)寄存器位是復(fù)位,且發(fā)生溢出時(shí),則溢出的結(jié)果會(huì)被加載到累加器內(nèi)。注意:邏輯運(yùn)算并不會(huì)產(chǎn)生

78、溢出。</p><p>  累加器的溢出模式可由狀態(tài)寄存器STO的OVM位控制,也能由SETC OVM,CLRC OVM和LST指令改變。溢出可由測(cè)試狀態(tài)寄存器STO內(nèi)的OVM位檢測(cè)到。當(dāng)分支命令用于測(cè)試溢出位時(shí),OVM會(huì)自動(dòng)復(fù)位。注意:OVM位不是進(jìn)位位的函數(shù) ,它只在累加器里的數(shù)值太大以至于無(wú)法正確表示時(shí)會(huì)被設(shè)定,但是可以使用某些特殊指令將OVM位復(fù)位。</p><p>  4.倍率的

79、問(wèn)題和解決方法</p><p>  在某些DSP算法中,我們必須將存在或即將進(jìn)入累加器中的數(shù)據(jù)倍率化。在適應(yīng)或其他的算法中,經(jīng)常需要計(jì)算及使用修正因子或?qū)δ承┙Y(jié)果做正規(guī)化處理。因此,在TMS320LF2407中可以將數(shù)據(jù)通過(guò)移位至累加器,達(dá)到這種倍率化及正規(guī)化效果。</p><p>  移位的方法有2種:邏輯及計(jì)算移位。邏輯移位是將移位之后所空出來(lái)的最左邊的最高位補(bǔ)0;算術(shù)移位則將最左邊的

80、符號(hào)位保持不變,即原來(lái)為1則仍為1,原來(lái)為0則保持為0。另外,當(dāng)數(shù)據(jù)加載到累加器后,可以將數(shù)據(jù)左移0~16個(gè)位。SACH指令則可以將累加器內(nèi)容左移0,1,或者4個(gè)位后,將結(jié)果的第31~16位存在指定的存儲(chǔ)器中,而不會(huì)影響累加器原來(lái)的內(nèi)容。所以其功能為在以定點(diǎn)數(shù)表示浮點(diǎn)數(shù)乘法時(shí),作為正規(guī)化的使用。</p><p>  T器,PREG寄存器及乘法指令</p><p>  以T寄存器及PREG寄

81、存器為核心的存取指令,它們包括寄存器加載指令:LPH,LT,LTA,LTD,LTP,LTS及PAC,寄存器儲(chǔ)存命令:SPH,SPL.及SPM。這些記載及儲(chǔ)存指令可以配合DP以及DMA采用直接尋址,也可以配合AR采用間接尋址,也可以配合AR采用間接尋址。</p><p>  LPH指令把數(shù)據(jù)存儲(chǔ)器地址內(nèi)容,加載PREG的高端字,但不會(huì)影響低端字的內(nèi)容,LPH可以配合DP以及DMA采用直接尋址,也可以配合AR采用間接

82、尋址。</p><p>  LTA指令除了可以用DMA的內(nèi)容加載到TREGO之外,還可以把依照PM狀態(tài)位定義移位后的PREG加到ACC中,LTS指令除了可以把DMA的內(nèi)容加載到TREGO外,還可以把ACC減掉依照PM狀態(tài)位定義移位之后的PREG。這兩個(gè)指令都依照PMST寄存器的TRM位的狀態(tài),決定是否要加載TREG1以及TREG2,以便能夠和C25程序代碼兼容。</p><p>  LT指

83、令會(huì)依照TRM位的狀態(tài)決定DMA加載的目的地:假如TRM=1,則把DMA的內(nèi)容加載到TREG0;反之,則把DMA的內(nèi)容加載到TREG1及TREG2。LTD指令除了完成LTA的工作外,還可以把DMA的內(nèi)容復(fù)制一份到下一個(gè)數(shù)據(jù)存儲(chǔ)器地址 ,LTP指令除了完成LT指令工作之外,還可以根據(jù)ST1寄存器到PM狀態(tài)位的定義移位后的PREG內(nèi)容,加載到ACC中,PAC指令不把dma的內(nèi)容復(fù)制到TREG0中,但是它會(huì)把根據(jù)PM狀態(tài)位的定義移位后的PRE

84、G內(nèi)容,加載到ACC中。</p><p>  SPH指令把PREG的高端字加載到指定的DMA中,SPL指令則是把PREG地低端字記載到指定的DMA中,SPM指令用來(lái)設(shè)定PREG的移位模式位PM,所以只要給定0到3的常數(shù)值即可。;例如:指令SPM2是用來(lái)設(shè)定PM=10的。</p><p>  2.5.DSP芯片的定點(diǎn)運(yùn)算</p><p>  2.5.1 數(shù) 的 定

85、標(biāo)</p><p>  在定點(diǎn)DSP芯片中,采用定點(diǎn)數(shù)進(jìn)行數(shù)值運(yùn)算,其操作數(shù)一般采用整型數(shù)來(lái)表示。一個(gè)整型數(shù)的最大表示范圍取決于DSP芯片所給定的字長(zhǎng),一般為16位或24位。顯然,字長(zhǎng)越長(zhǎng),所能表示的數(shù)的范圍越大,精度也越高。如無(wú)特別說(shuō)明,本書(shū)均以16位字長(zhǎng)為例。</p><p>  DSP芯片的數(shù)以2的補(bǔ)碼形式表示。每個(gè)16位數(shù)用一個(gè)符號(hào)位來(lái)表示數(shù)的正負(fù),0表示數(shù)值為正,1則表示數(shù)值為負(fù)

86、。其余15位表示數(shù)值的大小。因此</p><p>  二進(jìn)制數(shù)0010000000000011b=8195</p><p>  二進(jìn)制數(shù)1111111111111100b=-4</p><p>  對(duì)DSP芯片而言,參與數(shù)值運(yùn)算的數(shù)就是16位的整型數(shù)。但在許多情況下,數(shù)學(xué)運(yùn)算過(guò)程中的數(shù)不一定都是整數(shù)。那么,DSP芯片是如何處理小數(shù)的呢?應(yīng)該說(shuō),DSP芯片本身無(wú)能為力

87、。那么是不是說(shuō)DSP芯片就不能處理各種小數(shù)呢?當(dāng)然不是。這其中的關(guān)鍵就是由程序員來(lái)確定一個(gè)數(shù)的小數(shù)點(diǎn)處于16位中的哪一位。這就是數(shù)的定標(biāo)。</p><p>  通過(guò)設(shè)定小數(shù)點(diǎn)在16位數(shù)中的不同位置,就可以表示不同大小和不同精度的小數(shù)了。數(shù)的定標(biāo)有Q表示法和S表示法兩種。表3.1列出了一個(gè)16位數(shù)的16種Q表示、S表示及它們所能表示的十進(jìn)制數(shù)值范圍。</p><p>  從表3.1可以看出,

88、同樣一個(gè)16位數(shù),若小數(shù)點(diǎn)設(shè)定的位置不同,它所表示的數(shù)也就不同。例如:</p><p>  16進(jìn)制數(shù)2000H=8192,用Q0表示</p><p>  16進(jìn)制數(shù)2000H=0.25,用Q15表示</p><p>  但對(duì)于DSP芯片來(lái)說(shuō),處理方法是完全相同的。</p><p>  從表3.1還可以看出,不同的Q所表示的數(shù)不僅范圍不同,而

89、且精度也不相同。Q越大,數(shù)值范圍越小,但精度越高;相反,Q越小,數(shù)值范圍越大,但精度就越低。例如,Q0的數(shù)值范圍是-32768到+32767,其精度為1,而Q15的數(shù)值范圍為-1到0.9999695,精度為 1/32768 = 0.00003051。因此,對(duì)定點(diǎn)數(shù)而言,數(shù)值范圍與精度是一對(duì)矛盾,一個(gè)變量要想能夠表示比較大的數(shù)值范圍,必須以犧牲精度為代價(jià);而想提高精度,則數(shù)的表示范圍就相應(yīng)地減小。在實(shí)際的定點(diǎn)算法中,為了達(dá)到最佳的性能,必

90、須充分考慮到這一點(diǎn)。</p><p>  浮點(diǎn)數(shù)與定點(diǎn)數(shù)的轉(zhuǎn)換關(guān)系可表示為:</p><p>  浮點(diǎn)數(shù)(x)轉(zhuǎn)換為定點(diǎn)數(shù)():</p><p>  定點(diǎn)數(shù)()轉(zhuǎn)換為浮點(diǎn)數(shù)(x):</p><p>  例如,浮點(diǎn)數(shù) x=0.5,定標(biāo) Q=15,則定點(diǎn)數(shù)=,式中表示下取整。反之,一個(gè)用 Q=15 表示的定點(diǎn)數(shù)16384,其浮點(diǎn)數(shù)為16384&#

91、215;2-15</p><p> ?。?6384/32768=0.5。</p><p>  表3.1 Q表示、S表示及數(shù)值范圍</p><p>  2.5.2 高級(jí)語(yǔ)言:從浮點(diǎn)到定點(diǎn)</p><p>  在編寫(xiě)DSP模擬算法時(shí),為了方便,一般都是采用高級(jí)語(yǔ)言(如C語(yǔ)言)來(lái)編寫(xiě)模擬程序。程序中所用的變量一般既有整型數(shù),又有浮點(diǎn)數(shù)。如例3.

92、1程序中的變量i是整型數(shù),而pi是浮點(diǎn)數(shù),hamwindow則是浮點(diǎn)數(shù)組。</p><p>  例3.1 256點(diǎn)漢明窗計(jì)算</p><p><b>  inti;</b></p><p>  floatpi=3.14159;</p><p>  floathamwindow[256];</p>&

93、lt;p>  for(i=0;i<256;i++) hamwindow[i]=0.54-0.46*cos(2.0*pi*i/255);</p><p>  如果要將上述程序用某種定點(diǎn)DSP芯片來(lái)實(shí)現(xiàn),則需將上述程序改寫(xiě)為DSP芯片的匯編語(yǔ)言程序。為了DSP程序調(diào)試的方便及模擬定點(diǎn)DSP實(shí)現(xiàn)時(shí)的算法性能,在編寫(xiě)DSP匯編程序之前一般需將高級(jí)語(yǔ)言浮點(diǎn)算法改寫(xiě)為高級(jí)語(yǔ)言定點(diǎn)算法。下面討論基本算術(shù)運(yùn)算的定

94、點(diǎn)實(shí)現(xiàn)方法。</p><p>  2.5.2.1 加法/減法運(yùn)算的C語(yǔ)言定點(diǎn)模擬</p><p>  設(shè)浮點(diǎn)加法運(yùn)算的表達(dá)式為:</p><p>  float x,y,z;</p><p><b>  z=x+y;</b></p><p>  將浮點(diǎn)加法/減法轉(zhuǎn)化為定點(diǎn)加法/減法時(shí)最重要的一點(diǎn)

95、就是必須保證兩個(gè)操作數(shù)的定標(biāo)值一樣。若兩者不一樣,則在做加法/減法運(yùn)算前先進(jìn)行小數(shù)點(diǎn)的調(diào)整。為保證運(yùn)算精度,需使Q值小的數(shù)調(diào)整為與另一個(gè)數(shù)的Q值一樣大。此外,在做加法/減法運(yùn)算時(shí),必須注意結(jié)果可能會(huì)超過(guò)16位表示。如果加法/減法的結(jié)果超出16位的表示范圍,則必須保留32位結(jié)果,以保證運(yùn)算的精度。</p><p>  1.結(jié)果不超過(guò)16位表示范圍</p><p>  設(shè)x的Q值為Qx,y的Q

96、值為Qy,且Qx>Qy,加法/減法結(jié)果z的定標(biāo)值為Qz,則</p><p><b>  z=x+y </b></p><p><b>  =</b></p><p><b>  = </b></p><p>  所以定點(diǎn)加法可以描述為:</p>&l

97、t;p>  int x,y,z;</p><p>  long temp;/*臨時(shí)變量*/</p><p>  temp=y(tǒng)<<(Qx-Qy);</p><p>  temp=x+temp;</p><p>  z=(int)(temp>>(Qx-Qz)), 若Qx≥Qz</p><p>

98、;  z=(int)(temp<<(Qz-Qx)), 若QxQ≤z</p><p>  例3.2 定點(diǎn)加法</p><p>  設(shè)x=0.5,y=3.1,則浮點(diǎn)運(yùn)算結(jié)果為z=x+y=0.5+3.1=3.6;</p><p>  Qx=15,Qy=13,Qz=13,則定點(diǎn)加法為:</p><p>  x=16384;y=25395

99、;</p><p>  temp=25395<<2=101580;</p><p>  temp=x+temp=16384+101580=117964;</p><p>  z=(int)(117964L>>2)=29491;</p><p>  因?yàn)閦的Q值為13,所以定點(diǎn)值z(mì)=29491即為浮點(diǎn)值z(mì)=29491/8

100、192=3.6。</p><p>  例3.3 定點(diǎn)減法</p><p>  設(shè)x=3.0,y=3.1,則浮點(diǎn)運(yùn)算結(jié)果為z=x-y=3.0-3.1=-0.1;</p><p>  Qx=13,Qy=13,Qz=15,則定點(diǎn)減法為:</p><p>  x=24576;y=25295;</p><p>  temp=2

101、5395;</p><p>  temp=x-temp=24576-25395=-819;</p><p>  因?yàn)镼x<Qz,故 z=(int)(-819<<2)=-3276。由于z的Q值為15,所以定點(diǎn)值z(mì)=-3276即為浮點(diǎn)值z(mì)=-3276/32768-0.1。</p><p>  2.結(jié)果超過(guò)16位表示范圍</p><p

102、>  設(shè)x的Q值為Qx,y的Q值為Qy,且Qx>Qy,加法結(jié)果z的定標(biāo)值為Qz,則定點(diǎn)加法為:</p><p><b>  int x,y;</b></p><p>  long temp,z;</p><p>  temp=y(tǒng)<<(Qx-Qy);</p><p>  temp=x+temp;&l

103、t;/p><p>  z=temp>>(Qx-Qz),若Qx≥Qz</p><p>  z=temp<<(Qz-Qx),若Qx≤Qz</p><p>  例3.4 結(jié)果超過(guò)16位的定點(diǎn)加法</p><p>  設(shè)x=15000,y=20000,則浮點(diǎn)運(yùn)算值為z=x+y=35000,顯然z>32767,因此</

104、p><p>  Qx=1,Qy=0,Qz=0,則定點(diǎn)加法為:</p><p>  x=30000;y=20000;</p><p>  temp=20000<<1=40000;</p><p>  temp=temp+x=40000+30000=70000;</p><p>  z=70000L>>

105、1=35000;</p><p>  因?yàn)閦的Q值為0,所以定點(diǎn)值z(mì)=35000就是浮點(diǎn)值,這里z是一個(gè)長(zhǎng)整型數(shù)。</p><p>  當(dāng)加法或加法的結(jié)果超過(guò)16位表示范圍時(shí),如果程序員事先能夠了解到這種情況,并且需要保證運(yùn)算精度時(shí),則必須保持32位結(jié)果。如果程序中是按照16位數(shù)進(jìn)行運(yùn)算的,則超過(guò)16位實(shí)際上就是出現(xiàn)了溢出。如果不采取適當(dāng)?shù)拇胧?,則數(shù)據(jù)溢出會(huì)導(dǎo)致運(yùn)算精度的嚴(yán)重惡化。一般的定

106、點(diǎn)DSP芯片都設(shè)有溢出保護(hù)功能,當(dāng)溢出保護(hù)功能有效時(shí),一旦出現(xiàn)溢出,則累加器ACC的結(jié)果為最大的飽和值(上溢為7FFFH,下溢為8001H),從而達(dá)到防止溢出引起精度嚴(yán)重惡化的目的。</p><p>  2.5.2.2 乘法運(yùn)算的C語(yǔ)言定點(diǎn)模擬</p><p>  設(shè)浮點(diǎn)乘法運(yùn)算的表達(dá)式為:</p><p>  float x,y,z;</p>&l

107、t;p><b>  z = xy;</b></p><p>  假設(shè)經(jīng)過(guò)統(tǒng)計(jì)后x的定標(biāo)值為Qx,y的定標(biāo)值為Qy,乘積z的定標(biāo)值為Qz,則</p><p><b>  z = xy </b></p><p><b>  = </b></p><p><b>  

108、=</b></p><p>  所以定點(diǎn)表示的乘法為:</p><p>  int x,y,z;</p><p>  long temp;</p><p>  temp = (long)x;</p><p>  z = (temp×y) >> (Qx+Qy-Qz);</p>

109、<p>  例3.5 定點(diǎn)乘法</p><p>  設(shè)x = 18.4,y = 36.8,則浮點(diǎn)運(yùn)算值為z =18.4×36.8 = 677.12;</p><p>  根據(jù)上節(jié),得Qx = 10,Qy = 9,Qz = 5,所以</p><p>  x = 18841;y = 18841;</p><p>  te

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論