操作远程usb主控制器的制作方法

文档序号:6655397阅读:168来源:国知局
专利名称:操作远程usb主控制器的制作方法
技术领域
本发明一般涉及装置连接性领域。
背景技术
常规通用串行总线(“USB”)结构基于主/从通信,其中系统中的主控称为USB主控制器(“主控制器”)。常规主控制器紧密集成在“主机”平台中(例如集成在处理器、处理器芯片组中),作为外围控制接口(“PCI”)或其他“机内”总线等上的总线主控制器。USB主机包括应用、装置驱动器(driver)(它管理附着的USB装置)、USB总线驱动器(它给USB装置驱动器提供标准的USB总线服务抽象)、主控制器驱动器和物理USB主控制器(其中有几种类型),所有这些都管理总线的数据通信。主控制器提供状态和控制机制以使USB主机管理USB端口用于将USB装置和/或USB集线器连接。USB集线器是使一个或多个USB装置(通过附加的一个或多个附加端口)通过该集线器连接回USB端口的装置。按照通用串行总线规范2.0,一个主控制器最多可连接127个装置。
常规主控制器提供寄存器和基于存储器的接口,主控制器驱动器利用该接口在系统和连接的USB装置之间实现数据传送。寄存器为主控制器的“根端口”提供状态控制信息、以及关于数据传送的管理和一般状态/控制信息。基于存储器的接口提供控制/状态信息。寄存器是用于根端口的状态和控制、关于数据传送的主控制器管理和一般状态/控制信息。基于存储器的接口是用于特定于数据传送的控制/状态。常规的USB系统软件实施向USB装置驱动器提供面向缓冲区的流服务。USB装置驱动器将缓冲区输入/输出(“I/O”)请求提交到USB总线驱动器,USB总线驱动器依次将该缓冲区发送给合适的USB主控制器驱动器。USB主控制器驱动器然后利用其特定接口将该缓冲区交付给主控制器硬件。实际上,整个栈是面向缓冲区的。
常规USB主机的产品已紧密集成了主控制器。因此,USB装置必须在USB主机规定的距离之内。该距离由电缆的长度而定,并且电缆的长度是若干限制最大传输时间的协议参数的函数。因此,常规USB控制器的瓶颈是其可连接到USB装置的距离。


