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

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  一、引言</b></p><p><b>  二、設(shè)計目的</b></p><p><b>  三、設(shè)計要求</b></p><p><b>  四、總體設(shè)計</

2、b></p><p><b>  4.1硬件部分</b></p><p>  4.1.1數(shù)模轉(zhuǎn)換操作的應(yīng)用基礎(chǔ)</p><p>  4.1.2 AD7303簡介</p><p>  4.1.3 應(yīng)用AD7303的DAC電路設(shè)計</p><p><b>  4.2 軟件部分</

3、b></p><p>  4.2.1 程序流程圖</p><p>  4.2.2 在CCS集成開發(fā)環(huán)境下新建工程</p><p>  4.2.3在Simulator環(huán)境下觀察信號的時域及FFT Magnitude波形</p><p>  4.2.4 程序清單</p><p><b>  4.3 調(diào)試部分

4、</b></p><p>  4.3.1 硬件調(diào)試</p><p>  4.3.2 軟件調(diào)試</p><p>  4.3.3 SCI串行數(shù)據(jù)傳輸</p><p><b>  五、總結(jié)</b></p><p><b>  六、參考文獻(xiàn)</b></p>

5、<p><b>  一、引言</b></p><p>  隨著現(xiàn)代科學(xué)技術(shù)的發(fā)展和計算機(jī)技術(shù)的普及,信號處理系統(tǒng)已應(yīng)用于越來越多的場合,如無線通信、語音識別、機(jī)器人、遙感遙測和圖像處理領(lǐng)域,數(shù)字信號處理器芯片在高速信號處理方面具有速度快、運算性能好等優(yōu)點,本文設(shè)計了一種基于TI公司的TMS320F812的信號處理系統(tǒng),將數(shù)據(jù)通過串行異步通信接口傳到PC機(jī),由PC機(jī)的串口調(diào)試工具對接

6、收信號進(jìn)行顯示和具體分析并將結(jié)果傳給反饋給DSP進(jìn)行控制,文章對硬件和軟件進(jìn)行了詳細(xì)描述。</p><p><b>  二、設(shè)計目的</b></p><p>  1、編寫串行外設(shè)接口SPI的驅(qū)動程序;</p><p>  2、了解數(shù)模轉(zhuǎn)換的基本操作,設(shè)計基于數(shù)模轉(zhuǎn)換芯片AD7303的正弦信號發(fā)生電路;</p><p> 

7、 3、編寫TMS320F2812利用SPI接口驅(qū)動AD7303輸出正弦信號波形的應(yīng)用程序。</p><p><b>  三、設(shè)計要求</b></p><p>  1、熟悉CCS集成開發(fā)環(huán)境的使用,能對程序進(jìn)行跟蹤,分析結(jié)果;</p><p>  2、熟悉SPI外設(shè)接口的相關(guān)知識,能通過SPI接口與外圍電路(芯片)進(jìn)行通信。</p>

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

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

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

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

12、S集成開發(fā)環(huán)境下新建工程</p><p>  在CCS中建立一個新的工程文件,它將從外部數(shù)據(jù)文件獲取數(shù)據(jù),并對得到的數(shù)據(jù)進(jìn)行數(shù)學(xué)運算,最后顯示輸出數(shù)據(jù)的圖形。</p><p>  創(chuàng)建工程文件的步驟:</p><p>  (1)啟動Code Composer Studio v2.20。雙擊桌面上的CCS 2(‘C2000)快捷圖標(biāo),快速啟動CCS集成開發(fā)環(huán)境。<

13、;/p><p> ?。?)如果CCS安裝在c:\ti中,則可在c:\ti\myprojects目錄下建立文件夾volume。(若將CCS安裝在其它位置,則在相應(yīng)位置創(chuàng)建文件夾volume。)</p><p>  (3)將c:\ti\tutorial\sim28xx\volume1目錄中的volume.c文件、volume.h文件、volume.cmd文件、volume.gel文件、load.a

14、sm文件、sine.dat文件及vectors.asm文件拷貝到上述新文件夾。</p><p>  (4)如圖1所示,選擇菜單“Project”的“New…”項。</p><p><b>  圖1 創(chuàng)建工程文件</b></p><p> ?。?)彈出的創(chuàng)建工程文件對話框,如圖2所示,按圖示的編號順序操作建立volume.pjt工程文件。<

15、/p><p><b>  圖2 新建工程</b></p><p>  展開主窗口左側(cè)工程管理窗口中“Projects”下新建立的“volume.pjt”,其各項均為空。</p><p>  4.2.3在Simulator環(huán)境下觀察信號的時域及FFT Magnitude波形</p><p>  1、選菜單View→Graph→

16、Time/Frequency。</p><p>  2、在Graph Property Dialog對話框中,修改Start Address為curve, Display Data Size為128,DSP Data Type為16-bit unsigned integer,Autoscale為Off,Maximum Y-value為300。如圖4---1所示:</p><p>  圖4-

