首页> 中国专利> 动态基于总线的虚拟信道多路复用装置驱动器架构

动态基于总线的虚拟信道多路复用装置驱动器架构

摘要

可以通过以下步骤来实现动态基于总线的虚拟信道多路复用:与多路复用装置功能驱动器(312)和连接到总线(314)的多功能装置(322)建立一条或多条虚拟信道(300,3021,304),确定要在装置上触发的一个或多个功能,以及针对所触发的每个功能运行第二层功能驱动器来处理所触发的功能的操作。第二层功能驱动器具有功能驱动器类型。建立与多功能装置(322)的一条或多条虚拟信道是通过利用多路复用协议来实现的,多路复用装置功能驱动器(312)经由总线驱动器连接到总线。

著录项

  • 公开/公告号CN101490637A

    专利类型发明专利

  • 公开/公告日2009-07-22

    原文格式PDF

  • 申请/专利权人 施克莱无线公司;

    申请/专利号CN200680041579.X

  • 申请日2006-10-06

  • 分类号G06F3/00;G06F9/44;G06F9/46;G06F13/00;

  • 代理机构北京康信知识产权代理有限责任公司;

  • 代理人余刚

  • 地址 加拿大不列颠哥伦比亚

  • 入库时间 2023-12-17 22:18:57

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-09-25

    未缴年费专利权终止 IPC(主分类):G06F3/00 授权公告日:20110907 终止日期:20171006 申请日:20061006

    专利权的终止

  • 2011-09-07

    授权

    授权

  • 2009-09-16

    实质审查的生效

    实质审查的生效

  • 2009-07-22

    公开

    公开

说明书

相关申请的声明

本申请要求2005年10月6日提交的名为“动态基于总线的虚拟信道多路复用装置驱动器架构”的第60/724,837号临时专利申请的优先权。

技术领域

本公开文件大体涉及虚拟信道多路复用。

背景技术

所有的计算机系统都包括多个装置协同操作的汇集(collection)。中央处理器(CPU)负责大多数的计算功能。然而,为了使计算机系统对用户有用,必须将数据传到CPU以及将数据传出CPU。键盘、显示器、鼠标等是计算机用户与该系统进行交互所必需的所有外围设备。最初,所有这些外围设备通过专用接口附加至该计算机。例如,键盘通过键盘端口进行连接,鼠标通过鼠标端口进行连接,以及显示装置又通过另外的专用端口进行连接。随着计算机系统已经发展为提供更多的功能性,而引入了更多的外围设备。添加了网络连接以增强与其他计算机系统的互联性(interconnectivity)。添加了扫描接口以允许直接输入图像数据。打印机接口增加了制作所处理的数据的硬拷贝的能力。摄影机、图形输入板、外部存储装置等的所有装置都造成了计算机系统中的复杂布线配置。

为了解决这个问题,已经开发了接口总线系统。小型计算机系统接口(SCSI)就是一种这样的并行总线。该总线系统允许多个装置高速连接至该计算机系统上的单个接口。然而,该标准不允许“热插拔”,因此每次改变外围装置附加配置时均需要该计算机系统断电。在近几年,引入了更加普遍的通用串行总线(USB)架构。在添加外围装置时,该总线允许“热插拔”以及自动配置外围装置。通过USB架构还解决了该系统的“即插即用”,使得在检测到新的外围装置添加到该总线上时能够运行适当的装置驱动器。

图1示出了示例性的总线驱动器架构。计算机操作系统上的总线驱动器软件和USB架构一起服务于总线114上的装置(116、118、120)。总线驱动器112最主要的任务是对其总线114上的装置(116、118、120)进行列举,对即插即用(PnP)请求作出响应,对功率管理请求作出响应,对总线114进行多路复用访问,以及管理总线114上的装置(116、118、120)。然后,建立功能驱动器(106、108、110)作为用于装置(116、118、120)的主驱动器。通常由该装置的厂商写入功能驱动器(106、108、110),功能驱动器是必不可少的。PnP管理器至多载入一个用于装置(116、118、120)的功能驱动器(106、108、110)。同一功能驱动器(106、108、110)可以服务于一个或多个装置(116、118、120)。功能驱动器(106、108、110)为其装置(116、118、120)提供操作接口。典型地,功能驱动器(106、108、110)处理对装置(116、118、120)进行的读取和写入并管理装置电源政策(power policy)。

