- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
维普资讯
第 27卷 第 2期 南 京 理 工 大 学 学 报 VO1.27 No.2
2003年 4月 JournalofN lineUniversitvofScienceandT Aor.2003
PCI总线的 I/O空间直接访 问方法
彭 敏 蔡征宇
(南京理工大学电子工程与光电技术学院,南京 210094)
摘要 PCI总线的开发包括 PCI硬件 的开发 以及相应驱动程序 的编写。PCI总线
驱动程序 的实质是通过相应板卡配置空间的访 问来配置系统资源。该文通过对配
置空间的分析,给出了不用DDK、WINDRIVER等开发工具,而直接用 I/O命令简
单地访问配置空间的方法。
关键词 PCI总线,配置空间,配置头,访问
分类号 TP368.1 学科代码 520.30
PCI局部总线标准是一种有着很高性能的32位或64位总线标准,使用 PCI总线可以
解决高速外设和处理器之间数据传输的瓶颈问题。PCI总线的开发包括 PCI硬件的开发以
及相应驱动程序的编写。硬件开发因为PCI接 口芯片的使用而变得相对容易,但是 PCI总
线驱动程序的编写,一直是一件让非计算机专业的技术人员头疼的事情,主要原因是用传统
的DDK、WIND RIVE R等工具开发驱动程序过程繁琐及开发人员不熟悉硬件。
PCI总线驱动程序的核心技术是对相应板卡配置空间的访 问从而来进行系统资源的配
置,达到此 目的其实也可以在充分理解配置空间的基础上用简单的 I/O命令来实现。
1 配置空间原理
PCI设备有 3种地址空间:PCII/O、PCI内存和 PCI配置空间。PCII/O和 PCI内存
由设备驱动程序使用而PCI配置空间被PCI初始化代码使用。
PCI总线系统中每个 PCI设备,包括 PCI—PCI桥接器在 内,都有一个配置数据结构,
它通常位于PCI配置空间中。PCI配置头(如图1所示)允许系统来标识与控制设备。配置
头在PCI配置空间的位置取决于系统中PCI设备的拓扑结构。系统将找到每个 PCI设备
与桥接器并使用它们配置头中的信息来配置其寄存器。
由于PC—AT兼容系统处理器只有内存和 I/O2种空间,没有专用的配置空间,PCI协
议规定利用特定的I/O空间操作驱动PCI桥路转换成配置空间的操作。这种机制使用了2
个特定的32位 I/O空间,即d8h和 cfch。这2个空间对应PCI桥路的2个寄存器,当桥路
看到CPU对这2个寄存器进行双字操作时,就将该 I/O操作转变为PCI总线的配置操作。
收稿 日期 :2002—03—11
· 彭 敏 男 24岁 硕士生
维普资讯
总第 129期 彭 敏 蔡征宇 PCI总线的I/O空间直接访问方法 169
寄存器 cfSh用于产生配置空间的地址,寄存器 cfch用于 DevicelD VenderlD OOh
产生配置空间的读写数据。 Status Command 04h
为了让CPU上运行的PCI初始化代码能访问位于 ClassCode 08h
分支PCI总线上的设备,必须为桥接器提供某种机制以 10h
便它可以决定是否将配置地址从主干接 口传递到其二级
接 口。PCI标准定义了2种 PCI配置寻址格式:类型 1
BaseAddressRegisters
和类型0;它们分别如图2及图3所示。类型0PCI配置
24h
地址不包含总线序号,同时在此PCI总线上对应于这个
PCI
文档评论(0)