dsp實驗報告 哈工大 實驗二異步串口通信實驗_第1頁
dsp實驗報告 哈工大 實驗二異步串口通信實驗_第2頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、dsp實驗報告 哈工大 實驗二 異步串口通信實驗 dsp試驗報告 哈工大 試驗二 異步串口通信試驗 一. 試驗?zāi)康?1. 了解 tms320lf2407a dsp 片內(nèi)串行通信接口(sci)的特點。 2. 學(xué)會設(shè)置 sci 接口進行通信。 3. 了解 icetek-lf2407-a 板上對 sci 接口的驅(qū)動部分設(shè)計。 4. 學(xué)習(xí)設(shè)計異步通信程序。 二. 試驗設(shè)備 計算機,icetek-lf2407-edu 試驗箱(或 icetek 仿真器+icetek-lf2407-a 系統(tǒng)板+相關(guān)連線及電源)。 三. 試驗原理 1. tms320lf2407a dsp 串行通信接口模塊 tms320lf2

2、40x 器件包括串行通信接口 sci 模塊。sci 模塊支持 cpu 與其他使用標(biāo)準(zhǔn)格式的異步外設(shè)之間的數(shù)字通信。sci 接收器和發(fā)送器是雙緩沖的,每一個都有它自己單獨的使能和中斷標(biāo)志位。兩者都可以獨立工作,或者在全雙工的方式下同時工作。 2. icetek-lf2407-a 板異步串口設(shè)計 由于 dsp 內(nèi)部包含了異步串行通信掌握模塊,所以在板上只需加上驅(qū)動電路部分即可。驅(qū)動電路主要完成將 sci 輸出的 0-3.3v 電平轉(zhuǎn)換成異步串口電平的工作。轉(zhuǎn)換電平的工作由 max232 芯片完成,但由于它是 5v 器件所以它同 dsp 間的信號線必需有電平轉(zhuǎn)換,此板采納的是 74ls245。 3.

3、 串行通信接口設(shè)置 cpu 進行串行通信時可以采納兩種方式,一種是輪詢方式,即 cpu 不斷查詢串口狀態(tài)進行接收和發(fā)送,缺點是占用 cpu 時間太多;另一種是中斷方式,sci 的接收和發(fā)送都可以產(chǎn)生中斷信號,這樣 cpu 可以在完成其他一些工作的同時進行串行通信。 串行通信接口波特率計算,內(nèi)部生成的串行時鐘由系統(tǒng)時鐘 sysclk 頻率和波特率選擇寄存器打算。串行通信接口使用 16 位波特率選擇寄存器,數(shù)據(jù)傳輸?shù)乃俣瓤梢员痪幊虨?65000 多種不同的方式。 不同通信模式下的串行通信接口異步波特率由下列方法打算: brr=165535 時的串行通信接口異步波特率: sci 異步波特率=sysc

4、lk/ ( brr+1)*8 其中,brr=sysclk/(sci 異步波特率*8)-1; brr=0 時的串行通信接口異步波特率: sci 異步波特率=sysclk/16 這里 brr 等于波特率選擇寄存器的 16 位值。 dsp試驗報告 哈工大 四. 試驗程序 /* 2407a 板:將 jp11 和 jp14 短接到 2-3; 使用直連的串口通信電纜; 啟動串口調(diào)試助手.exe; pc 機發(fā)送一個.為結(jié)束標(biāo)志*/ 程序見附頁。 五. 試驗步驟 1. 試驗預(yù)備 .連接設(shè)備 關(guān)閉計算機和試驗箱電源; 檢查 icetek-lf2407-a 板上 jp6 的位置,應(yīng)連接在 1-2 位置(靠近dsp

5、 芯片端),即設(shè)置 dsp 工作在 mp 方式; 關(guān)閉試驗箱上三個開關(guān);如使用pp型仿真器則用附帶的并口連線連接計算機并口和仿真器相應(yīng)接口; 用附帶的串行通信電纜連接計算機com端口和icetek-lf2407-a板上p6 九針接頭。 .開啟設(shè)備 打開計算機電源; 打開試驗箱電源開關(guān),打開 icetek-lf2407-a 板上電源開關(guān),留意板上指示燈 ds1 滅、ds2 和 ds3 亮; 如使用 usb 型仿真器用附帶的 usb 電纜連接計算機和仿真器相應(yīng)接口,留意仿真器上兩個指示燈均亮。 .設(shè)置 code composer studio 為 emulator 方式。 .啟動 code com

6、poser studio 2. 打開工程,掃瞄程序,工程名目為 d:2407edulablab20-sci 3. 編譯并下載程序 4. 運行“串口調(diào)試助手” 利用桌面上“我的電腦”,找到 d:2407edulablab20-sci 名目中的程序“串口調(diào)試助手 v2.0b.exe”,雙擊它啟動;設(shè)置“串口調(diào)試助手”的串行端口為實際連接的計算機 com 端口,設(shè)置波特率為 9600,設(shè)置傳輸方式為 8 位、無校驗、1 個停止位。 5. 運行程序觀看結(jié)果 運行程序后,切換窗口到“串口調(diào)試助手”;在“串口調(diào)試助手”的接收窗口中可看到 dsp通過 sci 發(fā)送來的“hello pc!,over|”字樣;

7、在“發(fā)送的字符/數(shù)據(jù)”欄中輸入一些要發(fā)送到 dsp 的字符串,以“.”字符結(jié)尾;然后單擊“手動發(fā)送”按鈕;dsp 在接收到 pc 機的信息后會自動進行回答。 dsp試驗報告 哈工大 6. 結(jié)束程序運行退出。 六. 試驗結(jié)果 通過 dsp 傳送到 pc 機上的信息,可以看出:sci 正確工作。 當(dāng)?shù)谝淮蜷_時候,串口收到“hello pc!over”,通過串口手動發(fā)送一段字母之后,會被返送回來。 七. 問題與思索 請考慮用中斷方式設(shè)計程序完成異步串行通信。 修改的程序見附頁。 dsp試驗報告 哈工大 未修改的程序(查詢方式): #include 2407c.h void wait(int nwai

8、t); char cstring17=hello pc!, over| , creceive, cbuffer17, canswer16 = oh, you say; int breceive,nlen; main() unsigned int uwork; int i,k; breceive=0; asm( setc intm); asm( clrc sxm); asm( clrc ovm); *wdcr=0x6f; *wdkey=0x5555; *wdkey=0xaaaa; /*關(guān)閉看門狗中斷*/ *scsr1=0x81fe; /* 打開全部外設(shè),設(shè)置時鐘頻率為 40mhz */ uwor

9、k=(*mcra); uwork|=0x03; /* use scitxd,scirxd */ (*mcra)=uwork; (*sciccr)=0x07; /* 8 位字符,1 停止位,無校驗*/ (*scictl1)=0x03; /* 使能發(fā)送和接收 */ (*scictl2)=0x00; /* 禁止接收和發(fā)送中斷 */ (*scihbaud)=0x02; /* 波特率=208h,40mhz */ (*scilbaud)=0x08; /* 208h=40*106/(9600*8)-1 */ (*scictl1)=0x23; /* 使能發(fā)送和接收,復(fù)位 sci */ while ( 1 )

10、if ( breceive=0 ) for ( i=0;i16;i+ ) do uwork=(*scictl2); while ( uwork0x0c0 != 0x0c0 ); (*scitxbuf)=cstringi; wait(1024); else for ( i=0;i10;i+ ) dsp試驗報告 哈工大 do uwork=(*scictl2); while ( uwork0x0c0 != 0x0c0 ); (*scitxbuf)=cansweri; wait(1024); do uwork=(*scictl2); while ( uwork0x0c0 != 0x0c0 ); (*s

11、citxbuf)='' for ( i=0;inlen;i+ ) do uwork=(*scictl2); while ( uwork0x0c0 != 0x0c0 ); (*scitxbuf)=cbufferi; wait(1024); do uwork=(*scictl2); while ( uwork0x0c0 != 0x0c0 ); (*scitxbuf)='' wait(1024); for ( i=9;i16;i+ ) do uwork=(*scictl2); while ( uwork0x0c0 != 0x0c0 ) (*scitxbuf)=cstr

