APP下载

基于ZedBoard的SCA架构的设计与实现

2015-02-20谭月辉孙慧贤沈若曦

电子技术应用 2015年11期
关键词:消息容器波形

袁 扬,谭月辉,孙慧贤,沈若曦,周 晗

(1.军械工程学院 信息工程系,河北 石家庄 050000;2.总装备部重庆军代局驻昆明地区军代室,云南 昆明650000;3.总装备部驻 789厂军代室,重庆 400060)

基于ZedBoard的SCA架构的设计与实现

袁 扬1,谭月辉1,孙慧贤1,沈若曦2,周 晗3

(1.军械工程学院 信息工程系,河北 石家庄 050000;2.总装备部重庆军代局驻昆明地区军代室,云南 昆明650000;3.总装备部驻 789厂军代室,重庆 400060)

ZedBoard是Xilinx公司首款融合了ARM Cortex A9双核和7系列FPGA的全可编程片上系统,兼具ARM和FPGA两者的优势,是小型化SCA实现的最佳嵌入式平台之一。本文介绍了 ZedBoard平台的硬件结构,并针对SCA架构在专用硬件平台上无法实现的问题,通过分析研究MHAL硬件抽象层技术和 OCP接口规范,设计了符合 Zed-Board平台硬件环境的MHAL硬件抽象接口和FPGA波形组件容器,有效地解决了SCA架构在 ZedBoard平台上的实现问题,为在ZedBoard上实现以SCA架构为核心的系统开发打下了基础。

软件通信体系架构;ZedBoard;Modem硬件抽象层;开放核协议

0 引言

软件通信体系架构(Software Communications Architecure,SCA)是美军在联合战术无线电系统(Joint Tatical Radio System,JTRS)中针对 GPP环境提出的软件无线电实现框架,结合JTRS后续推出SCA补充标准对SCA架构进行裁剪,可在硬件资源有限的嵌入式硬件平台上搭建小型化SCA架构,增强系统软件的可重用性和可移植性,是实现嵌入式可重构系统的主要架构之一。Zed-Board是 Xilinx公司推出的首款融合了 GPP和 FPGA的嵌入式开发环境,可满足大部分嵌入式系统开发的需求,是嵌入式开发环境的必然发展趋势,但是由于 FPGA中的应用组件都由具体的逻辑电路实现,完全不同于GPP上的程序调用执行,所以SCA架构在ZedBoard平台上会有诸多实现问题[1]。

本文首先介绍了ZedBoard平台硬件结构,提出了基于ZedBoard的SCA架构的总体设计,并重点针对SCA架构在 ZedBoard平台上难以实现的问题,通过深入分析研究 Modem硬件抽象层(Modem Hardware Abstration Layer,MHAL)标准和Open Core Protocol(OCP)接口协议,结合ZedBoard硬件结构设计了 MHAL硬件平台外部抽象接口和SCA波形组件容器,有效地解决了SCA架构在 ZedBoard上的实现问题,为在ZedBoard上实现以SCA架构为核心的系统开发打下了基础。

1 基于ZedBoard的SCA架构总体设计

ZedBoard平台是 Xilinx公司最新推出的首款融合了ARM Cortex A9双核和 FPGA的全可编程片上系统,兼备GPP和FPGA的特点和优势。ZedBoard平台的核心是Xilinx的 Zynq-7020芯片,主要包括 processing system(PS)和 programmable logic(PL)两部分。其中 PS部分包含双核的 ARM Cortex A9处理器,不仅负责整个 Zed-Board开发板的管理和配置,也可作为独立的芯片单独使用,是 ZedBoard平台的系统控制核心,同时还集成了SIMD多媒体处理引擎(NEON)、内存管理器(MMU)等功能模块和多种对外扩展接口,具有很强的功能扩展能力。PL部分主要包括Xilinx的高性能7系列FPGA,作为PS部分的补充提供了丰富的IO资源和高速数字处理能力[2-3]。

基于ZedBoard的SCA架构总体设计如图 1所示,为充分发挥ZedBoard平台PS部分的高性能系统控制能力,设计将SCA架构的核心框架、中间件和操作系统在PS部分的ARM上实现;而PL部分的高速数字处理能力和可重配置特点非常适合SCA应用层波形组件的实现。本文通过自行设计的MHAL硬件抽象接口和OCP波形组件容器来解决SCA架构在FPGA上的实现问题,并利用Zed-Board平台的APC接口和IO总线实现PS部分的核心框架和FPGA波形组件间的消息传输,下面对MHAL硬件抽象接口和FPGA波形组件容器进行重点讲述。

图1 基于ZedBoard的SCA架构总体设计图

2 MHAL硬件抽象接口设计

