- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PCI9052接口芯片的配置及驱动程序开发
引言
如果把PC机作为控制系统的操作平台,PCI总线作为一种先进的高性能32/64位局部总线正迅速取代原来的ISA总线的主导地位,以用于高速外设,并成为微型计算机系统的主流系统,因而也成为工程开发人员用于工业控制的首选。为了缩短开发周期,一般都采用专用的接口器件。本文就是采用PLX公司的PCI9052来把PCI总线上的操作转换为对局部总线的操作,同时通过双口RAM实现和下位机的存储转接。针对一般PCI总线开发时由于软硬件分离使开发的软硬件不能很好结合的现象,本文结合实例介绍了应用程序并给出了如何通过DriverStudio开发的PCI设备驱动程序来访问PCI设备卡硬件资源的具体程序。
1 PCI的配置空间及其配置 PCI总线支持存储器地址空间、I/O地址空间和配置空间等三个物理空间。其中,配置空间是PCI总线所特有的一个空间,PCI总线能实现即插即用的功能,正是通过它特有的配置空间来实现的。PCI配置空间的大小??256字节,分为头标区和设备有关区。直接影响设备特性的配置寄存器在头标区,其他部分则因设备而异。PCI总线的配置空间通常与PCI接口芯片相关。该配置空间包括一系列的PCI配置寄存器。本文采用的PCI9052芯片的配置寄存器分为PCI配置寄存器和局部配置寄存器,二者都可以由PCI总线和串行EEPROM访问。 在PCI配置寄存器中的设备ID、制造商ID、版本号、首区类代码、类别代码、指令寄存器和状态寄存器等寄存器在所有的PCI设备中都必须实现,具体设置可参考文献[1]。通常情况下,操作系统可使用这些寄存器的内容来决定该PCI设备的加载其驱动程序。 PCI总线最重要的功能之一是通过基地址寄存器和局部配置寄存器在地址空间重定位PCI设备。系统上电时,通过上层应用软件能判断系统中存在那些设备,并建立协调的地址映射。所以,基地址寄存器和局部配置寄存器是实现驱动程序的关键。 PCI配置寄存器提供有6个基地址寄存器(BASE0~BASE5)这些基地址都是系统中的物理地址,其中BASE0和BASE1是用来访问局部配置寄存器的基地址,BASE0是映射到内存的基地址,BASE1是映射到I/O的基地址,可用于通过内存和I/O来访问局部配置寄存器。这两个基地址可固定用于PCI9052芯片的寄存器操作。 通过BASE2~BASE5四个空间最多可以访问局部端所接的4个芯片,实现4个局部地址空间(局部空间0~3)的PCI总线访问。PCI总线对局部端所接芯片的局部地址映射是通过4个寄存器组(PCI基地址寄存器,局部范围寄存器,局部基地址寄存器,局部总线区域描述符)来实现的。这个组定义了每个空间以及相应局部空间的特性。它们将局部端的芯片通过局部端地址(在局部配置寄存器中设置)翻译成PCI总线地址,也就是将本地的芯片映射到系统的内存或I/O口。而片选信号寄存器则是用来选定这些局部端所接的芯片的。这样,用程序操作这一段内存(或I/O)实际上就是对本地芯片的操作。其映射关系如图1所示。这些寄存器的内容必须在芯片复位时通过串行E2PROM进行加载,而正确配置E2PROM的内容则是使用PCI9052的关键。 本设计选取LAS0(Local Address Space 0)来访问局部端的双口RAM芯片中的2 KB寻址空间,与其有关的寄存器有四个:LAS0范围寄存器、LAS0局部基址寄存器、LAS0局部总线区域描述符和片选0基址寄存器。LAS0范围寄存器规定了地址空间的大小。由于需要2 KB的内存空间,而计算机预留了32 KB空间(即8000H),所以其寄存器值为0xFFFF8000H,而类型则是不可预取的;LAS0局部基地址寄存器定义了设备卡资源上所占用的基地址,它的最终目的是将这个基地址重新映射到PCI地址空间。由于基地址必须是32KB的整数倍,因此,为方便起见,可以将基地址定,又由于位0为空间使能位,所以,寄存器的值;LAS0局部总线区域描述符用来定义地址空间0的具体工作特性。 该总线采用16位总线宽度,工作方式定义为不使能突发和不预取,因此,该寄存器的数值初步确定为4043A1C0H,最终的值则需要不断测试才能确定;片选0基址寄存器使用PCI9052的CS0#作为双口RAM的片选信号,CS0#片选信号的起始地址和地址范围由片选0基址寄存器设置,局部总线的容量是2 KB,第11位为1,基地址是该范围的16倍,一般将倍数放置在范围位之后,所以寄存器值设置为0xO008401。当从局部空间0基址开始的2 KB空间范围落在CS0基地址寄存器所设置的范围内,CS0端有效,这种方式可减少地址译码得到的片选逻辑。 用PLX9052可将PCI总线上的操作转换为对局部总线的操作,即通过LAD0~LAD7、RD、WR、CS等对局部端芯
您可能关注的文档
最近下载
- 2025年泡沫铝行业研究报告及未来发展趋势预测.docx
- 智慧城市应急管理信息化平台建设方案(47页).pptx VIP
- 班主任基本功大赛育人故事一等奖:从“心”擦亮星星的光.docx VIP
- (高清版)-B-T 41932-2022 塑料 断裂韧性(GIC和KIC)的测定 线弹性断裂力学(LEFM)法.pdf VIP
- 上海牛津英语5B知识点汇总.docx VIP
- 华为交换机配置教程(从入门开始)-华为交换机详细教程.pdf VIP
- 机械创新设计第七章 仿生原理与创新设计 .ppt VIP
- 高等教育心理学课件.ppt VIP
- ISO 55013-2024 资产管理-数据资产管理指南(中文版-雷泽佳翻译-2024).docx
- 发改价格〔〕670建设工程监理与相关服务收费标准.doc VIP
文档评论(0)