2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  電子通信工程系</b></p><p>  DSP原理及應(yīng)用課程設(shè)計(jì)報(bào)告</p><p>  設(shè)計(jì)題目:基于TMS320F2812 DSP處理器的信號(hào)儀的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  引言</b></p><p><b>  二、設(shè)計(jì)目的</b

2、></p><p>  1、編寫串行外設(shè)接口SPI的驅(qū)動(dòng)程序;</p><p>  2、了解數(shù)模轉(zhuǎn)換的基本操作,設(shè)計(jì)基于數(shù)模轉(zhuǎn)換芯片AD7303的正弦信號(hào)發(fā)生電路;</p><p>  3、編寫TMS320F2812利用SPI接口驅(qū)動(dòng)AD7303輸出正弦信號(hào)波形的應(yīng)用程序。</p><p><b>  三、設(shè)計(jì)要求</b

3、></p><p><b>  四、總體設(shè)計(jì)</b></p><p><b>  4.1硬件部分</b></p><p>  4.1.1數(shù)模轉(zhuǎn)換操作的應(yīng)用基礎(chǔ)</p><p>  利用專用的數(shù)模轉(zhuǎn)換芯片,可以實(shí)現(xiàn)將數(shù)字信號(hào)轉(zhuǎn)換成模擬量輸出的功能。在EXPIV型實(shí)驗(yàn)箱上,使用的是AD7303數(shù)模

4、芯片,它可以實(shí)現(xiàn)同時(shí)轉(zhuǎn)換2路模擬信號(hào)數(shù)出,并有8位精度,DA轉(zhuǎn)換時(shí)間1.2μs。其控制方式較為簡單:首先將需要轉(zhuǎn)換的數(shù)值及控制指令同時(shí)通過SPI總線傳送到AD7303上相應(yīng)寄存器,經(jīng)過一個(gè)時(shí)間延遲,轉(zhuǎn)換后的模擬量就從AD7303輸出引腳輸出。</p><p>  4.1.2 AD7303簡介</p><p>  AD7303是一款雙通道、8位電壓輸出DAC,采用+2.7 V至+5.5 V單

5、電源供電。它內(nèi)置片內(nèi)精密輸出緩沖,能夠?qū)崿F(xiàn)軌到軌輸出擺幅。這款器件采用多功能三線式串行接口,能夠以最高30MHz的時(shí)鐘速率工作,并與QSPI、SPI、MICROWIRE以及數(shù)字信號(hào)處理器接口標(biāo)準(zhǔn)兼容。串行輸入寄存器為16位,其中8位用作DAC的數(shù)據(jù)位,其余8位組成一個(gè)控制寄存器。</p><p>  圖1 數(shù)字量與輸出模擬量換算表</p><p>  圖2 輸入移位寄存器</p>

6、;<p>  圖3 AD7303輸入移位寄存器位定義及設(shè)置方式</p><p>  4.1.3 應(yīng)用AD7303的DAC電路設(shè)計(jì)</p><p>  圖4 AD7303電路設(shè)計(jì)</p><p><b>  4.2 軟件部分</b></p><p>  4.2.1 程序流程圖</p><p

7、>  4.2.2 在CCS集成開發(fā)環(huán)境下新建工程</p><p>  4.2.3在Simulator環(huán)境下觀察信號(hào)的時(shí)域及FFT Magnitude波形</p><p>  4.2.4 程序清單</p><p>  ;*************************************************************/</p>

8、<p>  /*----------------------- 文件信息 ---------------------------- </p><p><b>  ;* </b></p><p>  ;* 文件名稱 : Example_DSP281x_da.c </p>

9、;<p>  ;* 適用平臺(tái) : DSP專家4實(shí)驗(yàn)箱</p><p>  ;* CPU類型 : DSP TMS320F2812 </p><p>  ;* 軟件環(huán)境 : CCS2.20 (2000系列)</p><p>  ;* 試驗(yàn)接線 : 1、F2812CPU板的JUMP1的2和3腳短接,JUMP2的1和2腳短接;</p><

10、p>  ;* 2、實(shí)驗(yàn)箱底板的開關(guān)K9撥到右側(cè),選擇CPU2.</p><p>  ;* 試驗(yàn)現(xiàn)象 : 設(shè)置好CCS的環(huán)境,打開本工程,編譯、下載、運(yùn)行。</p><p>  ;* 利用示波器觀察實(shí)驗(yàn)箱DA單元的二號(hào)孔"輸出1"有正弦波輸出。</p><p>  ;* 地址譯碼說明:基地址(0x8

11、0000) </p><p>  */ </p><p>  /***************************頭文件*******************************/</p><p>  #include "DSP281x_Device.h" // DSP281x

12、 Headerfile Include File</p><p>  #include "DSP281x_Examples.h" // DSP281x Examples Include File</p><p>  #include "math.h"</p><p>  #define pi 3.1415926</p

13、><p>  unsigned int curve[128]; </p><p>  unsigned int curve1[128]; </p><p>  unsigned int curve2[128];</p><p>  // Prototype statements for functions found within this fi

14、le.</p><p>  // interrupt void ISRTimer2(void);</p><p>  void spi_init(void);</p><p>  //void spi_fifo_init(void);</p><p>  void delay(void); </p><p>  voi

