采用PCI9052的ATM数据采集卡的接口电路设计
扫描二维码
随时随地手机看文章
PCI Interface Circuit Base On ATM Data-Sampling Card
摘要:本文首先对PCI总线接口技术进行讨论,然后介绍了PCI总线接口控制芯片PCI9052的工作原理,结合其在ATM数据采集卡中的应用,着重分析了PCI9052总线接口电路设计中的配置空间和PCB设计,并对PCI驱动程序进行介绍,最后经过验证,该结构的PCI接口符合ATM数据采集卡的数据传输要求。
关键词:总线;中断;传输
ABSTRACT:The paper discuss the technology of PCI(Peripheral Component Interconnect) interface firstly, then introduce the principle of PCI bus interface control chip PCI9052, combine it’s applications in ATM Data-Sampling CARD,mainly analyze the configuration register and PCB layout in development of PCI bus interface , and then recommend the drivers.,at last,this interface accord with the transmission of ATM Data-Sampling CARD under test.
Key words: PCI BUS ;Interrupt ;Transmission
1. 引言
随着CPU 的发展,原有的工业总线标准ISA/EISA总线早已跟不上时代的步伐,PCI总线作为一种先进的高性能32/64位局部总线,可以同时支持多组外围设备并且不受制于处理器和时钟频率,并能完全兼容现有的ISA/EISA/MAC等扩展总线,非常适合于显示卡、网卡、多串口卡等高速外设,已经取代了原来ISA总线的主导地位,成为微型计算机系统的主流总线。
2. PCI总线概述
PCI总线不依附于某个具体的处理器,除了适用intel公司的芯片外,还适用于其他型号的处理器芯片,并能实现P&P,既在系统加电时,BIOS可以自动检测机器配置,而给各个外围设备分配中断请求信号和存储器的缓冲区等。PCI接口设备开发的有两种方法,一种方法是采用可编程逻辑芯片,好处是比较灵活,用户可以根据自己的需要开发出适合于特定功能的芯片。另一种常用的方法是使用专用接口芯片,通过专用芯片可以实现完整的PCI主控模块和目标模块的功能,将复杂的PCI总线接口转换为相对简单的用户接口,我们只要设计转换后的总线接口即可。PCI9052是常用的总线接口芯片。本文详细叙述采用PCI9052.进行接口电路设计,主要的创新点在于PCI9052寄存器的配置空间及PCB布线中高速信号线的处理。
3. PCI9052的工作原理
PCI9052是PLX公司为扩展适配板卡推出的一种混合的高性能PCI总线目标(从)模式接口芯片。该芯片可与多种局部总线互连,支持PCI总线上的突发传输速率达到132Mb/s, PCI9052作为目标接口芯片,只能作为从设备,但其功能独具特色。
3.1 初始化和复位
在上电过程中,PCI9052的内部寄存器有PCI BUS的RST#信号复位,并给以响应信号RETRY,在LOCAL BUS上输出LRESET#信号,还要检查串行EEPROM是否存在,如果安装了EEPROM并且它的前16位不为FFFFH,则PCI9052用EEPROM中的值来配置片内的寄存器,否则使用缺省值。PCI总线上主控设备还可通过软件的途径(在NCTRL寄存器中设置相应的位)对PCI9052复位,并给出LRESET#信号。采用这种复位以后,主设备只能访问PCI9052的配置寄存器,而不能访问LOCAL BUS,直到由主设备将软件复位的位清除为止。
3.2 片内寄存器访问
为了接口设计的最大灵活性,PCI9052提供了两种类型的片内寄存器,它们分别是PCI配置寄存器和局部配置寄存器,二者都可以PCI总线和串行EEPROM访问,也可以通过设置寄存器CNTRL[13]~CNTRL[12]禁止对串行EEPROM的访问。
3.3 直接数据传输模式
PCI9052支持PCI主设备直接访问LOCAL BUS上的设备,数据的传输方式分为内存映射的突发传输和I/O映射的单次传输,并由PCI基地址寄存器设置其在PCI内存和I/O空间的合适位置,局部映射寄存器还允许PCI地址空间转换到局部地址空间。
3.4 PCI中断的产生
PCI规范定义了四个中断信号,以INTA#为例,要产生PCI中断INTA#,首先要将寄存器INTCST的第6位(PCI中断使能位)设置为1;如果需要以软件方式产生中断,则只需将INTCST的第7位(软件中断位)设置为1即可。
4.利用PCI9052进行总线接口设计
图1ATM数据采集卡结构图
ATM(异步传输模式)不仅适用于高速信息传送和对服务质量(QOS)的支持,还具备了综合多种业务的能力,以及动态带宽分配与连接管理能力和对已有技术的兼容性,ATM系统具有光明的前景。作者所在研究所开发设计的ATM数据采集卡采用PCI9052作为接口芯片,选择支持5V32位的长卡,EEPROM选择93AA46,9052选择非复用模式,上图为其结构图。
ATM数据采集卡通过光口接收光纤传输的STM-1信元,通过物理层的PM5384把STM-1信元转换成ATM信元,FPGA把ATM信元解释成用户需要的信号,PCI9052则控制信号在ATM数据采集卡和PC之间的传输。
4.1 寄存器的配置
PCI总线支持三个物理空间:存储器地址空间、I/O地址空间和配置空间。配置空间是PCI特有的一个空间,所有的PCI设备必须提供配置空间。串行EEPROM存储了PCI9052的重要配置信息,它的内容非常重要,直接关系到整个板卡能否正常工作,需要非常注意。系统加电时,通过PCI的RST复位以后,PCI9052首先检测EEPROM是否存在。如果检测到EEPROM首字不是FFFFH,PCI9052将依次读取EEPROM的内容来初始化内部寄存器,PCIBIOS根据配置寄存器的内容进行资源分配,从而实现PCI总线的即插即用特性。PCI配置寄存器的配置如表1所示。
PCI9052中还包括局部配置寄存器,以对PCI设备的基地址、地址空间范围、地址空间描述符和片选信号等进行配置。用户可以在EEPROM中对PCI9052的局部配置寄存器进行配置,也可以使用系统对该设备分配默认值。局部配置寄存器的配置不是必须的,一般情况下使用缺省配置即可。
4.2 PCB布局布线
4.2.1 PCI卡电源要求
在设计电路图时,必须遵循PCI规范。在电源层和地线层之间的电容可为连接器上的电源引脚提供去耦作用。所有3.3V引脚和没有使用到的5V引脚需要用以下方法耦合到地:
(1)每个电源引脚上必须有退耦电容,且容量至少位0.01µf。
(2)从引脚根部到电容器焊盘的走线长度不大于0.25 in ,线宽至少为0.02 in 。
PCI扩展板上所允许的最大功耗为25w,该值是指来自四条电源线功耗的总和。最大功耗也可以设置成15w或7.5w,这由连接器上的PRSNT1#和PRSNT2#引脚决定。
4.2.2 走线长度
从扩展卡的连接器到PCI元器件的引脚之间,走线长度有如下限制:
(1)所有接口信号的最大走线长度为1.5 in。
(2)时钟CLK信号走线长度为2.5 in,并且只能接到一个负载上。
4.2.3 布局布线
PCI接口卡采用四层板结构,在电源层布线时采用“分裂的电源层”技术,既将电源层分成5V和3.3V两个电源层,为了防止高速信号在跨过电源层是的信号完整性问题以及由于断裂处信号线交流回路受阻造成的阻抗的不连续性,尽量不把高速信号布置在两个电源平面上,应把它们全部布在3.3V平面上访或5V平面上方,如果有的信号不得已要跨越两个区域,可以把他放到扳子的另一面,使它在地线平面上方走线。如果有的信号无论如何采用什么方法都不能不让它跨越两个电源层平面的裂缝,这时应将两个电源层平面用电容器耦合在一起,没四条跨过的线用一个0.01µF的高速电容器,并且电容器的位置距跨越点不超过0.25 in.
4.3驱动程序开发
对于开发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上完成处理。
4.4 验证
通过Creatfile打开设备,使用DeviceIOcontrol将IOCTL控制命令及缓冲区首地址送到驱动程序,驱动程序采用DMA方式将由FPGA重组后的数据加上一个头部信息(VPI、VCI、消息类型等)传递给上层测试程序。经验证收到的数据信息符合发送端发送的数据信息,运行稳定。
5.结束语
本文讨论了采用PCI9052作为ATM数据采集卡的接口电路的设计过程和需要注意的问题,并且在寄存器配置和高速信号布局布线方面做了深入讨论。经过验证证明,采用PCI9052设计的接口电路,电路设计简单,能够达到ATM数据采集卡的速率要求。
参考文献:
1 PCI Local Bus Specification ,Revision 2.1, June 1, 1995
2 PCI9052 DataBook 2.0 September ,2001
3 李贵山,戚德虎, PCI局部总线开发者指南 西安 电子科技大学出版社
4 刘晖 译 PCI系统结构[M], 北京 电子工业出版社
5 吴秋明,和卫星。基于RS-484总线的PC与多单片机之间的串行通信.微计算机信息,2005,8-1:2-3。
创新点:PCI9052接口电路设计的寄存器配置和高速信号的布局布线。
作者简介:
张磊(1983-),男,山东德州人,重庆邮电大学通信学院硕士研究生,主要研究方向为嵌入式技术研究。
邱绍峰(1971-),男,安徽蚌埠人,重庆邮电大学副教授,硕士生导师,主要研究方向为宽带接入网。
联系地址:重庆邮电大学通信与测试技术实验室 邮编:400065