(廣州海格通信集團股份有限公司 廣州 510663)
波形軟件具有可移植性是軟件無線電的重要優勢[1],是軟件通信體系結構(SCA)規范期望達到的最基本的目的之一,是在SCA 硬件平臺上實現不同體制之間互連、互通和互操作的技術前提[2]。
目前主流的無線通信波形都被劃分為物理層、接入層、鏈路層以及網絡層四個部分,而SCA 硬件平臺常用的架構是DSP+FPGA+GPP的模式[3],一般來說,物理層是部署在DSP和FPGA 上,接入層是部署在DSP 上,鏈路層和網絡層則是部署在GPP上。作為無線通信信號處理的核心器件,DSP承載了最重要的一部分算法,而由于它必須兼顧信號處理的實時性以及SCA 架構的靈活性,因此DSP軟件的可移植性也是SCA 中較為復雜的一部分工作。
一個完整的基于SCA 架構的DSP 軟件可以分為五個部分:軟件框架、硬件驅動庫、硬件抽象層、操作系統、波形組件。它們之間的相互關系如圖1所示。

圖1 基于SCA 架構的DSP軟件組成
操作系統提供了各類線程和信號量支持,為硬件抽象層和波形組件的運行提供了必要的軟件環境。對于Ti的DSP芯片而言,目前可以支持的操作系統是Ti自己開發的嵌入式實時操作系統DSP/BIOS。一般來說,這一部分是不需要用戶開發的,Ti公司已經提供了完整的DSP/BIOS 軟件包以及常用的API函數。開發者可以根據需要建立各類不同功能的硬中斷、軟中斷、任務以及后臺線程[4~5]。
硬件驅動庫的意義在于對于軟件開發人員屏蔽繁瑣的硬件操作、寄存器配置等工作。針對DSP芯片上的外設或其它可配置功能的API庫,包括對DMA、定時器、TCP、VCP、HPI、EMIF、GPIO、PCI、McBSP 等模塊的初始化、參數配置以及使用[6]。
軟件框架本身不是實現波形功能所必需的,它的作用是為硬件抽象層和波形組件的集成提供一個軟件環境,包括數據流、控制流、接口定義以及調用關系等。
硬件抽象層通過屏蔽硬件平臺的底層傳輸機制、封裝標準的通信接口,實現波形組件間通信方式與具體硬件平臺的分離,保持波形組件底層通信訪問接口的一致性,從而易于在異構硬件平臺間移植波形組件,提高了波形應用的跨平臺可移植性[7]。
波形組件是對軟件功能模塊進行的面向對象的封裝,它具有便于描述、便于集成、便于移植的特點[8]。一般來說,可以根據無線通信分層上來對組件進行劃分,結合通信設備實際的接口功能,可以將一個完整的無線通信系統劃分為射頻控制設備、中頻處理設備、基帶協處理組件、基帶處理組件、接入層組件、鏈路層組件、網絡層組件、安全密碼設備、波形管理設備以及IO 設備等。這樣劃分的好處是對每一層而言,都有明確的功能和接口定義,便于對象化和組件化,而且從劃分粒度上來說比較適中。
硬件抽象層采用分層架構模式,共分為接口交互層、邏輯層和驅動層。其中接口交互層提供了與上層組件(如波形組件,波形管理組件等)進行數據交互的接口和協議,如MOCB 接口等[9]。邏輯層負責使用驅動層提供的操作,從而實現硬件抽象層對上層組件提供的服務。驅動層負責提供對實體(共享內存等)的獨立的單一功能的操作。
根據功能將DSP的硬件抽象層劃分為若干模塊,其中外部接口模塊統一提供對上層的服務接口,如讀數據接口、寫數據接口。控制管理模塊提供對硬件抽象層的相關控制服務。路由表維護模塊提供了表輸入和表查詢等對注冊有系統和波形相關參數的表的操作接口。數據傳輸管理模塊提供了數據接收和數據發送的接口,該模塊是實現數據傳輸服務的關鍵模塊。事件模塊提供了一個中斷設置的內部接口和一個中斷響應函數的外部接口。通過事件驅動可以輔助完成數據的傳輸,通過設置不同的事件可以實現多種類型的數據傳輸。存儲區管理模塊提供了寫數據和讀數據接口,主要功能在于調用底層的驅動進行數據交互操作。各個模塊之間的功能以及調用關系如圖3所示。

圖2 DSP硬件抽象層分層架構

