《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于ZedBoard的SCA架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)
基于ZedBoard的SCA架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)
2015年電子技術(shù)應(yīng)用第11期
袁 揚(yáng)1,譚月輝1,孫慧賢1,沈若曦2,周 晗3
1.軍械工程學(xué)院 信息工程系,河北 石家莊0500002.總裝備部重慶軍代局駐昆明地區(qū)軍代室,云南 昆明650000;3.總裝備部駐789廠軍代室,重慶400060
摘要: ZedBoard是Xilinx公司首款融合了ARM Cortex A9雙核和7系列FPGA的全可編程片上系統(tǒng),兼具ARM和FPGA兩者的優(yōu)勢(shì),是小型化SCA實(shí)現(xiàn)的最佳嵌入式平臺(tái)之一。本文介紹了ZedBoard平臺(tái)的硬件結(jié)構(gòu),并針對(duì)SCA架構(gòu)在專用硬件平臺(tái)上無(wú)法實(shí)現(xiàn)的問題,通過(guò)分析研究MHAL硬件抽象層技術(shù)和OCP接口規(guī)范,設(shè)計(jì)了符合ZedBoard平臺(tái)硬件環(huán)境的MHAL硬件抽象接口和FPGA波形組件容器,有效地解決了SCA架構(gòu)在ZedBoard平臺(tái)上的實(shí)現(xiàn)問題,為在ZedBoard上實(shí)現(xiàn)以SCA架構(gòu)為核心的系統(tǒng)開發(fā)打下了基礎(chǔ)。
中圖分類號(hào): TP311.52
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2015.11.008

中文引用格式: 袁揚(yáng),譚月輝,孫慧賢,等. 基于ZedBoard的SCA架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2015,41(11):31-33,37.
英文引用格式: Yuan Yang,Tan Yuehui,Sun Huixian,et al. Design and implementation of SCA based on ZedBoard[J].Application of Electronic Technique,2015,41(11):31-33,37.
Design and implementation of SCA based on ZedBoard
Yuan Yang1,Tan Yuehui1,Sun Huixian1,Shen Ruoxi2,Zhou Han3
1.Department of Information Engineering,Ordnance Engineering College,Shijiazhuang 050000,China; 2.General Equipment Department of Chongqing army of Kunming area,Kunming 650000,China; 3.Chongqing Military Deputy Bureau of General Armament Department,Chongqi 400060,China
Abstract: ZedBoard is the first All Programmable System on Chip(SOC) integrating with the ARM Cortex A9 and 7 Series FPGA developed by Xilinx, which is one of the best embedded platforms of the implementation of the miniaturized Software Communications Architecure(SCA). The hardware structure of ZedBoard platform is introduced in this paper, and aiming at the problem that SCA could not achieve on the special hardware platform, the Modem Hardware Abstration Layer(MHAL) hardware abstraction interface and FPGA waveform component container are designed with the research of the MHAL and the technology, which effectively solves the implementation issues of the SCA architecture on ZedBoard, and plays the foundation for the system development with the core of SCA on ZedBoard.
Key words : SCA;ZedBoard;MHAL;OCP

  
0 引言
  軟件通信體系架構(gòu)(Software Communications Architecure,SCA)是美軍在聯(lián)合戰(zhàn)術(shù)無(wú)線電系統(tǒng)(Joint Tatical Radio System,JTRS)中針對(duì)GPP環(huán)境提出的軟件無(wú)線電實(shí)現(xiàn)框架,結(jié)合JTRS后續(xù)推出SCA補(bǔ)充標(biāo)準(zhǔn)對(duì)SCA架構(gòu)進(jìn)行裁剪,可在硬件資源有限的嵌入式硬件平臺(tái)上搭建小型化SCA架構(gòu),增強(qiáng)系統(tǒng)軟件的可重用性和可移植性,是實(shí)現(xiàn)嵌入式可重構(gòu)系統(tǒng)的主要架構(gòu)之一。ZedBoard是Xilinx公司推出的首款融合了GPP和FPGA的嵌入式開發(fā)環(huán)境,可滿足大部分嵌入式系統(tǒng)開發(fā)的需求,是嵌入式開發(fā)環(huán)境的必然發(fā)展趨勢(shì),但是由于FPGA中的應(yīng)用組件都由具體的邏輯電路實(shí)現(xiàn),完全不同于GPP上的程序調(diào)用執(zhí)行,所以SCA架構(gòu)在ZedBoard平臺(tái)上會(huì)有諸多實(shí)現(xiàn)問題[1]。
  本文首先介紹了ZedBoard平臺(tái)硬件結(jié)構(gòu),提出了基于ZedBoard的SCA架構(gòu)的總體設(shè)計(jì),并重點(diǎn)針對(duì)SCA架構(gòu)在ZedBoard平臺(tái)上難以實(shí)現(xiàn)的問題,通過(guò)深入分析研究Modem硬件抽象層(Modem Hardware Abstration Layer,MHAL)標(biāo)準(zhǔn)和Open Core Protocol(OCP) 接口協(xié)議,結(jié)合ZedBoard硬件結(jié)構(gòu)設(shè)計(jì)了MHAL硬件平臺(tái)外部抽象接口和SCA波形組件容器,有效地解決了SCA架構(gòu)在ZedBoard上的實(shí)現(xiàn)問題,為在ZedBoard上實(shí)現(xiàn)以SCA架構(gòu)為核心的系統(tǒng)開發(fā)打下了基礎(chǔ)。
