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

最新更新时间:2013-05-27来源: 与非网关键字:总线  中断  传输 手机看文章 扫描二维码
随时随地手机看文章

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进行总线接口设计

                                                                       图1   ATM数据采集卡结构图

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

关键字:总线  中断  传输 编辑:探路者 引用地址:采用PCI9052的ATM数据采集卡的接口电路设计

上一篇:基于开关电容共模反馈理论分析
下一篇:后备VRLA电池运行中的检测与自动测试

推荐阅读最新更新时间:2023-10-17 15:43

I2C总线通信接口的CPLD实现
    摘要: 介绍采用ALTERA公司的可编程器件,实现I2C总线的通信接口的基本原理;给出部分VHDL语言描述。该通信接口号专用的接口芯片相比,具有使用灵活,系统配置方便的特点。     关键词: I2C总线 CPLD VHDL I2C总线是PHILIPS公司开发的一种简单、双向二线制同步串行总线。它只需要两根线(串行时钟线和串行数据线)即可在连接于总线上的器件之间传送信息。该总线是具备多主机系统所需要的包括裁决和高低速设备同步等功能的高性能串行总线,应用极为广泛。 目前,虽然市场上有专用I2C总线接口芯片,但是地址可选范围小,性能指标固定,功能单一,而且使用不方便。针对I2C总线的电气特性及其通信
[半导体设计/制造]
现场总线的优点
    1、一对N结构:     一对传输线,N台仪表,双向传输多个信号,这使得接线简单,工程周期短,安装费用低接线容易。如果增加现场设备或现场仪表,只需并行挂接到电缆上,无需架设新的电缆。      2、可靠性高:     数字信号传输抗干扰能力强,精度高,无需采用抗干扰和提高精度的措施,从而减少了成本。     3、可控状态:     操作员在控制室既可了解现场设备或现场仪表的工作状况,也能对其参数进行调整,还可预测或寻找故障,始终处于操作员的远程监控和可控状态,提高了系统的可靠性、可控性和可维护性。     4、互换性:     用户可以自由选择不同制造商所提供的性能价格比最优的现场设备或
[嵌入式]
单片机中断的IE和IP寄存器
一、中断允许寄存器IE CPU对中断源的开放或中断屏蔽的控制是通过中断允许寄存器IE设置的,IE既可按字节地址寻址(其字节地址为A8H),又可按位寻址。AT89S52单片机中的6个中断矢量都是可屏蔽中断,通过对IE的某些位置位和清0,允许或禁止某个中断,当对IE的EA位清0时,屏蔽全部中断源。IE中各标志位功能如表1所示: 表1 IE中的中断请求标志位 例:开放外部中断0 字节操作:MOV IE,#81H 或 MOV 0A8H,#81H 位操作:SETB EA SETB EX0 二、AT89S52的优先级寄存器IP AT89S52单片机的中断系统提供两个中断优先级,对于每一个中断请求源都可以
[单片机]
单片机<font color='red'>中断</font>的IE和IP寄存器
基于Modbus协议的串口通讯程序_RS485总线系统应用
本文在遵循Modbus协议的基础上,阐述了Modbus的两种传输模式和串口通讯程序的设计实例,并给出了VB语言的程序清单。 基于Modbus协议的串口通讯程序----Modbus协议简介 MODBUS协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。Modbus 协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回
[网络通信]
可编程系统、集散系统及现场总线系统在水泥生产中的应用
1 引言 在水泥生产中,过程控制系统完成生产工艺参数的检测、显示、记录、调节、控制、报警等功能,它对提高水泥生产线的作业率,改善产品质量及缩短新产品、新工艺的开发周期起着极其重要的作用。其特点是对生产实时过程进行控制,控制过程复杂,工艺滞后,监控参数多且数据变化快,数据处理及贮存量大。根据过程控制系统的特点及不同生产工艺过程控制要求,应用不同的控制系统才可以既安全可靠又经济高效地完成生产任务。目前,国内先进的大、中型过程控制系统基本上以采用PLC 和DCS 为主。早期水泥行业的生产控制主要是采用常规仪表加继电保护联锁控制,在现场设置电气柜、仪表柜及操作台。控制室内集中控制结合机旁单机控制。使得硬件数量和投资大量增加,安装与维护不便,
[嵌入式]
I2C总线C语言源程序
/*VIICC.H*/ #pragma db cd small #include intrins.h #include reg52.h #define NOP nop ( ); nop ( ); nop ( ); nop ( ) #define SDA P1^7 #define SCL P1^6 void sta( ); void cack( ); void stop( ); void mnack( ); void mack( ); void wrbyt(uchar shu); void wrnbyta(uchar slaw,uchar gg ,uchar n); v
[单片机]
ARM 系列 -- FS2410 开发板上的中断编程
一、目的 中断服务程序在操作系统中无疑占有非常重要的地位,编写中断程序不仅要会运用底层的汇编语言,还要了解 ARM 的体系架构。那这一节我们就通过中断编程来响应 FS2410开发板上的 16 个按键,实现依次按下16个键时,D9~D12 四个 Led 从 0~15 进行计数,并通过上个实验实现的 uart_printf 向串口发送数据 Kn is pressed!。 二、代码 我们直接分析代码,代码中只有简略的注释,必要时我会在整个代码文件的后面对相应的细节进行解释。先来分析 head.s: @文件 head.s .text .global _start _start: @ Set vector tabl
[单片机]
STM32单片机是怎样执行中断函数中的应用的
在STM32单片机的编程当中,中断函数的名称都是xxx_IRQHandler格式的。那当编译程序的时候是怎么知道这是一个中断函数的呢? 每个中断都是有入口地址的。程序在执行过程中遇到中断的时候,会先判断这个中断的类型,根据类型再到中断向量表中查找,找到之后,根据表中指明的地址,程序就跳到该地址开始执行代码。 ST提供的固件库当中,有提供一个stm32f10x_it.c文件,打开之后会发现里面放的都是些空函数,但是名字都是“xxx_Handler()”格式,需要使用某个中断的时候,在代码中使能该中断,并到这个文件中将中断服务函数添加上,就可以了。 而这些名字就是一个个的中断函数入口地址。在启动代码中便有这些定义。如下图所示:
[单片机]
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved