DSP課程設(shè)計(jì)基于DSP實(shí)驗(yàn)系統(tǒng)的串口通信_(tái)第1頁(yè)
DSP課程設(shè)計(jì)基于DSP實(shí)驗(yàn)系統(tǒng)的串口通信_(tái)第2頁(yè)
DSP課程設(shè)計(jì)基于DSP實(shí)驗(yàn)系統(tǒng)的串口通信_(tái)第3頁(yè)
DSP課程設(shè)計(jì)基于DSP實(shí)驗(yàn)系統(tǒng)的串口通信_(tái)第4頁(yè)
DSP課程設(shè)計(jì)基于DSP實(shí)驗(yàn)系統(tǒng)的串口通信_(tái)第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)報(bào)告( 2014 - 2015年度第二學(xué)期)課程名稱: dsp課程設(shè)計(jì) 題 目: 基于dsp實(shí)驗(yàn)系統(tǒng)的串口通信院 系: 電子與通信工程系 班 級(jí): 電子 學(xué) 號(hào): 學(xué)生姓名: 指導(dǎo)教師: 設(shè)計(jì)周數(shù): 2 成 績(jī):日期:2015 年 7月 16日一、 課程設(shè)計(jì)的目的與要求1. 設(shè)計(jì)方案:通過(guò)tms320c5509a的串口與電腦進(jìn)行通信,利用串口調(diào)試助手發(fā)送數(shù)據(jù),由dsp接收到,dsp讀到收到數(shù)據(jù)進(jìn)行下一步的讓四位led燈亮,實(shí)現(xiàn)數(shù)據(jù)的通信,并在lcd12864上顯示發(fā)送的數(shù)據(jù),還有顯示撥碼開關(guān)的數(shù)值。2. 設(shè)計(jì)指標(biāo):電腦只能發(fā)送015,因?yàn)樽x出數(shù)據(jù)的時(shí)候比較方便解碼,比如發(fā)送4就可以直接

2、給led直接賦值,讓第三個(gè)燈亮,也就是一般的二進(jìn)制轉(zhuǎn)換。二、 設(shè)計(jì)正文1.設(shè)計(jì)思路(系統(tǒng)組成介紹)dsp總線tms320vc5509apgejtag 片上資源:主頻:400mips,雙核 ram:128k*16bitrom:32k*16bitsdram:4m*16bitjtagflash:8mbit寄存器組 lcd液晶led燈uartcpld 2.主要部分硬件設(shè)計(jì):串口模塊:tl16c550 是一個(gè)標(biāo)準(zhǔn)的串口接口芯片,它的控制寄存器基地址為0x400200,寄存器占用tms320vc5509 的8 個(gè)地址單元。串口中斷與tms320vc5509 的int0 連接。用戶可以使用tms320vc5

3、509 的中斷0 響應(yīng)串口中斷。tl16c550 有11 個(gè)寄存器,這11 個(gè)寄存器是通過(guò)tms320vc5509 的3 個(gè)地址線(a3a1)和線路控制寄存器中的dlab 位對(duì)它們進(jìn)行尋址的。板上加上16c550、max232 和驅(qū)動(dòng)電路。驅(qū)動(dòng)電路主要完成將輸出的0-3.3v電平轉(zhuǎn)換成異步串口的工作電平,轉(zhuǎn)換電平的工作由max232 芯片完成,但由于它是5v 器件,所以它同dsp 間的信號(hào)線必須有電平轉(zhuǎn)換,此板采用的是74lvc245。實(shí)驗(yàn)箱上的液晶模塊采用的型號(hào)是tjdm12864mtjdm12864m 是一款帶中文字庫(kù)的圖形點(diǎn)陣模塊,由動(dòng)態(tài)驅(qū)動(dòng)方式驅(qū)動(dòng) 12864 點(diǎn)陣顯示。低功耗,供應(yīng)電

4、電壓范圍寬。內(nèi)含多功能的指令集,操作簡(jiǎn)易。采用 cob 工藝制作,結(jié)構(gòu)穩(wěn)固,使用壽命長(zhǎng)。特性: 1.提供 8 位,4 位及串行接口可選 2.6416 位字符顯示 ram(ddram 最多 16 字符4 行,lcd 顯示范圍 162 行) 3.2m 位中文字型 rom(cgrom) ,總共提供 8192 個(gè)中文字型(1616 點(diǎn)陣) 4.16k 位半寬字型 rom(hcgrom),總共提供 126 個(gè)西文字型(168 點(diǎn)陣) 5.6416 位字符產(chǎn)生 ram(cgram) 6.1516 位總共 240 點(diǎn)的 icon ram(iconram) 7.自動(dòng)復(fù)位(reset)功能 8.繪圖及文字畫面混