图2示出了示例性的用于多功能装置的总线驱动器架构。在Windows操作系统上,通过将多功能装置222定义为占用其总线214上的一个装置位置来支持该多功能装置,但是该多功能装置包含不只一个功能单元(216、218)。每个功能单元(216、218)各自对应于一个驱动器(206、208、210)。多功能装置的实例包括调制解调器适配器/网络适配器的组合、音频端口/游戏端口的组合等。对于操作系统,这些装置表现为多个单独的装置。例如,实现音频能力和游戏端口能力的附加声卡表现为两个独立的装置,一个装置由音频驱动器所服务而另一装置由游戏端口驱动器所服务。

操作系统在这些功能单元(216、218、220)上施加了限制。即使每个功能单元(216、218、220)偶尔被服务于装置(222、220)上的其他功能单元的同一驱动器(组)的实例所服务,每个功能单元也必须能够作为单独的装置来运行。特别地,多功能装置222上的功能单元一定不能有启动顺序依赖性,一定不能用一个功能单元来表示另一个功能单元的资源要求,一个功能单元的运行一定不能影响或干扰多功能装置222或作为整体的系统上的另一功能单元的运行,必须列举每个功能单元并将其资源要求传达给操作系统,从而该系统可以载入必要的驱动器并按照任意顺序将资源分配给不同单元。

在基于Windows的系统上的USB总线上附加装置的上述能力和限制在服务于大量的外围装置的过程中取得了成功。然而,随着计算系统发展得复杂化,外围装置在复杂性和功能性上也有所增加。这些外围装置正变为自主式计算系统,其需要多条信道来与操作系统进行交互。可以使用这些信道中的每条信道来实现不同的功能。例如,无线广域网装置需要与操作系统进行交互以传送多个流,或者同时与用于流的多个信道(例如,但不限于,主要的接收数据路径和发送数据路径、用于利用多个上下文或同一上下文上的多个单独的服务质量数据信道来进行无线网络访问的附加数据信道、控制和状态信道、诊断和维护信道、以及运行诸如国家海洋电子协会(NMEA)协议的位置协议的位置服务(LBS)信道)进行交互。这些信道中的每一条都需要独立的数据传送信道和独立的驱动器处理。然而,由于这些信道可能具有启动顺序依赖性,因此不能认为它们在总线上是独立的装置。例如,可能需要在启动任何其他信道路径之前启动控制和状态数据路径信道,以在打开依赖于接下来所确定的那些服务中的一个或多个服务的其他信道中的一条信道之前,询问正在与其进行通信的装置和网络来确定该网络和装置能够进行什么服务。

Windows驱动器设计者借助于用于多功能装置的多功能驱动器解决了像之前几段中所描述的那些装置的更加复杂装置。多功能驱动器是总线驱动器并因此具有多个优点。多功能驱动器可以从单个物理装置在系统中为每个流或每条信道列举虚拟装置。因此,如果多功能装置支持多于一条的信道(例如,数据信道、控制和状态信道、诊断信道、以及用于复杂的调制解调器的位置服务信道(LBS)),则该多功能驱动器能够在系统中为多功能装置的每条信道创建一个虚拟装置。除此之外,在系统中创建的用于该装置的虚拟装置组可以由不同的装置类型组(例如,调制解调器端口、COM端口、网络适配器等)组成。

多功能驱动器的另一个优点是只要载入了该驱动器则其还允许在任意时刻在系统中动态载入和卸载虚拟装置。然而,当前的多功能装置驱动器包含静态配置,其不允许这些驱动器利用这一特征,这是由于用于指定要在该系统中呈现的虚拟装置的硬件装置所呈现的配置在本质上是静态的。因此,只能在该系统中载入用于该装置的多功能驱动器的时候载入和卸载要在该系统中呈现的虚拟装置组。为了改变该虚拟装置组,必须通过将该多功能装置从主机系统中移走或对其进行重新启动或复位操作,利用新的或可替换的装置接口配置参数组,来对该多功能装置进行重新列举。这是多功能驱动器架构方法的一个缺点。

这种由多功能装置322所呈现的装置配置的静态本性在多功能驱动器312的使用上产生了其他限制。不能基于运行时间的决定或主机平台或装置中的非易失性存储器的设置来动态添加或移走信道。必须在主机系统中列举装置322时建立虚拟信道。为了改变虚拟信道/装置的配置,必须通过将该装置从主机系统中移走或对其进行重新启动或复位操作,利用新的或可替换的装置接口配置参数组来对该装置进行重新列举。另一个缺点是,新的虚拟信道和/或装置的定义要求新的装置配置而不是固件、软件、或非易失性存储器的升级。

