dsp課程設(shè)計(jì)報(bào)告(秒表-)_第1頁
dsp課程設(shè)計(jì)報(bào)告(秒表-)_第2頁
dsp課程設(shè)計(jì)報(bào)告(秒表-)_第3頁
dsp課程設(shè)計(jì)報(bào)告(秒表-)_第4頁
dsp課程設(shè)計(jì)報(bào)告(秒表-)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、DSP原理及C程序開發(fā)課程設(shè)計(jì)報(bào)告題 目 秒表 學(xué) 院 專 業(yè) 班 級(jí) 姓 名 學(xué) 號(hào) 指導(dǎo)教師 2011 年 11 月 30 日教師評(píng)語:總分:教師簽名:16目錄一、 課程設(shè)計(jì)任務(wù). .3二、TMS320F2812介紹 . .44.1 特點(diǎn) . .44.2 系統(tǒng)框圖 . .54.3 TSM320F2812 時(shí)鐘 .6三、F2812 SCI模塊.7 5.1 SCI概述 .7 5.2 SCI 特點(diǎn) .75.3 SCI CPU接口 .75.4 SCI多處理器通信 .85.5 SCI的中斷 .8四、程序代碼設(shè)計(jì) . .116.1 CPU Timers的初始化配置程序代碼. .116.2主程序代碼.

2、. . .14五、設(shè)計(jì)總結(jié) . . .16六、參考文獻(xiàn) . .17一、課程設(shè)計(jì)任務(wù)通過TMS320F2812實(shí)現(xiàn)秒表的功能,其功能是時(shí)間送PC顯示,每1秒變化一次。二、系統(tǒng)分析21設(shè)計(jì)要求(1)設(shè)置DSP的TMS320F2812芯片為Emulator工作模式;(2)設(shè)置GPIO相應(yīng)管腳為輸入或輸出模式;(3)DSP芯片外接LCD作為輸出,外接n個(gè)(數(shù)目不底于3個(gè))單按鍵作為輸入;(4)在程序中構(gòu)建漢字字模,并能夠使用查找法提取。22、設(shè)計(jì)思想 通過CCS軟件開發(fā)平臺(tái)和相應(yīng)實(shí)驗(yàn)箱進(jìn)行程序調(diào)試DSP外設(shè)控制設(shè)備開發(fā)擴(kuò)展。用獨(dú)立式控鍵控制DSP的GPIO管腳,使用DSP芯片控制LCD來顯示秒表的計(jì)數(shù)

3、數(shù)字,用其中一個(gè)按鍵實(shí)現(xiàn)LCD的清屏,其它(4個(gè))通過兩個(gè)按鍵控制秒表的啟停。三、TMS320F2812介紹3.1 特點(diǎn) 采用32-位定點(diǎn)DSP TMS320F2812150MHz,方便實(shí)現(xiàn)電機(jī)控制片上存儲(chǔ)器:FLASH: 128K X16-位SRAM: 18K X16-位Boot ROM: 4K X16-位OPT ROM: 1K X16-位其中FLASH,OPT ROM和8K X16-位SRAM受密碼保護(hù),保護(hù)用戶程序。片上外設(shè):PWM: 12路QEP: 6通道ADC: 2X8通道,12-位,80ns轉(zhuǎn)換時(shí)間,03V量程SCI異步串口: 2通道McBSP同步串口: 2通道SPI同步串口: 1

4、通道 eCAN總線: 1通道 外擴(kuò)SRAM,最大容量為512K X 16位,基本配置為64K X 16位 外擴(kuò)RTP實(shí)時(shí)時(shí)鐘+512 X 8-位EERPROM 外擴(kuò)4通道,12-位分辨率 2路SCI進(jìn)行收發(fā)驅(qū)動(dòng),接口標(biāo)準(zhǔn)RS232/RS422/RS485可配置 提供看門狗,電源監(jiān)視,上電復(fù)位,手動(dòng)復(fù)位,系統(tǒng)可靠,穩(wěn)定 標(biāo)準(zhǔn)化的擴(kuò)展總線 3.2 系統(tǒng)框圖 全功能框圖系統(tǒng)電路原理圖如下:4.3 TSM320F2812 時(shí)鐘TSM320F2812 上有多個(gè)部件需要時(shí)鐘,CPU,看門狗電路,ADC,事件管理器等片上外設(shè)。F2812 的CPU時(shí)鐘電路如下圖所示:四、TMS320F2812 SCI模塊和C

