您的位置:首页 > 其它

二、Signal Definition

2016-07-28 20:14 225 查看
2.1. Signal Type Definition
为了进行数据处理、寻址、接口控制、仲裁等系统功能,PCI主设备(master device,取得PCI总线控制权的设备)最少需要49根引脚(pins),从设备(target-only device)最少需要47根引脚(pins),剩下的引脚可选。

根据数传方向及驱动特性,上图所示PCI引脚存在五种信号类型:
in:
Input is a standard input-only signal.(标准输入信号)
out:
Totem Pole Output is a standard active driver.(输出驱动信号)
t/s:
Tri-State is a bi-directional, tri-state input/output pin.(双向、三态输入/输出信号,无效时为高组态)
s/t/s:
Sustained Tri-State is an active low tri-state signal owned and driven by one
and only one agent at a time.(持续地且低电平有效的三态信号。在某一时刻只能属于一个主设备并被其驱动。这种信号从有效变为浮空(高阻状态)之前必须保证使其具有至少一个 时钟周期的高电平状态。另一主设备要想驱动它,至少要等到该信号的原有驱动者将其释放(变为三态)一个时钟周期之后才能开始。同时,如果此信号处于持续的非驱动状态时,在有新的主设备驱动它 之前应采取上拉措施,并且该措施必须由中央资源提供。)
o/d:
Open Drain allows multiple devices to share as a wire-OR.(漏极开路输出信号)

2.2. Pin Functional Groups
在图2-1中,由“#”修饰的信号代表该信号在低电平时有效,无“#”修饰的信号在高电平时有效。



2.2.1. System Pins(系统引脚)

SignalTypeFunction
CLKin系统时钟信号,为PCI上所有事务和仲裁提供时序,除RST#, INTA#, INTB#, INTC#, INTD#, PME#以及CLKRUN#,其它PCI信号都在CLK信号上升沿采样,进行同步数据传递。
RST#in异步复位信号,使得PCI-specific寄存器、sequencers以及signals复位到一个一致的状态(初始状态)。
2.2.2. Address and Data Pins

SignalTypeFunction
AD[31::00]t/sAddress and Data,地址和数据多路复用引脚,通常一个地址周期紧跟一个数据周期。FRAME#有效的第一个时钟周期是地址周期(address phase),AD[31::00]传输的是一个32位物理地址,对于I/O操作,它是一个字节地址,对于配置和存储器操作,则是双字地址。下一个时钟周期是数据周期,AD[07::00]为最低有效字节(lsb),AD[31::24]为最高有效字节(msb)。当IRDY#有效时,表示写数据稳定有效;当TRDY#有效时,表示读数据稳定有效;IRDY#和TRDY#同时有效时,数据周期内可读写,即数据传输。PCI总线支持突发传送,即在一个地址周期后,紧跟多个数据周期。
C/BE[3::0]#t/sBus Command and Byte Enables,总线命令和字节使能多路复用信号引脚。在地址周期内, C/BE[3::0]#表示PCI总线命令;在数据周期内, C/BE[3::0]#输出Byte Enables(字节选通)信号,该信号在整个数据周期内有效,且用于determine哪个byte lanes 携带了有效数据。 C/BE[3]#、C/BE[2]#、C/BE[1]#、C/BE[0]#分别对应数据的3(msb)、2、1、0(lsb)字节。
PARt/sAD[31::00]#和C/BE[3::0]#的奇偶校验引脚,用于确保地址和数据信号在进行数据传递时的完整性。PAR与AD[31::00]#有相同的时序,但要比其延迟一个时钟周期,即在每个地址周期的下一个时钟周期内,PAR信号稳定且有效;对于数据周期,在IRDY#(写事务)或TRDY#(读事务)有效的下一个时钟周期内,PAR信号稳定且有效。一旦PAR有效,它必须在当前数据周期结束后的一个时钟周期内持续有效。在地址周期和写数据周期中,PAR信号由PCI主设备驱动;在读数据周期中,PAR信号由PCI从设备驱动。
2.2.3. Interface Control Pins
在PCI总线中,接口控制信号的主要作用是保证数据的正常传递,并根据PCI主从设备的状态,暂停、终止或者正常完成当前总线事务,其主要信号如下:

SignalTypeFunction
FRAME#s/t/sCycle Frame信号。FRAME#信号指示一个PCI总线事务的的开始与结束。当PCI设备获得总线使用权后,将该信号置为有效,即置为低,从而启动PCI总线事务;当结束总线事务时,置该信号为高电平。PCI设备(Host主桥)只有通过仲裁获得当前PCI总线使用权后,才能驱动该信号。
IRDY#s/t/sInitiator Ready信号表明PCI主设备已准备好,有能力完成一个数据周期。IRDY#要与TRDY#配合使用。在某一时钟周期内, IRDY#和TRDY#都有效时,才进行完整的数据传输(读写),否则即为等待周期(Wait cycles)。在写事务周期内,IRDY#有效表示AD[31:00]上数据已准备好;在读事务周期内,IRDY#有效表示PCI主设备已准备好接收 AD[31:00]上的数据。
TRDY#s/t/sTarget Ready信号表明PCI从设备已准备好,有能力完成一个数据周期。TRDY#要与IRDY#配合使用。在某一时钟周期内, TRDY#和IRDY#都有效时,才进行完整的数据传输(读写),否则即为等待周期(Wait cycles)。 在读事务周期内,TRDY#有效表示 AD[31:00]上数据已准备好;在写事务周期内,TRDY#有效表示PCI从设备已准备好接收 AD[31:00]上的数据。
STOP#s/t/sStop信号用于停止当前数据传输。该信号由PCI从设备驱动,STOP#有效时,表示当前PCI从设备请求PCI主设备终止当前的PCI总线事务。
LOCK#s/t/sLock信号。PCI总线使用LOCK#实现LOCK总线事务,只有HOST主桥、PCI桥或者其他桥片可以使用LOCK#信号。PCI主设备可以使用LOCK#信号将PCI从设备的某个存储器或I/O资源锁定,以禁止其他PCI主设备访问此资源,直到锁定这个资源的主设备将其释放。目前,PCI总线使用LOCK#信号仅是为防止死锁和向前兼容。
IDSELinInitialization Device Select信号。PCI总线在进行配置读写总线事务时,使用该信号进行chip select(片选),即选择PCI从设备。配置读写总线事务使用“ID译码方式”访问PCI设备,即通过PCI设备总线号、设备号和寄存器号访问PCI设备的配置空间。IDSEL信号与PCI设备的设备号有关,相当于PCI设备配置空间的片选信号。
DEVSEL#s/t/sDevice Select信号,由PCI从设备驱动。该信号有效表示从设备已经完成了地址译码,告知PCI主设备其访问对象在当前PCI总线上。
注:在PCI总线中,配置读写总线事务与存储器读写总线事务在实现上略有不同。前者使用“ID译码方式”,后者使用“地址译码方式”访问PCI设备。

