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