5、PU定時(shí)器模塊以及串口調(diào)試器4.1 SCI概述 SCI 模塊支持在CPU和其他異步外設(shè)之間的數(shù)字通訊。SCI的串口接收和發(fā)送均為雙緩沖,接收和發(fā)送都有獨(dú)立的使能和中斷位。在全雙工模式下,兩者可以獨(dú)立或同步運(yùn)行。為了群豹數(shù)據(jù)的完整性,SCI模塊檢查接收數(shù)據(jù)的斷點(diǎn),校驗(yàn)位和幀錯(cuò)誤。4.2 SCI 特點(diǎn)F2812的SCI具有如下特性:l 兩根外部信號(hào)線引腳:SCITXD/SCIRXD l 異步串行、標(biāo)準(zhǔn)非歸零(NRZ)格式l 16位波特率64K種可編程通信速率,增強(qiáng)型自動(dòng)波特率檢測(cè)硬件邏輯l 數(shù)據(jù)格式靈活l 接收數(shù)據(jù)出錯(cuò)檢測(cè) l 2種多處理器喚醒模式 l 半雙工、全雙工l 雙緩沖接收和發(fā)送l 發(fā)送、

6、接收獨(dú)立的中斷使能和中斷位l 增強(qiáng)型發(fā)送、接收16級(jí)FIFOl 13個(gè)8位SCI模塊控制寄存器l 發(fā)送、接收可采用中斷或狀態(tài)標(biāo)志位查詢編程方式SCI模塊方塊圖如下:4.3 SCI CPU接口SCI CPU接口如下圖所示:4.4 SCI多處理器通信同一個(gè)串行線路上,一次多處理器通信:l 一個(gè)發(fā)送者(Talker)l 多個(gè)接收者(Listener)實(shí)現(xiàn)與一個(gè)Listener的互傳l 地址字節(jié) 數(shù)據(jù)塊第一個(gè)字節(jié)是地址字節(jié),被所有Listener讀取地址正確的接收器接收隨后的數(shù)據(jù);地址不正確的Listener等待下一個(gè)地址字節(jié)。l SLEEP位 所有的均置SLEEP位為1,僅在檢測(cè)到地址字節(jié)時(shí)才被中斷

7、當(dāng)?shù)刂放c軟件設(shè)置地址一致時(shí),用戶程序清除SLEEP位,此時(shí)方可以接收數(shù)據(jù)字節(jié),產(chǎn)生接收數(shù)據(jù)中斷。識(shí)別地址字節(jié)l 空閑線模式:在地址字節(jié)前留一段靜態(tài)空間沒有附加地址位,數(shù)據(jù)10個(gè), 效率比地址位模式高一般應(yīng)用于典型的非多處理器的SCI通信l 地址位模式:每個(gè)字節(jié)增加一個(gè)地址附加位小塊數(shù)據(jù)時(shí)更有效,數(shù)據(jù)塊之間不需要等待高速傳送時(shí),程序不可避免地要加入空閑位。SCI的TX和RX控制特點(diǎn)l 用戶選擇多處理器工作模式,ADDR/IDLE MODE位,SCICCR兩種模式下都可以控制SCI發(fā)送器/接收器的工作狀態(tài)l 發(fā)送喚醒標(biāo)志,TXWAKE位,SCICTL1l 接收喚醒標(biāo)志,RXWAKE位,SCIRXS

8、Tl 休眠標(biāo)志,SLEEP位,SCICTL1接收步驟(1) 接收地址塊時(shí),SCI端口喚醒并申請(qǐng)中斷讀取第一幀數(shù)據(jù),其中包括目的地址(2) 中斷進(jìn)入ISR,核對(duì)地址與保存在內(nèi)存中的器件地址(3) 地址相符,則CPU清除SLEEP位并讀塊的其余數(shù)據(jù)如果不符,則退出ISR,保持SLEEP位在下一個(gè)塊開始之前不接收中斷。4.5 SCI的中斷l(xiāng) SCI模塊有獨(dú)立的發(fā)送/接收外圍中斷向量l 外圍中斷請(qǐng)求可以是最高優(yōu)先級(jí),也可以是低優(yōu)先級(jí)(1)由PIE控制器的優(yōu)先級(jí)控制位決定(2)接收優(yōu)先級(jí) 發(fā)送優(yōu)先級(jí)l RX/BK INTENA(SCICTRL21)=1: (1) SCI接收到完整的幀,且RXSHFSCI

9、RXBUF RXRDY(SCIRXST6)=1,產(chǎn)生中斷(2) 間斷測(cè)試條件發(fā)生(丟失一個(gè)停止位后保持連續(xù)10個(gè)低電平) RBKDT(SCIRXST5)=1,產(chǎn)生中斷l(xiāng) TX INTENA(SCICTRL20)=1:(1) SCITXBUFTXSHF TXRDY(SCICTL27)=1,產(chǎn)生中斷l(xiāng) RX ERROR INTENA(SCICTRL16)=1:(1) 傳送出錯(cuò) RX ERROR(SCIRXST7)=1,產(chǎn)生中斷五、程序代碼設(shè)計(jì) 5.1 CPU Timers的初始化配置程序代碼#include DSP28_Device.hstruct CPUTIMER_VARS CpuTimer0;

