《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > FPGA與DSP的雙向數(shù)據(jù)通信在LTE中的應(yīng)用研究
FPGA與DSP的雙向數(shù)據(jù)通信在LTE中的應(yīng)用研究
2014年電子技術(shù)應(yīng)用第10期
張德民,董曉朋,張愛平,王華華
重慶郵電大學(xué) 重慶市移動通信技術(shù)重點(diǎn)實驗室,重慶400065
摘要: TD-LTE系統(tǒng)中,為了滿足對算法處理速度的要求,采用了基于DSP+FPGA的硬件平臺實現(xiàn)方案。方案中DSP芯片配置FPGA,由FPGA實現(xiàn)系統(tǒng)的時序控制,而TD-LTE系統(tǒng)中算法由DSP與FPGA共同實現(xiàn),可以充分發(fā)揮兩種芯片的優(yōu)勢,達(dá)到系統(tǒng)性能的最優(yōu)化。
中圖分類號: TN929.5
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2014)10-0023-04
中文引用格式:張德民,董曉朋,張愛平,王華華.FPGA與DSP的雙向數(shù)據(jù)通信在LTE中的應(yīng)用研究[J].電子技術(shù)應(yīng)用,2014,40(10):23-26+29.
An implementation scheme of two-way communication between DSP and FPGA in LTE system
Zhang Demin,Dong Xiaopeng,Zhang Aiping,Wang Huahua
Chongqing Key Lab of Mobile Communications,Chongqing University of Posts and Telecommunications,Chongqing 400065,China
Abstract: In order to satisfy the requirement of high operation speed in TD-LTE RF conformance testing instrument, the DSP+FPGA scheme is used. In the scheme, DSP is used to configure the FPGA module, and the FPGA is used to control the timing of system. The algorithms in the TD-LTE system are completed by both of the chips. This strategy will play on strengths of the chips, which make the system to achieve the optimal performance. In order to carry out the two-way communications between DSP and FPGA,a simple and effective solution which is based on TMS6455 series DSP and Virtex6 series FPGA is proposed. Board level FPGA and DSP joint debugging has proved that the scheme can not only realize communication between FPGA and DSP,but also have high robustness and stability.
Key words : TD-LTE;EMIF interface;GPIO;PUSCH

0 引言

    2013年12月,工信部正式向三大運(yùn)營商發(fā)布4G牌照,標(biāo)志著我國的4G產(chǎn)業(yè)正式進(jìn)入商用階段。LTE項目是3G的演進(jìn),它改進(jìn)了3G的空中接入技術(shù),采用OFDM技術(shù)和MIMO技術(shù)作為其無線網(wǎng)絡(luò)演進(jìn)的唯一標(biāo)準(zhǔn)。LTE系統(tǒng)提出了下行峰值速率可達(dá)100 Mb/s,上行可達(dá)50 Mb/s的目標(biāo)[1]。如此大的上下行峰值速率,對LTE系統(tǒng)的硬件平臺的處理速度提出了更高的要求。

    通用DSP芯片雖然已經(jīng)能滿足算法控制結(jié)構(gòu)復(fù)雜、運(yùn)算速度高、尋址方式靈活等需求,但是傳統(tǒng)的DSP芯片由于依然采用串行結(jié)構(gòu),對于上行信道中的一些需要處理數(shù)據(jù)量大、處理速度高,但是對于上行信道中的一些運(yùn)算結(jié)構(gòu)相對簡單的底層數(shù)字信號處理算法,例如DFT以及IFFT運(yùn)算,并沒有優(yōu)勢可言[2]。

    DSP+FPGA開發(fā)平臺與僅采用DSP處理器的傳統(tǒng)應(yīng)用相比,能夠?qū)⑾到y(tǒng)性能提升一個數(shù)量級以上。FPGA處理器具有硬件結(jié)構(gòu)可重構(gòu)的特點(diǎn),適合算法結(jié)構(gòu)固定、運(yùn)算量大的前端數(shù)字信號處理,可以釋放DSP帶寬以處理其他功能, FPGA在數(shù)字信號處理領(lǐng)域顯示出自己特有的優(yōu)勢[3]。目前以DSP作為主處理器,F(xiàn)PGA作為協(xié)處理器的硬件架構(gòu)已經(jīng)廣泛應(yīng)用于數(shù)字圖像處理、汽車制造、移動通信等領(lǐng)域。TD-LTE系統(tǒng)中,以DSP+FPGA作為實現(xiàn)算法的硬件平臺核心已是大勢所趨,而如何使DSP與FPGA高效快速地實現(xiàn)雙向數(shù)據(jù)通信也成為急需解決的問題?;诖?,本文主要介紹了一種實現(xiàn)DSP雙向通信的實現(xiàn)方案.