12、ingi; wait(1024); k=0; breceive=0; while ( 1 ) do dsp試驗報告 哈工大 uwork=(*scirxst); while ( (uwork0x40)=0 ); creceive=(*scirxbuf); cbufferk=creceive; if ( creceive='.' ) cbufferk+1='0' nlen=k+1; breceive=1; break; k+; k%=16; void wait(int nwait) int i,j,k=0; for ( i=0;inwait;i+ ) for ( j

13、=0;j64;j+ ) k+; 修改之后的程序(中斷方式): #include 2407c.h void interrupt gpsci(void); /* 中斷服務(wù)程序 */ void wait(int nwait); char cstring17= hello pc!,over| ; char creceive,cbuffer17,canswer16=oh,you say; int nlen; int k=0; int notrec=0; unsigned int flag=0; main() unsigned int uwork; int i; asm( setc intm); /* 關(guān)

14、中斷,進行關(guān)鍵設(shè)置時不允許發(fā)生中斷,以免干擾 */ asm( clrc sxm); asm( clrc ovm); *wdcr=0x6f; *wdkey=0x5555; dsp試驗報告 哈工大 *wdkey=0xaaaa; /*關(guān)閉看門狗中斷*/ *scsr1=0x81fe; /* 打開全部外設(shè),設(shè)置時鐘頻率為40mhz */ uwork=(*mcra); uwork|=0x03; /* use scitxd,scirxd */ (*mcra)=uwork; (*sciccr)=0x07; /* 8位字符,1停止位,無校驗*/ (*scictl1)=0x03; /* 使能發(fā)送和接收 */ (*

15、scihbaud)=0x02; /* 波特率=208h,40mhz */ (*scilbaud)=0x08; /* 208h=40*106/(9600*8)-1 */ (*scictl1)=0x23; /* 使能發(fā)送和接收,復(fù)位sci */ (*scictl2)=0x02; /* 使能接收和發(fā)送中斷 */ asm( clrc intm); /* 開中斷 */ for ( i=0;i16;i+ ) do uwork=(*scictl2); while ( uwork0x0c0 != 0x0c0 ); (*scitxbuf)=cstringi; wait(1024); while ( 1 ) un

16、signed int uwork; uwork=(*pivr); /* 讀外設(shè)中斷向量寄存器*/ switch(uwork) case 0x06: /* sci發(fā) */ if(flag) flag = 0 ; for ( i=0;i11;i+ ) do uwork=(*scictl2); while ( uwork0x0c0 != 0x0c0 ); (*scitxbuf)=cansweri; wait(1024); do dsp試驗報告 哈工大 uwork=(*scictl2); while ( uwork0x0c0 != 0x0c0 ); (*scitxbuf)='' for

17、 ( i=0;inlen;i+ ) do uwork=(*scictl2); while ( uwork0x0c0 != 0x0c0 ); (*scitxbuf)=cbufferi; wait(1024); do uwork=(*scictl2); while ( uwork0x0c0 != 0x0c0 ); (*scitxbuf)='' wait(1024); for ( i=9;i16;i+ ) do uwork=(*scictl2); while ( uwork0x0c0 != 0x0c0 ); (*scitxbuf)=cstringi; wait(1024); notrec=0; k=0; void interrupt gpsci(void) /* 中斷服務(wù)程序 */ unsigned int uwork,rec; uwork=(*pivr); /* 讀外設(shè)中斷向量寄存器*/ switch(uwork) case 0x06: /* sci收 */ dsp試驗報告 哈工大 if(!notrec) creceive=(*sci

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論