17、----1 圖形屬性對話框</p><p>  3、單擊“OK”按鈕,顯示時域波形的圖形窗口就出現(xiàn)了,如圖4---2所示。</p><p>  圖4----2 時域波形圖</p><p>  4、再次選菜單View→Graph→Time/Frequency。將Display type修改為FFT Magnitude,Autoscale為On,Maximum Y-

18、value為5000。,其余的設(shè)置都不變。</p><p>  5、點擊“OK”按鈕,又出現(xiàn)一個圖形窗,即為頻域圖形,如圖4---3所示: </p><p>  圖4----3 頻域波形圖</p><p>  4.2.4 程序清單</p><p>  /*----------------------- 文件信息

19、---------------------------- </p><p><b>  ;* </b></p><p>  ;* 文件名稱 : SPI_DA.c </p><p>  ;* 適用平臺 : DSP專家4實驗箱</p><p>  

20、;* CPU類型 : DSP TMS320F2812 </p><p>  ;* 軟件環(huán)境 : CCS2.20 (2000系列)</p><p>  ;* 接線說明 : 1、F2812CPU板的JUMP1的2和3腳短接,JUMP2的1和2腳短接;</p><p>  ;* 2、實驗箱底板的開關(guān)K9撥到右側(cè),選擇CPU2.</p>

21、<p>  ;* 測試現(xiàn)象 : 設(shè)置好CCS的環(huán)境,打開本工程,編譯、下載、運行。</p><p>  ;* 利用示波器觀察實驗箱DA單元的二號孔"輸出1"有正弦波輸出。</p><p>  */ </p><p>  /***************************頭文件*******

22、************************/</p><p>  #include "DSP281x_Device.h" // DSP281x Headerfile Include File</p><p>  #include "DSP281x_Examples.h" // DSP281x Examples Include Fil

23、e</p><p>  #include "math.h"</p><p>  #define pi 3.1415926</p><p>  unsigned int curve[128]; </p><p>  unsigned int curve1[128]; </p><p>  unsign

24、ed int curve2[128];</p><p>  // Prototype statements for functions found within this file.</p><p>  void spi_init(void);</p><p>  void delay(void); </p><p>  void main(

25、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</p>

26、<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 found

27、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 only t

28、he 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 - x000 0000

29、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><b&g

30、t;  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>  // are clear

31、ed. </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><

32、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><p&

33、gt;  // 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 found in DS

34、P281x_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><p

35、>  // 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</p>

36、<p>  spi_init(); // init SPI</p><p>  for(i=0; i<128;i++) </p><p><b>  {</b></p><p>  /*產(chǎn)生128個點的正弦信號波形*/</p><p>  data=(int)(127.5*(1+sin(2*p

37、i*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ù)打包成“從移位寄存器到DAC B數(shù)

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

39、lt;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]; </p&g

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

41、t;/b></p><p><b>  }</b></p><p><b>  } </b></p><p>  void spi_init()</p><p><b>  { </b></p><p>  SpiaRegs.SPICCR.

42、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 master mo

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

44、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 </p

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

46、/b></p><p>  //===========================================================================</p><p>  // No more.</p><p>  //=======================================================

47、====================</p><p><b>  4.3 調(diào)試部分</b></p><p>  4.3.1 硬件調(diào)試</p><p> ?。?)將CCS設(shè)置Emulator的方式(通過硬件仿真調(diào)試器XDS510連接C2000開發(fā)板進(jìn)行硬件仿真調(diào)試的方式),并且指定通過XDS510 USB接口仿真器C2000硬件評估電路板。&

48、lt;/p><p> ?。?)把U盤中的程序文件復(fù)制到C盤中的ti文件中myprojects目錄中,在CCS 2窗口中的菜單中選擇Project,在出現(xiàn)的窗口的查找范圍中選擇C盤中的ti文件中的工程文件,然后打開。</p><p>  (3)編譯鏈接工程。選擇菜單“Project”的“Rebuild All”項,或單擊工具條中的按鈕。注意編譯過程中CCS主窗口下部“Build”提示窗中顯示編譯

49、信息,最后將給出錯誤和警告的統(tǒng)計數(shù)。</p><p> ?。?)下載程序。執(zhí)行FileLoad Program,在隨后打開的對話框中選擇剛剛建立的C:\ti\myprojects\ SPI_DA \Debug\ Example_281x_da.out文件,點擊“打開”按鈕。CCS將程序加載到硬件仿真器上,并打開Disassembly窗口,該窗口顯示反匯編指令。(注意,CCS還會自動打開窗口底部一個標(biāo)有Stdout

50、的區(qū)域,該區(qū)域用以顯示程序送往Stdout的輸出。)</p><p> ?。?)運行程序。先使用DebugGo main命令,然后點擊工具欄按鈕或選擇Debug→Run??煽焖俚剡\行主函數(shù)調(diào)試自己的代碼。</p><p>  當(dāng)運行程序時,可在Stdout窗口中看到程序運行時輸出的“Example example started”消息。</p><p> ?。?)