1 基于ZedBoard的SCA架構(gòu)總體設(shè)計(jì)
  ZedBoard平臺(tái)是Xilinx公司最新推出的首款融合了ARM Cortex A9雙核和FPGA的全可編程片上系統(tǒng),兼?zhèn)銰PP和FPGA的特點(diǎn)和優(yōu)勢(shì)。ZedBoard平臺(tái)的核心是Xilinx的Zynq-7020芯片,主要包括processing system(PS)和programmable logic(PL)兩部分。其中PS部分包含雙核的ARM Cortex A9處理器,不僅負(fù)責(zé)整個(gè)ZedBoard開發(fā)板的管理和配置,也可作為獨(dú)立的芯片單獨(dú)使用,是ZedBoard平臺(tái)的系統(tǒng)控制核心,同時(shí)還集成了SIMD多媒體處理引擎(NEON)、內(nèi)存管理器(MMU)等功能模塊和多種對(duì)外擴(kuò)展接口,具有很強(qiáng)的功能擴(kuò)展能力。PL部分主要包括Xilinx的高性能7系列FPGA,作為PS部分的補(bǔ)充提供了豐富的IO資源和高速數(shù)字處理能力[2-3]。

001.jpg

  基于ZedBoard的SCA架構(gòu)總體設(shè)計(jì)如圖1所示,為充分發(fā)揮ZedBoard平臺(tái)PS部分的高性能系統(tǒng)控制能力,設(shè)計(jì)將SCA架構(gòu)的核心框架、中間件和操作系統(tǒng)在PS部分的ARM上實(shí)現(xiàn);而PL部分的高速數(shù)字處理能力和可重配置特點(diǎn)非常適合SCA應(yīng)用層波形組件的實(shí)現(xiàn)。本文通過(guò)自行設(shè)計(jì)的MHAL硬件抽象接口和OCP波形組件容器來(lái)解決SCA架構(gòu)在FPGA上的實(shí)現(xiàn)問題,并利用ZedBoard平臺(tái)的APC接口和IO總線實(shí)現(xiàn)PS部分的核心框架和FPGA波形組件間的消息傳輸,下面對(duì)MHAL硬件抽象接口和FPGA波形組件容器進(jìn)行重點(diǎn)講述。
