找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2307|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

軟件無線電的FPGA軟件體系結(jié)構(gòu)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:715478 發(fā)表于 2020-3-25 14:35 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
為了解決在 FPGA 上實(shí)現(xiàn)波形可移植性的問題,本文首先提出了一種基于 FPGA 的波形可移植性設(shè)計(jì)方法。在 FPGA 上實(shí)現(xiàn)了抽象層平臺的結(jié)構(gòu)化,進(jìn)而改進(jìn)了標(biāo)準(zhǔn)的消息格式。最后,本文討論了連接模型對硬件抽象層的影響,平臺的資源消耗及工作效率,并進(jìn)行抽象層比較多對一的連接模型與一對一的連接模型,得出的結(jié)論是,一對一連接模式更合適,F(xiàn)PGA 上的抽象層平臺完全解決了波形可移植性這個問題,包括大大降低成本的軟件定義開發(fā)無線電系統(tǒng),提高軟件無線電系統(tǒng)的可重構(gòu)性。                                       

  • 引言
軟件無線電的概念是由 Joe Mitola 于1992年提出的,目的是提供一個支持多信道、多標(biāo)準(zhǔn)的可重構(gòu)通信平臺。軟件無線電的主要思想是構(gòu)建一個開放、標(biāo)準(zhǔn)化、模塊化的通用硬件平臺,通過加載不同的波形實(shí)現(xiàn)不同的通信模式和功能。波形的可移植性可以降低系統(tǒng)開發(fā)成本,有效地提高平臺的可重構(gòu)性,因此波形的可移植性一直是軟件無線電系統(tǒng)開發(fā)者追求的目標(biāo)。
隨著高速數(shù)字信號處理技術(shù)的發(fā)展,F(xiàn)PGA 在軟件無線電系統(tǒng)中得到了廣泛的應(yīng)用。 文獻(xiàn)[1]中提出的軟件通信體系結(jié)構(gòu)(SCA) ,使用CORBA 中間件有效地解決了通用處理器(GPP)上的波形可移植性問題,但 CORBA 是一種適用于 GPP 的技術(shù),目前在 FPGA 上的應(yīng)用較少。 目前,F(xiàn)PGA 的波形可移植性問題已成為國內(nèi)外研究的熱點(diǎn)。
為了解決軟件無線電波形在 FPGA 上的可移植性問題,提出了軟件無線電波形可移植性的軟件體系結(jié)構(gòu),以滿足軟件無線電波形可移植性的要求。該結(jié)構(gòu)的核心思想是在波形和硬件平臺之間建立一個抽象層平臺。 Pal 為波形提供了一個標(biāo)準(zhǔn)的、即時的執(zhí)行期函式庫,屏蔽了硬件的差異,從而實(shí)現(xiàn)了波形的可移植性。
2. 背景和相關(guān)工作

波形可移植性可以定義為將同一波形從一個平臺移植到另一個平臺的能力,而平臺的可重構(gòu)性對應(yīng)于 SDR 平臺承載不同波形的能力,如圖1所示。 從圖1可以很容易地得出這樣的結(jié)論: 如果在平臺和波形之間可以實(shí)現(xiàn) PAL 制,從而消除了平臺和波形之間的耦合,不僅可以實(shí)現(xiàn)波形的可移植性,而且可以實(shí)現(xiàn)平臺的可重構(gòu)性。 Pal 為波形提供了標(biāo)準(zhǔn)的執(zhí)行期函式庫,執(zhí)行期函式庫指的是周圍的執(zhí)行環(huán)境,包括三個方面: 1)調(diào)用和控制組件; 2)提供本地服務(wù)和3)標(biāo)準(zhǔn)的通信環(huán)境。
圖1.  a)可移植性概念圖; b)可重構(gòu)性概念圖
基于這一思想,硬件抽象層層連接(HAL-C)的概念在參考文獻(xiàn)[2]中被提出。 定義了波形和平臺之間的通信接口原型,標(biāo)準(zhǔn)化了波形和平臺之間的通信環(huán)境,但是由于上述通信環(huán)境只是波形執(zhí)行期函式庫的一部分,因此,硬件抽象層層的連接只是部分解決了波形在 FPGA 上的可移植性問題。 2005年5月下旬,JPO 發(fā)布了專用硬件處理器組件可移植性擴(kuò)展(Extension for component portability for Specialized Hardware Processors,SHP)-Change Proposal 289(CP289)[3] ,并提出了容器的概念。波形可移植性可以通過實(shí)現(xiàn)一個提供即時運(yùn)行時的容器來實(shí)現(xiàn)在 FPGA 上實(shí)現(xiàn)波形環(huán)境。 這個想法很好,但是如何設(shè)計(jì)容器結(jié)構(gòu)和如何提供一個標(biāo)準(zhǔn)的執(zhí)行期函式庫仍然是一個問題,CP289不能解決這個問題。 目前相關(guān)的研究集中在如何實(shí)現(xiàn)硬件抽象層層連接上,Eric 為 DSP 提出了一種 PAL 結(jié)構(gòu),但這種結(jié)構(gòu)并不適合 FPGA。
  • 平臺抽象層
3.1. 結(jié)構(gòu)
Fpga 的 PAL 制式結(jié)構(gòu)如圖2所示。 Pal 制式由互連模塊、消息解析模塊、消息打包模塊、設(shè)備 IO 驅(qū)動程序的消息接收模塊、設(shè)備 IO 驅(qū)動程序的消息發(fā)送模塊和本地服務(wù)模塊組成。 每個 FPGA 芯片都有一個平臺抽象。
圖2. 平臺抽象層結(jié)構(gòu)
設(shè)備 IO 驅(qū)動程序的消息接收模塊從物理信道接收消息,不同的物理信道對應(yīng)于設(shè)備 IO 驅(qū)動程序的不同消息接收模塊。 設(shè)備 IO 驅(qū)動程序的消息發(fā)送模塊向物理信道發(fā)送消息,不同的物理信道對應(yīng)設(shè)備 IO 驅(qū)動程序的不同消息發(fā)送模塊。 消息解析模塊解析從設(shè)備 IO 驅(qū)動程序接收的消息,并將解析后的消息提交到互連模塊。 消息封裝模塊封裝從互連模塊接收的消息,并將已封裝的消息提交到設(shè)備 IO 驅(qū)動程序的消息發(fā)送模塊。 互連模塊控制和維護(hù)可能在同一芯片或不同芯片上的不同組件之間的通信,分發(fā)由消息解析模塊提交的數(shù)據(jù)消息,并根據(jù)消息解析模塊提交的控制消息調(diào)用正確的組件接口來控制組件。 本地服務(wù)模塊提供重置服務(wù)、時鐘服務(wù)和本地存儲服務(wù)。
組件與互連模塊之間的接口采用標(biāo)準(zhǔn)的開放核心協(xié)議(OCP)接口,組件可以統(tǒng)一使用 PAL 提供的通信環(huán)境和本地服務(wù),PAL 也可以統(tǒng)一調(diào)用和控制組件;谒羞@些,組件和平臺之間的耦合被解耦,因此成為組件具有輕便性。 由于波形由多個元件組成,所以波形具有可移植性。
3.2. 消息格式
為了實(shí)現(xiàn)不同 FPGA 芯片之間的互連和互通,采用統(tǒng)一的報文格式是需要的。 參考文獻(xiàn)[9]中定義了用于在 SHP 之間傳輸消息的標(biāo)準(zhǔn)消息格式,如圖3所示
圖三.標(biāo)準(zhǔn)訊息格式
消息 IU 位用于共享內(nèi)存的數(shù)據(jù)接收器和數(shù)據(jù)源,不適用于不共享內(nèi)存的處理器。 邏輯目的地(LD)用于將消息路由到目的地?cái)?shù)據(jù)接收器。每個目標(biāo)數(shù)據(jù)接收器都與一個邏輯目的地相關(guān)聯(lián)。 長度用于表示整個信息。 有效負(fù)載是消息的有效負(fù)載。 標(biāo)準(zhǔn)消息格式存在兩個不足。 首先,標(biāo)準(zhǔn)消息格式不區(qū)分不同的消息類型。 不僅需要不同組件之間的數(shù)據(jù)報文通信,而且還需要控制報文通信。 此外,請求消息和響應(yīng)消息必須加以區(qū)分。其次,標(biāo)準(zhǔn)消息格式的通信地址設(shè)計(jì)降低了組件的重用能力。 如果僅僅使用邏輯目的地來區(qū)分 FPGA 芯片上不同組件的不同數(shù)據(jù)接收接口,同一 FPGA 芯片上所有組件的所有數(shù)據(jù)接收接口的邏輯目的地必須是不同的,但是組件開發(fā)人員只能確保所開發(fā)組件的數(shù)據(jù)接收接口的邏輯目的地是不同的,而不能保證所開發(fā)組件的數(shù)據(jù)接收接口的邏輯目的地與其他開發(fā)人員所開發(fā)組件的數(shù)據(jù)接口的邏輯目的地是不同的。 因此,當(dāng)重用組件時,一個數(shù)據(jù)接收器接口的邏輯目的地可能與其他接口相同,組件重用失敗。 僅使用邏輯目的地指示通信地址將降低組件的重用能力。
為了彌補(bǔ)標(biāo)準(zhǔn)消息格式的不足,本文設(shè)計(jì)了新的請求消息格式和響應(yīng)消息格式的標(biāo)準(zhǔn)消息格式,如圖4所示。 在請求消息中,目標(biāo)地址用于指示目標(biāo)處理器的地址。 Source Address 用于指示源處理器的地址。 目標(biāo) LD 用于指示目標(biāo)組件的地址。 Message Type 用于指示消息是請求消息或響應(yīng)消息。 響應(yīng)標(biāo)志用于指示消息是否需要響應(yīng)消息。 源 LD 用于指示源組件的地址。 命令用于指示組件數(shù)據(jù)接口或組件控制接口的地址。 “參數(shù)列表”用于指示命令的參數(shù)列表。 在響應(yīng)消息中,“回復(fù)狀態(tài)”用于指示是否發(fā)生任何異常。 響應(yīng)消息中的其他字段與請求消息中的字段相同。
在新的請求消息格式和響應(yīng)消息格式中,通信地址由處理器地址、組件地址和接口地址表示。 與圖3所示的舊的通信地址格式相比,新的通信地址格式具有兩大優(yōu)勢。 首先,屬于一個組件的接口的尋址獨(dú)立于屬于其他組件的接口的尋址,從而提高了組件的重用能力。 其次,原有的通信地址在消息路由方面導(dǎo)致了設(shè)備驅(qū)動程序開發(fā)與 PAL 制開發(fā)的耦合,而新的分段式通信地址使耦合度降低。 設(shè)備驅(qū)動程序開發(fā)人員只需密切關(guān)注組件的地址,而 PAL 制式開發(fā)人員只需密切關(guān)注組件的地址和接口地址,因此降低了開發(fā)的復(fù)雜性。

