天天看點

C6000與C2000系列DSP之間串行資料通訊的研究與實作C6000與C2000系列DSP之間串行資料通訊的研究與實作

C6000與C2000系列DSP之間串行資料通訊的研究與實作

[日期:2008-7-31] 來源:中電網  作者:韓開亮,張 濤 [字型:大 中 小]

<script src="http://www.21ic.com/innews.js"></script>

 

TMS320C6711是TI公司TMS320C6000系列32位浮點DSP,它具有專用硬體邏輯的CPU、片記憶體儲器、片内外設,支援彙編和C語言的單獨或混合程式設計。該系列DSP最主要的特點是采用了VLIW體系結構,是以可以單周期發射多條指令,實作很高的指令級并行效率。其計算和處理速度非常快,系統單指令周期可達到6.67ns,被廣泛用于DSL、無線基站、雷達聲納、數字圖像處理等方面。在TMS320C6711中有2個多通道緩沖串行接口McBSP,McBSP不僅可以配制成串行接口,還可以獨立配制成通用的輸入(GPI)、輸出(GPO)和輸入輸出端口(GPIO)。其優點是資料處理能力強大,但控制接口少,片内內建外部裝置少,控制能力較弱。

    TI公司的TMS320LF2407為16位定點DSP微控制器,内嵌有看門狗定時器(WDT)、CAN總線控制器、模數轉換器(ADC)、串行外設接口(SPI)、異步串行口(SCI)等多種外設子產品,并有大量輸入輸出引腳(GPIO),可以滿足控制系統多方面的控制需求。但由于TMS320LF2407的指令周期最短為25ns(40MHz主頻),對于資料處理運算量特别大的系統,其運算速度略顯不足。

    多數數字圖像處理應用系統既要求系統有強大的資料處理能力,以滿足對圖像處理的實時性要求,又要求系統有強大的控制能力,以便實作對外部衆多裝置的控制。在實際應用系統中,将TMS320C6711作為處理器完成數字圖像的實時處理,TMS320LF2407作為控制器完成系統的控制功能,便可兼顧系統的資料處理能力與外部裝置控制能力。這樣的系統要求在TMS320C6711和TMS320LF2407之間建立有效的資料交換通道,本文所介紹的設計思想就是基于以上工程需要提出的。

1 系統結構

    本系統為嵌入式數字圖像處理系統,系統結構如圖1所示。數字圖像資料由下位機TMS320C6711處理,處理結果采用異步序列槽通訊的方式傳送給上位機TMS320LF2407,TMS320LF2407将采集到的模拟量、開關量等參數,與通過異步序列槽接收到的圖像處理結果一起通過CAN總線向遠端監控終端發送。

C6000與C2000系列DSP之間串行資料通訊的研究與實作C6000與C2000系列DSP之間串行資料通訊的研究與實作

    TMS320C6711的多通道緩沖串行接口McBSP與TMS320LF2407的SCI子產品,通過特定的軟硬體設計可以支援使用标準格式的異步數字通訊。通訊資料的格式為:一個起始位、資料(長度可通過程式設計在16位~8位内可選)位、可供選擇的奇/偶/非極性位、一個或兩個停止位,如圖2所示。

C6000與C2000系列DSP之間串行資料通訊的研究與實作C6000與C2000系列DSP之間串行資料通訊的研究與實作

1.1 McBSP接口

    McBSP的結構框圖如圖3所示。McBSP可以分為資料通道和控制通道兩部分。資料發送引腳(DX)和資料接收引腳(DR)分别負責資料的發送和接收,發送時鐘引腳(CLKX)、接收時鐘引腳(CLKR)、發送幀同步引腳(FSX)和接收幀同步引腳(FSR)提供串行時鐘和控制信号。CPU和DMA控制器通過外設總線與McBSP進行通訊。當發送資料時,CPU和DMA将資料寫入資料發送寄存器(DXR1,DXR2),接着複制到發送移位寄存器(XSR1,XSR2),通過發送移位寄存器輸出至DX引腳。同樣,當接收資料時,DR引腳上接收到的資料先移位到接收移位寄存器(RSR1,RSR2),接着複制到接收緩沖寄存器(RBR1,RBR2),RBR再将資料複制到資料接收寄存器(DRR1,DRR2)中,并通過序列槽事件通知CPU或DMA讀取資料。這種多極緩沖方式使得片内資料通訊和串行資料通訊能夠同時進行。

C6000與C2000系列DSP之間串行資料通訊的研究與實作C6000與C2000系列DSP之間串行資料通訊的研究與實作