圖3 DSP硬件抽象層內部模塊接口調用關系圖
通常硬件抽象層會要求波形組件將LD 號與某個信號量綁定,運行過程中硬件抽象層通過該信號量來通知波形組件一個讀或者寫操作的完成。對于波形組件來說,則需要使用操作系統API建立一個進程來等待讀或者寫操作的通知。在某些特殊條件下,為了提高波形組件的反應速度,則需要硬件抽象層通過硬中斷或軟中斷來通知波形組件。在另一種極端情況下,波形組件則可以在后臺線程中去輪詢來自于硬件抽象層的通知。
硬件抽象層最重要的就是實現DSP內部的組件對其它芯片上的組件的讀寫操作,為了對組件屏蔽硬件信息,硬件抽象層以LD 號來映射實際物理地址并提供給波形使用。根據組件能夠感知的性能將讀寫分別劃分為阻塞式和非阻塞式兩種類型,以讀操作為例,可分為ReadWait和ReadNoWait兩個函數,這兩種操作流程如圖4所示。

圖4 阻塞式讀流程

圖5 非阻塞式讀流程
可以看出,非阻塞式的操作可以實現DMA 和CPU 的并行工作,能夠提高軟件的運行效率,這在嵌入式實時處理軟件中是非常有意義的。但是非阻塞的操作要求操作系統提供信號量或中斷等異步機制,會增加系統設計的復雜度,實際設計的時候需要綜合考慮。
實現波形的組件化的首要工作是對波形進行組件劃分,一般來說按照分層結構可以將組件劃分為基帶協處理組件、基帶處理組件、媒體接入組件、邏輯鏈路組件以及無線網絡組件,如圖5所示,其中射頻中頻設備和安全密碼設備一般作為硬件平臺的一部分,不屬于波形的范疇。

圖6 無線通信系統組件劃分
假設某無線通信系統中,基帶處理組件實現的功能包括信道編碼、調制解調、信道交織和解交織、信號同步、信道估計、均衡等,則基帶處理組件的端口示意如圖6所示,這里的User一般為相鄰的媒體接入組件和基帶協處理組件。

圖7 基帶處理組件端口示意圖
其中,BBProcDataConsumer接口繼承自Packet:PayloadStatus接口,同時自定義了一個pushPacket函數,該接口被鏈路控制組件調用,使基帶處理組件獲得下行數據。同時,在媒體接入組件上也應實現一個BBProcDataConsumer接口,用于接收基帶處理組件發送過來的上行數據。pushPacket函數的原型為pushPacket(in CF::OctetSequence payload)。
BBProcDataProducer接口繼承自Packet::PayloadControl接口,與BBProcDataConsumer接口配合使用,為用戶提供設置傳輸分組長度的功能。圖7列出了基帶處理組件實現的主要API。

圖8 基帶處理組件API接口定義
SCA作為一種先進的通用通信平臺體系架構,已成為業界實現軟件無線電平臺可重構、可移植的重要突破點。其中硬件抽象層則是最核心也最復雜的一部分,雖然在美軍標中對于硬件抽象層有詳細的定義和說明,但是由于差異性,不可能照搬美軍標中的相關內容,根據我軍通信需求和現有通信體制,制定適應實際情況的SCA 標準對其實際應用有至關重要的意義,并最終影響裝備的設計和使用模式。目前,這方面的工作仍有待進一步探索。
[1]范建華,呂遵明.可移植波形軟件設計與實現研究[J].現代軍事通信,2006(14):17-20.
[2]SCA 規范對我軍戰術無線通信系統發展的影響[J].現代軍事通信,2006(14):44-49.
[3]邱永紅,王庭昌,范建華,等.無線通信系統模塊信息化設計標準體系的研究[J].解放軍理工大學學報(自然科學版),2003(2):11-16.
[4]德州儀器公司.TMS320的DSP/BIOS用戶指南,2004(4).
[5]德州儀器公司.TMS320的DSP/BIOS應用編程接口參考指南,2004(4).
[6]德州儀器公司.TMS320C6000 外設參考指南,2002(2).
[7]中國人民解放軍總裝備部.GJB 5082-2004.戰術無線通信系統軟件通信體系結構[S].北京:總裝備部軍標出版發行部,2004-05.
[8]劉獻科,張棟嶺,陳涵生.軟件定義無線電及軟件通信體系結構規范[J].計算機工程,2004(1):95-96.
[9]黃耕文,孟堅,劉建軍,等.基于SCA 的高速數據波形設計與實現[J].現代軍事通信,2006(14):37-40.