基于Xilinx FPGA的无线通信MAC层硬件平台开发
 
- UID
- 1023229
- 来自
- 中国
|

基于Xilinx FPGA的无线通信MAC层硬件平台开发
本文中的 MAC 层硬件平台应用于国家863 计划课题“Gbps 无线传输关键技术与试验系统研究开发”。平台的具体设计是基于该试验系统的ATCA(Advanced Telecom Computing Architecture)信号汇聚板。
ATCA 信号汇聚板提供系统与业务源之间的网络接口,并根据开发人员设计的MAC层协议对业务数据进行特定处理。该汇聚板的核心模块是Xilinx Virtex5-FX130T FPGA[1]芯片(简称V5 芯片)。本文描述的SOPC 设计方案正是利用该芯片内嵌的PowerPC 440 高性能处理器硬核、千兆以太网硬核以及Xilinx 公司提供的其它IP 软核来完成MAC 层硬件平台设计。
SOPC 即可编程片上系统[2],在一个芯片上通过编程来实现一整套嵌入式系统的搭建,所使用的芯片通常是FPGA。SOPC 技术就是希望尽可能的在单片FPGA 上集成大规模完整的电子系统,使电子电路系统在功能、规模、可靠性等指标,上市周期及其硬件升级等多方面达到综合上的最优化。
本平台基于 Xilinx FX130T 芯片进行SOPC 设计,其片内PowerPC 440 处理器可以大大地降低外部电路设计的复杂度,降低物理层与MAC层间数据交换的复杂性和系统传输时延,极大地提高MAC 处理的效率。同时,本设计方案中还大量使用了Xilinx 公司的IP 核。IP核的再利用,除了可以缩短芯片的设计时间,还能降低设计和制造的成本,提高系统的可靠性。而且,Xilinx IP 核的可重定制、剪裁和升级等等特点,为本平台的资源优化和性能提高提供了很大的灵活性。
本文首先介绍了Xilinx SOPC 开发环境以及Virtex5-FX130T 内嵌的PowerPC 440 嵌入式硬核架构,然后分析了GBPS 系统MAC 层功能需求,并在此基础上重点描述了利用开发工具和Xilinx IP 核设计MAC 层硬件平台的方法。
1 Xilinx SOPC 开发环境
Xilinx SOPC 的主要开发工具为EDK (Xilinx Embedded Development Kit)。EDK 能够让开发人员在Xilinx FPGA 上开发出一个完整的嵌入式系统。它包括以下三个部分:
XPS (Xilinx Platform Studio)系统工具:利用XPS,可以开发出一个嵌入式系统的硬件部分。
SDK (Software Development Kit)工具:利用SDK,可以开发出基于XPS 硬件系统的嵌入式软件。
IP 核:Xilinx 公司在EDK 中提供了非常丰富的IP 核资源,如何有效利用这些资源,在嵌入式系统硬件开发中至关重要。
EDK 的硬件开发流程如图1 所示[3]。

