打印

PCI Express开发技术

[复制链接]
1615|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
梅花望青竹|  楼主 | 2013-5-15 22:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. PCI Express技术简介


      PCI Express(PCI-E)是一种强大可靠、可伸缩、灵活并且合乎成本效益的 I/O 互连方式,采用目前业内流行的点对点串行连接,比起PCI以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到PCI所不能提供的高带宽。


PCI Express 的主要特点有:


         l 和PCI 接口兼容的串行架构:无需改变当前的操作系统,同时还能保持原有的平台配置和器件驱动器接口。不仅消除了局限性,还能够简单、快速地整合到未来系统中,可供业内广泛采用。


  l 带宽可升级性与频率和/或互联宽度:通过拓宽通道可以提高每条链路的带宽,以便满足应用要求,如台式机内更宽的图形端口和服务器平台内的多个总线桥接(PCI Express 到 PCI-X、千兆位级以太网或 InfiniBand)。指标规定接口宽度为 x1、x2、x4、x8、x12、x16 或 x32 通道。独有的频率可升级性和源同步时钟,简化了数据同步。此外,还包括积极的功耗管理、QoS、isochrony、热插拔和RAS功能。


  l 分层架构和分组协议:该架构由软件层、交易层、数据链路层和物理层组成。分层实现了可升级性、模块化和设计重用。通过时间复用对电路交换,不会发生带宽浪费的情况。


2. Xilinx公司的PCI Express解决方案


     PCI-E作为高速链路技术,需要设计者具有强的高速模拟设计技能和高速逻辑设计技能。Xilinx为PCI-E设计人员提供了一种快速的解决方案,利用芯片内嵌的高速收发模块和可编程结构,来简化PCI-E的实现难度。此外,FPGA器件可提供经过模拟电路验证的互用性测试的能力,在设计之前就可保证产品的兼容性。


l 代码支持


(介绍IP Core)


l 完整的开发板套件


      为了在更方便地运用PCI Express 总线高性能的同时, 进一步降低开发难度, 设计应用系统时可以利用, Xilinx PCI Express 开发板等,目前包括M(给出开发板的型号)。这些开发板符合PCIExpress规范, 并且通过了相关测试。通常,这些开发板由上述的可编程设计方案或桥接设计方案实现PCI Express接口, 并提供相应的驱动程序, 同时在板上集成了可编程逻辑器件(CPLD或FPGA)和其它必要的资源, 为用户留有充足的I/O口和大量FPGA 引脚, 用户通过配置接口芯片和对FPGA 编程即可方便地实现所需功能, 从而避免了布板连线的麻烦。采用这种设计方案可以有效地缩短研发周期, 降低研发风险。但此类开发板的价格一般较高,并不适用于大批量的应用。

10.4.2  基于FPGA的PCI Express接口开发1. PCI-E总线原理


     PCI-E的连接是建立在一个双向的序列的(1-bit)点对点连接基础之上,这称之为“传输通道”。与PCI 连接形成鲜明对比的是PCI是基于总线控制,所有设备共同分享的单向32位并行总线。PCIe是一个多层协议,由一个对话层,一个数据交换层和一个物理层构成。物理层又可进一步分为逻辑子层和电气子层。逻辑子层又可分为物理代码子层(PCS)和介质访问控制子层(MAC)。 PCI-E总线采用分层传输协议,具体发送过程如图M所示。设备或应用程序的信息(包括头和数据部分)在传输层(Transition Layer)计算可选的端到端CRC(ECRC)字段, 并将该字段附加到数据包中, 形成传输层数据包TLP(Transition Layer Packet); TLP 在数据链路层(Data Link Layer)添加2 个字节的序列码和4 个字节链路CRC (LCRC), 形成数据链路层数据包DLLP(Data Link Layer Packet); DLLP 在物理层(PhysicalLayer) 再添加1 个字节的起始帧和1 个字节的结束帧形成物理层数据包PLP(Physical Layer Packet)。然后, PLP 在物理层经过字节拆分、扰频、8b 10b 编码、并串转换等过程将数据包由差分驱动接口以2.5Gbps( 目前工作频率下) 的速率传输出去, 接收设备执行大致相反的过程完成数据包接收和拆解。其中, 字节拆分用于将数据包的字节分配到各个通道上(只适用于×1 以上的通道), 以充分利用各通道来加快数据传输速度。

图M PCI总线的工作流程

相关帖子

沙发
梅花望青竹|  楼主 | 2013-5-15 22:59 | 只看该作者
扰频是使用一种算法, 伪随机地加扰各个字节以消除比特流中的重复模式, 将能量分散到一个频率范围内, 最大限度地减少所生成的平均EMI 噪音。8b 10b 编码的目的则是为了将高频时钟嵌入数据, 接收端根据比特流中足够多的0 和1 之间的转换来重建接收时钟并利用弹性缓冲区进行时钟的容差补偿, 这样就避免了在发送和接收端传输高频时钟。差分传输则能够大大提高信号的抗干扰能力。
2. PCI-E的FPGA实现方案


     整体设计方案由FPGA实现PCI-E的上层协议,由Philip或TI公司提供的PHY(物理层)器件实现物理层接口,其典型连接如图M所示。这种连接符合Intel公司开发的PIPE 规范(Physical Interfacefor PCI Express Specification)。PIPE规范将PCI-E的物理层分为MAC(Media Access ControlLayer)、PCS(Physical Coding Sub- layer)和MA(Physical Media Attachment Layer)三个子层。
图M FPGA和PHY芯片的典型连接图
图M也可看作是MAC层与PCS层的接口,其中各信号的定义为:

3. PCI-E的代码实现

10.4.3  基于Xilinx IP Core的PCI Express接口开发


图M PCI-E IP Core的用户界面

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

98

主题

2589

帖子

7

粉丝