版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上DSP原理及C程序開發(fā)課程設計報告題 目 秒表 學 院 專 業(yè) 班 級 姓 名 學 號 指導教師 2011 年 11 月 30 日教師評語:總分:教師簽名:專心-專注-專業(yè)目錄一、 課程設計任務. .3二、TMS320F2812介紹 . .44.1 特點 . .44.2 系統(tǒng)框圖 . .54.3 TSM320F2812 時鐘 .6三、F2812 SCI模塊.7 5.1 SCI概述 .7 5.2 SCI 特點 .75.3 SCI CPU接口 .75.4 SCI多處理器通信 .85.5 SCI的中斷 .8四、程序代碼設計 . .116.1 CPU Timers的初始化配置
2、程序代碼. .116.2主程序代碼. . . .14五、設計總結 . . .16六、參考文獻 . .17一、課程設計任務通過TMS320F2812實現(xiàn)秒表的功能,其功能是時間送PC顯示,每1秒變化一次。二、系統(tǒng)分析21設計要求(1)設置DSP的TMS320F2812芯片為Emulator工作模式;(2)設置GPIO相應管腳為輸入或輸出模式;(3)DSP芯片外接LCD作為輸出,外接n個(數(shù)目不底于3個)單按鍵作為輸入;(4)在程序中構建漢字字模,并能夠使用查找法提取。22、設計思想 通過CCS軟件開發(fā)平臺和相應實驗箱進行程序調試DSP外設控制設備開發(fā)擴展。用獨立式控鍵控制DSP的GPIO管腳,使
3、用DSP芯片控制LCD來顯示秒表的計數(shù)數(shù)字,用其中一個按鍵實現(xiàn)LCD的清屏,其它(4個)通過兩個按鍵控制秒表的啟停。三、TMS320F2812介紹3.1 特點 采用32-位定點DSP TMS320F2812150MHz,方便實現(xiàn)電機控制片上存儲器:FLASH: 128K X16-位SRAM: 18K X16-位Boot ROM: 4K X16-位OPT ROM: 1K X16-位其中FLASH,OPT ROM和8K X16-位SRAM受密碼保護,保護用戶程序。片上外設:PWM: 12路QEP: 6通道ADC: 2X8通道,12-位,80ns轉換時間,03V量程SCI異步串口: 2通道McBSP
4、同步串口: 2通道SPI同步串口: 1通道 eCAN總線: 1通道 外擴SRAM,最大容量為512K X 16位,基本配置為64K X 16位 外擴RTP實時時鐘+512 X 8-位EERPROM 外擴4通道,12-位分辨率 2路SCI進行收發(fā)驅動,接口標準RS232/RS422/RS485可配置 提供看門狗,電源監(jiān)視,上電復位,手動復位,系統(tǒng)可靠,穩(wěn)定 標準化的擴展總線 3.2 系統(tǒng)框圖 全功能框圖系統(tǒng)電路原理圖如下:4.3 TSM320F2812 時鐘TSM320F2812 上有多個部件需要時鐘,CPU,看門狗電路,ADC,事件管理器等片上外設。F2812 的CPU時鐘電路如下圖所示:四、
5、TMS320F2812 SCI模塊和CPU定時器模塊以及串口調試器4.1 SCI概述 SCI 模塊支持在CPU和其他異步外設之間的數(shù)字通訊。SCI的串口接收和發(fā)送均為雙緩沖,接收和發(fā)送都有獨立的使能和中斷位。在全雙工模式下,兩者可以獨立或同步運行。為了群豹數(shù)據(jù)的完整性,SCI模塊檢查接收數(shù)據(jù)的斷點,校驗位和幀錯誤。4.2 SCI 特點F2812的SCI具有如下特性:l 兩根外部信號線引腳:SCITXD/SCIRXD l 異步串行、標準非歸零(NRZ)格式l 16位波特率64K種可編程通信速率,增強型自動波特率檢測硬件邏輯l 數(shù)據(jù)格式靈活l 接收數(shù)據(jù)出錯檢測 l 2種多處理器喚醒模式 l 半雙工
6、、全雙工l 雙緩沖接收和發(fā)送l 發(fā)送、接收獨立的中斷使能和中斷位l 增強型發(fā)送、接收16級FIFOl 13個8位SCI模塊控制寄存器l 發(fā)送、接收可采用中斷或狀態(tài)標志位查詢編程方式SCI模塊方塊圖如下:4.3 SCI CPU接口SCI CPU接口如下圖所示:4.4 SCI多處理器通信同一個串行線路上,一次多處理器通信:l 一個發(fā)送者(Talker)l 多個接收者(Listener)實現(xiàn)與一個Listener的互傳l 地址字節(jié) 數(shù)據(jù)塊第一個字節(jié)是地址字節(jié),被所有Listener讀取地址正確的接收器接收隨后的數(shù)據(jù);地址不正確的Listener等待下一個地址字節(jié)。l SLEEP位 所有的均置SLEE
7、P位為1,僅在檢測到地址字節(jié)時才被中斷當?shù)刂放c軟件設置地址一致時,用戶程序清除SLEEP位,此時方可以接收數(shù)據(jù)字節(jié),產生接收數(shù)據(jù)中斷。識別地址字節(jié)l 空閑線模式:在地址字節(jié)前留一段靜態(tài)空間沒有附加地址位,數(shù)據(jù)10個, 效率比地址位模式高一般應用于典型的非多處理器的SCI通信l 地址位模式:每個字節(jié)增加一個地址附加位小塊數(shù)據(jù)時更有效,數(shù)據(jù)塊之間不需要等待高速傳送時,程序不可避免地要加入空閑位。SCI的TX和RX控制特點l 用戶選擇多處理器工作模式,ADDR/IDLE MODE位,SCICCR兩種模式下都可以控制SCI發(fā)送器/接收器的工作狀態(tài)l 發(fā)送喚醒標志,TXWAKE位,SCICTL1l 接收
8、喚醒標志,RXWAKE位,SCIRXSTl 休眠標志,SLEEP位,SCICTL1接收步驟(1) 接收地址塊時,SCI端口喚醒并申請中斷讀取第一幀數(shù)據(jù),其中包括目的地址(2) 中斷進入ISR,核對地址與保存在內存中的器件地址(3) 地址相符,則CPU清除SLEEP位并讀塊的其余數(shù)據(jù)如果不符,則退出ISR,保持SLEEP位在下一個塊開始之前不接收中斷。4.5 SCI的中斷l(xiāng) SCI模塊有獨立的發(fā)送/接收外圍中斷向量l 外圍中斷請求可以是最高優(yōu)先級,也可以是低優(yōu)先級(1)由PIE控制器的優(yōu)先級控制位決定(2)接收優(yōu)先級 發(fā)送優(yōu)先級l RX/BK INTENA(SCICTRL21)=1: (1) S
9、CI接收到完整的幀,且RXSHFSCIRXBUF RXRDY(SCIRXST6)=1,產生中斷(2) 間斷測試條件發(fā)生(丟失一個停止位后保持連續(xù)10個低電平) RBKDT(SCIRXST5)=1,產生中斷l(xiāng) TX INTENA(SCICTRL20)=1:(1) SCITXBUFTXSHF TXRDY(SCICTL27)=1,產生中斷l(xiāng) RX ERROR INTENA(SCICTRL16)=1:(1) 傳送出錯 RX ERROR(SCIRXST7)=1,產生中斷五、程序代碼設計 5.1 CPU Timers的初始化配置程序代碼#include DSP28_Device.hstruct CPUTI
10、MER_VARS CpuTimer0;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.R
11、egsAddr = &CpuTimer1Regs;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
12、.TPRH.all = 0;/ Make 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 c
13、ounters:CpuTimer0.InterruptCount = 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
14、 the stopped state/ 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
15、 by 1 (SYSCLKOUT):Timer-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
16、Timer-RegsAddr-TCR.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
17、; / 0 = Disable/ 1 = 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課程設計-秒表 rn;unsigned char nunm = rn;un
18、signed int cnt = 0;interrupt void cpu_timer0_isr();/void main(void)int16 i;int16 flag=0;/*初始化系統(tǒng)*/InitSysCtrl();/*關中斷*/DINT;IER = 0x0000;IFR = 0x0000;/*初始化PIE中斷*/InitPieCtrl();/*初始化PIE中斷矢量表*/InitPieVectTable();EALLOW;PieVectTable.TINT0 = &cpu_timer0_isr;EDIS;/*初始化SCIA寄存器*/ InitSci(); InitCpuTimers();
19、 ConfigCpuTimer(&CpuTimer0,150,); 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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院老人健康監(jiān)測制度
- 2026年杭州市上城區(qū)望江街道社區(qū)衛(wèi)生服務中心編外招聘備考題庫及答案詳解1套
- 囊謙縣人民醫(yī)院2025年面向社會公開招聘編外聘用工作人員的招聘備考題庫及參考答案詳解一套
- 2026年泰州職業(yè)技術學院“銀發(fā)教師”長期招募備考題庫及答案詳解1套
- 2026年鹽城經(jīng)濟技術開發(fā)區(qū)公開招聘基層醫(yī)療機構專業(yè)技術人員6人備考題庫及答案詳解參考
- 2026年昭通市第三人民醫(yī)院總務科綜合崗位招聘備考題庫及一套答案詳解
- 保密及知識產權保護制度
- 2026年重慶市北碚區(qū)東陽街道辦事處非在編人員招聘備考題庫及完整答案詳解1套
- 2026年茅嶺鎮(zhèn)衛(wèi)生院招聘備考題庫含答案詳解
- 2026年順德區(qū)杏壇鎮(zhèn)林文恩中學招聘化學、英語臨聘教師備考題庫有答案詳解
- 黑龍江省哈爾濱市師范大學附中2026屆數(shù)學高三第一學期期末質量檢測模擬試題含解析
- DB31T+1661-2025公共區(qū)域電子屏播控安全管理要求
- 醫(yī)療聯(lián)合體兒童保健服務模式創(chuàng)新
- 2026年書記員考試題庫附答案
- 中國高尿酸血癥與痛風診療指南(2024更新版)課件
- 2025至2030中國專用車行業(yè)發(fā)展分析及投資前景與戰(zhàn)略規(guī)劃報告
- DB13∕T 6066.3-2025 國資數(shù)智化 第3部分:數(shù)據(jù)治理規(guī)范
- 2025年白山輔警招聘考試題庫及答案1套
- 特種設備外借協(xié)議書
- 三元股份財務風險控制研究
- DBJ-T 13-417-2023 工程泥漿技術標準
評論
0/150
提交評論