制作DSP技術(shù)中心主章節(jié)李玉柏WWWDSPSOLUTIONCOM課件_第1頁
制作DSP技術(shù)中心主章節(jié)李玉柏WWWDSPSOLUTIONCOM課件_第2頁
制作DSP技術(shù)中心主章節(jié)李玉柏WWWDSPSOLUTIONCOM課件_第3頁
制作DSP技術(shù)中心主章節(jié)李玉柏WWWDSPSOLUTIONCOM課件_第4頁
制作DSP技術(shù)中心主章節(jié)李玉柏WWWDSPSOLUTIONCOM課件_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、制作:DSP技術(shù)中心主講:李玉柏WWW.DSPSOLUTION.COMDSP McBSP設(shè)計(jì)專題 PART ONE: McBSP基礎(chǔ)McBSP基本特性McBSP概述串口的基本配置串口的接收控制串口的發(fā)送控制采樣率發(fā)生器及采樣率發(fā)生控制器寄存器多通道工作模式一、McBSP基本特性 McBSP設(shè)計(jì)是基于TMS320C2X、C20X、C5X、C54X的標(biāo)準(zhǔn)串口上擴(kuò)展的,McBSP提供: 全速雙工通信 雙緩存發(fā)送和三緩存接收數(shù)據(jù)寄存器,以支持連續(xù)傳送 收和發(fā)使用獨(dú)立的幀和時(shí)鐘 直接與多媒體數(shù)字信號(hào)編解碼器的工業(yè)標(biāo)準(zhǔn)接口,以及有模擬接口和與串行ADC/DAC的接口 外部變速時(shí)鐘發(fā)生器,內(nèi)部可編程時(shí)鐘發(fā)生

2、器McBSP還有下列功能 直接與下列格式接口_ T1/E1 framers_ MVIP switching compatible and ST-BUS compliant devices including:_ MVIP framers_ H.100 framers_ SCSA framers_ IOM-2 compliant devices_ AC97 compliant devices _ IIS compliant devices_ SPI_ devices 多通道收發(fā),通道數(shù)達(dá)128 字寬可選: 8, 12, 16, 20, 24, and 32 bits U-Law and A-La

3、w 壓縮與擴(kuò)展 8位傳輸時(shí)可選先傳: LSB or MSB 幀信號(hào)與時(shí)鐘信號(hào)極性可編程 McBSP與外設(shè)進(jìn)行數(shù)據(jù)傳輸是通過(DX)腳來發(fā)送,(RX)腳來接收,通信的時(shí)鐘與幀信號(hào)是由CLKX, CLKR, FSX, and FSR腳來控制。 DSP的CPU或DMA從數(shù)據(jù)接收寄存器(DRR1,2)讀取接收數(shù)據(jù),發(fā)送時(shí)向數(shù)據(jù)發(fā)送寄存器(DXR1,2)寫數(shù)據(jù)。 數(shù)據(jù)寫入(DXR1,2)后通過傳輸移位寄存器(XSR1,2) 移位輸出到DX上,同樣,從DR上接收的數(shù)據(jù)移位存儲(chǔ)到接收移位寄存器(RSR1,2) 并拷貝到接收緩存寄存器(RBR1,2) ,然后,再由(RBR1,2)拷貝到DRR1,2,DRR1,

4、2就可以由CPU或DMA來讀出。多級(jí)寄存器允許在通信時(shí)內(nèi)部和外部數(shù)據(jù)同時(shí)傳輸。 C54XX對(duì)McBSP的控制由16位的控制寄存器實(shí)現(xiàn)。三、串口的基本配置 1、McBSP的中斷和事件3、串口控制寄存器1的詳細(xì)說明(SPCR1) SPCR1設(shè)置McBSP串口的數(shù)字環(huán)回模式、 接收符號(hào)擴(kuò)展和校驗(yàn)?zāi)J健lock Stop模式、DX是否允許、A-bis 模式、接收中斷模式等,并給出接收同步錯(cuò)誤、接收移位寄存器(RSR1,2)空、接收準(zhǔn)備好等狀態(tài)。此外可以進(jìn)行接收復(fù)位。4、串口控制寄存器2的詳細(xì)說明(SPCR2) SPCR2設(shè)置McBSP自由運(yùn)行模式、SOFT 模式、發(fā)送中斷模式,并給出發(fā)送同步錯(cuò)誤、發(fā)