2 MHAL硬件抽象接口設(shè)計(jì)
  Modem硬件抽象層MHAL是JTRS辦公室在2007年頒布的接口標(biāo)準(zhǔn),其初衷是為SCA系統(tǒng)中不同處理單元的通信提供標(biāo)準(zhǔn)的協(xié)議和接口,同時(shí)也涉及了硬件平臺(tái)外部接口的抽象,為實(shí)現(xiàn)SCA消息在ZedBoard上的標(biāo)準(zhǔn)傳輸提供了方法[4-5]。本文深入分析研究了MHAL標(biāo)準(zhǔn),并結(jié)合ZedBoard開發(fā)環(huán)境,對(duì)MHAL消息結(jié)構(gòu)進(jìn)行了修改,重新定義了MHAL硬件抽象接口的功能結(jié)構(gòu)和接口函數(shù),分別設(shè)計(jì)了ARM和FPGA的MHAL消息發(fā)送和接收結(jié)構(gòu),完成了MHAL硬件抽象接口的設(shè)計(jì)。
  2.1 MHAL消息結(jié)構(gòu)設(shè)計(jì)
  MHAL消息從最低有效位到最高有效位以地址遞增的方式進(jìn)行排列,本文對(duì)MHAL標(biāo)準(zhǔn)中的消息結(jié)構(gòu)進(jìn)行了修改和擴(kuò)充,添加了消息起始符和消息類型字段,使其能更好地滿足SCA架構(gòu)在ZedBoard上的實(shí)現(xiàn)需求,其消息結(jié)構(gòu)如圖2所示,其他字段與MHAL標(biāo)準(zhǔn)中的消息結(jié)構(gòu)一樣,在此不做贅述。

002.jpg

 ?。?)消息起始符:本文設(shè)置了專門的16 bits消息起始符用來(lái)界定消息的起始,以13位巴克碼為基礎(chǔ)取值為“1111100110101000”,大大提高了MHAL消息接收和解幀的準(zhǔn)確性。
 ?。?)消息類型:獨(dú)立的16 bits消息類型字段用來(lái)指示MHAL消息的類型和附屬信息,可以提高M(jìn)HAL消息解析效率,使FPGA波形組件容器準(zhǔn)確地將消息發(fā)送到相應(yīng)的功能模塊。前3 bits指示MHAL消息類型,其對(duì)應(yīng)關(guān)系如表1所示;后續(xù)比特分為三部分,分別指示MHAL消息源的處理編號(hào)、組件編號(hào)和端口編號(hào)。

006.jpg

  2.2 MHAL硬件抽象接口結(jié)構(gòu)設(shè)計(jì)


003.jpg


  結(jié)合MHAL標(biāo)準(zhǔn)和ZedBoard平臺(tái)特點(diǎn),本文設(shè)計(jì)的MHAL硬件抽象接口功能結(jié)構(gòu)如圖3所示,主要包括通用代理、MHAL消息接收結(jié)構(gòu)和MHAL消息發(fā)送結(jié)構(gòu),結(jié)合上文規(guī)范的MHAL消息結(jié)構(gòu)屏蔽了ARM和FPGA硬件平臺(tái)的外部接口,實(shí)現(xiàn)了SCA消息在ZedBoard的ARM和FPGA之間的標(biāo)準(zhǔn)傳輸。
  2.2.1 通用代理設(shè)計(jì)
  通用代理由SCA核心框架的ExecutableDevice接口通過(guò)execute()函數(shù)創(chuàng)建,是運(yùn)行在ARM上的一個(gè)SCA中間件對(duì)象,具有核心框架規(guī)定的CF::Resource、CF::PortSupplier和CF::Port等組件接口,根據(jù)目標(biāo)邏輯地址實(shí)現(xiàn)與對(duì)應(yīng)FPGA組件的通信。
  通用代理作為FPGA波形組件在ARM上的代理接受核心框架的調(diào)用和管理,并將SCA消息轉(zhuǎn)換為MHAL報(bào)文,添加目標(biāo)邏輯地址字段后發(fā)送到ARM MHAL發(fā)送結(jié)構(gòu),是實(shí)現(xiàn)FPGA波形組件和ARM核心框架橋接的適配器。
  2.2.2 ARM MHAL發(fā)送和接收結(jié)構(gòu)設(shè)計(jì)
  ARM MHAL發(fā)送和接收結(jié)構(gòu)由MHAL設(shè)備組件實(shí)現(xiàn),提供信源函數(shù)和信宿函數(shù)服務(wù),實(shí)現(xiàn)對(duì)MHAL消息的封裝和發(fā)送、接收和解封裝。結(jié)合ZedBoard平臺(tái)ARM+FPGA的硬件結(jié)構(gòu)特點(diǎn),本文對(duì)MHAL標(biāo)準(zhǔn)中的GPP API結(jié)構(gòu)進(jìn)行了擴(kuò)充和修改,使其更好地與ZedBoard開發(fā)環(huán)境相契合,下面以ARM發(fā)送結(jié)構(gòu)為例進(jìn)行講述,其UML圖如圖4所示。