圖4.請求 / 響應(yīng)消息格式
3.3. 連接模式

組件接口與消息封裝模塊之間的連接模型是 PAL 設(shè)計(jì)中的一個重要問題,它直接影響到 PAL 的資源消耗和工作效率。 有兩種不同的連接模型。 一種是多對一連接模型,即所有需要與其他處理器上的其他組件進(jìn)行通信的接口都連接到同一個消息封裝模塊,如圖5所示。 另一種是一對一的連接模型,不同的接口對應(yīng)不同的消息封裝模塊,如圖5所示。
圖5. a)多對一連接模式 b)一對一連接模式
與一對一連接模式相比,多對一連接模式存在兩個不足。 首先,多對一連接模型需要兩級緩沖區(qū),因此存儲資源消耗較大,處理時延較長;。 在多對一連接模型中,組件接口和消息封裝模塊之間需要一個緩沖區(qū),以便在多個接口同時需要發(fā)送消息時對消息進(jìn)行緩沖,而消息封裝模塊也需要一個緩沖區(qū)對消息進(jìn)行緩沖,因此需要兩級緩沖區(qū)。一對一連接模型只需要一級緩沖區(qū),因?yàn)樵撃P筒恍枰M件接口和消息封裝模塊之間的緩沖區(qū)消息。 其次,由于許多組件接口使用相同的消息打包模塊,消息打包模塊需要建立一個通信地址表來記錄每個接口的地址。 每次在打包消息時,消息打包模塊都需要查找地址表以獲得正確的接口地址,所以處理延遲會增加。 此外,表查找在 FPGA 上的實(shí)現(xiàn)非常復(fù)雜。一對一連接模型不需要地址表。 與多對一連接模型相比,一對一連接模型也存在不足。 主要缺點(diǎn)是一對一連接模型需要很多消息打包模塊,而多對一連接模型只需要一個。 許多消息打包模塊會增加邏輯資源的消耗,但是一對一連接模型中每個消息打包模塊的邏輯資源消耗很小,因?yàn)橄⒋虬ぷ骱苋菀住?綜合考慮兩種不同的連接模型的優(yōu)點(diǎn)和缺點(diǎn),一對一的連接模型更為合適。
4. 結(jié)論
本文結(jié)合現(xiàn)場可編程門陣列(FPGA)的特點(diǎn)和實(shí)際應(yīng)用的需要,首先設(shè)計(jì)了 PAL 的結(jié)構(gòu),然后根據(jù)標(biāo)準(zhǔn)消息格式的不足,設(shè)計(jì)了一種新的消息格式來彌補(bǔ)這一不足,最后分析了兩種不同的連接模型,得出一對一的連接模型更為合適的結(jié)論。 在 FPGA 上實(shí)現(xiàn) PAL 制,完全解決了上述問題。針對軟件無線電系統(tǒng)在波形可移植性方面存在的問題,提出了一種軟件無線電系統(tǒng)可移植性的解決方案。 另外,PAL 制的結(jié)構(gòu)也適合 DSP,只是實(shí)現(xiàn)方式有所不同。


軟件無線電的 FPGA 軟件體系結(jié)構(gòu).docx (107.77 KB, 下載次數(shù): 8)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表