通用串行总线装置及通用串行总线装置处理数据的方法

文档序号:6552214阅读:118来源:国知局
通用串行总线装置及通用串行总线装置处理数据的方法
【专利摘要】通用串行总线装置及通用串行总线装置处理数据的方法。该通用串行总线装置接收从主机发出的数据包,包括第一虚拟设备、第二虚拟设备、数据分配装置。数据分配装置执行判断操作,包括:当判断出数据包记录的第一虚拟地址与第一虚拟设备的地址相同时,据此将传送于数据包中记录的对应第一虚拟地址的数据传输至第一虚拟设备,使第一虚拟设备与主机进行传输;当判断出数据包记录的第二虚拟地址与第二虚拟设备的地址相同时,据此将数据包中记录的对应第二虚拟地址的数据传送至第二虚拟设备,使第二虚拟设备与主机进行传输。
【专利说明】通用串行总线装置及通用串行总线装置处理数据的方法
【技术领域】
[0001]本发明涉及一种通用串行总线(USB)装置,特别涉及一种增加或减少功能时不需中断目前执行功能的通用串行总线(USB)装置。
【背景技术】
[0002]通用串行总线(USB)装置或者USB装置控制器(USB device controller, UDC)普遍应用在智能型手机中,用来连接主机,例如,个人计算机,以与主机进行数据交换。智能型手机与主机连接时,视为一个具有一个或多个功能的USB装置。在智能型手机与主机连接以后,用户无法增加或减少功能。举例来说,当智能型手机与主机连接时,智能型手机被视为一个具有数据传输功能的USB装置。在连接期间,智能型手机无法再额外增加照相机功能。若要增加照相机功能,则必须将智能型手机与主机断开,让主机重新准备关于照相机功能以及数据传输功能的描述符,之后智能型手机与主机再度连接时,才能同时执行数据传输功能以及照相机功能。简单来说,USB复合装置(USB composite device)想要增加或减少功能时,会导致正在使用的功能被中断。
[0003]因此,有需要提出一种新的USB装置及USB装置处理数据包的方法来解决上述连接中断的问题。

【发明内容】

[0004]有鉴于是此,本发明实施例提出一种USB装置,接收从主机发出的数据包(datapacket)。该USB装置包括第一虚拟设备、第二虚拟设备、数据分配装置(data-assigningdevice)。数据分配装置执行判断操作,包括:当判断出数据包记录的第一虚拟地址与第一虚拟设备的地址相同时,据此将传送于数据包中记录的对应第一虚拟地址的数据传输至第一虚拟设备,使第一虚拟设备与主机进行传输;当判断出数据包记录的第二虚拟地址与第二虚拟设备的地址相同时,据此将数据包中记录的对应第二虚拟地址的数据传送至第二虚拟设备,使第二虚拟设备与主机进行传输。
[0005]本发明另一实施例提出一种USB装置处理数据的方法,用以处理主机发出的数据包。使该USB装置从第一模式切换至第二模式前不需预先中断在该第一模式下执行的功能。该处理方法包括:配置第一虚拟(virtual)设备、第二虚拟设备、数据分配装置;藉由该数据分配装置执行第一判断操作;当判断该数据包记录的第一虚拟(logical)地址与该第一虚拟设备的地址相同时,将该数据包中记录的对应该第一虚拟地址(first logicaladdress)的数据传送至该第一虚拟设备,使该第一虚拟设备与该主机进行传输;及当判断该数据包记录的第二虚拟地址(second logical address)与该第二虚拟设备的地址相同时,将该数据包中记录的对应该第二虚拟地址的数据传送至该第二虚拟设备,使该第二虚拟设备与该主机进行传输。
[0006]上述USB装置及USB装置处理数据的方法,能使USB装置增加或减少功能时不会中断目前执行的功能。【专利附图】

