`
lobin
  • 浏览: 425554 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

PCI

即Peripheral Component Interconnect, 外设部件互联

 

ISA

 

MCA(Micro Channel Architecture)

 

EISA

 

PCI

PCI设备结构

这里有个Header type字段

 

Header Type为0x00时的设备结构:

registeroffsetbits 31-24bits 23-16bits 15-8bits 7-0

0000Device IDVendor ID

0104StatusCommand

0208Class codeSubclassProg IFRevision ID

030CBISTHeader typeLatency TimerCache Line Size

0410Base address #0 (BAR0)

0514Base address #1 (BAR1)

0618Base address #2 (BAR2)

071CBase address #3 (BAR3)

0820Base address #4 (BAR4)

0924Base address #5 (BAR5)

0A28Cardbus CIS Pointer

0B2CSubsystem IDSubsystem Vendor ID

0C30Expansion ROM base address

0D34ReservedCapabilities Pointer

0E38Reserved

0F3CMax latencyMin GrantInterrupt PINInterrupt Line

 

Header Type为0x01时的设备结构:

registeroffsetbits 31-24bits 23-16bits 15-8bits 7-0

0000Device IDVendor ID

0104StatusCommand

0208Class codeSubclassProg IFRevision ID

030CBISTHeader typeLatency TimerCache Line Size

0410Base address #0 (BAR0)

0514Base address #1 (BAR1)

0618Secondary Latency TimerSubordinate Bus NumberSecondary Bus NumberPrimary Bus Number

071CSecondary StatusI/O LimitI/O Base

0820Memory LimitMemory Base

0924Prefetchable Memory LimitPrefetchable Memory Base

0A28Prefetchable Base Upper 32 Bits

0B2CPrefetchable Limit Upper 32 Bits

0C30I/O Limit Upper 16 BitsI/O Base Upper 16 Bits

0D34ReservedCapability Pointer

0E38Expansion ROM base address

0F3CBridge ControlInterrupt PINInterrupt Line

 

Vendor ID字段

Vendor ID由PCI-SIG分配。可以从https://pcisig.com/membership/member-companies上查询各相关厂商分配的Vendor ID。如果该字段读出来为0xFFFF,表示是一个无效的Vendor ID。

例如Realtek的Vendor ID为4332 (0x10EC)

Realtek Semiconductor Corporation4332 (10EC Hex)

 

配置空间访问机制#1

这里涉及到两个IO端口:0xCF8和0xCFC。

0xCF8端口为CONFIG_ADDRESS端口,也就是配置地址端口,它被映射到一个32位的寄存器,也叫配置地址寄存器。

0xCFC端口为CONFIG_DATA端口,也就是配置数据端口,它也被映射到一个32为的寄存器,也叫配置数据寄存器。

 

配置地址寄存器

31 30 - 24 23 - 16 15 - 11 10 - 8 7 - 0

Enable Bit Reserved Bus Number Device Number Function Number Register Offset

 

可以看到Bus Number只有8位,也就是最多只能分配256(0~255)个Bus。Device Number只有5位,也就是最多32(0~31)个Device,Function Number只有3位,也就是最多8(0~7)个Function。这对于我们后面遍历出连接到电脑计算机上的所有PCI外设提供了一种遍历思路。

 

配置空间访问机制#2

这种访问机制在PCI 2.0版本中已经废弃。

这种访问机制也涉及到很多个IO端口:其中有两个端口0x0CF8和0x0CFA, 以及端口范围0xC000~0xCFFF(这其中有4096个端口)。

0xCF8端口为CONFIG_ADDRESS端口,也就是配置地址端口,但它被映射到一个8位的寄存器,也叫配置地址寄存器。

0x0CFA端口为跳转端口,它也被映射到一个8位的寄存器,也叫Forwarding Register(跳转寄存器)。

 

配置地址寄存器

7 - 43 - 10

Key (0 = access mechanism disabled, non-zero = access mechanism enabled)Function numberSpecial cycle enabled if set

 

0xC000~0xCFFF端口

15 - 1211 - 87 - 21 - 0

Must be 1100bDevice numberRegister indexMust be zero

 

遍历所有PCI外设

 

PCI-X

 

PCI-X 1.0

 

PCI-X 2.0

 

PCI-E(即PCI-Express)

 

基于内存映射PCI(Memory Mapped PCI)的配置空间访问机制

 

 

PCI-E 1.0

 

PCI-E 2.0

 

PCI-E 3.0

 

 

 

PCI

CPU

 

 

0
0
分享到:
评论

相关推荐

    PCI Express to PCI Bridge Specification,rev1.0

    ### PCI Express to PCI Bridge Specification,rev1.0 #### 概述 《PCI Express to PCI Bridge Specification,rev1.0》是一份详细介绍了如何在PCI Express(PCIe)与传统PCI或PCI-X总线之间建立桥接的标准文档。这...

    PCI_Express_CEM_r3.0.zip_PCI CEM 3.0_PCI cem_PCI express_PCI_Exp

    PCI Express(Peripheral Component Interconnect Express),简称PCIe或PCI-E,是一种高速接口标准,用于计算机系统中的外部设备间的数据传输。PCIe规范是由PCI Special Interest Group(PCI-SIG)制定的,旨在替代...

    PCIaccess获取PCI设备信息

    PCI(Peripheral Component Interconnect)是计算机扩展总线标准,它允许在主板上添加各种外部设备,如显卡、声卡、网卡等。在IT领域,理解和操作PCI设备信息是系统编程、驱动开发以及硬件故障排查的重要环节。本文...

    PCI9054数据手册

    PCI9054数据手册是PLX Technology公司于1998年发布的资料,其中详细介绍了PCI9054这一桥接芯片的技术细节和使用方法。PCI9054是一个功能强大的PCI桥接芯片,广泛应用于各种硬件开发领域,特别是在高速数据通信和PCI...

    PCI Specification 3.0_PCI 3.0 规范

    PCI规范(Peripheral Component Interconnect Specification)是由PCI-SIG(PCI Special Interest Group,PCI特别兴趣小组)制定的一套标准,用于定义计算机系统中外围设备如何连接和交互。PCI规范3.0版本,即PCI ...

    PCI9056详细芯片手册

    PCI9056是一款由PLX Technology公司生产,支持PCI(外围组件互连)总线的桥接芯片。它属于PCI905X系列,相比PCI9054芯片,PCI9056在功能上有所增强,包括增加了PCI总线仲裁器的功能,使其能够直接作为总线控制端的单...

    xhci-pci.zip_arch xhci_pci_linux xhci_irq_xhci_xhci-pci_xhci_pci

    在Linux操作系统中,xHCI(Extreme Host Controller Interface)PCI总线型USB主机控制器驱动程序扮演着至关重要的角色,它使得系统能够高效、稳定地与USB 3.0及更高版本的设备进行通信。xHCI是USB 3.0规范定义的一种...

    pci60806A驱动 PCI-并口卡

    PCISETUP.exe是PCI卡的驱动安装工具,您可以用这个工具来安装卡的驱动. 相关文件说明 -DRV_1P CH352(PCI转一并口)驱动文件目录. -LINUX linux驱动文件目录 -WINDOWS windows 98\2000\me\NT4.0\vista\xp\64位xp\64...

    windows xp下的pci设备驱动程序开发.rar_PCI驱动_pci_windows xp_设备驱动程序

    在Windows XP操作系统中开发PCI(Peripheral Component Interconnect)设备驱动程序是一项复杂而关键的任务,因为PCI设备是计算机硬件系统中的核心部分,它们负责提供高速数据传输和与其他硬件组件的交互。...

    Altera PCI IP core 使用手册

    ### Altera PCI IP Core 使用手册知识点详述 #### 关于Altera PCI Compiler **Altera PCI Compiler**是一款专为Altera FPGA设计的PCI接口编译工具。它支持多种Altera设备家族,并具备丰富的功能特性,旨在帮助用户...

    PCI9052 在ISA 与 PCI 总线接口中的应用

    ### PCI9052在ISA与PCI总线接口中的应用 #### 一、PCI9052概述 **PCI9052**是由PLX公司研发的一款高性能的PCI总线接口芯片,它能够实现ISA(Industry Standard Architecture)总线与PCI(Peripheral Component ...

    PCI9054笔记 PCI9054 PCI9054笔记 PCI9054

    PCI9054是一款由PLX Technology公司设计的PCI接口控制器芯片,主要用于为嵌入式系统提供PCI(Peripheral Component Interconnect)总线扩展能力。在深入探讨PCI9054的知识点之前,我们先理解一下PCI总线的基本概念。...

    PCI9052板卡的开发中文资料 PCI9052 板卡的开发中文资料

    PCI9052板卡是基于PCI(Peripheral Component Interconnect)接口的一种通用I/O扩展板卡,主要用于在个人计算机系统中增加额外的硬件功能。它通常由一块包含PCI9052芯片的电路板组成,该芯片是PLX Technology公司...

    PCI Express Base Specification Revision 2.0 协议规范

    "PCI Express Base Specification Revision 2.0 协议规范" PCI Express Base Specification Revision 2.0 协议规范是PCI-SIG(Peripheral Component Interconnect Special Interest Group)发布的一份关于PCI ...

    研华PCI-1730/PCI-1730U快速入门中文手册

    研华PCI-1730/PCI-1730U是一款功能强大的32路隔离数字量输入/输出卡,主要用于需要高电压隔离保护的工业应用,以确保系统在复杂环境中稳定可靠运行。此款卡提供了复位保护功能,当系统在热重启动时,能够保持每个...

    pci金手指封装 PCI-Ex16封装 PCI封装

    PCI(Peripheral Component Interconnect)是一种计算机扩展总线标准,由英特尔公司在1992年推出,用于连接计算机系统中的外部设备,如显卡、网卡、声卡等。随着技术的发展,PCI接口经历了多次升级,其中PCI-Express...

    PCI串行口驱动 PCI串行口驱动

    PCI串行口驱动是计算机硬件系统中的一个重要组成部分,主要用于管理和控制PCI(Peripheral Component Interconnect)总线上的串行通信接口。PCI是一种高速局部总线标准,允许计算机内部的不同设备之间进行快速数据...

    fpga实现pci配置空间的读写

    标题中的“fpga实现pci配置空间的读写”是指在硬件设计中,使用Field Programmable Gate Array(FPGA)来处理PCI(Peripheral Component Interconnect)总线的配置空间操作。PCI配置空间是PCI设备固有的一个内存映射...

    PCI9052中文资料

    PCI9052是一款由PLX Technology公司设计的PCI接口控制器,主要用于构建基于PCI(Peripheral Component Interconnect)总线的嵌入式系统。这款芯片在工业控制、数据通信、网络设备以及各种专业应用中有着广泛的应用。...

    pci express design guide

    ### PCI Express 3.0设计指南关键知识点 #### 一、PCI Express 3.0概述 **PCI Express(PCIe)3.0**是PCI Express I/O标准的下一代演进版本,旨在提供比前一代(PCIe 2.0)更高的性能、更低的成本以及更低的功耗。...

Global site tag (gtag.js) - Google Analytics