5、送移位寄存器(XSR1,2)空、發(fā)送準(zhǔn)備好等狀態(tài)。此外可以進(jìn)行發(fā)送復(fù)位、采樣率發(fā)生器復(fù)位、幀同步發(fā)生電路復(fù)位。5、引腳控制寄存器的詳細(xì)說明(PCR) PCR設(shè)置McBSP傳輸幀同步模式、接收幀同步模式、發(fā)送時(shí)鐘模式、接收時(shí)鐘模式、發(fā)送幀同步信號(hào)的極性、接收幀同步信號(hào)的極性、發(fā)送時(shí)鐘極性、接收時(shí)鐘極性,并給出CLKS、DX、DR腳的狀態(tài)。此外PCR還定義發(fā)送和接收部分在復(fù)位時(shí)相應(yīng)引腳是否配置為通用 I/O。四、串口的接收控制 1、接收控制寄存器1(RCR1)說明 RCR1設(shè)置McBSP接收時(shí)第一相(FIRST PHASE)的接收幀長(zhǎng)度(從1個(gè)字到128個(gè)字、接收字長(zhǎng)度(8、12、16、20、24

6、、32bits)。2、接收控制寄存器2(RCR2)說明 RCR2設(shè)置McBSP接收時(shí)是否允許第二相(RPHASE=1)。如果允許,設(shè)置McBSP接收時(shí)第二相的接收幀長(zhǎng)度(從1個(gè)字到128個(gè)字、接收字長(zhǎng)度(8、12、16、20、24、32bits)。此外, RCR2設(shè)置McBSP接收時(shí)的接收壓縮模式、接收同步幀忽略模式、接收數(shù)據(jù)延遲。2、發(fā)送控制寄存器2(XCR2)說明 XCR2設(shè)置McBSP發(fā)送時(shí)是否允許第二相(XPHASE=1)。如果允許,設(shè)置McBSP時(shí)第二相的發(fā)送幀長(zhǎng)度(從1個(gè)字到128個(gè)字、發(fā)送字長(zhǎng)度(8、12、16、20、24、32bits)。此外, XCR2設(shè)置McBSP發(fā)送時(shí)的發(fā)

7、送壓縮模式、發(fā)送同步幀忽略模式、發(fā)送數(shù)據(jù)延遲。六、采樣率發(fā)生器及采樣率發(fā)生控制器寄存器2、采樣率發(fā)生器控制寄存器(SRGR1/2) 采樣率發(fā)生器寄存器1(SRGR1)設(shè)置幀正脈沖寬度(必須小于WDLEN指出的字的長(zhǎng)度)和數(shù)據(jù)位時(shí)鐘分頻( CLKG與輸入CLK頻率之比,約定值為1)。 采樣率發(fā)生器寄存器2(SRGR2)設(shè)置采樣率發(fā)生器時(shí)鐘同步模式、CLKS的極性、采樣率發(fā)生器輸入時(shí)鐘選擇、幀周期分頻。七、McBSP的多通道工作1、多通道工作模式的控制寄存器1)、多通道控制寄存器1(MCR1) MCR1設(shè)置McBSP在多通道工作模式時(shí)的接收PART-B的塊結(jié)構(gòu)、接收PART-A的塊結(jié)構(gòu)、當(dāng)前可接收

8、塊、接收多通道選擇。2)、多通道控制寄存器2(MCR2)說明 MCR2設(shè)置McBSP在多通道工作模式時(shí)的發(fā)送PART-A塊結(jié)構(gòu)、發(fā)送PART-B塊結(jié)構(gòu)、當(dāng)前發(fā)送塊、發(fā)送多通道選擇。3)、接收、發(fā)送通道使能寄存器說明(圖中各位:置1-使能,置0-不允許)2、多通道工作模式設(shè)置設(shè)置(R/X)PHASE = 0選擇單相工作模式設(shè)置FRLEN1 = ?選擇幀長(zhǎng)(字?jǐn)?shù),也是多通道工作模式下的通道數(shù),最多可達(dá)128)設(shè)置字長(zhǎng)WDLEN1 = ?(每通道傳輸多少bits)如果是單通道連續(xù)工作,置RMCM=0X和MCM=0如果是多通道工作,設(shè)置RP(A/B)BLK,XP(A/B)BLK,RCER(A/B)、X

