呂 鵬,韓新力,官友廉
(1.中國電子科技集團公司第五十四研究所,河北 石家莊 050081;2.中國電子科技集團公司第二十二研究所,河南 新鄉(xiāng) 266107;3.中國人民解放軍75798部隊,廣東 汕頭 515063)
美軍在JTRS計劃中提出了軟件通信體系結構(Software Communication Architecture,SCA),全面制定了軟、硬件體系架構及波形API規(guī)范,并成功地進行了驗證[1]。SCA一經提出就迅速成為這一領域的研究熱點,并為SDR論壇接受,推薦為商業(yè)應用的標準。
SCA是軟件無線電技術的核心,是其開放性、靈活性和可擴展性的基本保證[2]。該技術已經在一些單板卡或者簡單的通信設備平臺上應用,并針對這些平臺設計了專用的通信協(xié)議和處理流程。尤其是信號處理系統(tǒng)(SPS),它是軟件無線電臺中非常重要的功能單元。該系統(tǒng)依靠的硬件抽象層設計主要是DSP,F(xiàn)PGA芯片,但是不僅因為芯片廠商和產品信號的多樣性,同時還有其應用的硬件平臺結構的多樣性,使其在應用的時候會出現(xiàn)各式各樣的問題[3-4]。
因此,通過VPX硬件平臺搭配專用的硬件處理器(DSP,F(xiàn)PGA),并結合SCA硬件抽象層上的DSP,F(xiàn)PGA芯片搭建一個標準的軟硬件平臺,將極大地解決平臺數據通信接口不統(tǒng)一帶來的各種應用問題。
SCA作為一種獨立于具體應用的軟件無線電體系結構[5],其實現(xiàn)目標是極大地提高通信系統(tǒng)的互操作性和使用的靈活性,便于系統(tǒng)升級和維護,能夠提高工作效率和管理成本[6]。
SCA軟件操作環(huán)境為運行于硬件平臺上的波形應用提供標準化接口和核心服務[7]。該操作環(huán)境包含符合SCA規(guī)范的核心框架,定義了開放的軟件接口、組件部署及動態(tài)配置方法、硬件抽象、軟件架構管理體系、日志服務及分布式文件系統(tǒng)等諸多要素,對嵌入式通信環(huán)境中應用組件進行配置,管理和連接。
利用SCA軟件操作環(huán)境,能夠達到基于不同的硬件平臺、不同的操作系統(tǒng)、采用不同編程語言編寫的應用程序之間互聯(lián)互通的目的,并把各種對象的屬性和操作封裝在不同的接口之中[8]。基于以上特點,用戶可以自由訪問不同異構平臺上的資源和對象,大大增強這些資源和對象的可重用性。
SCA硬件平臺結構如圖1所示,主要由射頻模塊、通用數字信號處理模塊、交換模塊、嵌入式計算機模塊和通用接口模塊組成,其主要優(yōu)點是提高了硬件模塊設計和實現(xiàn)的通用性和開放性,降低了系統(tǒng)開發(fā)的成本,節(jié)省了系統(tǒng)開發(fā)時間。
圖1 SCA硬件平臺結構Fig.1 SCA hardware platform structure diagram
具體表現(xiàn)為:
① 通用性:基于軟件無線電,采用GPP+DSP+ FPGA+AD/DA,具有良好可編程特性和動態(tài)加載功能。
② 開放性:當前主流的高速接口SRIO、以太網和PCIE等標準總線,均可接入滿足標準的、現(xiàn)有或未來的各類處理模塊之中。
③ 標準性:用API封裝底層硬件、通信通道方便應用,讓用戶專注于應用功能的實現(xiàn)。
④ 高性能性:處理器高性能,通信通道高速率、高精度,以滿足系統(tǒng)實時性等要求[9]。
現(xiàn)在主流的VPX硬件平臺主要有AD9361/AD9371射頻直采模塊或模擬信道等模擬模塊,經過ADC數字化,進入數字處理部分,包括FPGA,DSP等,最后將處理后的結果進行波形輸出。
本文在VPX平臺上通過板間運行多對串行總線和網絡拓撲架構實現(xiàn)平臺內部各個板卡間的DSP和FPGA的數據高速傳輸和處理,同時利用SCA硬件抽象層對DSP和FPGA進行“自定義”式的接口統(tǒng)型,并完成數字處理的功能。這樣就實現(xiàn)了軟硬件設備的高度標準化,方便后續(xù)各種形式的應用。該設計不僅提高了軟硬件的重用性,也極大地降低了軟硬件的聯(lián)試時間,提高了工作效率。
為了解決不同處理器之間對外接口的不同而導致的編程、聯(lián)試效率過低的問題,加載到所需硬件設備上的軟件組件接口就必須符合各自不同處理器接口要求,并通過SCA的硬件抽象層(Hardware Abstraction Layer Connectivity,HAL-C)對其進行接口的統(tǒng)一[10]。
SCA軟件操作環(huán)境如圖2所示。硬件抽象層是介于硬件平臺和運行于硬件平臺的軟件之間,用于抽象硬件單元的對外接口,并通過SCA定義的一系列標準的接口API函數,實現(xiàn)與外部單元的通信[11]。通過該方式,可以極大地降低硬件設備對軟件系統(tǒng)的依賴程度,有效緩解對各種組件重新編寫所產生的工作量,達到提高工作效率的目的。
圖2 SCA軟件操作環(huán)境Fig.2 SCA software operating environment
硬件抽象層主要是為了解決不同硬件組件間的接口的不一致性所導致的傳輸效率過低的問題,通過對硬件接口的統(tǒng)一規(guī)范,利用API函數實現(xiàn)硬件組件與外界的交互[12]。
一個標準的硬件抽象層結構主要由多個處理元件和硬件抽象層組成?,F(xiàn)在主流的VPX平臺下的數字處理單元模塊主要是由DSP組件和FPGA組件組成,其中DSP負責指令收發(fā)、數據傳輸和算法處理等功能;FPGA負責處理對接收的數據并與DSP進行數據通信的工作,其中指令和數據通信主要通過SRIO,EMIF等總線接口實現(xiàn)。
VPX數字處理單元結構如圖3所示,其中每個DSP或者FPGA組件均會包含功能模塊和對外接口模塊2部分,功能模塊為連接組件模塊,該模塊可以實現(xiàn)一些具體的功能,比如FFT、數字下變頻和濾波等單一的功能模塊,也可以是信號分析、AM解調等具體功能模塊。外接口模塊主要實現(xiàn)組件與組件或者與硬件抽象層相連層間進行指令或者數據的傳輸等交互功能,比如DSP組件與FPGA組件之間如何傳輸,采用什么總線接口等都是由對外接口模塊負責的,而功能模塊則對這些不需要關心。
圖3 VPX數字處理單元結構Fig.3 VPX digital processing unit structure diagram
設計DSP硬件抽象層的目的是為在包含DSP的SCA硬件平臺上實現(xiàn)不同計算單元上組件間管理的統(tǒng)一性和通信的標準化,為不同計算單元上波形軟件和平臺軟件之間的組件級通信提供標準的協(xié)議和接口,最大限度提高波形應用在不同硬件平臺上的可移植性和重用性[13]。
由于DSP支持C++的編程,并且在現(xiàn)實的設計中,使用需求靈活、通道資源復雜,因此采取利用嵌入式操作系統(tǒng),同時結合標準SCA編程相結合的方式。在建立DSP組件時,通過界面化的方式選擇DSP的組件類型,生成對應模塊類的.cpp和.h文件(比如FFT類)。創(chuàng)建后,類文件中會自動生成其類的構造函數,析構函數,建立、刪除、運行、停止及釋放等功能標準的接口函數,將所需要運行的各個功能和算法依次對應地填加到相應的函數中即可。例如地址的申請,初始化參數可以添加到構造函數或者建立函數中,每次運行的算法添加到運行函數中,地址的釋放添加到釋放函數中等。通過以上設置可以方便快捷地調試和驗證算法的正確性。
為了便于硬件抽象層DSP軟件模塊的設計,軟件編程人員在不需要知道軟件功能模塊與DSP外部交互接口的情況下,可以通過DSP操作系統(tǒng)對與DSP關聯(lián)的硬件驅動進行SCA標準的封裝,將不同的芯片驅動進行功能性的API函數封裝[14]。同時針對不同的通信總線,比如EMIF、千兆網和SRIO等進行標準、統(tǒng)一封裝,讓使用者可以在不了解總線的情況下,只要根據所需接收發(fā)送數據速率的要求就可以進行API函數的調用,實現(xiàn)DSP與外部組件的交互。
由于FPGA和DSP在執(zhí)行數字信號處理功能在模式上不同,運行于FPGA上的波形組件的開發(fā)不像DSP一樣支持C++函數,大多需要用VHDL等硬件描述語言進行開發(fā)[15]。FPGA開發(fā)組件模型如圖4所示,主要由提供者端口、使用者端口、事件信源和事件信宿組成。事件信源和事件信宿主要是組件間利用事件進行通信,除事件外的其余通信方式均由可提供者端口和使用者端口實現(xiàn)。當2個FPGA組件之間進行通信時,一個為事件信源,另一個為事件信宿,事件信源和事件信宿間的信號線一一對應,或者一個為提供者端口,另一個為使用者端口,提供者端口和使用者端口間的信號線一一對應。這些信號線運行在硬件抽象層,由一組標準、統(tǒng)一的接口組成。FPGA的硬件抽象層通過這些標準的接口實現(xiàn)對底層驅動的屏蔽以及完成與其他組件的交互。
圖4 FPGA組件模型Fig.4 FPGA component model
信號線完成了硬件抽象層基本信號的定義,如表1所示。通過這12個信號可以完成幾乎所有的FPGA內在的功能模塊和對外接口的編寫,這樣編寫的組件可以在無需修改的情況下移植到另一個平臺。既降低了開發(fā)的復雜度,提升了工作效率,又方便利用FPGA進行后期波形處理。
表1 FPGA硬件抽象層信號定義
Tab.1 FPGA hardware abstract layer signal definition
序號信號定義信號說明1XXX_CLK時鐘信號2XXX_Reset復位信號3XXX_WR_EN寫使能4XXX_RD_EN讀使能5XXX_Addr地址6XXX_InvaildAddr無效地址7XXX_Data數據8XXX_vaildData數據有效使能9XXX_Event事件10XXX_Keep有效/無效字節(jié)數11XXX_Lens長度12XXX_Sel片選
VPX平臺下SCA硬件抽象層設計是在SCA4.0協(xié)議的基礎上,介紹了VPX硬件平臺,并在SCA的硬件抽象層上對DSP和FPGA進行組件化編程,最后通過SCA協(xié)議標準對它們進行內在模塊和對外接口的封裝,使其具有更好的可重用性、可移植性及可操作性。不僅減少了程序的開發(fā)難度,而且縮短了接口的聯(lián)試時間,為后續(xù)算法模塊的開發(fā)、移植及調試起到了極大推動作用。同時結合嵌入式操作系統(tǒng)對DSP類的編寫,使DSP編程變得更加簡單易用,有效提高了軟件模塊的開發(fā)效率。