2.2.4. Arbitration Pins (Bus Masters Only)

SignalTypeFunction
REQ#t/sRequest,总线请求信号,由PCI主设备驱动。该信号有效,表示驱动它的设备要求使用PCI总线。REQ#是一个点到点的信号,任何PCI主设备都应有自己的REQ#信号。
GNT#t/sGrant,总线允许信号。该信号有效,表明PCI主设备申请占用PCI总线的请求已获批准。GNT#同样是一个点到点的信号,任何PCI主设备都应有自己的GNT#信号。
注:REQ# is an input to the arbiter, and GNT# is an output.
PCI设备使用该组信号进行总线仲裁,并获得PCI总线的使用权。只有PCI主设备需要使用该组信号,而PCI从设备可以不使用总线仲裁信号。



PCI主设备的总线仲裁信号与PCI总线仲裁器的连接关系如上图所示。每一个PCI主设备都具有独立的总线仲裁信号,并与PCI总线仲裁器一一相连。而总线仲裁器需要保证在同一个时间段内,只有一个PCI设备可以使用当前总线。在一棵PCI总线树中,每一条PCI总线上都有一个总线仲裁器。
PCI主设备使用PCI总线进行数据传递时,需要首先置REQ#信号有效,向PCI总线仲裁器发出总线请求,当PCI总线仲裁器允许PCI主设备获得PCI总线的使用权后,将置GNT#信号为有效,并将其发送给指定的PCI主设备。而PCI主设备在获得总线使用权后,将可以置FRAME#信号有效,与PCI从设备进行数据通信。
当RST#有效时,PCI总线仲裁器必须忽略所有的REQ#信号,PCI主设备必须忽略GNT#,因为REQ#和GNT#都是tri-stated。只有当RST#为非active状态后,PCI总线仲裁器才可执行REQ#请求。

2.2.5. Error Reporting Pins
所有PCI设备都需要the error reporting pins:

SignalTypeFunction
PERR#s/t/sParity Error,数据奇偶校验错误报告信号。该引脚用于反馈在除特殊周期外的其他PCI总线事务中的数据奇偶校验错误。PERR#是sustained tri-state,若一个数据奇偶校验错误被发现,在数据周期结束后两个时钟周期内由数据接收设备驱动PERR#信号为有效,并至少持续一个时钟周期。只有驱动DEVSEL#的设备才能驱动PERR#。该信号的持续时间与数据周期的多少有关,若是一连串的数据周期且每个数据周期都发现有数据奇偶校验错误,那么PERR#的持续时间将多余一个时钟周期。由于该信号是持续的三态信号,所有该信号在释放前必须先驱动为高电平。另外,对数据奇偶校验错误的报告不能丢失也不能推迟。
SERR#o/dSystem Error,系统错误报告信号。该信号用于报告地址奇偶错、特殊命令序列中的数据奇偶错以及其他可能引起灾难性后果的系统错误。SERR#是漏极开路信号,由遣返错误的设备驱动,在一个PCI时钟周期内有效。SERR#信号的发出与时钟同步,因而满足总线上所有其它信号的建立时间和保持时间的要求。
2.2.6. Interrupt Pins (Optional)
中断在PCI总线上是可选的,低电平有效,由漏极开路方式驱动。同时,此类信号的active与非active是与时钟不同步的。PCI为每一个单功能设备定义一根中断线,对于多功能设备(multi-function device)或连接器,最多可有4条中断线。对于单功能设备,只能使用INTA#,其余3条中断线则无意义。
PCI局部总线有四条中断线,定义如下:

SignalTypeFunction
INTA#o/dInterrupt A,中断A用于请求一次中断。
INTB#o/dInterrupt B,中断B用于请求一次中断且只在多功能设备上有意义。
INTC#o/dInterrupt C,中断C同中断B。
INTD#o/dInterrupt D,中断D同中断B。
多功能设(multi-function device)上的任何一种功能都能连接到任何一条中断线上。中断寄存器决定每个function用哪一条中断线去请求中断。若一个设备只用一条中断线,则这条中断线就称为INTA,若该设备用了两条中断线,那么它们就称为INTA和INTB,依此类推。对于多功能设备,可以是所有功能用一条中断线,也可以是每种功能都有自己的一条中断线,还可以是以上两种情况的综合,一个单功能设备不能用一条以上的中断线去申请中断。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PCI io PCIe