10、struct CPUTIMER_VARS CpuTimer1;struct CPUTIMER_VARS CpuTimer2;/-/ InitCpuTimers: /-/ This function initializes all three CPU timers to a known state./void InitCpuTimers(void)/ Initialize address pointers to respective timer registers:CpuTimer0.RegsAddr = &CpuTimer0Regs;CpuTimer1.RegsAddr = &CpuTimer

11、1Regs;CpuTimer2.RegsAddr = &CpuTimer2Regs;/ Initialize timer period to maximum:CpuTimer0Regs.PRD.all = 0xFFFFFFFF;CpuTimer1Regs.PRD.all = 0xFFFFFFFF;CpuTimer2Regs.PRD.all = 0xFFFFFFFF;/ Initialize pre-scale counter to divide by 1 (SYSCLKOUT):CpuTimer0Regs.TPR.all = 0;CpuTimer0Regs.TPRH.all = 0;/ Mak

12、e sure timers are stopped:CpuTimer0Regs.TCR.bit.TSS = 1; CpuTimer1Regs.TCR.bit.TSS = 1; CpuTimer2Regs.TCR.bit.TSS = 1; / Reload all counter registers with period values:CpuTimer0Regs.TCR.bit.TRB = 1; CpuTimer1Regs.TCR.bit.TRB = 1; CpuTimer2Regs.TCR.bit.TRB = 1; / Reset interrupt counters:CpuTimer0.I

13、nterruptCount = 0;CpuTimer1.InterruptCount = 0;CpuTimer2.InterruptCount = 0;/-/ ConfigCpuTimer: /-/ This function initializes the selected timer to the period specified/ by the Freq and Period parameters. The Freq is entered as MHz/ and the period in uSeconds. The timer is held in the stopped state/

14、 after configuration./void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period)Uint32 temp;/ Initialize timer period:Timer-CPUFreqInMHz = Freq;Timer-PeriodInUSec = Period;temp = (long) (Freq * Period);Timer-RegsAddr-PRD.all = temp;/ Set pre-scale counter to divide by 1 (SYSCLKOUT):T

15、imer-RegsAddr-TPR.all = 0;Timer-RegsAddr-TPRH.all = 0;/ Initialize timer control register:Timer-RegsAddr-TCR.bit.POL = 0; / 0 = Pulse LowTimer-RegsAddr-TCR.bit.TOG =0; / 0 = No Toggle, POL bit defines actionTimer-RegsAddr-TCR.bit.TSS = 1; / 1 = Stop timer, 0 = Start/Restart Timer Timer-RegsAddr-TCR.

16、bit.TRB = 1; / 1 = reload timerTimer-RegsAddr-TCR.bit.FRCEN = 0; / Force output enable (not used)Timer-RegsAddr-TCR.bit.PWIDTH = 7; / 7+1 = 8 SYSCLKOUT cycle pulse width Timer-RegsAddr-TCR.bit.SOFT = 1;Timer-RegsAddr-TCR.bit.FREE = 1; / Timer Free RunTimer-RegsAddr-TCR.bit.TIE = 1; / 0 = Disable/ 1

17、= Enable Timer Interrupt/ Reset interrupt counter:Timer-InterruptCount = 0;/=/ No more.5.2主程序代碼#include #include DSP28_Device.hunsigned int Rbuf100, Tbuf100;unsigned int Ri = 0;unsigned int Ti = 0;unsigned int Tn = 0;/=unsigned char title = DSP課程設(shè)計(jì)-秒表 rn;unsigned char nunm = 08064054 rn;unsigned int

18、 cnt = 0;interrupt void cpu_timer0_isr();/void main(void)int16 i;int16 flag=0;/*初始化系統(tǒng)*/InitSysCtrl();/*關(guān)中斷*/DINT;IER = 0x0000;IFR = 0x0000;/*初始化PIE中斷*/InitPieCtrl();/*初始化PIE中斷矢量表*/InitPieVectTable();EALLOW;PieVectTable.TINT0 = &cpu_timer0_isr;EDIS;/*初始化SCIA寄存器*/ InitSci(); InitCpuTimers(); ConfigCpu

19、Timer(&CpuTimer0,150,1000000); StartCpuTimer0(); IER|=M_INT1; PieCtrl.PIEIER1.bit.INTx7 = 1; EINT; ERTM; /*開中斷*/EINT;/ Enable Global interrupt INTMERTM;/ Enable Global realtime interrupt DBGMfor(;)if(flag=0)for(i=0; titlei!=0; i+)Tbufi = titlei;Tn = i;Ti = 0;flag = 1;if(flag=2)for(i=0; nunmi!=0; i+)Tbufi = nunmi;Tn = i;Ti = 0;flag = 3;if(flag=4)/if(SciaTx_Ready() = 1) & (Tn!=0)SciaRegs.SCITXBUF = TbufTi;Ti += 1;Tn -= 1;if(Tn=0)Ti = 0;flag += 1;if(SciaRx_Ready() = 1)RbufRi = SciaRegs.SCIRXBUF.all;if(RbufRi=0x0a)for(i=0; i TBufint

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)論