通用串行总线集线器的制作方法

文档序号:17221365发布日期:2019-03-27 11:59阅读:128来源:国知局
通用串行总线集线器的制作方法

本发明涉及一种具有主机对主机功能的复合式(composite)通用串行总线(usb)集线器(hub)。



背景技术:

在过往,当移动装置通过usb(universalserialbus,通用串行总线)来连接至主机(笔记型计算机、桌上型计算机或车载系统(carsystem))时,移动装置是当成装置(device)(亦即从装置)。

然而,目前移动装置(如智能手机)日渐普及,且硬件功能强大,所以移动装置有可能逐渐取代笔记型计算机、桌上型计算机或车载系统(carsystem)等的角色。也就是说,移动装置已从装置转变为主机(host)。

此外,由于usb的应用非常庞大,具备usb主机功能的装置(如手机/桌上型计算机/笔电等)可能需要连接usb集线器(hub)来连结其他的周边usb装置。然而,以usb集线器的原始设计而言,usb集线器具有一个上游端口(upstreamport)来连接至主机,且具有多个下游端口(downstreamport)来连接其他周边usb装置。但usb集线器的下游端口只具备主机对装置的功能,并不具备主机对主机的功能。但随着移动装置的快速发展,主机对主机的运作模式已成必然趋势。

亦即,需要有一种新的usb集线器设计,能同时支持“主机对主机”与“主机对装置”的运作模式。当处在主机对主机模式时,移动装置连接至usb集线器设计的下游端口,但移动装置仍是以主机的角色在运作。



技术实现要素:

根据本申请一例,提出一种通用串行总线(usb)集线器,该usb集线器包括:一上游端口,耦接至一第一主机;一第一usb装置控制单元,耦接于该上游端口,用以进行分组格式转换;一先入先出电路,耦接至该第一usb装置控制单元,用以暂存由该第一主机所传来的数据;一第二usb装置控制单元,耦接至该先入先出电路,用以进行分组格式转换;以及多个下游端口,耦接至该第二usb装置控制单元。当这些下游端口的任一下游端口耦接至一移动装置时,如果该第一主机下令该移动装置从一装置角色切换至一主机角色,该移动装置暂时断开与该usb集线器之间的连接,而且,该第一主机下令该usb集线器以切换其内部绕线路径,当该移动装置切换至该主机角色之后,该第一主机仍扮演该主机角色,该第一usb装置控制单元扮演该装置角色,该移动装置扮演该主机角色,该第二usb装置控制单元扮演装置角色,该第一主机与该第一usb装置控制单元为成对,该移动装置与该第二usb装置控制单元为成对。

根据本申请另一例,提出一种通用串行总线(usb)集线器,该usb集线器包括:一上游端口,耦接至一第一主机;一集线器功能模块,耦接至该上游端口,用以执行一集线器功能;一主机对主机功能模块,耦接至该上游端口,当连接至该usb集线器的一移动装置执行一装置角色时,通过该集线器功能模块的控制,该第一主机与该移动装置之间的信号流经一旁通路径或该主机对主机功能模块,该主机对主机功能模块实现一“主机对主机模式”;至少一控制模块,耦接至该上游端口,控制相连接的至少一装置;一虚拟集线器功能单元,耦接至该集线器功能模块、该主机对主机功能模块与该至少一控制模块,该虚拟集线器功能单元支持一虚拟集线器功能且具有存储usb地址和相关装置之间关系的功能,该虚拟集线器功能单元存有多个虚拟usb地址;以及多个下游端口,耦接至该第二usb装置控制单元。根据该第一主机所指定的一usb地址,该虚拟集线器功能单元指定该集线器功能模块、该主机对主机功能模块与该至少一控制模块的各个虚拟usb地址。

为了对本发明的上述及其他方面有更佳的了解,下文特举实施例,并配合附图详细说明如下。

附图说明

图1显示根据本申请一实施例的usb集线器的功能方块示意图。

图2显示根据本申请一实施例的usb集线器的功能方块图。

图3显示根据本申请实施例的fifo电路的功能方块图。

图4a至图4c显示根据本申请实施例的应用端示意图。

【符号说明】

110:第一主机120:移动装置

130:usb集线器131:上游端口

132-134:下游端口141:集线器功能模块

142:主机对主机功能模块143:第一控制模块

