一、PCI总线信号定义

在一个PCI应用系统中,如果某设备取得了总线控制权,就称其为“主设备”;而被主设备选中以进行通信的设备称为“从设备”或“目标节点”。对于相应的接口信号线,通常分为必备的和可选的两大类。如果只作为目标的设备,至少需要47条,若作为主设备则需要49条。利用这些信号线便可以处理数据、地址,实现接口控制、仲裁及系统功能。下面对主设备于目标设备综合考虑,并按功能分组将这些信号表示于下图。 

图中#号表示低电平有效,否则为高电平有效。

1、系统信号定义

CLK_IN:系统时钟信号,对于所有的PCI设备都是输入信号。其频率最高可达33MHz,最低频率一般为0Hz(DC),这一频率也称为PCI的工作频率。对于PCI的其它信号,除了RST#、IRQB#、IRQC#、IRQD#之外,其余信号都在CLK的上升沿有效(或采样)。

RST#_IN:复位信号。用来使PCI专用的特性寄存器和定序器相关的信号恢复规定的初始状态。至于PCI定序器之外的设备复位后如何变化,本次不说明。但必要的PCI配置寄存器,其复位状态是明确规定的。每当复位时,PCI的全部输出信号一般都应驱动到第三态。SERR#信号为高阻状态,SBD#和SDONE可驱动到低电平(如果未能提供三态输出)。REQ#和GNT#必须同时驱动到第三态,不能再复位期间为高或为低。为放置AD、C/BE#及PAR在复位期间浮动,可由中心设备将它们驱动到逻辑低,但不能驱动为高电平。RST#和CLK可以不同步,但要保证其撤销的边沿没有反弹。当设备请求引导系统时,将相应复位,复位后相应系统引导。

2、地址和数据信号

AD[31..0]:它们是地址、数据多路复用的输入/输出信号。在FRAME#有效时,是地址期;在IRDY#和TRDY#同时有效时,是数据期。一个PCI总线的传输包含了一个地址信号期和接着的一个(或无限个)数据期。PCI总线支持突发方式的读写功能。地址期为一个时钟周期,该周期中AD[31..0]线上含有物理地址(32位)。对于I/O操作,它是一个字节地址;若是存储器操作和配置操作,则是双字地址。在数据期,AD[7..0]位最低字节,AD[31..24]位最高字节。当IRDY#有效时表示写数据稳定有效,而TRDY#有效时表示读数据稳定有效。

C/BE[3..0]#:它们是总线命令和字节使能多路复用信号线。在地址周期中,这四条线上传输的是总线命令;在数据期内,它们传输的是字节使能信号,用来表示在整个数据期中,AD[31..0]上哪些字节位有效数据。

3、接口控制信号

FRAME#:帧周期信号。由当前主设备驱动,表示一次访问的开始和持续时间。FRAME#的有效预示着总线传输的开始;在其存在期间,意味着数据传输继续进行;FRAME#失效后,是传输最后一个数据期。

IDRY#:主设备准备好信号。该信号的有效表明发起本次传输的设备能够完成一个数据期。它要与TRDY#配合使用,二者同时有效,数据方能完整传输,否则即为等待周期。在读周期,该信号有效时,表示数据变量已在AD[31..0]中;在写周期,该信号有效时,表示从设备已做好接收数据的准备。

TRDY#:从设备准好信号。该信号有效表示从设备已作好完成当前数据传输的准备工作,也就是说,可以进行相应的数据传输。同样该信号要与IRDY#配合使用,二者同时有效,数据才能完整传输。在写周期内该信号有效表示从设备已做好接收数据的准备;在读周期内,该信号有效表示有效数据已提交到AD[31..0]中。同理,IRDY#和TRDY#的任何一个无效时都为等待周期。

STOP#:停止数据传送信号。当它有效时,表示从设备要求主设备终止当前数据传送。很显然,该信号由从设备发出。

