(廣州海格通信集團股份有限公司 廣州 510663)
波形軟件具有可移植性是軟件無線電的重要優(yōu)勢[1],是軟件通信體系結(jié)構(gòu)(SCA)規(guī)范期望達到的最基本的目的之一,是在SCA 硬件平臺上實現(xiàn)不同體制之間互連、互通和互操作的技術(shù)前提[2]。
目前主流的無線通信波形都被劃分為物理層、接入層、鏈路層以及網(wǎng)絡(luò)層四個部分,而SCA 硬件平臺常用的架構(gòu)是DSP+FPGA+GPP的模式[3],一般來說,物理層是部署在DSP和FPGA 上,接入層是部署在DSP 上,鏈路層和網(wǎng)絡(luò)層則是部署在GPP上。作為無線通信信號處理的核心器件,DSP承載了最重要的一部分算法,而由于它必須兼顧信號處理的實時性以及SCA 架構(gòu)的靈活性,因此DSP軟件的可移植性也是SCA 中較為復(fù)雜的一部分工作。
一個完整的基于SCA 架構(gòu)的DSP 軟件可以分為五個部分:軟件框架、硬件驅(qū)動庫、硬件抽象層、操作系統(tǒng)、波形組件。它們之間的相互關(guān)系如圖1所示。
圖1 基于SCA 架構(gòu)的DSP軟件組成
操作系統(tǒng)提供了各類線程和信號量支持,為硬件抽象層和波形組件的運行提供了必要的軟件環(huán)境。對于Ti的DSP芯片而言,目前可以支持的操作系統(tǒng)是Ti自己開發(fā)的嵌入式實時操作系統(tǒng)DSP/BIOS。一般來說,這一部分是不需要用戶開發(fā)的,Ti公司已經(jīng)提供了完整的DSP/BIOS 軟件包以及常用的API函數(shù)。開發(fā)者可以根據(jù)需要建立各類不同功能的硬中斷、軟中斷、任務(wù)以及后臺線程[4~5]。
硬件驅(qū)動庫的意義在于對于軟件開發(fā)人員屏蔽繁瑣的硬件操作、寄存器配置等工作。針對DSP芯片上的外設(shè)或其它可配置功能的API庫,包括對DMA、定時器、TCP、VCP、HPI、EMIF、GPIO、PCI、McBSP 等模塊的初始化、參數(shù)配置以及使用[6]。
軟件框架本身不是實現(xiàn)波形功能所必需的,它的作用是為硬件抽象層和波形組件的集成提供一個軟件環(huán)境,包括數(shù)據(jù)流、控制流、接口定義以及調(diào)用關(guān)系等。
硬件抽象層通過屏蔽硬件平臺的底層傳輸機制、封裝標(biāo)準(zhǔn)的通信接口,實現(xiàn)波形組件間通信方式與具體硬件平臺的分離,保持波形組件底層通信訪問接口的一致性,從而易于在異構(gòu)硬件平臺間移植波形組件,提高了波形應(yīng)用的跨平臺可移植性[7]。
波形組件是對軟件功能模塊進行的面向?qū)ο蟮姆庋b,它具有便于描述、便于集成、便于移植的特點[8]。一般來說,可以根據(jù)無線通信分層上來對組件進行劃分,結(jié)合通信設(shè)備實際的接口功能,可以將一個完整的無線通信系統(tǒng)劃分為射頻控制設(shè)備、中頻處理設(shè)備、基帶協(xié)處理組件、基帶處理組件、接入層組件、鏈路層組件、網(wǎng)絡(luò)層組件、安全密碼設(shè)備、波形管理設(shè)備以及IO 設(shè)備等。這樣劃分的好處是對每一層而言,都有明確的功能和接口定義,便于對象化和組件化,而且從劃分粒度上來說比較適中。
硬件抽象層采用分層架構(gòu)模式,共分為接口交互層、邏輯層和驅(qū)動層。其中接口交互層提供了與上層組件(如波形組件,波形管理組件等)進行數(shù)據(jù)交互的接口和協(xié)議,如MOCB 接口等[9]。邏輯層負(fù)責(zé)使用驅(qū)動層提供的操作,從而實現(xiàn)硬件抽象層對上層組件提供的服務(wù)。驅(qū)動層負(fù)責(zé)提供對實體(共享內(nèi)存等)的獨立的單一功能的操作。
根據(jù)功能將DSP的硬件抽象層劃分為若干模塊,其中外部接口模塊統(tǒng)一提供對上層的服務(wù)接口,如讀數(shù)據(jù)接口、寫數(shù)據(jù)接口??刂乒芾砟K提供對硬件抽象層的相關(guān)控制服務(wù)。路由表維護模塊提供了表輸入和表查詢等對注冊有系統(tǒng)和波形相關(guān)參數(shù)的表的操作接口。數(shù)據(jù)傳輸管理模塊提供了數(shù)據(jù)接收和數(shù)據(jù)發(fā)送的接口,該模塊是實現(xiàn)數(shù)據(jù)傳輸服務(wù)的關(guān)鍵模塊。事件模塊提供了一個中斷設(shè)置的內(nèi)部接口和一個中斷響應(yīng)函數(shù)的外部接口。通過事件驅(qū)動可以輔助完成數(shù)據(jù)的傳輸,通過設(shè)置不同的事件可以實現(xiàn)多種類型的數(shù)據(jù)傳輸。存儲區(qū)管理模塊提供了寫數(shù)據(jù)和讀數(shù)據(jù)接口,主要功能在于調(diào)用底層的驅(qū)動進行數(shù)據(jù)交互操作。各個模塊之間的功能以及調(diào)用關(guān)系如圖3所示。
圖2 DSP硬件抽象層分層架構(gòu)
圖3 DSP硬件抽象層內(nèi)部模塊接口調(diào)用關(guān)系圖
通常硬件抽象層會要求波形組件將LD 號與某個信號量綁定,運行過程中硬件抽象層通過該信號量來通知波形組件一個讀或者寫操作的完成。對于波形組件來說,則需要使用操作系統(tǒng)API建立一個進程來等待讀或者寫操作的通知。在某些特殊條件下,為了提高波形組件的反應(yīng)速度,則需要硬件抽象層通過硬中斷或軟中斷來通知波形組件。在另一種極端情況下,波形組件則可以在后臺線程中去輪詢來自于硬件抽象層的通知。
硬件抽象層最重要的就是實現(xiàn)DSP內(nèi)部的組件對其它芯片上的組件的讀寫操作,為了對組件屏蔽硬件信息,硬件抽象層以LD 號來映射實際物理地址并提供給波形使用。根據(jù)組件能夠感知的性能將讀寫分別劃分為阻塞式和非阻塞式兩種類型,以讀操作為例,可分為ReadWait和ReadNoWait兩個函數(shù),這兩種操作流程如圖4所示。
圖4 阻塞式讀流程
圖5 非阻塞式讀流程
可以看出,非阻塞式的操作可以實現(xiàn)DMA 和CPU 的并行工作,能夠提高軟件的運行效率,這在嵌入式實時處理軟件中是非常有意義的。但是非阻塞的操作要求操作系統(tǒng)提供信號量或中斷等異步機制,會增加系統(tǒng)設(shè)計的復(fù)雜度,實際設(shè)計的時候需要綜合考慮。
實現(xiàn)波形的組件化的首要工作是對波形進行組件劃分,一般來說按照分層結(jié)構(gòu)可以將組件劃分為基帶協(xié)處理組件、基帶處理組件、媒體接入組件、邏輯鏈路組件以及無線網(wǎng)絡(luò)組件,如圖5所示,其中射頻中頻設(shè)備和安全密碼設(shè)備一般作為硬件平臺的一部分,不屬于波形的范疇。
圖6 無線通信系統(tǒng)組件劃分
假設(shè)某無線通信系統(tǒng)中,基帶處理組件實現(xiàn)的功能包括信道編碼、調(diào)制解調(diào)、信道交織和解交織、信號同步、信道估計、均衡等,則基帶處理組件的端口示意如圖6所示,這里的User一般為相鄰的媒體接入組件和基帶協(xié)處理組件。
圖7 基帶處理組件端口示意圖
其中,BBProcDataConsumer接口繼承自Packet:PayloadStatus接口,同時自定義了一個pushPacket函數(shù),該接口被鏈路控制組件調(diào)用,使基帶處理組件獲得下行數(shù)據(jù)。同時,在媒體接入組件上也應(yīng)實現(xiàn)一個BBProcDataConsumer接口,用于接收基帶處理組件發(fā)送過來的上行數(shù)據(jù)。pushPacket函數(shù)的原型為pushPacket(in CF::OctetSequence payload)。
BBProcDataProducer接口繼承自Packet::PayloadControl接口,與BBProcDataConsumer接口配合使用,為用戶提供設(shè)置傳輸分組長度的功能。圖7列出了基帶處理組件實現(xiàn)的主要API。
圖8 基帶處理組件API接口定義
SCA作為一種先進的通用通信平臺體系架構(gòu),已成為業(yè)界實現(xiàn)軟件無線電平臺可重構(gòu)、可移植的重要突破點。其中硬件抽象層則是最核心也最復(fù)雜的一部分,雖然在美軍標(biāo)中對于硬件抽象層有詳細的定義和說明,但是由于差異性,不可能照搬美軍標(biāo)中的相關(guān)內(nèi)容,根據(jù)我軍通信需求和現(xiàn)有通信體制,制定適應(yīng)實際情況的SCA 標(biāo)準(zhǔn)對其實際應(yīng)用有至關(guān)重要的意義,并最終影響裝備的設(shè)計和使用模式。目前,這方面的工作仍有待進一步探索。
[1]范建華,呂遵明.可移植波形軟件設(shè)計與實現(xiàn)研究[J].現(xiàn)代軍事通信,2006(14):17-20.
[2]SCA 規(guī)范對我軍戰(zhàn)術(shù)無線通信系統(tǒng)發(fā)展的影響[J].現(xiàn)代軍事通信,2006(14):44-49.
[3]邱永紅,王庭昌,范建華,等.無線通信系統(tǒng)模塊信息化設(shè)計標(biāo)準(zhǔn)體系的研究[J].解放軍理工大學(xué)學(xué)報(自然科學(xué)版),2003(2):11-16.
[4]德州儀器公司.TMS320的DSP/BIOS用戶指南,2004(4).
[5]德州儀器公司.TMS320的DSP/BIOS應(yīng)用編程接口參考指南,2004(4).
[6]德州儀器公司.TMS320C6000 外設(shè)參考指南,2002(2).
[7]中國人民解放軍總裝備部.GJB 5082-2004.戰(zhàn)術(shù)無線通信系統(tǒng)軟件通信體系結(jié)構(gòu)[S].北京:總裝備部軍標(biāo)出版發(fā)行部,2004-05.
[8]劉獻科,張棟嶺,陳涵生.軟件定義無線電及軟件通信體系結(jié)構(gòu)規(guī)范[J].計算機工程,2004(1):95-96.
[9]黃耕文,孟堅,劉建軍,等.基于SCA 的高速數(shù)據(jù)波形設(shè)計與實現(xiàn)[J].現(xiàn)代軍事通信,2006(14):37-40.