1.2 SCI接口

    SCI子產品支援CPU和其他使用标準格式的異步裝置間的通訊。它具有SCIRXD(串行資料接收端)和SCITXD(串行資料發送端)兩個I/O引腳。在全雙工模式下具有一個發送器(包括SCITX2BUF及其主寄存器TXSHF)、一個接收器(包括SCIRXBUF及其RXSHF)。發送器在SCITXBUF存放要發送的資料,并每次一位地将資料移位至SCITXD引腳;接收時則每次一位地将SCIRXD引腳上的資料移入,載入SCIRXBUF和SCIRXEMU給CPU讀取。具有一個可程式設計的波特率發生器,可得到超過65 000種不同的可程式設計速率。SCI為接收器和發送器提供獨立的中斷請求和中斷向量:如果RX/BKINT ENA位(SCICTL2.1)被置位,當SCI接收到一個完整的幀,并把RXSHF中的資料傳送到SCIRXBUF時,這個動作置位RXRDY标志(SCIRXST.6)并啟動一個中斷。如果TX INT ENA位(SCICTL2.0)被置位,則在任何時候,隻要SCITXBUF中的資料送到TXSHF,發送器中斷就會被認定,表示CPU可以向SCITXBUF寫。這個動作置位TXRDY标志位,并啟動一個中斷。

2 硬體實作

    當TMS320C6711D與TMS320LF2407A進行标準異步串行通訊時,TMS320LF2407A的SCI接口可直接支援該通訊,隻需将SCI接口通過内部特殊功能寄存器配置為串行接口模式即可。而TMS320C6711D的McBSP除通過内部特殊功能寄存器配置成串行接口外,在硬體設計上還應将DR和FSR短接,并與SCI的串行資料發送引腳(SCITXD)相連。這是由于标準異步串行通訊中資料線上既包含了幀同步資訊,也包含了資料資訊。SCI的串行資料接收引腳(SCIRXD)與McBSP的DX相連。

    由于TMS320C6711D與TMS320LF2407A的接口電壓均為3.3V,二者引腳可直接相連,不需要電平轉換。McBSP與SCI的串行異步通訊接口電路如圖4所示。

C6000與C2000系列DSP之間串行資料通訊的研究與實作C6000與C2000系列DSP之間串行資料通訊的研究與實作

3 軟體參數的配置與計算

3.1 針對TMS320C6711D

    (1)波特率的計算

    TMS320C6711D内部生成的串行時鐘由系統時鐘頻率SYSCLK和采樣率發生寄存器決定。MCBSP的内部資料時鐘頻率即異步波特率由以下公式确定:

    MCBSP異步波特率=采樣率發生寄存器輸入時鐘頻率/(CLKGDV+1)

    其中:CLKGDV=采樣率發生寄存器輸入時鐘頻率/McBSP異步波特率-1。

    當采樣率發生寄存器的CLKSM=1時,采樣率發生寄存器輸入時鐘頻率=CPU核心輸入時鐘/2;

    當采樣率發生寄存器的CLKSM=0時,采樣率發生寄存器輸入時鐘頻率=CPU核心輸入時鐘。

    在本系統中,TMS320C6711D的核心輸入時鐘為150MHz,采樣率發生寄存器的CLKSM位設定為1。若使McBSP異步通訊波特率為312.5kb/s,則依據以上公式,采樣率發生寄存器的CLKGDV段參數應配置為239,即十六進制的0xEF。

    (2)特殊功能寄存器的初始化

    TMS320C6711D内部與McBSP配置相關的特殊功能寄存器主要有:序列槽控制寄存器(SPCR)、接收控制寄存器(RCR)、發送控制寄存器(XCR)、采樣率發生器寄存器(SRGR)、多通道控制寄存器(MCR)、接收通道使能寄存器(RCER)、發送通道使能寄存器(XCER)、管腳控制寄存器(PCR)。

    TMS320C6711的McBSP與TMS320LF2407的SCI子產品通訊時,系統對McBSP的配置要求為:資料為單項幀;每幀一個資料單元;資料單元字長為8bit;時鐘下降沿處接收資料;在上升沿處發送資料;幀同步信号高有效;幀同步有效後,在其後的第一個時鐘周期啟動該幀的傳輸,即資料延遲為0;異步通信波特率為312.5kb/s。

    根據以上控制要求,TMS320C6711D内部與McBSP相關的特殊功能寄存器的配置參數如表1所示。

C6000與C2000系列DSP之間串行資料通訊的研究與實作C6000與C2000系列DSP之間串行資料通訊的研究與實作

