返回主页 网页编辑 图形图象 动画制作 操作系统 网络知识 办公软件 程序语言  多媒体  留言板  联系作者

Windows95平台ISA总线即插即用技术()

---- 1 引 言

---- 适配器是计算机与外围设备之间进行数据通信的桥梁。适配器及其驱动程序都需要使用计算机中一定的资源(如I/O端口地址、IRQ等)才能正常工作,传统适配器都带有跳线或开关,用户可以通过它们来选择适配器所使用的资源,由于用户很难了解整个计算机的资源使用情况,所以这种方法很容易造成资源冲突
 
     在这种背景下,Microsoft和Intel以及其他计算机厂商决定连手解决这个问题,并在1994年的Windows硬件工程会议上,联合提出了解决这个问题的一个全面的新标准集——即插即用(Plug and Play,简写为PnP)规范。

    所谓即插即用-----是指操作系统自动为硬件设备分配其所需的资源,即插即用技术代表了当今适配器发展的最新趋势。

---- 在对引控系统进行地面测试的过程中,常常需要利用计算机进行数据采集和数据通信工作,这些数据采集卡和数据通信卡是基于ISA总线、非即插即用的。其资源配置较繁琐,研究Windows 95平台下ISA总线即插即用技术是非常有益的。

---- 2 Windows 95即插即用原理

---- 一个完整的即插即用系统由即插即用BIOS、支持即插即用的操作系统和具有即插即用功能的硬件设备三部分组成。Microsoft首先在Windows 95上实现了对即插即用的支持,从而极大地推动了即插即用技术的发展。Windows 95是第一个完全接受和实现各种即插即用工业规范的操作系统,它对即插即用的支持主要依靠其内部即插即用模块来实现,Windows 95的即插即用模块由三个组件组成:配置管理程序枚举程序、仲裁程序

  (1)配置管理程序

    配置管理程序是这三个组件中的核心组件,负责维护注册表中的描述当前配置情况的信息库,并负责给对应的设备驱动程序通报它们所分配的资源。为了实现即插即用,配置管理程序要调用枚举程序和仲裁程序。

    (2)枚举程序

枚举程序负责收集总线上的设备,Windows 95为计算机中不同的总线提供了相应的枚举程序,如ISA总线的枚举程序ISAPNP.VxD、PCI总线的枚举程序PCI.VxD等。另外,系统设备如时钟、协处理器及主板上的其它设备也被认为是在总线上的。每次开机时,配置管理程序都会调用各种总线的枚举程序,枚举程序顺序访问每个设备,并依次询问与记录各个设备的特征,以判断该总线上是否有新硬件设备加入。当枚举程序发现一个新硬件设备后,就会在内存中建立一个设备节点。在枚举过程结束时,系统内存中将建立一个描述系统中所有硬件设备的设备节点树,配置管理程序负责对该设备节点树进行维护。

(3)仲裁程序

    仲裁程序负责对各种硬件设备进行资源分配并解决设备之间的资源冲突。在资源分配过程中,仲裁程序先满足计算机主板上的传统设备的资源请求,然后再为即插即用设备进行资源分配。

---- 以上三个组件相互合作,共同实现Windows 95的即插即用功能

---- 3 ISA即插即用适配器自动配置过程

---- ISA即插即用适配器(以下简称为适配器)实现即插即用的过程实际上是系统软件(指即插即用BIOS和Windows 95) 对其进行自动配置的过程。在Windows 95的启动过程中,系统软件会对适配器进行自动配置,整个自动配置过程可以用四个状态来表示,它们之间可以通过一系列命令来进行转换,其转换关系如图1所示。

       由于在同一台机器中可能有多个适配器,而系统软件每次只能为其中的一个分配资源,因此整个配置过程是反复进行的;再加上在Windows 95运行期间,系统软件可能需要动态地改变适配器的配置,所以将整个配置过程分为四个状态有利于系统软件对适配器进行控制,下面介绍这四个状态及其相互转换关系。

----
 图1 ISA即插即用适配器自动配置状态转换图

(1)等待状态
    在系统开机之后,ISA总线上会出现一个全局复位信号RESET_DRV,该信号使所有的适配器进入到等待状态。紧接着系统软件向它们发送初始化序列, 处于等待状态中的适配器对接收到的初始化序列进行判断,如果全部接收正确则进入到休眠状态,否则仍然停留在等待状态。

    (2)休眠状态

    在休眠状态,系统软件会发送WAKE[N]命令,适配器通过接收该命令来决定进入到哪一个状态。在隔离状态结束之后,系统软件会为每个适配器分配一个不同的卡选择号(Card Select Number,简称CSN),在此之前,所有适配器的CSN都为0。在接收WAKE[N]命令的时候,如果适配器的CSN和N相等,且都为0,则进入到隔离状态,如果CSN和N相等,且都不为0,则进入到配置状态,如果CSN和N不相等,那么继续保持在休眠状态。

    (3)隔离状态

    每个适配器都有一个串行标识符,串行标识符由设备ID和产品序列号组成,用来唯一标识该硬件设备。进入到隔离状态后,即插即用BIOS会对适配器的串行隔离寄存器进行144次读操作,以读取其串行标识符。由于同一台机器上可能会同时存在多个适配器,而且它们的CSN在隔离状态结束之前都为0,所以在系统软件发送WAKE[N]命令的时候,它们都会进入到隔离状态,为了确保每次只读取其中一个的串行标识符,在读取串行标识符的过程中,系统软件要执行隔离算法。隔离算法执行完毕之后,系统中只剩下一个适配器,其余的都从隔离状态退回到休眠状态,系统软件会为该适配器分配一个CSN,并使其将进入到配置状态。

    (4)配置状态

     只有处于配置状态时,系统软件才能对适配器进行资源配置,处于配置状态的适配器可以响应各种配置命令。在进行资源配置之前,系统软件要读取适配器的资源数据。这些资源数据表明了适配器的资源请求,系统软件的资源分配将以这些资源请求为依据。在配置状态结束之后,系统软件通过发送WAIT命令使适配器返回到等待状态。在执行隔离算法过程中退回到休眠状态的适配器等待系统软件下一次发送WAKE[N]命令,并将再一次进入到隔离状态,系统软件将继续执行隔离算法,如此周而复始,直到给系统中所有的适配器分配了资源为止。

---- 当系统软件给系统中所有的适配器分配了资源之后,Windows 95还将为其加载设备驱动程序,并将资源分配情况通知设备驱动程序。至此,一个完整的ISA总线即插即用过程宣告结束。

----  

---

返回
欢迎使用:浏览器IE5.0  800*600分辨率
栏目制作:无雅