建立 EDK 工程时,可以在XPS 中,按照EDK 软件的指示,结合自己硬件平台的需求,一步一步设定相关的选项,选择相应的器件,组成自己的嵌入式系统。工程中的每个器件实际上都是Xilinx 提供的IP 核,每个IP 核的配置,都将在MHS(Microprocessor Hardware Specification)文件中有所反映。MHS 文件是硬件系统的整体描述文件,有自己特定的语法。开发人员必须修改IP 核的配置,以符合自制电路板上FPGA 芯片外围器件的规范。在修改每个IP 核配置的时候,既可以在图形界面中修改,也可以直接在MHS 文件中修改。本项目中,为自制ATCA 汇聚板定制硬件平台的同时,还必须为工程编写UCF 约束文件。UCF管脚约束需要根据电路板原理图的管脚连接情况编写。UCF 时间约束文件的编写比较困难,可由硬件电路开发人员根据Xilinx ISE 工具提供模板文件。
Xilinx 公司为工程中选择的每个IP 核开发了完善的驱动程序。开发人员可以在自己的应用程序中调用相应的接口函数实现自己的特殊功能。如果是自己开发的IP 核,则需要独立编写驱动程序。完成源代码编写后,可以调用EDK 下的GNU 工具链,编译链接下载,用SDK 工具进行调试,也可以用Xilinx 微处理器调试工具XMD 来调试程序。
2 PowerPC 440 嵌入式处理器模块
PowerPC 440 是一种32 位RISC 处理器,其主频最高可达到667MHz。该内核充分发挥了Book E 增强型POWER 架构的高可扩展性和灵活性,并专为嵌入式应用进行了优化。
由于 PowerPC 440 内核的突出性能、功耗规格以及设计特性,本平台在选型时选择了Xilinx Virtex5-FX130T FPGA 芯片,以其内嵌的PPC 440 处理器内核作为MAC 层硬件平台核心处理器。
FX130T 芯片还为PowerPC 440 处理器内核提供了完善的外围模块,这些外围模块不但有效地提高了处理器的性能,而且能够简化开发者的开发难度。整个模块结构如图2 所示[4]。

在 FX130T 的嵌入式处理器模块中,PowerPC 440 处理器与外设的数据交换主要通过三个PLB 总线接口进行:指令读取(ICURD),数据读取(DCURD)和数据写入(DCUWR)。系统的外设则通常以存储器映射的方式,直接或者通过总线桥间接挂接在PLB 总线上。有些外设有独立的DMA 用于提高数据传输效率,有些外设则需要单独的DMA 引擎。这些外设通常都是Xilinx 公司所提供的IP 核。大部分IP 核都是以软核的方式提供,而有些IP 核会由于使用频率较高或者出于性能方面的考虑,以硬核的方式固化在FPGA 中。比如PCIE接口和三模式(Tri-mode)以太网控制器,都是以硬核方式存在,而且能够使用LocalLink高速接口。
3 MAC 层硬件平台开发
GBPS 无线传输试验验证系统需要实现高性能的软硬件系统平台,完成高性能无线信号处理,能承载1GBPS 数据传输,能进行GBPS 传输情况下的无线通信技术试验研究。同时试验验证系统还必须提供IP 网络接口,有效接入IP 分组网;提供与高性能业务服务器的接口,实现高性能业务演示。要做到上述几点,GBPS MAC 层的处理速度以及和内存的交互速度都面临了很大的挑战。
3.1 GBPS MAC 层功能分析
根据系统设计要求,本系统MAC 层设计并实现了以下六部分功能:无线资源的分配、管理;上层PDU(IP 包)的承载处理;MAC 层SDU 包处理;MAC 层QoS 保证策略;接入点与移动台之间的控制信息交互;MAC 与PHY 层业务和控制数据交互。在设计中,根据各功能的特点和需完成的任务,以模块化方式实现,如图3 所示。

与上层直接交互的功能,如上层PDU(IP 包)的承载处理,归结为业务接口子层;无线资源的分配、管理,MAC 层SDU 包处理以及QoS 保证和控制信息等由数据处理子层负责实现;与PHY 层交互业务和控制数据由MAC-PHY 接口子层处理。各个层次特别是业务接口与PHY 接口将是本平台设计的重点所在。
3.2 板级功能分析
想要更具体地了解MAC 层对于硬件电路的需求,必须清楚ATCA 汇聚板的功能,分析协议栈与操作系统所需要的硬件资源。为了满足高速通信系统的实时性需求,MAC 层软件平台使用了VxWorks 操作系统。整个MAC 层的协议栈、板级接口与连接方式如图4 所示。

