基于McBSP的雙DSP間高速通信
引言
TMS320C6000系列(以下簡(jiǎn)稱C6000系列)DSP是美國(guó)德州儀器(TI)公司近年來推出的高端產(chǎn)品,因其性能優(yōu)良,編碼效率高,性價(jià)比好等諸多優(yōu)點(diǎn),被廣泛的用于數(shù)字圖象處理,通信基站,雷達(dá)信號(hào)處理等領(lǐng)域。在實(shí)際的使用中,因?yàn)閿?shù)據(jù)吞吐量太大,很多時(shí)候單片DSP無法滿足系統(tǒng)設(shè)計(jì)的要求,需要將兩片或多片DSP進(jìn)行互連,于是研究DSP間的高速通信就顯得尤為重要。本文介紹了利用McBSP來實(shí)現(xiàn)C6000系列DSP間高速通信的軟硬件設(shè)計(jì)和實(shí)現(xiàn)。
1. 多通道緩沖串口(McBSP)的功能和特點(diǎn)
多通道緩沖串口(McBSP)是TI公司標(biāo)準(zhǔn)串口的增強(qiáng)版本。功能強(qiáng)大的C6000系列的McBSP是基于TMS320C2000和C5000系列的標(biāo)準(zhǔn)串口之上的。其內(nèi)部框圖如圖1所示。它具有如下功能和特點(diǎn)[1],[5]:
Ø 全雙工通信;
Ø 雙緩沖數(shù)據(jù)寄存器,支持連續(xù)的數(shù)據(jù)流;
Ø 獨(dú)立的接收、發(fā)送幀和時(shí)鐘信號(hào);
Ø 可以直接與工業(yè)標(biāo)準(zhǔn)的編碼器,模擬接口芯片和其他A/D,D/A器件通信連接;
Ø 具有外部移位時(shí)鐘發(fā)生器及內(nèi)部頻率可編程移位時(shí)鐘;
Ø 發(fā)送和接收通道數(shù)多達(dá)128路;
Ø 支持寬范圍的數(shù)據(jù)格式,包括8,12,16,20,24,32位字長(zhǎng);
Ø 利用 律或A律壓縮擴(kuò)展通信;
Ø 幀同步和時(shí)鐘信號(hào)的極性可編程;
Ø 可編程內(nèi)部時(shí)鐘和幀同步信號(hào)發(fā)生器等。
Ø
1 McBSP的內(nèi)部框圖[!--empirenews.page--]
數(shù)據(jù)通過數(shù)據(jù)發(fā)送引腳(DX)和數(shù)據(jù)接收引腳(DR)與連接到McBSP的器件進(jìn)行通信。時(shí)鐘形式并且?guī)降目刂菩畔⑼ㄟ^CLKX,CLKR,F(xiàn)SX和FER通信。外圍器件通過32位控制寄存器與McBSP通信。CPU或者DMA控制器從數(shù)據(jù)接收寄存器(DRR)讀取接收的數(shù)據(jù),而把要發(fā)送的數(shù)據(jù)寫入數(shù)據(jù)發(fā)送寄存器(DXR)。寫入DXR的數(shù)據(jù)通過發(fā)送移位寄存器(XSR)輸出到DX引腳[2]。相似地,在DR引腳接收到的數(shù)據(jù)先進(jìn)入接收移位寄存器(RSR),然后拷貝到接收緩沖寄存器(RBR)。RBR然后再拷貝到DRR,DRR中的數(shù)據(jù)才能被CPU或者DMA控制器讀出。這樣就允許內(nèi)部數(shù)據(jù)移動(dòng)和外部數(shù)據(jù)通信同時(shí)進(jìn)行。還有其他一些CPU可訪問的寄存器用來配置McBSP的工作機(jī)制。
2. 硬件接口
C6000系列DSP的多通道緩沖串口(McBSP)可以和其他C6000系列DSP芯片的多通道緩沖串口(McBSP)進(jìn)行高速互連。為了達(dá)到最高的數(shù)據(jù)傳速速度,其中的一片DSP必須同時(shí)作為時(shí)鐘信號(hào)和幀同步信號(hào)的發(fā)生器,換句話說,作為發(fā)送端的McBSP在發(fā)送數(shù)據(jù)傳輸時(shí)鐘信號(hào)的同時(shí)也發(fā)送幀同步信號(hào),而作為接收端的McBSP只能等待主片發(fā)來的這些控制信號(hào)。圖2是硬件系統(tǒng)的設(shè)計(jì)框圖[3]。DSP0的McBSP0被配置成時(shí)鐘信號(hào)和幀同步信號(hào)的發(fā)生器,即主片;而DSP1的McBSP1被配置成只能被動(dòng)的等待這些控制信號(hào)。
圖2 最大傳輸速度下的硬件互連框圖
圖3是C6000系列雙DSP的McBSP間傳輸數(shù)據(jù)的信號(hào)時(shí)序圖。在該時(shí)序圖的例子中,DSP0的McBSP0的時(shí)鐘信號(hào)頻率采用其CPU主頻的一半。當(dāng)主片產(chǎn)生時(shí)鐘信號(hào)和幀同步信號(hào)的同時(shí),CLKX和FSX編程配置成輸出。因?yàn)樵跀?shù)據(jù)最大傳輸情況下,不支持零數(shù)據(jù)的延遲,所以FSX引腳輸出的第一個(gè)數(shù)據(jù)是非零值。在該時(shí)序圖中,RCR和XCR寄存器的(R/X)DATDLY都被配置為1。圖3中CLKX和FSX為主片引腳,CLKR和FSR為從片引腳。
圖3 McBSP間最大傳輸數(shù)據(jù)時(shí)的時(shí)序圖[!--empirenews.page--]
3. 軟件實(shí)現(xiàn)
用McBSP實(shí)現(xiàn)C6000系列雙DSP間的高速通信軟件設(shè)計(jì)[4]需分別對(duì)主機(jī)DSP0和從機(jī)DSP1進(jìn)行編程。軟件設(shè)計(jì)的重點(diǎn)是對(duì)McBSP相關(guān)寄存器的設(shè)置,以使其工作在最高數(shù)據(jù)傳輸速度模式下。表1列出了高速通信模式下需要配置的寄存器的位段,未列出的寄存器位段采用系統(tǒng)默認(rèn)值。
表1 高速通信模式下需配置的寄存器位段
主片DSP0的軟件設(shè)計(jì)由DSP初始化,McBSP0初始化,DSP中斷設(shè)置和發(fā)送數(shù)據(jù)中斷設(shè)置程序構(gòu)成。相似地,從片DSP1的軟件設(shè)計(jì)由DSP初始化,McBSP1初始化,DSP中斷設(shè)置和接收數(shù)據(jù)中斷設(shè)置程序構(gòu)成。圖4(a)是主片DSP0軟件系統(tǒng)流程圖,圖4(b)是從片DSP1軟件系統(tǒng)流程圖。
4. 數(shù)據(jù)傳輸速度影響因素分析
當(dāng)雙DSP的2個(gè)McBSP被用著高速通信接口的時(shí)候。影響數(shù)據(jù)傳輸速度的主要原因有以下2個(gè):
ü 數(shù)據(jù)傳輸方法。例如,中斷傳輸?shù)膬?yōu)先級(jí)要低于DMA/EDMA(直接存儲(chǔ)器訪問/增強(qiáng)直接存儲(chǔ)器訪問),因此,要無損的傳輸數(shù)據(jù),中斷傳輸方式下的數(shù)據(jù)傳輸速度要明顯的慢一些。
ü 數(shù)據(jù)傳輸?shù)膬?yōu)先級(jí)。DMA/EDMA的優(yōu)先級(jí)要低于CPU;或者用于傳輸數(shù)據(jù)的DMA/EDMA通道優(yōu)先級(jí)要低于其它的DMA/EDMA通道的優(yōu)先級(jí)。這些都會(huì)影響數(shù)據(jù)的傳輸速度。為了避免速度的降低,應(yīng)該適當(dāng)?shù)呐渲酶鱾€(gè)通道的優(yōu)先級(jí)。
當(dāng)McBSP的各寄存器值都按表2的要求配置時(shí),雙DSP間的數(shù)據(jù)傳輸速度能達(dá)到最大。但因?yàn)镃6000系列DSP的CPU主頻各不相同,于是各個(gè)型號(hào)DSP間的最大傳輸速度也不盡相同。在理論情況下,C64X系列芯片間的傳輸速度最高,能達(dá)到125Mbps(兆比特每秒),C6201,C6202/B和C6203間的速度次之,能達(dá)到100Mbps。
5. 結(jié)語(yǔ)
本文給出了一種基于McBSP的C6000系列雙DSP間的高速通信方案。本文的創(chuàng)新點(diǎn)在于:與其他的雙DSP間通信方案相比較,其優(yōu)點(diǎn)為無需增加其它通信器件,硬件線路簡(jiǎn)單,無需復(fù)雜的邏輯控制等就可實(shí)現(xiàn)雙DSP間的高速通信。實(shí)驗(yàn)結(jié)果表明,該方案高速可靠,是實(shí)現(xiàn)C6000系列雙DSP間高速通信的一種理想方案。