PCI9052接口电路的功能及应用.doc_第1页
PCI9052接口电路的功能及应用.doc_第2页
PCI9052接口电路的功能及应用.doc_第3页
PCI9052接口电路的功能及应用.doc_第4页
PCI9052接口电路的功能及应用.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PCI9052接口电路的功能及应用1PCI总线目标接口芯片PCI9052及其应用7基于DSP的PCI总线数据采集系统的研究10PCI9052总线接口芯片及其ISA模式应用14 PCI总线接口芯片PCI 9052及其应用 基于PCI总线的高速信号采集卡设计 基于PCI总线的单圈绝对式光电轴角编码器实时数据采集系统 基于FPGA的PCI接口控制器模型的设计 一种基于DSP的PCI嵌入式设备设计与实现 基于PCI总线四轴运动控制卡的设计与研究 CPCI总线与VME总线桥接底板的研制PCI9052接口电路的功能及应用摘要:PCI总线是Pentium主机最常见的总线,基于PCI总线形成的CompactPCI和PXI总线广泛地应用在仪器和自动化领域。PCI适配卡的接口设计变得越来越重要,介绍PCI专用接口电路PCI9052的功能,通过一个例子介绍它的应用。关键词:外部设备互连总线;局部总线;接口电路;PCI9052;应用1 引言 PCI(Peripheral Component Interconnect)总线具有独立于处理器、高数据传速率、即插即用、低功耗、适应性强等特点,已成为微型机的主流总线。基于PCI总线形成的CompactPCI和PXI总线广泛应用于仪器和自动化领域。随着PCI总线的广泛应用,其接口的设计开发显得尤为重要。由于PCI总线的独特性能,如信号负载能力、支持数据的突发传送、地址/数据、命令/字节使能信号总线复用等,使中小规模的器件难以实现接口电路。实现PCI总线接口一般采用CPLD或FPGA设计PCI接口,这种方法难度很大;另一种是采用专用的PCI接口电路,使设计开发者免除繁琐的时序分析,缩短开发周期,降低开发成本。本文介绍PCI9052接口电路的功能及其在PCI板卡设计中的应用。 2 接口电路 PCI9052是PLX公司开发的低价位PCI总线目标接口电路,功耗低,采用PQFP型160引脚封装,符合PCI2.1规范,它的局部总线(LOCAL BUS)可以通过编程设置为8/16/32位的(非)复用总线,数据传送率可达到132Mb/s。提供了ISA接口,可以使ISA适配器迅速、低成本地转换到PCI总线上。主要功能与特性如下所述: 异步操作。PCI9052的Local Bus与PCI总线的时钟相互独立运行,两总线的异步运行便于高、低速设备的兼容。Local Bus的运行时钟频率范围为0MHz40MHz,TTL电平,PCI的运行时钟频率范围为0MHz33MHz。 支持突发操作。PCI9052提供一个64字节的写FIFO和一个32字节的读FIFO,从而支持预取模式即突发操作。 中断产生器。可以由Local Bus的二个中断信号LINTi1和LINTi2产生一个PCI中断信号INTA。 串行EEPROM接口,用于存放PCI总线和Local总线的配置信息。 5个局域总线地址空间和4个片选,基址和地址范围可以由串行EEPROM或主控设备进行编程。 大/小Endian模式的字节交换,有二种交换字节顺序的输出方式。 总线驱动。所有地址、数据和控制信号都有PCI9052直接驱动,不用额外的驱动电路。 Localbus等待状态。除了等待信号LRDYI用于握手之外,PCI9052还有一个内部等待产生器(包括地址到数据周期、数据到数据周期和数据到地址周期的等待)。 PCI锁定机制。主控设备可以通过锁定信号占有对PCI9052的唯一访问权。 ISA总线模式。PCI9052提供一个ISA逻辑接口,用户可直接使PCI总线和ISA总线相连,可以非常容易地将ISA设计转换到PCI。 PCI9052的接口示意图如图1所示。 图1 PCI总线接口示意图 3 PCI9052的功能及操作 3.1 初始化 上电时,PCI总线的RST信号将PCI9052的内部寄存器设置为缺省值,同时,PCI9052输出局部复位信号(LRESET),并且检查EEPROM是否存在。如果设备上装有EEPROM,且EEPROM的第一个16字节非空,那么,PCI9052根据EEPROM内容设置内部寄存器,否则设为缺省值。 3.2 复位 PCI9052支持二种复位方式:硬件复位和软件复位。硬件复位是PCI9052总线接口的RST信号输入有效时将引起整个PCI9052复位,并输出LRESET局部复位信号。软件复位是PCI总线上的主机可以通过设置控制寄存器CNTRL(50H)中的软件复位字节(Bit30)来对PCI9052复位,并输出LRESET信号。此时,PCI和局部总线的配置寄存器的值将保持不变。当CNTRL中的软件复位字节有效时,PCI9052仅对配置寄存器的访问应答,对局部总线的访问不响应。PCI9052保持这种状态直到PCI总线上的主机清除软件复位字节。3.3 对串行EEPROM接口的访问 复位后,PCI9052开始读串行EEPROM,若读出的第一个字非FFFFH,则PCI9052认为有一个有效的EEPROM存在,并且继续进行读操作,否则,认为EEPROM无效。PCI总线的主设备可以读、写连接在PCI9052上的串行EEPROM。对其进行读、写操作之前需要将控制寄存器CNTRL25(使能位)设置为“1”,并控制CNTRL24位以产生串行EEPROM的时钟,然后,从EEDI送入指令代码。如果在指令代码之后由EEDO输出“0”,则表明可以对其进行读、写。需要结束操作时,只要将CNTRL25设置为“0”即可。 3.4 对内部寄存器访问 PCI9052提供了二种类型的片内寄存器,即PCI配置寄存器和局部配置寄存器,二者都只能由PCI总线和串行EEPROM访问,也可以通过设置寄存器CNTRL13:12禁止对后者的访问,这样,极大地增强了接口设计的灵活性。 3.5 直接数据传输模式 PCI9052支持PCI总线上的主处理器对局部总线上的设备进行直接访问。PCI9052的配置寄存器将访问映射到局部地址空间。片内的读写FIFO存储器使PCI9052支持PCI总线与局部总线之间进行高性能的猝发传送。PCI总线主控访问局部总线示意图如图2所示。 图2 PCI主控直接访问局部示意图 3.6 PCI中断(INTA)的产生 要产生PCI中断INTA,首先将寄存器INTCSR6(PCI中断使能位)设置为“1”,如果需要以软件方式产生中断,则只需将INTCSR7(软件中断位)设置为“1”。如果系统设计方案中选用由局部总线上的设备产生中断信号INTi1和INTi2、再生成PCI中断INTA的方式,只要将寄存器INTCSR的相关位按表1进行设置,复位后INTCSR的值全部为“0”。表1 寄存器INTCSR相关的设置 位 含 义 设置为“1” 设置为“0” 0 (3) INTil(INTi2) 使 能 使能 禁止 1 (4) 极 性 高电平有效 低电平有效 2 (5) 状 态 中断激活 中断末激活 8 (9) 选 择 使 能 边缘触发 电平触发 10(11) 边缘触发清除位 清除边缘触发 保持 4 应用实例 PCI9052是功能非常强大的PCI接口电路,用它设计PCI适配卡将使接口变得非常方便。图3是PCI主处理机读取SRAM的接口示意图,其主要功能是实现对RAM的单次或突发读、写操作。 图3 存储器突发读写示意图 4.1 电路连接 按照图3中的连接电路,对于SRAM主要有以下几个引脚:A(17,0)、I/O(7,0)、OE、CE、WE等。地址线A(17,2)与本地地址线LA17,2相连,根据PCI9052的LBE0,3的定义,这里用8位数据总线将LBE0与A0连接,LBE1与A1连接,OE与PCI9052的CS0相连。PCI9052为设计人员提供了4个片选信号CS(3:0),可以为4个设备提供片选信号,这样,可以避免设计人员在设计电路时设计片选解码电路,其地址和范围可由其对应的内部寄存内部本地寄存器配置。串行EEPROM用于存储配置寄存器内的配置信息,可以采用NM93C46或与之兼容的存储器。 4.2 寄存器设定 电路连接好后,要使电路能正常工作,必须对PCI9052内部寄存器进行配置。根据电路性能及特点,应将寄存器设定为非复用工作方式,采取存储器映射,8位数据总线。局部总线0的基地址寄存器值为240001H,其地址范围寄存器值为3FFF8H,其描述寄存器值为39H;片选0基址寄存器的初始值为4C0001;命令寄存器的初始值为02H;状态寄存器的初始值为800H,其他寄存器采用默认值。确定好各个寄存器的值后,应依据一定的次序将寄存器的初始值写入EEPROM。4.3 驱动程序的开发 为了从PCI总线配置寄存器中获得主机动态分配的映射基址并对映射端口进行读写,必须编写驱动程序。编写Windows驱动程序时,可以使用DDK,但难度较大。为了简化驱动程序开发,可使用Jungo公司推出的WinDriver开发工具。WinDriver可自动生成VxD驱动程序及相应的高级函数。使用者不需具备Windows驱动程序开发知识,所生成的高级函数可直接在VC或CBuilder等高级编程语言中调用。 5 结论 实用证明,用专用PCI接口电路对设计PCI接口卡带来很大的方便。本文主要介绍PLX公司的PCI9052专用接口电路,设计者可根据需要选用其他接口电路,不需要ISA接口时,可选用PCI9050;需要DMA数据传送时,可选用PCI9054。专用接口电路是设计PCI适配卡的最佳方法,不但大大缩短了设计周期,而且有利于驱动程序的开发。 参考文献 1李贵山.戚德虎.PCI局部总线开发者指南M.西安:西安电子科技大学出版社,1997. 2杨全胜.胡友彬.现代微机原理与接口技术M.北京:电子工业出版社,2002. 3TomShanley,DonAnderson,刘晖译.PCI系统结构M.北京:电子工业出版社,2000. 3.6 PCI中断(INTA)的产生 要产生PCI中断INTA,首先将寄存器INTCSR6(PCI中断使能位)设置为“1”,如果需要以软件方式产生中断,则只需将INTCSR7(软件中断位)设置为“1”。如果系统设计方案中选用由局部总线上的设备产生中断信号INTi1和INTi2、再生成PCI中断INTA的方式,只要将寄存器INTCSR的相关位按表1进行设置,复位后INTCSR的值全部为“0”。表1 寄存器INTCSR相关的设置 位 含 义 设置为“1” 设置为“0” 0 (3) INTil(INTi2) 使 能 使能 禁止 1 (4) 极 性 高电平有效 低电平有效 2 (5) 状 态 中断激活 中断末激活 8 (9) 选 择 使 能 边缘触发 电平触发 10(11) 边缘触发清除位 清除边缘触发 保持 4 应用实例 PCI9052是功能非常强大的PCI接口电路,用它设计PCI适配卡将使接口变得非常方便。图3是PCI主处理机读取SRAM的接口示意图,其主要功能是实现对RAM的单次或突发读、写操作。 图3 存储器突发读写示意图 4.1 电路连接 按照图3中的连接电路,对于SRAM主要有以下几个引脚:A(17,0)、I/O(7,0)、OE、CE、WE等。地址线A(17,2)与本地地址线LA17,2相连,根据PCI9052的LBE0,3的定义,这里用8位数据总线将LBE0与A0连接,LBE1与A1连接,OE与PCI9052的CS0相连。PCI9052为设计人员提供了4个片选信号CS(3:0),可以为4个设备提供片选信号,这样,可以避免设计人员在设计电路时设计片选解码电路,其地址和范围可由其对应的内部寄存内部本地寄存器配置。串行EEPROM用于存储配置寄存器内的配置信息,可以采用NM93C46或与之兼容的存储器。 4.2 寄存器设定 电路连接好后,要使电路能正常工作,必须对PCI9052内部寄存器进行配置。根据电路性能及特点,应将寄存器设定为非复用工作方式,采取存储器映射,8位数据总线。局部总线0的基地址寄存器值为240001H,其地址范围寄存器值为3FFF8H,其描述寄存器值为39H;片选0基址寄存器的初始值为4C0001;命令寄存器的初始值为02H;状态寄存器的初始值为800H,其他寄存器采用默认值。确定好各个寄存器的值后,应依据一定的次序将寄存器的初始值写入EEPROM。4.3 驱动程序的开发 为了从PCI总线配置寄存器中获得主机动态分配的映射基址并对映射端口进行读写,必须编写驱动程序。编写Windows驱动程序时,可以使用DDK,但难度较大。为了简化驱动程序开发,可使用Jungo公司推出的WinDriver开发工具。WinDriver可自动生成VxD驱动程序及相应的高级函数。使用者不需具备Windows驱动程序开发知识,所生成的高级函数可直接在VC或CBuilder等高级编程语言中调用。 5 结论 实用证明,用专用PCI接口电路对设计PCI接口卡带来很大的方便。本文主要介绍PLX公司的PCI9052专用接口电路,设计者可根据需要选用其他接口电路,不需要ISA接口时,可选用PCI9050;需要DMA数据传送时,可选用PCI9054。专用接口电路是设计PCI适配卡的最佳方法,不但大大缩短了设计周期,而且有利于驱动程序的开发。 参考文献 1李贵山.戚德虎.PCI局部总线开发者指南M.西安:西安电子科技大学出版社,1997. 2杨全胜.胡友彬.现代微机原理与接口技术M.北京:电子工业出版社,2002. 3TomShanley,DonAnderson,刘晖译.PCI系统结构M.北京:电子工业出版社,2000.PCI总线目标接口芯片PCI9052及其应用摘要:PCI9052是PLX公司继PCI9050之后新推出的一种低成本的PCI总线目标接口芯片,它传输速率高,数据吞吐量大,可避免用户直接面对复杂的PCI总线协议。文中主要介绍了PLX公司的PCI总线目标接口芯片的功能与应用,并给出了具体的应用设计实例。 关键词:PCI总线 局部总线 配置空间 PCI9052目前,PCI总线已成为新一代个人计算机的标准总线,它是一种高性能的32/64位地址数据复用总线,总线时钟频率的033MHz。它不象ISA异步总线那样把地址寻址和数据读写控制信号都交由微处理器产生,而是一种独立于处理器的同步总线,可以支持猝发传送。为支持即插即用功能,PCI总线规范定义了264字节的配置空间。由于PCI总线协议比较复杂,因而其接口电路实现起来比较困难,但采用通用PCI接口芯片即可很好地解决这个问题。PCI通用接口芯片对于PCI协议的良好支持,以及提供给设计者的良好接口都大大减少了设计者的工作量。现有的PCI接口芯片主要有AMCC公司的MACCS59XX系列和PLX公司的PLX系列。本文将对PLX公司的PCI9052总线目标接口芯片的功能及其在PCI板卡设计中的应用进行介绍。1 PCI9052的功能特点PCI9052是PLX公司继PCI9050之后新推出的、可用于低成本适配器的总线目标接口芯片。PCI9052与PCI9050一样,可提供用于适配卡的小型高性能PCI总线目标(从属)接口,以使ISA适配器可以迅速、低成本地转换到PCI总线上。采用PCI9052可使适配卡上的I/O数据传送速度从PCI9052可使适配卡上的I/O数据传送速度从ISA总线的8MHz提高到PCI的33MHz。PCI9052的主要功能与特性如下:符合PCI2.1规范,支持低成本从属适配器;带有五个局域总线地址空间和四个片选;具有双向FIFO,可用于零等待状态突发操作;PCI总线的传输速度可高达132兆字节/秒;支持多路复用和非多路复用的8位、16位和32位通用局域总线;支持局域总线与PCI时钟的异步运行;支持Big/Little Endian编码字节转换;支持来自两个局域总线的中断所生成的PCI中断;可用串行EEPROM装载配置信息;具有ISA模式,支持PCI总线到ISA总线的单周期存储器(8位、16位)读写和I/O访问。图1所示是PCI9052的信号接口示意图。2 PCI9052的应用操作2.1 初始化在上电时,PCI总线的RST信号有效,同时,PCI9052输出局部复位信号LRESET并检查EEPROM是否存在数值。若存在,则根据EEPROM中的内容设置内中寄存器,否则设为缺省值。PCI配置寄存器只能通过EEPROM或PCI主机CPU来进行设置。2.2 复位PCI9052总线接口在RST信号输入有效时将引起整个PCI9052的复位,并输出LRESET局部复位信号。PCI总线上的主机可以通过设置控制寄存器中的软件复位比特来对PCI9052进行复位,并输出LRESET信号。2.3 串行存储器接口复位后,PCI9052开始读串行EEPROM,若读出的第一个字非FFFFH,则PCI9052继续读操作,否则认为EEPROM无效。对PCI9052来讲,EEPROM的前四个字节应为52H、90H、B5H和10H,其中9052H为设备号,10B5H为厂商编号。2.4 寄存器访问PCI9052的内部寄存器可通过PCI总线的主机CPU和串行EEPROM进行访问,这些内部寄存器分为PCI配置寄存器和局部总线配置寄存器。主要有以下几种:设备与厂商寄存器:该寄存器位于PCI配置寄存器的起始处,用于标识设备类别及制造厂家;状态寄存器:状态寄存器内含与PCI总线相关的事件信息;命令寄存器:用来控制设备对PIC访问的响应;局部配置寄存器存储器访问的PCI基地址寄存器:系统BIOS利用此寄存器为PCI9052局部配置寄存器的存储器访问分配一段PCI地址空间,范围为128字节,实始化时,主机对寄存器写入FFFFFFFF,然后读回FFFFFF70,以确定其占用空间为128字节;局部配置寄存器I/O访问的PCI基地址寄存器:系统BIOS利用此寄存器为PCI9052局部配置寄存器的I/O访问分配一段PCI地址空间;局部地址空间0访问的PCI基地址寄存器:系统BIOS利用此寄存器为PCI9052局部地址空间0的访问分配一段PCI地址空间;PCI主机处理可以直接对局部上的设备进行读/写操作。PCI9052配置寄存器能够访问映射到局部的地址空间。同时片内的读写FIFO使PCI9052能够支持PCI总线与局部总线间的高性能猝发传送。PCI总线主控访问局部总线的示意图如图2所示。2.5 局部总线ISA接口模式PCI9052的新功能是它直接提供给用户个ISA逻辑接口,从而保证了ISA到PCI的平滑转换,另外,ISA接口还能支持8/16位存储器或I/O设备。用户通过对EEPROM的编程可将PCI9052置为ISA接口模式,在ISA接口模式下,LRESET信号将由低有效变为高有效,并可将局部总线空间2、3配置为无复用方式。3 基于PCI9052的PCI接口卡设计利用PCI总线目标接口芯片PCI9052设计PCI接口卡非常简便,图3是笔者设计的PCI总线数据采集卡的原理框图。图中的数据采集电路用来完成数据的采集与存储,而PCI总线上的主机CPU可通过PCI9052直接读取存储器中的数据。4 结束语由于PCI总线数据吞吐量大,传输速率高,从而大大改善了数据传输的“瓶颈”问题。所以,在未来的微机接口设计中,基于PCI总线的设计在将成为主流。当然,PCI总线协议比较复杂,设计PCI控制接口难较大。目前,一般采用两种方式:一种是使用ALTERA,XILINX等公司的FPGA系列并使用其元件库;另一种办法是使用成型接口芯片如AMCC公司的S5933或PLX公司的PCI905X系列等。而专用PCI接口芯片的使用将避免用户直接面对复杂的PCI总线协议,因此,可以降低设计难度,从而使用户能够集中精力解决具体的应用问题以缩短开发周期。基于DSP的PCI总线数据采集系统的研究中国电子市场WWW.DZSC.COM黄涛,付胜波(武汉理工大学 信息工程学院,湖北武汉 430070)1 引言随着数字信号处理器性能的不断提高及其成本与售价的大幅下降,数字信号处理应用领域飞速扩展,信号处理进入了一个新的发展时期。同时随着计算机技术以及互联网络技术的不断发展,越来越多的数据需要经过计算机来进行处理、存储、传输筹操作。计算机的应用已经遍及我们生活的每一个角落。由于计算机本身的特点,通用计算机通常仅负责没有实时性要求的工作,而不适于进行实时性要求很高的数字信号处理。将计算机和DSP有机地结合起来,充分利用各自的优点,它们将会相得益彰,满足现实应用中对数据实时处理能力、数据传输能力以及数据管理能力提出的越来越高的要求。PCI总线以其众多优点在计算机中具有不可取代的作用,采用PCI总线使DSP与计算机通信可以很好地满足其对高速数据传输的要求。本文以实际开发系统为背景,以TI公司的TMS320VC5402与PLX公司的PCI9052为基础。详细论述了基于DSP的PCI总线结构的数据采集系统硬件及软件设计方案和实现方法。2 数据采集系统硬件设计21 系统结构及原理基于DSP的PCI总线高速数据采集系统的结构如图1所示,它主要由AD转换器、DSP数据读取及处理、PCI通信接口和PC机等部分组成。模拟信号经AD采样后由DSP通过并行IO读取,并将处理后的数据通过PCI总线送到通用计算机做进一步处理1。AD转换器采用TI公司的TLC5510,TLC5510为8 bit、20 MSs的高速并行AD转换器。TLC5510在每个时钟的下降沿采样,该采样点的转换数据经过25个延迟后,在时钟的上升沿输出,也就是每个点的转换时间为25个时钟周期,一旦转换流水线启动,则在每个时钟的上升沿都有一个转换数据输出。DSP与计算机之间的通信由接口电路PCI9052实现。PCI9052是PLX公司推出的一种简单、高效的PCI从设备接口,可实现多种外设局部总线和PCI总线的互连。根据PCI规范,主设备和从设备的划分本质上是确定数据传输双方访问与被访问的能力和关系。在此,PCI9052只能由主机或其它拥有总线主控制能力的设备进行数据的读写操作。但由于其内部有64Byte写FIFO和32Byte读FIFO,使PCI9052的局部总线和PCI总线能互相独立工作,可支持传输速度为132 Mbs的突发传输2。 DSP采用TI公司的TMS320VC5402,它的处理能力可达到100 Mbs,具有改进型的8位HPI接口,有16 K*16 Bit DARAM,以及4 K*l6 Bit ROM存储空间。具有较高的性价比3。22 PCI9052与TMS320VC5402的接口PCI9052的局部总线设置为8位局部总线,采用地址数据非复用模式,PCI9052和TMS320VC5402的接口电路如图2所示4,5。此时,LBE1为LA1,LBE0为LA0。将PCI9052的LBE0接HPI的HBIL,用以区分第一字节和第二字节。PCI9052的LA17接TMS320VC5402的HCNTL1,LA16接HC-NTL0,以选择HPI寄存器。PCI9052的LAD0:7接TMS320VC5402的HD7:0。TMS320VC5402的HINT反向后接至PCI9052的LINT1,之所以反向是由于HINT低电平有效,而UNT1是高电平有效。PCI9052的LWR反向后接至TMS320VC5402的HRW,因为LWR高电平表示写,低电平表示读;而HRW高电平表示主机要读HPI,低电平表示主机要写HPI。PCI9052的CS0与CS1相或后连接至HCS,RD和WR分别连接到HDS1,HDS2。TMS320VC5402的LRDY通过一定的逻辑组合再加上一个D触发器与PCI9052的LRDY相连以实现PCI9052与HPI的同步。PCI9052局部时钟采用40MHz。其中CPLD选用EPM7128,使用MAX+PLUS进行设计。HPI主机接口采用访问寄存器的方式来进行DSP内部数据的读写,把HPI口单纯映射到PCI的IO空间或者存储器空间都有不可避免的缺点,因此本接口电路采用双映射方式,利用映射来访问控制、地址寄存器和单个数据口,而利用存储器映射来访问连续数据口。以实现TMS320VC5402与PCI9052之间方便、高效的数据通信6。3 数据采集系统软件的设计数据采集系统的软件设计包括三个部分:DSP上的采集程序及响应程序。数据采集卡的驱动程序,在驱动程序上构建的应用程序。驱动程序是实现DSP与计算机通信的关键,本文主要介绍设备驱动模型及其初始化的设计方法。31 驱动程序模型Win2000不支持直接访问硬件,虚拟驱动器依赖运行在内核模式的真正的驱动器。内核模式驱动程序使用系统级代码编写,且运行在内核模式下,因为内核模式允许直接硬件访问。内核驱动程序可被进一步分成遗留模式的驱动程序和Windows驱动模式的驱动程序(WDM)。Windows驱动程序模型(WDM)如图3所示。图中左边是一个设备对象堆栈。设备对象是系统为帮助软件管理硬件而创建的数据结构。处于堆栈最底层的设备对象称为物理设备对象(PDO)。在设备对象堆栈的中间某处有一个功能设备对象(FDO)。FDO的上面和下面还会有一些过滤设备对象。位于FDO上面的过滤设备对象称为上层过滤器,位于FDO下面的过滤器设备对象称为下层过滤器。 总线驱动器的任务之一就是枚举总线上的设备。并为每个设备创建一个PDO。一旦总线驱动器程序检查到新硬件存在,PnP管理器就创建一个PDO,创建完PDO后,PnP管理器参照注册表中的信息查找与这个PDO相关的过滤器和功能驱动程序。系统安装程序负责这些注册表项,而驱动程序包中控制硬件安装的INF文件负责添加其他表项。这些表项定义了过滤器和功能驱动程序在堆栈中的次序。32 驱动程序的初始化PnP管理器先装入硬件需要的驱动程序,然后再调用驱动程序中的AddDevice函数。一个驱动程序可以被多个类似的硬件使用。但驱动程序的某些全局初始化操作只能在第一次被装入时执行一次。而DriverEntry例程就是用于这个目的。DriverEntry是内核模式驱动程序主入口点常用的名字。IO管理器按下面方式调用该例程:DriverEntry的第一个参数是一个指针,指向一个被初始化的驱动程序对象,该对象代表用户的驱动程序。DriverEntry的第二个参数是设备服务键键名,其主要工作是把各种函数指针填入驱动程序对象。这些指针为操作系统指明了驱动程序容器中各种子例程的位置。PnP管理器先装入最底层的过滤器驱动程序并调用其AddDevice函数。该函数创建一个FiDO,这样就在过滤器驱动程序和FiDO之间建立了水平连接。然后AddDevice把PDO连接到FiDO上。PnP管理器继续下上执行,装入并调用每个底层过滤器、功能驱动程序、高层过滤器,直到完成这个堆栈。该函数的原型如下:DriverObject参数指向一个驱动程序对象,就是在DriverEntry例程中初始化的那个驱动程序对象。PDO参数指向设备堆栈底部的物理设备对象。AddDevice函数的基本任务是创建一个设备对象并把它连接到以PDO为底的设备堆栈中。当AddDevice函数将FDO和FiDO创建且连接好后,PnP管理器分配资源且发送PRP_MN_START_DEVICE,功能驱动程序需要在这个IRP上做大量工作,包括分配并配置额外的软件资源以及为设备操作做准备。处理这个IRP主要通过PnPStartDevice函数完成。PnPStartDevice函数首先将IRP传递到底层驱动程序。等待完成后,调用IoGetCurrentIrpStackLocation函数得到当前自己的堆栈单元。I/O堆栈单元的Parameters联合有一个名为StarDevice的子结构,该结构包含了资源分配信息。在StarDevice里就可以将分配的资源填充到PDO的设备扩展域中,并且调用IoConnectInterrupt函数连接中断。层次结构可以使IO请求过程更加明了。每个影响到设备的操作都使用IO请求包。通常IRP先被送到设备堆栈的最上层驱动程序,然后逐渐过滤到下面的驱动程序。内核通常通过发送IO请求包(IRP)来运行驱动程序中的代码。4 结束语基于DSP的PCI总线数据采集系统充分利用了DSP丰富的内部资源、强大的数字信号处理能力及PCI总线的高传输速度,能够方便的开发数据压缩、语音压缩存储等新功能信号,并进行预处理与分析处理。通过PCI总线进行数据传送可大大提高传输速度。本系统适用于高速数据的采集和处理以及需要进行大量数据传输的应用场合。PCI9052总线接口芯片及其ISA模式应用 【摘要】PCI9052是PLX公司开发的服从PCI协议的从模式接口芯片,它能够实现ISA总线到PCI总线的平滑转换。主要阐述了PCI9052在ISA模式下的应用开发过程和方法,并给出了一个实例,说明了如何用PCI9052完成由ISA扩展板向PCI的转换。 关键词:PCI9052,配置EEPROM,PCI总线,ISA总线 1引言 PCI(Peripheral Component Interconnect)总线,即外围部件互连总线,是一种先进的高性能3264位地址数据复用局部总线。PCI总线与处理器和时钟频率无关,可以提供高达132MBs的数据传送速率;它具有严格的规范,只要符合PCI规范的扩展卡插入任何PCI系统就能可靠地工作。但由于PCI总线协议的复杂性,其接口的实现比VESA、ISA和MCA等总线要困难得多。 目前,开发PCI接口设备有两种方法:一种方法是采用可编程逻辑芯片,它的最大好处是比较灵活,用户可以根据自己的需要开发出适合于特定功能的芯片,而不必实现PCI的全部功能。现在有许多生产可编程逻辑器件的厂商,如Xilinx的LogiCore和Altera的AMPP都提供经过严格测试的PCI接口功能模块,用户只要进行组合设计即可。另一种常用的方法是使用专用接口器件,通过专用芯片可以实现完整的PCI主控模块和目标模块的功能,将复杂的PCI总线接口转换为相对简单的用户接口,用户只要设计转换后的总线接口即可。 专用接口芯片具有较低的成本和通用性,能够有效降低接口设计的难度,缩短开发时间。现有的PCI接口芯片主要有AMCC公司的AMCCS59xx系列和PLX公司的PCI90xx系列。在PLX系列产品中,PCI9052是一款常用的PCI总线目标接口芯片,该芯片最大的特色是带有一个ISA接口,通过它可以实现ISA总线到PCI总线的无缝连接,这为目前仍存在的ISA插件移植到PCI提供了极大的方便。 利用PCI9052的ISA模式进行PCI的开发可以简化设备开发过程,但难度还是较大。设计者不仅要理解掌握手册中的要点,还要学习硬件设计和软件设计的方法和过程。为了让大家能够系统地了解利用PCI9052的ISA模式进行PCI板卡开发的过程和方法,本文从硬件设计、配置寄存器的编写、板卡调试和驱动程序的编写等方面介绍了PCI9052的开发过程。 2PCI9052的ISA接口模式 21基本特点 PCI9052是PLX公司继PCI9050之后推出的低成本PCI总线接口芯片,它符合PCI21规范,可作为PCI总线目标设备实现基本的传送要求;它有5个局部地址空间和4个局部设备片选信号,局部总线与PCI总线时钟相互独立运行。通过配置EEPROM的内容可以将PCI9052设定为ISA接口模式,通过8位或16位内存或IO映射可直接使PCI总线与ISA总线相连,从而将ISA总线快速地转换到PCI总线上。 在我们的数控测井系统中,原来的通信控制模块是基于ISA总线的插件,端口地址为0X1000X10F,总线宽度是16位,可以实现输入输出,有中断功能。现在,我们利用PCI9052芯片的ISA模式对原来的板卡进行升级改造,使原来的板卡在做少量改动的情况下可以插在PCI总线插槽中正常工作。 22引脚介绍及连接 在不同的模式下,PCI9052的部分引脚有不同的定义和功能。工作在ISA模式下,其主要引脚如图1所示。 PCI9052硬件连接正确与否直接关系到芯片能否正常工作,某些引脚处理不当往往会引起芯片工作不正常或死机。在图1中,9052左上方的信号和PCI信号相连,左下方信号和串行EEPROM相连,右边的信号和局部总线信号相连,也就是和ISA总线信号相连。 PCI端主要信号完全符合PCI规范要求,直接和PCI总线上对应的引脚相连即可。 ISA端连接如下: 在我们的板卡中由于只涉及到IO,且为16位宽的数据,因此,MEMWR、MEMRD、SBHE和BALE信号可以不用。 LAD15:0是16位的数据总线。LA23:2和ISAA1:0共同组成ISA的地址总线,对于8位的数据总线,ISAA1:0相当于LA1:0,它们一起进行地址译码。而对于16位的数据线,每次读写两个字节,这时ISAA0不用,ISAA1和LA23:2一起进行地址译码。需要注意的是,并不是所有的地址线都要进行地址译码,这里要根据板卡上实际IO口空间的大小选择译码地址线的数目。对于我们的板卡,LA3:2和ISAA1地址译码是必需的(ISAA1为低位),当然,所有的地址线都参加地址译码也是可以的。 IOWR和IOWD是局部端口读写信号。LCLK是ISA端时钟信号,按芯片要求外接8MHz的时钟。LRESET是9052芯片上电时PCI端复位后所发出的对ISA端进行复位的信号。在ISA模式下,该信号输出高有效。 LINTi1和LINTi2是局部总线中断输入信号,这里,我们只用到LINTi1信号,由于9052内部没有对这两个信号进行上拉或下拉处理,因此,在外部将LINTi2上拉或下拉到一个确定的状态。 NOWS是无等待标志信号,此引脚上拉或接地可以减少等待的时钟数。LRDY是局部准备就绪信号,如果局部芯片没有提供该信号,一般对它进行下拉或接地处理。CHRDY是局部通道准备好信号,一般要进行上拉处理。LHOLD是局部总线请求信号,应该进行下拉或接地处理。MODE是模式选择信号,由于我们使用的是ISA非复用模式,因此该引脚接地。 在设计电路板时,要严格遵循PCI规范。电源和地线要尽可能宽且电源滤波要良好,在芯片的每个电源引脚最好接01F的滤波电容。由于PCI时钟信号的一半要靠反射波来提升,因此,时钟信号CLK走线长度近似为2500mil。prstn1和prstn2两者必须有一个接地,主板就是靠这两个信号来判断这个插槽上是否有卡的。用作上拉或下拉的电阻一般取值22 k即可。一般来说,PCI板卡推荐做4层板,其实只要布线合理做两层板也是可以的。 串行EEPROM端信号有以下几种:时钟信号(EECK)、读数据信号(EEDO)、写数据信号(EEDI)和片选信号(EESC),分别和EEPROM相应管脚相连即可。 23串行EEPROM的配置 与ISA总线相比,PCI总线支持三个物理空间:存储器地址空间、IO地址空间和配置空间。配置空间是PCI所特有的一个空间,所有的PCI设备必须提供配置空间。串行EEPROM存储了PCI9052重要的配置信息,如设备号DID、制造商号VID、子设备号SDID、子制造商号SVID、中断号、设备类型号、局部空间基地址、局部空间描述符、片选响应以及局部响应控制CNTRL等信号。EEPROM的内容非常重要,它直接关系到整个板卡能否正常工作,在设计时要非常注意。 系统加电时,通过PCI的RST复位以后,PCI9052首先检测EEPROM是否存在。如果检测到EEPROM首字不是FFFFH,PCI9052将依次读取EEPROM的内容来初始化内部寄存器。PCIBIOS根据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论