9、CER(A/B),并置RMCM=1、XMCM位非0PART TWO: McBSP編程McBSP的復(fù)位操作與初始化McBSP的中斷與DMA事件McBSP的幀與時(shí)鐘編程McBSP的接收流程McBSP的發(fā)送流程a-law/u-law數(shù)據(jù)壓擴(kuò)編程舉例特殊說明采樣率發(fā)生器復(fù)位:設(shè)備復(fù)位或置/GRST為零可以復(fù)位采樣率發(fā)生器。采樣率發(fā)生器復(fù)位時(shí),CLKG等于CPU-CLK/2,而FSG驅(qū)動(dòng)為低。當(dāng)/RS放開(延遲)/GRST放開后,CLKG按SRGR1編程產(chǎn)生;如果,/FRST也放開,則經(jīng)過FPER個(gè)CLKG,F(xiàn)SG驅(qū)動(dòng)為高。2、下面給出串口初始化的處理過程 1) Set XRST = RRST = FR

10、ST = 0 in SPCR1,2. If coming out of device re-set, this step is not required. 2) Program only the McBSP configuration registers (and not the data regis-ters) listed in Table-1 McBSP Registers, as required when the serial port is in reset state (XRST = RRST = FRST = 0). 3) Wait for two bit clocks. Th

11、is is to ensure proper synchronization internally.4) Set up data acquisition as required such as writing to DXR.5) Set XRST = RRST= 1 to enable the serial port. Note that the value written to SPCR1,2 at this time should have only the reset bits changed to 1, and the remaining bit-fields should have

12、the same value as in step 2 above. 6) Set FRST = 1, if internally generated frame sync is required.7) Wait two bit clocks for the receiver and transmitter to become active.Alternatively, on either write (steps 1 and 5), the transmitter and receiver may be placed in or taken out of reset individually

13、 by modifying the desired bit. Note that the necessary duration of the active-low period of XRST or RRST is at least two bit-clocks (CLKR/CLKX) wide. 2、McBSP的準(zhǔn)備好之狀態(tài)接收準(zhǔn)備好(RRDY、REVT、RINT):串口復(fù)位時(shí)RRDY清為0,當(dāng)RBR1,2內(nèi)容拷貝到DRR1,2時(shí),RRDY有效,該數(shù)據(jù)可以被CPU or DMA讀,一旦CPU or DMA讀走數(shù)據(jù)RRDY又清為0。RRDY直接驅(qū)動(dòng)McBSP接收事件給DMA (REVT)。同時(shí)

14、如果SPCR1中的RINTM = 00,RRDY將驅(qū)動(dòng)McBSP的接收中斷(RINT)給CPU。發(fā)送準(zhǔn)備好(XRDY、XEVT、XINT):XRDY = 1說明DXR1,2的數(shù)據(jù)已拷貝到XSR1,2中,DXR1,2可以裝入新的數(shù)據(jù)。串口復(fù)位放開時(shí)(/XRST從0到1),XRDY從0變到1已說明DXR1,2可以裝入新數(shù)據(jù),一旦有新數(shù)據(jù)裝入,XRDYJIU 就清為0。XRDY直接驅(qū)動(dòng)發(fā)送同步事件到DMA (XEVT or XEVTA),同時(shí),如果SPCR2中XINTM = 00,XRDY 還直接驅(qū)動(dòng)發(fā)送中斷(XINT) 給CPU。三、幀與時(shí)鐘配置 McBSP串口的幀和時(shí)鐘配置包含下列關(guān)鍵項(xiàng)的設(shè)置:

15、設(shè)置FSR, FSX, CLKX, and CLKR的極性選擇單相或雙相幀結(jié)構(gòu)對(duì)每一相,設(shè)置字?jǐn)?shù)(每幀該相有多少字)對(duì)每一相,設(shè)置字寬(字的比特位數(shù))設(shè)置連續(xù)幀同步工作模式,還是除第一個(gè)幀脈沖后忽略幀同步脈沖工作模式設(shè)置相對(duì)幀脈沖,第一位傳輸數(shù)據(jù)的延遲為0、1、2位(CLKG)對(duì)串口接收,設(shè)置左或右效驗(yàn)和符號(hào)擴(kuò)展或0填充模式如果采用內(nèi)部采樣率發(fā)生器產(chǎn)生幀脈沖信號(hào),設(shè)置幀信號(hào)脈寬、周期、CLKG時(shí)鐘分頻等四、u-LAW/A-LAW壓縮操作 McBSP通過(R/X)COMPAND的控制支持是否進(jìn)行壓縮傳輸,如果支持壓縮傳輸,(R/X)WDLEN1,2必須設(shè)置位00,而傳送給CPU或DMA 的數(shù)據(jù)至