1 方案概述

    方案基于LTE系統(tǒng)上行共享信道,方案設(shè)計總體框圖如圖1所示。數(shù)據(jù)通信主要基于EMIF接口實現(xiàn),DSP通過EMIF接口向FPGA發(fā)送數(shù)據(jù)。由于在FPGA中設(shè)計的模塊較多,而且許多模塊都需要從DSP獲取配置信息和數(shù)據(jù)信息,為了使各個模塊能夠正確接收數(shù)據(jù),F(xiàn)PGA中設(shè)計了EMIF解析模塊,根據(jù)EMIF接口中的地址信號EA以及片選信號CE確定當(dāng)前從EMIF接口接收的數(shù)據(jù)應(yīng)當(dāng)分配給哪一個模塊。

qrs5-t1.gif

    LTE系統(tǒng)中,上行數(shù)據(jù)要在特定的子幀中發(fā)送,因此需要根據(jù)TD-LTE系統(tǒng)對時序的要求,設(shè)計時序控制模塊,即Timer模塊。在LTE系統(tǒng)中一個子幀的持續(xù)時間為30 720個Ts(Ts=1/30 720 ms),對系統(tǒng)的122.88 MHz進(jìn)行時鐘計數(shù),當(dāng)時鐘計數(shù)達(dá)到122 880時,一個子幀結(jié)束,通過一個GPIO接口向DSP發(fā)送中斷信號,告知DSP該子幀已經(jīng)結(jié)束,并通過EMIF接口向DSP發(fā)送子幀號以及幀號,使DSP進(jìn)入中斷函數(shù)進(jìn)行相關(guān)操作。

    圖1中,DFT模塊主要用于完成預(yù)編碼功能;IFFT模塊主要用于完成基帶信號生成功能;TX模塊將基帶信號的I/Q(虛部與實部)兩路數(shù)據(jù)經(jīng)過并串變換后合成一路數(shù)據(jù),并且將得到的數(shù)據(jù)發(fā)送至中頻。

2 硬件設(shè)計

    平臺架構(gòu)如圖2所示,DSP芯片采用TI公司的TMS320C6455,該芯片為定點(diǎn)DSP芯片,時鐘主頻可達(dá)1.2 GHz,芯片的處理速度高達(dá)每秒9 600萬條(MIPS)指令,能夠滿足LTE復(fù)雜的編碼算法對處理速度的要求。C6455芯片采用了兩級存儲結(jié)構(gòu),層一的RAM容量為32 KB,用于程序和數(shù)據(jù)的高速存儲,這一段存儲區(qū)離CPU較近,被分成了高速數(shù)據(jù)緩存區(qū)L1D和高速程序緩沖區(qū)L1P;層二則由數(shù)據(jù)和程序共享,共2 096 KB。兩個通用寄存器組分別包含32個位寬為32的寄存器,寄存器組可以被用作存儲數(shù)據(jù)或地址指針。C6455芯片的外設(shè)和接口主要有:內(nèi)部集成總線(I2C)接口、外部存儲器接口(EMIF)、多通道緩沖串行端口(McBSP)、高速串行收發(fā)器(SRIO)以及通用輸入輸出端口(GPIO)[4]。