144:第二控制模块151与152:接口

by:旁通路径

200:usb集线器210:重复电路

212:传输转译电路214:绕线逻辑电路

216:状态机器

218、224:usb装置控制单元

220:虚拟集线器功能单元222:先入先出电路

226:存储控制单元228:音效控制单元

242:上游端口244_1-244_n:下游端口

246_1-246_2:接口p1、p2、p3:路径

302与304:fifo306、308、312:多工器

310:直接存储器存取(dma)电路

320:缓冲器322:中央处理器(cpu)

具体实施方式

本说明书的技术用语参照本技术领域的习惯用语,如本说明书对部分用语有加以说明或定义,该部分用语的解释以本说明书的说明或定义为准。本公开的各个实施例分别具有一或多个技术特征。在可能实施的前提下,本领域技术人员可选择性地实施任一实施例中部分或全部的技术特征,或者选择性地将这些实施例中部分或全部的技术特征加以组合。

现请参照图1,显示根据本申请一实施例的usb集线器的功能方块示意图。如图1所示,usb集线器130包括:上游端口131、多个下游端口132、集线器功能模块141、主机对主机功能模块142、第一控制模块143、第二控制模块144与接口151与152。第一主机(例如是桌上型计算机、笔记型计算机、车载系统等)110通过usb接口连接至usb集线器130的上游端口131,而移动装置(例如是智能手机等)120通过usb接口连接至usb集线器130的下游端口132。

集线器功能模块141用以执行一般的集线器功能(亦即,例如主机对装置之间的信号传输)。

当连接至usb集线器130的移动装置(例如是智能手机等)120执行装置角色时,通过集线器功能模块141的控制,第一主机110与移动装置120之间的信号乃是流经旁通路径by而不流经主机对主机功能模块142。相反地,当连接至usb集线器130的移动装置(例如是智能手机等)120从装置角色切换至主机角色时,通过集线器功能模块141的控制,第一主机110与移动装置120之间的信号乃是流经主机对主机功能模块142而不流经旁通路径by。也就是说,在本申请实施例中,“主机对主机模式”可由主机对主机功能模块142实现,其细节将于底下说明。

第一控制模块143与第二控制模块144通过接口151与152而控制相连接的装置。例如,第一控制模块143可以具有存储装置控制的功能,而第二控制模块144可以具音效装置控制的功能。虽然图1显示出2个控制模块143与144,但本申请并不受限于此。在本申请其他可能实施例中,集线器130可以包括更多数量的控制模块。

现请参照图2,其显示根据本申请一实施例的usb集线器200的功能方块图。如图2所示,根据本申请一实施例的usb集线器200包括:重复电路(repeater)210、传输转译电路(transactiontranslator)212、绕线逻辑电路(routinglogic)214、状态机器(statemachine)216、usb装置控制单元218、虚拟集线器功能单元220、fifo(firstinfirstoutput,先入先出)电路222、usb装置控制单元224、存储控制单元226、音效控制单元228、上游端口242,多个下游端口244_1-244_n(n为正整数),以及接口246_1与246_2。

重复电路210用以复制由第一主机所传来的信号/数据,并传送给传输转译电路212或绕线逻辑电路214。重复电路210的架构与其细节在此可不多做说明。

传输转译电路212控制掌握高速与低速/全速的数据交易,实现上游端口与下游端口不同速时的数据分组转换,以及执行其他的功能以确保总线上的不同速度数据可以被正确传送。当进行传输转译时,由第一主机所传来的分组流经重复电路210与传输转译电路212,而到达绕线逻辑电路214;当无需进行传输转译时,由第一主机所传来的分组流经重复电路210,而到达绕线逻辑电路214。传输转译电路212的架构与其细节在此可不多做说明。

绕线逻辑电路214用以负责数据的绕线,以让数据在上游端口242与下游端口244_1-244_n之间传输。绕线逻辑电路214的架构与其细节在此可不多做说明。

状态机器216可解码由第一主机所传来信号/数据,来决定该信号/数据该传给哪个下游端口。状态机器216可由硬件加固件所组成。状态机器216的架构与其细节在此可不多做说明。