由于通过装置配置来驱动用于指定所要建立的信道和虚拟装置的方法,因此除了在装置配置中所呈现给主机的信道组和虚拟装置组之外,主机系统没有机会对所要支持的虚拟信道组/装置组产生影响。这可以被看作一种主-从关系并因此这成了另一个缺点,因为倘若除了在装置配置中所呈现给主机的信道组和虚拟装置组之外还允许主机系统影响或控制所要建立的信道组和虚拟装置组将是有利的。

多功能驱动器架构的又一个缺点是所列出的虚拟装置数目要服从于与装置类型相关联的特定总线规格(即,USB或PCI-Express装置总线规格)所强加的配置限制。这些配置可能具有大小或入口限制,其间接限制了装置配置能够指定给主机系统的信道数目或虚拟装置数目。

通过实施虚拟信道多路复用驱动器架构来弥补之前几段中所描述的多功能驱动器架构的多个缺点。图3示出了示例性的基于非总线的虚拟信道多路复用驱动器架构。信道多路复用协议允许单个异步接口上的多个同时的会话或信道。每个会话/信道均由传送多种数据的字节流组成。

虚拟信道多路复用协议驱动器312可以允许对要建立在主机和装置322之间的虚拟会话组或信道组进行协商。由于主机和装置322都可以对所要建立的虚拟信道产生影响,因此信道的建立是对等关系而非主从关系。虚拟信道多路复用协议驱动器312在本质上还可以是动态的,这是由于其可以允许在任意时刻建立和终止虚拟信道。此外,只要装置配置覆盖了用于在其上进行多路复用的全部虚拟信道的单个信道的定义,则由于虚拟信道的定义在装置配置的范围之外,添加新的虚拟信道不需要新的装置配置。

尽管当前的虚拟信道多路复用协议驱动器架构为该多功能驱动器架构的特定限制和缺点提供了解决方案,但由于当前的虚拟信道多路复用驱动器架构没有采用总线架构,因此它们也有其自身的限制。由于这些多路复用驱动器架构未基于总线,因此其不允许由不同的虚拟装置组来代表虚拟信道(例如,所有的虚拟信道必须是具有COM端口、调制解调器端口、以及网络适配器等的组合的COM端口)。此外,这些虚拟信道多路复用驱动器架构不允许在系统中动态载入或卸载虚拟装置。例如,当需要时,可以由支持多功能装置322的总线驱动器在运行时间中载入网络适配器。然而,由于基于非总线的虚拟信道多路复用解决方案只支持一种装置类型并且将其自身仅作为一个装置呈现给该系统,因此其不允许载入或卸载装置322。

总之,到此存在着两种不同的驱动器架构来解决这些较复杂的多功能装置的需要。尽管这两种驱动器架构解决方案都提供了解决这些复杂的多功能装置的需要的明显优点,但它们还都有限制了利用这些更复杂的装置的灵活性和动态能力的显著的缺点。

发明内容

动态基于总线的虚拟信道多路复用可以通过以下步骤来实现:与多路复用装置功能驱动器和连接到总线的多功能装置建立一条或多条虚拟信道,确定要在该装置上触发的一个或多个功能,以及针对所触发的每个功能运行第二层功能驱动器来处理所触发的功能的操作。该第二层功能驱动器具有功能驱动器类型。建立与多功能装置的一条或多条虚拟信道是利用多路复用协议来实现的,多路复用装置功能驱动器经由总线驱动器连接到总线。

附图说明

附图结合于此并作为说明书的一部分,示出了实施例的一个或多个实例,附图与示例性实施例的描述结合在一起用于解释实施例的原理和实施方式。

附图中:

图1示出了示例性的总线驱动器架构。

图2示出了示例性的用于多功能装置的总线驱动器架构。

图3示出了示例性的基于非总线的虚拟信道多路复用驱动器架构。

图4示出了示例性的采用了多功能的基于总线的驱动器的虚拟信道多路复用装置功能驱动器。

图5示出了示例性的具有停用(deactived)功能的图4的虚拟信道多路复用装置功能驱动器。

图6示出了示例性的用于动态基于总线的虚拟信道多路复用的方法实例。

具体实施方式

在本文中在计算机、服务器、以及软件的系统的上下文中描述了示例性实施例。本领域的技术人员将认识到下面的描述仅是说明性的,并不用于以任何方式进行限制。对于受益于本公开文件的那些普通技术人来说,其他实施例将是显而易见的。以下将详细参考附图中所示的示例性实施例的实施方式。在所有的附图和下面的描述中,将使用同一参考标号来指代同一项目或类似的项目。

