- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于pci总线的中断机制研究
基于PCI总线的中断机制研究
1? 概述??? 高性能PC机一般以PCI总线为系统总线。由于PCI总线协议较为复杂,因此在开发PCI扩展卡时常采用专用的PCI接口芯片。常见的PCI接口芯片有AMCC公司的S59XX系列和PLX公司的PLX905X系列,其中PLX9052(文中称为9052)使用广泛。??? 在应用开发中,常常使用中断作为CPU和外设间交换数据的方式。但由于PCI总线具有即插即用特性,即PCI设备的存储器空间、I/O空间以及中断等资源都是自动配置的,使得CPU访问扩展卡的机制与非即插即用系统有较大的不同,尤其是中断机制比较复杂。??? 基于9052接口芯片设计的PCI扩展卡若以硬件中断方式和CPU进行数据交换,则其过程可概括为以下四个步骤,参见图1。
① 若连接到9052本地中断输入引脚LINTi[2:1]的外部中断源有效,且9052内部中断使能,则9052的中断输出信号INTA#有效,从而产生PCI中断请求。② 上电时,初始化软件根据资源使用情况已自动将PCI中断引接到系统中断控制器的某一个中断引脚(IRQi)上,并将该信息写入了9052的配置空间中。用户可通过其配置空间来获取该配置信息。③ 若IRQi上的中断请求未被屏蔽且级别足够高,则该中断可以通过系统中断控制器向CPU提交请求。④ 若CPU当前开中断,则响应中断,进入中断服务例程进行数据交换。??? 因此,用户若要实现PCI扩展卡的中断功能,则不仅需了解高性能PC机的中断结构,还需了解PCI接口芯片的配置空间及中断机制。
芯片组是主板的灵魂。有些主板的芯片组由北桥和南桥组成。高性能的南桥芯片除涵盖常规南桥功能外,还具有为微机系统服务的I/O接口,如中断控制器、DMA控制器等。为此,本文也称南桥为SIO(System I/O)。不同南桥芯片其集成的中断控制逻辑复杂程度不同、功能也有所扩展,但为保持兼容性,其最低两级的中断控制器仍与原PC/AT微机一致。 2.1 SIO中断控制器??? 图1所示的系统中断控制器即是集成于SIO内部进行中断管理的I/O接口,文中称为SIO中断控制器,其最低两级的结构见图2。每片82C59支持8个中断源,主片的IR2与从片的INTR相连,两片共支持15个可屏蔽中断源,其中,主片的输入源编号为IRQ0~IRQ7,从片的输入源编号为IRQ8~IRQ15。??? 外部中断源向82C59提出请求后,经片内的判优逻辑判优,若该请求具有当前最优的中断级别,该片就会通过其INTR引脚向上提中断请求。CPU收到请求且当前开中断,则响应中断,进入用户的中断服务例程。??? 集成在SIO内的两个82C59仍具有原82C59的所有寄存器,各寄存器的功能及格式均保持不变,但SIO中断控制器中82C59的许多可选功能已固定,不能通过程序改写。2.2 PCI中断如何纳入系统的中断结构??? PCI总线上有4条中断请求信号线:INTA#、INTB#、INTC#和INTD#,均为漏极开路且低电平有效(相应的IRQi应编程为电平触发方式)。单功能PCI设备只能使用一条中断线且为INTA#,多功能PCI设备可以按PCI规范的要求使用其它中断线。SIO可将4个PCI中断输入到SIO中,并在上电初始化时根据资源使用情况分别将它们引接到合适的中断源上。这样,PCI中断就可以通过系统的可屏蔽中断请求向CPU提出。3? PLX9052的配置空间和中断机制3.1 PCI设备的配置空间[1]??? 每个PCI设备都有一个配置空间,其每一项称为配置寄存器,每个PCI设备的配置空间都包括头标区。头标区中前16个字节的定义对所有PCI设备都是相同的,位于0Eh处的配置寄存器给出了头标类型,01h 用于主桥,00h 用于其它PCI设备。00h类型头标区的布局见图3。
配置空间是PCI设备的硬件与PCI设备的初始化软件及错误处理软件之间的信息交换区。有了这个信息交换区,PCI设备可以向软件反映其状态和要求,软件可以对PCI设备进行辩识、配置和控制。上电时初始化软件首先读出配置空间中的相关内容,以确定是否已安装PCI扩展卡以及扩展卡所需的I/O空间和MEM空间等信息,然后根据系统的资源状况自动为其配置I/O空间和MEM空间的基地址、扩展卡占用的中断号等参数。当CPU要访问扩展卡上的存储器地址或I/O端口地址时,只需从配置空间中获取相应的基地址再加上地址偏移量即可。3.2 PLX9052的配置空间[2]??? 由于9052头标类型字段已硬编码为0,则其头标区布局与图3所示同。头标区偏移3Ch处为中断线寄存器,其值由系统上电时自动配置,表明9052的中断引脚INTA#连到了系统中断控制器的哪个输入上。通过查询该寄存器,即可了解系统分配给PCI扩展卡的中断号。偏
文档评论(0)