5、合顯示功能 9.提供多功能指令: 畫面清除(display clear) 游標(biāo)歸位(return home) 顯示開/關(guān)(display on/off) 游標(biāo)顯示/隱藏(cursor on/off) 字符閃爍(display character blink) 游標(biāo)移位(cursor shift) 顯示移位(display shift) 垂直畫面旋轉(zhuǎn)(vertical line scoll) 反白顯示(by-line reverse display) 睡眠模式(sleep mode) dsp與lcd的連接:3.軟件設(shè)計(jì)流程:開 始 初始化tmcr,使能pll,初始化emif,初始化sdram,初

6、始化ctr,顯示開機(jī)界面,清空gdram,顯示主菜單,串口初始化。進(jìn)入主循環(huán)檢測(cè)是否接收到數(shù)據(jù),并判斷接收到幾位的數(shù)據(jù),并儲(chǔ)存起來(lái),標(biāo)志flagreceive置1,掃描撥碼開關(guān)。判斷flagreceive的值進(jìn)行讀值解碼發(fā)送來(lái)的數(shù)據(jù)lcd顯示撥碼開關(guān)的值由發(fā)送到的值進(jìn)行l(wèi)ed燈的點(diǎn)亮方式及個(gè)數(shù)。1 0實(shí)現(xiàn)在lcd上顯示發(fā)來(lái)的數(shù)據(jù)4.在試驗(yàn)箱上模擬實(shí)現(xiàn)用隨實(shí)驗(yàn)箱附帶的串口線(兩端均為9 孔“d”形插頭)連接計(jì)算機(jī)com1 或com2 插座和icetekvc5509-a 板上標(biāo)準(zhǔn)rs-232 插座,編譯、下載、運(yùn)行。然后在電腦上使用串口調(diào)試助手對(duì)dsp進(jìn)行數(shù)據(jù)的發(fā)送,在dsp上可以看到led的點(diǎn)亮

7、方式及個(gè)數(shù),而且在lcd上也顯示發(fā)送來(lái)的數(shù)據(jù)。具體代碼見附錄。三課程設(shè)計(jì)總結(jié)1.問題與思考 1.1串口使用中用到的波特率該怎么算? brr=165535 時(shí)的串行通信接口異步波特率:串行通信接口異步波特率=sysclk/( brr+1)*8其中,brr=sysclk/(sci 異步波特率*8)-1; brr=0 時(shí)的串行通信接口異步波特率:串行通信接口異步波特率=sysclk/16這里brr 等于波特率選擇寄存器的16位值。波特率一般用9600hz,或者115200hz就行。有一個(gè)方便的計(jì)算。 1.2串口發(fā)送接收數(shù)據(jù)的方式是怎樣的? 串口發(fā)送數(shù)據(jù)為一位位的發(fā)送,例如發(fā)14,就是先發(fā)1,再發(fā)4,

8、一位一位的對(duì)數(shù)據(jù)放入發(fā)送接收的緩存區(qū),接收的時(shí)候也是一位一位的接收,一位一位都接收緩存區(qū)的里東西,知道這樣才可以對(duì)收到數(shù)據(jù)進(jìn)行讀值解碼。. 1.3 lcd12864及l(fā)ed的介紹 lcd12864帶中文字庫(kù)的圖形點(diǎn)陣模塊,12864 點(diǎn)陣顯示??梢灾苯訉懭霐?shù)據(jù)所對(duì)應(yīng)的阿斯特碼值進(jìn)行顯示,還有自己的中文字庫(kù),功能強(qiáng)大。開發(fā)板上的led為四位的共陽(yáng)極的發(fā)光二級(jí)管,只要對(duì)對(duì)應(yīng)的引腳進(jìn)行低電平控制就可以讓led燈亮起來(lái)。1.4在編譯調(diào)試過(guò)程中出現(xiàn)的.cmd文件出錯(cuò)?理解cmd文件中的內(nèi)容。.cmd文件類型及作用: .cmd是鏈接器命令文件,用于存儲(chǔ)器配置。.cmd文件結(jié)構(gòu): .cmd由兩條鏈接偽指令來(lái)