usb装置控制单元218可由硬件或固件所执行。当由第一主机所传来的分组要送至不同usb类型的usb周边装置时,usb装置控制单元218对该分组进行格式转换。同样地,当由不同usb类型的usb周边装置所传来的分组要送至第一主机时,usb装置控制单元218对该分组进行格式转换。usb装置控制单元218的架构与其细节在此可不多做说明。

虚拟集线器功能单元220用以让usb集线器能支持复合装置(compounddevice)和/或综合装置(compositedevice),其细节将于底下说明。另外,在本申请实施例中,虚拟集线器功能单元220支持虚拟集线器(virtualhub)功能且具有指定虚拟usb地址的功能。虚拟集线器功能单元220内存有多个虚拟usb地址。状态机器216、usb装置控制单元218与虚拟集线器功能单元220可组成集线器控制单元(hubcontrolunit)。

fifo(先入先出)电路222介于usb装置控制单元218与224之间(或者是介于usb装置控制单元218与存储控制单元226之间,或者是介于usb装置控制单元218与音效控制单元228之间),用以暂存由第一主机和/或usb周边装置和/或移动装置所传来的数据,并传往第一主机和/或usb周边装置和/或移动装置。其细节将于底下参考图3说明。

usb装置控制单元224可由硬件或固件所执行。usb装置控制单元224具有跟usb装置控制单元218相同或相似的功能。此外,在本申请实施例中,当移动装置120从装置角色切换至主机角色时,usb装置控制单元218与224皆扮演装置角色(其中,第一主机110与usb装置控制单元218是一对的,而移动装置与usb装置控制单元224是一对的),以实现本申请实施例的主机对主机模式。细言之,假设移动装置120连接到下游端口244_1。当移动装置120扮演装置角色时,第一主机110与移动装置120之间的信号路径为:上游端口242、重复电路210(和/或传输转译电路212)、绕线逻辑电路214与下游端口244_1。

当第一主机110下令让移动装置120从装置角色切换至主机角色时,移动装置120暂时断开与集线器200之间的连接,而且,第一主机110亦下命令给usb集线器200。响应于此命令,绕线逻辑电路214切换其内部绕线路径。当移动装置120切换至主机角色之后,第一主机110与移动装置120之间的信号路径为:上游端口242、重复电路210、usb装置控制单元218、先入先出电路222、usb装置控制单元224、绕线逻辑电路214与下游端口244_1。也就是说,当移动装置120切换至主机角色之后,第一主机110仍扮演主机角色,usb装置控制单元218仍扮演装置角色;另一方面,移动装置120扮演主机角色,usb装置控制单元224仍扮演装置角色。藉此,本申请实施例可以达成主机对主机模式。

存储控制单元226可以是记忆卡卡的读卡机控制器,用于控制外接至usb集线器200的接口246_1的记忆卡卡。或者,存储控制单元226可以是外接硬盘控制器,用于控制外接至usb集线器200的接口246_1的硬盘机。当然,本申请并不受限于此。存储控制单元226的架构与其细节在此可不多做说明。

音效控制单元228可用于控制外接至usb集线器200的接口246_2的周边音效装置(如喇叭或麦克风等)。音效控制单元228的架构与其细节在此可不多做说明。

上游端口242可连接至第一主机(如图1的第一主机110)。这些下游端口244_1-244_n可连接至usb周边装置(例如但不受限于,usb随身碟、usb外接硬盘等)。此外,这些下游端口244_1-244_n之任一可以连接至移动装置120。

现请再次参考图1与图2。在图1中,集线器功能模块141例如由重复电路210、传输转译电路212与绕线逻辑电路214所实现。主机对主机功能模块142例如由usb装置控制单元218、先入先出电路222与usb装置控制单元224所实现。第一控制模块143例如由usb装置控制单元218、先入先出电路222与存储控制单元226所实现。第二控制模块144例如由usb装置控制单元218、先入先出电路222与音效控制单元228所实现。也就是说,在本申请实施例中,集线器功能模块141、主机对主机功能模块142、第一控制模块143与第二控制模块144可彼此共享某些单元。

usb装置控制单元218、fifo(先入先出)电路222与usb装置控制单元224可执行usb集线器200的主机对主机模式或者是内建数据缓冲。本申请实施例如何实现“主机对主机模式”已于上面说明。

