位置:51电子网 » 技术资料 » 接口电路

PCI总线协议的FPGA实现及驱动设计

发布时间:2008/6/3 0:00:00 访问次数:384

摘要:采用fpga技术,在altera公司的flex6000系列芯片上实现了从设备模式pci总线的简化协议,并给出了windows9x系统下的虚拟设备驱动程序,提供了与应用程序的接口。实现结果表明:该设备结构灵活,功能可靠,有利于与其它模块实现单片集成应用。本系统已应用在数据采集和处理、图像处理等方面。

关键词:pci总线协议 现场可编程门阵列 虚拟设备驱动

目前,许多公司都提出了新型的计算机高速总线,如arapahoe总线标准和hypertransport技术,但各协议互不兼容,没有形成统一标准。作为传统的通用局部总线,pci总线仍然占据着主流个人电脑市场,具有顽强的生命力。

现在市面上存在着各种pci接口芯片,如amcc公司的s5933,plx的9080系列等。专用芯片可以实现完整的pci主设备与从设备模式的接口功能,将复杂的pci总线接口转化相对简单的用户接口,但系统结构受接口芯片的限制,不能灵活地设计目标系统,且成本较高。本文使用符合pci电气特性的fpga芯片进行简化的pci接口逻辑设计,实现了33mhz、32位数据宽度的pci从设备模块的接口功能,节约了系统的逻辑资源,且可以将其它用户逻辑集成在同一块芯片,降低了成本,增加了设计的灵活性。另外,还给出了windows9x系统下的设备驱动程序,可以与应用程序接口,形成一个完整的系统。目前,本系统已经被印染企业应用在数据采集和处理等方面。

1 系统构成与功能描述

系统的总体框图如图1所示。

由图1可见,系统的硬件平台为一块pci卡。此卡的结构十分简洁,主要由fpga芯片、ram芯片和输出接口三部分组成。其中,fpga芯片集成了pci接口模块和数据处理模块。pci接口模块实现了33mhz工作时钟、32位总线宽度的接口功能,支持i/o空间、内存空间及配置空间的读写和pci中断功能。由于简化的pci接口占用的逻辑资源较少,可在同一块芯片中集成其他用户逻辑。作为一个应用实例,本文加入了一个数据处理模块,对pci接口传送来的数据进行处理,通过片外的输出接口输出到下位机。ram芯片为数据处理提供缓存功能。

2 从设备模式下的简化pci协议的实现

为了实现pci接口的基本功能,必须完成以下几个模块:

(1)pci配置空间设置。pci协议支持三种地址空间:i/o空间、内存空间和配置空间。配置空间提供了支持pci设备自动配置的机制,是必需的。

(2)pci从设备状态机。pci总线状态机是具有pci总线的计算机系统状态流,是由一个已知状态到另一个状态的条件、时序的描述。这是pci接口设计中最基本也是最重要的部分。

(3)地址译码和命令译码。地址译码用来确定pci设备是否应当响应当前总线的操作;命令译码则用来指示pci设备根据不同的总线命令作出相应的动作。

本文采用altera公司的max+plusii软件平台,硬件描述语言使用altera hdl语言,也可以方便地转换民vhdl或veriloghdl语言。在此之前,先引入pci总线信号的定义。

2.1 总线信号定义

根据pci总线协议2.2版,从设备模式下pci接口至少包含47根引脚。图2给出了按功能划分的引脚分布,左边是必需引脚。右边是可选引脚。为简化起见,本文采用了如下引脚,其他引脚均不使能或置为高阻态。

(1)由系统提供的33mhz的同步时钟信号clk和复位信号rst#(#表示低电平有效);

(2)关于数据传输的核心信号:32位地址/数据复用线ad[31:0]、总线命令/字节使能复用线c/be[3:0]#和偶校验信号par;

(3)接口控制信号frame#、trdy#、irdy#、stop#、devsel#和idsel。其中,frame#为数据传输起止信号,trdy#为主设备准备好信号,irdy#为从设备准备好信号,stop#为从设备停止请求信号,devsel#为设备选择信号,idsel为配置空间读写时的片选信号;

(4)中断引脚inta#。

为简化pci协议,本文只实现了最重要的总线命令,表1给出了所支持的总线命令对应的c/be[3:0]#编码值。

