当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]0 引言PCI Express总线是新一代的I/O局部总线标准,是取代PCI总线的革命性总线架构。PCI总线曾经是PC体系结构发展史上的一个里程碑,但是随着技术的不断发展,新涌现出的一

0 引言

PCI Express总线是新一代的I/O局部总线标准,是取代PCI总线的革命性总线架构。PCI总线曾经是PC体系结构发展史上的一个里程碑,但是随着技术的不断发展,新涌现出的一些外部设备对传输速度和带宽有更高的要求,PCI设计之初并没有考虑这些因素,因此并不能完全满足这些外部设备的需求。PCI Express总线正是在这种背景下应运而生的。

一个PCI Express连接可以被配置成x1、x2、x4、x8、x12、x16和x32的数据带宽。Xilinx公司的Virtex5系列FPGA芯片内嵌PCI-Express-Endpoint BLOCk硬核,为实现单片可配置PCI-Express总线解决方案提供了可能。

本文在研究PCI-Express接口协议和PCI-Express Endpoint Block硬核的基础上,使用Virtex5LXT系列的XC5VLX50T FPGA芯片设计PCI- Express接口硬件电路,现YPCI-Express x4总线数据的传输。

1 PCI-Express总线概述

PCI-Express是一种高性能、通用的I/O互连技术,可以广泛应用于计算和通讯的平台。与传统的PCI/PCI-X总线相比,PCI Express用高速串行接口替代了PCI-X的并行接口;用点到点的基于Switch的交换式通讯替代了PCI-X的基于总线的通讯;用基于包的传输协议(PACketbasedprotocol)替代TPCI-X的基于总线的传输协议。此外,它还引入了一些新的特性:更强的电源管理、服务质量控制(QoS),支持热拔插,以及完善的错误处理和恢复。

1.1 PCI-Express设备/拓扑结构

PCI-Express的典型拓扑结构如图1所示。PCI-Express协议中共定义了三种设备:RootComplex、Endpoint和Switeh。

 

Root Complex在系统中的位置类似于PCI-X中的主桥,它是I/O层次的根,它将CPU和MM连接至I/O部件。每个Root Complex可以有一个或多个PCI-Express Port(Root Port),每个接口定义一个层次域。Endpoint是PCI-Express的端点设备,可以分为PCI-Express Endpoint和LegacyEndpoint两类。

Switch是PCI-Express的交换设备,可以理解为逻辑上由多个PCI-PCI桥组合而成,每个桥对应于一个SwiSh端口。从配置软件来看,Swi-tch是两个或更多个逻辑的PCI-PCI桥。

1.2 PCI-Express的层次

PCI-Express协议中定义了三层结构:事务层(Transaction Layer)、数据链路层(Data Link Layer)和物理层(PhysICal Layer)。其结构如图2所示。

 

事务层主要负责组包和拆包,负责管理基于信用的流控制。

数据链路层主要负责链路的管理和数据完整性的管理,包括错误的检测和错误的纠正。

物理层包含接口的所有电路:驱动器和输入缓冲、并-串/串-并转换、锁相环、阻抗匹配电路,具有接口初始化和维护的功能。物理层可以更进一步细分为逻辑物理层(Logical Physical Layer)和电气物理层(EleCTRical Physical Laycr)。逻辑物理层在发送方向上负责从数据链路层接收包,处理后发送上链路;在接收方向上负责将从链路收到的包经过处理转发到数据链路层。电气物理层是连接到链路的模拟接口,包含每个通道的差分收发器。

1.3 PCI-Express的包

对应于协议定义的三层结构,PCI Express定义了三种包:

(1)TLP:对应于事务层,主要完成协议中定义的存储器事务、I/O事务、配置事务和消息事务。

(2)DLLP:对应于数据链路层,主要用于链路管理的功能,包括和TLP确认相关的ACK/NAK协议、电源管理和流控制信息的交换。在这一层提供了点到点的链路重传机制和链路层的ECC校验,从而提供了可靠的容错机制。

(3)PLP:对应于物理层,能够支持物理层的链路训练,时钟容忍/补偿,自治的硬件电源管理。

2 Virtex-5 Lxt简介

综合考虑了实现PCI Express总线的周期、难易、成本等因素,最后本文采用了Xilinx公司65nm工艺的Virtex5 LXT系列芯片来实现PCI-Express的总线接口以及应用。

Virtex 5 Lxt PCIE Endpoint block具有PCI-Express的完整功能,完全符合PCIe基本规格v1.1版要求,作为FPGA内部的硬核,它是可配置的PCIe端点解决方案,大大增加设计的灵活性,降低设计的RNE费用,并且支持1x、2x、4x或8x通道的实现,为系统的功能扩张提供了有效的途径。

