一种基于一种基于PCD656的高速的高速PCI总线接口的设计与实现总线接口的设计与实现
本文利用高效PCI芯片和FPGA设计了一款64位总线传输接口电路,传输速度达到212 MB·s-1,较以往总线传输
速度有了较大地提高,满足了目前高速数据传输系统的要求。
现代雷达信号处理具有数据量大、实时性高等特点,而总线传输的效率决定了系统的性能,目前普遍使用标准化的
本文利用高效PCI芯片和FPGA设计了一款64位总线传输接口电路,传输速度达到212 MB·s-1,较以往总线传输速度有了
较大地提高,满足了目前高速数据传输系统的要求。
1 PCI总线接口架构总线接口架构
本系统主要由PCI9656和FPGA构成,系统框图如图1所示。当主机发起读写操作时PCI9656需要响应其操作,并将相应
命令发送到FPGA进行处理,FPGA进行处理后将数据和命令通过PCI9656回传给主机。PCI9656与主机之间的通信需要相应
的
图1 总体传输系统框图
2 PCI9656性能概述性能概述
PCI9656是PLX公司推出的一款兼容32位和64位PCI总线标准的桥接芯片,采用PLX数据流水线结构(Data Pipe
Architecture),内部配有DMA控制器、可编程主模式传输及从模式传输;内部有PCI优先判决器,可以支持外部7个外部主控
器;可由本地中断信号LINTi和LINTo生成一个PCI中断信号INTA;本地时钟独立于PCI时钟工作;支持位宽为8位、16位和32
位的66,MHz本地总线。PCI9656寄存器与PCI9054寄存器兼容,可容易地进行基于32位PCI总线与基于64位PCI总线的软件
移植。
PCI 9656具有6条独立的数据通道,分别支持Direct Master、Direct Slave以及DMA功能模式下的数据传输。
(1)Direct Master模式。用于局部总线到PCI(CompactPCI)的数据传输,主控设备在局部总线端。16 QWord(128
Byte)和32 QWords(256Byte)的FIFO各应用于数据的读、写通道。
(2)Direct Slave模式。用于PCI(CompactPCI)到局部总线的数据传输,主控设备在PCI端。16QWords(128 Byte)
和32 QWords(256 Byte)的FIFO各应用于数据的读、写通道。
(3)DMA模式。DMA传输时PCI9656同时是PCI和局部总线的主控设备,PCI 9656有两条DMA通道(Channel 0、
Channel 1),每条通道都由一DMA控制器和32 QWords(256 Byte)双向FIFO组成。其DMA方式有常规的块模式(Block
Mode)、集散模式(Scatter/Gather Mode)和命令模式(Demand Mode)。
在局部总线端,根据不同的处理器PCI9656有3种工作模式。
(1)M模式。支持Motorola 32 bit的处理器,提供了可与MPC850/860 PowerQUICC直接相连的接口。
(2)C模式。适合大多数处理器的通用模式,比如常用的FPGA,在本设计中采用此模式。
(3)J模式。与C模式类似,但其地址线与数据线复用。
3 总线设备驱动开发总线设备驱动开发
在Windows环境下开发PCI设备驱动程序主要有两种模型,即WinDriver和WDM。本设计使用了WDM驱动模型。开发PCI
设备驱动程序WDM需要处理:硬件访问、中断处理和DMA传输3方面问题。
3.1 硬件访问硬件访问
X86处理器有两种独立的映射空间:I/O空间和内存空间,I/O空间只能通过I/O指令来访问,KIoRange类封装了对I/
O空间的操作命令。对于设计的PCI设备,可以通过实例化KIoRange类来对I/O空间进行相应的操作。