16、少是16位 利用串口的壓縮功能可以實(shí)現(xiàn)數(shù)據(jù)的內(nèi)部壓縮,而不占用很多DSP的資源。其方法有二:1)當(dāng)串口接收和發(fā)送都復(fù)位時(shí),串口的壓縮和擴(kuò)展邏輯電路是內(nèi)部連接的,即DXR1與DRR1通過壓縮/擴(kuò)展電路相連,如下圖4所示。此時(shí)設(shè)置XCOMPAND或RCOMPAND之一就可以實(shí)現(xiàn)數(shù)據(jù)的壓縮和解壓。向DXR1發(fā)送的數(shù)據(jù)經(jīng)過4個(gè)CPU周期后,就可以從DRR1上讀出。該方法的優(yōu)點(diǎn)是速度快,缺點(diǎn)是沒有幀同步以便CPU或DMA進(jìn)行流程控制。2)采用數(shù)據(jù)環(huán)回模式,設(shè)置XCOMPAND或RCOMPAND之一也可以實(shí)現(xiàn)數(shù)據(jù)的壓縮和解壓。此時(shí)CPU的中斷或DMA的事件可以進(jìn)行傳輸?shù)牧鞒炭刂疲⑶?,傳輸速度可調(diào)。五、編

17、程舉例下面給出一個(gè)McBSP串口實(shí)驗(yàn)程序 這是一個(gè)串口自測(cè)試程序,除檢驗(yàn)串口的功能外, 該程序還利用串口完成數(shù)據(jù)的內(nèi)部壓縮,通過設(shè)置 XCOMPAND或RCOMPAND之一可以實(shí)現(xiàn)內(nèi)部數(shù)據(jù)A-law 或u-law的壓縮和解壓 程序的流程是: 修改中斷向量表 初始化McBSP串口 設(shè)置BLD=1,即支持?jǐn)?shù)字回環(huán)方式 設(shè)置RCOMPAND=10,即采用u-law擴(kuò)展 ar3指向發(fā)送數(shù)據(jù)緩沖區(qū) ar4指向接收數(shù)據(jù)緩沖區(qū),初始化將接收數(shù)據(jù)緩沖 區(qū)全部清為0 編寫接收與發(fā)送中斷程序關(guān)于A-law/u-law數(shù)據(jù)壓縮與擴(kuò)展說明 1、u-law數(shù)據(jù)壓縮公式(其中對(duì)于美國(guó)和日本的標(biāo)準(zhǔn),u取255)2、 u-l

18、aw數(shù)據(jù)壓縮曲線3、 u-law數(shù)據(jù)壓縮編碼4、 u-law數(shù)據(jù)擴(kuò)展公式5、 u-law數(shù)據(jù)擴(kuò)展解碼 6、A-law數(shù)據(jù)壓縮公式( A-law是CCITT推薦的標(biāo)準(zhǔn),歐洲采用A=87.6) 7、A-law數(shù)據(jù)壓縮曲線8、 A-law數(shù)據(jù)壓縮編碼9、 A-law數(shù)據(jù)擴(kuò)展公式10、 A-law數(shù)據(jù)擴(kuò)展解碼11、 u-law或A-law數(shù)據(jù)編碼特殊說明: 符號(hào)位:1-代表正,0-代表負(fù)(與計(jì)算機(jī)對(duì)數(shù)據(jù)的 正負(fù)號(hào)表示相反) PCM編碼時(shí),正負(fù)數(shù)的編碼是以絕對(duì)值進(jìn)行二進(jìn)制編碼 TI的DSP在進(jìn)行u-law或A-law數(shù)據(jù)壓縮后先異或0 x55, 在進(jìn)行傳輸詳細(xì)程序及說明; This is McBSP t

19、est program. The work-mode of McBSP Series:; BLD=1 (Digital loop back mode enabled) ; RCOMPAND=10 or 11 (u-law/A-law Expand: 8bits - 16bits); (R/X)INTM=00 (generate an interrupt every word traxsmitted); ar3 - Transmit data buffer(buffer_1); ar4 - receive data buffer(buffer_2); The program is applica

20、ble for VC5409 ; Designed by liyubai; Modifing 1.0 Time 2001,6,28.title Test McBSP Program.mmregs.global mainstart.global interrupt_vectordrr11.set 41h;McBSP1 receive data registerdxr11.set 43h;McBSP1 transmit data registerspsa1.set 48h;McBSP1 sub_bank address registerspcd1.set 49h;McBSP1 sub_bank d