该系列芯片内嵌PCIE Endpoint block集成了PCIE协议中的物理层(PHY)、数据链接层(DLL)和传输层(TL),同时它还实现了PCI-Express设备的功能配置寄存器,其结构框图如图3所示,包含有以下几个接口:时钟和复位接口、配置和状态接口、电源管理接口、用户接口和传输层接口。该PCIE Endpoint block完成了PCI-SIG兼容性专题研讨会的严格测试步骤,保证了产品的兼容性,降低了风险;集成了Rocket IO-TMGTP收发器,该GTP收发器能提供100Mb/s到3.2Gb/s的串行连接性能,可以支持PCI-Express协议所需的2.5Gb/s的速率,与PCI-Expre-ss协议每通道2.5Gb/s工作模式兼容,这使得它在数据的编解码上满足PCI-Express协议的要求。本文使用该系列中的XC5VLX50T芯片设计PCI-Express接口硬件电路,实现PCI-Express x4的数据传输。

 

3 PCI-Express总线接口设计

本文的硬件主要就是单片XC5VLX50T实现PCI-Express总线接口,并在该FPGA内设计具体应用,完成PCI-Express总线接口的测试和使用。本文实现的应用有如下几个特性:

(1)主机通过控制FPGA内部的寄存器文件来启动和停止DMA操作,支持endpoint到root的全双工DMA读写。

(2)使用LogICORE产生的Endpoint BLOCk Plus进行PCI-Express总线接口设计。该硬核集成了PCIE协议中的物理层、数据链接层的解析,提供传输层接口(TRN)供设计者对相应的事务层数据包的处理。

(3)PCI-Express总线接口支持x4通道的实现,主机操作系统为嵌入式Linux 2.6.10系统。在Windows XP下也进行PCI-Express接口测试。[!--empirenews.page--]

FPGA是整个设计的最关键部分,主要实现:PCI-Express硬核;在硬核的用户接口和传输接口实现PCI-Express传输本地总线的时序逻辑;并且在其内部完成DMA控制时序逻辑。FPGA是PCI-Express总线接口和应用模块数据传输的通道。在Host端使用嵌入式的MPC8548作为主机系统应用CPU,设计相应的驱动和应用程序配合FPGA内部代码的调试。图4为该系统的拓扑框图。

 

使用LogiCORE产生的Endpoint Block Plus中,定义了两个基地址memory空间,一个用于DMA寄存器的操作,一个用于用户逻辑空间。本文主要介绍的就是用户应用层接口的实现,该接口将通过TRN进行相应的事务层数据包的处理。

用户应用层接口主要包括如下几个模块:a.TX Engine模块;b.RX Engine模块;c.Egress Data Presenter模块;d.Read Request Wrapper模块;e.DMA Control/Status Registers模块。这几个模块之间的拓扑关系如图5所示。

 

TX Engine:该模块主要用于产生和发送事务层数据包:Posted事务包(存储器、I/O、配置读写事务)、non_Posted事务包(该总线事务包分两步进行,首先是发送端向接收端提交总线读写请求,之后接收端再向发送端发送完成包)和completion(完成)包。该模块通过发送posted memory写,non_Posted memory读,和接收completion包来完成DMA的读写请求。该模块的启动由DMA Control/Status Registers模块控制。该模块又包括若干子模块:posted PACket generator模块、non posted packet generator模块、completion packet generator模块和transmit TRN state machine模块,上述三个generator模块均由transmit TRN状态机模块控制,该状态机的控制信号来自Endpoint Block Plus核以及DMA Control/StatusRegisters模块。

RX Engine:该模块主要用于接收Endpoint BlockPlus模块从RX TRN接口送出的事务层数据包,对不同的事务包进行解析,根据相应的包做相应的处理,该模块能处理如下三种事务包:完成包、memory读包和memory写包。该模块又包括如下子模块:接收TRN状态机模块、接收TRN监控模块、接收数据状态机模块以及两个fifo用于存放完成包的接收数据和完成包中目的和源的地址以及数据包的长度,用于设置DMA Control/Status Registers模块中的各个状态。接收TRN状态机模块只负责TRN接口处的数据包的状态和接收收据,送给后面的模块;接收TRN监控模块负责根据不同的TLP包来分配数据和状态,是直接将带数据的完成包的数据写到用户应用接口fifo,还是读请求或写请求TLP包通知TX engine,组成相应的包发送出去或者通知DMA控制器进行相应的DMA传送控制;接收数据状态机模块对接收到的数据进行相应的处理。

Egress Data Presenter:该模块是专门为TX Engine模块提供发送数据的模块,要发送到主机的数据都在该模块中进行处理,它和TX Engine模块间的数据位宽定义为64bit。

Read Request Wrapper:该模块主要用于TX Engine模块和RX Engine模块之间的通信控制接口,本文中设计DMA的读写操作每包可能的数据长度为:1KDW、2KDW、3KDW、4KDW、8 KDW、16 KDW之间可选。该选择是由主机通过写寄存器文件来进行长度策略选择的。

DMA Control/Status Register:该模块主要用于主机系统通过控制FPGA内部的寄存器文件的设置来启动和停止endpoint到root的DMA读写操作。包括一个控制寄存器以及若干个配置寄存器,配置寄存器有主机的目的地址、源地址信息,本地的目的地址、源地址信息,以及每次DMA的数据包长度等信息。由控制寄存器中的bit位的状态来启动所有的状态机的控制,所以控制寄存器是整个操作的关键信号。

4 实验结果分析