Modem硬件抽象层MHAL是JTRS办公室在2007年颁布的接口标准,其初衷是为SCA系统中不同处理单元的通信提供标准的协议和接口,同时也涉及了硬件平台外部接口的抽象,为实现 SCA消息在 ZedBoard上的标准传输提供了方法[4-5]。本文深入分析研究了 MHAL标准,并结合ZedBoard开发环境,对MHAL消息结构进行了修改,重新定义了MHAL硬件抽象接口的功能结构和接口函数,分别设计了ARM和FPGA的MHAL消息发送和接收结构,完成了MHAL硬件抽象接口的设计。

2.1 MHAL消息结构设计

(1)消息起始符:本文设置了专门的 16 bits消息起始符用来界定消息的起始,以13位巴克码为基础取值为 “1111100110101000”,大 大提高了MHAL消息接收和解帧的准确性。

(2)消息类型:独立的 16 bits消息类型字段用来指示MHAL消息的类型和附属信息,可以提高MHAL消息解析效率,使FPGA波形组件容器准确地将消息发送到相应的功能模块。前 3 bits指示 MHAL消息类型,其对应关系如表1所示;后续比特分为三部分,分别指示MHAL消息源的处理编号、组件编号和端口编号。

2.2 MHAL硬件抽象接口结构设计

结合MHAL标准和ZedBoard平台特点,本文设计的MHAL硬件抽象接口功能结构如图3所示,主要包括通用代理、MHAL消息接收结构和MHAL消息发送结构,结合上文规范的MHAL消息结构屏蔽了ARM和FPGA硬件平台的外部接口,实现了 SCA消息在 Zed-Board的 ARM和FPGA之间的标准传输。

图2 MHAL消息结构图

表1 消息类型字段取值表

图3 MHAL硬件抽象接口功能结构图

2.2.1 通用代理设计

通用代理由 SCA核心框架的 ExecutableDevice接口通过 execute()函数创建,是运行在 ARM上的一个 SCA中间件对象,具有核心框架规定的 CF::Resource、CF:: PortSupplier和 CF::Port等组件接口,根据目标逻辑地址实现与对应FPGA组件的通信。

通用代理作为FPGA波形组件在ARM上的代理接受核心框架的调用和管理,并将SCA消息转换为MHAL报文,添加目标逻辑地址字段后发送到 ARM MHAL发送结构,是实现FPGA波形组件和ARM核心框架桥接的适配器。

2.2.2 ARM MHAL发送和接收结构设计

左小龙绕道了一个染料厂的后面,把摩托车停好,下车对大帅说:你看,这个三层的小楼是他们的高层在的地方,他们污染我的河,我要……

ARM MHAL发送和接收结构由MHAL设备组件实现,提供信源函数和信宿函数服务,实现对MHAL消息的封装和发送、接收和解封装。结合 ZedBoard平台ARM+FPGA的硬件结构特点,本文对MHAL标准中的GPP API结构进行了扩充和修改,使其更好地与 Zed-Board开发环境相契合,下面以 ARM发送结构为例进行讲述,其UML图如图4所示。

图4 ARM MHAL发送结构UML图

MHAL发送结构收到由通用代理发送来的 MHAL报文后,通过 builsMhalMsg()等函数将其封装为完整的MHAL消息并存储在MHALMsg[MAX_MHAL]中,end-BuildMhalMsg()函数结束 MHAL消息封装流程,再由pushPacket()函数通过外部传输链路将 MHAL消息发送到对端的MHAL接收结构。

2.2.3 FPGA MHAL发送和接收组件设计

FPGA MHAL发送和接收组件由一系列接收和发送MHAL消息的实体构成,与ARM MHAL发送和接收结构功能基本一致。本文以Multi-Depth FIFO节点为基础设计了FPGA MHAL发送和接收组件,其具有允许多条消息队列等待接收,支持按字节处理消息的优点,增强了FPGA对MHAL消息的处理能力,很好地满足了 FPGA上MHAL消息发送和接收的需求。下面以FPGA MHAL接收组件为例,本文采用 Verilog硬件编程语言封装了其外部接口,其外部端口和功能如表2所示。

表2 消息类型字段取值表

3 FPGA波形组件容器设计

容器是FPGA波形组件的直接运行环境,为实现SCA对FPGA波形组件的调用和控制提供本地服务和API[1],使得 FPGA上的波形组件能像 GPP组件一样被核心框架管理,是在 ZedBoard上实现 SCA架构的重要组成部分。

开放核协议OCP片上子系统通信定义了一个高效的、和总线相对独立的、可配置的、可升级的接口,并可通过 Verilog、VHDL等硬件编程语言实现,非常适合FPGA开发环境[6-7]。本文基于 OCP接口设计了 FPGA波形组件容器,规范了容器提供的服务和波形组件接口,实现了SCA核心框架对 FPGA组件的管理以及异构组件间互通,大大提高了FPGA波形组件的可移植性和可重用性,其结构如图5所示。

