DOS操作系统下PCI板卡访问方法的研究与实现

DOS操作系统下PCI板卡访问方法的研究与实现

ID:38056033

大小:56.50 KB

页数:6页

时间:2019-05-24

DOS操作系统下PCI板卡访问方法的研究与实现_第1页
DOS操作系统下PCI板卡访问方法的研究与实现_第2页
DOS操作系统下PCI板卡访问方法的研究与实现_第3页
DOS操作系统下PCI板卡访问方法的研究与实现_第4页
DOS操作系统下PCI板卡访问方法的研究与实现_第5页
资源描述:

《DOS操作系统下PCI板卡访问方法的研究与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、DOS操作系统下PCI板卡访问方法的研究与实现摘要:简述了DOS操作系统下访问PCI板卡的机理。给出了两种访问配置空间的方法,分别介绍了访问采用内存映射局部空间和采用I/O映射局部空同的方法。通过给出的BC++3.1中编写的相应程序.对访问方法进行了说明。关键词:DOS操作系统;PCI;配置空闻;局部空间;PCI90521前言当前,随着计算机技术的飞速发展,对于高速、高性能板卡的需求越来越大。曾在工控机中广泛应用的ISA总线逐渐被淘汰。相比之下,PCI总线作为一种高性能的局部总线,具有兼容性好,传输速度

2、高,不受处理器限制以及支持“即插即用”(Plug&Play)等优点,正逐步取代ISA总线而广泛应用于PC机和工控机中。在今后相当长的一段时间内,开发应用基于PCI总线的扩展板卡将显得尤为重要。Windows操作系统和DOS操作系统是目前在工控机中使用较多的两种操作系统,有着各自的优缺点。Windows操作系统虽具有多任务多线程的特点,但由于他采用消息传递机制,虽能实时响应外部事件,但其处理并不是实时的。虽然可以通过对底层模块进行修改,使其能够实时处理外部事件,但会给系统的稳定性、健壮性带来不良的影响。相

3、比之下,DOS是一种单任务的操作系统,对硬件资源要求较少,实时性也较好,在DOS下的开发工具已经相当成熟,而且DOS内核已公开,可免费使用。基于上述考虑,在一些对于系统实时性、可靠性要求比较高的的场合,如在电力系统自动化领域中的微机保护,故障录波等系统中,仍然采用DOS作为其软件开发平台。2PCI板卡的访问一般来说,PCI板卡都可以分为2个部分:数据处理部分和PCI接口部分。数据处理部分一般完成信号的获取、分析及处理等操作,而PCI接口部分则完成计算机与数据处理部分之间的数据传递。在计算机系统上电时,通

4、过固化在BIOS中的POST(PowerOnSelfTest)程序自动检测PCI总线,确定PCI总线上的设备及其配置要求,为各板卡分配相应的内存空间、I/O空间以及中断等。为了完成对PCI板卡的访问,首先必须读取PCI板卡的配置空间,以获取一系列的配置信息.如设备ID、制造商ID和内存映射或I/O映射的基地址等。然后,通过获得的基地址,采用下文所述的方法就可以对PCI板卡局部空间的数据进行读写操作。2.1配置空间的访问PCI协议定义了3种地址空间:配置空间,I/O空问和存储器空问。配置空间是PcI所特有

5、的,他提供了一个合适的配置设备的集合,使其能满足当前和未来的系统配置特性的需要,他为所有的PCI设备提供了系统软件可以利用的功能,可以通过访问他来进行自动配置,这极大地增强了PCI设备的灵活性。一个PCI设备可以包含一个或多个(最多8个)独立的PCI功能(即逻辑设备),PCI配置空间分为PCI设备中包含的每一个功能的独立的、指定的配置地址空间。每个PCI功能都应具有64个配置双字用于实现配置寄存器。其中前64个字节为头标区,后面的192个字节为设备相关信息。在头标区中,前16个字节的定义是确定的,后48

6、个字节的具体含义因设备而异,具体说明如表1所示。在DOC下对配置空间的访问办法有2种:方法一,通过读写32bitPCI配置地址端口0xCF8和PCI配置数据端口OxCFC来进行访问。配置地址端口OxCF8的信息格式如表2所示。其中,使能位为“1”时表示使能。保留位为“0”。总线号为0~255,设备号为O~31,功能号为0~7,寄存器号用于选择目标功能配置空间的一个双字寄存器。表1配置空间头标区的结构:00h设备ID制造商ID04h状态命令08h类别码版本ID0chBIST头部类型延迟计时器cache线性

7、范围10h基地址寄存器28hCardBusCISPointer2ch子系统ID子系统制造商ID30h扩展ROM基地址寄存器34h保留3chMax_LatMin_GntInterruptpinInterruptlin表2配置地址寄存器0xcF8的信息格式:31302423161511lO9872l0使能保留总线号设备号功能号寄存器号00访问特定的PCI功能设备的配置空间一般分为以下几个步骤:首先,按照端口0xCF8的信息格式,组成相应的配置字,写入端口OxCF8中。然后通过读取端口0xCFC,得到每个功能

8、设备配置空问中相应的寄存器内容。接着,由读出的配置空间中设备ID和制造商ID与指定的功能设备的设备ID和制造商ID相比较。若不匹配则重复进行上述操作直到匹配为止。最后,由获得的相应的总线号、设备号以及功能号,通过读写端口OxCF8和0xCFC就可以访问特定板卡的配置空间了。下面给出一个通过PCI配置寄存器0xCF8和OxCFC来查找特定PCI板卡的函数。程序采用BC++3.1编写,PCI接口芯片采用PLX公司的PCI9052,设备ID为0x

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。