<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > TMS320VC5410的McBSP串行接口技術(shù)與程序設(shè)計(jì)

          TMS320VC5410的McBSP串行接口技術(shù)與程序設(shè)計(jì)

          作者: 時(shí)間:2006-05-07 來(lái)源:網(wǎng)絡(luò) 收藏

          摘要:介紹TMS320VC5410的多功能串行接口(McBSP),并結(jié)合McBSP與高精度,高速率串行數(shù)據(jù)轉(zhuǎn)換器MAX5410之間的串行通信,從硬件和軟件兩個(gè)方面具體討論McBSP的設(shè)計(jì)方法。

          本文引用地址:http://www.ex-cimer.com/article/242261.htm

          關(guān)鍵詞: McBSP SPI 模數(shù)轉(zhuǎn)換器

          一、的串行接口技術(shù)

          當(dāng)今,嵌入式系統(tǒng)正迅速向低功耗、低成本、小體積、高性能、高速率方向發(fā)展。隨著串行接口技術(shù)的不斷成熟,逐步達(dá)到了以上設(shè)計(jì)要求,成為重要的接口方案。尤其在器方面,串行口的重要性體現(xiàn)得更加突出,幾乎所有的器都提供了一個(gè)或多個(gè)串行接口,并且隨著器的更新?lián)Q代,其相應(yīng)的串行接口,在功能上不斷強(qiáng)化,性能上不斷提升。

          與并行接口相比,串行接口的最大優(yōu)點(diǎn)就是減少了的引腳數(shù)目,降低了接口設(shè)計(jì)的復(fù)雜性。通常,串行接口提供全雙工同步操作,輸入和輸出數(shù)據(jù)以位為單位的串行方式進(jìn)行處理。目前,世界各主要半導(dǎo)體制造商提交了許多不同的串行協(xié)議,其中一些已經(jīng)成為工業(yè)標(biāo)準(zhǔn)。典型的串行協(xié)議包括:MOTOROLA(Austin,TX)的串行外圍設(shè)備接口SPI和隊(duì)列SPI(QSPI)、PHILIPS(Sunnyvale,CA)、National Semiconductor的微總線(microwire)。

          圖1是典型的SPI協(xié)議。SPI協(xié)議采用主從設(shè)置,相互連接的設(shè)備中一個(gè)作為主設(shè)備,其他的設(shè)備作為從設(shè)備。接口連線主要包括以下4條信號(hào)線:

          (1)串行數(shù)據(jù)輸入信號(hào)線,即MISO(Master InSlave Out);

          (2)串行數(shù)據(jù)輸出信號(hào)線,即MOSI(Master Out-Slave In);

          (3)移位時(shí)鐘信號(hào)線,即SCK;

          (4)從設(shè)備片選信號(hào)線,即SS。

          二、TMS320VC5410的多通道緩存串行口——McBSP

          1.McBSP的功能特點(diǎn)

          TMS320V5410是TI生產(chǎn)的第二代低功耗TMS320C5000系列定點(diǎn)數(shù)字信號(hào)處理器,提供了3個(gè)高速、全雙工、多通道緩存串行口McBSP,每個(gè)串行口可以支持128通道,速度達(dá)100Mbit/s。McBSP是在標(biāo)準(zhǔn)串行接口的基礎(chǔ)之上對(duì)功能進(jìn)行擴(kuò)展,因此,具有與標(biāo)準(zhǔn)串行接口相同的基本功能:

          (1)全雙工通信;

          (2)擁有兩級(jí)緩沖發(fā)送和三級(jí)緩沖接收數(shù)據(jù)寄存器,允許連續(xù)數(shù)據(jù)流傳輸;

          (3)為數(shù)據(jù)發(fā)送和接收提供獨(dú)立的幀同步脈沖和時(shí)鐘信號(hào);

          (4)能夠與工業(yè)標(biāo)準(zhǔn)的解碼器、模擬接口芯片(AICs)和其他串行A/D和D/A設(shè)備直接連接;

          (5)支持外部移位時(shí)鐘或內(nèi)部頻率可編程移位時(shí)鐘。

          此外,McBSP還具有以下特殊功能:

          (1)可以與IOM-2、SPI、AC97等兼容設(shè)備直接連接;

          (2)支持多通道發(fā)送和接收,每個(gè)串行口最多支持128通道;

          (3)串行字長(zhǎng)度可選,包括8、12、16、20、24和32位;

          (4)支持μ-Law和A-Law數(shù)據(jù)壓縮擴(kuò)展;

          (5)進(jìn)行8位數(shù)據(jù)傳輸時(shí),可以選擇LSB或MSB為起始位;

          (6)幀同步脈沖和時(shí)鐘信號(hào)的極性可編程;

          (7)內(nèi)部時(shí)鐘和幀同步脈沖的產(chǎn)生可編程,具有相當(dāng)大的靈活性。

          2.McBSP寄存器的訪問(wèn)

          TMS320VC5410包含3組多通道緩存串行口,每組多通道緩存串行口有23個(gè)寄存器與之相關(guān),除RBR[1,2]、RSR[1,2]、XSR[1,2]之外,其中15個(gè)寄存器是可尋址寄存器。由于數(shù)據(jù)頁(yè)0的存儲(chǔ)空間限制,有些寄存器必須通過(guò)子地址尋址方式來(lái)訪問(wèn)。SPSA_x是子地址寄存器,欲訪問(wèn)指定的寄存器,只要把相應(yīng)的子地址寫(xiě)入SPSA_x就可以了。表1列出了McBSP的子地址寄存器。

          表1 McBSP子地址寄存器

          16進(jìn)制地址 子地址 簡(jiǎn) 稱(chēng) 寄存器名稱(chēng)
          McBSP 0 McBSP 1 McBSP 2
          0038 0048 0034 - SPSA_x 子地址寄存器
          0039 0049 0035 0x0000 SPCR1_x 串行端口控制寄存器1
          0039 0049 0035 0x0001 SPCR2_x 串行端口控制寄存器2
          0039 0049 0035 0x0002 RCR1_x 接收控制寄存器1
          0039 0049 0035 0x0003 RCR2_x 接收控制寄存器2
          0039 0049 0035 0x0004 XCR1_1 發(fā)送控制寄存器1
          0039 0049 0035 0x0005 XCR2_x 發(fā)送控制寄存器2
          0039 0049 0035 0x0006 SRGR1_x 采樣率發(fā)生寄存器1
          0039 0049 0035 0x0007 SRGR2_x 采樣率發(fā)生寄存器2
          0039 0049 0035 0x0008 MCR_x 多通道寄存器1
          0039 0049 0035 0x0009 MCR2_x 多通道寄存器2
          0039 0049 0035 0x000A RCERA_x 接收通道使能寄存器A
          0039 0049 0035 0x000B RCERB_x 接收通道使能寄存器B
          0039 0049 0035 0x000C XCERA_x 發(fā)送通道使能寄存器A
          0039 0049 0035 0x000D XCERB_x 發(fā)送通道使能寄存器B
          0039 0049 0035 0x000E PCR_x 引腳控制寄存器

          假如要對(duì)McBSP1的發(fā)送控制寄存器2(XCR2_1)進(jìn)行設(shè)置。首先,將子地址0x0005寫(xiě)入子地址寄存器(SPSA_1),與此同時(shí),存儲(chǔ)單元0x0049就映射為發(fā)送控制寄存器2(XCR2_1)。然后,對(duì)存儲(chǔ)單元0x0049的讀寫(xiě)操作,就相當(dāng)于對(duì)發(fā)送控制寄存器2(XCR2_1)進(jìn)行操作。

          例:設(shè)置McBSP1的發(fā)送控制寄存器2(XCR2_1)。

          XCR2_1.set 05h;發(fā)送控制寄存器2的子地址

          SPSA_1.set 48h; 串行口1的子地址寄存器地址

          REG_1 .set 49h; 存儲(chǔ)單元0x0049,在此被映射為發(fā)送控;制寄存器2

          ;將發(fā)送控制寄存器2的子地址寫(xiě)入子地址寄存器

          (SPSA_1)

          STM #XCR2_1,SPSA_1

          ;將控制字0041h寫(xiě)入存儲(chǔ)單元0x0049

          STM #0041h,REG_1

          3.McBST的SPI接口設(shè)計(jì)

          McBSP的時(shí)鐘停止模式與SPI協(xié)議兼容。當(dāng)McBSP處于時(shí)鐘停止模式時(shí),發(fā)送器和接收器是內(nèi)部同步時(shí),因此可以將McBSP作為SPI主設(shè)備或從設(shè)備。當(dāng)設(shè)置McBSP為主設(shè)備時(shí),發(fā)送端輸出信號(hào)(BDX)就作為SPI協(xié)議的MOSI信號(hào),接收端輸入信號(hào)(BDR)就作為SPI協(xié)議的MISO信號(hào)。發(fā)送幀同步脈沖信號(hào)(BFSX)作為從設(shè)備片選信號(hào)(SS),而發(fā)送時(shí)鐘信號(hào)(BCLKX)就與SPI協(xié)議的串行時(shí)鐘信號(hào)(SCK)相對(duì)應(yīng)。由于接收時(shí)鐘信號(hào)(BCLKR)和接收幀同步脈沖信號(hào)(BFSR)與發(fā)送端的相應(yīng)部分(BCLKX和BFSX)在內(nèi)部相互連接,因此這些信號(hào)不用于時(shí)鐘停止模式。McBSP設(shè)置為主設(shè)備時(shí),SPI協(xié)議連接如圖2所示。

          三、McBSP接口舉例

          1.高精度數(shù)模轉(zhuǎn)換器MAX541

          MAX541是16位串行輸入、電壓輸出數(shù)模轉(zhuǎn)換器,+5V單電源供電。DAC輸出非緩沖,因此只有0.3mA的低供電電流和1LSB的低漂移誤差。DAC輸出范圍為0V至VREF。MAX541采用3線串行接口,兼容于SPITM/QSPITM/MICROWIRETM等串行通信協(xié)議。MAX541最高可以獲得500×10 3采樣點(diǎn)/秒的通過(guò)率,基本上滿足大多數(shù)應(yīng)用的要求。MAX541采用8引腳DIP或SO封裝。MAX541各引腳描述如表2所列。

          表2 MAX541引腳說(shuō)明

          引 腳 名 稱(chēng) 功 能
          1 OUT DAC輸出電壓
          2 AGND 模擬地
          3 REF 參考電壓輸入,與外部+2.5V參考電壓連接
          4 CS 片選輸入
          5 SCLK 串行時(shí)鐘輸入,占空比必須在40%與60%之間
          6 DIN 串行數(shù)據(jù)輸出
          7 DGND 數(shù)字地
          8 VDD +5V供電電壓

          2.McBSP與MAX541的接口電路

          TMS320VC5410與MAX541的接口電路如圖3所示。

          為使MAX541獲得高分辨率和高精度,可以由MAX873提供高精度的+2.5V低阻抗基準(zhǔn)電壓源。為了消除高頻和低頻干擾,必須在REF引腳與模擬地之間接入退耦電容。由于AX541的數(shù)字輸入DIN與TTL/CMOS邏輯電平兼容,因此,可以與TMS320VC5410的串行輸出BDX直接連接。此外,必須嚴(yán)格隔離模擬地AGND和數(shù)字地DGND,最后在MAX541的AGND引腳上將模擬地和數(shù)字地連接在國(guó)起,構(gòu)成星形的地線系統(tǒng)。在MAX541的輸出端接入電壓跟隨型運(yùn)算放大器MAX495。表3是數(shù)字輸入代碼與模擬輸出電壓之間的對(duì)應(yīng)關(guān)系。

          表3 MAX541單極性接口

          DAC數(shù)字輸入

          模擬輸出VOUT

          MSB LSB  
          1111 1111 1111 1111 VREF·(65 635/65 536)
          1000 0000 0000 0000 VREF·(32 768/65 536)=(1/2)VREF
          0000 0000 0000 0000 VREF·(1/65 536)
          0000 0000 0000 0000 0V

          DSP的發(fā)送幀同步脈沖信號(hào)(BFSX)作為MAX541的片選信號(hào)(CS),而發(fā)送時(shí)鐘信號(hào)(BCLKX)作為MAX541的串行時(shí)鐘輸入。MAX541的三線接口電路時(shí)序如圖4所示。

          圖4所示,在片選信號(hào)CS由高電平轉(zhuǎn)變?yōu)榈碗娖降耐瑫r(shí),串行數(shù)據(jù)按照從最高有效位到最低有效位的順序,在串行時(shí)鐘的每個(gè)上升沿逐位移入片內(nèi)的輸入寄存器。

          3.軟件設(shè)計(jì)

          下面通過(guò)產(chǎn)生國(guó)個(gè)鋸齒波的例子來(lái)說(shuō)明TMS320VC5410與MAX541之間的軟件設(shè)計(jì)。

          當(dāng)McBSP作為SPI通信的主設(shè)備,由它為從設(shè)備提供時(shí)鐘信號(hào),并控制數(shù)據(jù)的傳輸過(guò)程。CLKX引腳上的時(shí)鐘信號(hào)必須在數(shù)據(jù)包傳輸期間使能,當(dāng)沒(méi)有數(shù)據(jù)包傳輸時(shí),時(shí)鐘信號(hào)根據(jù)所采用的極性保持高電平或者低電平。通常,通過(guò)McBSP的采樣率發(fā)生器產(chǎn)生10MHz時(shí)鐘信號(hào),由BCLKX引腳輸出,作為MAX541的串行時(shí)鐘輸入信號(hào)。McBSP利用BFSX引腳為MAX541提供片選信號(hào),因此必須正確設(shè)置幀脈沖發(fā)生器,使之在每個(gè)數(shù)據(jù)包傳輸期間產(chǎn)生幀同步脈沖,即在數(shù)據(jù)包傳輸?shù)牡谝晃晦D(zhuǎn)變?yōu)橛行顟B(tài)(在本例中為低電平有效,取決于MAX541的片選信號(hào)CS),然后維持有效狀態(tài)直到數(shù)據(jù)包發(fā)送完畢。此外,根據(jù)SPI傳輸協(xié)議,必須正確設(shè)置數(shù)據(jù)發(fā)送延遲時(shí)間(XDATDLY=01b),由圖4可知,在幀同步脈沖有效之后,大約延遲了一個(gè)時(shí)鐘周期才進(jìn)行串行數(shù)據(jù)的發(fā)送。根據(jù)圖4所示的時(shí)序圖,為McBSP選擇一種合適的時(shí)鐘方案,即設(shè)置McBSP的時(shí)鐘停止模式。在本例中采用時(shí)鐘停止模式3(CLKSTP=10b、CLKXP=1),其時(shí)鐘方案如圖5所示。

          表4列出了一些與SPI設(shè)置相關(guān)的寄存器位。

          表4 與SPI設(shè)置相關(guān)的些寄存器位

          寄存器位允許值描 述寄存器
          CLKXM1設(shè)置BCLKX引腳為輸出PCR
          CLKSM1采樣率發(fā)生器時(shí)鐘源至CPU時(shí)鐘SRGR2
          CLKGDV1255定義采樣率發(fā)生器時(shí)鐘的降頻因子SRGR1
          FSCM1設(shè)置BFSX引腳為輸出PCR
          FSGM0在每個(gè)串行數(shù)據(jù)包傳輸期間BFSX信號(hào)有效SRGR2
          FSXP1設(shè)置BFSX引腳為低電平有效PCR
          XDATDLY01b提供正確BFSX信號(hào)啟動(dòng)時(shí)間XCR2
          RDATDLY01b提供正確的BFSX信號(hào)啟動(dòng)時(shí)間RCR2

          4.程序清單

          程序首次初始化TMS320VC5410,使數(shù)據(jù)頁(yè)指針(DP)為0,并且禁止中斷。由于TMS320VC5410外接10Hz的時(shí)鐘頻率發(fā)生器,通過(guò)鎖相環(huán)電路倍頻至100MHz。接著初始化TMS320VC5410的多通道緩存串行口McBSP。最后,響應(yīng)XRDY中斷發(fā)送數(shù)據(jù)。

          .width 80

          .length 100

          .title transmit.asm

          .mmregs

          .defSTART

          .def BSPR0

          .def BSPX0

          .include periphral.asm

          .text

          START:

          ;初始化DSP

          STM#00E0h,PMST ;IPTR=000000001b,MP/MC=1,

          ;OVLY=1,DROM=0

          LD #0,DP

          LD #0,ARP

          SSBX INTM ;禁止所有可屏蔽中斷

          STM #0FFFFh,IFR ;清除所有中斷標(biāo)志

          STM #0020h,IMR ;允許BSPX0中斷

          STM #0010h,TCR ;關(guān)閉DSP計(jì)時(shí)器,以便降低

          ;功耗鎖相環(huán)(PLL)倍頻*10->CLKOUT:100MHz

          STM#1001000110000111b,CLKMD

          Tststatus:

          LDM CLKMD,A

          AND #01h,A

          BC Tststatus,AEQ

          STM #1001000110000111b,CLKMD

          ;初始化McBSP

          STM SPCR1_1,SPSA_1

          STM #1000h,REG_1 ;CLKSTP=10(選擇SPI時(shí)鐘停

          ;止模式3)

          STM SPCR2_1,SPSA_1

          STM #0000h,REG_1 ;置McBSP于復(fù)位態(tài)時(shí),以便

          ;對(duì)控制寄存器進(jìn)行設(shè)置

          STM PCR_1,SPSA_1

          STM #0A0Fh,REG_1 ;CLKX->CLKR,FSX->FSR,

          ;DX->DR,FSXM=1(輸出),

          ;CLKXM=1(輸出),FSXP=1(低

          ;電平有效),CLKXP=1(在CLKX

          ;的下降沿發(fā)送數(shù)據(jù))

          STM RCR1_1,SPSA_1

          STM #0040h,REG_1 ;每幀1個(gè)字,每個(gè)字16位

          STM RCR2_1,SPSA_1

          STM #0041h,REG_1 ;單幀,RFIG=0,RDATDLY=01

          ;(1位數(shù)據(jù)延遲)

          STM XCR1_1,SPSA_1

          STM #0040h,REG_1 ;每幀1個(gè)字,每個(gè)字16位

          STM XCR2)1,SPSA_1

          STM #0041h,REG_1 ;單幀XFIG=0,XDATDLY=01

          ;(1位數(shù)據(jù)延遲)

          STM SRGR1_1,SPSA_1

          STM #0009h,REG_1 ;CLKGDV=9,CLKG=(CLKOUT)/

          ;(1+CLKGDV)=10MHz

          STM SRGR2_1,SPSA_1

          STM #2313h,REG_1;GSYNC=0,CLKSP=0,

          ;CLKSM=1,F(xiàn)SGM=0

          RPT #2 ;等待2個(gè)CLKSRG周期(CLKSRG=100MHz)

          NOP

          STM SPCR2_1,SPSA_1

          STM #0040h,REG_1 ;啟動(dòng)McBSP0采樣率發(fā)生

          ;器,/GRST=1

          RPT #20 ;等待2個(gè)CLKG周期(CLKG)=10MHz)

          NOP

          STM SPCR2_1,SPSA_1

          STM #0041h,REG_1 ;啟動(dòng)McBSP0發(fā)送端,/XRST=1

          STM SPCR2_1,SPSA_1

          STM #00C1h,REG_1 ;啟動(dòng)幀同步脈沖,/FRST=1

          RPT #80

          NOP

          STM #08000h,AR1

          RSBX INTM ;打開(kāi)可屏蔽中斷

          MVMD AR1,DXR1_1 ;向DXR送數(shù)

          WAIT:IDLE1

          B WAIT

          BSPX0:

          STM #0h,IFR

          AMR AR1

          MVDM AR1,DXR1_1

          RETE

          .end

          結(jié)束語(yǔ)

          本文介紹了TMS320VC5410的多通道緩存串行口(McBSP)的功能特點(diǎn),并結(jié)合實(shí)例子著重討論了如何利用SPI接口協(xié)議實(shí)現(xiàn)McBSP與其他串行器件之間相互通信。



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();