计算机外部设备的主动配置方法

文档序号:6590771阅读:384来源:国知局
专利名称:计算机外部设备的主动配置方法
技术领域
本发明涉及计算机外部总线上的设备的配置方法,尤其是为挂接在外部总线上的外部设备提供由该设备控制的主动配置的方法。
当前计算机的外部总线有USB(Universal Serial Bus)、IEEE1394(FireWire)等,挂接在这类外部总线上的设备,一般由系统(主控制器,即Host)对资源进行统一调配,外部设备本身仅能被动地接受控制。
挂接在USB总线上的外部设备,简称USB设备,分为很多类(class),其中一个类是大容量存储设备(mass storage),包括USB外置硬盘、USB电子盘等。USB电子盘有时需要作为引导盘,所以PC机为了支持从这类外置的大容量存储设备中启动,就在BIOS中针对这类设备增加了相应的I/O程序,由BIOS借助这些专用的I/O程序从外部设备中存取数据,控制并完成整个引导过程。但因为外部设备繁多,并且不停地有新类型的设备推向市场,其I/O方式也不尽相同,所以通过BIOS提供I/O程序就缺乏通用性,一些外部设备只能被动地等到BIOS升级后才能完全支持其功能。其它一些USB外部设备,例如USB身份验证设备,可能需要在操作系统启动前,也就是在BIOS初始化阶段对计算机系统进行有限的控制,例如,向用户提示一个信息、接受用户的密码输入、根据用户的权限和需求选择硬盘中的某个操作系统等等,但这样的功能,在现有的PC机中只能通过将专用程序升级到BIOS中的方法或者额外增加一块控制卡的复杂方法实现。另外,很多新推向市场的设备总是需要用户向操作系统中安装专用驱动程序,增加了使用时的复杂性。
在实际应用中,挂接在外部总线上的一些外部设备,可能需要在操作系统启动前,也就是BIOS进行初始化(POST)时,对自身进行初始化、或者对计算机系统作一些必要的设定、或者有限的控制等等,但当前的计算机并不能方便地满足外部设备的上述要求。当前的实际解决方案通常是个案解决,也就是通过将为某类甚至某个设备定制的相关程序,升级到BIOS中的方法,支持某个设备的要求,实现其功能。这样的打补丁方案,缺乏通用性和前瞻性,解决方案总是滞后于设备需要;并且升级BIOS是一项很有技术挑战性的工作,不适用于普通PC机用户;另外,只有非常普及的设备需求,主板厂家才会向用户提供BIOS升级所需要的资料,而一般不会为某些特定的应用提供BIOS升级。
本发明的目的是,在尽可能不增加额外成本的前提下,在现有的PC机构架中,为挂接在外部总线上的设备提供一种通用的、简洁易行的,由该设备控制的主动配置方法,允许外部设备有选择地进行主动配置,实现设备特有的功能。本发明所指的外部设备,是指挂接在计算机外部总线上的设备;本发明所指的主动配置,包括初始化外部设备本身,对计算机系统参数、环境进行相关的设定,以及对计算机系统进行有限的控制等,特别地,从外部存储设备进行引导,进而由外部存储设备中的程序控制整个计算机系统,比可以看作是外部设备的主动配置行为。
本发明的技术构思是所有需要进行主动配置的外部设备本身提供一个插件,BIOS使用一个约定的通用操作方式获取并初始化该外部设备的插件,该外部设备在插件中实现主动配置。
本发明的技术方案包括下述三个方面1、所有需要进行主动配置的外部设备,内置一个插件,插件中包含进行主动配置所必要的控制程序;2、在外部总线中增加一个通用的插件存取操作,系统(主控制器,即Host)可以通过插件存取操作获取已经内置插件的外部设备的插件;3、在BIOS的初始化过程中,增加对外部设备的插件扫描程序,在插件扫描程序中对检测到的外部设备的插件进行初始化(或者称为调用)。
上述方案中,外部设备内置的插件,具有事先与BIOS约定好的格式和校验标准。
上述方案中,插件存取操作是一个覆盖外部总线上的所有设备的操作。也就是说,不论设备的分类和用途,只要该外部设备需要主动配置,就可以支持这个通用的插件存取操作;而不需要主动配置的外部设备,则可以完全不响应插件存取操作,或者明确返回不支持信息。这样既不会增加不需要主动配置的外部设备的任何成本,又可以为当前和将来的需要主动配置的外部设置提供一种通用的、简洁的进行主动配置的方法。
上述方案中,BIOS中增加的插件扫描程序,对挂接在外部总线上的所有外部设备进行枚举,通过插件存取操作试图获取每个外部设备的插件,而只有内置插件并支持插件存取操作的外部设备,其插件才会被BIOS正确获取并初始化。
上述方案中,BIOS在正确获取某外部设备的插件后,初始化该外部设备的插件,外部设备通过插件中的控制程序进行主动配置,本发明所指的插件初始化,包括调用插件中的程序以及根据插件中提供的信息进行资源调配等。因为BIOS并不限定对某一类外部设备进行插件扫描及初始化,所以本方案不但能够支持当前的各类设备,也能够支持我们还未定义的将来的新设备;只要新设备满足本方案的条件,不必再升级BIOS,就可以支持主动配置,使得BIOS一步到位,不必频繁为支持新设备的主动配置而升级。
上述方案中,外部设备内置的插件,其程序可以采用特定的脚本语言编写。
上述方案中,外部设备内置的插件,其程序可以是经过编译的目标程序,具有与计算机扩展ROM相兼容的格式,以便充分利用已有的资源,进一步地降低软件成本。同时在BIOS的插件扫描程序中,对于具有扩展ROM兼容格式的插件,BIOS可以先将其映射到PC机的上位内存(Upper Memory),生成模拟的扩展ROM,再使用初始化扩展ROM的标准方法对该插件进行初始化。这样的方案对于需要支持远程引导的USB网卡而言,将能较好地延用ISA/PCI网卡的用于引导的扩展ROM的已有资源。
上述方案中,外部设备内置的插件,如果使用二进制目标程序,那么插件的灵活性将更大,外部设备可以在BIOS允许的情况下设定计算机的参数、环境、引导操作系统、控制计算机,完成以前的外部设备所不能完成的工作。特别是对于某些特定的应用,本发明的技术方案方便了外部设备对计算机系统的控制,使得设备的功能更强。
上述方案中,外部设备如果需要跨平台使用(例如同时支持IA结构的PC机和RISC工作站),则插件程序适宜以脚本语言编写;如果一定要用二进制目标程序,则多个平台的插件应该分别增加平台识别标志,并且某一个平台的BIOS只会获取相对应的插件。
作为进一步的扩展,可以用类似的方法,将外部设备的驱动程序整合在插件中;或者单独提供一个存取某一特定操作系统的驱动程序的操作,在新设备接入操作系统时,操作系统首先检查已有的驱动程序是否支持该新设备,如果不支持,使用一个通用的存取驱动程序的操作,从设备中直接获取驱动程序,进一步简化用户的工作。
本发明的技术方案,仅需要主动配置的外部设备增加一个插件和插件存取操作部分,以及在BIOS中增加一个插件扫描程序,就可以支持当前以及将来的各类设备的主动配置,比目前已有的方法更为通用和简洁,灵活性更强。
下面结合附图对本发明作进一步的说明。