15、d main(void)</p><p><b>  {</b></p><p>  int i,p,data;</p><p>  // Step 1. Initialize System Control:</p><p>  // PLL, WatchDog, enable Peripheral Clocks<

16、/p><p>  // This example function is found in the DSP281x_SysCtrl.c file.</p><p>  InitSysCtrl();</p><p>  // Step 2. Initalize GPIO: </p><p>  // This example function is

17、 found in the DSP281x_Gpio.c file and</p><p>  // illustrates how to set the GPIO to it's default state.</p><p>  // InitGpio(); // Skipped for this example </p><p>  // Setup

18、 only the GP I/O only for SPI functionality</p><p><b>  EALLOW;</b></p><p>  GpioMuxRegs.GPFMUX.all=0x000F;// Select GPIOs to be SPI pins </p><p>  // Port F MUX - x00

19、0 0000 0000 1111</p><p><b>  EDIS;</b></p><p>  // Step 3. Clear all interrupts and initialize PIE vector table:</p><p>  // Disable CPU interrupts </p><p>

20、<b>  DINT;</b></p><p>  // Initialize PIE control registers to their default state.</p><p>  // The default state is all PIE interrupts disabled and flags</p><p>  // ar

21、e cleared. </p><p>  // This function is found in the DSP281x_PieCtrl.c file.</p><p>  InitPieCtrl();</p><p>  // Disable CPU interrupts and clear all CPU interrupt flags:</p>

22、;<p>  IER = 0x0000;</p><p>  IFR = 0x0000;</p><p>  // Initialize the PIE vector table with pointers to the shell Interrupt </p><p>  // Service Routines (ISR). </p>

23、<p>  // This will populate the entire table, even if the interrupt</p><p>  // is not used in this example. This is useful for debug purposes.</p><p>  // The shell ISR routines are foun

24、d in DSP281x_DefaultIsr.c.</p><p>  // This function is found in DSP281x_PieVect.c.</p><p>  InitPieVectTable();</p><p>  // Step 4. Initialize all the Device Peripherals:</p>

25、<p>  // This function is found in DSP281x_InitPeripherals.c</p><p>  // InitPeripherals(); // Not required for this example</p><p>  // spi_fifo_init(); // Initialize the Spi FIFO<

26、;/p><p>  spi_init(); // init SPI</p><p>  for(i=0; i<128;i++) </p><p><b>  {</b></p><p>  /*產(chǎn)生128個(gè)點(diǎn)的正弦信號(hào)波形*/</p><p>  data=(int)(127.5*(1+

27、sin(2*pi*i/127))); </p><p>  curve[i]=data; </p><p>  /*將數(shù)據(jù)打包成“從移位寄存器到DAC A數(shù)據(jù)寄存器*/ </p><p>  curve1[i]=data&0x00ff|0x0100; </p><p>  /*將數(shù)據(jù)打包成“從移位寄存器

28、到DAC B數(shù)據(jù)寄存器 </p><p>  且用數(shù)據(jù)寄存器同時(shí)更新A和B兩個(gè)DA的值*/ </p><p>  curve2[i]=data&0x00ff|0x2500; </p><p><b>  }</b></p><p><b>  for(;;)</b></p

29、><p><b>  { </b></p><p>  for(p=0;p<128;p++)</p><p><b>  {</b></p><p>  /*將數(shù)據(jù)寫入AD7303*/</p><p>  SpiaRegs.SPITXBUF=curve1[p]; &

30、lt;/p><p><b>  delay();</b></p><p>  /*將數(shù)據(jù)寫入AD7303*/</p><p>  SpiaRegs.SPITXBUF=curve2[p]; </p><p><b>  delay();</b></p><p><b&g

31、t;  } </b></p><p><b>  }</b></p><p><b>  } </b></p><p>  void spi_init()</p><p><b>  { </b></p><p>  SpiaRegs

32、.SPICCR.bit.SPISWRESET=0; // Reset SCI</p><p>  SpiaRegs.SPICCR.all =0x000F; // Reset on, rising edge, 16-bit char bits </p><p>  SpiaRegs.SPICTL.all =0x000E; // Enable m

33、aster mode, normal phase,</p><p>  SpiaRegs.SPISTS.all=0x0080; // enable talk, and SPI int disabled.</p><p>  SpiaRegs.SPIBRR =0x0000;

34、 // Baud rate; </p><p>  SpiaRegs.SPIPRI.bit.FREE = 1; // Set so breakpoints don't disturb xmission </p><p>  SpiaRegs.SPICCR.bit.SPISWRESET=1; // Enable SPI

35、 </p><p><b>  }</b></p><p>  void delay(void) //延時(shí)子程序</p><p><b>  {</b></p><p>  unsigned int k;</p><p>  for(k=0

36、;k<50;k++);</p><p><b>  }</b></p><p><b>  4.3 調(diào)試部分</b></p><p>  4.3.1 硬件調(diào)試</p><p>  4.3.2 軟件調(diào)試</p><p>  4.3.3 SCI串行數(shù)據(jù)傳輸</p>

37、;<p><b>  五、總結(jié)</b></p><p>  通過本實(shí)驗(yàn)的設(shè)計(jì),了解了CCS集成開發(fā)環(huán)境的大體使用情況,并會(huì)對(duì)程序?qū)崿F(xiàn)跟蹤,了解了數(shù)模轉(zhuǎn)換的基本操作,并分析了其結(jié)果。熟悉了SPI外設(shè)接口的相關(guān)知識(shí),能通過SPI接口與外圍電路進(jìn)行通信。通過這次課程設(shè)計(jì),讓我對(duì)所學(xué)的DSP課程有了實(shí)在的應(yīng)用,并對(duì)其產(chǎn)生了一些興趣,我會(huì)在以后的學(xué)習(xí)中,繼續(xù)努力學(xué)習(xí)!雖然在做的過程中,出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論