为了简明起见,并没有示出和描述本文中所描述的实施方式的所有常规特征。当然,应当意识到,在开发任何这种实际的实施方式的过程中,必须做出许多针对实施方式的决定以实现开发者的特定目的,例如,遵照与应用相关的限制和与商业相关的限制,并且应当意识到,从一个实施方式到另一个实施方式以及从一个开发者到另一个开发者这些特定目的将有所不同。此外,应当意识到,这种开发的努力可能是复杂且费时的,但对受益于本公开文件的本领域的那些普通技术人员来说,仍将是工程的例行程序。

根据本公开文件,在本文中所描述的组件、处理步骤、和/或数据结构可以利用多种类型的操作系统、计算平台、计算机程序、和/或通用机器来实现。此外,本领域的那些普通技术人员将认识到,在不背离在本文中所公开的发明思想的范围和精神的情况下,还可以使用诸如硬连线装置、现场可编程门阵列(FPGA)、特定用途集成电路(ASIC)等通用特性较少的装置。其中,在通过计算机或机器来实现包含一系列处理步骤的方法并且可以将那些处理步骤作为一系列机器可读的指令来存储的情况下,可以将它们存储在诸如计算机存储装置(例如,ROM(只读存储器)、PROM(可编程只读存储器)、EEPROM(电可擦写可编程只读存储器)、闪存、闪存驱动器(Jump drive)等)、磁存储介质(例如,磁带、磁盘驱动器等)、光存储介质(例如,CD-ROM、DVD-ROM、纸卡、纸带等))、以及其他类型的程序存储器的实体介质上。

由本发明的示例性实施例所达到的一个目的是提供一种动态的、灵活的驱动器架构,其支持具有不同功能性的多条虚拟信道,这些虚拟信道能够作为代表不同虚拟信道的不同装置类型组而呈现在主机系统中;其支持通过主机和装置二者之一或者通过主机和装置一起来确定所要建立的虚拟信道组;其能够支持在任意时刻在主机系统中动态连接或移走与一条或多条虚拟信道相关联的虚拟装置;以及能够支持在该装置保持连接状态并且被主机系统使用期间当需要或不需要所支持的虚拟信道时,动态建立和终止所支持的任一虚拟信道。

尽管由本发明所达到的上述目标和目的是描述多个方面和实施例的,但这些目标和目的并不是用于限制在下面的发明描述中所阐述的本发明的范围。

根据本发明的一个实施例,装置驱动器架构利用虚拟信道多路复用协议驱动器架构同时还采用基于总线的多功能驱动器架构来与多功能装置进行通信。通过将这两种不同的方法结合到一个新的单独的驱动器架构中,可以在一个单独的组合驱动器架构中实现用于支持这些新的即将到来的复杂多功能装置的两种架构的优点。除了由上述的多功能装置和虚拟信道多路复用架构所提供的优点之外,本发明的动态基于总线的虚拟信道多路复用装置驱动器架构由于其不受到硬件装置配置的静态本质的限制,因此只要载入了该驱动器,就允许在任意时刻在系统中动态载入和卸载虚拟装置(优于利用具有静态配置的多功能装置的多功能驱动器的限制)。再者,由于上面所讨论的之前的两种驱动器架构的许多缺点基本上彼此不相关(一种驱动器架构为另一种驱动器架构的一个缺点(多个缺点)提供解决方案),因此将这两种驱动器架构结合到一个组合驱动器架构中提供了不具有之前所提到的这两种单独的驱动器架构的任何缺点的组合解决方案。此外,组合驱动器架构具有上述优点和超出两种单独的驱动器架构中任一种的任意优点的优点。

在组合驱动器架构中,仍然使用虚拟信道多路复用协议来封装以及拆封不同的通信协议包,每种协议类型都与装置的多个功能单元之一相关联。然而,当将此装置附加到总线(诸如,Windows系统上的USB)时,如图4的参考标号440所示的多路复用装置功能驱动器(MDFD)作为用于多功能装置434的功能驱动器而被关联。然后,此驱动器440与装置434进行通信和协商(对等而非主-从)以建立在装置434上所要触发的功能和虚拟信道。

在一个示例性实施例中,MDFD 440和多功能装置434之间的多路复用协议可以基于基于非总线的多路复用协议。作为实例,MDFD 440和多功能装置434之间的多路复用协议可以基于3GPP27.010终端设备到用户设备(TE-UE)多路复用器协议。

