《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 设计应用 > 基于ZedBoard的SCA架构的设计与实现
基于ZedBoard的SCA架构的设计与实现
2015年电子技术应用第11期
袁 扬1,谭月辉1,孙慧贤1,沈若曦2,周 晗3
1.军械工程学院 信息工程系,河北 石家庄0500002.总装备部重庆军代局驻昆明地区军代室,云南 昆明650000;3.总装备部驻789厂军代室,重庆400060
摘要: ZedBoard是Xilinx公司首款融合了ARM Cortex A9双核和7系列FPGA的全可编程片上系统,兼具ARM和FPGA两者的优势,是小型化SCA实现的最佳嵌入式平台之一。本文介绍了ZedBoard平台的硬件结构,并针对SCA架构在专用硬件平台上无法实现的问题,通过分析研究MHAL硬件抽象层技术和OCP接口规范,设计了符合ZedBoard平台硬件环境的MHAL硬件抽象接口和FPGA波形组件容器,有效地解决了SCA架构在ZedBoard平台上的实现问题,为在ZedBoard上实现以SCA架构为核心的系统开发打下了基础。
中图分类号: TP311.52
文献标识码: A
DOI: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.
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 引言
  软件通信体系架构(Software Communications Architecure,SCA)是美军在联合战术无线电系统(Joint Tatical Radio System,JTRS)中针对GPP环境提出的软件无线电实现框架,结合JTRS后续推出SCA补充标准对SCA架构进行裁剪,可在硬件资源有限的嵌入式硬件平台上搭建小型化SCA架构,增强系统软件的可重用性和可移植性,是实现嵌入式可重构系统的主要架构之一。ZedBoard是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处理器,不仅负责整个ZedBoard开发板的管理和配置,也可作为独立的芯片单独使用,是ZedBoard平台的系统控制核心,同时还集成了SIMD多媒体处理引擎(NEON)、内存管理器(MMU)等功能模块和多种对外扩展接口,具有很强的功能扩展能力。PL部分主要包括Xilinx的高性能7系列FPGA,作为PS部分的补充提供了丰富的IO资源和高速数字处理能力[2-3]。

001.jpg

  基于ZedBoard的SCA架构总体设计如图1所示,为充分发挥ZedBoard平台PS部分的高性能系统控制能力,设计将SCA架构的核心框架、中间件和操作系统在PS部分的ARM上实现;而PL部分的高速数字处理能力和可重配置特点非常适合SCA应用层波形组件的实现。本文通过自行设计的MHAL硬件抽象接口和OCP波形组件容器来解决SCA架构在FPGA上的实现问题,并利用ZedBoard平台的APC接口和IO总线实现PS部分的核心框架和FPGA波形组件间的消息传输,下面对MHAL硬件抽象接口和FPGA波形组件容器进行重点讲述。
2 MHAL硬件抽象接口设计
  Modem硬件抽象层MHAL是JTRS办公室在2007年颁布的接口标准,其初衷是为SCA系统中不同处理单元的通信提供标准的协议和接口,同时也涉及了硬件平台外部接口的抽象,为实现SCA消息在ZedBoard上的标准传输提供了方法[4-5]。本文深入分析研究了MHAL标准,并结合ZedBoard开发环境,对MHAL消息结构进行了修改,重新定义了MHAL硬件抽象接口的功能结构和接口函数,分别设计了ARM和FPGA的MHAL消息发送和接收结构,完成了MHAL硬件抽象接口的设计。
  2.1 MHAL消息结构设计
  MHAL消息从最低有效位到最高有效位以地址递增的方式进行排列,本文对MHAL标准中的消息结构进行了修改和扩充,添加了消息起始符和消息类型字段,使其能更好地满足SCA架构在ZedBoard上的实现需求,其消息结构如图2所示,其他字段与MHAL标准中的消息结构一样,在此不做赘述。

002.jpg

  (1)消息起始符:本文设置了专门的16 bits消息起始符用来界定消息的起始,以13位巴克码为基础取值为“1111100110101000”,大大提高了MHAL消息接收和解帧的准确性。
  (2)消息类型:独立的16 bits消息类型字段用来指示MHAL消息的类型和附属信息,可以提高MHAL消息解析效率,使FPGA波形组件容器准确地将消息发送到相应的功能模块。前3 bits指示MHAL消息类型,其对应关系如表1所示;后续比特分为三部分,分别指示MHAL消息源的处理编号、组件编号和端口编号。

006.jpg

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


003.jpg


  结合MHAL标准和ZedBoard平台特点,本文设计的MHAL硬件抽象接口功能结构如图3所示,主要包括通用代理、MHAL消息接收结构和MHAL消息发送结构,结合上文规范的MHAL消息结构屏蔽了ARM和FPGA硬件平台的外部接口,实现了SCA消息在ZedBoard的ARM和FPGA之间的标准传输。
  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结构进行了扩充和修改,使其更好地与ZedBoard开发环境相契合,下面以ARM发送结构为例进行讲述,其UML图如图4所示。

004.jpg

  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所示。

007.jpg

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

005.jpg

  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.

此内容为AET网站原创,未经授权禁止转载。