图1为需要主动配置的外部设备的局部结构图。
图2为需要主动配置的外部设备的局部程序流程图。
图3为BIOS中插件扫描程序的程序流程图。
见图1,在需要主动配置的外部设备(11)中内置了插件(12),而不需要主动配置的外部设备则不需要内置插件。
见图2,这是需要主动配置的外部设备的局部程序流程图,所有挂接在外部总线上的外部设备都具有步骤(22),另外步骤(21)和步骤(23)分别为程序入口和出口,需要主动配置的外部设备则还需要增加步骤(24)、步骤(25)、步骤(26)。步骤(21)为局部程序入口,外部设备检测到系统主控制器发给自身的一个操作请求,进入步骤(24)。在步骤(24)设备判断该操作是否为插件存取操作,如果不是则进入常规操作处理步骤(22);如果是插件处理操作则进入步骤(25)。在步骤(25),设备检查当前插件存取操作的参数是否合理,参数不合理则不必响应该操作或者返回一个操作错误信息;参数合理则进入步骤(26)。在步骤(26),设备按当前插件存取操作的要求,将指定的数据返回给系统主控制器,然后进入步骤(23)。步骤(23)为局部程序出口,设备操作处理完成。
见图3,这是BIOS中插件扫描程序的程序流程图。步骤(32)进行外部设备枚举,对所扫描到的每个外部设备都尝试进行一组相同的处理即步骤(41)到步骤(48)。在步骤(41)中,BIOS通过外部总线主控制器向扫描到的某个设备发出插件存取操作,尝试获取该设备的插件的插件头;插件头是指一种能够让BIOS认定外部设备内置了有效插件的约定格式,例如约定插件的前两个字节为55H和0AAH(均为十六进制数据),第三个字节用于指示当前插件的数据长度,在设备返回插件头时,BIOS可以据此判断插件是否无效。在步骤(42)中,BIOS等待外部设备的操作返回,如果被扫描的外部设备需要主动配置,则应该返回正确的插件头数据;否则不返回数据或者返回错误指示信息,使得BIOS放弃对该设备的随后操作。在步骤(43)中,BIOS对外部设备返回的插件头进行检查,如果插件头数据符合约定的格式,则继续获取整个插件;否则BIOS放弃对该设备的随后操作。在步骤(44)和步骤(45)中,BIOS通过多次插件存取操作,读取该外部设备的整个插件的数据,如果中途检测到操作超时,可以采用重复操作,或者中止操作的具体处理方式。在步骤(46)中,BIOS对读取的整个插件进行全面校验,根据约定的格式和校验标准,最终确定该外部设备的插件是否有效,如果校验失败则BIOS放弃对该设备的随后操作,否则进入步骤(47)。在步骤(47)中,对于已经确认的有效插件,BIOS将兼容计算机扩展ROM格式的插件映射到上位内存,模拟成扩展ROM。在步骤(48)中,BIOS以初始化扩展ROM的标准方式初始化模拟成扩展ROM的插件,或者直接对插件进行初始化,外部设备依靠该插件实现主动配置,完成后BIOS继续进行其余的外部设备的枚举。在实际应用中,同一种外部总线上的设备可以支持同一个插件存取操作,但不同外部总线上的设备可能需要对插件存取操作进行不同的物理实现;例如,可以为所有的USB设备定义一个插件存取操作,但因为IEEE1394与USB的物理层和链路层不尽相同,所以对于IEEE1394设备需要另外定义一个插件存取操作;但这里的不同主要是指物理层,在逻辑层仍然可以做成统一的格式。同样,在BIOS方面,可能需要对每一种外部总线单独进行一个插件扫描操作,例如,先对USB设备进行枚举和插件扫描,再对IEEE1394设备进行枚举和插件扫描。
以挂接在USB总线上的USB身份识别设备为例,这类设备需要在操作系统启动前对用户身份进行检查,包括显示一些界面和接受用户的一些按键输入,在未采用本发明技术方案的情况下,要实现上述功能,有两种方案,第一种是在计算机中再添置一块控制卡,成本较高,安装控制卡要打开机箱也不方便;第二种是在BIOS中添加一个专用控制程序,但因为这类设备并不是非常普及,所以主板厂家通常不会为此专门升级BIOS。采用本发明的技术方案后,只要将专用控制程序以标准插件格式存放于USB身份识别设备中,用户不需要做任何额外的工作,计算机的BIOS就会自动初始化该插件,USB身份识别设备借助该插件,就可以控制计算机显示界面以及接受输入,实现所需要的功能。这里的插件存取操作应该定义为一个标准的USB设备级操作,使得USB总线的各种类型的设备都可以在需要时支持该操作,从而使插件存取操作更为通用,支持当前尚未定义的新类型的设备。另外,当前的USB网卡因为BIOS中未提供USB网卡的引导程序,所以不支持远程引导,但只要基于本发明的技术方案在网卡中增加一个插件,就可以很方便地支持远程引导。作为一种具体应用,本发明的技术方案还可以应用于从任何一种外置存储装置中引导,而不局限于当前已定义的USB外置电子盘。
对本发明技术方案作进一步的考虑,还可以增加外部设备的插件的写入功能,使得插件可以在必要的情况下进行升级或者修正。另外,操作系统可以执行一种插件存取操作,该操作可以从外部设备中获取设备自带的驱动程序,从而省去用户安装驱动程序的过程。总之,通过为BIOS和外部设备定义一个通用的插件存取操作,并让BIOS在计算机初始化过程中进行插件扫描,需要主动配置的外部设备只需要内置一个插件,就可以通过插件实现主动配置。基于本发明的技术方案,在实现外部设备主动配置时更为通用和简洁,并且使外部设备具有更强的灵活性。
权利要求
1.挂接在计算机外部总线上的外部设备实现主动配置的一种方法,其特征是需要主动配置的外部设备,支持插件存取操作,内置一个插件,插件中包含进行主动配置所必要的控制程序;计算机BIOS中包含插件扫描程序,插件扫描程序尝试获取外部设备的插件,并对获取的有效插件进行初始化。
2.根据权利要求1所述的外部设备的主动配置方法,其特征是外部设备内置的插件,具有与BIOS约定好的格式和校验标准,以便BIOS判断其获取的插件是否有效。
3.根据权利要求1所述的外部设备的主动配置方法,其特征是插件存取操作是一个标准的设备级操作,基于同一种外部总线接口的设备不论类型与用途,都可以根据需要决定是否支持该操作。
4.根据权利要求1所述的外部设备的主动配置方法,其特征是插件扫描程序包含外部设备枚举过程、插件存取操作过程、插件是否有效的判断过程、插件初始化过程,前面过程的结果决定是否执行后面的过程。
5.根据权利要求1或2所述的外部设备的主动配置方法,其特征是外部设备内置的插件中的程序采用脚本语言编写。
6.根据权利要求1或2所述的外部设备的主动配置方法,其特征是外部设备内置的插件中的程序为经过编译的目标程序。
7.根据权利要求6所述的外部设备的主动配置方法,其特征是外部设备内置的插件具有与计算机扩展ROM相兼容的格式,包括下述特征,插件的前两个字节必须为十六进制数据55H和0AAH。
8.根据权利要求7所述的外部设备的主动配置方法,其特征是BIOS将获取到的有效插件模拟成扩展ROM,并对其按标准的扩展ROM的初始化方式进行初始化。
9.根据权利要求1所述的外部设备的主动配置方法,其特征是操作系统包含插件扫描程序,并通过插件存取操作获取外部设备自带的基于该操作系统的驱动程序。
10.根据权利要求1所述的外部设备的主动配置方法,其特征是所述的外部总线是USB总线,所述的外部设备为挂接在USB总线上的设备。
全文摘要
本发明是关于为挂接在计算机外部总线上的外部设备提供一种由该设备控制的主动配置的方法。本发明的方法是,为计算机的BIOS和需要主动配置的外部设备定义一个通用的插件存取操作;需要主动配置的外部设备内置一个用于主动配置的插件;由BIOS在计算机初始化过程中执行一个插件扫描程序,尝试获取外部设备的插件并对有效插件进行初始化,使得外部设备得以通过插件实现主动配置。
文档编号G06F12/00GK1493975SQ0213851
公开日2004年5月5日 申请日期2002年11月1日 优先权日2002年11月1日
发明者尹启凤 申请人:尹启凤
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1