LOCK#:锁定信号。当该信号有效时,表示驱动它的设备所进行的操作可能需要多个传输才能完成。也就是说,对此设备的操作时排它性的。而此时,未被锁定的设备,对它的非互斥访问仍然可以进行。LOCK#信号的控制是由PCI总线上发起数据传输的设备,根据它自己的约定并结合GNT#信号来完成的。即使由几个不同设备在使用总线,但对LOCK#信号的控制权只属于一个主设备。如果某一设备具有可执行存储器,那么它也必须能实现锁定,以便实现对该存储器的完全独占性访问。对于支持锁定的目标设备,必须能提供一个互斥访问块,且该块不能小于16个字节。由于主桥后面是系统存储器,所以也应能实现锁定。

IDSEL_IN:初始化设备选择信号。在参数配置读写传输期间,用作片选信号。

DEVSEL#:设备选择信号。在该信号有效时,表示驱动它的设备已成为当前访问的从设备。换言之,它的有效说明总线某处的某一个设备已被选中。

3、仲裁信号

REQ#:总线占用请求信号。该信号一旦有效即表示驱动它的设备要求使用总线,它时一个点到点的信号线,任何主设备都有其REQ#信号。

GNT#:总线占用允许信号,用来向申请占用总线的设备表示,其请求已获得批准。这也是一个点到点的信号线,任何主设备都应由自己的GNT#信号。

4、错误报告信号

PERR#:数据奇偶检验错误报告信号。但该信号不报告特殊周期中的数据奇偶错。一个设备只有在响应设备选择信号(DEVSEL#)和完成数据期之后,才能报告一个PERR#。对于每个数据接收设备,如果发现数据有错误,就应在数据接收的两个时钟周期内将PERR#激活。该信号的持续时间与数据期的多少有关,如果是一个数据期,则最小持续时间为一个时钟周期;若是一连串的数据期并且每个数据期都有错,那么PERR#的持续时间将多于一个时钟周期。由于该信号是持续的三态信号,因此,该信号在释放前必须先驱动为高电平。另外,对于数据奇偶错的报告既不能丢失也不能推迟。

SERR#:系统错误报告信号。该信号的作用是报告地址奇偶错、特殊命令序列中的奇偶错,以及其它可能引起灾难性后果的系统错误。如果设备不希望产生非屏蔽中断,就应采用其它机制来实现SERR#的报告。由于SERR#是一个漏极开路信号,因此,报告此类错误的设备只需将该信号驱动一个PCI周期即可。SERR#信号的发出和时钟同步,因而满足总线上所有其它信号的建立时间和保持时间的要求。要使该信号复位,需要一个微弱的上拉作用,但这应由系统设计来提供,而不是靠报错的设备或中央资源。一般这种上拉复位需要2~3个时钟周期才能完成。

5、中断信号

中断信号在PCI总线中使可选项,不一定必须具有。并且中断信号属于电平敏感性,低电平有效,使用漏极开路方式驱动。同时,此类信号的建立和撤销与时钟不同步。对于单功能设备,只有一条中断线,而多功能设备最多可有四条中断线。在前一种情况下,只能使用INTA#,其它三条中断线没有意义。所谓的多功能设备是指:将几个相互独立的功能集中在一个设备中。

PCI局部总线中共有四条中断线,分别是:INTA#、INTB#、INTC#和INTD#,均为O/D(漏极开路)。其作用是:用以亲贵一个中断。后三个只能用于多功能设备。

一个多功能设备上的任何功能都可以连接到四条中断线的任意一条。也就是说,各功能与中断线之间的连接时任意的,没有附件限制,二者的最终对应关系是由中断引脚寄存器来定义的。这显然提供了很大的灵活性。如果一个设备要实现一个中断,就定义为INTA#;要实现两个中断,就定义为INTA#和INTB#,依此类推。对于多功能设备,可以多个功能共用同一条中断线,或者各自占一条中断线,或者是两种情况的组合,但是,对于单功能设备,绝对不能再多于一条中断线上发中断请求。

系统供应商再对PCI连接器的各个中断信号和中断控制器进行连接时,其方法是随意的,可以是线或方式、程控电子开关方式,或者是二者的结合,这就是说,设备驱动程序对于中断共享事先无法作出任何假定。

6、其它可选信号

1)高速缓存支持信号