在本申请实施例中,当要将移动装置的角色从装置切换成主机时,第一主机送出自定义指令(vendorcommand)给usb集线器200,以改变usb集线器200的内部信号路径(如上述般),来实现“主机对主机功能”,但不影响其他正在传输中的下游端口244_1-244_n和/或上游端口242。

或者是,在本申请实施例的usb集线器200中,usb装置控制单元224可以自动判定连结到任一下游端口244_1-244_n的移动装置的usb装置描述元(usbdevicedescriptor)(如果该usb装置描述元指示该移动装置可以扮演主机角色)来决定是否需要从主机对装置传输模式切换成主机对主机传输模式(改变usb集线器200的内部信号路径,如上述般)并启动装置模式转换,但不影响其他正在传输中的下游端口244_1-244_n和/或上游端口242。

举例而言,假设下游端口244_1连接至移动装置,而下游端口244_2连接至usb随身碟。当移动装置仍当成装置角色时,在绕线逻辑电路214内(请参考图2),移动装置的信号走路径p1,而usb随身碟的信号走路径p2。当移动装置切换成主机角色时,在绕线逻辑电路214内(请参考图2),移动装置的信号改走路径p3,而usb随身碟的信号仍走路径p2。也就是说,在本申请实施例中,当第一主机下令将移动装置的角色从装置角色切换成主机角色时,不会影响到其他下游端口的数据传输。

图3显示根据本申请实施例的fifo电路222的功能方块图。如图3所示,fifo电路222包括:fifo302与304,多工器306与308、dma直接存储器存取(directmemoryaccess)电路310与多工器312。fifo302耦接于usb装置控制单元218与224之间。另外,fifo304通过多工器306与308而分别耦接至usb装置控制单元218与224。

在本申请实施例中,fifo电路222支持数据快速传输路径,能让数据可以在usb装置控制单元218、fifo302、多工器312与usb装置控制单元224(和/或存储控制单元226和/或音效控制单元228)之间快速传输,经由这条路径的数据不会被中央处理器322修改。

另外,在本申请实施例中,如果数据可能需要由中央处理器322进行处理后,才能传给另一端,则数据传输流程如后。底下以数据从第一主机传往移动装置为例做说明,本领域技术人员当可依而推论出知数据从移动装置传往第一主机的流程。第一主机所送出的数据通过usb装置控制单元218与多工器306而写入到fifo304。接着,dma电路310将数据从fifo304与多工器308而暂存至第一主机110的缓冲器320。当第一主机110的中央处理器(cpu)322将缓冲器320内的数据处理/修改后,中央处理器(cpu)322告知dma电路310。由dma电路310将修改后/处理后的数据从缓冲器320经过多工器306而写入至fifo304,再由fifo304通过多工器308,并通过多工器312来将fifo304内的数据送给usb装置控制单元224以传给移动装置,或者送给存储控制单元226以传给存储装置(未示出),或者送给音效控制单元228以传给音效装置(未示出)。

或者是,在本申请实施例中,如果cpu322想要传数据给移动装置或存储装置或音效装置的话,cpu322可以将数据先存在缓冲器320里,然后通过dma电路310、多工器306而暂存至fifo304,之后,通过多工器312来将fifo304内的数据送给usb装置控制单元224以传给移动装置,或者送给存储控制单元226以传给存储装置(未示出),或者送给音效控制单元228以传给音效装置(未示出)。

或者,在本申请实施例中,数据由第一主机通过usb装置控制单元218与多工器306写入到fifo304,接着,dma电路310将数据从多工器308存进到缓冲器320,等到cpu322修改完/处理完数据后,cpu322告知dma电路310,dma电路310将修改后/处理后的数据从缓冲器320读出,并经过多工器306而写入至fifo304,但不传给usb装置控制单元224、存储控制单元226与音效控制单元228。该修改后/处理后数据存在fifo304中,可以等日后有需要才读出。

在本申请实施例中,移动装置(如智能手机)可当主机也可当装置。

现请参考图4a至图4c,其显示根据本申请实施例的应用端示意图。在图4a应用端示意中,对于第一主机110而言,经由usb集线器200的回报,第一主机110可以得知“集线器功能模块141、主机对主机功能模块142、第一控制模块143与第二控制模块144属于同一层,亦即,属于“同一综合装置(compositedevice)”。在实现图4a应用端示意时,第一主机会指定usb地址(在此例如但不受限于,usb地址为5)给此一综合装置(此一综合装置包含集线器功能模块141、主机对主机功能模块142、第一控制模块143与第二控制模块144)。亦即,集线器功能模块141、主机对主机功能模块142、第一控制模块143与第二控制模块144共用usb地址5。

