??? 摘 要: 一種以DSP為主處理器、FPGA為協(xié)處理器、基于軟件無(wú)線電技術(shù)的新型TD-SCDMA移動(dòng)終端" title="移動(dòng)終端">移動(dòng)終端開發(fā)平臺(tái)" title="開發(fā)平臺(tái)">開發(fā)平臺(tái),闡述了主協(xié)處理器間數(shù)據(jù)傳輸速率對(duì)平臺(tái)性能的重要影響;根據(jù)TI公司的高性能低功耗TMS-320VC5510芯片的多通道緩沖串口" title="串口">串口(McBSP)協(xié)議,采用Verilog HDL語(yǔ)言在Xilinx公司的Virtex-II 系列FPGA芯片內(nèi)成功模擬出一個(gè)McBSP接口,實(shí)現(xiàn)了平臺(tái)中大容量FPGA與高性能DSP之間的高速串行數(shù)據(jù)傳輸,并對(duì)接口進(jìn)行了優(yōu)化。
??? 關(guān)鍵詞: 軟件無(wú)線電? 多通道緩沖串口? TD-SCDMA? TMS320VC5510? FPGA
?
??? 軟件無(wú)線電技術(shù)是當(dāng)今計(jì)算技術(shù)、超大規(guī)模集成電路和數(shù)字信號(hào)處理技術(shù)在無(wú)線電通信中應(yīng)用的產(chǎn)物。其基本原理是將寬帶A/D和D/A轉(zhuǎn)換器盡可能地靠近天線,從而以軟件方式來(lái)代替硬件實(shí)施信號(hào)處理。采用軟件無(wú)線電的優(yōu)越性在于:基于同樣的硬件環(huán)境,采用不同的軟件就可以實(shí)現(xiàn)不同的功能。它增加了系統(tǒng)靈活性,同時(shí)減小了制造成本,已經(jīng)迅速成為商用無(wú)線領(lǐng)域的事實(shí)標(biāo)準(zhǔn),并在第三代移動(dòng)通信系統(tǒng)得到了廣泛應(yīng)用。
??? 作為IMT-2000的三個(gè)主流標(biāo)準(zhǔn)之一,TD-SCDMA標(biāo)準(zhǔn)要求軟件無(wú)線電完成接收信號(hào)經(jīng)A/D轉(zhuǎn)換后的數(shù)據(jù)解調(diào)、濾波、基帶信號(hào)處理等任務(wù),這其中包括了聯(lián)合檢測(cè)、viterbi譯碼、Turbo譯碼等復(fù)雜的算法,這些任務(wù)無(wú)一不涉及到其巨大的運(yùn)算量。以目前的硬件處理速度來(lái)看,僅靠DSP來(lái)完成上述功能是不可能的。因而在應(yīng)用中,一般由FPGA完成需要快速和較為固定的運(yùn)算,由DSP完成靈活多變和運(yùn)算量較大的任務(wù)[1]。基于以上分析,設(shè)計(jì)了以DSP+FPGA為信號(hào)處理核心的基于“軟件無(wú)線電”技術(shù)的新型TD-SCDMA移動(dòng)終端開發(fā)平臺(tái),這種開發(fā)平臺(tái)將會(huì)為TD-SCDMA移動(dòng)終端的最終量產(chǎn)打下堅(jiān)實(shí)的基礎(chǔ)。
1 基于軟件無(wú)線電技術(shù)的TD-SCDMA移動(dòng)終端開發(fā)平臺(tái)
??? 基于軟件無(wú)線電技術(shù)的新型TD-SCDMA移動(dòng)終端開發(fā)平臺(tái),是以RF器件、A/D器件、大容量FPGA、高速DSP、高性能ARM為基礎(chǔ),以軟件為核心;它既兼顧速度和靈活性,又具有較強(qiáng)的通用性,支持在同一種標(biāo)準(zhǔn)增強(qiáng)版本之間的移植,并能夠支持完全不同的標(biāo)準(zhǔn),有助于系統(tǒng)的升級(jí)和多模運(yùn)行。
??? 這類終端開發(fā)平臺(tái)中,A/D轉(zhuǎn)換器完成模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換;ARM作為主控制器,完成與微機(jī)接口、處理通信協(xié)議和其他相關(guān)的應(yīng)用協(xié)議、協(xié)調(diào)并控制各個(gè)處理器之間、外設(shè)接口之間的工作等;由FPGA芯片完成并行處理數(shù)據(jù)量大、重復(fù)性強(qiáng)、速度要求高的數(shù)字信號(hào);而DSP芯片實(shí)現(xiàn)系統(tǒng)控制和配置功能,充分發(fā)揮其尋址方式靈活、通信機(jī)制強(qiáng)大的優(yōu)點(diǎn)。從DSP的角度來(lái)看,可編程邏輯器件FPGA相當(dāng)于協(xié)處理器;DSP通過(guò)本地總線對(duì)FPGA進(jìn)行配置、參數(shù)設(shè)置及數(shù)據(jù)交互,實(shí)現(xiàn)軟硬件之間的協(xié)同處理。移動(dòng)終端開發(fā)平臺(tái)的接收部分模型如圖1所示。
?
?
??? 開發(fā)平臺(tái)中DSP芯片采用TI公司的TMS320VC55510,這是一種定點(diǎn)DSP,其CPU的主時(shí)鐘工作在160MHz或200MHz,具有高達(dá)400MIPS的處理能力。FPGA芯片采用Xilinx公司的200萬(wàn)門Virtex-II系列器件XC2V2000;它采用0.15μm工藝設(shè)計(jì)、8層金屬工藝;其內(nèi)部時(shí)鐘頻率可達(dá)到420MHz,輸入輸出速率可達(dá)840MHz。有56個(gè)有符號(hào)乘法運(yùn)算、速率可達(dá)140MHz的18位×18位的二進(jìn)制乘法器。利用這些乘法器進(jìn)行讀取/相乘/累加的多次迭代操作,可實(shí)現(xiàn)高速和高效的DSP濾波器結(jié)構(gòu),例如,設(shè)計(jì)一個(gè)1024點(diǎn)的FFT延時(shí)小于1.0μs[2]。
??? 從圖1中可以看出,聯(lián)合檢測(cè)是由FPGA和DSP共同完成的。這是因?yàn)樵诼?lián)合檢測(cè)中,必須進(jìn)行FFT運(yùn)算和解線性方程組,而這又需要采用Cholesky分解、QR分解和奇異值分解函數(shù);而且在接下來(lái)的傳輸信道反向基帶處理過(guò)程中,Viterbi譯碼和Turbo譯碼部分的計(jì)算量非常大;在DSP中實(shí)現(xiàn)時(shí),這些功能會(huì)占用較大的帶寬,并且會(huì)很快耗盡DSP資源;而FPGA可以大量用于卸載這些功能,釋放DSP帶寬以處理其他功能。
??? 可見,F(xiàn)PGA和DSP各自要實(shí)現(xiàn)的功能決定了它們之間的數(shù)據(jù)傳輸接口必須要有很高的效率。綜合考慮TMS320VC5510芯片的各種接口性能后,平臺(tái)采用McBSP2接口與FPGA傳輸數(shù)據(jù)。因此,必須參照芯片的數(shù)據(jù)手冊(cè)中對(duì)McBSP2 串口的描述,在FPGA端模擬一個(gè)McBSP2串口,才能順利實(shí)現(xiàn)數(shù)據(jù)的傳輸。
2 McBSP接口概述[3][4]
??? TMS320VC5510芯片有三個(gè)高速、全雙工多通道緩沖串口McBSP(Multichannel Buffered Serial Port)串口。McBSP串口從標(biāo)準(zhǔn)同步串口基礎(chǔ)上擴(kuò)展而來(lái),它能提供強(qiáng)大的同步串口通信機(jī)制,速率可達(dá)100Mbps。其主要功能如下:
??? (1)接收和傳送各個(gè)獨(dú)立的時(shí)鐘和幀資源;
??? (2)128個(gè)通道供接收和傳送使用;
??? (3)多通道選擇模式可以激活或屏蔽每一個(gè)通道上的塊傳送功能;
??? (4)能夠與工業(yè)標(biāo)準(zhǔn)的解碼器、模擬接口芯片(AICS)和其他串行A/D和D/A設(shè)備直接連接;
??? (5)支持外部時(shí)鐘和幀同步" title="幀同步">幀同步信號(hào);
??? (6)可配置采樣速率發(fā)生器,通過(guò)參數(shù)控制時(shí)鐘和幀同步信號(hào);
??? (7)可配置幀同步信號(hào)和時(shí)鐘信號(hào)的極性;
??? (8)傳輸?shù)臄?shù)據(jù)長(zhǎng)度可為8位、12位、6位、20位、24位、32位;
??? (9)A律和μ律的壓縮擴(kuò)展;
??? (10)與T1/E1、SPI、AC97、I2C等直接接口。
??? McBSP包括一個(gè)數(shù)據(jù)流路徑和一個(gè)通過(guò)6個(gè)引腳連接到外部器件的控制路徑。這6個(gè)引腳分別是:DX(數(shù)據(jù)發(fā)送)、DR(數(shù)據(jù)接收)、CLKX(發(fā)送時(shí)鐘)、CLKR(接收時(shí)鐘)、FSX(發(fā)送幀同步)、FSR(接收幀同步)。
??? 有效的數(shù)據(jù)經(jīng)McBSP串口通過(guò)DR和DX引腳傳輸?shù)酵獠吭O(shè)備,同步控制信號(hào)則由CLKX、CLKR、FSX、FSR引腳實(shí)現(xiàn)。圖2中簡(jiǎn)要畫出了McBSP發(fā)送/接收的基本時(shí)序。
?
?
??? 由圖2可知:當(dāng)一個(gè)幀同步脈沖到達(dá)時(shí),McBSP插入適當(dāng)?shù)臄?shù)據(jù)延遲(圖2為1位延遲),D(R/X)引腳便開始移出數(shù)據(jù);在DR或DX引腳上的數(shù)據(jù)是一次一位傳送的,每個(gè)位的傳送時(shí)間是在時(shí)鐘信號(hào)的上升沿或下降沿;本模塊中的時(shí)鐘信號(hào)由DSP芯片提供。此外,在收發(fā)通道上還有一個(gè)數(shù)據(jù)壓擴(kuò)器,可以把數(shù)據(jù)按μ律或A律壓縮后再發(fā)送,接收時(shí)再對(duì)應(yīng)地進(jìn)行擴(kuò)展。數(shù)據(jù)壓擴(kuò)器是可選項(xiàng),可根據(jù)開發(fā)平臺(tái)需要選取,模擬接口中并沒有涉及。
??? 由于McBSP串口的引腳DR和DX都有緩沖寄存器,幀同步信號(hào)FSX、FSR,時(shí)鐘信號(hào)CLKX、CLKR均具有可編程性,所以DSP芯片的McBSP串口非常靈活。因此,設(shè)計(jì)中可以先對(duì)FPGA編程,然后根據(jù)所產(chǎn)生的數(shù)據(jù)發(fā)送和接收波形的特點(diǎn)。對(duì)DSP芯片的McBSP串口編程,使其與FPGA的波形相匹配。
3 FPGA內(nèi)部McBSP接口實(shí)現(xiàn)
3.1 McBSP接口設(shè)計(jì)
??? 此設(shè)計(jì)中取字長(zhǎng)為32,字長(zhǎng)小于16的程序設(shè)計(jì)與此有少許差異。
??? 當(dāng)FPGA為接收端時(shí),其CLKR(接收時(shí)鐘)、FSR(接收幀同步)信號(hào)由DSP提供;DR引腳接收到數(shù)據(jù)位后存入一個(gè)16位的移位寄存器" title="移位寄存器">移位寄存器,此時(shí)字長(zhǎng)計(jì)數(shù)器開始計(jì)數(shù);當(dāng)計(jì)數(shù)長(zhǎng)度達(dá)到16后,表明移位寄存器已滿,并將其中的數(shù)據(jù)復(fù)制到一個(gè)32位的緩沖寄存器的高16位中;DR引腳繼續(xù)接收數(shù)據(jù),當(dāng)計(jì)數(shù)長(zhǎng)度達(dá)到32時(shí),將移位寄存器中的數(shù)據(jù)復(fù)制到緩沖寄存器的低16位中;字長(zhǎng)計(jì)數(shù)器歸1,幀長(zhǎng)計(jì)數(shù)器開始計(jì)數(shù);在邏輯控制電路作用下,將緩沖寄存器中的數(shù)據(jù)輸出到子幀緩存器FIFO中等待進(jìn)一步處理。以上步驟重復(fù)進(jìn)行,就實(shí)現(xiàn)了DSP與FPGA之間的高速數(shù)據(jù)通信。上述功能實(shí)現(xiàn)并不困難,難點(diǎn)在于在數(shù)據(jù)傳輸過(guò)程中必須嚴(yán)格注意時(shí)序,在狀態(tài)轉(zhuǎn)換過(guò)程中不能出現(xiàn)數(shù)據(jù)丟失和重傳現(xiàn)象,以及對(duì)于不期望出現(xiàn)的幀同步信號(hào)要有抗干擾功能;在此基礎(chǔ)上優(yōu)化算法,提高數(shù)據(jù)傳輸速率,降低資源消耗。
??? 當(dāng)FPGA為發(fā)送端時(shí),CLKX(發(fā)送時(shí)鐘)由DSP提供,而FSX(發(fā)送幀同步)信號(hào)由FPGA提供。數(shù)據(jù)傳輸過(guò)程和接收過(guò)程類似,只是數(shù)據(jù)傳輸方向相反。
??? 以上的數(shù)據(jù)傳輸過(guò)程如圖3所示。
?
3.2 接口優(yōu)化
??? 優(yōu)化主要針對(duì)TMS320VC5510數(shù)據(jù)手冊(cè)中所描述的McBSP接口易出現(xiàn)的異常/錯(cuò)誤事件作出有針對(duì)性的改進(jìn)和優(yōu)化:
??? (1)不期望的接收/發(fā)送幀同步信號(hào)。不被期望是指當(dāng)前幀的數(shù)據(jù)沒有接收/發(fā)送完時(shí),下一個(gè)幀同步信號(hào)產(chǎn)生了,這將導(dǎo)致數(shù)據(jù)接收/發(fā)送異常中斷并且重新開始。
??? 優(yōu)化方案:將幀同步信號(hào)觸發(fā)的狀態(tài)轉(zhuǎn)換放在Ready狀態(tài)中,之后此幀的數(shù)據(jù)傳輸進(jìn)入Write狀態(tài)和Stop狀態(tài),直到子幀計(jì)數(shù)器計(jì)數(shù)值等于幀長(zhǎng)設(shè)定值,才進(jìn)入Ready狀態(tài)等待下一幀同步信號(hào)。因而在當(dāng)前幀數(shù)據(jù)未傳完時(shí),不期望的幀同步信號(hào)不會(huì)對(duì)當(dāng)前幀產(chǎn)生影響。
??? (2)接收過(guò)快。接收過(guò)快指當(dāng)移位寄存器和緩沖寄存器都已滿時(shí),DR引腳上的下一個(gè)數(shù)據(jù)將會(huì)覆蓋移位寄存器,而移位寄存器原有數(shù)據(jù)將會(huì)丟失。
??? 優(yōu)化方案:接收過(guò)程中,當(dāng)字長(zhǎng)計(jì)數(shù)器等于16和32時(shí),移位寄存器的數(shù)據(jù)就會(huì)被復(fù)制到緩沖寄存器中;當(dāng)緩沖寄存器已滿,數(shù)據(jù)就會(huì)直接被復(fù)制到子幀緩存器中。因而在這種設(shè)計(jì)中,移位寄存器和緩沖寄存器不會(huì)同時(shí)被填滿,也就不會(huì)出現(xiàn)因接收過(guò)快而導(dǎo)致的數(shù)據(jù)丟失現(xiàn)象。
??? (3)發(fā)送數(shù)據(jù)重寫。指在數(shù)據(jù)被復(fù)制到緩沖寄存器之前,控制器就開始向緩沖寄存器中寫入數(shù)據(jù),被覆蓋的數(shù)據(jù)將會(huì)丟失。
??? 優(yōu)化方案:發(fā)送時(shí),當(dāng)移位寄存器的數(shù)據(jù)全部移出后,將發(fā)出一個(gè)信號(hào),指示緩沖寄存器的數(shù)據(jù)復(fù)制到移位寄存器中,同時(shí)告知子幀緩存器可以向緩沖寄存器寫入數(shù)據(jù)。因而不會(huì)出現(xiàn)發(fā)送數(shù)據(jù)重寫的問(wèn)題。
3.3 設(shè)計(jì)綜合及仿真
??? 程序用Verilog HDL硬件描述語(yǔ)言編寫,在Xilinx公司的最新高性能設(shè)計(jì)開發(fā)工具ISE8.2i中編譯成功。當(dāng)FPGA芯片類為xc2v2000-5-bg575時(shí),綜合結(jié)果中顯示其最大傳輸速率為167.870MHz。程序在仿真軟件ModelSim SE 6.1d的仿真結(jié)果如圖4所示。
?
圖4 McBSP接口仿真時(shí)序圖
?
??? 綜上所述,在基帶處理單元中,底層的信號(hào)預(yù)處理算法處理的數(shù)據(jù)量大,對(duì)處理速度的要求高。通過(guò)ARM、FPGA和DSP芯片構(gòu)造一個(gè)具有通用、可擴(kuò)充、靈活的數(shù)字化通用開發(fā)平臺(tái),用FPGA作DSP軟件處理的硬件協(xié)處理器,能夠增強(qiáng)功能、改善吞吐量,使平臺(tái)具有更高的系統(tǒng)性能和更低的系統(tǒng)成本;同時(shí),使用McBSP作為FPGA和DSP的數(shù)據(jù)傳輸主通道,利用McBSP接口良好的可編程性,在FPGA內(nèi)模擬出一個(gè)McBSP接口,使其實(shí)現(xiàn)FPGA和DSP的高速串行數(shù)據(jù)傳輸。實(shí)驗(yàn)證明,其速率完全可以滿足移動(dòng)終端開發(fā)平臺(tái)性能的需要。
參考文獻(xiàn)
[1] 李小文,李貴勇,陳賢亮,等.第三代移動(dòng)通信系統(tǒng)、信令及實(shí)現(xiàn).北京:人民郵電出版社,2003.
[2] 孫航.Xilinx可編程邏輯器件的高級(jí)應(yīng)用與設(shè)計(jì)技巧.北京:電子工業(yè)出版社,2004.
[3] TI.TMS320C54X DSP Reference Set.2003.
[4] TI.TMS320VC5510 datasheet.2003,9.