采用PCI9052的ATM数据采集卡的接口电路设计

作者:365滚球 发布时间:2021-03-01 18:47

  作为一种先进的高性能32/64位局部总线,可以同时支持多组外围设备并且不受制于处理器和时钟频率,并能完全兼容现有的ISA/EISA/MAC等扩展总线,非常适合于显示卡、网卡、多串口卡等高速外设,已经取代了原来ISA总线的主导地位,成为微型计算机系统的主流总线. PCI总线概述

  PCI总线不依附于某个具体的处理器,除了适用intel公司的芯片外,还适用于其他型号的处理器芯片,并能实现PP,既在系统加电时,BIOS可以自动检测机器配置,而给各个外围设备分配中断

  请求信号和存储器的缓冲区等。PCI接口设备开发的有两种方法,一种方法是采用可编程逻辑芯片,好处是比较灵活,用户可以根据自己的需要开发出适合于特定功能的芯片。另一种常用的方法是使用专用接口芯片,通过专用芯片可以实现完整的PCI主控模块和目标模块的功能,将复杂的PCI总线接口转换为相对简单的用户接口,我们只要设计转换后的总线是常用的总线接口芯片。本文详细叙述采用PCI9052.进行接口电路设计,主要的创新点在于PCI9052寄存器的配置空间及PCB布线中高速信号线的工作原理

  PCI9052是PLX公司为扩展适配板卡推出的一种混合的高性能PCI总线目标(从)模式接口芯片。该芯片可与多种局部总线互连,支持PCI总线上的突发

  速率达到132Mb/s, PCI9052作为目标接口芯片,只能作为从设备,但其功能独具特色。

  在上电过程中,PCI9052的内部寄存器有PCI BUS的RST#信号复位,并给以响应信号RETRY,在LOCAL BUS上输出LRESET#信号,还要检查串行EEPROM是否存在,如果安装了EEPROM并且它的前16位不为FFFFH,则PCI9052用EEPROM中的值来配置片内的寄存器,否则使用缺省值。PCI总线上主控设备还可通过软件的途径(在NCTRL寄存器中设置相应的位)对PCI9052复位,并给出LRESET#信号。采用这种复位以后,主设备只能访问PCI9052的配置寄存器,而不能访问LOCAL BUS,直到由主设备将软件复位的位清除为止。

  为了接口设计的最大灵活性,PCI9052提供了两种类型的片内寄存器,它们分别是PCI配置寄存器和局部配置寄存器,二者都可以PCI总线和串行EEPROM访问,也可以通过设置寄存器CNTRL[13]~CNTRL[12]禁止对串行EEPROM的访问。

  PCI9052支持PCI主设备直接访问LOCAL BUS上的设备,数据的传输方式分为内存映射的突发传输和I/O映射的单次传输,并由PCI基地址寄存器设置其在PCI内存和I/O空间的合适位置,局部映射寄存器还允许PCI地址空间转换到局部地址空间。

  PCI规范定义了四个中断信号,以INTA#为例,要产生PCI中断INTA#,首先要将寄存器INTCST的第6位(PCI中断使能位)设置为1;如果需要以软件方式产生中断,则只需将INTCST的第7位(软件中断位)设置为1即可。

  ATM(异步传输模式)不仅适用于高速信息传送和对服务质量(QOS)的支持,还具备了综合多种业务的能力,以及动态带宽分配与连接管理能力和对已有技术的兼容性,ATM系统具有光明的前景。作者所在研究所开发设计的ATM数据采集卡采用PCI9052作为接口芯片,选择支持5V32位的长卡,EEPROM选择93AA46,9052选择非复用模式,上图为其结构图。

  ATM数据采集卡通过光口接收光纤传输的STM-1信元,通过物理层的PM5384把STM-1信元转换成ATM信元,FPGA把ATM信元解释成用户需要的信号,PCI9052则控制信号在ATM数据采集卡和PC之间的传输。

  PCI总线支持三个物理空间:存储器地址空间、I/O地址空间和配置空间。配置空间是PCI特有的一个空间,所有的PCI设备必须提供配置空间。串行EEPROM存储了PCI9052的重要配置信息,它的内容非常重要,直接关系到整个板卡能否正常工作,需要非常注意。系统加电时,通过PCI的RST复位以后,PCI9052首先检测EEPROM是否存在。如果检测到EEPROM首字不是FFFFH,PCI9052将依次读取EEPROM的内容来初始化内部寄存器,PCIBIOS根据配置寄存器的内容进行资源分配,从而实现PCI总线的即插即用特性。PCI配置寄存器的配置如表1所示。

  PCI9052中还包括局部配置寄存器,以对PCI设备的基地址、地址空间范围、地址空间描述符和片选信号等进行配置。用户可以在EEPROM中对PCI9052的局部配置寄存器进行配置,也可以使用系统对该设备分配默认值。局部配置寄存器的配置不是必须的,一般情况下使用缺省配置即可。

  在设计电路图时,必须遵循PCI规范。在电源层和地线层之间的电容可为连接器上的电源引脚提供去耦作用。所有3.3V引脚和没有使用到的5V引脚需要用以下方法耦合到地:

  (2)从引脚根部到电容器焊盘的走线 in ,线 in 。PCI扩展板上所允许的最大功耗为25w,该值是指来自四条电源线功耗的总和。最大功耗也可以设置成15w或7.5w,这由连接器上的PRSNT1#和PRSNT2#引脚决定。

  PCI接口卡采用四层板结构,在电源层布线时采用“分裂的电源层”技术,既将电源层分成5V和3.3V两个电源层,为了防止高速信号在跨过电源层是的信号完整性问题以及由于断裂处信号线交流回路受阻造成的阻抗的不连续性,尽量不把高速信号布置在两个电源平面上,应把它们全部布在3.3V平面上访或5V平面上方,如果有的信号不得已要跨越两个区域,可以把他放到扳子的另一面,使它在地线平面上方走线。如果有的信号无论如何采用什么方法都不能不让它跨越两个电源层平面的裂缝,这时应将两个电源层平面用电容器耦合在一起,没四条跨过的线µF的高速电容器,并且电容器的位置距跨越点不超过0.25 in.

  对于开发WDM驱动程序来说,有三个常用的开发环境,Windows DDK, DriverStudio和Windriver,综合考虑它们的优缺点,我们使用DriverStudio来完成PCI9052驱动程序的开发。PCI设备有两个特征使得它的驱动程序与“标准的”或现有的设备驱动程序不同。

  第一个特征是PCI设备是可以再定位的。也就是说设备的地址空间不是硬件固定的,PCI设备驱动程序及其它配置软件应当用该设备配置空间中的映射信息来决定将设备映射到何处,这个可以在例程OnStartDivce中实现。第二个持征是PCI中断是共享的。因为在系统实现中,很有可能将各个设备连到一条中断线上,这就要求PCI设备驱动程序能够支持共享的中断。在DivceStudio中使用Kinterrupt类实现中断处理,调用成员函数对中断初始化,控制一个中断服务程序和另一个之间的连接和断开。对于DriveWizard生成的框架,它在OnStartDevice(KIrpI)中对一个中断对象调用InitializeAndConnect(),完成初始化和连接。为了实现PCI中断的共享,中断服务程序必须迅速作出是否为自己板卡来的中断的判定,如果是则返回TURE,否则返回FALSE。对于需要大量操作的工作,中断服务程序会调用一个低于DIRLQ级别的延迟调用函数,在DISPATCH-LEVEL上完成处理。

  通过Creatfile打开设备,使用DeviceIOcontrol将IOCTL控制命令及缓冲区首地址送到驱动程序,驱动程序采用DMA方式将由FPGA重组后的数据加上一个头部信息(VPI、VCI、消息类型等)传递给上层测试程序。经验证收到的数据信息


365滚球
© 2013 北京格林吉能源科技有限公司.版权所有