为了使具有可缓存功能的PCI存储器能够和写穿式(Write-through)或者回写式(Write-back)的Cache相配合工作,可缓存的PCI存储器应该能实现两条高速缓存(Cache)支持信号作为输入。如果可缓存的存储器位于PCI总线上。那么,连接回写式Cache和PCI的桥要能够将这对信号作为输出,而连接写穿式Cache的桥只需要实现一个信号。上述的两个信号的定义如下:

SBO#:试探返回信号。当该信号有效时,表示命中了一个修改过的行。当该信号无效时,而SDONE信号有效时,表示有一个“干净”的试探效果。

SDONE:监听完成信号。用来表示当前监听的状态,该信号无效时,表明监听仍在进行,否则,表明监听已经完成。

2)64位总线扩展信号

必须注意的是,如果要进行64位扩展,一下信号都要使用。

AD[63..32]:扩展的32位地址和数据复用线。再地址期(如果使用了DAC命令且REQ64#有效时)这32条线上含有64位地址的高32位,否则,它们时保留的;在数据期,当REQ64#和ACK64#同时有效时,这32条线上含有高32位数据。

C/BE[7..4]#:总线命令和字节使能多路复用信号线。在数据期,若REQ64#和ACK64#同时有效时,该四条线上传输的是表示数据线上哪些字节是有意义的字节使能信号。在地址期里,如果使用了DAC命令且REQ64#信号有效,则表明C/BE[7..4]上传输的是总线命令,否则这些位是保留的且不确定。

REQ64#:64位传输请求。该信号是由当前主设备驱动,并表示本设备要求采用64位通路传输数据。它与FRAME#有相同的时序。

ACK64#:64位传输认可。表明从设备将用64位传输。此信号由从设备驱动,并且和DEVSEL#具有相同的时序。

PAR64:奇偶双字节校验,是AD[64..32]和C/BE[7..4]的检验位。当REQ64#有效且C/BE[3..0]#上是DAC命令时,PAR64将在初始地址期之后的一个时钟周期内有效,并在DAC命令的第二地址期过后的一个时钟处失效。当REQ64#和ACK64#同时有效时,PAR64在各数据期内稳定有效,并且在IRDY#或TRDY#发出后的一个时钟处失效。PAR64信号一旦有效,将保持到数据期完成之后的一个时钟周期处。该信号与AD[63..32]的时序相同,但拖后一个时钟周期,对于主设备是为了地址和写数据而发PAR64,从设备是为了读数据而发PAR64。

### 回答1: PSPICE 17.2 是种用于电子电路仿真和分析的软件工具。下面是份简单的 PSpice 17.2 使用初级教程: 1. 安装和启动:首先,你需要下载并安装 PSpice 17.2 软件。安装完成后,双击图标启动软件。 2. 创建电路:在软件界面上,选择“文件”>“新建”,然后在电路编辑器中创建你的电路。你可以从元件库中选择组件,并将其拖放到画布上。连接元件的引脚以构建电路。 3. 设置元件参数:双击元件以打开元件参数设置对话框。在对话框中,设置元件的值、名称和其他参数。对于电阻、电容等基本元件,可以直接输入数值。 4. 设置仿真配置:选择“仿真”>“设置和校验”,然后在仿真设置对话框中选择仿真的类型和参数。你可以选择直流分析、交流分析、暂态分析等。设置仿真参数后,点击“确定”。 5. 运行仿真:选择“仿真”>“运行”来启动仿真。在仿真过程中,软件将模拟电路的响应,并将结果输出到仿真波形窗口中。 6. 查看仿真结果:在仿真波形窗口中,你可以查看各个元件的电流、电压等参数随时间变化的波形。你还可以对波形进行放大、缩小、平移等操作,以更详细地分析电路的性能。 7. 保存和导出结果:在仿真过程中,你可以选择将结果保存为文件或导出为其他格式,如图像文件或数据文件。 以上是 PSpice 17.2 使用初级教程的基本步骤。随着实践的深入,你可以进步了解复杂电路的建模和分析方法,并尝试更高级的功能和技术。 ### 回答2: PSPICE 17.2是款电子电路仿真软件,用于对电路进行分析和验证。以下是PSPICE 17.2的使用初级教程: 1. 下载和安装:在官方网站上下载PSPICE 17.2并进行安装。 2. 组件库:打开PSPICE软件后,点击“Capture CIS”图标,进入组件库界面。选择适当的电子元件,如电阻、电容、二极管等,将它们拖放到画布上。 3. 电路连接:在画布上拖放所需元件后,使用导线工具连接它们。点击导线图标,选择合适的连接方式,并将其拖动到适当的端口上。 4. 参数设定:双击元件,弹出元件属性对话框。在这里设置元件的数值,例如电阻的阻值、电容的电容值等。 5. 电源设置:在画布上点击右键,选择“Power Sources”,然后选择适当的电源,如直流电源或交流电源。设置电源的电压或电流数值。 6. 仿真设置:点击画布上方的“PSpice”选项,选择“Edit Simulation Profile”打开仿真配置对话框。在仿真配置中,设置仿真参数,如仿真类型(直流、交流、脉冲等)、仿真时间等。 7. 仿真运行:在仿真配置对话框中点击“Run”按钮,开始进行电路仿真运行。仿真完成后,可以查看并分析仿真结果,如电流、电压、功率等。 8. 结果分析:通过菜单栏中的“PSpice>Probe”选项,打开特定信号的仿真结果。通过选择信号节点,可以显示该信号的波形、幅值和频谱等信息。 9. 数据输出:仿真结束后,可以通过“PSpice>Results”菜单栏选项,导出仿真结果到文本文件,以供后续分析。 10. 误差调整:如果仿真结果与预期不符,可以检查电路连接、元件参数等以找出问题。根据需要进行调整,重新运行仿真以验证改进效果。 以上就是PSPICE 17.2使用初级教程的简要介绍。在使用过程中,请参考软件的帮助文件和官方文档,以获取更详细的指导和解决方法。任何新的软件都需要不断的实践和尝试,希望这个教程能对你有所帮助。 ### 回答3: PSPICE 17.2是款常用的电路仿真软件,用于电路设计和分析。下面是个简要的PSPICE 17.2的初级教程: 1. 下载和安装:首先,从官方网站下载PSPICE 17.2,并按照安装向导进行安装。安装完成后,打开软件。 2. 创建新工程:在PSPICE 主界面上,点击“File”菜单,然后选择“New Project”来创建个新的工程。给工程起个适当的名字,并选择工程的存储位置。 3. 添加电路元件:在工程界面上,点击“Place”图标,然后选择不同的元件来构建你的电路。你可以从库中选择各种电子元件,如电阻、电容、电感等,并将它们拖放到工程界面上。 4. 连接元件:选择“Wire”图标,然后点击元件的引脚来连接它们。确保连接顺序正确,以保证电路的正确性。 5. 设置元件参数:对于每个添加的元件,你需要设置它们的参数。右键点击元件,选择“Edit Propertiess”,然后在弹出的窗口中输入适当的参数值。 6. 添加电源:在电路中添加电源,以提供电路所需的电能。选择“Place”图标,然后选择合适的电源元件并将其拖放到电路中。同样,设置电源的参数值。 7. 设置仿真配置:在工程界面上,点击“PSpice”菜单,然后选择“Edit Simulation Profile”来设置仿真配置参数。你可以选择仿真类型、仿真时间和仿真步长等。 8. 运行仿真:点击“PSpice”菜单,选择“Run”来运行仿真。PSPICE将自动运行仿真并显示结果。 9. 分析和优化:根据仿真结果,可以分析和优化电路的性能。你可以观察电流、电压和功率等参数,以评估电路的性能,并根据需要进行调整。 10. 保存和导出结果:在分析和优化完成后,可以保存你的工程并导出结果。点击“File”菜单,选择“Save Project”来保存工程,然后选择“Outut”菜单,选择“Export”来导出结果。 以上是PSPICE 17.2的初级教程的简要介绍。通过以上步骤,你可以开始使用PSPICE 17.2进行电路设计和仿真。在实践中不断探索和学习,你将成为个熟练的PSPICE用户。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值