徐婷婷,王小港,郭 亮
(上海貝爾股份有限公司,上海201206)
3GPP 長期演進(LTE)項目是近兩年來3GPP 啟動的最大的新技術研發(fā)項目,這種以OFDM/FDMA 為核心的技術可以被看作“準4G”技術。LTE 技術可以提供高于3G 速率幾十倍、接續(xù)時延更短的無線業(yè)務體驗,實現(xiàn)上/下行分別超過50 Mbit/s和100 Mbit/s的傳輸速率和更好的端到端質量保障[1-2]。今天,有超過49 個LTE 網(wǎng)絡已經(jīng)開始商業(yè)運營在全球各個國家,有超過269 款LTE 終端由各個廠商發(fā)布面市??梢钥吹?LTE 的全球化發(fā)展已是大勢所趨。業(yè)界各通信設備廠商都紛紛抓住網(wǎng)絡技術更新?lián)Q代這一大好機遇,加快技術創(chuàng)新步伐,提高市場開拓能力,力求在LTE 時代占有自己的一席之地。
另一個無線技術發(fā)展的熱點就是軟件無線電(Software Defined Radio,SDR)。軟件無線電就是寬帶模數(shù)及數(shù)模變換器(A/D 及D/A)、大量專用/通用處理器、數(shù)字信號處理器(Digital Signal Processor,DSP)構成盡可能靠近射頻天線的一個硬件平臺。在硬件平臺上盡量利用軟件技術來實現(xiàn)無線電的各種功能模塊并將功能模塊按需要組合成無線電系統(tǒng)。該平臺架構被廣泛應用于BTS 的開發(fā)中,便于BTS 的升級和更新?lián)Q代,特別適用于多種標準共存的情況下。LTE/GSM 多模BTS 正是在這樣的背景及基礎上,通過對原來GSM BTS 的升級應運而生的。其中,數(shù)字中頻模塊是在FPGA 芯片實現(xiàn)的。FPGA 以高速復雜邏輯處理能力見長,同時憑借其超大規(guī)模的單芯片容量和硬件電路的高速并行運算能力,在信號處理方面也顯示出優(yōu)勢。數(shù)字中頻模塊的升級,主要是由原來支持6 路GSM 載波升級到支持1 路LTE載波加2 路GSM 載波。
FPGA 的故障診斷在整個FPGA 的開發(fā)過程中是重點和難點。目前,FPGA 開發(fā)過程中的診斷手段主要是前期的RTL 代碼仿真,而上板測試階段主要有3 種方法:利用主控CPU 讀取FPGA 寄存器的狀態(tài)值或修改寄存器的配置值;利用FPGA 廠商提供的嵌入式邏輯分析儀添加需要觀測的信號;利用外接引腳連接邏輯分析儀觀測相應引腳的信號。這3種方法要依賴于CPU 軟件或外部接口,在系統(tǒng)測試階段都不夠靈活, 并且不能實現(xiàn)大塊數(shù)據(jù)的采集。而本文提出的基于以太網(wǎng)接口采用Matlab 軟件實現(xiàn)的軟硬件協(xié)處理診斷技術, 由于利用了板上的DDR2 存儲器,因此只需要編寫簡單的Matlab 腳本語言,利用一個以太網(wǎng)接口,就可以實現(xiàn)FPGA 內部寄存器的存取及信號鏈路各節(jié)點大塊數(shù)據(jù)的采集。相比其他的診斷方法,該方法只需要一個以太網(wǎng)接口,實現(xiàn)方式簡單靈活。
在LTE/GSM BTS 中,FPGA 實現(xiàn)的數(shù)字中頻模塊支持GSM 和FDD LTE 兩種協(xié)議,其實現(xiàn)結構如圖1 所示,其中既包含兩種協(xié)議數(shù)字中頻的獨立處理鏈路,也包含公共的組合處理鏈路[3-4]。
圖1 LTE/GSM BTS 數(shù)字中頻功能結構圖Fig.1 Function structure of digital IF modu le in LTE/GSM BTS
從圖1 中可以看到,GSM 下行鏈路主要包括數(shù)字上變頻和2 路載波的頻率綜合,而LTE 主要包括數(shù)字上變頻、削峰及數(shù)字重采樣,兩者在相同的采樣頻率下合并進入組合處理模塊,再進行數(shù)字預失真處理,最后經(jīng)DAC 接口模塊輸出到DAC。其中GSM的基帶數(shù)據(jù)來自以太網(wǎng)接口,LTE 的基帶數(shù)據(jù)來自CPRI(Common Public Radio Interface)接口。
上行鏈路的處理則是從模擬端ADC 進入ADC接口,經(jīng)自動增益控制模塊,再到組合處理模塊,組合處理根據(jù)不同的頻點偏移,分別提取出2 路GSM載波和1 路LTE 載波。GSM 的上行處理主要是數(shù)字下變頻、信道濾波及以太網(wǎng)接口部分,LTE 的上行處理主要是數(shù)字重采樣、數(shù)字下變頻、信道濾波及CPRI 接口。
數(shù)字中頻模塊包含了大量的數(shù)字信號處理,本文提出的診斷方法是利用Matlab 工具軟件來存取寄存器及采集大塊數(shù)據(jù),而Matlab 的一大優(yōu)勢就是數(shù)字信號處理,因此,利用該方法采集到的數(shù)據(jù)可以直接在Matlab 工具環(huán)境里利用Matlab 豐富的信號處理函數(shù)進行分析處理。
在LTE/GSM BTS 系統(tǒng)中, FPGA 實際充當了DSP 的協(xié)處理器的角色(即DSP 為主控CPU),FPGA幾乎與板上不同接口標準的其他芯片都有接口,除了實現(xiàn)數(shù)字中頻這個主要功能,DSP 還通過FPGA控制其他芯片。FPGA 與DSP 的接口是通過以太網(wǎng)交換芯片。DSP 要實現(xiàn)各種不同的功能,如控制指令或基帶數(shù)據(jù)的發(fā)送和接收,其與FPGA 之間的通信交互都是通過以太網(wǎng)包的形式進行的。不同的應用,需要定義不同類型的以太網(wǎng)包。在這樣的設計基礎上,本文提出了一種軟硬件協(xié)處理診斷方法,該方法基于協(xié)處理協(xié)議自定義了一種特殊的以太網(wǎng)包類型,對于這一類型的以太網(wǎng)包,Matlab 可以接替DSP 的角色,直接實現(xiàn)與FPGA 的通信交互。
圖2 FPGA 與板上其他器件的接口Fig.2 Interfaces between FPGA and other devices
基于Ethernet 的軟硬件協(xié)處理協(xié)議,簡稱為Co-simulation 協(xié)議, 為點對點通信, Xilinx 的System generator 工具可支持并可集成到Matlab 軟件。表1所示為一典型的以太網(wǎng)幀結構,對于Co-simulation協(xié)議,會針對不同的命令和響應對以太網(wǎng)類型字段和載荷字段進行進一步的自定義[5]。為了將Co -simulation 協(xié)議的數(shù)據(jù)與其他業(yè)務的以太網(wǎng)包相區(qū)分,根據(jù)協(xié)議,本文定義了0x3100 的以太網(wǎng)包類型。
表1 以太網(wǎng)幀結構Table 1 Ethernet II frame
載荷字段的定義包含了Co-simu lation 協(xié)議標志符和協(xié)議數(shù)據(jù)兩部分, 如表2 所示。由于FPGA硬件協(xié)處理接口的數(shù)據(jù)位寬為32 bit,因此協(xié)議數(shù)據(jù)的長度總是4 byte的整數(shù)倍。Co-simulation 協(xié)議標志符指示了協(xié)議數(shù)據(jù)的類型,本設計中用0xABCD指示該0x3100 包為Co-simulation 命令或Co-simulation 響應。主處理器通過硬件協(xié)處理接口發(fā)送命令包給FPGA,讓FPGA 執(zhí)行一系列相應的命令。同時FPGA 也可以通過硬件協(xié)處理接口回送響應包給主處理器。
表2 以太網(wǎng)載荷的定義Table 2 Ethernet payload
主處理器根據(jù)協(xié)議配置好相應的數(shù)據(jù),就可以對FPGA 內相應的地址映射空間發(fā)起讀寫命令進行存取操作。一個0x3100 命令包可以包含多條讀寫指令。FPGA 內的硬件協(xié)處理接口會按次序順序執(zhí)行接收到的指令。
對于協(xié)處理的診斷方法,Co -simulation 協(xié)議的FPGA 實現(xiàn)是重點。在本文的FPGA 設計中,需要在以太網(wǎng)接口模塊完成該功能。以太網(wǎng)接口模塊負責處理CPU 通過以太網(wǎng)包對FPGA 的讀寫操作,以及業(yè)務數(shù)據(jù)的發(fā)送和接收。該模塊的更新設計中,Co-simulation 協(xié)議部分采用了Xilinx 提供的IP 核,所有的存取操作都是通過地址映射進行的。對于業(yè)務數(shù)據(jù)的處理,在模塊內部還需經(jīng)過FIFO 來實現(xiàn)時鐘域的轉換。其中,FPGA 發(fā)送業(yè)務數(shù)據(jù)到CPU 的過程是由FPGA 自主發(fā)起的,無需CPU 發(fā)起讀請求。
以太網(wǎng)接口模塊通過SGMII-1 接口與板上的以太網(wǎng)交換芯片相連,通過local link 接口與FPGA內部的其他模塊相連。從圖3 中,我們看到有一路數(shù)據(jù)經(jīng)local link 到Co-simulation Processor,再到地址映射模塊。類型為0x3100 的包走的就是該數(shù)據(jù)路徑。在本文所述的協(xié)處理診斷方法中,Matlab 代替CPU 與地址映射模塊交互。在該診斷方法中,FPGA 將為相應的主處理器開放整塊的地址映射空間,供主處理器進行讀寫操作,此時,Matlab 對該映射空間的操作將沒有任何限制。
圖3 以太網(wǎng)接口模塊框圖Fig.3 Ethernet co-simulation module diagram
從圖3 中,我們看到所有從Co-simulation 處理器上傳和下發(fā)的數(shù)據(jù)都是通過地址映射模塊再到FPGA 內部的各個模塊的。在BTS 系統(tǒng)中,DSP 與FPGA 的數(shù)據(jù)交互都是通過以太網(wǎng)包,因此,在FPGA設計之初,為FPGA 內部的各個功能模塊都定義了相應的地址映射空間,為所有需要直接存取訪問的寄存器都分配了相應的地址空間。通過協(xié)處理的診斷方法,我們可以對一個模塊的整塊地址空間進行存取操作。
協(xié)處理診斷方法的另一特點就是大塊數(shù)據(jù)的采集,這就需要數(shù)據(jù)采集模塊的開發(fā)。該模塊完成了對FPGA 實現(xiàn)的中頻處理模塊內部某些關鍵節(jié)點的數(shù)據(jù)進行采集。
圖4 數(shù)據(jù)采集模塊框圖Fig.4 Sampler module diagram
從圖4 可以看出,數(shù)據(jù)采集模塊包含發(fā)送和接收數(shù)據(jù)兩部分功能。首先,接收功能包括采集TXpath、RX ADC 及FB ADC 3 個節(jié)點的信號。模塊工作時,節(jié)點的選擇是通過配置source-select 寄存器,采集數(shù)據(jù)的長度再通過配置長度寄存器。采集到的數(shù)據(jù)會首先存儲到DDR2-RAM,存儲的起始地址會存放在接收地址寄存器。DDR2-RAM 的存儲容量為512 Mbyte,因此可以根據(jù)具體的診斷需要來配置長度寄存器的值。所有需要采集的信號都會有一個高電平有效的同步信號。由于需要采集的信號可能處于不同的時鐘域,因此,數(shù)據(jù)采集模塊內部會利用FIFO 來進行時鐘域的同步。DDR2-RAM 中的數(shù)據(jù)是通過Frame-RAM 來分塊讀取的。系統(tǒng)為Frame-RAM 定義了2 048 byte的數(shù)據(jù)空間,其中地址空間為512,數(shù)據(jù)位寬為32 bit,該512 的地址空間就是接收數(shù)據(jù)的地址映射空間,DSP/Matlab 就可以通過Co-simulation 接口多次存取該空間的整塊數(shù)據(jù),完成大塊數(shù)據(jù)的存取。圖4 中的ECI(Ethernet Co-simulation Interface)即為上一小節(jié)的地址映射模塊,每一個FPGA 功能模塊都會包含一個這樣的模塊。其次,數(shù)據(jù)采集模塊的另一個功能是通過DDR2-RAM發(fā)送數(shù)據(jù)到TX-chain,該功能的處理流程是主處理器通過以ECI 接口寫數(shù)據(jù)到Frame-RAM。
該軟硬件協(xié)處理的FPGA 診斷方法被應用于LTE/GSM MSR 項目的各個階段。圖5 所示為MSR(Multi-Standard Radio)項目的層一系統(tǒng)集成測試驗證平臺??梢钥吹?在該平臺上,很難采用常用的FPGA 診斷方法。在項目初期,DSP 的程序還未開發(fā)完成時,我們利用該方法,通過Matlab 來配置FPGA的控制寄存器,并通過讀取狀態(tài)寄存器來檢查FPGA的工作狀態(tài)。通過一個Matlab 腳本,我們可以方便地完成寄存器的配置和讀取。在測試驗證階段,我們主要利用該方法來診斷FPGA 中頻處理模塊出現(xiàn)的問題,進行定位和分析。在下行信號鏈路的測試中,當發(fā)現(xiàn)頻譜儀上的信號異常時,我們會通過該方法來采集DAC 之前的數(shù)字信號,并在Matlab 里分析,從而快速地對問題是由FPGA 的下行數(shù)字信號處理鏈路引入的還是模擬部分引入的作出判斷。如果問題是由數(shù)字部分引入的,就進一步展開更深入的分析,如算法模型的進一步仿真分析,或是RTL仿真分析。在上行信號鏈路的測試中,當我們發(fā)現(xiàn)接收到的數(shù)據(jù)異常時,我們會利用該協(xié)處理的方法采集ADC 之后的數(shù)字信號,并在Matlab 分析,查看該節(jié)點的信號有無問題,若無問題,該信號則會作為測試矢量,用于提供給上行信號鏈路的算法模型或RTL 代碼作仿真用;若該節(jié)點有問題,則可以判斷是模擬部分的處理出現(xiàn)問題。這種分段定位診斷問題的方法在項目開發(fā)過程中提高了診斷定位問題的效率,實踐證明非常有效。
圖5 LTE/GSM MSR 測試平臺Fig.5 Test platform of LTE/GSM MSR
以下用一個FPGA 數(shù)字中頻診斷的實例做進一步具體說明。圖6 所示為利用該診斷方法診斷具體故障的Matlab 工作環(huán)境。圖中右側所示的例子為,在測試10 MHz帶寬的LTE 上行鏈路時,實際信號發(fā)生儀發(fā)出的有用信號的帶寬為5 MHz,而在CPRI 接收側,分析接收到的數(shù)據(jù)時,發(fā)現(xiàn)有用信號的右側有一個鏡像頻譜,如圖6 右上方的波形所示。利用協(xié)處理的診斷方法,在ADC 之后利用數(shù)據(jù)采集模塊采集數(shù)據(jù),發(fā)現(xiàn)模擬部分輸出的數(shù)據(jù)頻譜如圖6 右下方所示,有用信號為5 MHz,沒有鏡像頻譜,說明該問題為數(shù)字中頻模塊引入。因此,我們利用采集到的數(shù)據(jù)作為數(shù)字中頻模塊的仿真激勵,對數(shù)字中頻模塊進行RTL 仿真,發(fā)現(xiàn)該問題是由LTE 上行信號鏈路的數(shù)字重采樣模塊引入的。該子模塊主要功能是實現(xiàn)數(shù)字重采樣及時鐘域的轉換。模塊輸出接口負責時鐘域轉換的FIFO,其中I 支路和Q 支路的FIFO 處理機制不一致,Q 支路的FIFO 會發(fā)生溢出,導致I 支路和Q 支路的數(shù)據(jù)不對稱,從而引起問題。
圖6 Matlab 工作環(huán)境及故障診斷舉例Fig.6 An examp le and results in Matlab
本文所論述的基于以太網(wǎng)接口采用Matlab 軟件對數(shù)字中頻FPGA 設計進行故障診斷的方法在LTE/GSM MSR 項目開發(fā)的各個階段均被采用。在項目之初,DSP 軟件沒有開發(fā)完成時,利用該方法使用Matlab 軟件和以太網(wǎng)接口完成數(shù)字中頻模塊的寄存器配置及狀態(tài)寄存器的查詢。在集成測試的系統(tǒng)驗證階段,通過采集和分析關鍵節(jié)點的信號數(shù)據(jù),使中頻處理模塊上下行鏈路輸出異常的問題能快速定位,并為仿真提供了真實的激勵。受FPGA 內部資源的限制,該方法用到的數(shù)據(jù)采集模塊中的采集節(jié)點數(shù)量相對有限,因此,數(shù)字中頻設計內部具體子模塊的故障定位還需要結合RTL 仿真分析才能最終定位。由于該方法易用且不需要額外硬件接口,被應用于本公司多個MC(Multi-Carrier)項目中。對于該協(xié)處理的診斷方法,只要在FPGA 設計中包含有支持Co-simulation 協(xié)議的處理模塊,就可以普遍應用于FPGA 數(shù)字系統(tǒng)的故障診斷。
[1] 3GPP TS 36.104 v9.5.0,Base Station(BS)radio transmission and reception(Release 9)[S] .
[2] 3GPP TS 36.141 v9.5.0, Base Station (BS)conformance testing(Release 9)[ S] .
[3] 3GPP TS 37.104 v9.3.0,Multi-Standard Radio(MSR)Base Station(BS)radio transmission and reception(Release 9)[S] .[4] 3GPP TS 25.104 v9.4.0,Base Station(BS)radio transmission and reception(FDD)(Release 7)[ S] .
[5] Chan C B,Ballagh J B,Shirazi N,et al.Point-to-Point Ethernet hardware co-simulation interface:US,7,636, 653[P/OL] .2009-12-22.http://www.google.com/patents/US7636653.