即插即用 孔晖 1997-01-01 #1  即插即用PnP的由来   对于许多PC用户而言,如果你需要为你的PC机增加一些新的功能,比如说欣赏CD唱盘、看VCD影碟,收发传真等等,那么你就得为你的PC机增加一些新的设备,如声卡、CD-ROM、MPEG-1硬件解压卡、FAX/Modem传真卡等等一系列新设备。通常而言,安装新设备的过程为:   1.按照所购买设备的说明来设置开关和跳线;   2.正确地将新设备按规定的要求插入主板扩展槽中;   3.安装随新设备所配的驱动程序;   4.重新引导系统。   然后,你就开始祈祷吧!因为你很有可能还得花费大量的时间和精力来处理安装过程中所出现的种种问题。比如说手工改变设备的开关或跳线,跟踪Config.sys文件以解决内驻驻留程序的冲突等等。原因在于一台PC机至少有一个或者多个总线设备(Bus Device),而多个总线设备则有可能共享相同的系统总线(System Bus),于是这就不可避免的产生了硬件资源上的冲突。轻者只是新安装的设备无法使用或系统无法启动而已,严重的话就会导致系统的崩溃。怎样去解决这个问题?人们希望系统应该能提供对于底层硬件资源包括IRQ(中断请求)、I/O(输入/输出)端口、DMA(直接内存存取)通道以及内存等的智能管理能力,免除用户因安装新的硬件设备而带来的烦恼。   随着微软推出Windows 95,它也宣传了Windows 95为用户提供的底层硬件资源的智能管理能力,即Windows 95具有即插即用(PnP:Plug and Play)的功能,由此即插即用才为人们广泛重视。   即插即用这个概念很久以前就已被提出,它的标准则始于几种不同的解决PC硬件配置问题的方案———其中包括IBM的微通道总线以及Compaq公司在EISA(扩展标准工业系统总线)上的不懈努力。Microsoft步入制订即插即用规范的时间却在1991年才开始,促使Microsoft发展即插即用据说是Apple公司在其广告中宣称Microsoft Windows系列在易于配置和使用方面远远比不上Apple公司的Mac OS操作系统,因为在Apple公司的Macintosh微机上修改系统的设置甚至于简单到你只需再插入或者拨出扩展卡,机器就可以在其System系列操作系统下很好地工作,从而省去了再设置开关、跳线或分配系统资源的烦恼,可以说是现阶段下完全的即插即用。传说固然归于传说,然而归根结底的原因还是因为技术的进步使得Microsoft欲垄断个人PC机的操作系统的话,那么它就必须在技术先进性上下功夫,因为技术的发展本身就包含着两个方面的内容:一是操作使用上的简便;二是系统的复杂。而欲使系统在易于使用上有一个飞跃,那么它就必须解决多个总线设备共享系统总线时所带来的系统底层资源的分配和再分配问题。Microsoft同Intel和Compaq的结盟促使其在1993年以后相继公布了即插即用的规范,包括其他总线类型如ISA、EISA、PCMCIA、PCI、VESA以及SCSI等等,但是就现阶段而言,完全意义上的即插即用恐怕还需要一段时间才能够进一步完善。   Microsoft在Windows for workgroups和Windows NT就已开始尝试一些设备检测和配置方面的试验,在Windwos for workgroups中,操作系统试图自动检测出视频适配卡、鼠标、键盘及网络适配卡等的类型。Windows NT则更进一步,它可以检测出SCSI设备及其他一些硬件,到了Windows 95,则几乎可以实现全自动的安装和系统的动态重配置。尽管Windows 95不可能对所有旧设备全部进行正确地识别,甚至有时也会求助于用户,但就即插即用本身而言,这已经可以说是一个真正的飞跃了。 #1  即插即用是怎样实现的   看了上面关于PnP的介绍,你想知道微软的Windows 95是如何实现即插即用这一魔术的吗?   说起来也很简单,就象每一个人都有不同的身份证号码一样,支持即插即用的硬件设备每一个都有不同的识别码(ID),这样,Win 95就可以把不同的硬件分开,用不同的方法驱动,也就不用你做手动调节了。   下面让我们来看一看实现PnP需要的条件:   首先你的电脑主板必须支持PnP,一般来说就是带有PCI总线和PnP的BIOS,你可以在很多电脑开机的时候看到Award Plug and Play BIOS Extension V1.0A的字样,就表示该电脑主板带有Award公司的即插即用的BIOS扩展1.0A版。   其次,是其它设备也带有即插即用的BIOS扩展,以创新的SB16 PnP为例,在电脑上启动时你可以看到:   InItialize Plug and Play cards:   Card-01:creative viBRA16C PnP   PnP,Init completed   最后,你需要一个支持PnP的操作系统,如Windows 95。   在设备的PnP BIOS中包含有两个重要的调用接口:   ①资源识别接口。向主板的BIOS或操作系统提供设备的设备号(ID),以及该设备需使用哪些资源,资源的占用情况;   ②资源初化始接口。调用它之后,设备才能正确使用。   在安装即插即用设备时,主板的PnP BIOS和新增设备上的PnP BIOS有一个交互过程,在初始化时,主板的PnP BIOS扫描所有设备,确定一个不冲突资源的分配方案,将各种硬件初始化的描述信息放在扩展BIOS数据区中(ESCD)。当PnP的操作系统启动后,如Win 95启动后读取这些信息,如有改变则重新初始化所有硬件,为硬件加载适合的驱动程序,这就是为什么Win 95在增加或减少了扩展卡后启动要比平时慢得多的原因。因为每种硬件有一个识别号,所以不会弄错。   如果系统在本身的驱动程序库里找不到相应的设备驱动程序,就要求用户插入带有硬件驱动程序的驱动盘。   由于Win 95在Microsoft与广泛硬件厂商的合作下,本身带有大量旧有设备的识别方法和较新的驱动程序,所以很多人用Win 95感觉比以前好得多。   使用了PCI总线接口的设备由于具有PCI的ID识别码,所以PCI卡具有PnP能力,PCI的ID号一般由主ID号(制造商的识别号,2个字节)和副ID号(2个字节)组成。因此,Win 95会把同一制造商ID号的PCI设备视为具有同一驱动程序的产品。你在Win 95下如果发现你的电脑设备工作不正常,如S3 Trio64V+只能驱动256色,可以进入“控制面板”的“系统”,在“设备管理”中,把相关设备删除,或在“?”中把不运行的硬件设备删除,在下次启动时,Win 95就会要求你插入新设备的驱动盘了。   在Win 95运行时,系统不停地扫描系统,如有硬件变化则相应的加载或卸载该硬件的驱动程序并通知应用软件,这样就可以实现热拨插。其典型应用是笔记本与Deck(扩展箱)底座的热连接。 #1  即插即用的目标   即插即用技术的采用,改变了PC用户拥有的系统的性能,但是与人们的期望值还有一段距离,在我看来,完全的即插即用,应达到如下的目标: #2  1.容易安装和配置新设备   易于安装和配置新设备对于用户而言将是最直接的体现,从此用户不必再为IRQ、DMA通道、I/O端口而发愁,更不必手工进行硬件上的开关和跳线的设置,甚至于软件上的设置也可由系统代劳了。 #2  2.热拨插   这应该说是即插即用技术的最具威力的体现。你可以在系统正在运行的时候安装一个新设备或者拆除一个旧设备。 #2  3.具有与操作系统和硬件自身无关性的特点   即插即用的目的之一是为了便于用户使用和再开发,设备供应商将不再为所生产出的产品能否正常使用而单独为硬件开发专门的驱动程序,其硬件的独立性应当使其在CISC系列的PC中或者是RISC系列的Power PC硬件平台上都可以很好地工作。同样,即插即用也并不应当专指某一个或几个操作系统而言。 #2  4.减少硬件的复杂性,增强其工作的灵活性   减少硬件的复杂性的目的在于使硬件的配置更为简单,而增强硬件的工作灵活性同样不会与减少其复杂性相矛盾。当新增加设备所默认的IRQ、I/O端口或者DMA通道中某一项或几项与已存在设备使用的相同,或者说因为需要共用而将要产生冲突时,这时增强其工作的灵活性将显得至关重要,因为当系统需要它在别的端口或DMA通道工作时,它也可以同样很好地工作。   可以肯定的说,PnP技术对于PC机的硬件发展历程而言,它所带来的开放性的标准同操作系统使用GUI图形用户界面来取代人机对话的字符界面的改变具有同样的意义。尽管使用过Windows 95的用户会对其所提供的令Microsoft感到自豪的即插即用功能还不太满意,然而即插即用和ATX规范将使得组装一台PC机变得象堆积木一样简单,而且当用户使用一个PnP操作系统时,所有的“积木”都可以在PnP规范之下为用户很好地工作而不必担心它们会为你找麻烦。这时技术的先进性将会为用户带来不同于以往的舒适,因此我们完全有理由相信PnP这种逐渐形成的硬件生产标准将会获得极大的成功。 #1  即插即用给非即插即用设备带来的问题及解决方法   PnP给大家带来了好处,也给一些非PnP设备带来了麻烦,因为一般ISA标准的非PnP设备需要固定系统资源,但当PnP设备已占用了这些资源时,这些设备就无法正常工作了,常见于电影卡和一些声卡,一般是由于IRQ和DMA冲突引起的。   解决方法是:查一下你的ISA卡的资料找出它占用的资源,如GOLD16声卡的资源地址为220H,中断IRQ7,DAM1,在开机时进入系统BIOS设置,以AWARD BIOS为例,找到PnP/PCI Configuration(PnP/PCI配置)把IRQ7 ASSIGN TO:PnP/ISA PnP改为Legacy ISA(ISA遗留设备)   DMA1 ASSIGN亦作同样的修改。   一些采用Win Band(华帮)芯片组的电影卡使用IRQ11,DMA6,在未作上述修改时常常死机,修改之后一切正常。