本文介紹了將現場可編程門陣列(FPGA)專用硬件處理器集成到軟件通信體系結構">軟件通信體系結構(SCA)中的機制,實現了動態部分可重構技術在軟件無線電(SDR)硬件平臺中的應用,有效地縮短系統開發周期,提高了硬件資源的利用率。
SDR是使用一個簡單的終端設備通過軟件重配置來支持不同種類的無線系統和服務(包括2G、3G移動通信系統和WLAN)的新技術。它具有較強的開放性和靈活性,硬件采用標準化、模塊化結構,可以隨著器件和技術的發展而更新和擴展;軟件模塊可以進行加載和更改,根據需要不斷升級。軟件無線電的結構如圖1所示,主要分為實時信道數據處理部分、環境管理部分、系統分析和功能強化部分。實時信道數據處理部分包括A/D、D/A、變頻、信道分離、調制解調以及碼流處理等數據模塊[1]。
?
?
SDR的核心是聯合戰術無線電系統JTRS(Joint Tactical Radio System)的SCA規范,它對模塊化可編程無線通信系統的硬件體系結構、軟件體系結構和安全體系結構以及應用程序接口(API)規范進行了描述,同時引入了嵌入式微處理器系統、總線、操作系統、公共對象請求代理體系(CORBA)、面向對象的軟件和硬件設計等一系列計算機技術,并采用了“波形應用”和“資源”可裁剪、可擴充的設計思想,從而保證了軟件和硬件的可移植性和可配置性。
以接收機為例,SDR中A/D模塊之后的部分通過軟件來實現。本文在FPGA平臺上實現信號的調制解調,以滿足高速數字信號處理發展的需求。在Xilinx Virtex2Pro FPGA硬件平臺上實現了美國軍方短波通信系統標準MIL-STD-188-110B[2]調制解調器,其中引入了動態部分可重構技術,提高了配置速度和硬件資源的利用率。
滿足SCA規范的波形組件之間通過CORBA總線通信,而FPGA平臺的專用處理器要實現對CORBA的支持比較困難。本文利用SCA規范中的SHP組件兼容性補充協議CP289提出了這一問題的具體解決方案。
1 FPGA的動態部分可重構技術
FPGA的動態可重構技術是指對時序變化的數字邏輯系統,其時序邏輯的發生不是通過調用芯片內不同區域不同邏輯資源的組合實現,而是通過對具有專門緩存邏輯資源的FPGA進行局部或全局芯片邏輯的動態重構而實現。部分重構是指重構器件或系統的一部分,在此過程中,其余部分的工作狀態不受影響。
FPGA部分可重構有多種實現方法,較為常用的是基于模塊化設計方法和EAPR(Early Access Partial Reconfiguration)設計流程[3],后者較前者而言,是一種較新的設計方法,并且有相應的軟件可以代替命令行方式進行實現,本文采取的就是這種實現方法。
圖2所示為一個簡單的基于EAPR設計流程生成的部分動態可重配置系統。整個系統劃分出靜態模塊和動態模塊,之間的通信通過總線宏來進行。該系統通過FPGA板子上的dip開關為輸入引腳提供輸入數據,確定計數器的初始值。通過下載不同部分的比特流可以實現加、減計數功能的動態切換。計數結果通過值傳遞模塊接到FPGA板子上的LED管腳。整個設計過程可以概括為:
?
?
(1)模塊劃分:靜態模塊和動態模塊;
(2)頂層模塊與靜態和動態子模塊的設計及綜合;
(3)編寫初始用戶約束文件,主要指定I/O管腳約束和時鐘約束;
(4)在PlanAhead中進行EAPR設計:
①建立局部可重構工程;
②為每一個PRM定義可重配置實體;
③為PRM規定可重配置區域;
④放置總線宏和全局時鐘邏輯;
⑤運行DRC檢查;
⑥分別實現靜態邏輯和PR模塊;
⑦裝配并生成全局和部分比特流。
2 基于FPGA的SDR硬件體系結構及DPR實現
Xilinx Virtex2Pro FPGA內含處理器,通過一定的軟件編程,可根據環境及外部需求采用不同的調制解調算法處理通信系統中的數據。通過DPR技術,可以實時快速地調整算法中的參數或者實現不同算法之間的切換。
2.1 基于FPGA的SDR硬件平臺
本文基于Xilinx Virtex2Pro FPGA,搭建的SDR硬件平臺如圖3所示。該系統以軟核處理器 MicroBlaze為核心,DDR SDRAM Controller、OPB_HWICAP和UART Controller通過OPB總線與處理器通信。DDR SDRAM為片外處理器,UART為串口設備,ICAP為內部訪問互連接口,主要用于部分重構。
?
?
2.2 DPR在SDR硬件平臺中的應用
如圖3所示,平臺的頂層為調制解調算法模塊。本文以美國軍方短波通信系統標準MIL-STD-188-110B調制解調算法的實現進行說明,圖4所示為其實現框圖。
?
?
該標準支持不同的比特速率和交織長度,在調制算法中格雷映射、符號生成和同步前導頭與訓練序列有所差別,故將其劃分為動態模塊,其余為靜態模塊。相應的,在解調模塊當中,符號解析、格雷映射和解交織模塊算法有所差別,劃分為動態模塊。在硬件實現過程中,由于不同模塊處理數據的速率不相同,因此需增加一個時鐘生成模塊,并將其劃分為動態模塊。
之后,根據EAPR設計流程生成不同條件下的不同功能的部分比特流及全局靜態比特流。設計實現的動態部分可重構調制解調器框圖分別如圖5、圖6所示。與模塊化設計方法相比,設計過程中動態和靜態區域并不需要占據FPGA的整列,提高了FPGA的資源利用率。另一點不同之處在于模塊化設計方法中總線宏是基于TBUF的,而EAPR總線宏是基于slice的。
?
?
?
?
實驗表明,發射機系統的一個部分重配置比特流的大小為269 KB,為全局比特流(1 415 KB)的19.0%,因而所需的用于存儲配置比特流的空間較小,配置速度相對較快,所需配置時間約為全局配置時間的19.0%。
3 FPGA組件在SCA中的集成
根據參考文獻[4]的內容,可加載到軟件無線電平臺上的波形組件分為運行于通用處理器上的SCA組件和運行于專用硬件處理器(SHP)上的組件。FPGA組件屬于SHP組件中的RPL(寄存器傳輸級可編程邏輯)組件,用HDL語言實現功能,但不支持CORBA。為使該類型的組件能夠集成到SCA系統中,必須在設計時使其接口滿足特定的規范,使之具有可移植性和可復用性。本文中FPGA組件按照OCP協議進行接口封裝。參考文獻[5]介紹了關于整個OCP協議的接口設置、工作原理和時序邏輯。
3.1 FPGA組件的代碼生成
由于波形應用是由波形組件和域描述文件組成的,波形組件完成相應的功能,域描述文件提供組件之間的裝配、連接、屬性等信息,因此需要通過解析軟件組件描述(SCD)文件和接口定義來獲得OCP接口。SCD文件中定義了組件的端口列表,OCP模塊就是要實現的組件。在接口庫中已經定義好了各種接口類型。通過查詢接口庫,可以獲得符合要求的接口,具體要實現的功能則由接口的參數決定。最終需要產生一個OCP接口配置文件,它以文本的形式描述了組件的內核和接口信息。
通過分析OCP接口配置文件,可以生成OCP接口的VHDL代碼。代碼中包括一個實體描述和空結構體以及一個VHDL語言包,實體表示滿足OCP接口封裝的組件,OCP接口則對應于實體的端口,端口的類型由其所在接口的類型決定。組件開發者將完成特定需求功能的代碼移入空的結構體中,便得到組件的完整的VHDL代碼。
3.2 FPGA組件在SCA中的集成
SCA組件都需要通過CORBA進行通信,而FPGA組件不使用CORBA,它的實現可分為實現體(worker)和通用代理(generic proxy)兩部分。其中worker是在SHP容器中執行的功能組件實體;generic proxy相當于SCA中的適配器。
通用代理是SCA適配器概念的實例化,是由SHP邏輯設備的每一個“執行”操作創建的CORBA對象,類似于應用工廠在每一次“創建”操作時創建CF∷Application對象以及域管理器在每一次“安裝”操作時創建應用工廠。當要求SHP邏輯設備實例化SHP組件時,通過使用load、execute命令創建代表SHP容器中實體的本地CORBA對象。它可以與SHP容器通信,用于下載、創建、控制和配置worker。相對于GPP邏輯設備的執行操作會產生一個GPP組件實現本身所對應的CORBA對象索引,SHP邏輯設備的執行操作會產生相應的通用代理的CORBA對象索引。
本文基于FPGA主要實現了動態部分可重構實驗平臺,并將其應用到SDR硬件平臺調制解調算法實現中,提高了系統的靈活性和可擴展性。同時討論了FPGA組件集成到SCA中的設計方法以及相關的技術,從而能夠縮短系統的開發設計時間,增強組件的可移植性、可復用性和重新被設計的能力。
參考文獻
[1] MITOLA J.The software radio architecture[J].IEEE Communications Magazine,1995,33(5):26-38.
[2] MIL-STD-188-110B:Interoperability and performance standards for data modems[S].U.S.Department of Defense,2000.
[3] Early access partial reconfiguration user guide(UG208)[S]. 2006.
[4] Joint Tactical Radio System(JTRS) Joint Program Office. Extension for component portability for specialized hardware processors(SHP) to the JTRS software communication architecture[S].(SCA) Specification 7 March 2005.
[5] OCP International Partnership.Open core protocol specification[S].Release 3.0.
評論
查看更多