摘要:针对CPCI 架构通用信号处理平台上利用系统自身以太网络接口实现数据传输效率低、扩展性差等问题, 提出一种采用高速Link 口基于FPGA 上硬核Pow erPC405 的嵌入式千兆以太网通信实现方案, 详细说明了以太网通信板卡的硬件和逻辑的实现, 并分析了TCP/ IP 性能最大化的技术。
传统基于CPCI 架构通用信号处理平台, 由于其并行CPCI 总线物理传输速率的限制, 加上存在以太网协议系统消耗, 造成通过主板网络接口数据传输效率很低, 远远不能满足雷达、声纳等复杂系统对网络通讯带宽的需求。
采用新型高性能FPGA 芯片, 利用高速Link 口4GByte/ s 传输带宽, 开发新的千兆以太网通信板, 实现以太网和高速Link 口数据的交互, 解决通用CPCI 架构信号处理平台之间数据传输的IO 瓶颈问题. 千兆以太网通信板是满足CPCI 规范的一个功能模块, 可以灵活的应用到模拟器、信号处理和数据采集等实际CPCI 架构系统中, 从而满足武器装备系统网络化、通用化、一体化、模块化的要求。
1 基于FPGA 的千兆以太网通信板的系统应用
基于FPGA 的千兆以太网通信板在CPCI 架构通用信号处理平台上实现声纳模拟系统应用时实现框图如下图1 示, 模拟的声纳信号需要通过以太网传送给Linux 集群计算机。
在基于FPGA 的千兆以太网通信卡的信号处理平台上, DSP 板、A/ D 板、D/ A 板和千兆以太网通信板之间的高速、大容量数据交换是通过高速Link 口来实现的. 系统间的数据交互是通过千兆以太网实现的, 利用高速Link 口, 通过千兆以太网数据通信板,实现系统高速Link 口和千兆以太网的无缝衔接, 从而能够解决CPCI 总线带宽问题, 实现数据的和Linux 集群机等其他应用系统的共享和交互. CPCI 总线( 32 bit x 33 Mhz)主要用于实现系统主板和功能板卡( DSP板、A/ D 板、D/ A 板或千兆以太网通信板) ,以及功能板卡间数据互连, 完成系统控制、配置和低速数据传输等功能。
在CPCI 架构通用信号处理平台和Linux 集群计算机之间实现高速网络数据交互的实现主要工作是开发Link 链路口到以太网通信的CPCI 架构板卡。
2 基于FPGA 的千兆以太网通讯板卡的开发
本设计采用了基于Pow erPC405 处理器的SOPC 解决方案, 实现了基于FPGA 的高速嵌入式通信系统板卡, 数据通过千兆以太网实现系统间互连与共享, 主要介绍硬件和逻辑开发方面工作。
2. 1 通讯板硬件开发
设计的千兆以太网通信板卡符合CPCI 架构U6 板卡标准, 是基于Xilinx XC4VFX20 系列FPGA, 内部集成了PowerPC405 处理器, 1 000 M 以太网MAC 模块, 运行频率高达300 MHz。
FPGA 实现Link 链路口数据到以太网MAC 层数据的转换. PCI 接口芯片本地总线的接口逻辑, 系统控制等功能. PLX9056 实现了CPCI 接口逻辑. 在板上扩展了两片MICRON 公司的256 Mb DDR 内存, 作为上电时操作系统的加载和运行空间. 采用Marvell 公司的千兆以太网PHY 芯片88 E1111 和带隔离器的RJ45 接口, 加上FPGA 中的MAC IP 核实现网络数据的传输功能. Plat form Flash 用于存储FPGA 配置文件和系统文件. 本设计扩展了1 个RS422 串行接口用于嵌入式软件的调试. 整个系统的硬件功能原理结构框图如图2 所示。
在进行电路设计时, 要特别注意作为电路核心器件FPGA 各个引脚的连接. 重要快速的时钟信号必须接到全局时钟引脚上; 和DDR、PHY 芯片连接引脚所在的BANK 需要提供电压参考要考虑DDR、PHY 芯片的工作电压; DDR 布线时, 数据和地址线要等长走线, 数据线之间误差控制在10 Mil 内, 地址线误差要控制在20 Mil 以内, 时钟也需要走差分等长线, 长度应大于地址线。
2. 2 FPGA 中逻辑开发
开发采用Xilinx 公司的EDK10. 1 和ISE10. 1 工具软件, EDK 称为嵌入式开发工具包, 由XPS( Xilinx Plat form Studio) , SDK( Softw are development Kit ) , Creat-Import peripheral 和Bash shell 组成. 开发者可以调用上述所有工具, 来完成整个的嵌入式系统开发. 在XPS 环境下添加所需的IP 核, 生成硬件系统框架;调用Platg en 生成嵌入式处理系统的网表文件( . NGC 文件) , 通过软件描述文件( . MSS 文件) 来设置系统软件配置, 并调用Libgen 生成驱动层和库; 在XPS 工程中添加应用软件项目并编写应用软件, 把EDK 中编写好的工程作为一个模块, 加入到ISE 工程中, 然后统一编译, 然后调用处理器对应的编译器编译并和硬件综合后生成的. bit 文件合成后下载到目标板便可以进行调试了。
评论
查看更多