用于连接外设到计算机系统的方法、外设和计算机系统的制作方法

文档序号:6428284阅读:121来源:国知局
专利名称:用于连接外设到计算机系统的方法、外设和计算机系统的制作方法
技术领域
本发明涉及计算机系统和计算机系统配置的领域,特别涉及外设与计算机系统的连接,或者某种传感器或作用器(actor)与控制器的连接。
背景技术
计算机系统包括各种部件,如处理单元、存储器、数据交换平台,并且通常具有多种提供庞多的不同功能性的外围设备。为了利用每个外围设备的功能,必须按照每个外设的规格配置或定制控制计算机系统各部件之间的相互作用的计算机系统操作系统。为了提供操作系统所需的外设特定信息以利用外设的功能,已建立了基于驱动模块的框架。驱动模块用作计算机系统的操作系统和特定的外设或硬件部件之间的接口。
通常,驱动模块仅提供关于不同外设的特定信息。一方面,驱动模块将参数以及外设特定命令提供给操作系统。另一方面,驱动模块自身必须被设计成满足特定操作系统。因此,对于通过驱动模块将外设连接计算机系统,必须设计特定于操作系统的驱动程序,并且同外设一起分发。诸如微软公司的WindowsTM的操作系统包括用于最常用且因此是标准的外设的一套标准驱动模块。操作系统几乎可以自动地执行那些标准外设之一与运行此操作系统的计算机系统的连接。
然而,当硬件供应商发行新的外设时,在可由先前发行的操作系统使用外设的全部功能性之前,必须针对该新外设人工地定制该先前发行的操作系统。必须人工地更新操作系统以支持该外设。由于存在庞多的不同操作系统和操作系统的不同版本,因此外设必须同全套不同的驱动模块一起分发,其中每个驱动模块是为不同的操作系统而定制的。
因此,为了达到可观的市场占有率,对于外设来说,对庞多的不同版本的操作系统的支持是必要的。显然,开发这样庞大的一套驱动模块以及在先前发行的操作系统中人工实施驱动模块与外设制造商及最终用户的巨大开支相联系。尤其是计算机系统的维护,即驱动程序升级的人工实施,可能也与导致费用和时间的计算机系统的重新启动或停机时间相联系。
美国专利No.6,449,660 B1公开了一种面向对象的I/O设备接口框架机制。此I/O接口框架机制具有代表不同I/O设备的对象、代表关于不同I/O设备的信息的对象、对I/O设备执行诊断的对象,以及对I/O设备执行统计分析的对象。
US 6,449,660 B1的I/O框架机制由三个相互依赖的控制器组成。这些控制器称为硬件资源管理器、信息控制器以及设备控制器。硬件资源管理器负责组织关于I/O设备的信息以及使经过组织的信息可用于其他控制器。信息控制器负责收集关于I/O设备的信息以及改变和/或更新某个I/O设备信息。因此,信息控制器由各自代表特定I/O设备的特征的单独对象组成。
此I/O接口框架机制具有向框架用户隐藏接口硬件、协议、初始化以及服务策略的细节的核心功能,除此之外,还具有允许用户增加新的I/O设备和对现有I/O设备进行改变的可扩展功能。由于设备控制器由核心和可扩展功能组成,因此设备控制器的某些部分被设计成可以由框架用户扩展和/或定制它们,而其他部分被设计成它们不能被框架用户进行扩展或定制。
根据US 6449660 B1的披露,资源管理器包括至少一个容器对象,所述容器对象用来容纳至少一个信息对象,所述信息对象用来代表关于所述I/O设备的信息。由于资源管理器被设计成框架机制的核心功能,因此关于所述I/O设备的信息的表示也是所披露框架机制的核心功能。
本发明的目的为提供一种用于将外设连接到计算机系统的改进型方法、计算机系统、外设以及计算机程序产品。

