PCI总线支持32位和64位两种位宽,时钟频率为33MHz,总线带宽:32bit*33MHz= 1056Mbps =132MB/s 或64bit*33MHz=2112Mbps=264MB/s。64位宽基本用不到。
PCI引脚共有2排共120个引脚,电气信号分为以下几组。地址/数据,共32位,为分时复用。
电气信号
-
第一组:系统信号, 时钟信号(CLK)和复位信号(PCIRST#)
-
第二组:地址/数据,命令/使能信号
-
第三组:传输控制信号,FRAME#, TRDY#, IRDY#, STOP#, DEVSEL#, IDSEL
-
第四组:仲裁请求和仲裁允许, REQ#, GNT#
-
第五组:终端信号
-
第六组:错误校验信号
-
第七组:P
扩展性:
PCI总线上存在若干PCI设备插槽,当PCI插槽无法满足需求,就可以通过PCI桥扩展PCI设备,一个PCI桥把一个PCI总线连在一个PCI插槽上,作为PCI的一个设备。例如CPU通过“宿主-PCI桥与一条PCI总线相连,此总线成为“主PCI总线”,当通过PCI桥扩展PCI总线时,扩展的总线成为“从总线”,当然还可以通过其他的桥比如“PCI-ISA”桥扩展ISA总线,所以这样通过PCI-PCI桥可以构筑起一个层次的、树状的PCI系统结构,对于上层的总线而言,连接在这条总线上的PCI桥也是一个设备,但是这是一种特殊的设备。
-
PCI总线上只允许有一个PCI主设备,其他的均为PCI 从设备,而且读写操作只能在主从设备之间进行,从设备之间的数据交换需要通过主设备中转
其PCI树状结构如图所示总线操作
PCI总线操作的一具典型的特点就是支持BURST传输。什么是BURST传输呢?首先你得知道PCI的数据总线和地址总线是复用的。这就是说在同样的总线上,一段时间是地址,一段时间是传输数据。如果没有BURST传输,那么完成一次数据传输之前都得发一次地址,这就是总线有一半的时间都在传地址,这使得总线和利用率很低。有了BURST传输,可以先发一个起始地址和数据长度N, 之后传输数据0~N-1就可以直接发数据,不用再发地址了。
-
PCI总线典型操作分为两部分:
地址相, 当FRAME#有效时,C/BE#上面出现4位交易码,AD(0-31)上面是地址数据
数据相,当DEVSEL#有效时,AD(0-31)上面出现传输数据PCI总线的具体交易过程如下:
主设备发起#REQ, 申请总线的使用权
得到仲裁允许,#GRT
FRAME#信号拉低,交易地址放入AD, 交易码放入C/BE#
如果从设备就在这个总线上,那么地址译码成功后,从设备会把DEVSEL#拉低,就可以开妈传输数据了
如果从设备不是直接连在总线上,而是跨过了PCI-PCI bridge。那么bridge就会启动一个请求重传的机制。即通过控制信号通知主设备重试,在此同时将自己作为主设备向下一级总线转发上级总线的交易请求,这样,当下一次主设备再次发起交易的时候,bridge上面已经有了从设备获取来的数据,交易就可以正常进行了。
————————————————
版权声明:本文为CSDN博主「huangkangying」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/huangkangying/article/details/50465443