在另一示例性实施例中,在MDFD 440和多功能装置434之间的多路复用协议可以基于针对总线定义的接口组件(bus specificdefined interface component)。作为实例,可以采用单独的通用串行总线(USB)端点用于各条虚拟信道。对于所触发的每个功能(与所建立的一条或多条虚拟信道相关联),MDFD 440运行第二层驱动器(406、408、410)来处理该功能的操作。当前由MDFD 440所建立的第二层(second-tier)驱动器(406、408、410)可以由不同的驱动器类型(即,COM端口、调制解调器端口、网络适配器等)组成,并且可以基于装置434和MDFD 440之间的协商来确定。在一个示例性实施例中,MDFD 440可使用固定表格查找使多功能装置和MDFD之间的各条信道(在该特定实施例中称作数据链路连接(DLC))与合适的第二层功能驱动器(406、408、410)相关联。例如,DLC=0可以与控制信道功能相关联;DLC=1可以与AT/PPP数据通信功能相关联;DLC=2可以与诊断模式功能相关联;DLC=3可以与控制和状态功能相关联;DLC=4可以与地理位置功能相关联。根据另一示例性实施例,MDFD 440可利用初始配置查询机制来确定DLC到功能单元的映射。然后,可以使用该信息来确保在检测到功能单元(416、418、422)时运行或挂起正确的第二层功能驱动器(406、408、410)。

多路复用协议使用多个唯一功能标识符来区分用于装置434的各个功能单元(416、418、422)的协议单元。根据一个示例性实施例,唯一功能标识符包括3GPP27.010协议中的DLC标识符。可以使用控制信息或新的协议识别检测机制来使MDFD 440在任意时刻运行相关联的第二层驱动器(406、408、410)。

如果在装置434上禁止了相关联的功能,则用于多功能装置434的MDFD 440还可以在任意时刻终止或挂起特定的第二层驱动器(406、408、410)。对于要改变的所建立的虚拟信道组、功能、以及相关联的第二层驱动器(406、408、410),不一定要对装置434进行重新列举。

因此,该驱动器系统可以处理多功能装置434的变化的配置。可以使用用于多功能装置434的单个MDFD 440来解决多功能装置434的多个修订和配置。再者,也可以利用同一MDFD 440来解决为满足不同用户要求所必需的多功能装置434的用户化。这样减小了通过维护多个独特用户化装置驱动器所引入的错误的可能性。利用单个MDFD 440来解决相似的多功能装置434的不同版本的能力也降低了开发成本。

图5示出了同一MDFD 540可以服务于多功能装置534的情况,其中,已经停用或挂起功能2(518)。在这种情况中,MDFD 540能够挂起相关联的第二层装置功能驱动器508和(如果希望的话)相关联的虚拟信道。如果装置534的用户化版本未包括全部功能单元,则也可以获得这种灵活性。在这种情况中,MDFD 540将调整至用户化的配置并且仅运行所需要的虚拟信道和第二层功能驱动器(506、508、510)。因此,应用程序可以基于相关联的API功能呼叫是否存在来确定功能单元(516、518、522)存在或不存在。

图6示出了示例性的用于动态基于总线的虚拟信道多路复用的方法实例。可以在硬件、软件、固件、或其组合中实现图6所示的处理。图6示出了图4的多路复用装置功能驱动器440和图5的多路复用装置功能驱动器550的操作。在600处,建立多路复用装置功能驱动器和连接到总线的多功能装置之间的一条或多条虚拟信道。使用多路复用协议建立多功能装置和多路复用装置功能驱动器的连接。在602处,做出关于要在装置上触发的一个或多个功能的决定。在604处,针对参考编号602处所触发的每个功能,运行第二层功能驱动器来处理所触发的功能的操作。每个第二层功能驱动器都具有与其相关联的功能驱动器类型。

尽管出于说明的目的前面的描述提到了USB架构,但本领域的那些普通技术人员将容易地意识到本文中所公开的发明并不必局限于该USB架构。例如,还可以使用PCI-Express(PCIe)总线以及电气和电子工程师协会1394(IEEE 1394)总线。

尽管已经示出并描述了实施例和应用,但对于受益于本公开文件的那些本领域技术人员来说显而易见的是,在不背离本文所公开的发明思想的情况下,除了上面所提到的实施方案之外还可能有多种修改。因此,除了所附权利要求的精神之外,本发明不应该被限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号