图5 FPGA波形组件容器结构图

3.1 OCP互连模块设计

OCP互联模块作为 FPGA波形组件容器的核心,是实现容器对组件控制和管理功能的主要承担者,主要由控制模块、通信模块、本地服务模块和相应的OCP接口组成。其中控制模块是OCP互联模块的枢纽,为FPGA波形组件提供了与 SCA波形组件接口相对应的initialize()、start()和 stop()等操作,便于核心框架对 FPGA波形组件控制命令的执行。

OCP互联模块的工作流程为:控制模块进一步解析FPGA MHAL接收组件接收到的MHAL消息,并判断出此消息的类型。如果是控制消息、连接消息或者断开连接消息,则根据MHAL消息中的目标逻辑地址找到目标组件并完成相应控制操作;如果是数据消息,则交由通信模块处理。通信模块根据MHAL消息中的目标逻辑地址将数据消息发送到目标组件,并将接收到的组件返回数据消息交由控制模块进行封装等处理。本地服务模块为容器中的组件提供时钟信号和复位信号。

3.2 组件OCP接口设计

为了使FPGA波形组件与容器的OCP互连模块无缝连接,本文以OCP接口为基础设计了FPGA组件的封装接口。组件OCP接口与OCP互联模块的功能模块相对应,包括组件控制接口、组件通信接口和本地服务接口。

组件控制接口采用以容器为Master,组件为Slave的模式,采用RTL编程语言实现了initialize()、run()和release()操作,与组件SCD文档中组件IDL端口定义保持一致,很好地满足了核心框架对FPGA组件的控制操作需求。

组件通信接口根据组件与容器具体的通信情况分为组件 Master只写、组件Master只读和组件 Slave只写三种模式,并定义了不同模式下所需的端口,可满足组件通信的各种需求。

本地服务接口与本地服务模块相对应,用来接收OCP互联模块提供的时钟信号和复位信号。

4 结论

本文紧跟当前系统开发硬件平台的趋势,以 Xilinx最新推出的 ZedBoard平台为背景,针对 SCA架构在专用硬件平台上实现的诸多问题,通过深入分析研究MHAL标准和OCP协议,对MHAL消息结构进行了修改和扩充,结合ZedBoard开发环境设计了 ARM和 FPGA上的MHAL消息发送和接收结构,并根据SCA核心框架对组件的管理需求设计了容器功能模块和FPGA组件接口,最终完成了MHAL硬件抽象接口和FPGA波形组件容器设计,有效地解决了 SCA架构在 ZedBoard上的实现问题,为在 ZedBoard上实现以 SCA架构为核心的系统开发打下了基础。

[1]常济菘.基于 SCA的可移植 FPGA波形结构及组件接口设计[D].长沙:国防科学技术大学,2009.

[2]肖志远,杜启亮,田联房,等.基于Zedboard的视觉导航除草机器人控制系统设计[J].电子技术应用,2014,40 (6):27-29.

[3]杨旭,汤永福,孟宪元,等.基于Zedboard的嵌入式自动调谐系统设计[J].测控技术,2014,33(9):84-86.

[4]王彦刚,吕遵明,万留进.基于 SCA规范的硬件抽象层应用程序接口分析[J].计算机应用,2014(A02).

[5]方咏娴.手持通信终端的硬件抽象层研究及其 FPGA实现[D].广州:华南理工大学,2011.

[6]王荆林.基于OCP的 FPGA可复用波形组件设计[D].长沙:国防科学技术大学,2007.

[7]邓刚,高宏伟,周军辉,等.FPGA上 SCA波形组件接口的设计与实现[J].信息通信,2012(4):16-18.

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)

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.

SCA;ZedBoard;MHAL;OCP

TP311.52

A

10.16157/j.issn.0258-7998.2015.11.008

袁扬,谭月辉,孙慧贤,等.基于ZedBoard的SCA架构的设计与实现[J].电子技术应用,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.

2015-07-20)

袁扬(1991-),男,在读研究生,主要研究方向:指挥信息系统测试诊断技术。

谭月辉(1965-),男,硕士研究生,副教授,主要研究方向:信息工程理论与应用、信息安全。

孙慧贤(1980-),男,博士研究生,讲师,主要研究方向:通信与信息系统。

猜你喜欢

消息容器波形
容器倒置后压力压强如何变
一张图看5G消息
难以置信的事情
基于LFM波形的灵巧干扰效能分析
用于SAR与通信一体化系统的滤波器组多载波波形
基于ARM的任意波形电源设计
双丝双正弦电流脉冲波形控制
取米
消息
消息