PCI设备快速编程分析.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PCI设备快速编程分析

??PCI是Peripheral Component Interconnect(外设部件互连标准)的缩写,它是目前个人电脑中使用最为广泛的接口,其位宽为32位或64位,工作频率为33MHz,最大数据传输率为133MB/sec(32位)和266MB/sec(64位)。可插接显卡、声卡、网卡、内置Modem、内置ADSL Modem、USB2.0卡、IEEE1394卡、IDE接口卡、RAID卡、电视卡、视频采集卡以及其它种类繁多的扩展卡. ? 目前PCI-E是PCI必威体育精装版的发展方向,串行,点对点传输,每个传输通道独享带宽;支持双向传输模式和数据分通道传输模式;在PCI-E 3.0规范中,X32端口的双向速率高达320Gbps,可以满足新一代的I/O接口,比如:千兆(GE)、万兆(10GE)的以太网技术、4G/8G的FC技术 一. PCI 引脚 1. 接口控制管脚?(出问题时常测这些管脚) FRAME#:帧周期信号。Master驱动,表示一次访问的开始和持续时间。 FRAME#无效时,是传输的最后一个数据周期。 IRDY#:Master准备好信号。 TRDY#:Slave准备好信号。 当这两者同时有效时,才能进行完整的数据传输,否则即为等待周期。 在写周期,IRDY#信号有效时,表示有效的数据信号已在AD0~AD31中建立; 在读周期,IRDY#信号有效时,表示Master已做好接收数据的准备。 在写周期,TRDY#信号有效,表示Slave已做好了接收数据的准备。 在读周期,TRDY#信号有效,表示有效数据已被送入AD0~AD31中, STOP#:停止数据传送信号,由Slave发出。当它有效时,表示Slave请求Master终止当前的数据传送。 IDSEL:初始化设备选择信号。在读写配置空间时,用作Slave的片选信号(Slave通常把IDSEL连到AD[31:0]上的一根,PFA中的device id就是这么确定的) DEVSEL#:设备选择信号,由Slave驱动,该信号有效时,当前Slave设备已被选中 ? 二.时序 读时序 写时序: ? ? ? 三.PCI配置空间 256字节的PCI配置空间分为64字节的头标区和192字节的设备相关区两部分。头标区的各个寄存器用来唯一地识别设备;设备相关区则保存一些与设备相关的数据。 ? 配置空间的头标区又分为两部分:前16个字节的定义在各种类型的PCI设备中都是一样的;剩余的字节随设备类型不同而有所不同。位于偏移地址0EH处的头标类型字段规定了头标区的布局结构。目前,规范定义了三种头标类型。 ? 头标类型 设备 2 PCI-CardBus桥 1 PCI-PCI桥 0 除上述桥外的所有设备 ? 因为PCI网卡的头标类型是0,所以下面我们就来详细说说其布局结构,至于其他类型的头标请读者自行阅读。图3就是头标类型0的头标区的布局。头标区中的寄存器根据功能可分成下面几组: ? 1.?设备的识别 (1)???????供应商代码:该寄存器用于识别PCI设备的制造商,具体代码由PCI SIG()分配。0FFFFH是无效的供应商代码。 (2)???????设备代码。该寄存器用来标识某供应商生产的具体设备,代码由各供应商定义。供应商代码和设备代码,读者可以到网站/查阅。 ? 图3?头标类型0的头标区的布局 ? (3)???????版本号。该寄存器用来定义指定设备的版本信息。 (4)???????头标类型。该字段的第7位为“1”标识该设备是多功能设备,为“0”标识为单功能设备;该字段的0~6位就是上文表中所述的头标类型。 (5)???????设备分类代码。用来标识设备的总体功能和特定的寄存器级编程接口。 上面5个字段均为只读类型,所有的PCI设备都必须实现其功能。 ? 2.?设备控制和设备状态 (1)???????命令寄存器为一个设备发出和响应PCI总线命令提供粗略的控制。图4就是命令寄存器格式。 图4?命令寄存器格式 ? 我们比较感兴趣的位有: a.位0(I/O空间控制):控制对I/O空间访问的响应。该位为0时,禁止设备响应对I/O空间的访问;该位为1时,允许设备响应I/O空间的访问。缺省设置为0。 b.位1(存储器空间控制):控制一个设备对存储器空间访问的响应。该位为0时,禁止响应;该位为1时,允许设备响应对存储器空间的访问。缺省设置为0。 ? 至于其他位的功能,读者若有兴趣可以自行查阅。 ? (2)???????状态寄存器用来记录PCI总线有关的状态信息。 ? 3.?基址寄存器 PCI设备中,除了配置空间外,还有两个物理空间:内存空间和I/O空间。为了访问这两个地址空间,就必须使用基址寄存器。头标类型0中涉及3种基址寄存器:内存空间基址寄存器、I/O空间基址寄

文档评论(0)

wbjsn + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档