业务源由 PC 机经过业务接口即以太网接口流出,经过汇聚板MAC 协议栈处理后,进入汇聚板中的物理层接口,再由物理层接口递交给物理层算法模块。本系统中主要涉及两个板级接口,即业务接口和物理层接口。其中,业务接口需要满足业务源1Gbps 的速率需求,物理层接口不但要满足速率和存储空间需求,还要能够提供MAC 层协议软件所需的定时中断功能。
总结上述需求,MAC 层硬件平台需要包含以下几个功能模块:千兆以太网模块,内存控制器,串口控制器,中断控制器,FPGA 配置功能模块和物理层接口存储模块。
千兆以太网模块负责承担与业务PC 之间的高速数据传输任务,为了提升性能,需要有DMA 功能以提高CPU 的效率。内存控制器负责控制DDR 内存读写,DDR 内存是MAC 层VxWorks 操作系统的主存储器。串口作为调试和显示运行状态信息的主要通道,在平台开发过程中起着非常重要的作用,串口的控制将由串口控制器完成。中断控制器是整个系统所有中断的仲裁者与连接器。FPGA 控制模块负责CF 卡对FPGA 和PPC440 内核进行的配置与初始化。物理层接口存储模块给MAC 层软件和物理层算法提供一个公共存储空间,以实现数据交换。
3.3 系统模块开发
Xilinx 公司的EDK 开发环境为嵌入式硬件开发人员提供了为数众多的IP 核,利用这些IP 核,可以搭建起功能丰富的嵌入式系统。MAC 层硬件平台的开发,同样可以利用Xilinx的IP 核,并根据要求进行修改以符合系统的功能需要。这些IP 核发挥各自的功能,而且有机地结合起来,使MAC 层硬件平台设计达到了预期目的。
经过对 EDK IP 核库进行的分析与选择,本平台决定用TEMAC 核实现千兆以太网模块,用ppc440mc_ddr2 IP 核实现内存控制器,用xps_uartlite 核实现串口控制器,用INTC 核实现中断控制器, FPGA配置功能模块则由systemAce核实现。而物理层接口存储模块由FPGA开发人员定制自己的IP 核。基本的硬件连接如图5 所示。