发明内容
本发明提供了一种通过利用自描述(self-describing)功能性将外设连接到计算机系统的方法。外设包括非易失性存储器,其用于存储提供并传送到计算机系统的表示外设信息的数据。在第一步骤中,计算机系统读取存储在外设的非易失性存储器中的数据,即通过预定通信协议传输该数据到计算机系统。
在第二步骤中,计算机系统基于接收的表示外设信息的数据来实例化驱动对象。由于外设自己将必要信息提供给计算机系统,因此计算机系统或操作系统可以实例化适当的驱动对象以提供外设功能的完全利用。这样,当嵌入新外设时,可在没有显式的用户交互的情况下执行计算机系统的重新配置。
一方面,必须配置计算机系统以从外设的非易失性存储器读取数据并且基于该数据实例化驱动对象。另一方面,外设必须将表示自身信息的数据提供给计算机系统。因此,必须保证计算机系统以及外设使用相同的通信平台,其可采用预定通信协议来实现。
根据本发明的优选实施例,实例化的驱动对象向计算机系统提供对外设的访问。这样,本发明的实例化驱动对象完成与现有技术中已知的传统驱动模块相同的功能性。驱动对象用作计算机系统和外设之间的接口。这样,计算机系统有效地通过外设的功能性得到扩展。
根据本发明的另一个优选实施例,将表示外设信息且传送到计算机系统的数据存储在外设的非易失性存储器内的预定地址和/或预定路径上。此预定地址和/或预定路径必须为计算机系统所知,并且可被计算机系统访问。该预定地址和/或预定路径用作必须从外设的非易失性存储器传送到计算机系统的数据的缺省位置。
例如,当将新的外设连接到计算机系统时,计算机系统首先在此预定位置搜寻关于新连接的外设的信息。在检索并传送存储在此预定位置上的第一数据包以及处理此第一数据包之后,计算机系统可在不同的位置搜寻另一个数据包。在这样的情况下,第一数据包必须表示计算机系统可在其上检索另一个数据包的外设非易失性存储器内的位置。另一个数据包的检索和处理可以进一步调用将由计算机系统执行的各种操作以最终实例化驱动对象。
根据本发明的另一个优选实施例,将表示外设信息且存储在外设的非易失性存储器中的数据以一般性方式表示,从而允许正确解释数据而与计算机系统的操作系统类型无关。这样,可将本发明的方法应用到每个支持本连接方法的计算机系统,而不论其底层的操作系统是什么。这样,可以节省因外设的连接而产生的计算机系统的大量人工重新配置的费用和时间。
此外,由于存储在外设的非易失性存储器中的数据的一般性表示,因此可提供平台无关以及操作系统无关的连接。用于将单个外设连接到多种不同操作系统的各种驱动模块的生成和开发成为多余。
根据本发明的另一个优选实施例,为特定的计算机系统和/或操作系统定制未实例化的驱动模块。实例化的驱动模块的全部功能性由多个驱动对象提供,其中每一个驱动对象被设计成处理特定任务。
在驱动模块的实例化过程期间,通过结合存储在外设的非易失性存储器中的规则利用抽象工厂模式来依次构造驱动对象。抽象工厂模式是针对给定的计算机系统或操作系统而特定设计的,并且提供驱动对象的具体实现以及实例化。一般性规则仅提供涉及该抽象工厂模式的功能性的信息。
这样,该方法显式利用为要连接到不同操作系统和/或计算机系统的特定外设创建驱动模块所需的信息的分离。关于外设功能性的信息通过指导具有关于特定操作系统和/或计算机系统的信息的工厂模式的规则来封装。规则和工厂模式的结合最终导致外设所需的驱动模块的隐式生成,从而以准确的方式与不同的计算机系统或操作系统交互。
通过在外设的非易失性存储器中以规则的形式存储外设特定信息并且采用工厂模式在计算机系统的未实例化驱动模块中提供不同计算机系统和/或操作系统的必要信息,提供一种用于通用地将外设连接到计算机系统的平台无关且操作系统无关的方案。
根据本发明的另一个优选实施例,表示外设信息的数据包括特定于外设以及驱动模块的实例化所需的参数和/或命令。