004.jpg

  MHAL發(fā)送結(jié)構(gòu)收到由通用代理發(fā)送來(lái)的MHAL報(bào)文后,通過(guò)builsMhalMsg()等函數(shù)將其封裝為完整的MHAL消息并存儲(chǔ)在MHALMsg[MAX_MHAL]中,end-
  BuildMhalMsg()函數(shù)結(jié)束MHAL消息封裝流程,再由 pushPacket()函數(shù)通過(guò)外部傳輸鏈路將MHAL消息發(fā)送到對(duì)端的MHAL接收結(jié)構(gòu)。
  2.2.3 FPGA MHAL發(fā)送和接收組件設(shè)計(jì)
  FPGA MHAL發(fā)送和接收組件由一系列接收和發(fā)送MHAL消息的實(shí)體構(gòu)成,與ARM MHAL發(fā)送和接收結(jié)構(gòu)功能基本一致。本文以Multi-Depth FIFO節(jié)點(diǎn)為基礎(chǔ)設(shè)計(jì)了FPGA MHAL發(fā)送和接收組件,其具有允許多條消息隊(duì)列等待接收,支持按字節(jié)處理消息的優(yōu)點(diǎn),增強(qiáng)了FPGA對(duì)MHAL消息的處理能力,很好地滿足了FPGA上MHAL消息發(fā)送和接收的需求。下面以FPGA MHAL接收組件為例,本文采用Verilog硬件編程語(yǔ)言封裝了其外部接口,其外部端口和功能如表2所示。

007.jpg

3 FPGA波形組件容器設(shè)計(jì)
  容器是FPGA波形組件的直接運(yùn)行環(huán)境,為實(shí)現(xiàn)SCA對(duì)FPGA波形組件的調(diào)用和控制提供本地服務(wù)和API[1],使得FPGA上的波形組件能像GPP組件一樣被核心框架管理,是在ZedBoard上實(shí)現(xiàn)SCA架構(gòu)的重要組成部分。
  開放核協(xié)議OCP片上子系統(tǒng)通信定義了一個(gè)高效的、和總線相對(duì)獨(dú)立的、可配置的、可升級(jí)的接口,并可通過(guò)Verilog、VHDL等硬件編程語(yǔ)言實(shí)現(xiàn),非常適合FPGA開發(fā)環(huán)境[6-7]。本文基于OCP接口設(shè)計(jì)了FPGA波形組件容器,規(guī)范了容器提供的服務(wù)和波形組件接口,實(shí)現(xiàn)了SCA核心框架對(duì)FPGA組件的管理以及異構(gòu)組件間互通,大大提高了FPGA波形組件的可移植性和可重用性,其結(jié)構(gòu)如圖5所示。