3.3.1 千兆以太网模块
千兆以太网(GE,Gigabit Ethernet)是建立在以太网标准基础之上的技术,它能够提供1Gbps 甚至更高的传输带宽。千兆以太网与大量使用的以太网和快速以太网完全兼容,并利用了原以太网标准所规定的全部技术规范。
Xilinx FX130T 芯片内置了一个以太网控制器硬核。在EDK 开发环境中,可以通过配置XPS_LL_TEMAC(Tri-Mode Ethernet Media Access Controller) IP 核来使用该硬核。本平台设计中需要关心XPS_LL_TEMAC 的以下几个功能[5]:
1. 支持 FIFO 与DMA 收发,其中DMA 收发又支持顺序DMA 与SG DMA 两种
2. 自适应 10M,100M,1G 三种不同速率
3. 支持 RGMII、GMII、MI 等多种与PHY 间的接口标准
在配置XPS_LL_TEMAC 核的时候,需要考虑两个方面的接口,一个是与PPC440 嵌入式模块之间的接口,一个是与PHY 芯片之间的接口。在配置的时候有两种方式,一种是直接在EDK 的图形界面中修改参数,另一种是在MHS 文件中直接修改。为了能够学习到系统的运行细节,本平台的开发采用了直接修改MHS 文件的方法,这需要学MHS 语法规则。
要正确配置 XPS_LL_TEMAC 核,需要找到MHS 文件中关于XPS_LL_TEMAC 的代码模块,依据本平台的特殊需求,修改代码中相关变量的值。下面详细描述相关变量的修改方法。
C_BASEADDR/ C_HIGHADDR:这两个变量描述的是XPS_LL_TEMAC 的内存映射地址。
C_PHY_TYPE:表示与PHY 芯片间的接口标准。0 表示MII,1 表示GMII/MII,2 表示RGMII V1,3 表示RGMII V2,4 表示SGMII。各种接口标准都能够支持全双工数据通信方式。本平台外围电路的PHY 芯片采用了Marvell 公司的88E1111,与MAC 之间采用了RGMII V2 标准。因此,在MHS 文件中,这个变量的值应该设置为3。
C_TEMAC_TYPE:值为0 表示该硬核为Virtex 5 Hard,为1 表示该硬核为Virtex 4 Hard。如果使用软核则应该为2。本平台基于V5 芯片,因此正确的值应该是0。
以上是主要的参数修改,其它参数大部分可以采用默认值。在EDK 开发环境中,还可以设置模块对外的管脚连接。具体连接可以按照EDK 的默认方式进行。
3.3.2 内存控制器
DDR 是本平台的核心部件,是MAC 层软件平台VxWorks 的主存储器,因此,内存控制器是平台设计的重点所在,选择EDK 提供的ppc440mc_ddr2 IP 核来实现。
为了提高性能,减少总线读写冲突,Xilinx 在V5 芯片的PPC440 嵌入式模块中内置了MCI (Memory Controller Interface)模块,使得PPC440 对于内存的读写不用通过系统的PLB总线,从而提高了总线利用率和内存吞吐量,使平台能够满足MAC 层高速率,高吞吐量的需求。
ppc440mc_ddr2 核在设计的时候需要考虑两个方面,一个是与MCI[6]之间的接口,另一个是与DDR 芯片之间的接口。与MCI 之间的接口一般直接采用默认设置,而与DDR 芯片之间的接口则需要开发人员根据具体的芯片参数来制定。外围电路的DDR 芯片为海力士的HY5PS1G1631。开发时具体需要考虑一下几个参数:
C_DDR_DWIDTH:本参数表示DDR 的位宽,可以采用16, 32,64,72。本平台选择64。
C_DDR_RAWIDTH:表示内存的行地址宽度,本平台参数值为13。
C_DDR_CAWIDTH:表示内存列地址宽度,可以直接采用默认值10。
C_DDR_BAWIDTH:跟内存bank 数有关,本平台应该设置为3。
上述几个参数是在MHS 文件的ppc440mc_ddr2 核代码块中修改的。要正确配置IP核,还需要在ppc440_virtex5 模块中修改C_PPC440MC_ROW_CONFLICT_MASK ,C_PPC440MC_BANK_CONFLICT_MASK 和C_PPC440MC_CONTROL 三个参数。这三个参数需要由V5 的寄存器规则和外围芯片的封装共同计算。
3.3.3 其它模块的设计
在千兆以太网和内存控制器设计完成之后,其它模块的设计难度与之相比要降低很多。本平台选择xps_uartlite 核实现串口控制器,选择xps_intc 核实现中断控制器, 选择xps_sysace 核实现FPGA 配置功能模块。以上IP 核直接使用EDK 的默认设置即可达到预期目的。
4 结论
本平台能够顺利通过在EDK 的SDK 环境中进行的无操作系统裸板测试。系统软件开发人员则利用EDK 提供的板级支持包(包含各个外设模块驱动程序)成功运行起VxWorks操作系统。MAC 协议软件在本平台的支撑下能够支持速率达到1GBPS 的业务流,实现高清视频、3D 电视的点播。利用FPGA 和可复用的IP 核,针对不同应用场景灵活设计SOPC 的开发模式,在无线通信系统的开发中具有广阔的前景。
[参考文献] (References)
[1] Xilinx. Virtex-5 FPGA User Guide [Z]. Xilinx,Inc, 2007.
[2] 吴浩涵,徐志军,徐光辉. 基于SOPC 技术的嵌入式系统设计[J]. 军事通信技术,2006,27(2): 32.
[3] Xilinx. Platform Spcefication Format Reference Manual [Z]. Xilinx, Inc, 2005.
[4] Xilinx. Embedded Processor Block in Virtex-5 FPGAs [Z]. Xilinx, Inc, 2008.
[5] Xilinx. XPS LL TEMAC (v1.01b) [Z]. Xilinx, Inc, 2008.
[6] Xilinx. DDR2 Memory Controller for PowerPC 440 Processors [Z]. Xilinx, Inc, 2008.
作者:孙啸 |
|
|
|
|
|