下面,将参照附图更详细地描述本发明的优选实施例,其中图1示出本发明的方框图,图2示出本发明的方法的流程图,图3示出具有非易失性存储器的外设的方框图。
标号列表100计算机系统102操作系统104驱动模块106外设108非易失性存储器300外设302非易失性存储器304存储块306存储块
308存储块310存储块具体实施方式
图1示出具有操作系统102和至少一个驱动模块104的计算机系统100。具有非易失性存储器108的外设106通过驱动模块104连接到计算机系统100。驱动模块104用作计算机系统100的操作系统102和外设106之间的接口。驱动模块104向操作系统102提供外设106的全部功能性。因此,它是根据外设106的功能性而定制的。
驱动模块104以双向方式在操作系统102和外设106之间起作用。一方面,驱动模块104向操作系统102提供对外设106的访问。另一方面,驱动模块104控制外设106的功能性。在此功能中,驱动模块104将操作系统102给出的命令转换为可被外设106处理的形式。
在将外设106连接到计算机系统100之前,驱动模块104处于未实例化的状态。为了获得对不同外设的访问,必须构造多个特定于不同外设的驱动对象。驱动对象的构造基于工厂模式和规则的结合。标准化的工厂模式存储在驱动模块104中,而特定于外设的规则存储在外设106的非易失性存储器108中。在连接外设106与计算机系统100时,将存储在外设106的非易失性存储器108中的规则传送到计算机系统100的驱动模块104。通过操作系统102和/或驱动模块104执行提供外设106的控制的驱动对象的构造。
在构造了外设特定驱动对象之后,由驱动模块104处理外设106和操作系统102之间的交互。
图2示出外设和计算机系统之间的连接过程。在建立了外设和计算机系统之间的连接之后,在步骤200中,将外设特定数据或规则从外设的非易失性存储器传送到计算机系统。在步骤200中执行的该传送可传送存储在外设的非易失性存储器中的全部数据或仅仅数据的第一部分。在这两种情况下,数据的位置都必须以预定方式为操作系统或计算机系统所知。此外,数据的传送必须基于可被操作系统及外设内在理解的预定协议。
这样,必须将数据的至少第一部分传送到操作系统或计算机系统的未实例化驱动模块。
在下一步骤202中,由计算机系统处理数据的第一部分或全部。数据的处理可以由未实例化的驱动模块或者通过操作系统和驱动模块之间的相互作用来执行。在下一步骤204中,实例化外设特定驱动对象,使得完成驱动模块的实例化。
在此实例化之后,完整地构造了驱动模块,因此在步骤206中,提供对外设的全部功能性的访问。步骤206表示连接过程的最终状态,其中,外设的全部功能性可通过驱动模块由操作系统访问。
上面描述的连接过程可根据多种不同方式进行修改。连接过程的方法仅对第一数据部分要求利用预定通信协议。在传送第一数据部分之后,所述数据部分的处理可发生于在外设和计算机系统之间传送另外数据之前。响应所述第一数据部分的处理,可根据多种不同方法修改连接外设到计算机系统的方法。
例如,该过程可切换至不同的通信协议,其意味着,从外设的非易失性存储器到计算机系统的连续数据部分的传送基于不同的通信协议,该协议又必须被外设及计算机系统支持。
图3示出具有非易失性存储器302的外设300的方框图。非易失性存储器包含不同的存储块304、306、308和310。存储块304...310以非易失性存储器302内的唯一地址指定。尤其是,必须将第一存储块304的地址标准化,从而使得其为任何支持本发明所述连接方法的计算机系统所知。
当将外设300连接到计算机系统时,计算机系统首先必须提取位于第一存储块304中的数据。在由计算机系统处理此第一数据部分之后,可进行用于外设实例化的各种不同操作。
这样,本发明提出了一种通过外设的自描述功能性将外设连接到计算机系统的改进型方法。外设特定信息存储在外设自身中,并且在建立外设和计算机系统之间的连接时,将其提供给计算机系统。然后,由计算机系统和/或计算机系统的操作系统执行提供对外设的完全访问的驱动模块的所需实例化。这样,不需人工地将外设的另外信息提供给计算机系统。此外,该方法允许平台无关且操作系统无关并且因此是通用的连接过程。
权利要求
1.一种将外设(106;300)连接到计算机系统(100)的方法,所述外设具有用于存储表示所述外设的信息的数据的非易失性存储器(108;302),该方法包括以下步骤-通过预定通信协议,由所述计算机系统从所述非易失性存储器读取数据,-所述计算机系统基于所述数据来实例化驱动对象。
2.如权利要求1所述的方法,其中,所述实例化的驱动对象向所述计算机系统(100)提供对所述外设(106;300)的访问。
3.如权利要求1或2所述的方法,其中,所述数据存储在所述外设(106;300)的非易失性存储器(108;302)内的预定地址和/或预定路径上。
4.如权利要求1至3中的任一项所述的方法,其中,用与所述计算机系统(100)的操作系统(102)无关的一般性方式表示所述数据。
5.如权利要求1至4中的任一项所述的方法,其中,所述数据包括特定于所述外设(106;300)以及所述驱动模块的实例化所需的参数和/或命令。
6.一种用于连接外设的计算机系统(100),所述外设具有用于存储表示所述外设(106;300)的信息的数据的非易失性存储器(108;302),该计算机系统配置成执行以下步骤-通过预定通信协议,由所述计算机系统从所述非易失性存储器(108;302)读取数据,-基于所述数据来实例化所述计算机系统的驱动对象。
7.如权利要求6所述的计算机系统(100),其中,所述实例化的驱动对象向所述计算机系统提供对所述外设(106;300)的访问。
8.如权利要求6或7所述的计算机系统(100),其中,所述数据存储在所述外设(106;300)的非易失性存储器(108;302)内的预定地址和/或预定路径上。
9.如权利要求6至8中的任一项所述的计算机系统(100),其中,用与所述计算机系统的操作系统(102)无关的一般性方式表示所述数据。
10.如权利要求6至9中的任一项所述的计算机系统(100),其中,所述数据包括特定于所述外设(106;300)以及所述驱动模块的实例化所需的参数和/或每令。
11.一种用于连接到计算机系统(100)的外设(106;300),该外设包括-用于存储表示所述外设的信息的数据的非易失性存储器(108;302),-用于通过利用预定通信协议来提供所述数据到所述计算机系统的装置,-用于基于所述数据来实例化所述计算机系统的驱动对象的装置。
12.如权利要求11所述的外设(106;300),其中,所述实例化的驱动对象向所述计算机系统(100)提供对所述外设的访问。
13.如权利要求11或12所述的外设(106;300),其中,所述数据存储在所述外设的非易失性存储器(108;302)内的预定地址和/或预定路径上。
14.如权利要求11至13中的任一项所述的外设(106;300),其中,用与所述计算机系统(100)的操作系统(102)无关的一般性方式表示所述数据。
15.如权利要求11至14中的任一项所述的外设(106;300),其中,所述数据包括特定于所述外设以及所述驱动模块的实例化所需的参数和/或命令。
16.一种用于将外设(106;300)连接到计算机系统(100)的计算机程序产品,所述外设具有用于存储表示所述外设的信息的数据的非易失性存储器(108;302),该计算机程序产品包括用于执行以下步骤的程序装置-通过预定通信协议,由所述计算机系统从所述非易失性存储器读取数据,-基于所述数据来实例化所述计算机系统的驱动对象。
17.如权利要求16所述的计算机程序产品,其中,所述程序装置配置成通过所述实例化的驱动对象向所述计算机系统(100)提供对所述外设(106;300)的访问。
18.如权利要求16或17所述的计算机程序产品,其中,所述程序装置配置成将所述数据存储在所述外设(106;300)的非易失性存储器(108;302)内的预定地址和/或预定路径上。
19.如权利要求16至18中的任一项所述的计算机程序产品,其中,所述程序装置配置成用与所述计算机系统(100)的操作系统(102)无关的一般性方式表示所述数据。
20.如权利要求16至19中的任一项所述的计算机程序产品,其中,所述程序装置配置成处理包括特定于所述外设(106;300)以及所述驱动模块的实例化所需的参数和/或命令的所述数据。
全文摘要
本发明涉及一种将外设(106;300)连接到计算机系统(100)的方法,外设具有用于存储表示外设信息的数据的非易失性存储器(108;302),该方法包括以下步骤-通过预定通信协议,由计算机系统从非易失性存储器读取数据,-基于该数据来实例化计算机系统的驱动对象。
文档编号G06F3/06GK1624645SQ20041007853
公开日2005年6月8日 申请日期2004年9月9日 优先权日2003年12月1日
发明者迈克尔·安德烈斯, 赫维格·埃尔弗林, 托马斯·赫斯, 阿斯特里德·克赖西格 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1