qrs5-t2.gif

    DSP芯片的EMIF接口主要用來完成FPGA與DSP的高速數(shù)據(jù)傳輸。EMIF采用異步傳輸機(jī)制,接口的輸出時鐘頻率很高,可以達(dá)到200 MHz,數(shù)據(jù)位寬可以配置為8 bit、16 bit、32 bit或者64 bit,數(shù)據(jù)傳輸速率較快,可以滿足LTE系統(tǒng)對DSP與FPGA數(shù)據(jù)交互速率的要求。DSP芯片的GPIO接口通過轉(zhuǎn)接芯片與Virtex-6芯片相連,在硬件平臺上共有32條GPIO線連接DSP芯片與FPGA芯片。數(shù)據(jù)交互是基于EDMA(增強(qiáng)型直接存?。┩瓿傻模枰狣SP芯片調(diào)用EDMA將數(shù)據(jù)搬到指定地址,再發(fā)往FPGA。

    根據(jù)設(shè)計的需要,選用了兩片F(xiàn)PGA芯片,分別是Xilinx公司的Virtex6 XC6VSX475T芯片和Spartan芯片。Virtex6芯片用于實現(xiàn)LTE上行算法以及系統(tǒng)的整體時序控制,該芯片具有真正的六輸入查找表(LUT)結(jié)構(gòu)(64 bit ROMs),在芯片上嵌入了64位寬的分布式RAM和32位寬的分布式移位寄存器查找表(SRL32),強(qiáng)大的36 KB Block RAM/FIFO,增強(qiáng)型的25×18 DSP48E1 slices以及有840個用戶I/O接口,內(nèi)嵌了零延遲緩沖、時鐘相位偏移和時鐘綜合的數(shù)字管理器(DCM)和鎖相環(huán)(PLL),且包含多種IP核,可以高效地實現(xiàn)FFT、DFT物理層等算法。

3 軟件設(shè)計

    方案中涉及到的軟件設(shè)計主要有:EMIF接口軟件在CCS環(huán)境下的設(shè)計以及邏輯控制模塊在ISE編譯環(huán)境下的設(shè)計。

3.1 接口軟件設(shè)計

    設(shè)計中,主要通過EMIF接口實現(xiàn)DSP與FPGA的雙向數(shù)據(jù)通信,即DSP既可以通過EMIF接口向FPGA發(fā)送編碼數(shù)據(jù)和配置信息,同時也可以讀取FPGA產(chǎn)生的同步信號。DSP與FPGA通信的存儲映射區(qū)為0xD000 0000-0xD07FF FFFF,因此DSP需要調(diào)用EDMA將數(shù)據(jù)搬移至映射區(qū)的指定地址區(qū)域。DSP的EMIF讀寫周期可以分為三個階段,即讀寫建立(Setup)、讀寫選通(Strobe)和讀寫保持(Hold)。通過調(diào)試得出當(dāng)Setup、Strobe和Hold長度分別設(shè)置為1、2、1個時鐘時,讀寫過程較為穩(wěn)定。設(shè)計中通過EMIFA_CE5CFG寄存器的值設(shè)置EMIF接口的傳輸模式以及讀寫建立、讀寫選通和讀寫保持的時鐘周期。

    DSP首先要進(jìn)行初始化,并且向FPGA發(fā)送復(fù)位信號與配置信息,例如系統(tǒng)帶寬配置、RB配置以及上下行配置等,初始化FPGA內(nèi)的寄存器。對于配置信息的發(fā)送并不需要EDMA參與,只需將配置信息直接寫入對應(yīng)映射區(qū)的對應(yīng)地址中,DSP便可以將信息通過EMIF接口發(fā)送至FPGA。

    為了避免基帶算法在一個子幀內(nèi)重復(fù)執(zhí)行,設(shè)置編碼完成標(biāo)志Havedone,DSP與FPGA初始化完成以后,實現(xiàn)傳送編碼數(shù)據(jù)的具體流程如下:

    (1)FPGA執(zhí)行時序控制模塊,子幀結(jié)束時通過GPIO向DSP發(fā)送中斷信號。

    (2)DSP接收到FPGA發(fā)送的中斷后,執(zhí)行中斷函數(shù),DSP將子幀號與幀號讀取到事先約定好的映射區(qū)地址中,同時將編碼完成標(biāo)志位Havedone置為0。其中子幀號與幀號由FPGA中的時序控制模塊產(chǎn)生。

    (3)根據(jù)當(dāng)前子幀號以及參考文獻(xiàn)[1]中的上下行配置表判斷當(dāng)前子幀是否為上行子幀的前一子幀,并且判斷標(biāo)志位Havedone是否為零,如果上述兩個條件均滿足則進(jìn)行基帶算法處理并將標(biāo)志位Havedone置為1。調(diào)用EDMA,將編碼后數(shù)據(jù)搬移到映射區(qū)指定地址并通過EMIF發(fā)送至FPGA。

    (4)FPGA通過EMIF解析模塊,解析出數(shù)據(jù)的用戶數(shù)據(jù),以及數(shù)據(jù)在RAM區(qū)中存放的地址。

    時序控制模塊持續(xù)運(yùn)行,上述過程循環(huán)執(zhí)行。

    在對FPGA的設(shè)計中通過調(diào)用IOBUF原語實現(xiàn)雙向I/O端口。IOBUF原語中共有4個端口,分別是輸出端口O、輸入端口I、雙向端口I/O和控制端口T。該原語會在FPGA中例化為一個三態(tài)門,I/O端口直接與頂層I/O端口相連,端口T控制三態(tài)門中數(shù)據(jù)流的方向,當(dāng)T為零時I/O作為FPGA的輸出端口,反之I/O端口作為FPGA的輸入端口。IOBUF原語調(diào)用一次只能傳輸1 bit數(shù)據(jù),因此需要使用循環(huán)生成塊循環(huán)調(diào)用該原語,以實現(xiàn)64 bit數(shù)據(jù)并行傳輸。

3.2 系統(tǒng)時序控制模塊設(shè)計

    為了解決DSP與FPGA數(shù)據(jù)處理的同步問題,設(shè)計了系統(tǒng)時序控制模塊,即Timer模塊。

    模塊采用122.88 MHz的時鐘,應(yīng)用計數(shù)器原理,每計數(shù)到122 879,計數(shù)器清零并產(chǎn)生一次子幀中斷,子幀號加1。當(dāng)子幀號等于9時,子幀號清零,幀號加1,當(dāng)幀計數(shù)到1 023,幀號清零。在TD-LTE中無線幀傳輸速率為30.72 MHz(一個無線幀長度為Tf=307 200×Ts=10 ms),因此子幀計數(shù)寄存器右移2位,輸出作為子幀計數(shù)的值(0~30 719)[5-6],其中子幀計數(shù)的值是后續(xù)模塊實現(xiàn)的基礎(chǔ),常作為發(fā)送端和接收端發(fā)送和接收數(shù)據(jù)的地址。

    在實際調(diào)試中發(fā)現(xiàn),若采用LUT生成計數(shù)器自加的方法,當(dāng)計數(shù)器的值作為后續(xù)模塊取值地址時,由于路徑延遲和時鐘抖動可能導(dǎo)致計數(shù)產(chǎn)生誤差,所以調(diào)用DSP48原語庫<COUNTER_LOAD_MACRO>實現(xiàn)計數(shù)功能,調(diào)用<EQ_COMPARE_MACRO>實現(xiàn)計數(shù)器清零及初始化[7]。

3.3 EMIF解析模塊設(shè)計

    FPGA把從DSP接收到的數(shù)據(jù)分配給相應(yīng)的子模塊,同時在運(yùn)行時,F(xiàn)PGA要整合子模塊發(fā)往DSP的信息,以適應(yīng)雙向端口的要求。為了完成上述功能,F(xiàn)PGA軟件設(shè)計中設(shè)置了EMIF解析模塊。

    EMIF解析模塊的數(shù)據(jù)分配功能主要通過配置FPGA子模塊的使能信號實現(xiàn),具體步驟如下:

    (1)DSP配置為寫模式,根據(jù)EMIFA_CE5CFG寄存器的配置確定AWE、CE信號的發(fā)送時序,AOE為持續(xù)高電平。

    (2)DSP在發(fā)送數(shù)據(jù)的同時,根據(jù)發(fā)送數(shù)據(jù)的目的模塊不同,將數(shù)據(jù)寫入到映射區(qū)不同的地址中。EMIF將數(shù)據(jù)在映射區(qū)中地址的22到3位作為EA信號隨同數(shù)據(jù)一起發(fā)送至FPGA。

    (3)EMIF解析模塊中,根據(jù)EA信號高四位,將發(fā)往目標(biāo)子模塊的使能信號配置成與CE相同的時序,而發(fā)往其他子模塊的使能信號持續(xù)為高。

    (4)FPGA子模塊接收到的使能信號為低電平且AWE信號為高電平,則通過ED攜帶的數(shù)據(jù)對模塊中的相應(yīng)寄存器進(jìn)行配置。如果使能信號與AWE信號同時為低電平,則將ED數(shù)據(jù)寫入相應(yīng)RAM區(qū)。

    EMIF解析模塊的數(shù)據(jù)整合功能主要由以下步驟實現(xiàn):

    (1)FPGA完成數(shù)據(jù)處理或子幀結(jié)束時,向DSP發(fā)送中斷信號。

    (2)DSP根據(jù)中斷類型,確定讀取數(shù)據(jù)到映射區(qū)的地址,根據(jù)EMIFA_CE5CFG寄存器的配置,將AWE、CE信號進(jìn)行配置,此時EA信號高4位為0000,AWE為持續(xù)高電平,表示DSP只讀不寫。

    (3)EMIF解析模塊根據(jù)EMIF接口地址信號的15到12位的值,將對應(yīng)FPGA子模塊的返回值賦值給emif_ED_Out。

    (4)將emif_ED_Out信號與FPGA的雙向I/O端口相連,以emif_CE_N和emif_AOE_N同時為低作為FPGA輸出數(shù)據(jù)的標(biāo)志,其中emif_CE_N即CE信號,emif_AOE_N即AOE信號。

4 調(diào)試結(jié)果分析

    圖3與圖4分別是DSP通過EMIF接口向FPGA發(fā)送的數(shù)據(jù)截圖和FPGA通過EMIF接口接收到數(shù)據(jù)的chipscope截圖,圖中emif_CE_N即CE信號,emif_AWE_N即AWE信號,設(shè)計中將DE_PUSCH_cs與DE_PUSCH_write同時為低作為FPGA的RAM區(qū)接收數(shù)據(jù)的標(biāo)志,對比圖5與圖6,當(dāng)標(biāo)志信號滿足要求時,數(shù)據(jù)穩(wěn)定且與DSP發(fā)送的數(shù)據(jù)一致,可以將數(shù)據(jù)正確發(fā)送至FPGA。

qrs5-t3.gif

qrs5-t4.gif

    圖5為DSP通過EMIF接口讀取同步信息的時序圖。設(shè)計中將emif_CE_N與emif_AOE_N同時為零作為DSP回讀數(shù)據(jù)的標(biāo)志,即以上當(dāng)兩信號均為低電平,DSP通過ED線將數(shù)據(jù)emif_Data_Out讀入相應(yīng)地址的映射區(qū)。對比圖5與圖6可以看出,與EA對應(yīng)的DSP映射區(qū)地址中寫入的數(shù)據(jù)與DSP讀取的同步信息一致,其中地址0xD000 8028中的數(shù)據(jù)為0x00000160即十進(jìn)制352,而0x00003EE9表示映射區(qū)中與同步信息地址相鄰的數(shù)據(jù),與本次讀取過程無關(guān)。

qrs5-t5.gif

qrs5-t6.gif

5 結(jié)論

    本文根據(jù)國家重大專項“射頻一致性測試儀表開發(fā)”的需求,基于EMIF接口設(shè)計了一種DSP與FPGA的雙向數(shù)據(jù)通信方案。方案中充分利用了FPGA時序控制能力強(qiáng)的特點(diǎn),采用FPGA作為總體時序控制芯片。在FPGA中設(shè)計了DSP數(shù)據(jù)分配與整合模塊和雙向I/O端口,使DSP與FPGA的數(shù)據(jù)通信更加靈活,簡化系統(tǒng)設(shè)計,增加數(shù)據(jù)處理穩(wěn)定性。通過軟件仿真、板級驗證[7]發(fā)現(xiàn),該方案數(shù)據(jù)通信速率達(dá)到1.2 Gb/s且錯誤率較低,目前該方案已應(yīng)用于項目中。

參考文獻(xiàn)

[1] 沈嘉,索士強(qiáng),全海洋,等.3GPP長期演進(jìn)(LTE)技術(shù)原理與系統(tǒng)設(shè)計[M].北京:人民郵電大學(xué)出版社,2008.

[2] 姜楠,馬迎建,馮翔.DSP和FPGA并行通信方法研究[J].電子測量技術(shù),2008,31(10):146-148.

[3] 田耘,徐文波.Xilinx FPGA開發(fā)實用教程[M].北京:清華大學(xué)出版社,2008.

[4] 于鳳芹.TMS320C6000 DSP結(jié)構(gòu)原理與硬件設(shè)計[M].北京:北京航空航天大學(xué)出版社,2008.

[5] 3GPP TS 36.211 v10.6.0:Physical channels and modulation(Release 9)[S].2012,6.

[6] 3GPP TS 36.212 v10.6.0:Multiplexing and channel coding.(Release 9)[S].2012,6.

[7] 夏宇聞.Verilog 數(shù)字系統(tǒng)設(shè)計教程(第2版)[M].北京:北京航空航天大學(xué)出版社,2008.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。