李婉婉,高 博,劉擁軍
(信息工程大學(xué) 信息系統(tǒng)工程學(xué)院,河南 鄭州 450000)
?
ATCA平臺(tái)中FPGA組件的可視化管理設(shè)計(jì)實(shí)現(xiàn)
李婉婉,高 博,劉擁軍
(信息工程大學(xué) 信息系統(tǒng)工程學(xué)院,河南 鄭州 450000)
針對(duì)軟件無(wú)線電系統(tǒng)中FPGA上組件的管理及與SCA架構(gòu)的兼容性問(wèn)題,設(shè)計(jì)了ATCA平臺(tái)可視化應(yīng)用開(kāi)發(fā)環(huán)境中對(duì)于FPGA組件管理的框架和統(tǒng)一的數(shù)據(jù)傳輸協(xié)議。利用MFC在可視化開(kāi)發(fā)界面中集成用于捕獲和分析網(wǎng)絡(luò)數(shù)據(jù)包的WinPcap,實(shí)現(xiàn)了ATCA平臺(tái)中FPGA組件與CPU組件的互聯(lián)互通。測(cè)試結(jié)果表明,可實(shí)時(shí)監(jiān)測(cè)并捕獲原始發(fā)送數(shù)據(jù)和經(jīng)FPGA處理之后的接收數(shù)據(jù),實(shí)現(xiàn)FPGA組件的便捷化、可視化管理。
數(shù)據(jù)傳輸協(xié)議;可視化;組件管理;FPGA;容器
軟件無(wú)線電 (Software Defined Radio,SDR)正在向硬件標(biāo)準(zhǔn)化、模塊化、平臺(tái)化,軟件通用化的方向發(fā)展[1]。為在基于軟件通信架構(gòu)(Software Communication Architecture,SCA)的SDR系統(tǒng)中使用專(zhuān)用處理器,同時(shí)保證軟件的可移植性、互操作性,JPEO(Joint Program Executive Office)在2004年提出了(Hardware Abstraction Layer Connectivity,HAL-C)的概念。HAL-C定義了波形和平臺(tái)之間的通信接口協(xié)議,但是通信環(huán)境僅是波形運(yùn)行環(huán)境的一部分,因此HAL-C僅部分解決了FPGA上波形移植的問(wèn)題。在2005年5月,JPEO發(fā)布了專(zhuān)用處理器組件移植的補(bǔ)充協(xié)議(CP289,Change Proposal 289)提出了容器的概念[2]。容器可以為波形提供一致的運(yùn)行環(huán)境,通過(guò)實(shí)現(xiàn)容器可以達(dá)到波形可移植的目的。但是,如何設(shè)計(jì)容器的結(jié)構(gòu)以及如何提供標(biāo)準(zhǔn)的運(yùn)行環(huán)境仍然是一個(gè)問(wèn)題,而CP289還沒(méi)有解決這一問(wèn)題。2007年,JPEO又頒布了MHAL(Modem Hardware Abstraction Layer)規(guī)范,解決了硬件處理器之間的通信問(wèn)題,但并未能使專(zhuān)用硬件處理器上運(yùn)行的軟件組件與SCA兼容,即SCA框架難以對(duì)這些組件進(jìn)行管理控制?;赟CA 的軟件無(wú)線電系統(tǒng)常常要求在由GPP、DSP和FPGA共同組成的多處理器環(huán)境中運(yùn)行[3]。但目前只有CPU能夠提供完整的CORBA(Common Object Request Broker Architecture)運(yùn)行環(huán)境,F(xiàn)PGA、DSP等專(zhuān)用處理器難以有效的支持CORBA。這就使得基于FPGA的波形組件無(wú)法通過(guò)一種簡(jiǎn)單、規(guī)范的方式與系統(tǒng)中其它組件建立通信,并以此為基礎(chǔ),將FPGA中組件的管理納入到整個(gè)SCA架構(gòu)中。
本文基于MHAL規(guī)范與容器模型,在ATCA平臺(tái)上針對(duì)SDR系統(tǒng)對(duì)FPGA的應(yīng)用需求,提出了解決專(zhuān)用處理器FPGA組件與通用處理器CPU組件互聯(lián)互通的方法。同時(shí),實(shí)現(xiàn)了對(duì)FPGA組件在CPU上的可視化管理。該方法通過(guò)在FPGA上設(shè)計(jì)容器,屏蔽了處理器之間的差異,為組件提供了標(biāo)準(zhǔn)的運(yùn)行環(huán)境,使得核心框架能夠?qū)PGA上的組件進(jìn)行統(tǒng)一的管理和控制。
ATCA作為新一代計(jì)算平臺(tái)標(biāo)準(zhǔn),具備高吞吐量和高可靠性,其主要目標(biāo)是為電信級(jí)應(yīng)用提供標(biāo)準(zhǔn)化、開(kāi)放化的平臺(tái)體系架構(gòu)。ATCA具有復(fù)雜的拓?fù)浣Y(jié)構(gòu),平臺(tái)中可插入多塊板卡,每塊板卡上最多可插入4塊AMC子卡,子卡上可嵌入FPGA、DSP等專(zhuān)用處理器。
SCA要求使用CORBA中間件來(lái)實(shí)現(xiàn)各波形組件之間的通信,從而能夠屏蔽底層硬件平臺(tái)的差異,實(shí)現(xiàn)波形組件的模塊化、可重用性和可移植性。而在輕量級(jí)軟件通信架構(gòu)中,受FPGA資源限制,實(shí)現(xiàn)CORBA的難度較大。因此,本文首先設(shè)計(jì)了FPGA中基于容器的組件運(yùn)行環(huán)境、然后設(shè)計(jì)數(shù)據(jù)傳輸協(xié)議,以實(shí)現(xiàn)控制和數(shù)據(jù)的互聯(lián)互通,并以此為基礎(chǔ)設(shè)計(jì)了FPGA組件的管理框架。
1.1 FPGA中基于容器的組件運(yùn)行環(huán)境
容器為FPGA組件提供了標(biāo)準(zhǔn)的運(yùn)行環(huán)境,通過(guò)在FPGA上實(shí)現(xiàn)容器,可以解決不同處理器上波形組件的通信問(wèn)題,提高組件的可移植性,使FPGA組件盡可能地與GPP組件一致。
容器采用層次化方法實(shí)現(xiàn),結(jié)構(gòu)如圖1所示,主要由互聯(lián)層,硬件抽象層以及傳輸層構(gòu)成[4]。傳輸層的接口驅(qū)動(dòng)[5]接收模塊從物理通道接收消息,不同的物理通道響應(yīng)不同的驅(qū)動(dòng)接收模塊,數(shù)據(jù)解析模塊解析從接口驅(qū)動(dòng)模塊接收到的消息,并將其發(fā)送到硬件抽象層[6]??刂菩畔⒔邮者B接器控制數(shù)據(jù)的流向,判斷接收到的數(shù)據(jù)的目標(biāo)地址是否為本處理器?;ヂ?lián)層內(nèi)包含板內(nèi)互聯(lián)和板級(jí)互聯(lián)模塊,板內(nèi)互聯(lián)模塊采用直接映射的方式實(shí)現(xiàn)數(shù)據(jù)交換。互聯(lián)層控制同一處理器或者不同處理器上不同組件間的通信,數(shù)據(jù)打包模塊從硬件抽象層接收消息,并將已打包好的消息交給接口驅(qū)動(dòng)發(fā)送模塊。
圖1 容器結(jié)構(gòu)圖
1.2 數(shù)據(jù)傳輸協(xié)議
為實(shí)現(xiàn)不同處理器的互聯(lián),必須要有統(tǒng)一的數(shù)據(jù)傳輸協(xié)議[7-8]。平臺(tái)采用層次化的數(shù)據(jù)傳輸協(xié)議,如圖2所示。物理層位于數(shù)據(jù)傳輸?shù)淖畹讓?,?shí)現(xiàn)由一個(gè)處理器向另一個(gè)處理器的數(shù)據(jù)包傳輸。傳輸層和傳輸控制層對(duì)應(yīng)于OSI的7層模型中的傳輸層、網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層,完成數(shù)據(jù)重傳、路由機(jī)制、流量控制、拆包與組包等功能。傳輸控制層報(bào)頭分為長(zhǎng)格式數(shù)據(jù)包和短格式數(shù)據(jù)包,需根據(jù)傳輸層報(bào)頭中狀態(tài)位的值判斷傳輸控制層報(bào)頭是長(zhǎng)格式數(shù)據(jù)包或者短格式數(shù)據(jù)包。
圖2 數(shù)據(jù)傳輸協(xié)議結(jié)構(gòu)
為便于不同處理器間消息的路由,實(shí)現(xiàn)對(duì)消息的分類(lèi)管理,容器的硬件抽象層MHAL中設(shè)計(jì)了控制接收連接器,數(shù)據(jù)接收連接器和數(shù)據(jù)發(fā)送連接器。圖 3是文獻(xiàn)[9]提供的專(zhuān)用處理器(Specialized Hardware Processors,SHP)之間消息傳輸?shù)臉?biāo)準(zhǔn)格式。
圖3 標(biāo)準(zhǔn)消息格式
消息UI位是內(nèi)部消息流控制位,用于標(biāo)識(shí)信源和信宿共享內(nèi)存進(jìn)行通信時(shí)消息是否處理。邏輯目的地址占15位,用于路由消息到信宿,每一個(gè)組件端口都對(duì)應(yīng)一個(gè)邏輯目的地址。Length用來(lái)說(shuō)明整個(gè)消息的長(zhǎng)度,Payload是消息的數(shù)據(jù)載荷部分。
標(biāo)準(zhǔn)消息格式?jīng)]有考慮到信源和信宿分別在不同處理器這一情況,也沒(méi)有區(qū)分不同的消息類(lèi)型,而不同組件間不僅需要數(shù)據(jù)消息通信,也需要控制消息通信[5]。為彌補(bǔ)標(biāo)準(zhǔn)消息格式的缺點(diǎn),實(shí)現(xiàn)不同處理器上組件間的通信,對(duì)標(biāo)準(zhǔn)消息格式進(jìn)行了擴(kuò)展定義,如圖 4所示,在原有的基礎(chǔ)上增加了源邏輯地址字段和狀態(tài)字段。源邏輯地址由組件所在的域號(hào)、平臺(tái)號(hào)、板卡號(hào)以及處理器號(hào)共同決定,nFlag字段與傳輸層協(xié)議中狀態(tài)標(biāo)志位具有相同的定義,表明消息的類(lèi)型是控制消息或者數(shù)據(jù)消息,該消息是否需要應(yīng)答響應(yīng)。
圖4 自定義消息格式
1.3 FPGA組件管理框架
FPGA上的容器屏蔽了硬件之間的差異,為FPGA組件提供了標(biāo)準(zhǔn)的運(yùn)行環(huán)境,數(shù)據(jù)傳輸協(xié)議為CPU組件與FPGA組件提供了標(biāo)準(zhǔn)的通信協(xié)議。在此基礎(chǔ)上,在CPU端設(shè)計(jì)可視化管理界面,通過(guò)數(shù)據(jù)傳輸協(xié)議控制和配置FPGA容器中的連接器和組件。整個(gè)框架如圖 5所示。
圖5 FPGA組件管理框架
為便于對(duì)FPGA上組件的進(jìn)行管理,主要設(shè)計(jì)3種消息:組件控制命令、應(yīng)用裝配消息和數(shù)據(jù)消息。
組件控制命令主要用來(lái)對(duì)組件進(jìn)行控制,包括組件的初始化、啟動(dòng)、釋放、停止等。組件控制消息使用短消息格式,且只有報(bào)頭沒(méi)有數(shù)據(jù);組件端口間數(shù)據(jù)傳輸使用短消息格式,后面緊跟傳輸?shù)臄?shù)據(jù);命令收到后均發(fā)送應(yīng)答包。
應(yīng)用裝配消息主要是指在應(yīng)用的加載和卸載過(guò)程中的一些消息,主要采用長(zhǎng)消息格式。應(yīng)用消息主要包括創(chuàng)建組件、設(shè)置組件端口參數(shù)、創(chuàng)建連接器、設(shè)置連接器參數(shù)等。
數(shù)據(jù)消息是應(yīng)用組件間數(shù)據(jù)傳遞使用的信息,使用短格式報(bào)頭,是含有數(shù)據(jù)的完整包。
連接器主要完成對(duì)組件間連接關(guān)系的配置,通過(guò)配置連接器參數(shù),可改變FPGA上組件的目的地址,實(shí)現(xiàn)組件的路由轉(zhuǎn)發(fā)功能,使得FPGA組件與CPU組件可互聯(lián)互通。
ATCA平臺(tái)中,承載板上的FPGA處理器和計(jì)算刀片上的CPU處理器之間的物理通道采用萬(wàn)兆網(wǎng)[10]。因此,在可視化開(kāi)發(fā)界面中集成用于捕獲和分析網(wǎng)絡(luò)數(shù)據(jù)包的WinPcap,實(shí)現(xiàn)對(duì)FPGA組件的可視化管理[11]。
如圖 6所示,界面實(shí)現(xiàn)了FPGA組件可視化的管理,可在界面上進(jìn)行FPGA程序的加載、FPGA寄存器的讀寫(xiě)以及萬(wàn)兆網(wǎng)數(shù)據(jù)的收發(fā)等操作,并通過(guò)上述3種消息實(shí)現(xiàn)對(duì)FPGA上組件的管理。
圖6 可視化界面
通過(guò)可視化管理軟件對(duì)FPGA的示例組件進(jìn)行測(cè)試,具體流程如圖 7所示。
圖7 應(yīng)用測(cè)試流程
首先加載FPGA程序,然后利用應(yīng)用裝配消息配置相應(yīng)組件工作模式及其對(duì)應(yīng)連接器的關(guān)鍵參數(shù)。參數(shù)配置完成后,利用組件控制命令打開(kāi)連接器,并啟動(dòng)組件。此時(shí),組件可以開(kāi)始接收和發(fā)送數(shù)據(jù),實(shí)現(xiàn)其通信功能。最后,通過(guò)數(shù)據(jù)消息發(fā)送數(shù)據(jù)??梢酝ㄟ^(guò)Wireshark抓包軟件實(shí)時(shí)監(jiān)測(cè)捕獲到的原始發(fā)送數(shù)據(jù)和經(jīng)FPGA處理后的接收數(shù)據(jù)[12-14]。
基于以上的設(shè)計(jì)和流程,F(xiàn)PGA組件管理軟件可實(shí)現(xiàn)CPU與FPGA組件的互聯(lián)互通,同時(shí),可視化的管理界面使得對(duì)FPGA組件的管理更加靈活、便捷。
本文以FPGA中用于組件管理的容器為基礎(chǔ),針對(duì)整個(gè)系統(tǒng)對(duì)于FPGA上組件的管理及與SCA架構(gòu)的兼容性問(wèn)題[16],基于SCA整體架構(gòu)和專(zhuān)用處理器組件移植的補(bǔ)充協(xié)議CP289中的建議,設(shè)計(jì)了ATCA平臺(tái)可視化應(yīng)用開(kāi)發(fā)環(huán)境中對(duì)于FPGA組件管理的框架和統(tǒng)一的數(shù)據(jù)傳輸協(xié)議,在實(shí)現(xiàn)ATCA平臺(tái)中FPGA組件與CPU組件的互聯(lián)互通基礎(chǔ)上,實(shí)現(xiàn)了應(yīng)用開(kāi)發(fā)環(huán)境中FPGA組件的便捷化、可視化管理。使得FPGA芯片的管理及其應(yīng)用組件的管理能夠方便快捷地納入到基于SCA的整個(gè)平臺(tái)的管理系統(tǒng)中。
[1] González C R A, Dietrich C B, Reed J H. Understanding the software communications architecture[J]. IEEE Communications Magazine,2009,47(9):50-57.
[2] Liu Q, Cao K, Lai Y Y. FPGA software architecture for software defined radio[J].Procedia Engineering,2012(29):2133-2139.
[3] Ulversφy,Tore.Software defined radio: challenges and opportunities[J].IEEE Communications Surveys & Tutorials,2010,12(4):531-550.
[4] 孟凡惠.基于SCA的FPGA局部重配置系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2010.
[5] 常濟(jì)崧.基于SCA的可移植FPGA波形結(jié)構(gòu)及組件接口設(shè)計(jì)[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2009.
[6] 譚翔.基于SCA架構(gòu)的SoPC設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2011.
[7] 韓君妹,施峻武.軟件無(wú)線電異構(gòu)處理器平臺(tái)互連架構(gòu)設(shè)計(jì)[J].現(xiàn)代電子技術(shù), 2013(15):41-44.
[8] 曹政,李磊,陳明宇.萬(wàn)兆以太網(wǎng)MAC層控制器設(shè)計(jì)與實(shí)現(xiàn)[J].小型微型計(jì)算機(jī)系統(tǒng),2007,28(6):974-978.
[9] Joint Program Executive Office. Joint tactical radio system standard modem hardware abstraction layer application program interface[S].USA:Joint Program Executive Office,2007.
[10] 溫宇辰.嵌入式光纖萬(wàn)兆以太網(wǎng)系統(tǒng)設(shè)計(jì)[D].大連:大連理工大學(xué),2014.
[11] 董傳剛,劉衛(wèi)榮.可視化技術(shù)在雷達(dá)偵察信號(hào)分析中的應(yīng)用[J].電子科技,2015,28(7):15-17.
[12] 袁陽(yáng),孟李林.基于FPGA的千兆以太網(wǎng)數(shù)據(jù)傳輸設(shè)計(jì)[J].電子科技,2016,29(2):156-158.
[13] 張誠(chéng),羅豐.基于千兆以太網(wǎng)的高速數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)[J].電子科技,2011,24(1):44-46.
[14] 雍婷.基于SCA規(guī)范的PCI設(shè)備驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2006.
[15] 宋安.SCA平臺(tái)硬件設(shè)備驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2005.
[16] 趙秋明,林志堂,楊瑩瑩,等.基于SCA的小型化核心框架研究[J].計(jì)算機(jī)測(cè)量與控制,2010,18(5):1145-1147.
Design and Implementation of Visual Management of FPGA Components in ATCA
LI Wanwan,GAO Bo,LIU Yongjun
(School of Information Systems Engineering,Information Engineering University,Zhengzhou 450000,China)
The management of FPGA components and its compatibility with SCA architecture are big problems in SDR. In this paper, based on the suggestion of CP289, a framework to manage FPGA components and standard data transfer protocol has been designed in visual application development environment of ATCA platform to achieve communication between FPGA and CPU, which integrates WinPcap by using MFC. Then this paper presents a simple and visual way to control FPGA components.
data transfer protocol;visualization;component management;FPGA; container
2016- 10- 12
國(guó)家科技支撐項(xiàng)目(2013BAH56F00)
李婉婉(1992-),女,碩士研究生。研究方向:電子與通信工程。高博(1972-),男,博士,副教授,碩士生導(dǎo)師。研究方向:平臺(tái)技術(shù)。劉擁軍(1979-),男,講師。研究方向:信息與通信工程。
10.16180/j.cnki.issn1007-7820.2017.08.007
TN915.04;TP311
A
1007-7820(2017)08-024-04