1、PCI总线原理 PCI即Peripheral Component Interconnect,中文意思是“外围器件互联”,是由PCISIG (PCI Special Interest Group)推出的一种局部并行总线标准。在现在电子设备中应用非常广泛,下面我详细介绍下PCI总线的工作原理,希望对大家有所帮助。z#1J:dr)gh o+T/p0 中国通信人博客$T&K2U!Ig PCI总线的过去现在和未来/Ek4B1Vo h1+G1g0 PCI总线是由ISA(Industy Standard Architecture)总线发展而来的,ISA并行总线有8位和16位两种模式,时钟频率为8MHz,总线
2、带宽为:8bit*8MHz=64Mbps=8MB/s 或 16bit*8MHz= 128Mbps =16MB/s。在计算机出现初期的386/486时代,ISA总线的带宽已经算是很宽的了,满足CPU的需求可以说是绰绰有余了。1987年,IBM公司推出32位MAC(MicroChannel Architecture)总线,总线带宽达到40MB/s,迫于IBM的压力,Compaq、AST、Epson、HP、Olivetti和NEL等9家公司联合于1988年9月推出EISA(Extended ISA)总线,EISA总线仍然保持ISA总线的8MHz时钟频率,但将总线位宽提高到32位,总线带宽为:32bi
3、t*8MHz=256Mbps = 32MB/s,并且与ISA总线完全兼容。中国通信人博客PX,ct/Bw中国通信人博客/e7iyJ4aI随着计算机技术的继续发展,CPU的处理速度越来越快,EISA总线的32MB/s带宽已经满足不了CPU的需求,CPU外围总线带宽已经成为制约计算机处理能力继续提高的瓶颈。1991年下半年,Intel公司首选提出PCI总线的概念,并与IBM、Compaq、AST、HP、DEC等100多家公司成立PCISIG组织,联合推出PCI总线。中国通信人博客zH B rs;igqi&n8p4r&HYNM0 PCI总线支持32位和64位两种位宽,时钟频率为33MHz,总线带宽:
4、32bit*33MHz= 1056Mbps=132MB/s 或64bit*33MHz=2112Mbps=264MB/s。中国通信人博客S%vKP,m:hc Xj6a中国通信人博客E9j3iq Ie?;S 随着PCI总线的发展,PCI总线又发展到PCI-X时代,与PCI总线相比,PCI X总线的位宽未改变,而是将时钟频率进行了提高。中国通信人博客Z*)S*a,d)w(r itlzFu_0 PCI-X 1.0的时钟频率有66MHZ/100MHz/ 133MHz,总线带宽分别为:264MB/s, 400MB/s和532MB/s(32位),528MB/s, 800MB/s和1064MB/s(64位);
5、中国通信人博客#zxX$_$WPv#pV:isP I0 PCI-X 2.0的时钟频率有266MHz/533MHz/1066MHz,总线带宽分别为:1064MB/s, 2132MB/s和4264MB/s(32位),2128MB/s, 4264MB/s和8512MB/s(64位),PCI-X与PCI总线在硬件结构上完全兼容。中国通信人博客3Pr H9FmXez4Ib:y4yL:l tS0 与PCI总线相比,PCI-X除掉在时钟频率高外,还在传输协议上进行了改进,PCI-X采用了“寄存器到寄存器”的新协议,在新协议模式下,发送方发出的数据信号会被预先送入一个专门的寄存器内,并在寄存器中保存一个时钟周
6、期,接收端只要在这个周期内做出响应,取走数据即可。而PCI协议中却没有这个缓冲,数据发出去后,如果对方因某种原因没能及时接收,数据将会被丢弃。8H2d6h6C G0 i:t,a+xb3q3h V0 如今,PCI总线已经发展到PCI-Express时代,这是一个串行高速总线,也是由PCISIG推出,分为X1,X2,X4,X8,X12,X16和X32七种模式,X1模式有2对差分线,1对收1对发,X2模式有4对差分线,2对收2对发,其它类推。PCI-E 1.0的速率为2.5Gbps,PCI-E 2.0的速率为5.0Gbps,PCIE 3.0的速率可达8.0Gbps。PCIE正在替代着PCI/PCI-
7、X的角色,相信在不久的将来,PCI/PCI-X总线就如同ISA/EISA总线一样,进入历史的博物馆。PCI总线的发展图如下所示。c _5m wb&G0 7YP7Rw0o0 中国通信人博客:ci/L%ab:MAw PCI总线结构中国通信人博客ZL0KK;L9j-l8s%EO( PCI总线是一种树型结构,并且独立于CPU总线,可以和CPU总线并行操作。PCI总线上可以挂接PCI设备和PCI桥片,PCI总线上只允许有一个PCI主设备,其他的均为PCI 从设备,而且读写操作只能在主从设备之间进行,从设备之间的数据交换需要通过主设备中转。PCI总线结构如下图所示。$Z;fjW8Biz ko;M?0 中国
8、通信人博客0k2kKVT9DY$w ao+Xi0 PCI即Peripheral Component Interconnect,中文意思是“外围器件互联”,是由PCISIG (PCI Special Interest Group)推出的一种局部并行总线标准。在现在电子设备中应用非常广泛,下面我详细介绍下PCI总线的工作原理,希望对大家有所帮助。w0QVf,t(GL(h0 中国通信人博客7 UD BN.E PCI总线管脚功能l,$M2w? u0 PCI主设备最少需要49根线,从设备最少需要47根线,剩下的线可选。在介绍PCI管脚功能前,先来说明下PCI管脚信号的类型。中国通信人博客nda.z6vD
9、)pK4t f5R3f,z.m0 in:输入信号;z;a*-W!MFf5t%l0 out:输出信号;中国通信人博客,SU;C AsLF t/s:双向三态信号(Tri-state),无效时为高组态;中国通信人博客|+t2yy B0.x s/t/s:持续三态信号(Sustained Tri-state),每次由且只由一个单元拥有并驱动的低有效双向、三态信号。驱动一个s/t/s信号到低的单元在释放该信号浮空之前必须要将它驱动到高电平至少一个周期。这个特点很重要,在后面我们分析PCI信号质量案例的时候会用到;中国通信人博客/lE uC.v o/d:漏极开路输出(Open Drain);5txj#cQT
10、X.l0 #:此符号代表该信号在低电平时有效。中国通信人博客 Q&LxI0J.+l&cS n-Cl U1B0 PCI总线引脚图如下所示。中国通信人博客Mh-J:r(c#iTZ中国通信人博客0u5dVe wk0FM中国通信人博客b)GGf(nk2 实际使用中需要上拉的信号有:FRAME#, TRDY#, IRDY#, DEVSEL#, STOP#, PERR#, SERR#, LOCK#, REQ64#, ACK64#, REQ#, GNT#, AD63:32, C/BE7:4, PAR64等,上拉电阻一般为10kohm,未使用的PCI管脚也要处理,避免悬空。不需要上拉的信号有AD31:0, C
11、/BE3:0, PAR, IDSEL, CLK。中国通信人博客:MI.h1j2Sz%3IR#z7u Q0 1).系统引脚中国通信人博客 |9m I0z Y|i(c CLK:in,系统时钟,为所有PCI上的传输及总线仲裁提供时序。除RST#外,所有PCI信号都在CLK信号的上升沿采样。Jbv:f&_d8zMg0 9O( X5F #jIV0 RST#:in,异步复位信号。中国通信人博客qc3Zyb&W| OSwK中国通信人博客 Sef,ng2_Qwex6|Vn0 2).地址及数据引脚中国通信人博客1L3s Qp4L 9z0 AD31:0:t/s,地址数据复用引脚。FRAME#开始变为有效的那个时钟
12、周期内AD31:0上传输的是地址。对于配置空间和存储空间,这是一个双字节地址,对于I/O空间,这个一个单字节地址。传输数据时,AD7:0为最低字节数据。中国通信人博客Z0#XWRza0Az dC-vk0Vj0 C/BE3:0#:t/s,总线命令和字节允许复用引脚。在AD31:0上传输地址的时候,C3:0上传输的是总线命令,AD31:0上传输数据的时候,BE3:0#用作字节允许,表示哪些通道上的数据是有效的。BE0#对应最低字节。中国通信人博客3L!JKnkyIWxmfW y8c9w0 PAR:t/s,AD31:0和C/BE3:0#上的数据偶效验。PAR与AD31:0有相同的时序,但延迟一个时钟
13、,在地址段后一个时钟,PAR稳定并有效;对于数据段,在写传输中,PAR在IRDT#有效一个时钟稳定并有效,而在读传输中,PAR在TRDY#有效后一个时钟周期稳定并有效。一旦PAR有效,它必须保持有效直到当前数据段完成后一个时钟。在地址段和写数据段,主PCI设备驱动PAR,在读数据段,目标从PCI 设备驱动PAR。中国通信人博客I.J5|D6SJs | Ukw)v.Vs0 3).接口控制引脚j4NrzR(XM r0 c H Fep8lH0 FRAME#:s/t/s,帧开始信号。由当前总线主设备驱动,以说明一个操作的开始和延续。FRAME#有效,说明总线开始传输,当FRAME#维持有效时,说明总线
14、传输继续进行,当FRAME#无效时,说明传送的最后一个字节正在进行。ajfQ)L0 中国通信人博客GJ/e:i7M$z4L IRDY#:s/t/s,启动者准备好信号(Initiator Ready)。说明传输的启动者完成当前数据传输的能力。在读操作中,IRDY#有效说明总线主设备已准备好接收收据。在写操作中,它说明AD3:0上已有有效数据。在IRDY#和TRDY#都有效的时钟周期完成数据传输。在IRDY#和TRDY#都有效之前,需要插入等待状态。X A.VR jg0 中国通信人博客c0qu0N1b7V TRDY#:s/t/s,目标设备准备就绪(Target Ready)。说明传输的目标设备完成
15、当前的数据传输能力。在写操作中,TRDY#有效说明目标设备已经准备好接收数据。在读操作中,它说明AD31:0上已有有效数据。-c*c;GjZ F0 中国通信人博客.w.A u/nW-Sw STOP#:s/t/s,停止信号。说明当前的目标设备要求总线主设备停止当前传输。中国通信人博客R*aKMr-gjIEU$dR_*c j 0 LOCK#:s/t/s,锁定信号。中国通信人博客8b4F E*MrQ!v中国通信人博客Q._J$F X oK IDSEL:in,初始化设备选择(Initialization Device Select)。在配置空间读写操作中,用作片选。中国通信人博客.xHAF#O$Uy中
16、国通信人博客 y&W8r#B DEVSEL#:s/t/s,设备选择。当驱动有效时,说明驱动它的设备已将其地址解码为当前操作的目标设备。*W8| +z2I0 中国通信人博客d_ zb vj 4).仲裁引脚中国通信人博客,_$goe%v s REQ#:t/s,申请。向仲裁器说明该单元想使用总线。这是一个点对点的信号,每个总线主设备都有自己的REQ#。中国通信人博客gY9MZs!n2Ow-zz4|)R0 GNT#:t/s,允许。仲裁器向申请单元说明其对总线的操作已被允许。这是一个点对点信号,每个总线主设备都有自己的GNT#。UOLnSo;O0 中国通信人博客:hY oD.R,UV.S I 5).错误
17、反馈引脚中国通信人博客+G8J tW HQlz-x中国通信人博客4U%_:fu%sk8 PERR#:s/t/s,奇偶校验错误(Parity Error)。该引脚用于反馈在除特殊周期外的其他传送过程中的数据奇偶校验错误。PERR#维持三态,在检测到奇偶校验错误后,在数据结束后两个时钟周期,由接收数据的单元驱动PERR#有效。并至少持续一个时钟周期。只有发出DEVSEL#的单元才能发出PERR#。FL0d2I/Z9b9D0 中国通信人博客5l#DD(Ut U s$k SERR#:o/d,系统错误(System Error)。用于反馈地址奇偶校验错误、特殊周期命令中的数据奇偶校验错误和将引起重大事故
18、的其他灾难性的系统错误。中国通信人博客L-|w Z$MF!O.c.M,CP0 6).中断引脚%tI-zaO6QQ0 INTA#, INTB#, INTC#, INTD#:o/d,中断输出。9I+qck0 ;KR.m z0 7).高速缓存支持引脚!ob+s0|wu0 一个能高速缓存的PCI存储器必须利用这两条高速缓存支持引脚作为输入,以支持写通(write-through)和回写(write-back)。如果可高速缓存的存储器是位于PCI上,则连接回写高速缓存到PCI的桥路必须利用这两条引脚,且作为输出。连接写通高速缓存的桥路可以只使用一条引脚SDONE。SmKI0x4|ZCR0 U%t!C(S
19、R7oT0 SBO#:in/out,监视补偿。当其有效时,说明对某条变化线的一次命中。当SBO#无效而SDONE有效时,说明了一次“干净”的监视结果。中国通信人博客q/B cL/Hf3B)T h2ZE W0 SDONE: in/out,监视进行。表明对当前操作的监视状态。当其无效时,说明监视结果仍未定。当有效时,说明监视已有结果。;VI1kR4M4wbK0 Yq$H0L;MTa:FG;K0 8).64位总线扩充引脚7VN(k3tzN,V:S0 中国通信人博客3iT0W7NZ6l;d AD63:32:t/s,地址数据复用引脚提供32个附加位。在一个地址段,传送64位地址的高32位。在数据段,传送
20、64位中的高32位。中国通信人博客+apLEW B.e/q(S+x.PwH0 C/BE7:4#:t/s,总线命令和字节允许复用引脚。中国通信人博客qf9lL2aT6K_ iVm jcA N s0 REQ64#:s/t/s,请求64位传输。当其被当前总线主设备有效驱动时,说明总线主设备想作64位传输。中国通信人博客5v*t(GIF+k?2K(X+AnEe0 ACK#:s/t/s,应答64位传送。在当前操作所寻址的目标设备有效驱动该信号时,说明目标设备能够进行64位传输,ACK#和DEVSEL#有相同的时序。中国通信人博客 a.f+gX:中国通信人博客&/dmJg8E Q6z PAR64:t/s,
21、高双字偶校验。J#Ic,uag#W$Y3?_0 PCI即Peripheral Component Interconnect,中文意思是“外围器件互联”,是由PCISIG (PCI Special Interest Group)推出的一种局部并行总线标准。在现在电子设备中应用非常广泛,下面我详细介绍下PCI总线的工作原理,希望对大家有所帮助。中国通信人博客rG/bTecU|YJo YuHG0 PCI总线的典型接法中国通信人博客R3cVM)l;.N 下图为PCI总线的典型接法,点击看清楚大图。中国通信人博客7WE;EYw$H中国通信人博客?+l |4|-:|-? Tu9Jg0 PCI总线上IDSE
22、L管脚的处理方式4D2q: dvGL0 主PCI桥片的IDSEL管脚一般通过电阻下拉到地,从PCI设备的IDSEL 管脚和AD11:31相连,每个PCI从设备连接其中的一根,且不能重复。如下图所示。中国通信人博客M+_-j-kqmL*Z$f中国通信人博客56X c7%fE3t中国通信人博客MqE7WdSoL PCI信号的驱动方式中国通信人博客 +VeX1P2G_ PCI信号为半波驱动方式,为了更好的说明什么是半波驱动方式,下面我用一个仿真实例来说明。下图为仿真链路。aR/Bl sY0 Sk6?Xj7I0 中国通信人博客 D+3b*BBW.仿真出来的波形如下图所示。(示意图)?j$R#O8X y
23、*dQaT0 中国通信人博客L e2Ql4?Ue中国通信人博客DoO C R#f8f中国通信人博客9Ai b)q*? 从上图可以看出,PCI_OUT_3.3V输出先是以大约2.3V的半幅度来驱动总线,经过大约2ns延迟后,信号到达接收端,接收端阻抗不匹配,将信号反射回始端,反射信号经过2ns的延迟后到达始端,驱动信号与反射信号在始端出现叠加,使PCI_OUT_3.3V在大约4ns的位置达到全幅度3.3V。之后经过短暂振荡后趋于平衡。由于大多数PCI器件片内都内置了限幅器件,所以PCI信号在不在始端添加串行匹配电阻都可以使PCI信号很快平稳。只是加串阻后,信号幅度更低,使PCI器件的使用寿命更长
24、。中国通信人博客 rB;Uux G%kg5q PCI即Peripheral Component Interconnect,中文意思是“外围器件互联”,是由PCISIG (PCI Special Interest Group)推出的一种局部并行总线标准。在现在电子设备中应用非常广泛,下面我详细介绍下PCI总线的工作原理,希望对大家有所帮助。中国通信人博客b;$jXk/D7Qov2Pm%g0_ 5$qJ0 PCI仲裁器工作原理中国通信人博客)p32cO$ 假设PCI仲裁器上接三个PCI设备,如下图所示。中国通信人博客!k7zC t1sa _中国通信人博客eBJWw_&k中国通信人博客x LY&?4
25、H$e7KFh 假定PCI1,PCI2,PCI3三个设备的优先级相同,上电后,PCI总线仲裁器会将PCI1设备的GNT1信号驱动为低电平(有效)。即PCI1占用PCI总线。如果此时PCI1上没有数据传输,但PCI2上有数据要传输,PCI2设备就会驱动REQ2为低电平来向仲裁器发出PCI总线使用请求。仲裁器在时钟的上升沿采样到REQ2信号,在下一个时钟沿,PCI2将FRAME和IRDY驱动为低电平(FRAME和IRDY是所有PCI设备共用的),仲裁器在时钟的上升沿采样到这两个信号后,就将GNT2驱动为低电平,应答PCI2的请求,这样,PCI2就拥有了PCI总线的使用权。中国通信人博客9e#U7E
26、|7v1Y2i中国通信人博客.Z G/A1_.R a*DOO这里有一个问题,为什么PCI总线仲裁器不在采样到REQ2信号有效后立即将GNT2置低,将PCI总线的使用权交给PCI2设备,而是要等到PCI2设备的FRAME和IRDY信号有效后才执行呢?o,|nu%y0 tSC:;c/t$K;K S$K0 这主要是仲裁器避免某些PCI设备申请总线使用权而实际上不使用,所以要等到FRAME和IRDY信号有效后(表示数据传输准备就绪)才授权使用总线。如果仲裁器在采样到REQ2有效后,一直没有采样到FRAME和IRDY信号有效,仲裁器会不会一直等待下去呢?答案是不会,仲裁器内部有一个定时器,等到定时器超时
27、后,仲裁器就不再等了。Wr,| G-zt;+H0 中国通信人博客RMqb#M#L 仲裁规则:优先级高设备抢占优先级低设备资源0_8 Re.w$v!?0 假设三个PCI设备的优先级顺序为:PCI3PCI2PCI1。Z% sbo*s 4O Zz0 某个时刻,PCI1正在使用PCI总线传输数据,如果此时PCI2想要使用PCI总线,于是将REQ2驱动为低,向PCI总线仲裁器申请PCI总线的使用权,此时REQ1和REQ2都处于有效状态,虽然PCI2的优先级高于PCI1,但是总线仲裁器不会马上响应PCI2的请求。而是等待PCI1完成一次操作(注意:是一次操作,不是全部)后,PCI1将FRAME和IRDY总
28、线驱动为高(每完成一次操作都需要进行此操作的)。中国通信人博客 bt3BP中国通信人博客H:tOK&d PCI2探测到PCI总线空闲后,将FRAME和IRDY信号驱动为低。总线仲裁器采样到这两个信号有效后,将GNT1驱动为高,同时将GNT2驱动为低,将总线的使用权转交给PCI2。中国通信人博客.ZqQ3Q L5S此时,如果PCI1完成了全部传输,会将REQ1驱动为高。中国通信人博客k J4ovyfSr+ SW?j*p0 如果PCI1还有数据等待传输,那么它会将REQ1一直保持为低电平,一直进行总线申请。一直等待到PCI2完成所有操作后,还会将PCI总线的使用权释放给PCI1。中国通信人博客 y
29、K#qPXRYL8DomgI)FJ60 PCI操作类型!tV9b!r k S0 前面已经说过了,在FRAME信号有效后的第一时钟周期,AD31:0总线上传输的是目标PCI器件的地址,C/BE3:0上传输的操作命令类型。如下图所示。中国通信人博客!)l: R0WQ 中国通信人博客k h7_J2Q U中国通信人博客GG3L7!k-Oa PCI总线的读写时序中国通信人博客,Fl(3o PCI总线写时序如下图所示。(点击看清楚大图)Vr&dL 5y-I0 (BtY N wR&r,oG0 (L0uXZy2mk0 MR+UJN%aE0v0 如上图所示,在FRAME#有效后的第一个时钟周期内,AD上传输的是要写入目标PCI设备的地址信息,C/BE#上传输的是命令类型(I/O写命令为0011),DEVSEL#信号有效后,表明目标PCI设备已经被选择到,IRDY#和TRDY#同时有效后,主PCI设备向目标PCI设备中传输要写入的数据,在第5个时钟周期时,IRD
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1