DSP常考知識點及其答案_第1頁
DSP常考知識點及其答案_第2頁
DSP常考知識點及其答案_第3頁
DSP常考知識點及其答案_第4頁
DSP常考知識點及其答案_第5頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、精選優質文檔-傾情為你奉上第一章 緒 論1 什么是DSP?答:DSP是數字信號處理器(Digital Signal Processor ),是特別適合于實現各種數字信號處理運算的微處理器。主要應用場合:(1)數字信號處理運算,(2)通信,(3)網絡控制及傳輸設備,(4)語音處理,(5)電機和機器人控制,(6)激光打印機、掃描儀和復印機,(7)自動測試診斷設備及智能儀器儀表、虛擬儀器,(8)圖像處理,(9)軍事,(10)自動控制等。2. DSP芯片的特點有哪些? 答: (1) 采用改進的哈佛結構;(2) 采用流水線技術;(4) 配有專用的硬件乘法-累加器;(5) 具有特殊的DSP指令;(6) 快

2、速的指令周期;(7) 硬件配置強;(8).支持多處理器結構;(9) 省電管理和低功耗。3. DSP采用改進的哈佛總線結構,畫出改進的哈佛總線結構示意圖。答:改進的哈佛結構如下:4. DSP中由哪些地址和數據總線組成多總線結構?答:存儲器接口有三條地址總線:(1) PAB(Program Address Bus (22))程序地址總線,用來傳送來自程序空間的讀寫地址。PAB是一個22位的總線。(2) DRAB(Data-read Address Bus (32))數據讀地址總線。32位的DRAB用來傳送來自數據空間的讀地址。(3) DWAB( Data-write Address Bus (32

3、))數據寫地址總線。32位的DWAB用來傳送來自數據空間的寫地址。存儲器接口還有三條數據總線:(1) PRDB(Program-read Data Bus (32))程序讀數據總線, PRDB 在讀取程序空間時用來傳送指令或數據。(2) DRDB( Data-read Data Bus (32) )數據讀數據總線。32位的DRDB在讀取數據空間時用來傳送數據。(3) DWDB( Data/Program-write Data Bus (32))數據/程序寫數據總線。 32位的DWDB在對數據空間寫數據時用來傳送數據。5. DSP芯片的選型一般是從哪幾個方面進行考慮?答:并不存在最好的DSP,正

4、確的DSP選擇取決于具體的應用場合。沒有任何DSP能夠滿足所有的,或者大多數應用的需要。對于一種應用來說是好的選擇,對另外的應用則可能是很差的選擇。 一般從數據格式、數據寬度、速度、存儲器的安排、開發的難易程度、功耗和電源管理、器件的封裝等方面考慮選擇DSP。6. 簡述TI公司的DSP三大平臺和它們各自的應用場合。答:(1) 最佳控制:TMS320C2000 DSP平臺TMS320C2000 DSP平臺將各種高級數字控制功能集成于一顆IC上。強大的數據處理和控制能力可大幅提高應用效率和降低功耗。(2) 最低功耗:TMS320C5000 DSP平臺TMS320C5000 DSP專門針對消費類數字

5、市場而設計。(3) 最佳處理能力:TMS320C6000 DSP平臺 TMS320C6000 DSP是處理能力最強,易于采用高級語言編程的DSP。定點及浮點DSP市場定位在網絡交換,圖像處理,雷達信號處理等高端應用領域。7. DSP芯片發展趨勢應該朝著哪些方面發展?答:(1) 系統級集成DSP是潮流 (2) DSP和微處理器的融合 (3) DSP和FPGA的融合(4) 可編程DSP是主導產品 (5) 追求更高的運算速度 (6)定點DSP是主流 第二章 CCS軟件應用基礎1 如何對CCS3.3的單處理器目標系統進行配置?答:(1) 運行桌面上的Code Composer Studio Setup

6、應用程序,出現系統配置窗口。(2) 在配置前可以通過選擇File->Remove all清除以前的設置。(3) 在Available Factory Boards欄中選擇需要調試的目標板或仿真器。為了方便找到相應的硬件配置,可以在右上側的過濾欄中根據需用的處理器所屬系列(Family)、處理器平臺類型(Platform)、字節模式(Endian)等進行過濾。確定相應的配置后直接拖到左側的System Configuration欄中,或者選中需要的目標配置文件后單擊下面的Add按鈕添加,如果Available Factory Boards欄中不存在用戶需要的標準配置,可以自己創建配置文件進

