首页 » 技术文章 » 基于PowerPC的光纤通道接口卡设计

基于PowerPC的光纤通道接口卡设计

作者:  时间:2011-02-15 20:52  来源:EDN

  摘要:介绍了模块化光纤通道协议功能。采用新一代嵌入式处理器PowerPC440,搭建光纤通道接口卡SOPC系统,实现了光纤通道协议的基本功能,为基于PowerPC的嵌入式系统设计应用提供了参考。

  引言

  现阶段,主流的高性能光纤通道通用产品基本上被QloglcMorethanDDC等少数几家国外大公司垄断,其昂贵的价格,加上一些发达国家对相关产品技术的封锁,使得国内的光纤通道技术发展受到了一定程度的影响。因此,对自主知识产权的专用光纤通道芯片的研究就显得尤为重要。

  目前,大多嵌入式系统开发都采用ARM处理器或软核处理器,而对于处理能力更强大的PowerPC处理器却没有更深入的研究和广泛的应用,对于 Xilinx公司的嵌入式处理器PowerPC440的应用性研究也非常少见。本文基于PowerPC440硬核,对嵌入式技术在光纤通道网络中的应用进行了一些探索。

  1 设计方案

  光纤通道协议(以下简称FC协议)支持多种拓扑结构,但由于交换机价格昂贵,在实际应用中还未普及。相对而言,简单的点对点拓扑和性价比较高的仲裁环拓扑在现阶段更为适用。本文即针对这两种拓扑结构,在深入分析FC协议的基础上采用模块化的思想对功能作了划分,如图1所示。其中由虚线框标识的序列/交换管理模块由软件实现。

  接收数据:

  接收通道从光接收机接收其输出的串行信号,经过串并转换、8/10位解码、832解复用后,将没有错误的字传给接收控制模块。

  接收控制模块对接收通道接收的信息进行分流,将原语序列交给相应的状态机,将数据放入接收缓存后通知序列/交换管理模块。

  交换管理逻辑将根据帧头内容和交换管理块的内容进行进一步的高层次的差错检验和交换/序列管理,并且等序列接收完成后通知上层取数据。

  发送数据:

  当上层需要发送数据时,首先给光纤通道接口控制模块发送命令。接口控制模块根据命令的内容取出数据,并结合命令参数将数据打包成帧后通知发送控制模块。

  发送控制模块根据一定的规则控制不同的数据源分时使用发送通道,数据源包括发送缓冲区的帧、状态机发出的原语序列和原语信号。

  发送通道将从接收控制模块接收到的字进行分解,再对并行的字节信息经过8/10位编码、并串转换发送给光发射机。

  其中环/端口控制模块实现环初始化状态机、环/端口状态机、原有端口状态机功能。根据原语信号和原语序列的不同,系统或进入原有端口状态机进行点对点传输过程,或进入环端口状态机进行仲裁环传输过程。

  从总体上看,硬件应该负责帧级别的管理,软件应该负责序列和交换级别的管理。软硬件接口采用共享存储器与寄存器的设计思想。系统硬件部分与软件部分通过读写共享的帧缓存及接口寄存器实现信息交互。

  2 基于PowerPCSOPC系统搭建

  本设计采用Xilinx公司的Virtex-5 FXT系列开发板为开发平台。此开发板集成了两个嵌入式PowerPC440RISC核,同时具有灵活的存储器管理单元(MMU)3个相互独立的128 PLB总线接口,独立的32 KB数据存储器和32 KB的指令存储器,4个直接存储器存储(DMA)控制单元,以及设备控制寄存器(DCR)等。其中PowerPCA40处理器具有高达500 MHz的速度,采用IP嵌入架构的形式整合到FPGA器件中,增强型BOOK-E体系结构,内部包括一个具有7级流水线的微内核,每周期最多可执行两条命令,从而提高了整体的吞吐量。PLB总线采用36位地址路径,可提供64 GB的内存寻址能力。

  Xilinx公司提供的EDK开发工具是一种专门针对FPGA内部嵌入式处理器的集成开发工具包,主要的软件设计由EDK中的子工具包SDK完成。用户可以通过集成在EDK中的XPS来调用各种工具完成嵌入式系统平台的搭建工作。

  EDK101版本较之91版本有很大的变化,其中软核版本升级到71IBM CoreConneet总线标准中的OPB总线被PLB总线代替,还提供了丰富的外围IP可供选择。光纤通道接口卡的FPGA实现架构如图2所示。

  (1)PowerPC处理器和高速存储器通过PLB高速总线互联在一起构成嵌入式操作系统和软件系统的运行平台。

  (2)用户接口IP提供一个方便的接口,供外部设备操控接口卡芯片,亦可对该芯片的工作状态进行动态监控。

  (3)采用FPGA芯片内部集成的可编程高速串行收发器RoeketI/O来负责数据的发送和接收。

  (4)在数据发送端,硬件通过DMA方式读取与序列和交换管理有关的队列,然后根据队列中的信息,确定每个帧头的内容,再通过DMA方式读取管理内存中的数据并组装成帧发送出去;在数据接收端,硬件接收到帧后,通过DMA方式写到内存中,软件负责将帧重组为序列,再将序列重组成交换。

相关推荐

用FPGA 嵌入式处理器实现高性能浮点元算

Xilinx  PowerPC  2011-05-10

基于VxWorks的电力系统故障录波器设计

VxWorks  PowerPC  2011-03-04

基于PowerPC的光纤通道接口卡设计

Xilinx Virtex-5 ML510嵌入式开发方案

剖析几种主流嵌入式软体程式码压缩技术

ARCompact  PowerPC  CodePack  2009-03-31

LSI TARARI T2000 10G内容处理器

LSI  PowerPC  T2000  2008-09-24
在线研讨会
焦点