21、ata register.bss stack_memory,500.bss buffer_1,1000.bss buffer_2,1000interrupt_vector:;interrupt vector table.textrsb mainstart nopnopnmi b _ret .word 0,0sint17 b _ret .word 0,0sint18 b _ret .word 0,0sint19 b _ret .word 0,0sint20 b _ret .word 0,0sint21 b _ret .word 0,0sint22 b _ret .word 0,0sint23 b

22、 _ret .word 0,0sint24 b _ret .word 0,0sint25 b _ret .word 0,0sint26 b _ret .word 0,0sint27 b _ret .word 0,0sint28 b _ret .word 0,0sint29 b _ret .word 0,0sint30 b _ret .word 0,0int0 b _ret .word 0,0int1 b _ret .word 0,0int2 b _ret .word 0,0tint b _ret .word 0,0brint0 b _ret .word 0,0bxint0 b _ret .wo

23、rd 0,0dmac0 b _ret .word 0,0dmac1 b _ret .word 0,0int3 b _ret .word 0,0hpint b _ret .word 0,0brint1 b McBSP1_receive_intnopnopbxint1 b McBSP1_transmit_intnopnopq28 .word 0,0,0,0q29 .word 0,0,0,0q30 .word 0,0,0,0q31 .word 0,0,0,0mainstart: ssbx intm;close all interruptstm #0ffffh,ifr;cleare all inter

24、rupt_flagstm #0,clkmd;switch to DIV modets: ldm clkmd,a and #01b,a bc ts,aneq stm #5207h,clkmd;clkout=clkin X 6rpt #100 ;waits enough clocksnopstm #stack_memory,sp ;sp = stack_memory stm #0ff80h,pmst ;vector table start: 0 xff80 stm #3610h,swwsr;I/O wait: 3clks, data_0 x8000-;0 xffff wait:3clks;prog

25、ram_0 x8000-0 xffff;wait:2clks call Clear_McBSP1_receive_buf call McBSP1_initializingrpt #0ffhnopstm #buffer_1,ar3stm #buffer_2,ar4ld #799,b;pre_put numberS of McBSP interruptstm #1800h,imr;enable RINT1,XINT1rsbx intm;enable all intwait_McBSP_int:nopnopbc _ret,beqnopnopb wait_McBSP_intnop_ret:nopret

26、eMcBSP1_initializing:stm #0,spsa1;choose SPCR11stm #08000h,spcd1;1000000000000000 = SPCR11. ;DLB(15)=1(Digital loop back moden enabled);RJUST(14-13)=00;CLKSTP(12-11)=00;RES(10-8)=000,DXENA(7)=0,ABIS(6)=0;RINTM(5-4)=00,RSYNCERR(3)=0,RFULL(2)=0;RRDY(1)=0,RRST(0)=0stm #1,spsa1;choose spcr21stm #0h,spcd

27、1;0000000000000000 = SPCR21.;RES(15-10)=000000,FREE(9)=0,SOFT(8)=0;FRST(7)=0,GRST(6)=0,XINT(5-4)=00,XSYNCERR(3)=0;XFULL(2)=0,XRDY(1)=0,XRST(0)=0stm #2,spsa1;choose RCR11stm #0,spcd1;0000000000000000 = RCR11.;RES(15)=0,RFRLEN1(14-8)=000 0000;RWDLEN1(7-5)=000,RES(4-0)=0 0000stm #3,spsa1;choose RCR21st

28、m #10H,spcd1;0000000000010000 = RCR21.;RPHASE(15)=0,RFRLEN2(14-8)=000 0000;RWDLEN2(7-5)=000,RCOMPAND(4-3)=10(u-law EXPAND);RFIG(2)=0,RDATDLY(1-0)=00stm #4,spsa1;choose XCR11stm #0,spcd1;0000000000000000 = XCR11.;RES(15)=0,XFRLEN1(14-8)=000 0000;XWDLEN1(7-5)=000,RES(4-0)=0 0000stm #5,spsa1;choose XCR21stm #0,spcd1;0000000000000000 = XCR21.;XPHASE(15)=0,XFRLEN2(14-8)=000 0000;XWDLEN2(7-5)=000,XCOMPAND(4-3)=00(No compand);XFIG(2)=0,XDATDLY(1-0)=00stm #6,spsa1;choose SRGR11stm #10fh,spcd1;0000000100001111 = SRGR11;FWID(15-8)=0000

溫馨提示

  • 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)論