【附图说明】
[0007]图1显示USB装置耦接至主机的架构示意图。
[0008]图2显示根据本发明实施例所述的耦接至主机的USB装置。
[0009]图3显示根据本发明实施例所述的具有Hub功能的虚拟设备执行的判断操作。
[0010]图4显示根据本发明实施例所述的USB装置处理数据包的方法。
[0011]图5显示根据本发明实施例所述的软件协议栈分配数据的示意图。
[0012]图6显示根据本发明实施例所述的耦接至主机的USB装置。
【具体实施方式】
[0013]由于本发明允许各种改变和多种实施例,因此将在附图中示出并在以下内容详细描述特定实施范例。然而,这并非意图将本发明限于特定的实现模式,需了解,没有脱离本发明的精神和技术范围的所有改变、等同物和替换均被包含在本发明中。在附加的图示中,为了清楚起见,扩大结构的维度。
[0014]当使用像是「第一」、「第二」或类似的术语来描述各种组件时,这些组件不应被上述的术语限制。以上所述的术语仅是用来将一组件从另一组件中区分出来。举例来说,第一组件可被视为第二组件而不会脱离本揭露权利的范围,以及相同的,第二组件可被视为
第一组件。
[0015]在以下描述中,技术术语仅用于说明具体的示范性实施方式,而不限制本发明。除非相反声明,单数形式的术语可包括复数形式。「包括」、「由…构成」、「包含」、或「由…组成」规定属性、区域、固定数字、步骤、处理、组件、和/或部件,但不排除属性、区域、固定数字、步骤、处理、组件、和/或部件。
[0016]除非对本发明概念的实施方式所使用的术语进行了不同的定义,否则可将术语解释为本领域的技术人员已知的含意。术语,像是,通常使用且辞典中已有的术语,应被解释为具有与本领域的上下文含意匹配的含意。在说明书中,除非明确的定义,否则不将术语想象的过度解释为形式含意。
[0017]图1显示耦接至主机10的USB装置12的架构示意图。USB装置12可位于例如移动装置中、智能型手机中、平板计算机中。USB装置12包括USB装置控制器(USB devicecontroller, UDC) 122 及 USB 复合装置(composite device) 124。USB 复合装置 124 可通过运行安装于移动装置、智能型手机或平板计算机中的软件仿真而成。USB装置12接收从主机10输出的数据包Pa,数据包pa记录地址及数据。
[0018]UDC122包括地址比较器122a、与门122b、枚举地址寄存器122c、数据包逻辑处理单元122d。枚举地址寄存器122c用以暂存USB复合装置124的地址。地址比较器122a用以比较枚举地址寄存器122c暂存的地址与数据包pa记录的地址,并输出对应比较结果的指示信号Sc至与门122b。当指示信号Sc指出枚举地址寄存器122c暂存的地址与数据包Pa记录的地址相同时,与门122b输出数据包pa至数据包逻辑处理单元122d,使数据包逻辑处理单元122d处理数据包pa,并输出已处理的数据包pa至USB复合装置124。USB复合装置124根据已处理的数 据包pa与主机10进行传输。
[0019]由于一个虚拟设备仅具有一个地址,因此一个单一的USB复合装置124仅具有一个地址。USB复合装置124具有多个功能。当USB复合装置124增加或减少功能时,USB复合装置124将被配置新的地址。举例来说,在一个模式下,USB复合装置124执行照相机功能Π及传文件功能f2 ;此时,USB复合装置124的地址为地址I。从该模式切换到另一模式时,USB复合装置124执行照相机功能H、传文件功能f2、及额外增加的附件功能f3 ;此时,USB复合装置124的地址被重新分配为地址2。USB复合装置124的上述特性导致一些缺点。由于增加或减少功能时USB复合装置124的地址改变,主机10必须先中断与USB装置12的传输,将数据包pa记录的地址由地址I改为地址2,再与USB装置12进行传输。如此一来,会中断正在执行的照相机功能fl及传文件功能f2。简单来说,由于将USB装置12所有的功能配置为单一 USB复合装置124,因此导致上述问题。本发明的USB装置可解决上述问题。
[0020]图2显示根据本发明实施例所述的耦接至主机10的USB装置22。USB (UniversalSerial Bus)装置22可位于例如是移动装置中、智能型手机中、平板计算机中。主机10例如是个人计算机或是实体的集线器(Hub)。USB装置22接收从主机10传输的数据包pa’,数据包Pa’记录多个群组的地址及数据。举例来说,第一群组为地址I及对应地址I的数据。第二群组为地址2及对应地址2的数据。第η群组为地址η及对应地址η的数据,其中η为正整数。η由USB装置22执行的功能的数量决定。举例来说,当USB装置22执行一种功能时,数据包记录一个群组的地址及数据。当USB装置22执行两种功能时,数据包记录两个群组的地址及数据,依此类推。
[0021]USB装置22包括实体装置以及非实体装置。UDC (USB device controller) 222为实体装置,虚线25包含的装置为非实体装置。在虚线25中,软件协议栈(software stack)ss可通过运行安装于移动装置、智能型手机或平板计算机中的软件仿真而成。软件协议栈ss将USB装置22的多个功能配置成多个虚拟设备。举例来说,软件协议栈ss将照相机功能配置为虚拟设备252 ;软件协议栈ss将Flash驱动(Flash drive)功能配置为虚拟设备254,257 ;软件协议栈ss将以太网络(Ethernet)功能配置为虚拟设备258 ;软件协议栈ss将附件(Android accessory)功能配置为虚拟设备259 ;软件协议栈ss将Hub功能配置为虚拟根Hub251、虚拟Hub253、255、256。相较于图1的USB复合装置124,本发明的软件协议栈ss仅将一个功能配置为一个虚拟设备,没有将USB装置22所有的功能配置为单一虚拟设备。
[0022]上述各种虚拟设备具有各自的地址。在本实施例中,虚拟根Hub251的地址为Al ;虚拟设备252的地址为A2 ;虚拟Hub253的地址为A3 ;虚拟设备254的地址为A4 ;虚拟Hub255的地址为A5 ;虚拟Hub256的地址为A6 ;虚拟设备257的地址为A7 ;虚拟设备258的地址为A8 ;虚拟设备259的地址为A9。
[0023]由于每个虚拟设备都有自己的地址,因此每个虚拟设备能够独立运作。USB装置22增加或减少功能时,不会中断目前执行的功能。举例来说,在一种模式下,主机10输出的数据包Pa’记录的地址为A2及A4,分别与虚拟设备252及254的地址相同,使得USB装置22执行照相机功能及Flash驱动功能。从该模式切到另一模式时,主机10输出的数据包pa’还记录地址A7,与虚拟设备257的地址相同,使得USB装置22还执行额外增加的附件功能。由于在两种模式下,数据包Pa’皆记录地址为A2、A4,因此不会中断照相机功能及Flash驱动功能。[0024]为了配合上述的配置方式,本发明的UDC222也做了改动,使得本发明的UDC222的架构不同于图1的m)C122的架构。UDC222包括地址寄存器222a及数据包转移装置222b。地址寄存器222a用以提取并暂存数据包Pa’记录的地址,并且将地址输出给软件协议栈ss及虚拟根Hub251中的一个。数据包转移装置222b用以从主机10接收数据包pa’并将数据包Pa’转移至软件协议栈ss及虚拟根Hub251中的一个而不需处理数据包pa’。
[0025]软件协议栈ss还配置在图2中的软件协议栈ss下方多个虚拟设备的连接关系。需注意的是,图2所示的虚拟设备的架构仅为示范之用,并非用来限制本发明。软件协议栈ss能够将这些虚拟设备配置成不同的架构。
[0026]具有Hub功能的虚拟设备包括虚拟根Hub251、虚拟Hub253、虚拟Hub255、虚拟Hub256。此类虚拟设备具有虚拟输出端口。
[0027]虚拟根Hub251具有四个虚拟输出端口 P0-P3,但不限定于此。在一个实施例中,虚拟根Hub251具有七个虚拟输出端口。虚拟输出端口 PO直接连接虚拟设备252 ;虚拟输出端口 Pl直接连接虚拟Hub253 ;虚拟输出端口 P2直接连接虚拟设备254 ;虚拟输出端口 P3直接连接虚拟Hub255及通过虚拟Hub255间接连接虚拟设备259。
[0028]虚拟Hub253具有四个虚拟输出端口 P0-P3,但不限定于此。在一个实施例中,虚拟Hub253具有七个虚拟输出端口。虚拟输出端口 PO直接连接虚拟Hub256并通过虚拟Hub256间接连接虚拟设备258 ;虚拟输出端口 Pl直接连接虚拟设备257。
[0029]虚拟Hub255具有一个虚拟输出端口 PO,但不限定于此。在一个实施例中,虚拟Hub255具有七个虚拟输出端口。虚拟输出端口 PO直接连接虚拟设备259。
[0030]虚拟Hub256具有一个虚拟输出端口 PO,但不限定于此。在一个实施例中,虚拟Hub256具有七个虚拟输出端口。虚拟输出端口 PO直接连接虚拟设备258。
[0031]此外,具有Hub功能的虚拟设备,包括虚拟根Hub251、虚拟Hub253、虚拟Hub255、虚拟Hub256,具有各自的列表,用以记录虚拟输出端口映像至直接或间接连接至该虚拟输出端口的虚拟设备的地址的映像关系。
[0032]虚拟根Hub251的列表如表1所示:
[0033]
【权利要求】
1.一种通用串行总线装置,接收从主机发出的数据包,该通用串行总线装置包括: 第一虚拟设备; 第二虚拟设备;以及 数据分配装置,与该第一虚拟设备和该第二虚拟设备相耦合,执行第一判断操作,包括: 当该数据包记录的第一虚拟地址与该第一虚拟设备的地址相同时,将该数据包中记录的对应该第一虚拟地址的数据传送至该第一虚拟设备,使该第一虚拟设备与该主机进行传输 '及 当该数据包记录的第二虚拟地址与该第二虚拟设备的地址相同时,将该数据包中记录的对应该第二虚拟地址的数据传送至该第二虚拟设备,使该第二虚拟设备与该主机进行传输。
2.根据权利要求1所述的通用串行总线装置,其中该数据分配装置为虚拟根集线器,所述虚拟根集线器执行所述第一判断操作,还包括: 当该第一虚拟地址与所述虚拟根集线器的地址相同时,接收该第一虚拟地址对应的数据,藉此与该主机进行传输;以及 当该第一虚拟地址与所述虚拟根集线器的地址不同且与该第一虚拟设备的地址相同时,用以将该第一虚 拟地址对应的数据传送至该第一虚拟设备,使该第一虚拟设备与该主机进行传输。
3.根据权利要求2所述的通用串行总线装置,还包括: 至少一个虚拟集线器,所述虚拟集线器与所述数据分配装置相耦合;当该虚拟根集线器判断该第一虚拟地址与该虚拟根集线器的地址不同且与该第一虚拟设备的地址相同时,该虚拟根集线器分配该第一虚拟地址及其对应的数据至该至少一个虚拟集线器; 其中该至少一个虚拟集线器执行第二判断操作,包括: 当该第一虚拟地址与该至少一个虚拟集线器的地址不同且与该第一虚拟设备的地址相同时,分配该第一虚拟地址对应的数据至该第一虚拟设备,使该第一虚拟设备与该主机进行传输 '及 当该第一虚拟地址与该至少一个虚拟集线器的地址相同时,接收该第一虚拟地址对应的数据,藉此与该主机进行传输。
4.根据权利要求3所述的通用串行总线装置,其中: 该虚拟根集线器具有至少一个虚拟输出端口,该至少一个虚拟集线器连接该至少一个虚拟输出端口以及该第一虚拟设备通过该至少一个虚拟集线器连接该至少一个虚拟输出端口 ; 该虚拟根集线器具有第一列表,该第一列表记录该至少一个虚拟输出端口映像至该至少一个虚拟集线器的地址及该第一虚拟设备的地址的映像关系; 该至少一个虚拟集线器具有至少一个虚拟输出端口,其中该第一虚拟设备连接于该至少一个虚拟集线器的该至少一个虚拟输出端口 ;以及 该至少一个虚拟集线器具有第二列表,该第二列表记录该至少一个虚拟集线器的该至少一个虚拟输出端口映像至该第一虚拟设备的地址的映像关系。
5.根据权利要求1所述的通用串行总线装置,其中:数据分配装置具有第三列表,该第三列表记录该第一虚拟设备的地址及该第二虚拟设备的地址;以及 该第一虚拟设备具有一个单一功能以及该第二虚拟设备具有一个单一功能。
6.根据权利要求1所述的通用串行总线装置,还包括: 通用串行总线控制器,通用串行总线控制器与所述数据分配装置相耦合,用以接收该主机发出的该数据包,并传送该数据包至该数据分配装置,其中该通用串行总线控制器包括: 地址寄存器,用以提取该数据包的该第一虚拟地址和/或该第二虚拟地址,并将该第一虚拟地址和/或该第二虚拟地址输出至该数据分配装置; 数据包转移装置,用以从该主机接收该数据包并转移该数据包给该数据分配装置。
7.一种通用串行总线装置处理数据的方法,用以处理主机发出的数据包,使该通用串行总线装置从第一模式切换至第二模式前不需预先中断在该第一模式下执行的功能,该处理方法包括: 配置第一虚拟设备、第二虚拟设备、数据分配装置,所述数据分配装置与所述第一虚拟设备以及所述第二虚拟设备相耦合; 藉由该数据分配装置执行第一判断操作; 当该数据包记录的 第一虚拟地址与该第一虚拟设备的地址相同时,将该数据包中记录的对应该第一虚拟地址的数据传送至该第一虚拟设备,使该第一虚拟设备与该主机进行传输 '及 当该数据包记录的第二虚拟地址与该第二虚拟设备的地址相同时,将该数据包中记录的对应该第二虚拟地址的数据传送至该第二虚拟设备,使该第二虚拟设备与该主机进行传输。
8.根据权利要求7所述的通用串行总线装置处理数据的方法,还包括: 配置该数据分配装置为虚拟根集线器; 藉由该虚拟根集线器执行所述第一判断操作,所述第一判断操作还包括: 当该第一虚拟地址与该虚拟根集线器的地址相同时,接收该第一虚拟地址对应的数据,藉此与该主机进行传输;及 当该第一虚拟地址与该虚拟根集线器的地址不同且与该第一虚拟设备的地址相同时,用以传送该第一虚拟地址对应的数据至该第一虚拟设备,使该第一虚拟设备与该主机进行传输。
9.根据权利要求8所述的通用串行总线装置处理数据的方法,还包括: 配置至少一个虚拟集线器,使该至少一个虚拟集线器作为该第一虚拟设备; 藉由该至少一个虚拟集线器执行第二判断操作,包括: 当该第一虚拟地址与该至少一个虚拟集线器的地址不同且与该第二虚拟设备的地址相同时,分配该第一虚拟地址对应的数据至该第二虚拟设备,使该第二虚拟设备与该主机进行传输; 当该第一虚拟地址与该至少一个虚拟集线器的地址相同时,接收该第一虚拟地址对应的数据,藉此与该主机进行传输。
10.根据权利要求9所述的通用串行总线装置处理数据的方法,还包括:配置该虚拟根集线器的至少一个虚拟输出端口; 连接该至少一个虚拟输出端口至该至少一个虚拟集线器; 通过该至少一个虚拟集线器连接该至少一个虚拟输出端口至该第二虚拟设备; 在该虚拟根集线器中配置第一列表,该第一列表记录该至少一个虚拟输出端口映像至该至少一个虚拟集线器的地址及该第二虚拟设备的地址的映像关系; 配置该至少一个虚拟集线器的至少一个虚拟输出端口; 连接该至少一个虚拟集线器的该至少一个虚拟输出端口至该第二虚拟设备; 在该第一虚拟集线器中配置第二列表,该第二列表记录该至少一个虚拟集线器的该至少一个虚拟输出端口映像至该第二虚拟设备的地址的映像关系。
11.根据权利要求7所述的通用串行总线装置处理数据的方法,还包括: 在该数据分配装置中配置第三列表,该第三列表记录该第一虚拟设备的地址及该第二虚拟设备的地址; 将该通用串行总线装置具有的一个单一功能配置为该第一虚拟设备; 将该通用串行总线装置具有的另一个单一功能配置为该第二虚拟设备。
12.根据权利要求7所述的通用串行总线装置处理数据的方法,还包括: 藉由通用串行总线控制器接收该主机发出的该数据包; 藉由该通用串行总线控制器传送该数据包至该数据分配装置; 藉由该通用串行总线控制器的地址寄存器提取该数据包的该第一虚拟地址及该第二虚拟地址,并输出该第一虚拟地址及该第二虚拟地址至该数据分配装置;以及 藉由该通用串行总线控制器的数据包转移装置从该主机接收该数据包并转移该数据包给该数据分配装置。
【文档编号】G06F13/38GK104035905SQ201410315691
【公开日】2014年9月10日 申请日期:2014年7月3日 优先权日:2014年7月3日
【发明者】陈科锋 申请人:开曼群岛威睿电通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1