DOS操作系统下PCI板卡访问方法(一)

9 篇文章 0 订阅

1 前言

当前,随着计算机技术的飞速发展,对于高速、高性能板卡的需求越来越大。曾在工控机中广泛应用的ISA总线逐渐被淘汰。相比之下,PCI总线作为一种高性能的局部总线,具有兼容性好,传输速度高,不受处理器限制以及支持“即插即用”(PlugPlay)等优点,正逐步取代ISA总线而广泛应用于PC机和工控机中。在今后相当长的一段时间内,开发应用基于PCI总线的扩展板卡将显得尤为重要。

Windows操作系统和DOS操作系统是目前在工控机中使用较多的两种操作系统,有着各自的优缺点。Windows操作系统虽具有多任务多线程的特点,但由于他采用消息传递机制,虽能实时响应外部事件,但其处理并不是实时的。虽然可以通过对底层模块进行修改,使其能够实时处理外部事件,但会给系统的稳定性、健壮性带来不良的影响。相比之下,DOS是一种单任务的操作系统,对硬件资源要求较少,实时性也较好,在DOS下的开发工具已经相当成熟,而且DOS内核已公开,可免费使用。基于上述考虑,在一些对于系统实时性、可靠性要求比较高的的场合,如在电力系统自动化领域中的微机保护,故障录波等系统中,仍然采用DOS作为其软件开发平台。

2 PCI板卡的访问

一般来说,PCI板卡都可以分为2个部分:数据处理部分和PCI接口部分。数据处理部分一般完成信号的获取、分析及处理等操作,而PCI接口部分则完成计算机与数据处理部分之间的数据传递。在计算机系统上电时,通过固化在BIOS中的POST(PowerOn SelfTest)程序自动检测PCI总线,确定PCI总线上的设备及其配置要求,为各板卡分配相应的内存空间、IO空间以及中断等。为了完成对PCI板卡的访问,首先必须读取PCI板卡的配置空间,以获取一系列的配置信息.如设备ID、制造商ID和内存映射或IO映射的基地址等。然后,通过获得的基地址,采用下文所述的方法就可以对PCI板卡局部空间的数据进行读写操作。

21 配置空间的访问

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

DOC下对配置空间的访问办法有2种:

方法一,通过读写32 bit PCI配置地址端口0xCF8PCI配置数据端口OxCFC来进行访问。配置地址端口OxCF8的信息格式如表2所示。其中,使能位为“1”时表示使能。保留位为“0”。总线号为0255,设备号为O31,功能号为07,寄存器号用于选择目标功能配置空间的一个双字寄存器。

1 配置空间头标区的结构:

00h

设备ID

制造商ID

04h

状态

命令

08h

类别码

版本ID

0ch

BIST

头部类型

延迟计时器

cache线性范围

10h

基地址寄存器

28h

CardBus CIS Pointer

2ch

子系统ID

子系统制造商ID

30h

扩展ROM基地址寄存器

34h

保留

3ch

Max_Lat

Min_Gnt

Interrupt pin

Interrupt lin

 

2 配置地址寄存器0xcF8的信息格式:

31    30   24     23   16   15     11    lO   9      8    7      2    l    0

使能

保留

总线号

设备号

功能号

寄存器号

00

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值