CN103473207B - 一种usb集线器装置 - Google Patents
一种usb集线器装置 Download PDFInfo
- Publication number
- CN103473207B CN103473207B CN201310452962.6A CN201310452962A CN103473207B CN 103473207 B CN103473207 B CN 103473207B CN 201310452962 A CN201310452962 A CN 201310452962A CN 103473207 B CN103473207 B CN 103473207B
- Authority
- CN
- China
- Prior art keywords
- port
- instruction
- host computer
- controller
- usb
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Power Sources (AREA)
Abstract
本发明公开了一种USB集线器装置,属于电子设备技术领域。该装置包含至少一个控制器、至少一个USB HUB和至少一组端口控制模块,其中的一个USB HUB的输入端口与上位机连接,输出端口外接一组USB设备,其中的一个控制器的输入口与上位机连接或者与上位机连接的USB HUB的输出端口连接,其中的一个控制器的控制输出口经过端口控制模块与所述外接的一组USB设备连接。所述USB HUB,用于为所述装置扩展USB端口;所述控制器,用于接收上位机下发的指令,根据接收到的指令执行对端口控制模块的控制操作,以及向上位机返回接收到的指令的响应结果;所述端口控制模块,用于控制与其直接相连的USB设备的上下电。本发明可以精确控制USB集线器的端口的上下电。
Description
技术领域
本发明属于电子设备技术领域,尤其涉及一种USB集线器装置。
背景技术
USB集线器,又称为USB HUB,是一种可以将一个USB接口转换为多个(通常为4个),并可以使这些接口同时使用的装置。实际应用中,通常采用级联方式即采用多层的USB HUB结构实现扩展出多个USB端口。
现有的USB集线器装置是装置上电或下电则装置上所有的端口上电或下电,不能实现控制具体端口的上下电,不能满足特定场合下需求,灵活性、通用性不强。
发明内容
为解决现有技术的问题,本发明提出了一种USB集线器装置。
本发明采用的技术方案是:一种USB集线器装置,包含至少一个控制器、至少一个USB HUB和至少一组端口控制模块,其中的一个USB HUB的输入端口与上位机连接,输出端口外接一组USB设备,其中的一个控制器的输入口与上位机连接或者与上位机连接的USBHUB的输出端口连接,其中的一个控制器的控制输出口经过端口控制模块与所述外接的一组USB设备连接;
所述USB HUB,用于为所述装置扩展USB端口;
所述控制器,用于接收上位机下发的指令,根据接收到的指令执行对端口控制模块的控制操作,以及向上位机返回接收到的指令的响应结果;
所述端口控制模块,用于控制与其直接相连的USB设备的上下电。
当装置中包含的所述控制器的个数为一个时,所述与上位机连接或者与上位机连接的USB HUB的输出端口连接的控制器接收上位机下发的指令;当包含的所述控制器的个数为两个或两个以上时,除去所述与上位机连接或者与上位机连接的USB HUB的输出端口连接的控制器之外的控制器接收上位机下发的指令。
当包含的所述控制器的个数为一个时,所述指令包括选择线程指令、获取HUB状态指令和端口上下电指令;
当接收到的所述指令是选择线程指令时,控制器根据所述选择线程指令选择工作线程,生成并保存端口编号列表,并向上位机返回所述选择线程指令的响应结果;当接收到的所述指令是获取HUB状态指令时,控制器根据所述获取HUB状态指令中包含的逻辑端口编号从保存的端口编号列表中得到物理端口编号,根据所述物理端口编号确定当前端口,控制器获取当前端口的状态信息,向上位机返回包含所述状态信息的响应结果;当接收到的所述指令是端口上下电指令时,控制器根据所述上下电指令中包含的逻辑端口编号从保存的所述端口编号列表中得到物理端口编号,根据所述物理端口编号确定当前端口,通过控制所述端口控制模块对确定的当前端口上电或下电,并向上位机返回所述端口上下电指令的响应结果,所述端口编号列表是一张保存有所述外接一组USB设备的USB HUB的输出端口的逻辑端口编号、物理端口编号以及逻辑端口编号与物理端口编号对应关系的列表。
当包含的所述控制器的个数为两个或两个以上时,所述指令包括选择线程指令、获取HUB状态指令、端口上电指令和端口下电指令;
当接收到的所述指令是选择线程指令时,控制器根据所述选择线程指令选择工作线程,生成并保存端口编号列表,并向上位机返回所述选择线程指令的响应结果;当接收到的所述指令是获取HUB状态指令时,控制器根据所述获取HUB状态指令中包含的逻辑端口编号从保存的所述端口编号列表中得到物理端口编号,根据所述物理端口编号确定当前端口,控制器获取当前端口的状态信息,向上位机返回包含所述状态信息的响应结果;当接收到的所述指令是端口上电指令时,控制器根据所述端口上电指令中包含的逻辑端口编号从保存的所述端口编号列表中得到物理端口编号,根据所述物理端口编号确定当前端口,通过控制所述端口控制模块给当前端口上电,并向上位机返回所述端口上电指令的响应结果;当接收到的所述指令是端口下电指令时,控制器根据所述端口下电指令中包含的逻辑端口编号从保存的所述端口编号列表中得到物理端口编号,根据所述物理端口编号确定当前端口,通过控制所述端口控制模块给当前端口下电,并向上位机返回所述端口下电指令的响应结果,所述端口编号列表是一张保存有所述外接一组USB设备的USB HUB的输出端口的逻辑端口编号、物理端口编号以及逻辑端口编号与物理端口编号对应关系的列表。
当包含的所述控制器的个数为一个时,所述指令包括配置指令和端口上下电指令;
当接收到的所述指令是配置指令时,控制器根据所述配置指令中包含的上位机指定配置方式对所述装置进行配置并保存配置信息,向上位机返回所述配置指令的响应结果;当接收到的所述指令是端口上下电指令时,控制器根据所述端口上下电指令和保存的所述配置信息确定当前端口,通过控制所述端口控制模块对当前端口上电或下电,并向上位机返回所述端口上下电指令的响应结果。
当包含的所述控制器的个数为两个或两个以上时,所述指令包括配置指令、端口上电指令和端口下电指令;
当接收到的所述指令是配置指令时,控制器根据所述配置指令中包含的上位机指定配置方式对所述装置进行配置并保存配置信息,向上位机返回所述配置指令的响应结果;当接收到的所述指令是端口上电指令时,控制器根据所述端口上电指令和保存的所述配置信息确定当前端口,通过控制所述端口控制模块给当前端口上电,并向上位机返回所述端口上电指令的响应结果;当接收到的所述指令是端口下电指令时,控制器根据所述端口下电指令和保存的所述配置信息确定当前端口,通过控制所述端口控制模块给当前端口下电,并向上位机返回所述端口下电指令的响应结果。
上述指令还包括测试端口电流指令和设置电流上限指令;
当接收到的所述指令是测试端口电流指令时,控制器确定当前端口,检测当前端口的电流,将检测到的电流值与保存的第一数值进行比较得到测试结果,向上位机返回包含所述测试结果的响应结果;
当接收到的所述指令是设置电流上限指令时,控制器设置端口电流上限为第一数值并保存,向上位机返回包含设置结果的响应结果。
所述装置还包括至少一个模拟开关;
所述输出端口外接一组USB设备具体为所述输出端口一起经过一个或者分别经过一个模拟开关后外接一组USB设备,所述模拟开关还与一个控制器的模拟输出口连接;
所述模拟开关,用于建立所述USB HUB的一个输出端口与所述外接的一组USB设备中的一个USB设备之间的通道。
所述模拟开关的每一个输出端口通过一个二极管与所述外接的一组USB设备中的一个USB设备相连。
装置中的所述USB HUB采用级联方式扩展USB端口,所述级联方式为:所述与上位机连接的USB HUB的输出端口与至少一个USB HUB的输入端口连接。
所述装置还包括一个拨码开关和一个显示管;
当所述其中的一个控制器的输入口与上位机连接时,所述拨码开关和所述与上位机连接的USB HUB连接,用于用户手动确定当前与上位机连接上电的装置;当所述其中的一个控制器的输入口与所述与上位机连接的USB HUB连接时,所述拨码开关和该控制器连接,用于用户手动确定当前与上位机连接上电的装置;所述控制器还用于向上位机返回拨码开关确定的当前与其连接上电的装置的名称或ID号;所述显示管与所述拨码开关连接,用于显示当前与上位机连接的上电的装置的名称或ID号。
所述装置还包括至少一组状态指示灯,每一组状态指示灯与一个控制器连接,所述状态指示灯用于对所述外接一组USB设备的USB HUB的输出端口的工作状态进行提示。
所述控制器根据所述选择线程指令选择工作线程,生成并保存端口编号列表,并向上位机返回所述选择线程指令的响应结果具体包括:
步骤3-1:解析所述选择线程指令,判断第三字节是否为第一预设值,是则执行步骤3-2,否则执行步骤3-3;
步骤3-2:选择单线程工作方式且当前线程数为第一预设值,根据当前线程数生成并保存端口编号列表,然后执行步骤3-6;
步骤3-3:判断第四字节,若第四字节为第二预设值,则执行步骤3-4;若第四字节为第三预设值,则执行步骤3-5;
步骤3-4:选择多线程工作方式且当前线程数为第二预设值,根据当前线程数生成并保存端口编号列表;然后执行步骤3-6;
步骤3-5:选择多线程工作方式且当前线程数为第三预设值,根据当前线程数生成并保存端口编号列表;然后执行步骤3-6;
步骤3-6:向上位机返回选择线程指令的响应结果。
本发明取得的有益效果是:本发明提供的一种USB集线器装置,可以实现精确控制USB集线器的具体端口的上下电并检测到端口的电流值,提高了装置的通用性、灵活性。
附图说明
图1为本发明实施例2提供的一种USB集线器装置结构示意图;
图2是本发明实施例2提供的装置结构中部分电路结构的示意图;
图3为本发明实施例3提供的一种USB集线器装置结构示意图;
图4是本发明实施例3提供的装置结构中部分电路结构的示意图;
图5为本发明实施例4提供的一种USB集线器装置结构示意图;
图6为本发明实施例5提供的一种USB集线器装置结构示意图;
图7为本发明实施例6提供的一种USB集线器装置结构示意图;
图8为本发明实施例7提供的一种USB集线器装置结构示意图;
图9为本发明实施例8提供的一种USB集线器装置的工作方法流程图;
图10是图9中步骤204-207的细化图;
图11是本发明实施例9提供的一种USB集线器装置的工作方法流程图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案作进一步解释。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。需说明的是以下实施例中采用的“主HUB”、“一级子HUB”和“二级子HUB”均是用于指代USB集线器(USB HUB),只是为了对本发明提出的装置的结构有更直观的理解采用了不同的名称命名,具体的,主HUB是指与上位机直接相连的USB HUB,一级子HUB是指与主HUB直接相连的USB HUB,与一级子HUB直接相连的USB HUB称为二级子HUB。
实施例1
本发明实施例1提供了一种USB集线器装置,包含至少一个控制器、至少一个USBHUB和至少一组端口控制模块,其中的一个USB HUB的输入端口与上位机连接,输出端口外接一组USB设备,其中的一个控制器的输入口与上位机连接或者与上位机连接的USB HUB的输出端口连接,其中的一个控制器的控制输出口用于经过端口控制模块与所述外接的一组USB设备连接;
所述USB HUB,用于为所述装置扩展USB端口;
所述控制器,用于接收上位机下发的指令,根据接收到的指令执行对端口控制模块的控制操作,以及向上位机返回接收到的指令的响应结果;
所述端口控制模块,用于控制与其直接相连的USB设备的上下电。
所述装置还包括至少一组状态指示灯,每一组状态指示灯与一个控制器连接。所述状态指示灯用于对装置的外接USB设备的USB端口的工作状态进行提示,为用户准确定位到操作过程中出现问题的USB设备。
实施例2
本发明实施例2提供了一种USB集线器装置,具体的,以实施例1中所述装置包含1个控制器、1个USB HUB、一组状态指示灯和一组端口控制模块为例,该装置可以实现控制USB HUB上连接的一组(4个)USB设备顺序上下电或者同时上下电。
该装置的结构如图1所示:USB HUB的输入端口与上位机连接,输出端口用于外接一组USB设备,控制器的输入口与上位机连接,控制器的控制输出口经过一组端口控制模块与所述外接的一组USB设备连接,控制器的控制输出口还与一组状态指示灯连接。所述一组USB设备包含的设备个数与一组端口控制模块包含的端口控制模块的个数以及一组状态指示灯包含的指示灯的个数相等。
具体的,以一般的USB HUB有4个输出端口为例,则在图1所示结构中,USB HUB的4个输出端口外接4个USB设备,所述控制器可以有多个控制输出口,在图1所示结构中,利用控制器的4个控制输出口分别经过一个端口控制模块与一个USB设备连接,即一组端口控制模块具体为4个端口控制模块。
其中,USB HUB的4个输出端口外接4个USB设备,控制器的4个控制输出口分别经过一个端口控制模块与外接的其中一个USB设备连接,所述控制器以HID(人机接口设备)为例,对于这部分结构如图2中所示给出了具体的电路图:
USB HUB有一个输入口(D+/D-)和四个输出口(D1+/D1-、D2+/D2-、D3+/D3-、D4+/D4-),四个输出口(D1+/D1-、D2+/D2-、D3+/D3-、D4+/D4-)分别与4个USB设备(USB1至USB4)直接相连;本实施例中的HID的4个控制输出口(COL1至COL4)分别经一个端口控制模块与外接的一个USB设备的电源口(VCC)相连。
进一步的,HID的输入口(D+/D-)还可以与USB HUB的一个输出端口连接,则USBHUB剩余3个输出端口用来连接3个USB设备,相应的,利用控制器的3个控制输出口分别经过一个端口控制模块与一个USB设备连接。
本实施例提出的装置还可以包括一个拨码开关和一个显示管;
当所述控制器的输入口与上位机连接时,所述拨码开关和USB HUB连接,用于用户手动确定当前与上位机连接上电的装置;
当所述控制器的输入口与USB HUB的一个输出端口连接时,所述拨码开关和所述控制器连接,用于用户手动确定当前与上位机连接上电的装置;
上述两种情况下,所述控制器还用于向上位机返回拨码开关确定的当前与其连接上电的装置的名称或ID号;
所述显示管与所述拨码开关连接,用于显示当前与上位机连接上电的装置的名称或ID号。
实施例3
本发明实施例3提供了一种USB集线器装置,具体的,以实施例1中所述装置包含1个控制器、1个USB HUB、1个模拟开关、一组状态指示灯和一组端口控制模块为例,该装置可以实现控制USB HUB上连接的一组(N个)USB设备顺序上下电或者同时上下电。
该装置的结构如图3所示:USB HUB的输入端口与上位机连接,输出端口用于经过一个模拟开关外接一组USB设备,控制器的输入口与上位机连接,控制器的控制输出口经过一组端口控制模块与所述外接的一组USB设备连接,控制器的控制输出口还与一组状态指示灯连接,控制器的模拟输出口与模拟开关连接。所述一组USB设备包含的设备个数与一组端口控制模块包含的端口控制模块的个数以及一组状态指示灯包含的指示灯的个数相等。
具体的,以一般的USB HUB有4个输出端口为例,USB HUB的4个输出端口一起经一个模拟开关与一组USB设备连接,所述模拟开关可以有N个输出端口即经过模拟开关可以扩展出N个USB端口,所述一组USB设备可以为N个USB设备,一组端口控制模块可以为N个端口控制模块,所述控制器可以有N个控制输出口和一组(M个)模拟输出口,在图3所示结构中,利用控制器的N个控制输出口分别经过一个端口控制模块与一个USB设备连接,利用控制器的一组模拟输出口与一个模拟开关连接。
其中,USB HUB的4个输出端口一起经一个模拟开关与一组(N个)USB设备连接,控制器的N个控制输出口分别经过一个端口控制模块与一个USB设备连接,控制器的一组(M个)模拟输出口与一个模拟开关连接,所述控制器以HID为例,对于这部分结构如图4所示给出了具体的电路图:
USB HUB有一个输入端口(D+/D-)和四个输出端口(D1+/D1-、D2+/D2-、D3+/D3-、D4+/D4-),其中四个输出端口一起接到一个模拟开关上,模拟开关有M个控制端口(SEC21至SEC2M)和N个输出端口(D21+/D21-至D2n+/D2n-),模拟开关的M个控制端口(SEC21至SEC2M)与HID的M个模拟输出口(COLSEC21至COLSEC2M)相连,模拟开关的N个输出端口(D21+/D21-至D2n+/D2n-)可以接N个USB设备(USB1至USBn),HID可以有多组控制输出口,每组有N个端口,本实施例中仅用到其中一组(COL21至COL2n),HID的控制输出口(COL21至COL2n)分别经一个端口控制模块与模拟开关上连接的一个USB设备的电源口(VCC)相连。
或者所述装置还可以采用4个模拟开关,所述控制器可以有4组(每组M个)模拟输出口,利用控制器的4组模拟输出口分别与4个模拟开关连接,则USB HUB的4个输出端口分别经一个模拟开关与一组(N个)USB设备连接,即所述装置可以实现控制USB HUB上连接的一组(4*N个)USB设备顺序上下电或者同时上下电。
进一步的,HID的输入口(D+/D-)还可以与USB HUB的一个输出端口连接,则USBHUB剩余3个输出端口一起经一个模拟开关与一组USB设备连接或者USBHUB的3个输出端口分别经一个模拟开关分别与一组USB设备连接,相应的,利用控制器的3个控制输出口分别经过一个端口控制模块与一个USB设备连接。
本实施例提出的装置还可以包括一个拨码开关和一个显示管;
当所述控制器的输入口与上位机连接时,所述拨码开关和USB HUB连接,用于用户手动确定当前与上位机连接上电的装置;
当所述控制器的输入口与USB HUB的一个输出端口连接时,所述拨码开关和所述控制器连接,用于用户手动确定当前与上位机连接上电的装置;
上述两种情况下,所述控制器还用于向上位机返回拨码开关确定的当前与其连接上电的装置的名称或ID号;
所述显示管与所述拨码开关连接,用于显示当前与上位机连接上电的装置的名称或ID号。
实施例4
在实施例1的基础上,以采用5个控制器、7个USB HUB、4组端口控制模块、4个模拟开关,且控制器采用HID,USB HUB有4个输出端口为例。本实施例4提供了一种USB集线器装置,本实施例提供的装置以采用级联的三层HUB结构扩展出4*N个USB端口,实现控制装置上连接的4组(每组N个)USB设备顺序上下电或者同时上下电,如图5所示:
一种USB集线器装置的组成部分包括:1个主集线器(主HUB6)、5个控制器(HID1、HID2、HID3、HID4、HID5)、6个子集线器(一级子HUB9、一级子HUB10、二级子HUB11、二级子HUB12、二级子HUB13、二级子HUB14)、1个拨码开关7、1个显示管8、4个模拟开关(15、16、17、18)和4组端口控制模块(第一组端口控制模块19、第二组端口控制模块20、第三组端口控制模块21、第四组端口控制模块22),其中,主HUB6的输入端口与上位机相连,一个输出端口与HID1的输入口相连,还有两个输出端口分别连接一级子HUB9和一级子HUB10,HID1的一个控制输出口与拨码开关7相连,显示管8与拨码开关7相连;
一级子HUB9上连接有二级子HUB11和二级子HUB12,二级子HUB11的两个输出端口分别与HID2和模拟开关15连接,HID2的模拟输出口与模拟开关15相连,HID2的控制输出口与第一组端口控制模块19相连;二级子HUB12的两个输出端口分别与HID3和模拟开关16连接,HID3的模拟输出口与模拟开关16相连,HID3的控制输出口与第二组端口控制模块20相连;
一级子HUB10上连接有二级子HUB13和二级子HUB14,二级子HUB13的两个输出端口分别与HID4和模拟开关17连接,HID4的模拟输出口与模拟开关17相连,HID4的控制输出口与第三组端口控制模块21相连;二级子HUB14的两个输出端口分别与HID5和模拟开关18连接,HID5的模拟输出口与模拟开关18相连,HID5的控制输出口与第四组端口控制模块22相连;
每个模拟开关可以外接一组USB设备,每一组端口控制模块与所述外接的一组USB设备连接。如图5,模拟开关15和第一组端口控制模块19连接着第一组USB设备,模拟开关16和第二组端口控制模块20连接着第二组USB设备,模拟开关17和第三组端口控制模块21连接着第三组USB设备,模拟开关18和第四端口控制模块22连接着第四组USB设备。
本实施例提供的一种USB集线器装置的各个组成部分的功能如下:
主集线器(主HUB6):通过输入端口与上位机相连,通过输出端口与控制器HID1和两个一级子HUB相连;其主要用于USB端口扩展,并作为通道将上位机下发给装置的指令传输给控制器以及向上位机返回控制器传输来的响应结果。
控制器(HID1-HID5):HID1与主HUB6相连,用于通过主HUB6向上位机返回拨码开关确定的当前与其连接上电的装置,用于通过主HUB6接收上位机下发的指令,当接收到的指令是选择线程指令时,根据所述指令选择工作线程,生成并保存端口编号列表,所述端口编号列表是一张保存有装置上的所有二级子HUB的逻辑端口编号与物理端口编号以及其对应关系的列表,并向上位机返回包含当前所选择工作线程和所述端口编号列表的响应结果;当接收到的指令是其他指令时,将所述指令发送给装置上的二级子HUB上连接的控制器(HID2、HID3、HID4、HID5),并将二级子HUB上连接的控制器返回的响应结果通过主HUB6返回给上位机。
HID2、HID3、HID4、HID5均与模拟开关和端口控制模块连接,用于直接接收上位机下发的其他指令或HID1发送来的其他指令,实现控制模拟开关建立二级子HUB的一个输出端口与一个USB设备之间的通道、控制端口控制模块打开或关闭与其直接相连的USB设备所在的USB HUB的输出端口,并向上位机或HID1返回响应结果。
所述其他指令包括获取HUB状态指令、端口上电指令、端口下电指令、测试端口电流指令、设置电流上限指令。
拨码开关7,用于用户手动确定当前与上位机连接上电的装置,具体的可以有多个本实施例中提供的所述装置与上位机连接,每个所述装置中都有一个主集线器与上位机直接连接。
显示管8,与拨码开关相连,用于显示当前与上位机连接上电的装置的名称或ID号。
子集线器(一级子HUB9和HUB10、二级子HUB11、HUB12、HUB13、HUB14):一级子HUB与主HUB6相连,用于为主HUB6扩展USB端口,二级子HUB与一级子HUB相连,用于为一级子HUB扩展USB端口。优选的本实施例中采用的子集线器可扩展出4个输出端口。
模拟开关(15、16、17、18),与二级子HUB和该二级子HUB上连接的控制器直接相连,用于建立二级子HUB的一个输出端口与一个USB设备之间的通道。
具体的,模拟开关的输出端口与USB设备直接相连,为了优化电路结构,设计在模拟开关的每一个输出端口通过一个二极管与一个USB设备相连,可以解决USB设备上电不稳定的问题。
4组端口控制模块(19、20、21、22),与二级子HUB上连接的控制器相连,用于控制与其直接相连的USB设备的上下电。
进一步的,所述装置还包括4组状态指示灯,且每一组状态指示灯均与一个控制器的控制输出口连接,该状态指示灯用于对装置的外接USB设备的USB端口的工作状态进行提示,为用户准确定位到操作过程中出现问题的USB设备。
当与上位机连接有多个集线器装置时,本发明通过控制器HID1、拨码开关7和显示管8可以精准的控制和确定当前上电工作的集线器装置,本发明通过与主HUB6连接的HID1、与二级子HUB连接的HID2、HID3、HID4、HID5以及模拟开关、端口控制模块,可以实现单线程和多线程工作方式下对二级子HUB的某一端口的精确控制,也可以说是精确控制装置的多个端口顺序上下电或者同时上下电。例如将本发明提出的装置应用于工装中实现对多个USB设备的烧写,既可以通过单线程对多个USB设备依次烧写,也可以通过多线程分组或并行的对多个USB设备同时进行烧写,还可以通过对端口的精确控制实现烧写中的差错控制。
实施例5
在实施例1的基础上,以采用5个控制器、5个USB HUB、4组端口控制模块、4个模拟开关,且控制器采用HID,每个USB HUB有4个输出端口为例,本实施例5提供了一种USB集线器装置,本实施例提供的装置以采用级联的两层HUB结构扩展出4*N个USB端口为例介绍,实现控制装置上连接的4组(每组N个)USB设备顺序上下电或者同时上下电,如图6所示:
一种USB集线器装置的组成部分包括:1个主集线器(主HUB6)、5个控制器(HID1、HID2、HID3、HID4、HID5)、4个子集线器(一级子HUB9、一级子HUB10、一级子HUB11、一级子HUB12)、1个拨码开关7、1个显示管8、4个模拟开关(13、14、15、16)和4组端口控制模块(17、18、19、20),其中,主HUB6的输入端口与上位机相连,主HUB6通过四个输出端口分别与一级子HUB9、一级子HUB10、一级子HUB11和一级子HUB12相连,HID1的输入口直接与上位机相连,HID1的一个控制输出口与拨码开关7相连,显示管8与拨码开关7相连;
一级子HUB9的两个输出端口分别与HID2和模拟开关13相连,HID2的模拟输出口与模拟开关13相连,HID2的控制输出口与第一组端口控制模块17相连;
一级子HUB10的两个输出端口分别与HID3和模拟开关14相连,HID3的模拟输出口与模拟开关14相连,HID3的控制输出口与第二组端口控制模块18相连;
一级子HUB11的两个输出端口分别与HID4和模拟开关15相连,HID4的模拟输出口与模拟开关15相连,HID4的控制输出口与第三组端口控制模块19相连;
一级子HUB12的两个输出端口分别与HID5和模拟开关16相连,HID5的模拟输出口与模拟开关16相连,HID5的控制输出口与第四组端口控制模块20相连;
每个模拟开关可以外接一组USB设备,每一组端口控制模块与所述外接的一组USB设备连接,如图6,模拟开关13和第一组端口控制模块17连接着第一组USB设备,模拟开关14和第二组端口控制模块18连接着第二组USB设备,模拟开关15和第三组端口控制模块19连接着第三组USB设备,模拟开关16和第四组端口控制模块20连接着第四组USB设备。
本实施例提供的一种USB集线器装置的各个组成部分的功能如下:
主集线器(主HUB6):通过输入端口与上位机相连,通过输出端口与4个一级子HUB相连;其主要用于USB端口扩展,用于作为通道接收上位机下发给装置的指令传输给控制器以及向上位机返回控制器传输来的响应结果。
控制器(HID1-HID5):HID1与上位机相连,用于向上位机返回拨码开关确定的当前与其连接上电的装置,用于接收上位机下发的指令,当接收到的指令是配置指令时,根据所述指令对装置按照上位机的指定配置方式进行配置并保存配置信息,向上位机返回包含配置信息的响应结果。当接收到的指令是其他指令时,将所述指令发送给装置上的一级子HUB上连接的控制器(HID2、HID3、HID4、HID5),并将一级子HUB上连接的控制器返回的响应结果返回给上位机。
HID2、HID3、HID4、HID5均与模拟开关和端口控制模块连接,用于接收上位机下发的其他指令或HID1发送来的其他指令,实现控制模拟开关建立一级子HUB的一个输出端口与一个USB设备之间的通道、控制端口控制模块打开或关闭与其直接相连的USB设备所在的USB HUB的输出端口,并向上位机或HID1返回响应结果。
所述其他指令包括端口上电指令、端口下电指令、测试端口电流指令、设置电流上限指令。
拨码开关7,用于用户手动确定当前与上位机连接上电的装置,具体的可以有多个本实施例中提供的所述装置与上位机连接,每个所述装置中都有一个主集线器与上位机直接连接。
显示管8,与拨码开关相连,用于显示当前与上位机连接上电的装置的名称或ID号。
子集线器(一级子HUB9、一级子HUB10、一级子HUB11、一级子HUB12):与主HUB6相连,用于为主HUB6扩展USB端口。优选的本实施例中采用的子集线器可扩展出4个输出端口。
模拟开关(13、14、15、16),与一级子HUB和一级子HUB上连接的控制器相连,用于建立一级子HUB的各个输出端口与USB设备之间的通道。
具体的,模拟开关的输出端与USB设备直接相连,为了优化电路结构,设计在模拟开关的每一个输出端口通过一个二极管与一个USB设备相连,可以解决USB设备上电不稳定的问题。
4组端口控制模块(17、18、19、20),与一级子HUB上连接的控制器相连,用于控制与其直接相连的USB设备的上下电。
进一步的,所述装置还包括4组状态指示灯,且每一组状态指示灯均与控制器的控制输出口连接,该状态指示灯用于对装置的外接USB设备的USB端口的工作状态进行提示,为用户准确定位到操作过程中出现问题的USB设备。
当与上位机连接有多个集线器装置时,本发明通过控制器HID1、拨码开关7和显示管8可以精准的控制和确定当前上电工作的集线器装置,本发明通过与上位机连接的HID1、与一级子HUB连接的HID2、HID3、HID4、HID5以及模拟开关、端口控制模块,可以实现多线程方式工作,并且可以实现对一级子HUB的某一端口的精确控制,也可以说是精确控制装置的多个端口顺序上下电或者同时上下电。
实施例6
在实施例1的基础上,以采用1个控制器、8个USB HUB、5组端口控制模块、5个模拟开关,且控制器采用HID,每个USB HUB有4个输出端口为例,本实施例6提供了一种USB集线器装置,本实施例提供的装置以采用级联的三层HUB结构扩展出5*N个USB端口为例介绍,实现控制装置上连接的5组(每组N个)USB设备顺序上下电或者同时上下电,如图7所示:
一种USB集线器装置的组成部分包括:1个主集线器(主HUB2)、1个控制器(HID1)、7个子集线器(一级子HUB5、一级子HUB6、二级子HUB7、二级子HUB8、二级子HUB9、二级子HUB10、二级子HUB11)、1个拨码开关3、1个显示管4、5组端口控制模块(12、13、14、15、16)和5个模拟开关(17、18、19、20、21)组成,其中,主HUB2的输入端口与上位机相连,一个输出端口与拨码开关3相连,还有两个输出端口分别连接一级子HUB5和一级子HUB6,HID1的输入口与上位机相连,HID1的控制输出口连接着5组端口控制模块,显示管4与拨码开关3相连;
一级子HUB5的输出端口上连接有二级子HUB7、二级子HUB8和二级子HUB9,二级子HUB7的输出端口连接的是模拟开关17,二级子HUB8的输出端口连接的是模拟开关18,二级子HUB9的输出端口连接的是模拟开关19;
一级子HUB6的输出端口上连接有二级子HUB10和二级子HUB11,二级子HUB10的输出端口连接的是模拟开关20,二级子HUB11的输出端口连接的是模拟开关21;
进一步的还可以是,一级子HUB5的输出端口上连接二级子HUB7和二级子HUB8,一级子HUB6的输出端口上连接二级子HUB9、二级子HUB10和二级子HUB11。
每个模拟开关可以外接一组USB设备,每组端口控制模块与外接的一组USB设备连接。如图7,模拟开关17和第一组端口控制模块12连接着第一组USB设备,模拟开关18和第二组端口控制模块13连接着第二组USB设备,模拟开关19和端口第三组控制模块14连接着第三组USB设备,模拟开关20和第四组端口控制模块15连接着第四组USB设备,模拟开关21和第五组端口控制模块16连接着第五组USB设备。
本实施例提供的一种USB集线器装置的各个组成部分的功能如下:
控制器(HID1):与上位机相连,与模拟开关和端口控制模块连接,用于接收上位机下发的指令,当接收到的指令是选择线程指令时,根据所述指令选择工作线程选择工作线程,生成并保存端口编号列表,所述端口编号列表是一张保存有装置上的所有二级子HUB的逻辑端口编号与物理端口编号以及其对应关系的列表,并向上位机返回包含当前所选择工作线程和所述端口编号列表的响应结果;当接收到的指令是其他指令时,实现控制模拟开关建立二级子HUB的一个输出端口与一个USB设备之间的通道、控制端口控制模块打开或关闭与其连接的USB设备所在的USB HUB的输出端口,并向上位机返回响应结果。所述其他指令包括获取HUB状态指令、端口上下电指令、测试端口电流指令、设置电流上限指令。进一步的所述端口上下电指令也可以通过两条指令的形式发送,即端口上电指令和端口下电指令,当接收到的是端口上下电指令时控制器可以同时控制器装置上的多个USB输出端口有的上电有的下电,当接收到的是端口上电指令或端口下电指令时,控制器可以同时控制装置上的多个USB输出端口上电或下电。
主集线器(主HUB2):通过,输入端口与上位机相连,通过输出端口与两个一级子HUB相连;其主要用于扩展USB端口。
拨码开关3,用于用户手动确定当前与上位机连接上电的装置,具体的可以有多个本实施例中提供的所述装置与上位机连接,每个所述装置中都有一个主集线器与上位机直接连接。
显示管4,与拨码开关3相连,用于显示当前与上位机连接上电的装置的名称或ID号。
子集线器(一级子HUB5、一级子HUB6、二级子HUB7、二级子HUB8、二级子HUB9、二级子HUB10、二级子HUB11):一级子HUB与主HUB6相连,用于为主HUB6扩展USB端口,二级子HUB与一级子HUB相连,用于为一级子HUB扩展USB端口。优选的本实施例中采用的子集线器可扩展出4个输出端口。
模拟开关(17、18、19、20、21),与二级子HUB直接相连,建立二级子HUB的各个输出端口与USB设备之间的通道。
具体的,模拟开关的输出端口与USB设备直接相连,为了优化电路结构,设计在模拟开关的每一个输出端口通过一个二极管与一个USB设备相连,可以解决USB设备上电不稳定的问题。
5组端口控制模块(12、13、14、15、16),与控制器HID1相连,用于控制与其直接相连的USB设备的上下电。
进一步的,所述装置还包括5组状态显示灯,且每一组状态指示灯均与控制器的控制输出口连接,该状态指示灯用于对装置的外接USB设备的USB端口的工作状态进行提示,为用户准确定位到操作过程中出现问题的USB设备。
实施例7
在实施例1的基础上,以采用1个控制器、8个USB HUB、5组端口控制模块,且控制器采用HID,每个USB HUB有4个输出端口为例,本实施例7提供了一种USB集线器装置,本实施例提供的装置以采用级联的三层HUB结构扩展出5*4个USB端口为例介绍,实现控制装置上连接的5组(每组4个)USB设备顺序上下电或者同时上下电,如图8所示:
一种USB集线器装置的组成部分包括:1个主集线器(主HUB2)、1个控制器(HID1)、7个子集线器(一级子HUB5、一级子HUB6、二级子HUB7、二级子HUB8、二级子HUB9、二级子HUB10、二级子HUB11)、1个拨码开关3、1个显示管4和5组端口控制模块(12、13、14、15、16)组成,其中,主HUB2的输入端口与上位机相连,一个输出端口与拨码开关3相连,还有两个输出端口分别连接一级子HUB5和一级子HUB6,HID1的输入口与上位机相连,HID1的控制输出口连接着5组端口控制模块,显示管4与拨码开关3相连;
一级子HUB5的输出端口上连接有二级子HUB7、二级子HUB8和二级子HUB9;
一级子HUB6的输出端口上连接有二级子HUB10和二级子HUB11;
进一步的还可以是,一级子HUB5的输出端口上连接二级子HUB7和二级子HUB8,一级子HUB6的输出端口上连接二级子HUB9、二级子HUB10和二级子HUB11。
每个二级子HUB外接一组USB设备,每组端口控制模块与外接的一组USB设备连接。如图8,二级子HUB7和第一组端口控制模块12连接着第一组USB设备,二级子HUB8和第二组端口控制模块13连接着第二组USB设备,二级子HUB9和第三组端口控制模块14连接着第三组USB设备,二级子HUB10和第四组端口控制模块15连接着第四组USB设备,二级子HUB11和第五组端口控制模块16连接着第五组USB设备。
本实施例提供的一种USB集线器装置的各个组成部分的功能如下:
控制器(HID1):与上位机相连,与端口控制模块连接,用于接收上位机下发的指令,当接收到的指令是配置指令时,根据所述指令对装置按照上位机的指定配置方式进行配置并保存配置信息,向上位机返回包含配置信息的响应结果。当接收到的指令是其他指令时,实现通过控制端口控制模块控制二级子HUB的USB输出端口的打开或关闭,并向上位机返回响应结果。所述其他指令包括端口上下电指令、测试端口电流指令、设置电流上限指令。进一步的所述端口上下电指令也可以通过两条指令的形式发送,即端口上电指令和端口下电指令,当接收到的是端口上下电指令时控制器可以同时控制器装置上的多个USB输出端口有的上电有的下电,当接收到的是端口上电指令或端口下电指令时,控制器可以同时控制装置上的多个USB输出端口上电或下电。
主集线器(主HUB2):通过输入端口与上位机相连,通过输出端口与两个一级子HUB相连;其主要用于扩展USB端口。
拨码开关3,用于用户手动确定当前与上位机连接上电的装置,具体的可以有多个本实施例中提供的所述装置与上位机连接,每个所述装置中都有一个主集线器与上位机直接连接。
显示管4,与拨码开关相连,用于显示当前与上位机连接上电的装置的名称或ID号。
子集线器(一级子HUB5、一级子HUB6、二级子HUB7、二级子HUB8、二级子HUB9、二级子HUB10、二级子HUB11):一级子HUB与主HUB6相连,用于为主HUB扩展USB端口,二级子HUB与一级子HUB相连,用于为一级子HUB扩展USB端口。本实施例中采用的子集线器可扩展出5个USB端口。
5组端口控制模块(12、13、14、15、16),与控制器HID1相连,用于控制与其直接相连的USB设备的上下电。
进一步的,所述装置还包括5组状态指示灯,且每一组状态指示灯均与控制器的控制输出口连接,该状态指示灯用于对装置的外接USB设备的USB端口的工作状态进行提示,为用户准确定位到操作过程中出现问题的USB设备。
实施例8
针对实施例1-7的装置结构,以控制器为HID为例,本实施例提出了一种USB集线器装置的工作方法,主要包含了HID接收上位机下发的指令,根据接收到的指令执行对端口控制模块的控制操作,以及向上位机返回接收到的指令的响应结果的工作流程,如图9所示,包括以下步骤:
步骤201:装置上电,初始化;
步骤202:装置上的HID等待接收上位机下发指令;
步骤203:装置上的HID接收指令,判断指令的类型;
当所述指令是选择线程指令时,执行步骤204-207;
当所述指令是获取HUB状态指令时,执行步骤208-209;
当所述指令是端口上电指令时,执行步骤210-211;
当所述指令是端口下电指令时,执行步骤212-213;
当所述指令是测试端口电流指令时,执行步骤214-215;
当所述指令是设置电流上限指令时,执行步骤216-217;
本实施例中具体地,装置上的HID根据接收到的指令的第一字节判断指令的类型,若所述指令第一字节为第一预设值,则所述指令为获取HUB状态指令,例如所述第一预设值为0x1a;若所述指令第一字节为第二预设值,则所述指令为端口上电指令,例如所述第二预设值为0x01;若所述指令第一字节为第三预设值,则所述指令为端口下电指令,例如所述第三预设值为0x02;若所述指令第一字节为第四预设值,则所述指令为测试端口电流指令,例如所述第四预设值为0x1b;若所述指令第一字节为第五预设值,则所述指令为设置电流上限指令,例如所述第五预设值为0x1c;若所述指令第一字节为第六预设值,则所述指令为选择线程指令,例如所述第六预设值为0x1e。
优选地,在本实施例中,步骤203中还包括装置上的HID判断所述指令是否合法,具体包括:
1)获取所述指令第二字节的值,判断所述指令的该字节后续的字节数是否与所述第二字节的值一致,是则继续2),否则不合法。
2)截取所述指令的最后一个字节数据,得到第一校验值,根据所述指令除了最后一个字节的其余字节数据得到第二校验值,验证所述第一校验值与所述第二校验值是否一致,是则合法,否则不合法。
上述1)和2)顺序可以互换,有一个判断结果为不一致则所述指令不合法,装置报错,并返回执行步骤202。
优选地,在本实施例中,根据所述指令除了最后一个字节的其余字节数据得到第二校验值具体为:对所述指令中除最后一个字节外的各个字节数据做异或运算,得到所述第二校验值。
步骤204:装置上的HID根据收到的指令选择工作线程,当选择的工作线程为多线程时执行步骤205,当选择的工作线程为单线程时执行步骤206;
具体地,装置上的HID解析所述指令,根据所述指令的第三字节判断要选择的工作线程是多线程还是单线程,当第三字节的取值等于1时则选择单线程,当第三字节的取值大于1时则选择多线程。
步骤205:装置上的HID选择多线程工作方式,并根据多线程数生成并保存包含逻辑端口编号与物理端口编号及其对应关系的端口编号列表;执行步骤207;
具体地,根据所述指令的第三字节得到多线程数,生成一张端口编号列表,所述端口编号列表是一张保存有装置上的所有用于外接USB设备的USB端口的逻辑端口编号与物理端口编号以及其对应关系的列表,所述物理端口编号即是为装置的外接USB设备的所有USB端口预先规定好的端口编号,所述逻辑端口编号即根据多线程数重新赋予装置的外接USB设备的所有USB端口一个HUBID,该HUBID与物理端口编号有着逻辑上的对应关系,本实施例中具体地,用两个字节来表示HUBID和物理端口编号。
例如,从所述指令解析得到的多线程数为4,以装置上的1个模拟开关可为子HUB扩展出5个端口为例,则对实施例4的装置上的二级子HUB的端口按4个线程得到的逻辑端口编号具体为:4个二级子HUB的逻辑端口编号为0001~0005,0101~0105,0201~0205,0301~0305,其中HIBID等于0001~0005为一个线程,HIBID等于0101~0105为一个线程,HIBID等于0201~0205为一个线程,HIBID等于0301~0305为一个线程,上述4个二级子HUB的逻辑端口编号分别对应的4个二级子HUB的物理端口编号为0x0001、0x0101、0x0201、0x0301、0x0401、0x0501、0x0601......0x1901。
步骤206:装置上的HID选择单线程工作方式;
需说明的是,针对实施例4的装置结构图,上述步骤204-206的操作主体装置上的HID是装置上的与主HUB6连接的HID1,而针对实施例5、6、7的装置结构图,上述步骤204-206的操作主体应该是与上位机连接的HID1。
步骤207:装置向上位机返回响应结果,然后返回步骤202。
进一步的,本实施例中还可以是预先约定第三字节的取值等于2则表示选择多线程,第三字节的取值等于1则表示选择单线程;预先约定第四字节的取值为要选择的多线程数。则步骤204-207可优化为图10所示步骤:
步骤3-1:解析所述选择线程指令,判断第三字节是否为第一预设值,是则执行步骤3-2,否则执行步骤3-3;
本实施例中第一预设值取为0x01。
步骤3-2:选择单线程工作方式且当前线程数为第一预设值,根据当前线程数生成并保存端口编号列表,然后执行步骤3-6;
具体的,以实施例4的装置中一个模拟开关为一个二级子HUB扩展出5个USB端口为例,则4个二级子HUB的20个USB端口的物理端口编号为:0x0001、0x0101、0x0201、0x0301、0x0401、0x0501、0x0601......0x1901。本步骤生成的所述端口编号列表中包含的逻辑端口编号与物理端口编号一致且一一对应。
步骤3-3:判断第四字节,若第四字节为第二预设值,则执行步骤3-4;若第四字节为第三预设值,则执行步骤3-5;
步骤3-4:选择多线程工作方式且当前线程数为第二预设值,根据当前线程数生成并保存端口编号列表;然后执行步骤3-6;
所述端口编号列表是一张保存有装置上的用于外接USB设备的所有USB端口的逻辑端口编号与物理端口编号以及其对应关系的列表,所述物理端口编号即是为装置的外接USB设备的所有USB端口预先规定好的端口编号,所述逻辑端口编号即根据多线程数重新赋予装置的外接USB设备的所有USB端口一个HUBID,该HUBID与物理端口编号有着逻辑上的对应关系。
本实施例中第二预设值取为0x02,则当前线程数为2,根据当前线程数生成的端口编号列表为:逻辑端口编号为0x0000~0x0009为一个线程,逻辑端口编号为0x0100~0x0109为一个线程。所述逻辑端口编号0x0001~0x0009、0x0101~0x0109与物理端口编号0x0001、0x0101、0x0201、0x0301、0x0401、0x0501、0x0601......0x1901成对应关系。
步骤3-5:选择多线程工作方式且当前线程数为第三预设值根据当前线程数生成并保存端口编号列表;然后执行步骤3-6;
本实施例中第三预设值取为0x04,则当前线程数为4,根据当前线程数生成的端口编号列表为:逻辑端口编号为0x0001~0x0005为一个线程,逻辑端口编号为0x0101~0x0105为一个线程,逻辑端口编号为0x0201~0x0205为一个线程,逻辑端口编号为0x0301~0x0305为一个线程。所述逻辑端口编号0x0001~0x0005、0x0101~0x0105、0x0201~0x0205、0x0301~0x0305与物理端口编号0x0001、0x0101、0x0201、0x0301、0x0401、0x0501、0x0601......0x1901成对应关系。
进一步地,步骤3-3中,若第四字节为其他数值,则直接执行步骤3-6;
步骤3-6:装置向上位机返回响应结果,返回步骤202;
本步骤所述响应结果中可以包含状态码、端口编号列表。具体的,当第三字节不为第一预设值且第四字节不为第二预设值和第三预设值时,装置向上位机返回状态码0x0000;当第三字节为第一预设值,或者第三字节不为第一预设值且第四字节为第二预设值或第三预设值时,装置向上位机返回的响应结果包括:状态码0x9000和端口编号列表。
步骤208:根据所述获取HUB状态指令确定当前端口,装置上的HID获取当前端口的状态信息;
具体的,根据所述获取HUB状态指令中包含的逻辑端口编号从保存的所述端口编号列表中得到物理端口编号,根据所述物理端口编号确定当前端口,然后装置上的HID获取当前端口的状态信息。
步骤209:装置向上位机返回包含状态信息的响应结果,然后返回步骤202。
其中,所述状态信息包含有HUBID。
步骤210:根据所述端口上电指令确定当前端口,装置上的HID通过控制端口控制模块给当前端口上电;
具体的,根据所述端口上电指令中包含的逻辑端口编号从保存的所述端口编号列表中得到物理端口编号,根据所述物理端口编号确定当前端口,装置上的HID通过控制所述端口控制模块给当前端口上电。
步骤211:装置向上位机返回包含上电提示信息的响应结果,然后返回步骤202。
步骤212:根据所述端口下电指令确定当前端口,装置上的HID通过控制端口控制模块给当前端口下电;
具体的,根据所述端口下电指令中包含的逻辑端口编号从保存的所述端口编号列表中得到物理端口编号,根据所述物理端口编号确定当前端口,装置上的HID通过控制所述端口控制模块给当前端口下电。
步骤213:装置向上位机返回包含下电提示信息的响应结果,然后返回步骤202。
优选地,在本实施例中,步骤210和212中还包括指示灯显示的操作。具体地,在本实施例中,用同一指示灯的不同颜色指示当前端口上电或下电。
步骤214:根据所述测试端口电流指令确定当前端口,装置上的HID检测当前端口的电流,将检测到的电流值与保存的第一数值进行比较得到测试结果;
具体的,根据所述测试端口电流指令中包含的逻辑端口编号从保存的所述端口编号列表中得到物理端口编号,根据所述物理端口编号确定当前端口。
步骤215:装置向上位机返回包含测试结果的响应结果,然后返回步骤202。
本实施例中具体地:将检测到的当前端口的电流值与缓存区中缓存的第一数值进行比较,若检测到的电流值不大于所述第一数值,则装置向上位机返回测试正常的测试结果,例如,向上位机返回状态码0x9000;若检测到的电流值大于所述第一数值,则装置向上位机返回测试异常的测试结果,例如,向上位机返回状态码0x0000。
步骤216:装置上的HID设置端口电流上限为第一数值;
步骤217:装置向上位机返回包含设置结果的响应结果,然后返回步骤202。
本实施例中具体地:对所述设置电流上限指令进行解析,得到第一数值,将当前子HUB的端口电流上限设置为第一数值,并将该值缓存在缓存区。优选地,在本实施例中,根据所述指令第三、第四字节的取值得到所述第一数值。
进一步的,当装置仅包含一个HID时,所述端口上电指令和端口下电指令还可以是以一条指令的形式发送,即端口上下电指令。当HID接收到所述端口上下电指令时,从所述指令中解析获得上下电端口信息,通过控制所述端口控制模块给所述上下电端口信息所对应的端口分别上电或下电。具体的,所述上下电端口信息中包含有多个逻辑端口编号,HID根据多个逻辑端口编号在端口编号列表中查找到对应的多个物理端口编号确定为要进行上下电操作的端口。
本发明提供的方案可以实现装置单线程与多线程工作方式之间的自由切换,且能够实现对装置的某一端口的精确控制从而控制端口上的USB设备的上下电,提高了装置的通用性、灵活性。例如将本发明提出的装置应用于工装中实现对多个USB设备的烧写,既可以通过单线程对多个USB设备依次烧写,也可以通过多线程分组或并行的对多个USB设备同时进行烧写。
实施例9
针对实施例1-7的装置结构,以控制器为HID为例,本实施例提出了一种USB集线器装置的工作方法,主要包含了HID接收上位机下发的指令,根据接收到的指令执行对端口控制模块的控制操作,以及向上位机返回接收到的指令的响应结果的工作流程,如图11所示,包括以下步骤:
步骤301:装置上电,初始化;
步骤302:装置上的HID等待接收上位机下发指令;
步骤303:装置上的HID接收指令,判断指令的类型;
当所述指令是配置指令时,执行步骤304-305;
当所述指令是端口上电指令时,执行步骤306-307;
当所述指令是端口下电指令时,执行步骤308-309;
当所述指令是测试端口电流指令时,执行步骤310-311;
当所述指令是设置电流上限指令时,执行步骤312-313;
本实施例中具体地,装置上的HID根据接收到的指令的第一字节判断指令的类型,若所述指令第一字节为第一预设值,则所述指令为配置指令,例如所述第一预设值为0x1a;若所述指令第一字节为第二预设值,则所述指令为端口上电指令,例如所述第二预设值为0x01;若所述指令第一字节为第三预设值,则所述指令为端口下电指令,例如所述第三预设值为0x02;若所述指令第一字节为第四预设值,则所述指令为测试端口电流指令,例如所述第四预设值为0x1b;若所述指令第一字节为第五预设值,则所述指令为设置电流上限指令,例如所述第五预设值为0x1c。
步骤304:装置上的HID根据所述配置指令中包含的上位机指定配置方式对所述装置进行配置并保存配置信息;
步骤305:装置向上位机返回包含配置信息的响应结果,然后返回步骤302。
步骤306:根据所述端口上电指令和保存的配置信息确定当前端口,装置上HID通过控制端口控制模块给当前端口上电;
步骤307:装置向上位机返回包含上电提示信息的响应结果,然后返回步骤302。
步骤308:根据所述端口下电指令和保存的配置信息确定当前端口,装置上的HID通过控制端口控制模块给当前端口下电;
步骤309:装置向上位机返回包含下电提示信息的响应结果,然后返回步骤302。
步骤310:根据所述测试端口电流指令和保存的配置信息确定当前端口,装置上的HID检测当前端口的电流,将检测到的电流值与第一预设值进行比较得到测试结果;
步骤311:装置向上位机返回包含测试结果的响应结果,然后返回步骤302。
本实施例中具体地:将检测到的当前端口的电流值与缓存区中缓存的第一数值进行比较,若检测到的电流值不大于所述第一数值,则装置向上位机返回测试正常的测试结果,例如,向上位机返回状态码0x9000;若检测到的电流值大于所述第一数值,则装置向上位机返回测试异常的测试结果,例如,向上位机返回状态码0x0000。
步骤312:装置上的HID设置端口电流上限为第一数值;
步骤313:装置向上位机返回包含设置结果的响应结果,然后返回步骤302。
本实施例中具体地:对所述设置电流上限指令进行解析,得到第一数值,将当前子HUB的端口电流上限设置为第一数值,并将该值缓存在缓存区。优选地,在本实施例中,根据所述指令第三、第四字节的取值得到所述第一数值。
本发明提供的方案可以实现对装置上的某一端口上下电的精确控制,从而控制端口上的USB设备的上下电操作,提高了装置的通用性、灵活性。例如将本发明提出的装置应用于工装中实现对多个USB设备的烧写,既可以通过单线程对多个USB设备依次烧写,也可以通过多线程分组或并行的对多个USB设备同时进行烧写。
进一步的,当装置仅包含一个HID时,所述端口上电指令和端口下电指令还可以是一条指令的形式发送,即端口上下电指令。当HID接收到所述端口上下电指令时,从所述指令中解析获得上下电端口信息,通过控制所述端口控制模块给所述上下电端口信息所对应的端口分别上电或下电。具体的,所述上下电端口信息中包含有多个逻辑端口编号,HID根据多个逻辑端口编号在端口编号列表中查找到对应的多个物理端口编号确定为要进行上下电操作的端口。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种USB集线器装置,其特征是:包含至少一个控制器、至少一个USB HUB和至少一组端口控制模块,其中的一个USB HUB的输入端口与上位机连接,输出端口外接一组USB设备,其中的一个控制器的输入口与上位机连接或者与上位机连接的USB HUB的输出端口连接,其中的一个控制器的控制输出口经过端口控制模块与所述外接的一组USB设备连接,所述装置控制一组USB设备同时上下电;
所述USB HUB,用于为所述装置扩展USB端口;
所述控制器,用于接收上位机下发的指令,根据接收到的指令执行对端口控制模块的控制操作,以及向上位机返回接收到的指令的响应结果;当接收到的所述指令是选择线程指令时,所述控制器根据所述选择线程指令选择工作线程,生成并保存端口编号列表,并向上位机返回所述选择线程指令的响应结果;
所述端口控制模块,用于控制与其直接相连的USB设备的上下电;
所述装置还包括至少一个模拟开关;
所述输出端口外接一组USB设备具体为所述输出端口一起经过一个或者分别经过一个模拟开关后外接一组USB设备,所述模拟开关还与一个控制器的模拟输出口连接;
所述模拟开关,用于建立所述USB HUB的一个输出端口与所述外接的一组USB设备中的一个USB设备之间的通道。
2.根据权利要求1所述的装置,其特征是:当包含的所述控制器的个数为一个时,所述与上位机连接或者与上位机连接的USB HUB的输出端口连接的控制器接收上位机下发的指令;当包含的所述控制器的个数为两个或两个以上时,除去所述与上位机连接或者与上位机连接的USB HUB的输出端口连接的控制 器之外的控制器接收上位机下发的指令。
3.根据权利要求2所述的装置,其特征是:当包含的所述控制器的个数为一个时,所述指令还包括获取HUB状态指令和端口上下电指令;
当接收到的所述指令是获取HUB状态指令时,控制器根据所述获取HUB状态指令中包含的逻辑端口编号从保存的端口编号列表中得到物理端口编号,根据所述物理端口编号确定当前端口,控制器获取当前端口的状态信息,向上位机返回包含所述状态信息的响应结果;当接收到的所述指令是端口上下电指令时,控制器根据所述上下电指令中包含的逻辑端口编号从保存的所述端口编号列表中得到物理端口编号,根据所述物理端口编号确定当前端口,通过控制所述端口控制模块对确定的当前端口上电或下电,并向上位机返回所述端口上下电指令的响应结果,所述端口编号列表是一张保存有所述外接一组USB设备的USB HUB的输出端口的逻辑端口编号、物理端口编号以及逻辑端口编号与物理端口编号对应关系的列表。
4.根据权利要求2所述的装置,其特征是:当包含的所述控制器的个数为两个或两个以上时,所述指令还包括获取HUB状态指令、端口上电指令和端口下电指令;
当接收到的所述指令是获取HUB状态指令时,控制器根据所述获取HUB状态指令中包含的逻辑端口编号从保存的所述端口编号列表中得到物理端口编号,根据所述物理端口编号确定当前端口,控制器获取当前端口的状态信息,向上位机返回包含所述状态信息的响应结果;当接收到的所述指令是端口上电指令时,控制器根据所述端口上电指令中包含的逻辑端口编号从保存的所述端口编号列表中得到物理端口编号,根据所述物理端口编号确定当前端口,通过控制所述端口控制模块给当前端口上电,并向上位机返回所述端口上电指令的 响应结果;当接收到的所述指令是端口下电指令时,控制器根据所述端口下电指令中包含的逻辑端口编号从保存的所述端口编号列表中得到物理端口编号,根据所述物理端口编号确定当前端口,通过控制所述端口控制模块给当前端口下电,并向上位机返回所述端口下电指令的响应结果,所述端口编号列表是一张保存有所述外接一组USB设备的USB HUB的输出端口的逻辑端口编号、物理端口编号以及逻辑端口编号与物理端口编号对应关系的列表。
5.根据权利要求2所述的装置,其特征是:当包含的所述控制器的个数为一个时,所述指令包括配置指令和端口上下电指令;
当接收到的所述指令是配置指令时,控制器根据所述配置指令中包含的上位机指定配置方式对所述装置进行配置并保存配置信息,向上位机返回所述配置指令的响应结果;当接收到的所述指令是端口上下电指令时,控制器根据所述端口上下电指令和保存的所述配置信息确定当前端口,通过控制所述端口控制模块对当前端口上电或下电,并向上位机返回所述端口上下电指令的响应结果。
6.根据权利要求2所述的装置,其特征是:当包含的所述控制器的个数为两个或两个以上时,所述指令包括配置指令、端口上电指令和端口下电指令;
当接收到的所述指令是配置指令时,控制器根据所述配置指令中包含的上位机指定配置方式对所述装置进行配置并保存配置信息,向上位机返回所述配置指令的响应结果;当接收到的所述指令是端口上电指令时,控制器根据所述端口上电指令和保存的所述配置信息确定当前端口,通过控制所述端口控制模块给当前端口上电,并向上位机返回所述端口上电指令的响应结果;当接收到的所述指令是端口下电指令时,控制器根据所述端口下电指令和保存的所述配置信息确定当前端口,通过控制所述端口控制模块给当前端口下电,并向上位 机返回所述端口下电指令的响应结果。
7.根据权利要求2所述的装置,其特征是还包括:所述指令还包括测试端口电流指令和设置电流上限指令;
当接收到的所述指令是测试端口电流指令时,控制器确定当前端口,检测当前端口的电流,将检测到的电流值与保存的第一数值进行比较得到测试结果,向上位机返回包含所述测试结果的响应结果;
当接收到的所述指令是设置电流上限指令时,控制器设置端口电流上限为第一数值并保存,向上位机返回包含设置结果的响应结果。
8.根据权利要求1所述的装置,其特征是:所述USB HUB采用级联方式扩展USB端口,所述级联方式为:所述与上位机连接的USB HUB的输出端口与至少一个USB HUB的输入端口连接。
9.根据权利要求1所述的装置,其特征是:所述装置还包括一个拨码开关和一个显示管;
当所述其中的一个控制器的输入口与上位机连接时,所述拨码开关和所述与上位机连接的USB HUB连接,用于用户手动确定当前与上位机连接上电的装置;
当所述其中的一个控制器的输入口与所述与上位机连接的USB HUB连接时,所述拨码开关和该控制器连接,用于用户手动确定当前与上位机连接上电的装置;
所述控制器还用于向上位机返回拨码开关确定的当前与其连接上电的装置的名称或ID号;
所述显示管与所述拨码开关连接,用于显示当前与上位机连接的上电的装置的名称或ID号。
10.根据权利要求1所述的装置,其特征是:所述装置还包括至少一组状态指示灯,每一组状态指示灯与一个控制器连接,所述状态指示灯用于对所述外接一组USB设备的USB HUB的输出端口的工作状态进行提示。
11.根据权利要求1所述的装置,其特征是:所述模拟开关的每一个输出端口通过一个二极管与所述外接的一组USB设备中的一个USB设备相连。
12.根据权利要求1所述的装置,其特征是:所述控制器根据所述选择线程指令选择工作线程,生成并保存端口编号列表,并向上位机返回所述选择线程指令的响应结果具体包括:
步骤3-1:解析所述选择线程指令,判断第三字节是否为第一预设值,是则执行步骤3-2,否则执行步骤3-3;
步骤3-2:选择单线程工作方式且当前线程数为第一预设值,根据当前线程数生成并保存端口编号列表,然后执行步骤3-6;
步骤3-3:判断第四字节,若第四字节为第二预设值,则执行步骤3-4;若第四字节为第三预设值,则执行步骤3-5;
步骤3-4:选择多线程工作方式且当前线程数为第二预设值,根据当前线程数生成并保存端口编号列表;然后执行步骤3-6;
步骤3-5:选择多线程工作方式且当前线程数为第三预设值,根据当前线程数生成并保存端口编号列表;然后执行步骤3-6;
步骤3-6:向上位机返回选择线程指令的响应结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310452962.6A CN103473207B (zh) | 2013-09-25 | 2013-09-25 | 一种usb集线器装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310452962.6A CN103473207B (zh) | 2013-09-25 | 2013-09-25 | 一种usb集线器装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103473207A CN103473207A (zh) | 2013-12-25 |
CN103473207B true CN103473207B (zh) | 2017-06-06 |
Family
ID=49798066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310452962.6A Expired - Fee Related CN103473207B (zh) | 2013-09-25 | 2013-09-25 | 一种usb集线器装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103473207B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919525A (zh) * | 2015-12-28 | 2017-07-04 | 航天信息股份有限公司 | 一种usb设备集群控制装置及系统 |
CN105807896B (zh) * | 2016-05-09 | 2018-06-15 | 苏州通云信息科技有限公司 | 一种usb共享机柜的节能控制usb端口 |
CN106887257B (zh) * | 2017-03-16 | 2020-12-04 | 数据通信科学技术研究所 | 一种多智能卡测试系统和方法 |
CN109344023B (zh) * | 2018-11-02 | 2022-05-13 | 郑州云海信息技术有限公司 | 一种服务器usb3.0接口稳定性的测试系统及方法 |
CN110568946B (zh) * | 2019-09-02 | 2021-08-24 | 腾讯科技(深圳)有限公司 | 一种端口控制方法、设备及介质 |
CN111367225A (zh) * | 2020-04-02 | 2020-07-03 | 南京捷希科技有限公司 | 一种基于微处理器的控制装置、系统及方法 |
CN111294630A (zh) * | 2020-05-09 | 2020-06-16 | 支付宝(杭州)信息技术有限公司 | 一种视频传输设备的控制方法及多端口转发设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1405657A (zh) * | 2001-09-15 | 2003-03-26 | Lg电子株式会社 | 与串行总线相连的设备的电源控制装置 |
CN1672139A (zh) * | 2002-07-26 | 2005-09-21 | 摩托罗拉公司 | 双模式兼容usb集线器设备和方法 |
CN201607724U (zh) * | 2009-12-30 | 2010-10-13 | 北京飞天诚信科技有限公司 | 一种支持多线程操作的usb hub |
CN102339259A (zh) * | 2010-07-27 | 2012-02-01 | 董建飞 | 对usb接口设备进行操作的装置及方法 |
-
2013
- 2013-09-25 CN CN201310452962.6A patent/CN103473207B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1405657A (zh) * | 2001-09-15 | 2003-03-26 | Lg电子株式会社 | 与串行总线相连的设备的电源控制装置 |
CN1672139A (zh) * | 2002-07-26 | 2005-09-21 | 摩托罗拉公司 | 双模式兼容usb集线器设备和方法 |
CN201607724U (zh) * | 2009-12-30 | 2010-10-13 | 北京飞天诚信科技有限公司 | 一种支持多线程操作的usb hub |
CN102339259A (zh) * | 2010-07-27 | 2012-02-01 | 董建飞 | 对usb接口设备进行操作的装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103473207A (zh) | 2013-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103473207B (zh) | 一种usb集线器装置 | |
CN107260314A (zh) | 手术机器人及手术机器人中的装置、系统 | |
CN206550486U (zh) | 电焊机显示设备及电焊机 | |
CN108539754A (zh) | 智能型电容投切复合开关及投切控制方法 | |
CN103830816B (zh) | 一种用于麻醉机的提示装置及相应的麻醉机 | |
CN105182966B (zh) | 一种plc及io扩展模块检测方法 | |
CN106563315A (zh) | 一种基于矩阵、二极管元件的布袋除尘喷吹控制柜 | |
CN208825799U (zh) | 一种数字化控制的逆变氩弧焊机控制电路模块 | |
CN206505137U (zh) | 一种基于无线技术的弧光保护装置测试仪及测试系统 | |
CN104506782A (zh) | 一种智能生成串接显示器id的方法 | |
CN103698146A (zh) | 一种通用型冰箱可靠性试验检测系统 | |
CN205121274U (zh) | 串口规约报文信号试验端子排 | |
CN101413470A (zh) | 发动机失火故障发生方法及装置 | |
CN104005818B (zh) | 一种尿素喷嘴的电流控制方法及系统 | |
CN105467872B (zh) | 图形组态顺序化控制系统 | |
CN107036391A (zh) | 一种用于冷库的远程智能控制系统 | |
CN207801575U (zh) | 智能配电系统 | |
CN205655540U (zh) | 热泵机组集中控制装置 | |
CN206462409U (zh) | 一种电子烟 | |
CN104113423B (zh) | 一种网络设备 | |
CN102289212B (zh) | 一种在线检测的控制芯片 | |
CN208399956U (zh) | 一种可编程机器人按键电路 | |
CN110320846A (zh) | 组态软件及其变量绑定方法和装置、存储介质 | |
CN103092614B (zh) | 一种菜单背景切换方法 | |
CN210924275U (zh) | 一种干法布袋除尘器集中控制装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170606 |
|
CF01 | Termination of patent right due to non-payment of annual fee |