《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > FPGA與DSP的雙向數(shù)據(jù)通信在LTE中的應(yīng)用研究
FPGA與DSP的雙向數(shù)據(jù)通信在LTE中的應(yīng)用研究
2014年電子技術(shù)應(yīng)用第10期
張德民,董曉朋,張愛(ài)平,王華華
重慶郵電大學(xué) 重慶市移動(dòng)通信技術(shù)重點(diǎn)實(shí)驗(yàn)室,重慶400065
摘要: TD-LTE系統(tǒng)中,為了滿(mǎn)足對(duì)算法處理速度的要求,采用了基于DSP+FPGA的硬件平臺(tái)實(shí)現(xiàn)方案。方案中DSP芯片配置FPGA,由FPGA實(shí)現(xiàn)系統(tǒng)的時(shí)序控制,而TD-LTE系統(tǒng)中算法由DSP與FPGA共同實(shí)現(xiàn),可以充分發(fā)揮兩種芯片的優(yōu)勢(shì),達(dá)到系統(tǒng)性能的最優(yōu)化。
中圖分類(lèi)號(hào): TN929.5
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)10-0023-04
中文引用格式:張德民,董曉朋,張愛(ài)平,王華華.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)營(yíng)商發(fā)布4G牌照,標(biāo)志著我國(guó)的4G產(chǎn)業(yè)正式進(jìn)入商用階段。LTE項(xiàng)目是3G的演進(jìn),它改進(jìn)了3G的空中接入技術(shù),采用OFDM技術(shù)和MIMO技術(shù)作為其無(wú)線網(wǎng)絡(luò)演進(jìn)的唯一標(biāo)準(zhǔn)。LTE系統(tǒng)提出了下行峰值速率可達(dá)100 Mb/s,上行可達(dá)50 Mb/s的目標(biāo)[1]。如此大的上下行峰值速率,對(duì)LTE系統(tǒng)的硬件平臺(tái)的處理速度提出了更高的要求。

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

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

1 方案概述

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

qrs5-t1.gif

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

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

2 硬件設(shè)計(jì)

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

qrs5-t2.gif

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

    根據(jù)設(shè)計(jì)的需要,選用了兩片F(xiàn)PGA芯片,分別是Xilinx公司的Virtex6 XC6VSX475T芯片和Spartan芯片。Virtex6芯片用于實(shí)現(xiàn)LTE上行算法以及系統(tǒng)的整體時(shí)序控制,該芯片具有真正的六輸入查找表(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個(gè)用戶(hù)I/O接口,內(nèi)嵌了零延遲緩沖、時(shí)鐘相位偏移和時(shí)鐘綜合的數(shù)字管理器(DCM)和鎖相環(huán)(PLL),且包含多種IP核,可以高效地實(shí)現(xiàn)FFT、DFT物理層等算法。

3 軟件設(shè)計(jì)

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

3.1 接口軟件設(shè)計(jì)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

qrs5-t3.gif

qrs5-t4.gif

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

qrs5-t5.gif

qrs5-t6.gif

5 結(jié)論

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

參考文獻(xiàn)

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

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

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

[4] 于鳳芹.TMS320C6000 DSP結(jié)構(gòu)原理與硬件設(shè)計(jì)[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è)計(jì)教程(第2版)[M].北京:北京航空航天大學(xué)出版社,2008.

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