Linux驱动设计硬件基础(四)接口与总线之PCI和PCI-E

2.3.6 PCI和PCI-E

PCI(外围部件互连)是由Intel于1991年推出的一种局部总线,作为一种通用的总线接口标准,在目前的计算机系统中得到了非常广泛应用。PCI总线具有如下特点。

数据总线为32位,可扩充到64位。

可进行突发(Burst)模式传输。突发方式传输是指取得总线控制权后连续进行多个数据的传输。突发传输时,只需要给出目的地的首地址,访问第1个数据后,第2~n个数据会在首地址的基础上按一定规则自动寻址和传输。与突发方式对应的是单周期方式,它在1个总线周期只传送1个数据。

总线操作与处理器—存储器子系统操作并行。

采用中央集中式总线仲裁。

支持全自动配置、资源分配,PCI卡内有设备信息寄存器组为系统提供卡的信息,可实现即插即用。

PCI总线规范独立于微处理器,通用性好。

PCI设备可以完全作为主控设备控制总线。

图2.16给出了一个典型的基于PCI总线的计算机系统逻辑示意图,SCSI(小型计算机系统接口)卡


图2.16 基于PCI总线的计算机系统逻辑示意图

    系统的各个部分通过PCI总线和PCI-PCI桥连接在一起。CPU和RAM通过PCI桥连接到PCI总线0(即主PCI总线),而具有PCI接口的显卡则可以直接连接到主PCI总线上。PCI-PCI桥是一个特殊的PCI设备,它负责将PCI总线0和PCI总线1(即从PCI主线)连接在一起,通常PCI总线1称为PCI-PCI桥的下游(Downstream),而PCI总线0则称为PCI-PCI桥的上游(Upstream)。为了兼容旧的ISA总线标准,PCI总线还可以通过PCI-ISA桥来连接ISA总线,从而支持以前的ISA设备。

    当PCI卡刚加电时,卡上配置空间即可以被访问。PCI配置空间保存着该卡工作时所需的所有信息,如厂家、卡功能、资源要求、处理能力、功能模块数量、主控卡能力等。通过对这个空间信息的读取与编程,可完成对PCI卡的配置。如图2.17所示,PCI配置空间共为256字节,主要包括如下信息。


制造商标识(Vendor ID):由PCI组织分配给厂家。

设备标识(Device ID):按产品分类给本卡的编号。

分类码(Class Code):本卡功能的分类码,如图卡、显示卡、解压卡等。

申请存储器空间:PCI卡内有存储器或以存储器编址的寄存器和I/O空间,为使驱动程序和应用程序能访问它们,需申请CPU的一段存储区域以进行定位。配置空间的基地址寄存器用于此目的。

申请I/O空间:配置空间中的基地址寄存器用来进行系统I/O空间的申请。

中断资源申请:配置空间中的中断引脚和中断线用来向系统申请中断资源。

    PCI-E(PCI Express)是Intel公司提出的新一代的总线接口,PCI Express采用了目前业内流行的点对点串行连接,比起PCI以及更早的计算机总线的共享并行架构,每个设备都有自己的专用连接,采用串行方式传输数据,不需要向整个总线请求带宽,并可以把数据传输率提高到一个很高的频率,并可以把数据传输率提高到一个很高的频率,达到PCI所不能提供的高带宽。

    PCI Express在软件层面上兼容目前的PCI技术和设备,支持PCI设备和内存模组的初始化,也就是说无须推倒目前的驱动程序、操作系统,就可以支持PCI Express设备。









猜你喜欢

转载自blog.csdn.net/xiezhi123456/article/details/80237244