黃揚洲 ;[3,4]。
【摘要】 隨著電子技術和軟件無線電技術的發展,基于SCA架構的多通道通信終端,具備資源綜合化、功能軟件化、業務多元化、小型化特點,具有開放性架構,滿足多種應用場景需求。本文針對多通道SCA通信終端特征,分析了基于SCA架構的四通道通信終端的運行機理,研究并提出了在SCA架構下局部重構FPGA波形的方法,并在實物環境上測試驗證,測試結果表明本文設計的方法有效且可行。
【關鍵詞】 多通道SCA終端 MHAL FPGA 局部重構
一、引言
隨著電子技術發展,處理器的集成度越來越高,處理能力越來越強,多核處理器芯片和大規模邏輯芯片被大量運用,并得到充分驗證,為多通道無線通信終端資源綜合提供了硬件基礎,由傳統的通道資源獨立架構[1]演變為通道資源共享架構,從而實現小型化設計,滿足了對體積、功耗和重量要求嚴苛的應用平臺需求。
同時,軟件無線電( SDR) 技術作為無線通信的核心也取得了重要突破,SCA(軟件通信體系結構)技術經過近二十年發展已逐步趨于成熟并得到廣泛應用,并成為了SDR規范[1,2,3]。
SCA定義了高度靈活的開放性架構,標準化功能組件開發、部署、管理接口和行為,對無線電系統互連互通和互操作起到了至關重要的作用。
在采用新型硬件架構和SCA規范設計的多通道通信終端中,大規模邏輯芯片(FPGA)整合了多通道波形算法邏輯,是核心部件之一。如何在重構任意通道波形時不影響其余通道正常工作,是多通道終端適應不同應用場景的關鍵所在。傳統的FPGA重構均采用整體配置方式,即任意邏輯改變均需加載整個配置文件,中斷FPGA上所有電路工作,其缺點如下:
(1)整體版本數量隨著波形種類增加會成幾何倍數增長,對存儲空間需求巨大,并且不便于后期功能擴展,每增加一種新波形,需要與以前的波形合并生成多個整體版本,而且對新生成的所有版本都要進行測試驗證,工作量巨大。
(2)在任意通道切換波形時,需要加載相應的整體版本,影響其它通道的正常工作。
本文針對多通道SCA通信終端特征,以四通道終端為例,分析了基于SCA架構的四通道通信終端運行機理,研究并提出了FPGA芯片局部重構多種波形的方法,簡化了波形重構設計,滿足多通道波形并發運行,相互獨立需求;并且便于后期功能擴展,每增加一種波形,只需要生成該波形的動態重構版本,不需要與其它波形版本合并,極大減少版本數量和測試工作量。
二、基于SCA的四通道終端架構
2.1硬件架構
四通道通信終端采用多核GPP+多核DSP+大規模FPGA架構實現后端數字域算法解算功能,射頻前端采用四個獨立信道實現射頻信號變換和調整。結構如圖1所示。
上圖中,PPM(Protocol Process Module,協議處理模塊)采用雙核PowerPC處理器實現系統資源管理和調度、波形協議處理。WPM(Waveform Process Module,波形處理模塊)采用TI公司4核DSP芯片和Xilinx公司的大規模FPGA芯片XC7K325T實現信號解算。RFM(Radio Frequency Module,射頻模塊)主要實現射頻信號變換和調整。
PPM和WPM模塊之間通過高速RIO(RapidIO)總線進行通信,其中與DSP相連的總線主要負責數據傳輸,與FPGA相連的總線主要負責FPGA芯片重構。
2.2軟件架構
四通道終端軟件采用SCA架構,在通用硬件平臺上構建開放式波形軟件運行平臺,便于波形應用安裝、部署和集成,同時也方便技術不斷升級[3,4]。
軟件平臺由核心框架、中間件、總線通信服務、操作系統和底層驅動構成,其作用是為波形應用提供具有標準接口的軟硬件資源和服務,使波形應用與底層硬件解耦,一方面使平臺具有良好的擴展性,另一方面使波形軟件具有很好的移植性。
核心框架(CF,Core Framework)是整個軟件平臺的核心,為波形應用提供標準的接口和服務,并控制和管理波形應用的安裝、加卸載、配置。
2.3 MHAL通信
SCA波形組件分為兩類:一類是運行于CORBA總線的組件,部署于GPP上;另一類是DSP/FPGA上的非CORBA(non-CORBA)組件,不能直接掛接在CORBA總線上,通過CORBA適配器MHAL與CORBA組件建立通信連接[4]。CORBA組件與non-CORBA組件之間通信過程如圖2所示。
FPGA和DSP上的非CORBA組件之間也通過MHAL進行通信,每個芯片的每個通道分別配置一個MHAL設備,為波形組件屏蔽底層硬件細節,提供通信服務封裝。
DSP上每個核運行一個通道的WF-DSP波形組件,FPGA的每個重構區運行一個WF-FPGA波形組件,它們之間并不是固定的關系,通過通道配置,可以實現任意的連接關系,如DSP核0、FPGA重構區2和RF通道4組成一個通道,它們之間數據交互均由MHAL軟交換實現。
MHAL消息由IU、LD、Length和Payload四部分組成,采用小端字節序[4]。為了便于MHAL消息尋址,在MHAL消息中定義LD(Logical Destination)字段,用于識別消息的目的端。在SCA終端中,每個MHAL設備都分配唯一的LD。
三、FPGA組件設計
部署于FPGA的組件包括實現波形算法的波形組件,以及管理波形組件的重構管理組件。
3.1資源分配
FPGA選用Xilinx公司大容量XC7K325T芯片,邏輯資源、RAM和時鐘資源非常豐富,包含:203800個Slices(每個Slices包含2個觸發器和一個LUT),25740k的 FIFO16/ RAM16s,1440個DSP48E,32個GCLKs。
對將要集成的十余種波形進行統計,最大波形的資源需求量均低于該芯片的1/6,考慮到后續功能擴展,因此將FPGA資源分為數量近似的5個區塊,每個區塊邏輯資源約為600萬門。根據芯片的特點:時鐘資源BUFG分布于芯片中間,并其呈縱向排列;其它資源均勻對稱分布。因此,在FPGA四角位置設置四個重構區,中間部分設置為靜態區,這樣就能保證靜態區與四個重構區之間的邏輯通路近似相等。資源劃分如圖3所示。
上圖中,四個紫色框為動態重構區,部署波形組件。其余區域為靜態區,部署靜態邏輯,實現對四個動態區波形組件的控制、管理、部署功能,包括時鐘管理、復位管理、總線仲裁、MHAL、波形重構管理組件等。動態重構區為波形組件提供SLICE、DSP48E和RAM資源,SLICE提供組合邏輯門和時序邏輯觸發器,DSP48提供高性能數字信號處理資源,RAM則提供存儲器資源。
3.2 FPGA波形組件
FPGA波形組件實現不同波形相關的算法,處理邏輯各異。為了使在同一個重構區內部署不同的波形組件,必須統一其對外的接口和通信規范。因此,將波形組件劃分為兩部分,波形容器和波形算法邏輯,如圖4所示。波形算法邏輯與波形體制相關,在此不做描述。波形容器主要起橋接作用,對外標準化接口,對內提供波形算法所需接口。
MHAL則負責實現波形組件與其他軟硬件組件進行通信,從而達到隔離波形組件與底層硬件的目的。
波形組件與MHAL之間的接口采用標準化設計,采用數據總線實現信息交互。由于,在動態配置的波形組件內不能使用全局時鐘BUF、DCM、PLL等時鐘元件,以及三態BUF,因此,統計波形組件時序所需時鐘數量后,接口上輸入5個時鐘信號供波形邏輯使用,時鐘頻率采用片上PLL輸出,由DRP端口配置輸出不同波形所需的時鐘。接口信號如表1所示。
3.3 FPGA波形重構管理組件
FPGA波形重構管理組件主要完成以下功能:
(1)接收并解析來自PPM資源管理組件的FPGA波形配置消息幀,進行CRC校驗,如果校驗不通過,則回傳NCK;否則,將配置文件存入SRAM,回傳ACK。
(2)配置消息幀完整接收后,從SRAM中讀取配置文件,并通過ICAP配置相應的動態配置區。
(3)配置完畢后,通過DRP端口配置PLL,產生動態區波形所需時鐘信號;并產生復位信號復位動態邏輯,然后釋放復位,使波形組件正常工作。
四、局部動態重構設計
4.1生成波形庫
采用Xilinx公司的FPGA 開發工具PlanAhead[5]生成FPGA波形庫,其過程如下:
(1)使用XST綜合靜態邏輯和動態波形組件生成NGC文件;
(2)創建XPARTION.PXML文件,合并波形NGC和UCF;
(3)利用PlanAhead合成EDIF,將指定的重構區合并到靜態部分中的指定位置;
(4)調用PlanAhead生成NGD,然后進行MAP、PAR、DRC,最后生成bin文件。
采用上述方法,生成一個只包含靜態邏輯的配置文件(config_static.bin),大小為11.7Mbyte;每種波形生成4個動態配置文件(config_wfxxx_partial_0/1/2/3.bin)分別對應四個重構區塊,大小為2Mbyte左右。每個動態重構區配置波形相應的動態配置文件,即可在該動態區實現該波形功能,配置實例如圖3所示。靜態配置文件和所有波形動態配置文件一起構成了波形庫。
4.2波形重構
SCA終端波形庫存放于終端PPM的文件系統中,由資源管理組件管理和維護。當終端收到用戶控制指令,需要加載波形時,由資源管理組件從波形庫中獲取文件,通過MHALDevice發送給WPM的波形配置管理組件,實現波形動態配置,在配置期間,其它通道保持正常工作狀態不受影響。波形重構過程如下:
(1)PPM的資源管理組件根據配置通道、波形名稱從波形庫中讀取文件,然后將文件分割成若干個1Kbyte數據包,然后對每個數據計算CRC,在依次添加包序號、總包數字段,形成如下格式:
(2)資源管理組件將數據包發給MHALDevice組件,MHALDevice在數據包前添加MHAL幀頭(IU、LD、Length)形成MHAL幀,如下所示:
(3)MHALDevice將數據幀通過RIO總線發送給FPGA的MHAL,MHAL將數據幀去除MHAL幀頭后,發送給波形重構管理組件;
(4)波形重構管理組件根據包序號和包總數判重和結束包,在根據長度字段提取配置文件數據進行CRC校驗,如果校驗通過,則寫入到SRAM中,回傳ACK,通知資源管理組件接收正確,可以繼續傳輸后續包;否則回傳NAK,通知資源管理組件接收錯誤,重傳該包;
(5)循環執行上述步驟,直至配置文件傳輸完畢,波形重構管理組件接收完所有數據包后,從SRAM中讀取配置文件通過ICAP配置FPGA動態重構區。
配置成功后,波形重構管理組件根據波形種類配置PLL輸出該波形所需的工作時鐘,并復位讓其處于初始狀態,后在釋放復位恢復正常工作。
五、實驗驗證
通過部署界面下發指令,可以在SCA終端任意通道上加載、卸載所有波形。波形部署后與測試終端互通正常,在任意通道上更換波形時,其它通道均能正常通信,相互不影響。并且,波形重構時間更短,僅為傳統整體重構時間的1/5;波形庫規模更小,以10個波形為例,動態局部重構時,所需存儲空間約為92Mbyte,而采用傳統波形組合生成整體版本,則需要幾個G byte的存儲空間。因此在單片FPGA集成多通道波形時,動態局部重構方法具有明顯優勢。
六、結束語
本文針對新型體系架構多通道SCA通信終端并發應用需求,研究并提出了在SCA架構下局部重構FPGA波形的方法,并在實物環境上實現和測試驗證,其結果表明本文設計的方法有效且可行,并具有很好的工程價值,對綜合通信系統和終端的設計具有借鑒意義。
參 考 文 獻
[1] LEE PUCKER AND GEOFF HOLT. Extending the SCA Core Framework Inside the Modem Architecture of a Software Defined Radio, IEEE Radio Communications, 2004, 0163-6804.
[2] 鐘瑜,陳穎,盧建川. 新一代航空數據鏈端機的SCA 架構設計.電訊技術,2012,1001- 893X( 2012) 04- 0447- 05.
[3] SOFTWARE COMMUNICATIONS ARCHITECTURE SPECIFICATION (SCA), version 2.2.2, 2006.
[4] Modem Hardware Abstraction Layer Application Program Interface (API), Version: 2.13,2010.
[5] Xilinx. Partial Reconfiguration User Guide(UG702),2012.