当usb集线器200接收到由第一主机所传来的指令/数据时,集线器功能模块141检查该指令/数据的usb地址中的“接口(interface)字段”,以决定该指令/数据要传送至集线器功能模块141、主机对主机功能模块142、第一控制模块143与第二控制模块144的哪一个。

相似地,在图4b应用端示意中,对于第一主机110而言,集线器功能模块141、第一控制模块143与第二控制模块144属于同一层,亦即,属于同一综合装置。在逻辑上而言,主机对主机功能模块142则被第一主机110视为接到集线器功能模块141的下游端口。

在实现图4b应用端示意时,第一主机会指定usb地址(在此例如但不受限于,usb地址为5)给上层综合装置,该上层综合装置包含集线器功能模块141、第一控制模块143与第二控制模块144。亦即,集线器功能模块141、第一控制模块143与第二控制模块144共用usb地址5。而且,第一主机会指定usb地址(在此例如但不受限于,usb地址为6)给主机对主机功能模块142。usb集线器200的虚拟集线器功能单元220可存储usb地址5-6、和其相对应装置之间的关系。

当usb集线器200接收到由第一主机所传来的指令/数据时,usb集线器200会检查该指令/数据的usb地址。如果该指令/数据的usb地址是6,则usb集线器200将该指令/数据传送至主机对主机功能模块142,如果该指令/数据的usb地址是5,则usb集线器200不将该指令/数据传送至下一层,而是传给上层综合装置。另外,如果该指令/数据的usb地址是5,usb集线器200会检查该指令/数据中的“接口(interface)字段”,以决定该指令/数据要传送至集线器功能模块141、第一控制模块143与第二控制模块144之一。

相似地,在图4c应用端示意中,对于第一主机110而言,集线器功能模块141自己一层,而主机对主机功能模块142、第一控制模块143与第二控制模块144则属于同一层(同一综合装置)。在逻辑上,第一主机110将此综合装置视为接到集线器功能模块141的下游端口。在实现图4c应用端示意时,第一主机会指定usb地址(在此例如但不受限于,usb地址为5)给集线器功能模块141。而且,第一主机会指定usb地址(在此例如但不受限于,usb地址为6)给下层综合装置,此综合装置包含主机对主机功能模块142、第一控制模块143与第二控制模块144。usb集线器200的虚拟集线器功能单元220会存储usb地址5-6,和其相对应装置之间的关系。

当usb集线器200接收到由第一主机所传来的指令/数据时,usb集线器200会检查该指令/数据的usb地址。如果该指令/数据的usb地址是5,则集线器功能模块141接收该指令/数据。另外,如果该指令/数据的usb地址是6,usb集线器200会检查该指令中的“接口字段”,以决定该指令/数据要送给主机对主机功能模块142、第一控制模块143与第二控制模块144的哪一个。

亦即,在应用情况下,在移动装置从usb装置模式切换成usb主机模式之后,移动装置可以支持第一主机,而第一主机依然维持usb主机模式。如此一来,第一主机可以通过usb集线器200的其他下游端口连结其他usb周边装置,以进行第一主机与其他usb周边装置之间的传输、应用等。移动装置支持第一主机是指,例如第一主机为车载系统时,移动装置可以将画面显示于第一主机的屏幕上,并让使用者通过在第一主机上操作,而来操作移动装置,就如同使用者在直接操作移动装置般。例如,使用者可以在第一主机上操作,以移动装置所提供的路线指引、拨打电话、收发讯息和聆听音乐等功能。

综上所述,在本申请实施例中,根据第一主机所送出的自定义指令,usb集线器200可以切换内部的信号路径,以支持主机对主机功能,且此内部信号路径切换不影响其他传输中的信号路径。

此外,如上述般,通过usb集线器200的虚拟usb集线功能(存储usb地址),可以支持多种应用端情况(如图4a至图4c),增加使用上的弹性。

综上所述,虽然本发明已以实施例公开如上,然其并非用以限定本发明。本发明所属领域技术人员在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视所附权利要求书界定范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1