将通过附图中说明的示例性实施例、而非限定的方式描述本发明,附图中相似的编号指示类似的组件,并且附图中图1说明根据本发明实施例的计算环境的方框图。
图2说明根据本发明一个实施例、为与远程主控制器通信而进行的图1的软件组件的耦合。
图3说明根据本发明实施例具有主计算机和远程主控制器的计算系统环境的方框图。
图4a-d说明根据本发明实施例连接到远程主控制器的主机系统的示例性配置。
具体实施例方式
本发明的说明性实施例包括但不限于面向缓冲区的抽象,其能使主控制器实际地被放置在除USB主计算机内部之外的某个地方。
将通过使用本领域的那些技术人员向本领域的其他技术人员表达他们工作主旨时普遍采用的术语描述说明性实施例的各个方面。然而,本领域技术人员显见,仅使用某些所描述的方面可实现本发明。出于说明的目的,阐述了特定的数字、材料和配置以便使读者透彻地理解说明性实施例。然而,本领域技术人员显见,没有这些特定的细节也可实现本发明。在其他情况下,为了不混淆说明性实施例,省略或简化了众所周知的特征。
而且,各种操作和/或通信将作为多个离散的操作和/或通信依次以最有助于理解本发明的方式描述;然而,描述的顺序不应该理解为暗示这些操作和/或通信是必须是顺序相关的。具体地说,这些操作和/或通信不必按提出的顺序执行。
“在一个实施例中”这一术语重复使用。该术语一般不指同一实施例;当然,它也可以指同一实施例。“包含”、“具有”和“包括”这些术语是同义的,除非语境指定不同的含义。
本发明的实施例定义了使USB主控制器物理放置在除USB主机(例如,主计算机)“内部”以外的某个地方的结构。换句话说,USB主控制器对于传统主机平台可能是“远程的”。在各种实施例中,远程USB主控制器(“远程主控制器”)通过扩展灵活的、面向缓冲区的USB接口使USB连接映射在多链路技术之上从而增强了传统USB主机系统软件的结构,多链路技术包括但不限于局域网(“LAN”)、广域网(“WAN”)、个域网(“PAN”)、电话网(例如,POT、PBX等)、无线链路(例如,无线电话网、802.11网、蓝牙等)、USB、电气和电子工程师协会(“IEEE”)1394、电力线等。尽管各种示例性实施例中的抽象是以USB为中心的(以便容易结合现有软件栈),但是其他实施例可以不是以USB为中心的。无论如何,远程主控制器的下游装置可以是或不是USB装置。因此,该抽象使远程主控制器的示例性实施暴露在下游作为USB装置连接到USB主机的装置,无论它们是否为活动的USB装置。
通过在最低驱动层提供良好定义的抽象,远程主控制器还可提供将USB主系统软件桥接到非USB应用(例如基于电力线的家庭自动化)的标准化方法,这允许非USB技术使用在USB装置类规范和驱动器中出现的全套应用支持。
远程主控制器以至少两种方式扩展如何将装置连接到主计算机的模型。首先,它允许与主计算机物理分离的USB装置连接到主计算机上。例如,家庭中一个房间中的USB打印机和扫描仪能使用两个房间之间的一些其他连接(例如有线或无线LAN)连接另一个房间中的计算机。其次,远程主控制器允许装置使用不同的物理链路作为远程主控制器和装置之间的连接。换句话说,远程主控制器提供了用于将USB支持软件桥接到其他类型的物理硬件的单端标准化接口。该模型例如可能是如何引进无线USB的基础。它还可允许已连接到电力线的装置(例如,家庭应用、照明开关、插座等)连接到计算机上,并作为USB装置出现,给出了计算机与这些装置对接并控制这些装置的标准化方式。
在计算环境中使用一个或多个远程主控制器的另一个优点是具有多个主控制器(或者是多个远程控制器或者是具有一个或多个远程主控制器的本地主控制器)时,由于每个主控制器管理它自己的一组USB端口,USB使计算机可访问的USB端口的数量有相应的增加。
图1说明适用于本发明实施例的示例性主计算机100。本领域中的那些普通技术人员和其他人员可以理解主计算机100可包括比图1中示出的那些组件更多的组件。然而,为了公开用于实现本发明的授权实施例,没有必要示出所有这些常规组件。如在图1中所示,主计算机100包括用于通过远程USB主控制器(没有示出)连接到远程装置(没有示出)的传输接口130。如上所述,传输接口130可以是用于支持LAN、WAN、PAN、电话网、电力线连接、串行总线(USB)或无线连接的传输接口。传输接口130包括用于这种连接的必要的电路、驱动器和/或收发器,并且被构造为与用于这种连接的适当协议一起使用。在说明书和权利要求中如“远程USB主控制器”中使用的“远程”这一词以及类似的其他术语是指远程主控制器通过自身或结合本地USB主控制器来使USB或非USB装置能够位于比通用串行总线规范v2.0中规定的距离更远的地方。
主计算机100还包括处理单元110、可选显示器140和存储器150,所有这些通过总线120与传输接口130互连。本领域中的那些普通技术人员和其他人员可以理解显示器140在所有形式的计算装置中不是必须的,因此它是可选组件。存储器150一般包括随机访问存储器(“RAM”)、只读存储器(“ROM”)和永久海量存储装置,例如磁盘驱动器、闪存RAM等。存储器150存储操作系统155和根据本发明的实施例形成的至少一个USB驱动器160(例如,特定USB装置驱动器、小端口驱动器或驱动器的某些组合)。在各种实施例中,存储器150还存储至少一个远程主控制器功能165(例如,小端口)、至少一个远程USB主控制器驱动器170和应用175。本领域中的那些普通技术人员和其他人员可以理解当作为分离的、单个的软件组件描述USB驱动器160、远程主控制器功能165、远程主控制器驱动器170和应用175时,它们实际上可能由多个软件组件组成,或者实际上是一个或多个集成的软件组件的子部分。
可以理解,使用与计算机可读介质(例如软盘、磁带、DVD/CD-ROM驱动、闪存RAM或者网络接口卡)相关联的驱动机制(没有示出)或网络机制(没有示出)可将软件组件从计算机可读介质载入到主计算机100的存储器150中。
虽然仅示出一个远程主控制器传输接口130,但是主计算机100可选地包括一个或多个本地USB主控制器(没有示出)。在各种实施例中,远程主控制器功能165、远程主控制器驱动器170和远程主控制器传输接口130便于远程主控制器300将例如用于读和/或写机器可读介质的装置、数码相机、打印机、例如MP3播放器的数字音乐播放器/录音机等外部装置与主计算机100相连。例如键盘或鼠标的各种输入装置还可通过组件165、170和130耦合到个人计算机100。
图2说明根据本发明的一个实施例、为与远程主控制器300通信而进行的图1的软件组件的耦合。一般而言,根据本发明实施例的远程主控制器系统的实施包括远程主控制器功能165、远程主控制器驱动器170和远程主控制器传输接口130,通过该远程主控制器传输接口130,操作系统155经由USB驱动器160与远程主控制器300通信并控制远程主控制器300。在一个实施例中,应用175提供与经由远程主控制器300连接的远程USB装置(没有示出)相连的必要逻辑连接。下文中,远程主控制器传输接口130也可称为远程主控制器介质传输。
USB驱动器160执行其常规功能,即对远程主控制器功能165进行缓冲区I/O请求并且服务来自远程主控制器功能165的回复,就像远程主控制器功能165结合远程主控制器驱动器170和传输接口130组成“本地USB主控制器”一样。因此,可采用多种装置类相关方式的任何其中之一实施USB驱动器160。远程主控制器功能165与远程主控制器300上的对应物协作来完成USB驱动器160对远程主控制器功能165所支持的功能的缓冲区I/O请求。在各种实施例中,可使用多个远程主控制器功能165来支持多个功能。每个远程主控制器功能165的实施是功能相关的。远程主控制器驱动器170配置为根据远程主控制器协议(例如,基于传输控制/网际协议[“TCP/IP”]的消息协议)将缓冲区I/O请求(独立于远程主控制器功能165支持的功能的本质)打包成由远程主控制器传输接口130传输的适当的传输格式(例如以太网)。远程主控制器驱动器170还配置为提取通过远程主控制器传输接口130从远程主控制器300接收的应答消息中的USB内容。
图3说明本发明的一个示例性实施例,其中通过远程主控制器300将主计算机100连接到远程放置的USB装置、USB键盘380。本领域中的那些普通技术人员和其他人员可以理解图3示出的装置布置仅是根据本发明一个示例性实施例的装置的一种布置,并且包括非USB装置和/或非USB通信链路的装置的其他配置可与本发明的其他实施例一起使用。
主计算机100包括用来通过远程主控制器300与远程放置的USB装置、USB键盘380通信的多个软件和硬件组件。一个这样的组件是USB人机接口装置(“HID”)驱动器320,它是用于在逻辑上控制USB键盘380的装置驱动器。USB键盘380还包括在逻辑上受控于主计算机的USB HID驱动器320的USB HID键盘功能385。主计算机100还包括为主计算机100提供USB功能的USB驱动器160。
另外,主计算机100还包括用来“抽象”主计算机100和远程主控制器300之间的连接的抽象层360。抽象层360包括远程主控制器功能165、远程主控制器驱动器170和远程主控制器介质传输130。远程主控制器功能165通过远程主控制器驱动器170、远程主控制器介质传输130和远程主控制器300的相应远程主控制器介质传输305与远程主控制器300的远程主控制器功能驱动器315在逻辑上通信。更具体地说,远程主控制器驱动器170和远程主控制器300之间的物理通信路径通过远程主控制器介质传输130借助于远程主控制器协议到达远程主控制器300上的远程主控制器介质传输305。远程主控制器介质传输305还与远程主控制器功能驱动器315通信,也借助于远程主控制器协议(同一远程主控制器协议或另一协议)。
远程主控制器300还包括其自身的物理连接远程USB装置(例如USB键盘380)的USB主控制器310。USB主控制器310物理连接USB键盘380的USB总线接口395。然而,在远程主控制器300和USB键盘380之间的逻辑连接是在远程主控制器功能驱动器315和USB键盘380的USB逻辑装置390之间。如上文所述,经由USB键盘380的USB HID键盘功能385处理USB键盘的高级通信和控制,该USB键盘HID键盘功能385与主计算机100上的USB HID驱动320程序通信(通过主计算机100与远程主控制器300以及远程主控制器300与USB键盘380之间的上述逻辑和物理连接)。
从上文对经由远程主控制器300连接到主计算机100的远程放置的USB键盘380的描述可知,本发明的实施例允许装置“远程”于这些装置要连接的主计算机。
本领域中的那些普通技术人员和其他人员可以理解图3示出的装置仅是本发明的一个实施例的一种示例性配置,并且可包括更多或更少的组件。例如,主计算机的驱动器(USB驱动器160、主控制器功能165和远程主控制器驱动器170)作为分离的单个驱动器示出。在本发明的其他实施例中,可使用更多或更少的驱动器以便于USB装置、本地和远程主控制器之间的通信。在其他实施例中,可使用备选通信路径(逻辑的和物理的)在组件之间发送信号。
图4a至4d说明本发明的其他示例性实施例,包括非USB装置可耦合到具有USB驱动器的主计算机、允许主计算机使用其USB栈操作非USB装置的示例性实施例。非USB装置可包括但不局限于其他串行总线装置(例如IEEE1394)、局域网络装置或并行接口装置。
图4a说明本发明的实施例的配置,其中,主计算机100A具有到远程主控制器300A的非USB有线连接,但是具有到USB装置405A的USB连接。本领域中的那些普通技术人员和其他人员可以理解从主计算机100A到USB装置405A的逻辑通信可继续使用USB驱动器作为远程主控制器300A,并且主计算机上的抽象层360抽象出非USB连接使得无须引入分离的非USB连接驱动器,可继续进行与USB装置405A逻辑通信。
图4B说明一个示例性实施例,其中主计算机100B具有到远程主控制器300B的非USB有线连接,该远程主控制器300B又具有到非USB装置410B的非USB有线连接。对于该实施例,USB主控制器310被替换为适于非USB连接的非USB主控制器。远程主控制器功能驱动器315还可配置为处理USB命令和非USB命令之间的转换。本发明的这种实施例虽然没有采用任何USB连接,仍能利用主计算机100B的抽象层360将100B的非USB装置当作USB装置,并且利用USB装置驱动器与非USB装置410B通信和/或控制非USB装置410B。
图4c类似于图4a,然而,主计算机100C和远程主控制器300C间的传输介质是无线连接。也就是说,远程主控制器介质传输130和305配置为支持主计算机100和远程主控制器300之间的无线连接。远程主控制器300C又具有到USB装置405C的USB连接。
类似地,在图4d中,主计算机100D具有到远程主控制器300D的无线连接。因此,如图4c所述同样配备了远程主控制器介质传输130和305。然而,远程主控制器300D具有到类似图4B的非USB装置41OD的非USB连接。也就是说,USB主控制器310被替换为非USB主控制器,并且远程主控制器功能驱动器315配置为处理上文所述的USB和非USB命令之间的转换。
尽管本文中说明和描述了特定的实施例,但是本领域中的那些普通技术人员和其他人员可以理解,在没有背离本发明的范围的情况下,大量不同的备选和/或等效实施可代替示出和描述的特定实施例。本申请要涵盖本文讨论的任何修改和变更。因此,显然本发明仅由权利要求以及其等价项所限定。
权利要求
1.一种系统,包括计算机,包括处理器,以及耦合到所述处理器的存储器,具有USB驱动器和远程主控制器的抽象;以及与所述计算机耦合并且距所述计算机远程设置的远程主控制器,与作为所述计算机的USB主控制器的远程主控制器的所述抽象结合来工作。
2.如权利要求1所述的系统,还包括耦合到所述远程主控制器的远程装置。
3.如权利要求2所述的系统,其中,所述远程装置是从数码相机、打印机、数字音乐播放器/录音机、键盘和光标控制装置中选定的一个。
4.如权利要求1所述的系统,其中,远程主控制器的所述抽象包括远程主控制器功能,配置为向所述远程主控制器的功能的USB缓冲区I/O请求提供功能特定处理。
5.如权利要求1所述的系统,其中,远程主控制器的所述抽象包括远程主控制器驱动器,配置为提供功能独立处理以对USB缓冲区I/O请求进行格式处理用于传输到所述远程主控制器。
6.如权利要求1所述的系统,其中,远程主控制器的所述抽象包括介质传输,配置为将用于某种介质类型的经格式处理的USB缓冲区I/O请求在所述介质类型的介质上传输到所述远程主控制器。
7.如权利要求6所述的系统,其中,所述远程主控制器包括相似类型的介质传输、耦合到所述远程主控制器的介质传输的远程主功能驱动器和USB主控制器。
8.如权利要求6所述的系统,其中,所述介质包括从由局域网、广域网、个域网、电话网、并行接口、无线链路、USB、IEEE 1394和电力线组成的组中选定的通信链路。
9.一种远程USB主控制器,包括介质传输,与远程放置的主计算机中设置的所述远程USB主控制器的抽象的对应介质传输通信;远程主控制器功能驱动器,耦合到所述介质传输以处理来自所述远程USB主控制器的抽象的远程主控制器功能的USB缓冲区I/O请求;以及USB主控制器,耦合到所述远程主控制器功能驱动器以便于将USB装置耦合到所述远程放置的主计算机。
10.如权利要求9所述的远程USB主控制器,其中,所述介质传输配置为支持从由局域网、广域网、个域网、电话网、无线链路、USB、IEEE 1394和电力线组成的组中选定的介质。
11.如权利要求9所述的远程USB主控制器,其中,所述远程主控制器功能驱动器包括对小端口功能的支持。
12.一种远程主控制器,包括介质传输,与远程放置的主计算机中设置的所述远程主控制器的抽象的对应介质传输通信,所述主计算机包括耦合到所述远程主控制器的抽象的USB驱动器;远程主控制器功能驱动器,耦合到所述介质传输以处理来自所述远程主控制器的抽象的远程主控制器功能的USB缓冲区I/O请求,所述远程主控制器功能驱动器配置为将USB命令转换成非USB命令,反之亦然;以及非USB主控制器,耦合到所述远程主控制器功能驱动器以便于将非USB装置耦合到所述远程放置的主计算机。
13.如权利要求12所述的远程主控制器,其中,所述介质传输配置为支持从由局域网、广域网、个域网、电话网、并行接口、无线链路、USB、IEEE 1394和电力线组成的组中选定的介质。
14.如权利要求12所述的远程主控制器,其中,非USB主控制器包括硬件,所述硬件支持对利用从由局域网、广域网、个域网、电话网、并行接口、无线链路、USB、IEEE 1394和电力线组成的组中选定的通信介质链路的装置的控制。
15.一种将USB装置连接到主计算机的方法,所述方法包括将远程设置的主控制器耦合到具有USB驱动器和所述远程主控制器的抽象的主计算机;以及将USB装置耦合到所述远程主控制器的USB主控制器。
16.如权利要求15所述的方法,其中,所述远程主控制器的抽象和所述远程主控制器包括配置为支持在介质类型的介质上的传输的互补介质传输,并且所述方法还包括对USB缓冲区I/O请求进行格式处理用于在所述介质上从所述主计算机传输到所述远程主控制器。
17.如权利要求15所述的方法,其中,所述方法还包括在所述远程主控制器上恢复收到的所述USB缓冲区I/O请求。
18.一种将非USB装置作为USB装置连接到主计算机的方法,所述方法包括将远程设置的主控制器耦合到具有USB能力和所述远程主控制器的抽象的主计算机,其中所述远程主控制器配置为接收非USB装置并且用来在USB信号和至少一种类型的非USB信号之间转换;以及通过所述远程主控制器将非USB装置耦合到所述主计算机。
19.如权利要求18所述的方法,其中,所述远程主控制器的抽象和所述远程主控制器包括配置为支持在介质类型的介质上的传输的互补介质传输,并且所述方法还包括对USB缓冲区I/O请求进行格式处理用于在所述介质上从所述主计算机传输到所述远程主控制器;以及在所述远程主控制器上恢复收到的所述USB缓冲区I/O请求。
20.如权利要求19所述的方法,其中,所述方法还包括将所述USB缓冲区I/O请求转换成非USB缓冲区I/O请求。
全文摘要
本文描述的是用于远程USB主机控制的设备和方法。
文档编号G06F13/40GK1934553SQ200580009419
公开日2007年3月21日 申请日期2005年3月25日 优先权日2004年3月31日
发明者J·凯斯, J·霍沃德, A·伊斯迈尔 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1