3.2 針對TMS320LF2407A

    (1)波特率的計算

    TMS320LF2407A内部生成的串行時鐘由系統時鐘SYSCLK頻率和波特率選擇寄存器決定。串行通信接口使用16bit波特率選擇寄存器,資料傳輸速度可以被程式設計為65000多種不同的方式。

    不同通信模式下的串行通信接口異步波特率由下列方法決定:

    BRR=1~65 535時的串行通信接口異步波特率為:

        SCI異步波特率=SYSCLK/[(BRR+1)×8]

    其中:BRR= SYSCLK/(SCI異步波特率×8)-1

        BRR=0時的串行通信接口異步波特率為:

        SCI異步波特率=SYSCLK/16

    這裡BRR等于波特率選擇寄存器的16位值。

    在本系統中,TMS320LF2407A的系統輸入時鐘為25MHz,若使SCI異步通信波特率為312.5kb/s,則依據以上公式,波特率選擇寄存器參數應配置為9,即十六進制的0x0009。

    (2)特殊功能寄存器的初始化

    TMS320LF2407的SCI子產品的異步串行通訊配置包括管腳配置、通訊模式配置和中斷配置三方面,相關的特殊功能寄存器包括複用控制寄存器(MCRA)、端口資料和方向控制寄存器(PADATDIR)、串行通訊接口控制寄存器1和2(SCICTL1和SCICTL2)、通訊控制寄存器(SCICCR)、波特率選擇高位元組寄存器和低位元組寄存器(SCIHBAUD和SCILBAUD)、優先級控制寄存器(SCIPRI)、接收狀态寄存器(SCIRXST)等。

    為了實作通訊波特率為312.5kb/s的标準異步數字通訊,SCI子產品應配置為串行通信功能模式,并将特殊功能寄存器配置如表2所示。

C6000與C2000系列DSP之間串行資料通訊的研究與實作C6000與C2000系列DSP之間串行資料通訊的研究與實作

4 軟體設計

    系統中TMS320C6711通過McBSP将圖像處理結果采用主動發送的方式發送給TMS320LF2407,後者通過響應SCI中斷的方式接收資料資訊。這兩部分軟體流程框圖如圖5所示。

C6000與C2000系列DSP之間串行資料通訊的研究與實作C6000與C2000系列DSP之間串行資料通訊的研究與實作

5 串行通訊初始化程式

  TMS320C6711與TMS320LF2407進行串行通訊的軟體設計難點是McBSP與SCI的初始化程式設計。初始化程式包括對晶片的管腳配置、通訊模式配置和中斷配置等方面。以下分别給出TMS320C6711的McBSP子產品和TMS320LF2407的SCI子產品的初始化程式子產品。

    (1)TMS320C6711的McBSP子產品初始化程式

    void init_mcbsp0_master(void)

    {

      MCBSP_Config mcbspCfg0=

    {

     0x00010001,//配置spcr寄存器

     0x000D0000,//配置rcr寄存器

     0x00040020,//配置xcr寄存器

     0x200000ef,//配置srgr寄存器,

                             //波特率設定為312.5kb/s

     0x00000000,//配置mcr寄存器

     0x00000000,//配置rcer寄存器

     0x00000000,//配置xcer寄存器

     0x00000b0c//配置pcr寄存器

    };

    hMcbsp0=MCBSP_open(MCBSP_DEV0, MCBSP_OPEN_RESET);

     //選用port 0

     MCBSP_config(hMcbsp0,&mcbspCfg0);

     IRQ_map(IRQ_EVT_RINT0,13);//映射接收中斷0為

                                 //13号中斷

     IRQ_reset(IRQ_EVT_RINT0);

     IRQ_enable(IRQ_EVT_RINT0);//開中斷

     MCBSP_enableRcv(hMcbsp0);

     MCBSP_enableSrgr(hMcbsp0);//Handle to SRGR

     MCBSP_enableFsync(hMcbsp0);

    }

    (2)TMS320LF2407的SCI子產品初始化程式

    void sci_INIT(void)

    {

      MCRA=MCRA|0x0003; //設定引腳SCITXD/IOPA0和

                         //SCIRXD/IOPA1為串行通訊功能

      PADATDIR=0X0100;  //設PA口為輸入口

      SCICTL1=0x13;     //使能接收和發送

      SCICTL2=0x02;     //禁止發送中斷,使能接收中斷

      SCICCR=0X07;      //8位字長,1個停止位,空閑線多處

                         //理器模式,無奇偶校驗

      SCIHBAUD=0x00;    //波特率設為312.5kb/s

      SCILBAUD=0x09;

      SCIPRI=0x00;         //接收為高優先級中斷

      SCIRXST=SCIRXST&0xbf;//清除SCI接收中斷标志

      SCICTL1=0x33;        //儲存設定

    }

    利用TMS320C6711的McBSP和TMS320LF2407的SCI可以實作異步串行資料通訊,具有電路簡單、設定靈活、資料傳輸速度快、性能可靠穩定等特點。在此基礎上可成功建構主從式雙DSP資料處理系統,有效解決單一DSP系統資料處理能力與控制能力難以兼顧的問題。本文所介紹的設計方案已在實際應用系統中采用,并經長時間運作檢驗。實踐證明,此設計方案是一種有效的多DSP資料交換手段。