P CI 设备驱动开发 PCI 设备驱动开发 2008-08-28 13:07 1. P CI 简介 PCI 总线标准是一种将系统外部设备连接起来的总线标准,是 PC 中最重要的总线,实际上是系统的各个部分如何交互的接口。传输速率可达到 133MB/s。在当前的 PC 体系结构中,几乎所有的外部设备采用的各种各样的接口总线,均是通过桥接电路挂接到 PCI 系统上。在这种 PCI 系统中, Host/PCI 桥称为北桥,连接主处理器总线到基础 PCI 局部总线。 PCI 与其他总线的接口称为南桥,其中南桥还通常含有中断控制器、IDE 控制器、USB 控制器和 DMA 控制器等。南桥和北桥组成主板的芯片组。 2. P CI 配置空间 每个PCI 设备都有自己的配置空间,用于支持即插即用,使之满足现行的系统配置结构。下面对 PCI 配置空间做一下简要介绍。 配置空间是一容量为256 字节并具有特定结构的地址空间。这个空间又分为头标区和设备有关区两部分。头标区的长度是64 字节,每个设备都必须配置该区的寄存器。该区中的各个字段用来唯一地识别设备。其余的192 字节因设备而异。配置空间的头标区 64 个字节的使用情况如图 1 示。 为了实现即插即用,系统可根据硬件资源的使用情况,为PCI 设备分配新的资源。因此编写设备驱动程序重点是获得基址寄存器(Base Address)和中断干线寄存器的内容。配置空间共有六个基址寄存器和一个中断干线寄存器,具体用法如下: PCI Base Address 0 寄存器:系统利用此寄存器为PCI 接口芯片的配置寄存器分配一段 PCI 地址空间,通过这段地址我们可以以内存映射的形式访问 PCI 接口芯片的配置寄存器。 PCI Base Address 1 寄存器:系统利用此寄存器为PCI 接口芯片的配置寄存器分配一段 PCI 地址空间,通过这段地址我们可以以 I/O 的形式访问 PCI 接口芯片的配置寄存器。 PCI Base Address 2、3、4、5 寄存器:系统BIOS 利用这些寄存器分配 PCI 地址空间以支持 PCI 接口芯片的局部配置寄存器0、1、2、3 的访问。 在所有基址寄存器中,第 0 位均为只读位,表示这段地址映射到存储器空间还是I/O 空间,如果是“1”表示映射到I/O 空间,如果是“0”则表示映射到存储器空间。 中断干线寄存器(Interrupt Line):用于说明中断线的连接情况,这个寄存器的值与标准8259 的IRQ 编号(0~15)对应。 Byte3 Byte2 Byte1 Byte0 Device ID Vendor ID PCI Status PCI Command Class...