7、行配置。(4)選擇System Configuration欄中的系統硬件,單擊右鍵并選擇屬性,可以查看和編輯相關屬性,根據需要可以針對不同的選型作適當的調整。(5)選擇系統平臺下的CPU,單擊右鍵并選擇屬性,可以查看和編輯CPU的屬性文件。主要包括的GEL文件、主/從設置、啟動模式(實時或停止模式)等。(6)單擊Save衣(luit按鈕保存配置并退出配置程序,下次選用相同的平臺開發時不需要重新配置。(7)退出配置程序后彈出Code Composer Studio IDE啟動的判斷按鈕,選擇Yes即可運行CCS。如果配置的是硬件平臺,在運行CCS IDE之前,應該檢查硬件系統的莽接狀況和目標系統

8、的供電情況。2 簡單程序的開發步驟有哪些?答:(1)如果已經在C: CCStudio_v3. 1目錄下安裝了CCS開發環境,則在C: CCStudio_v3. 1MyProjects目錄下創建開發文件夾sinewave 。(2) C: CCStudio_v3. 1tutorialdsk2812sinewave目錄下的.c,. cmd以及.h文件復制到創建的目錄,然后運行CCS。(3) 依據工程的創建方法,創建新的工程(參考2.4.1小節)(4) 選擇Project->Add Files to Proiect,添加.C、cmd以及rt_2800m1. lib文件。(5) 雙擊項目管理窗口下

9、的sine.c一文件瀏覽程序源代碼,單擊Rebuild All編譯程序。(6) 編譯、鏈接通過后,CCS下面的狀態輸出窗口將顯示相應的狀態。(7) 選擇File-Load Program裝載應用程序。(8) 運行程序。3 DSP探針的作用有哪些?答:探針主要用來從PC機的數據文件中讀取數據,提供給算法或其他程序使用,從而有利于DSP的算法開發或參考數據的生成。可以使用探針完成下列任務:(1) 從主機的數據文件中讀取數據,然后傳送到目標處理器的存儲緩沖,以便算法程序使用主機的數據;(2) 從目標處理器的存儲緩沖中讀取數據并存放到PC機的指定文件中,以便進一步分析;(3) 刷新帶有數據的圖形窗口。

10、第三章 C/C+程序編寫基礎1. TMS320X28xx采用C/C+編程時,采用位定義和寄存器文件結構方法有什么好處?答:(1) TI公司為用戶提供寫好的文件結構體和位區定義,可以在其網站下載。C281x C/C+ Header Files and Peripheral Examples (SPRC097)C280x, C2801x C/C+ Header Files and Peripheral Examples (SPRCl91C2804x C/C+ Header Files and Peripheral Examples (SPRC324)(2) 使用位區方便編寫代碼,可讀性強,易升級。

11、(3) 位區定義可以充分利用Code Composer Studio編輯器的自動代碼輸入功能,方便用戶輸入代碼。當使用寄存器文件結構和位區時,很多變量名很長,難于記憶而且輸入非常困難。當輸入代碼時,Code Composer Studio編輯器提供可能的結構體或位區列表,這樣用戶可以很容易地使用輸入編輯程序代碼。CPU定時器的TCR寄存器自動輸入。(4) 方便Code Composer Studio的Watch窗口觀察變量。用戶可以在Code Composer Studio的Watch窗口增加擴展寄存器文件結構體,直接觀察相應的位區定義的參數值,2. 什么是定點數據,什么是浮點數據?TMS32

12、0X28xx是定點還是浮點處理器?它是如何實現浮點數據處理的?答:小數點固定的數據稱為定點數據,小數點浮動的數據稱為發浮點數據,TMS320X28xx是定點處理器,它通過TMS320X28xx Iqmath庫實現浮點處理。第6章 TMS320F2812的時鐘和看門狗1.如果要使系統時鐘為輸入時鐘的5倍頻,同時使能所有的外設時鐘,將高速外設的時鐘設置為系統時鐘的1/10,低速外設的時鐘設置為系統時鐘的1/12,應該如何設置相關的寄存器?答:PLLCR=0x000A;PCLKCR=0xFFFF,HISPCP=0x0005,LOSPCP=0x0006第7章 可編程數字量通用I/O1. 八個帖片LED

13、由GPIOA0-GPIOA7驅動,畫出電路圖,編寫C語言源程序,實現如下功能:(1) 使八個二極管全亮。(2) 使八個二極管一半亮(GPIOA0-GPIOA3所接二極管亮),一半暗(GPIOA4-GPIOA7所接二極管暗) 。答:電路圖如下:(1) 使八個二極管全亮,程序如下:#include "DSP28_Device.h"void IOinit()EALLOW; 對保護空間的訪問使能GpioMuxRegs.GPAMUX.all = 0xFF00; 將GPIOA0GPIOA7配置為一般I/O端口,GpioMuxRegs.GPADIR.all = 0x00FF; 將GPIO

14、A0GPIOA7配置為輸出EDIS;禁止對保護空間的訪問void main(void)InitSysCtrl(); / 系統初始化子程序,在DSP28_sysctrl.c中DINT; / 關閉總中斷IER = 0x0000; / 關閉外設中斷IFR = 0x0000; / 清中斷標志IOinit(); / I/O初始化子程序while (1)GpioDataRegs.GPADAT.all = 0xFF00; 將GPIOA0GPIOA7輸出為全0 (2) 使八個二極管一半亮(GPIOA0-GPIOA3所接二極管亮),一半暗(GPIOA4-GPIOA7所接二極管暗),程序如下:#include &

15、quot;DSP28_Device.h"void IOinit()EALLOW; 對保護空間的訪問使能GpioMuxRegs.GPAMUX.all = 0xFF00; 將GPIOA0GPIOA8配置為一般I/O端口,GpioMuxRegs.GPADIR.all = 0x00FF; 將GPIOA0GPIOA8配置為輸出EDIS;禁止對保護空間的訪問void main(void)InitSysCtrl(); / 系統初始化子程序,在DSP28_sysctrl.c中DINT; / 關閉總中斷IER = 0x0000; / 關閉外設中斷IFR = 0x0000; / 清中斷標志IOinit(

16、); / I/O初始化子程序while (1)GpioDataRegs.GPADAT.all = 0xFFF0; 第八章1. F28x器件有大量的外設模塊,由此會產生大量的中斷,F28x是如何管理這些中斷的?用圖示說明。答:F28x器件有大量的外設模塊,每一個外設模塊都可以產生一個或多個對應于外設模塊事件的外設模塊級中斷。由于CPU沒有能力在CPU級處理所有的外設中斷請求,因此需要外設中斷擴展(PIE)控制器去集中和仲裁不同來源的中斷請求。 PIE向量表用來存儲各個中斷服務程序的入口地址。所有復用和非復用在內的每個中斷都有一個向量。F28x器件的PIE中斷管理原理圖如下:2. 若要禁止所有的外

17、設中斷,IER 的值設置為多少?答:IER=0x0000。3.若要清除所有的中斷標志,IFR 的值設置為多少?答:IFR=0x0000。4 畫出PIE外設中斷擴展模塊結構圖,并簡單說明它的功能。答:PIE外設中斷擴展模塊結構圖如下圖:功能同第1題。5 用CPU定時器0實現100ms的定時,晶振頻率30MHz,鎖相環PLL是5倍頻,編寫ConfigCpuTimer(struct CPUTIMFR_VARS *Timer, float Freq, float Period)函數,并寫出ConfigCpuTimer()函數的實際參數值。答:void ConfigCpuTimer(struct CPU

18、TIMFR_VARS *Timer, float Freq, float Period) Uint32 temp; /初始化周期 Timer->CPUFreqInMHz=Freq; Timer->PeriodInUSec=Period; temp=(long) (Freq*Period); Timer->RegsAddr->PRD. all=temp; /設置預定標參數(SYSCLKOUT): Timer->RegsAddr->TPR. all=0;Timer->RegsAddr->TPRH. all = 0 ;/初始化定時器控制寄存器 Time

19、r->RegsAddr->TCR.bit.TSS=1; /1=Stop timer, 0=Start/Restart TimerTimer->RegsAddr->TCR. bit.TRB=1; / 1=reload timerTimer->RegsAddr->TCR. bit. SOFT =1; Timer->RegsAddr->TCR.bit.FREE = 1; /Timer Free RunTimer->RegsAddr->TCR.bit.TIE=1; /0=Disable/ 1=Enable Timer Interrupt /復

20、位中斷計數Timer->InterruptCount=0;實際參數值ConfigCpuTimer(&CpuTimer0,150,);第九章 事件管理器及其應用1.利用GP定時器1在GPIOF8引腳上產生0.2s的方波,用一個貼片LED閃爍來表示。系統時鐘150MHz,高速外設時鐘25MHz,定時器1預分頻因子W為128分頻,試編寫相關程序。答:系統時鐘150MHz,通過高速外設時鐘預定標器(HISPCP)得到25MHz的高速外設時鐘,再通過定時器1預分頻因子的128分頻,得到定時周期為5.12us。定時周期= 0.2s/2=0.1s;0.1/(5.12×10-6)=0x

21、4C4B周期寄存器T1PR=0x4C4B -1=0x4C4A。程序如下:#include "DSP28_Device.h"interrupt void eva_timer1_isr(void);void EVA_Timer1() EvaRegs.GPTCONA.all = 0; / 初始化 EVA Timer 1 EvaRegs.T1PR = 0x4C4A; / 定時周期為5.12us*(T1PR+1)=0.1s EvaRegs.EVAIMRA.bit.T1PINT = 1; /使能定時器1的周期中斷 EvaRegs.EVAIFRA.bit.T1PINT = 1; /寫1清

22、除定時器1的周期中斷標志 EvaRegs.T1CNT = 0x0000; EvaRegs.T1CON.all = 0x1740; /連續增計數,128分頻,打開定時器void main(void)InitSysCtrl(); /初始化系統控制寄存器, 時鐘頻率150MEALLOW;SysCtrlRegs.HISPCP.all = 0x0003;/高速時鐘的工作頻率25MEDIS;DINT; /關閉總中斷,清除中斷標志IER = 0x0000; /關閉外圍中斷IFR = 0x0000; /清中斷標志InitPieCtrl(); /初始化PIE控制寄存器InitPieVectTable();EVA

23、_Timer1();EALLOW;GpioMuxRegs.GPFMUX.bit.MCLKXA_GPIOF8=0; /把GPIOF8設置為一般I/O口,輸出GpioMuxRegs.GPFDIR.bit.GPIOF8=1;PieVectTable.T1PINT = &eva_timer1_isr; /中斷服務程序入口地址放入中斷向量表EDIS; /依次使能各級中斷:外設中相應中斷位->PIE控制器->CPU PieCtrlRegs.PIEIER2.all = M_INT4; /GP定時器1使能位于PIE第2組第4個,將其使能IER |= M_INT2; /PIE第2組對應于CP

24、U的可屏蔽中斷2(INT2),將其使能EINT; /開總中斷for(;); interrupt void eva_timer1_isr(void) GpioDataRegs.GPFDAT.bit.GPIOF8=GpioDataRegs.GPFDAT.bit.GPIOF81; /產生方波EvaRegs.EVAIMRA.bit.T1PINT = 1 /使能定時器1的周期中斷 EvaRegs.EVAIFRA.bit.T1PINT = 1 /寫1清除定時器1的周期中斷標志PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; /清零 PIEACK中的第2組中斷對應位 第十三章

25、A/D轉換單元1 已知XCLKIN=30MHz,要使ADC模塊的時鐘ADC CLK為3.125MHz,應該對哪些寄存器中的哪些段進行設置,設置的數值分別為多少?(P348表13.8)答:應該對PCLKCR中的ADCENCLK、PLLCR中的DIV、HISPCP中的HSPCLK、ADCTRL3中的ADCCLKPS、ADCTRL1中的CPS進行設置。 設置的數值分別是:PCLKCR中的ADCENCLK設置為1(或PCLKCR=0x0008),PLLCR中的DIV設置為1010(PLLCR=0x000A),HISPCP中的HSPCLK設置為011(HISPCP=0x0003),ADCTRL3中的AD

26、CCLKPS設置為0010,ADCTRL1中的CPS設置為1。2 假設用SEQ1完成5個通道的自動連續轉換。ADCINA2和ADCINA1轉換兩次;ADCINA6轉換一次,請編程序配置ADC。答:/ 配置 ADC AdcRegs.ADCMAXCONV.all = 0x0004; / 設置SEQ1的2個轉化通道AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x2; / 設置SEQ1的 ADCINA2 作為第一轉換通道AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1; / 設置SEQ1的 ADCINA1 作為第二轉換通道 AdcRegs.ADCCHS

27、ELSEQ1.bit.CONV02 = 0x2; / 設置SEQ1的 ADCINA2 作為第三轉換通道AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x1; / 設置SEQ1的 ADCINA1 作為第四轉換通道AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 0x6; / 設置SEQ1的 ADCINA6作為第五轉換通道AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1 = 1; / 使能 EVASOC 去啟動 SEQ1 AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; / 使能 SEQ1 中斷 (每次 EOS)3.

28、 假設用SEQ1完成6個通道的自動連續轉換。ADCINA3和ADCINA 5轉換兩次;ADCINA6、ADCINA7轉換一次,問MAX CONV1的值為多少?CHESELQn寄存器應該填入什么值?答:MAX CONV1的值為6;CHESELQ1=0x5353;CHESELQ2=0xXX76;CHESELQ3=0xXXXX;CHESELQ4=0xXXXX;4. 如果需要進行8個通道的轉換,則MAX CONVn應設為多少?若是雙排序器模式使用SEQ1或者級連模式使用SEQ,排序器指針應該如何設置?轉換結果存放在哪些結果寄存器中?若是雙排序器模式使用SEQ2,排序器指針又應該如何設置?轉換結果存放在哪些結果寄存器中?答:若是雙排序器模式使

溫馨提示

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

評論

0/150

提交評論