首先初始化FPGA内部的寄存器文件,通过设置相应的控制位启动数据从Host内存通过PCI-Express接口向下传输到FPGA内部,传输完毕后,FPGA内部控制逻辑将接收的数据进行处理,并得到向上输出的数据,然后通过PCI-Express接口,再将数据传输回Host内存,Host内存的检测程序对所收到的数据进行校验。在进行FPGA内部PCI-Express接口速度测试时,由于Host读写内存需要一定的时间,所以在测试速度时不进行Host内存的读写。而在正确性测试时,则通过Host读写内存判断数据是否正确。所有ChipScope截图均以一包数据包大小为4KDW为例进行捕捉,图中有文字标识其中的信号意义。

图6为Host将数据通过PCI-Express接口向下传输到FPGA内部的ChilpScope截图。

 

从图中可以看出,FPGA接收数据包的最大载荷为512B,而发送数据包为128B。在Host将数据通过PCI-Express接口向下传输到FPGA过程中,首先FPGA要向Host发送一系列mem读请求包,Host收到请求包后,就根据请求包的内存地址和数据长度发送CPLD包给FPGA,FPGA解析CPLD包并存储数据到相应数据区。图7为在Windows XP下测得的每包数据包大小为16KDW时传输速率为5.03Gb/s。

 

图8为FPGA处理完后将数据通过PCI-Express接口向上传输到Host的ChipScope截图。从图中可以看出包和包之间的发送有一定的间隔,这是因为控制每包发送造成的间隔,所以在同样每包数据包大小为16KDW时测得的传输速率要底于Host向下传输的速率,只有3.7Gb/s左右。

 

5 总结和展望

Virtex5系列FPGA芯片内嵌PCI-Express End-pointBLOCk硬核,为实现单片可配置PCI-Express总线解决方案提供了可能。基于Virtex5 FPGA的PCI-Express设计实现方式简单、配置灵活,适合于各种应用领域,降低了设计成本,缩短了产品上市时间,保证了产品的功能性和易用性,开创了高效率PCI Express开发的新时代。[!--empirenews.page--]

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Micro热插拔技术作为现代电子设备中常见的一种接口设计,其便捷性和灵活性得到了广泛应用。然而,关于Micro热插拔是否需要断电的问题,一直存在争议。本文将详细探讨Micro热插拔的原理、优缺点,以及在不同情况下是否需要...

关键字: Micro热插拔技术 现代电子设备 接口设计

其一,是把系统所需的外设和单片机连接起来,使单片机系统能与外界进行信息交换。如通过键盘、A/D 转换器等外部设备向单片机送入数据、命令等有关信息,去控制单片机运行;通过显示器、发光二极管、打印机等设备把单片机处理的结果送...

关键字: 单片机 外部总线 接口设计

摘 要 :视频监控系统是计算机应用中的重要领域之一。数字化摄像头网络化之后,监控系统正在不断引入新的功能,为使现有监控系统能更好地应对复杂环境,满足不同监控要求,就需要追加新功能,在系统架构与设计上进行调整。因此,如何将...

关键字: 智能监控 系统架构 模块化设计 接口设计 数据传输 深度相机

    1 引言   随着电子系统的不断发展,芯片间以及板间的数据传输需求也在不断增长,传统的单端并行数据传输模式早已不能满足现在高带宽应用的要求。USB 3.0、SA

关键字: 串行传输 virtex-5

1、引言 can总线是由德国bosch公司为现实汽车测量和执行部件之间的数据通讯而设计的、支持分布式控制及实时控制的串行通讯网络。can总线通讯的波特率可高达1mbps,最远距离可达10

关键字: 卫星 通信接口 CAN总线 接口设计

今年是5G元年,全球各个通讯公司都使出来毕生的经历,为了在未来5G市场上抢占一块好的地方,他们之间的竞争也催生了一大批新技术。工信部发放4张5G牌照,标志着中国正式进入

关键字: 5G mimo 总线与接口

在5G通讯领域,目前做的比较好的当属华为,但是其他几家公司也不甘示弱,就在最近,三星电子成功开发支持28GHz频段的“5G综合型基站”(Access Unit),是目前5G商

关键字: 5g通讯 三星 华为 总线与接口

广告商与受众之间必不可少的沟通媒介最核心的恐怕属于数字标牌,它已演变为交互式个性化通讯工具,为用户提供了更直观的的参与感与体验。研华基于云数字标牌解决方案一应俱

关键字: 总线与接口 数字标牌 研华

通常情况下在工业现场经常需要用两个隔离DC-DC搭配单独的信号隔离电路的方法去隔离RS-232与RS-485,但隔离的性能存在差异性,并且占板面积较大。本文将为你介绍一种稳定可靠、应用简便的全隔离解决方案。

关键字: rs-232 rs-485 多协议接口模块 总线与接口

近年来,第五代移动通信系统5G已经成为通信业和学术界探讨的热点。5G的发展主要有两个驱动力。一方面以长期演进技术为代表的第四代移动通信系统4G已全面商用,对下一代技术

关键字: 5G 总线与接口 数据分析
关闭
关闭