005.jpg

  3.1 OCP互連模塊設(shè)計(jì)
  OCP互聯(lián)模塊作為FPGA波形組件容器的核心,是實(shí)現(xiàn)容器對(duì)組件控制和管理功能的主要承擔(dān)者,主要由控制模塊、通信模塊、本地服務(wù)模塊和相應(yīng)的OCP接口組成。其中控制模塊是OCP互聯(lián)模塊的樞紐,為FPGA波形組件提供了與SCA波形組件接口相對(duì)應(yīng)的initialize()、start()和stop()等操作,便于核心框架對(duì)FPGA波形組件控制命令的執(zhí)行。
  OCP互聯(lián)模塊的工作流程為:控制模塊進(jìn)一步解析FPGA MHAL接收組件接收到的MHAL消息,并判斷出此消息的類型。如果是控制消息、連接消息或者斷開連接消息,則根據(jù)MHAL消息中的目標(biāo)邏輯地址找到目標(biāo)組件并完成相應(yīng)控制操作;如果是數(shù)據(jù)消息,則交由通信模塊處理。通信模塊根據(jù)MHAL消息中的目標(biāo)邏輯地址將數(shù)據(jù)消息發(fā)送到目標(biāo)組件,并將接收到的組件返回?cái)?shù)據(jù)消息交由控制模塊進(jìn)行封裝等處理。本地服務(wù)模塊為容器中的組件提供時(shí)鐘信號(hào)和復(fù)位信號(hào)。
  3.2 組件OCP接口設(shè)計(jì)
  為了使FPGA波形組件與容器的OCP互連模塊無(wú)縫連接,本文以O(shè)CP接口為基礎(chǔ)設(shè)計(jì)了FPGA組件的封裝接口。組件OCP接口與OCP互聯(lián)模塊的功能模塊相對(duì)應(yīng),包括組件控制接口、組件通信接口和本地服務(wù)接口。
  組件控制接口采用以容器為Master,組件為Slave的模式,采用RTL編程語(yǔ)言實(shí)現(xiàn)了initialize()、run()和release()操作,與組件SCD文檔中組件IDL端口定義保持一致,很好地滿足了核心框架對(duì)FPGA組件的控制操作需求。
  組件通信接口根據(jù)組件與容器具體的通信情況分為組件Master只寫、組件Master只讀和組件Slave只寫三種模式,并定義了不同模式下所需的端口,可滿足組件通信的各種需求。
  本地服務(wù)接口與本地服務(wù)模塊相對(duì)應(yīng),用來(lái)接收OCP互聯(lián)模塊提供的時(shí)鐘信號(hào)和復(fù)位信號(hào)。
4 結(jié)論
  本文緊跟當(dāng)前系統(tǒng)開發(fā)硬件平臺(tái)的趨勢(shì),以Xilinx最新推出的ZedBoard平臺(tái)為背景,針對(duì)SCA架構(gòu)在專用硬件平臺(tái)上實(shí)現(xiàn)的諸多問題,通過(guò)深入分析研究MHAL標(biāo)準(zhǔn)和OCP協(xié)議,對(duì)MHAL消息結(jié)構(gòu)進(jìn)行了修改和擴(kuò)充,結(jié)合ZedBoard開發(fā)環(huán)境設(shè)計(jì)了ARM和FPGA上的MHAL消息發(fā)送和接收結(jié)構(gòu),并根據(jù)SCA核心框架對(duì)組件的管理需求設(shè)計(jì)了容器功能模塊和FPGA組件接口,最終完成了MHAL硬件抽象接口和FPGA波形組件容器設(shè)計(jì),有效地解決了SCA架構(gòu)在ZedBoard上的實(shí)現(xiàn)問題,為在ZedBoard上實(shí)現(xiàn)以SCA架構(gòu)為核心的系統(tǒng)開發(fā)打下了基礎(chǔ)。
  參考文獻(xiàn)
  [1] 常濟(jì)菘.基于SCA的可移植FPGA波形結(jié)構(gòu)及組件接口設(shè)計(jì)[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2009.
  [2] 肖志遠(yuǎn),杜啟亮,田聯(lián)房,等.基于Zedboard的視覺導(dǎo)航除草機(jī)器人控制系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2014,40(6):27-29.
  [3] 楊旭,湯永福,孟憲元,等.基于Zedboard的嵌入式自動(dòng)調(diào)諧系統(tǒng)設(shè)計(jì)[J].測(cè)控技術(shù),2014,33(9):84-86.
  [4] 王彥剛,呂遵明,萬(wàn)留進(jìn).基于SCA規(guī)范的硬件抽象層應(yīng)用程序接口分析[J].計(jì)算機(jī)應(yīng)用,2014(A02).
  [5] 方詠嫻.手持通信終端的硬件抽象層研究及其FPGA實(shí)現(xiàn)[D].廣州:華南理工大學(xué),2011.
  [6] 王荊林.基于OCP的FPGA可復(fù)用波形組件設(shè)計(jì)[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2007.
  [7] 鄧剛,高宏偉,周軍輝,等.FPGA上SCA波形組件接口的設(shè)計(jì)與實(shí)現(xiàn)[J].信息通信,2012(4):16-18.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。