9、描述:memory 和sections,其中: memory定義用戶目標(biāo)系統(tǒng)存儲(chǔ)器的配置; sections控制段的構(gòu)建和存儲(chǔ)器的分配。 sections是coff文件中最重要的概念,它至少包含以下三個(gè)段:.text 段:包含可執(zhí)行代碼;.data 段:包含初始化數(shù)據(jù); .bss 段:為未初始化變量保留存儲(chǔ)空間。 .cinit段:包含初始化變量表和常數(shù),c/c+ 的全局變量;段的分類:可分為已初始化段和未初始化段。已初始化段:包含數(shù)據(jù)或程序代碼。例如:.text段, .data段和用.sect匯編命令建立的自定義段。當(dāng)匯編器遇到.text或.data或.sect命令時(shí),將停止對(duì)當(dāng)前段的匯編,然

10、后將緊接著的程序代碼或數(shù)據(jù)匯編到指定的段中,直到再遇見另一條命令為止。 未初始化段:是c54x存儲(chǔ)器中的保留空間,通常定義在ram區(qū)。包含:.bss 段和.usect段。當(dāng)匯編器遇到.bss 或.usect命令時(shí),并不停止對(duì)當(dāng)前段的匯編,只是暫時(shí)從當(dāng)前段脫離出來(lái),并對(duì)新的段進(jìn)行匯編。個(gè)別有地址分配不足的可以根據(jù)手冊(cè)進(jìn)行地址長(zhǎng)度修改或改變存儲(chǔ)地址。2.心得體會(huì)本次課程設(shè)計(jì)我基本掌握了dsp基本的原理結(jié)構(gòu)、tms320c5509片上串口通信、外擴(kuò)lcd和led的編程使用。通過(guò)對(duì)ccs集成開發(fā)工具的學(xué)習(xí),給整個(gè)課程設(shè)計(jì)帶來(lái)了極大的便利。學(xué)會(huì)了ccs使用后,整個(gè)程序的設(shè)計(jì)、編輯、載入都可在一個(gè)集成環(huán)境

11、下完成。在學(xué)習(xí)串口的過(guò)程中學(xué)到了很多東西,串口是個(gè)非常實(shí)用的工具,調(diào)試軟件的時(shí)候都會(huì)經(jīng)常用到,還有串口本身還有一種接收中斷,發(fā)送中斷的方式,十分好用,但是由于本次課設(shè)使用的課本沒有介紹,我也自己看看,他涉及中斷,關(guān)及中斷向量表的問題,還要對(duì)中斷向量表進(jìn)行配置,還要看進(jìn)行匯編語(yǔ)言的設(shè)置中斷向量表,我不會(huì)匯編語(yǔ)言,于是沒有能用上接收中斷,就覺得非??上В蝗怀绦蜻\(yùn)行的會(huì)更好。經(jīng)過(guò)我不斷的修改,最終程序調(diào)試完成,也基本達(dá)到了實(shí)驗(yàn)要求。但由于時(shí)間的原因,這還有一些不盡如人意的地方,都可以繼續(xù)改進(jìn)。說(shuō)到中斷不禁想起dsp的編程方式,真是大開眼界了,自己寫著底層的庫(kù),老師說(shuō)這是在鍛煉我們,不僅僅學(xué)習(xí)軟件方

12、面的東西,還學(xué)習(xí)了dsp的硬件系統(tǒng),知道每個(gè)寄存器的地址。其實(shí)也有集成好的庫(kù),我也看過(guò),要說(shuō)的是,他自帶的庫(kù)用的是匯編語(yǔ)言寫的,我們一般都看不懂,但是調(diào)用的時(shí)候竟然是c語(yǔ)言的調(diào)用,如果有時(shí)間好好看,應(yīng)該也能用。還有就是這種從底層寫程序的方式雖然效率很低,不會(huì)的問題會(huì)很多,不通匯編語(yǔ)言的人學(xué)會(huì)很吃力,但是就像老師說(shuō)的,得到了很好的鍛煉,對(duì)dsp硬件軟件都有了個(gè)很好的了解。對(duì)以后的學(xué)習(xí)很有幫助??偠灾ㄟ^(guò)dsp課程設(shè)計(jì),提高了自己的理論與實(shí)踐編程能力,使得對(duì)dsp有了更為深刻的理解,在今后的學(xué)習(xí)中,我會(huì)更多的學(xué)習(xí)dsp的相關(guān)內(nèi)容,不斷努力提高設(shè)計(jì)與創(chuàng)新能力。最后,非常感謝老師的指導(dǎo)與幫助,沒有

