版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- dsp應(yīng)用原理課程設(shè)計---基于tms320f2812 dsp處理器的信號儀的設(shè)計與實現(xiàn)
- dsp課程設(shè)計--基于tms320f2812 dsp處理器的fir濾波器的設(shè)計與實現(xiàn)
- dsp課程設(shè)計報告--基于tms320f2812 dsp處理器的fir濾波器的設(shè)計與實現(xiàn)
- dsp課程設(shè)計--基于tms320f2812的dsp最小系統(tǒng)設(shè)計
- 基于數(shù)字信號處理器tms320f2812的逆變電路設(shè)計
- dsp原理及其應(yīng)用技術(shù)課程設(shè)計--基于tms320f2812 dsp微處理器的最小系統(tǒng)設(shè)計
- 課程設(shè)計--基于tms320f2812的人機(jī)接口設(shè)計
- 基于TMS320F2812的電力參數(shù)測試儀的設(shè)計與實現(xiàn).pdf
- 基于TMS320F2812的毫米波探測器信號處理系統(tǒng)設(shè)計與實現(xiàn).pdf
- 基于TMS320F2812的脈沖發(fā)生器設(shè)計.pdf
- 畢業(yè)設(shè)計---基于tms320f2812的頻譜分析儀設(shè)計
- 基于TMS320F2812的智能變送器的設(shè)計與實現(xiàn).pdf
- 基于TMS320F2812實驗系統(tǒng)的設(shè)計與應(yīng)用.pdf
- 基于TMS320F2812的信號檢測與處理綜合實驗平臺研制.pdf
- 基于數(shù)字信號處理器TMS320F2812的配電變壓器監(jiān)測終端的研制.pdf
- 基于TMS320F2812單相逆變器的研究與設(shè)計.pdf
- 基于TMS320F2812的數(shù)據(jù)處理系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 基于DSP TMS320F2812的動態(tài)電壓恢復(fù)器研究.pdf
- 基于TMS320F2812的能量回饋器的研究與實現(xiàn).pdf
- 基于TMS320F2812DSP的動態(tài)信號分析儀.pdf
評論
0/150
提交評論