1引言随着计算机技术的发展,数据传输带宽的日益增长,总线技术也在迅速的发展。高速信号传输,海量数据采集与记录,实时视频图像处理以及其他数据处理的数据吞吐量现以kMb/s为量级。未来计算机系统对带宽和扩展性的要求已经超越了第二代总线技术。第三代高性能I/O总线技术——PCIExpress(PCIE)总线解决了以往总线的不足,它的发展将取代第二代总线成为新的数据总线,其提供了更加完善的性能、更多的功能、更强的可扩展性和更低
1 引言
随着计算机技术的发展,数据传输带宽的日益增长,总线技术也在迅速的发展。高速信号传输,海量数据采集与记录,实时视频图像处理以及其他数据处理的数据吞吐量现以kMb/s为量级。
未来计算机系统对带宽和扩展性的要求已经超越了第二代总线技术。第三代高性能I/O总线技术——PCIExpress(PCIE)总线解决了以往总线的不足,它的发展将取代第二代总线成为新的数据总线,其提供了更加完善的性能、更多的功能、更强的可扩展性和更低的成本。
本文研究PCI Express总线技术的发展与构架,介绍采用Xilinx公司的FPGA与NXP公司的PHY器件实现一种经济简单的数据采集设备。在电路设计中,分析了总线信号高速布线的要求。
最后详细介绍数据采集设备的数据通道部分在Xilinx Pipe Core中的实现,并通过WinDriver软件开发简单的驱动程序。
2 PCIE总线发展和构架介绍
2.1 PCIE总线的发展
PCI Express是用来互连诸如计算机和通信平台应用中外围设备的第三代I/O总线技术,第一代总线包括ISA,EISA,VESA和微通道(Micro Channel)总线,而第二代总线则包括了PCI,PCI-X和AGP。PCIExpress是一种能够应用于一点设备、台式电脑、工作站、服务器、嵌入式计算机和通信平台等所有周边I/O设备互连的总线。
PCIE最初由InteI发展,并于1992年在市场发布。PCIE的体系结构继承了第二代总线体系结构最有用的特点,并且采用计算机体系结构中新的开发成果。它保留了原先的通讯模型和下载配置机制,但抛弃了共享总线的方式,采用点到点的总线连接方式。由于它提供了更高的性能特点和越来越大的带宽,从而解决了PCI,PCI-X和AGP的许多缺点,是以后PC发展必然采用的接口总线,其必将取代PCI,PCI-X以及图形加速器(AGP)。
2.2 PCIE总线的构架
PCI Express保持了与PCI寻址模式(加载-存储体系结构具有单层地址空间)的兼容性,从而保证了对现有应用程序和驱动的兼容性。同时,PCI Express的配置机制是与PCI一致的即插即用标准。
软件层发出读写请求,使用基于数据包、分段传输的协议通过物理层传输至I/O设备。链路层向这些数据包添加序列号和循环冗余校验(CRC)以建立一个高度可靠的数据传输机制。基本的物理层包括传输对和接收对两个单工通道,统称为一个信道。1个lane的信道可以保证每个方向约250MB/s标准带宽,这其中大约200MB/s用来传输数据,其余被文件的协议部分占用。这一速率为一般PCI设备的2~4倍,同时PCIExpress总线点到点的总线连接结构可以让每个PCIExpress设备都具有这个带宽。
3 基于FPGA与PHY器件的采集设备实现
3.1 采集通道器件和FPGA的选型及设计
采集设备包含2个采集通道,采用模/数转换芯片ADS5102设计。ADS5102是德州仪器的一款10 b-65MSPS采样率并带内部电压参考的模/数转换器,采用1.8 V模拟供电。与同一类型的ADS5103相比,它的采样率更高,而且采用差分信号输入,有效地提高了输入信号的共模抑制比。
FPGA选用Xilinx公司Spartan-3系列XC3S1000。其采用90 nm材料生产,容量高、成本低,具有业界一流的区块和分布,具有多达784个I/O,MicroBlaze 32位RISC软处理器和支持乘法累加器(MAC)功能的嵌入XtremeDSP功能。
Xilinx Spartan-3 PCI Express设计包括一个PCIExpress Pipe Endpoint LogiCore。Xilinx低成本Spartan-3系列提供PCI Express协议层核。PCIE PipeEndpoint LogiCORE整合了分立的PCIE PHY,提供了全面的、完全符合PCI Express基础规范(PCI Express Base Specification)v1.1的PCIE端点解决方案。
3.2 外部PHY器件PX1011A
NXP公司的PX1011A符合PCI Express规范v1.0a和v1.1,是一款与低成本FPGA一起使用而优化的单通道2.5 Gb/s的PCI Express PHY器件。
数据由接收器的差分输入接口进入PXl011A,在被传送到解串化电路之前,这些数据将小振幅的差分信号变为轨对轨的数字信号。一个载波检测电路将检测线路上是否有数据并将这些信息传送到串行器/解串器SERDES和物理编码子层PCS。SERDES将这些数据串并转化为10位并行数据。然后PCS采用8位/10位解码器来恢复成8位数据格式。
在发送过程中,来自Pipe接口的8位数据通过一个8位/10位编码算法进行编码。8位/10位编码确保串行数据被直流平衡以避免交流耦合系统中的基带漂移,它同时确保足够的数据转换以避免接收端的时钟恢复。
PX1011A的MAC接口采用独立的时钟,由片内100 MHz的基准时钟锁相环产生。锁相环有一个相对较高的带宽来实现可选的扩频并较少EMI。8 b数据接口在250 MFIz上运行并进行SSTL2信号发送,这种模式与流行的FPGA I/O接口兼容。
3.3 硬件电路设计
采集部分硬件电路包含2个通道的ADC和触发电路,每通道ADC转换后的数据CH1[9:0]和CH2[9:0]传输到FPGA端口。PCIE接口电路包括3个部分:第1部分是PX1011A与FPGA的连接信号线,包括8位的收发信号TXD[7:0]和RXD[7:0];控制信号RX_DATAK,RX_VALID,RX_CLK,RX_EIDLE,RX_POLAR,RX_PHY_STAT,TX_DATAK,TX_CLK,TX_EIDLE,TX_COMP,TX_DET_LOOP,TX PWRDN0,TX_PWRDN1,状态信号STAT0,STAT1,STAT2和复位信号RESET。第2部分是PX1011A与PCIE接口的连接信号线,包括差分接收信号,差分发送信号,差分时钟。第3部分是PCI Express的配置接口,包括PCIE_TMS,PCIE_TCK,PCIE_TDO,PCIE_TDI和PCIE_TRST。如图1所示。