51、測試輸出信號。先將示波器一信號輸入線接在實驗板上的END上,然后將另一個信號輸入線接在A/D信號輸出口上,調(diào)試示波器,示波器屏幕上將出現(xiàn)一個正弦波。如下圖所示:</p><p>  4.3.2 軟件調(diào)試</p><p>  進(jìn)行軟件調(diào)試之前我們需要對CCS進(jìn)行設(shè)置,讓其工作在軟件仿真的環(huán)境下,就是由軟件在計算機(jī)內(nèi)存中構(gòu)造一個虛擬的DSP環(huán)境,在Simulator方式下可以調(diào)試運行程序,接著

52、啟動CCS進(jìn)行軟件的調(diào)試,步驟如下:</p><p> ?。?)編譯鏈接工程。選擇菜單“Project”的“Rebuild All”項,或單擊工具條中的按鈕。注意編譯過程中CCS主窗口下部“Build”提示窗中顯示編譯信息,最后將給出錯誤和警告的統(tǒng)計數(shù)。</p><p> ?。?)下載程序。執(zhí)行FileLoad Program,在隨后打開的對話框中選擇剛剛建立的C:\ti\myprojec

53、ts\volume\Debug\volume.out文件,點擊“打開”按鈕。CCS將程序加載到軟件仿真環(huán)境上,并打開Disassembly窗口,該窗口顯示反匯編指令。(注意,CCS還會自動打開窗口底部一個標(biāo)有Stdout的區(qū)域,該區(qū)域用以顯示程序送往Stdout的輸出。)</p><p> ?。?)點擊Disassembly窗口中一條匯編指令(點擊指令,而不是點擊指令的地址或空白區(qū)域)。按F1鍵,CCS將搜索有關(guān)

54、那條指令的幫助信息,這使用戶便于獲得不熟悉匯編指令幫助信息。</p><p> ?。?)運行程序。在執(zhí)行C語言的程序時,為了快速地運行到主函數(shù)調(diào)試自己的代碼,可以先使用DebugGo main命令,然后點擊工具欄按鈕或選擇Debug→Run。</p><p>  4.3.3 SCI串行數(shù)據(jù)傳輸</p><p><b>  具有以下三個特點:</b&g

55、t;</p><p><b>  1.波特率可編程。</b></p><p>  2.發(fā)送器與接收器都是雙緩沖。</p><p>  3.各自有工作使能和中斷控制??晒ぷ饔谌p工模式</p><p>  串行口的內(nèi)部結(jié)構(gòu)如下圖所示:</p><p>  SCI有兩種多機(jī)通訊協(xié)議:(1)空閑線路多機(jī)

56、通訊模式。 (2)地址位多機(jī)通訊模式。協(xié)議允許在多個處理器之間進(jìn)行有效的數(shù)據(jù)傳輸</p><p>  SCI雙機(jī)通信可使用半雙工或全雙工模式通信。</p><p>  一個幀包括1個起始位、1-8個數(shù)據(jù)位、1個可選的奇偶校驗位以及1-2個停止位。每個數(shù)據(jù)位占8個SCICLK周期。接收器在接收到一個有效的起始位后開始工作。一個有效的起始位由4個連續(xù)的內(nèi)部SCICLK周期的低電平表示。如果任何

57、一個位都不為0,則處理器重新啟動并開始尋找另一個起始位。</p><p><b>  五、總結(jié)</b></p><p>  本設(shè)計利用TM320F2812強(qiáng)大的運算能力,在軟件模擬方面有強(qiáng)大的實時性和穩(wěn)定性,基于DSP的信號處理系統(tǒng)采用TMS320F2812片內(nèi)自帶的16位的AD模塊,大大節(jié)省了系統(tǒng)成本,同時也簡化了硬件的設(shè)計,該系統(tǒng)具有較高的信號采集與處理精度和通用

58、性。</p><p><b>  六、參考文獻(xiàn)</b></p><p>  1、陳志洋,鄒云屏 基于DSP的電氣參數(shù)測試儀研究 [期刊論文] -儀表技術(shù)2004</p><p>  2、蘇濤,蔡建隆.DSP接口電路設(shè)計與編程【M】.西安:西安電子科技大學(xué)出版社。2003</p><p>  3、孫元敏,尹立新,楊書濤,基

59、于TMS320F2812的高速數(shù)據(jù)采集處理系統(tǒng)【J】.計算機(jī)工程2009.35(2)</p><p>  4、季小林,高曉蓉.基于TMS320F2812的數(shù)據(jù)采集系統(tǒng)【J】.計算機(jī)工程2009.35(2).</p><p>  5、蘇奎峰,呂強(qiáng).TMS320F2812原理與開發(fā)【M】.北京:電子工業(yè)出版社。2006</p><p><b>  電子通信工程

溫馨提示

  • 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

提交評論