陳 星,周勝源,江春燕
(桂林電子科技大學(xué) 信息與通信學(xué)院,廣西 桂林 541004)
軟件無(wú)線電是一個(gè)無(wú)線通信系統(tǒng)(從低容量的移動(dòng)電話到高容量的多信道無(wú)線電臺(tái))。在這個(gè)系統(tǒng)中,可通過(guò)在靈活的信號(hào)處理硬件上運(yùn)行專(zhuān)業(yè)的軟件來(lái)實(shí)現(xiàn)專(zhuān)用的通信和傳輸特性[1]。它和傳統(tǒng)依靠單一的硬件非常不同,其好處是可復(fù)用或共享單一系統(tǒng)平臺(tái)來(lái)完成多種通信目的。實(shí)際上,在底層硬件物理限制內(nèi),任何通信任務(wù)都可以通過(guò)加載軟件來(lái)實(shí)現(xiàn),包括廣泛的領(lǐng)域升級(jí)和維護(hù)。
SCA的出現(xiàn)使得軟件無(wú)線電的民用成為現(xiàn)實(shí),SCA是通信平臺(tái)組件可移植性、可交換性、互用性、軟件可重用性、體系結(jié)構(gòu)可擴(kuò)展性的一個(gè)標(biāo)準(zhǔn),這個(gè)標(biāo)準(zhǔn)主要體現(xiàn)在以下4個(gè)方面[2]:1)使移植費(fèi)用降到最低;2)使一個(gè)波形應(yīng)用在不同廠商的多個(gè)平臺(tái)(比如操作系統(tǒng)、硬件、主機(jī)環(huán)境)上能實(shí)現(xiàn)最大無(wú)縫移植;3)多使用和重用即插即用組件來(lái)建立波形;4)支持通信平臺(tái)體系結(jié)構(gòu)可擴(kuò)展性,這樣從手持到基站都使用同樣的體系結(jié)構(gòu)。
SCA的開(kāi)發(fā)主要包括以下3點(diǎn):1)核心框架的設(shè)計(jì),核心框架是SCA系統(tǒng)的核心,通常選用成熟的核心框架產(chǎn)品,而不是開(kāi)發(fā)新的核心框架實(shí)現(xiàn);2)設(shè)備節(jié)點(diǎn)開(kāi)發(fā)和波形應(yīng)用開(kāi)發(fā);3)系統(tǒng)集成,主要是把上兩步中的核心框架和設(shè)備節(jié)點(diǎn),波形應(yīng)用集成到一個(gè)系統(tǒng)。
在SCA體系結(jié)構(gòu)中,Node(節(jié)點(diǎn))是指注冊(cè)在同一個(gè)Device Manager(設(shè)備管理器)上的一系列Device(邏輯設(shè)備),包括GPP,DSP,F(xiàn)PGA,聲卡等。一個(gè)實(shí)際的基于SCA的軟件無(wú)線電電臺(tái),是由一個(gè)或多個(gè)節(jié)點(diǎn)構(gòu)成的,每個(gè)節(jié)點(diǎn)包含一個(gè)設(shè)備管理器,管理本節(jié)點(diǎn)內(nèi)的所有設(shè)備和服務(wù),完成相應(yīng)的功能。圖1所示為SCA節(jié)點(diǎn)設(shè)計(jì)框圖。
圖1 SCA節(jié)點(diǎn)設(shè)計(jì)框圖
整個(gè)軟件無(wú)線電電臺(tái)由圖1中虛線框中所示的實(shí)際硬件設(shè)備構(gòu)成[3],按SCA規(guī)范分為Device(如I/O設(shè)備,聲卡設(shè)備等),Loadable Device(可加載設(shè)備)和Executable Device(可執(zhí)行設(shè)備)3類(lèi)。SCA節(jié)點(diǎn)運(yùn)行在Executable Device上。然后對(duì)組件進(jìn)行封裝:對(duì)每一個(gè)Device組件,都需要根據(jù)SCA體系里規(guī)定的API完成所有的實(shí)現(xiàn),然后對(duì)文件進(jìn)行編譯,最后設(shè)計(jì)邏輯設(shè)備的各種端口(Port)以實(shí)現(xiàn)與其他組件之間的數(shù)據(jù)通信。
一個(gè)設(shè)備組件的設(shè)計(jì)工作包括兩大部分:一是設(shè)備組件的API(應(yīng)用程序編程接口)實(shí)現(xiàn),二是組件的端口和屬性設(shè)計(jì)。接下來(lái)將按照這兩個(gè)方面介紹ARM組件的設(shè)計(jì)。表1給出了ARM組件端口與屬性設(shè)計(jì)。
表1 ARM組件端口與屬性設(shè)計(jì)
根據(jù)可執(zhí)行設(shè)備在SCA體系中的繼承關(guān)系,結(jié)合系統(tǒng)設(shè)計(jì),得到所需的設(shè)備組件API,并逐步實(shí)現(xiàn)所有的接口。然后,根據(jù)設(shè)備的功能需求以及動(dòng)態(tài)調(diào)整設(shè)備屬性等需要,完成對(duì)該設(shè)備組件的端口和屬性的設(shè)計(jì)。按照SCA標(biāo)準(zhǔn),ARM API如圖2所示。邏輯設(shè)備接口(Device)是實(shí)際硬件的邏輯設(shè)備,它需要根據(jù)SCA體系里規(guī)定的API完成所有的實(shí)現(xiàn),通過(guò)API與時(shí)間的硬件設(shè)備通信。再通過(guò)LoadDevice來(lái)加載執(zhí)行設(shè)備,ARM處理器屬于執(zhí)行設(shè)備。在設(shè)計(jì)中需要注意組件的屬性和操作,應(yīng)根據(jù)其API詳細(xì)分析,這將直接影響上層波形應(yīng)用對(duì)底層硬件的操作[4]。
圖2 ARM API
作為SCA系統(tǒng)的一個(gè)邏輯設(shè)備,它需要有各種端口(Port)以實(shí)現(xiàn)與其他組件之間的數(shù)據(jù)通信,以及各種屬性(Property),以便在系統(tǒng)運(yùn)行階段實(shí)現(xiàn)動(dòng)態(tài)調(diào)整組件乃至整個(gè)波形的功能??蓤?zhí)行組件主要用于在其上運(yùn)行其他設(shè)備代理以及波形組件,它無(wú)需與其他組件進(jìn)行直接的數(shù)據(jù)通信,所以不需要為它設(shè)計(jì)輸入輸出的端口,只需要保留與SCA體系里相關(guān)服務(wù)的連接端口。
本文給出了具有SCA功能的軟件無(wú)線電平臺(tái)中核心設(shè)備ARM處理器的設(shè)備組件設(shè)計(jì)[5],通過(guò)對(duì)其進(jìn)行組件封裝,使得CF可以通過(guò)邏輯設(shè)備的相關(guān)API控制實(shí)際設(shè)備的行為,以完成整個(gè)系統(tǒng)預(yù)定的功能,SCA系統(tǒng)中波形應(yīng)用通過(guò)設(shè)備組件以透明的方式使用硬件設(shè)備提供的功能。當(dāng)然還有很多組件需要封裝設(shè)計(jì),如DSP,F(xiàn)PGA,聲卡等,通過(guò)這些設(shè)計(jì)可以保證無(wú)線電平臺(tái)上波形應(yīng)用實(shí)現(xiàn)在不同操作系統(tǒng)和各種調(diào)制方式間進(jìn)行移植[6]。
[1]Neli Hayes.The JTRS SCA specification-the past,the present,and the future[A].The Boeing Company,2005.
[2]John Bard,Vincent J,Kovarik Jr.Software defined radio[M].The Software Communications Architecture,2007.
[3]Walter Tuttlebee.軟件無(wú)線電技術(shù)與實(shí)現(xiàn)[M].北京:電子工業(yè)版社,2004.
[4]Modular Software-programmable Radio Consortium.Software communication architecture specification (Version 2.2)[S].Washington:JTRS Joint Program Office,2001.
[5]TI.TMS320DM6446 digital media system-on-chip[EB/OL].(2008-03-20)[2010-01-20].http://focus.ti.com/lit/ds/symlink/tms320dm6446.pdf.
[6]Sabri Murat Bicer.A software communications architecture compliant software defined radio implementation[A].Northeastern University Boston,2002.