13、老師的指導(dǎo)我們將很難完成任務(wù)。附錄:部分相關(guān)代碼:#include myapp.h#include 5509.h#define uart_base_addr0x400400#define rbr*(int *)(uart_base_addr+0)#define thr*(int *)(uart_base_addr+0)#define ier*(int *)(uart_base_addr+1)#define iir*(int *)(uart_base_addr+2)#define fcr*(int *)(uart_base_addr+2)#define lcr*(int *)(uart_base

14、_addr+3)#define mcr*(int *)(uart_base_addr+4)#define lsr*(int *)(uart_base_addr+5)#define msr*(int *)(uart_base_addr+6)#define scr*(int *)(uart_base_addr+7)#define dll*(int *)(uart_base_addr+0)#define dlm*(int *)(uart_base_addr+1)/ 定義指示燈控制寄存器地址和寄存器類型#define lbds (*(unsigned int *)0x400001)/ 定義撥碼開關(guān)控制

15、寄存器地址和寄存器類型#define dips (*(unsigned int *)0x400002)void tmcr_reset( void );void emif_init(void);void wait(int nwait);char cstring17=hellopc!,over| ,creceive,cbuffer17,canswer10=you say;char cshu11= 0123456789 ,a17=0;int flagreceive=0,nlen=0;unsigned int abuffer17,b17=0;unsigned int rece=0;int k=0,di

16、padd=0;/主程序main()unsigned int uwork;int i;/flagreceive=0; tmcr_reset(); pll_init(12); emif_init(); sdram_init();/ 初始化emif接口initctr();clrram();smenu(); lcr = 0x80; /分頻dll = 0x18; /分頻低8 dlm = 0x00; /分頻高8 lcr = 0x03; /8比特 fcr = 0x01; /fifo模式mcr = 0x00; /msr = 0x00;ier = 0x00; for(;) if ( flagreceive=0

17、)if(dipadd=0&dipadd=9)wr_lcd (0,0x98);/ 第四行 wr_lcd( 1,cshudipadd); wr_lcd( 1, );else if(dipadd16)wr_lcd (0,0x98);/ 第四行 wr_lcd( 1,cshu1); wr_lcd( 1,(cshudipadd%10); else flagreceive=0;for ( i=0;i7;i+ )do uwork=lsr; /線路狀態(tài),接收數(shù)據(jù) while ( uwork&0x040 != 0x040 );/接收到,退出thr=cansweri; /發(fā)送 you saywait(128);fo

18、r ( i=0;inlen;i+ )do uwork=lsr; while ( uwork&0x040 != 0x040 );thr=abufferi; /發(fā)送接收到的數(shù)wait(128);if(b1=.)wr_lcd (0,0x90);/ 第二行wr_lcd( 1,(b0); lbds=b0;else if(b2=.)wr_lcd (0,0x90);/ 第二行wr_lcd( 1,(b0);wr_lcd( 1,(b1);lbds=(b0+b1+9);k=0; flagreceive=0;while ( 1 ) /接收發(fā)送到的,并計(jì)算字符表長(zhǎng)度kuwork=lsr;if(uwork&1)=1)c

19、receive=rbr; /接收到的數(shù)據(jù)abufferk=creceive&0x0ff;ak= abufferk; bk= abufferk; if ( creceive=. ) abufferk+1=0;nlen=k+1;flagreceive=1;break; k+; k%=16; else/掃描撥碼開關(guān) dipadd=dips&0x000f; break; void emif_init(void) ioport unsigned int *ce21 =(unsigned int *)0x809; *ce21 = 0x1fff;void tmcr_reset( void ) ioport unsigned int *tmcr_mgs3=(unsigned int *)0x07fe; ioport unsigned int *tmcr_mm =(unsigned int *)0x07ff; *tmcr_mgs3 =0x510; *tmcr_mm =0x000;void wait(int nwait)int i,j,k=0;for ( i=0;inwait;i+ )for ( j=0;j64;j+ )k+;/*-寫lcd-*/void wr_lcd(unsigned char dat_comm, unsigned int content)if(da

溫馨提示

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