表1 支持的总线命令

摘要:采用fpga技术,在altera公司的flex6000系列芯片上实现了从设备模式pci总线的简化协议,并给出了windows9x系统下的虚拟设备驱动程序,提供了与应用程序的接口。实现结果表明:该设备结构灵活,功能可靠,有利于与其它模块实现单片集成应用。本系统已应用在数据采集和处理、图像处理等方面。

关键词:pci总线协议 现场可编程门阵列 虚拟设备驱动

目前,许多公司都提出了新型的计算机高速总线,如arapahoe总线标准和hypertransport技术,但各协议互不兼容,没有形成统一标准。作为传统的通用局部总线,pci总线仍然占据着主流个人电脑市场,具有顽强的生命力。

现在市面上存在着各种pci接口芯片,如amcc公司的s5933,plx的9080系列等。专用芯片可以实现完整的pci主设备与从设备模式的接口功能,将复杂的pci总线接口转化相对简单的用户接口,但系统结构受接口芯片的限制,不能灵活地设计目标系统,且成本较高。本文使用符合pci电气特性的fpga芯片进行简化的pci接口逻辑设计,实现了33mhz、32位数据宽度的pci从设备模块的接口功能,节约了系统的逻辑资源,且可以将其它用户逻辑集成在同一块芯片,降低了成本,增加了设计的灵活性。另外,还给出了windows9x系统下的设备驱动程序,可以与应用程序接口,形成一个完整的系统。目前,本系统已经被印染企业应用在数据采集和处理等方面。

1 系统构成与功能描述

系统的总体框图如图1所示。

由图1可见,系统的硬件平台为一块pci卡。此卡的结构十分简洁,主要由fpga芯片、ram芯片和输出接口三部分组成。其中,fpga芯片集成了pci接口模块和数据处理模块。pci接口模块实现了33mhz工作时钟、32位总线宽度的接口功能,支持i/o空间、内存空间及配置空间的读写和pci中断功能。由于简化的pci接口占用的逻辑资源较少,可在同一块芯片中集成其他用户逻辑。作为一个应用实例,本文加入了一个数据处理模块,对pci接口传送来的数据进行处理,通过片外的输出接口输出到下位机。ram芯片为数据处理提供缓存功能。

2 从设备模式下的简化pci协议的实现

为了实现pci接口的基本功能,必须完成以下几个模块:

(1)pci配置空间设置。pci协议支持三种地址空间:i/o空间、内存空间和配置空间。配置空间提供了支持pci设备自动配置的机制,是必需的。

(2)pci从设备状态机。pci总线状态机是具有pci总线的计算机系统状态流,是由一个已知状态到另一个状态的条件、时序的描述。这是pci接口设计中最基本也是最重要的部分。

(3)地址译码和命令译码。地址译码用来确定pci设备是否应当响应当前总线的操作;命令译码则用来指示pci设备根据不同的总线命令作出相应的动作。

本文采用altera公司的max+plusii软件平台,硬件描述语言使用altera hdl语言,也可以方便地转换民vhdl或veriloghdl语言。在此之前,先引入pci总线信号的定义。

2.1 总线信号定义

根据pci总线协议2.2版,从设备模式下pci接口至少包含47根引脚。图2给出了按功能划分的引脚分布,左边是必需引脚。右边是可选引脚。为简化起见,本文采用了如下引脚,其他引脚均不使能或置为高阻态。

(1)由系统提供的33mhz的同步时钟信号clk和复位信号rst#(#表示低电平有效);

(2)关于数据传输的核心信号:32位地址/数据复用线ad[31:0]、总线命令/字节使能复用线c/be[3:0]#和偶校验信号par;

(3)接口控制信号frame#、trdy#、irdy#、stop#、devsel#和idsel。其中,frame#为数据传输起止信号,trdy#为主设备准备好信号,irdy#为从设备准备好信号,stop#为从设备停止请求信号,devsel#为设备选择信号,idsel为配置空间读写时的片选信号;

(4)中断引脚inta#。

为简化pci协议,本文只实现了最重要的总线命令,表1给出了所支持的总线命令对应的c/be[3:0]#编码值。

表1 支持的总线命令

-->
相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!