CN116909966A - Usb带宽扩展方法、装置及可读存储介质 - Google Patents
Usb带宽扩展方法、装置及可读存储介质 Download PDFInfo
- Publication number
- CN116909966A CN116909966A CN202310803288.5A CN202310803288A CN116909966A CN 116909966 A CN116909966 A CN 116909966A CN 202310803288 A CN202310803288 A CN 202310803288A CN 116909966 A CN116909966 A CN 116909966A
- Authority
- CN
- China
- Prior art keywords
- usb
- bus
- peripheral
- information
- equipment
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000002093 peripheral effect Effects 0.000 claims abstract description 179
- 230000005540 biological transmission Effects 0.000 claims abstract description 38
- 230000004044 response Effects 0.000 claims abstract description 38
- 238000004891 communication Methods 0.000 claims description 115
- 230000001360 synchronised effect Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 5
- 230000010365 information processing Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000013475 authorization Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明提供的一种USB带宽扩展方法、装置及可读存储介质,通过增设扩展端,使得主机与外设之间不直接进行数据传输,而是通过第一USB总线与第二USB总线在主机与扩展端进行数据传输,则在主机需要连接多个外设时,只需要通过增加扩展端的USB总线数量,即可实现主机的USB带宽扩展,从而避免对主机的主板或内部空间进行整改,提高主机USB带宽使用的灵活性。同时,在主机内根据外设的设备信息在USB虚拟总线上生成对应的设备节点,使得外设虽然连接于扩展端,但通过USB虚拟总线能够转换主机的操作请求以及扩展端的应答信息,让主机与外设之间能够实现信息传输,从而实现对外设的控制。这种带宽扩展方式无需多主机协同连接外设,减少了硬件成本和空间占用。
Description
技术领域
本发明涉及通用串行总线通信技术领域,尤其涉及一种USB带宽扩展方法、装置及可读存储介质。
背景技术
随着信息化程度的不断加深,计算主机在各行业场景得到广泛应用,一般的计算主机均配备USB(Universal Serial Bus,通用串行总线),支持USB外设接入并提供多个USB接口。虽然计算主机提供多个USB接口,但实际上均由内部的1条USB3.0或以上标准总线以及1~2条USB2.0总线通过HUB(集线器)扩展得出,即事实上多个接口是共用总线带宽。但接口之间的带宽共享存在一定的局限性:不同总线的带宽资源无法共享,即A路USB总线下的所有外设仅能共享A路USB总线的带宽资源,无论B路USB总线带宽资源是否盈余。同时,不同通讯协议标准的外设仅可使用对应标准的带宽资源,其无法越级使用,即USB2.0设备接在USB3.0或以上标准总线下也只能使用其USB2.0带宽,无法使用USB3.0或以上标准总线带宽资源。
此外,在理论定义上,USB2.0可提供480Mbps的总线带宽,USB3.2Gen1可提供5Gbps的总线带宽,USB3.2Gen2可提供10Gbps的总线带宽,USB3.2Gen2x2可提供20Gbps的总线带宽。若考虑协议损耗因素,USB2.0可提供426Mbps的总线带宽,USB3.2Gen1可提供4Gbps的数据带宽,USB3.2Gen2可提供9.70Gbps的总线带宽,USB3.2Gen2x2可提供19.39Gbps的总线带宽,即上述USB2.0、USB3.2Gen1、USB3.2Gen1、USB3.2Gen2以及USB3.2Gen2x2所提供的总线带宽均为可用数据带宽,即在扣除协议以及校验等因素损耗后,实际可传输有用信息的带宽。而在实际使用时,系统还会保留USB2.0带宽的20%,因此USB2.0的实际可用带宽是比较有限的,与高于USB2.0的标准的最低速度对比,仍存在12倍的带宽差距。但基于USB外设自身通讯数据量需求及成本考量,现有功能的外设仍以USB2.0通讯协议为主。
在目前银行柜面、工业控制等行业场景中,主机通常要同时连接多个基于USB2.0连接的外设协同完成一个任务,这些外设中诸如摄像头等设备,若采用同步通讯或中断通讯模式,则要固定占用带宽;而高清摄像头等外设往往需要占用大量带宽,因此容易出现业务外设组合带宽需求总量超出主机的USB带宽承载极限,令业务外设无法同时被连接和驱动,影响业务的开展。
而现有技术一般采用以下两种方案拓展USB带宽:方案一、通过增加桥片或扩展卡等形式增加主机的USB2.0总线数量。但是,增加桥片扩充USB2.0总线方案属于板级方案,需在主机的主板设计阶段导入,灵活性差,开发周期长,成本高,且整机产品出货后,无法进行便捷整改以实现其他功能;增加扩展卡扩充USB2.0总线方案要求主机原先预留有PCIe等扩展接口,而且需要主机内部有对应空间。即方案一均需要对主机进行不同方式的整改,功能与主机绑定,灵活度差。方案二、多台主机连接不同外设,然后通过网络协议连接、转发,协同完成任务。但是,多主机协同完成工作,增加了硬件成本和空间占用;且主机间网络连接延时不稳定,容易影响高实时性要求业务的稳定性;此外,现有业务软件无法直接使用,需要进行修改适配。
发明内容
本发明所要解决的技术问题是:提供一种USB带宽扩展方法、装置及可读存储介质,在已有业务应用无需修改适配的前提下,灵活、便捷地实现计算主机的USB带宽扩展,提高主机的USB总线连接能力,且保证多个USB外设的正常调用。
为了解决上述技术问题,本发明采用的技术方案为:
一种USB带宽扩展方法,包括步骤:
构建与第一USB总线对应标准的USB虚拟总线;
通过所述第一USB总线以及第二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为本发明实施例提供的一种USB带宽拓展装置的软件配置图;
标号说明:
1、主机端;2、扩展端;3、外设;21、信息处理器;22、总线扩展芯片;101、第一USB总线;201、第二USB从总线;301、第二USB主总线;1001、Slaver设备驱动;1002、USB2.0虚拟总线驱动;1003、主机系统/业务软件;1004、USB原生总线驱动;2001、信息处理软件;2002、USB2.0标准总线驱动;2003、Bulk通道。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,本发明实施例提供了一种USB带宽扩展方法,包括步骤:
构建与第一USB总线对应标准的USB虚拟总线;
通过所述第一USB总线以及第二USB总线获取与扩展端连接的外设的设备信息;
根据所述设备信息在所述USB虚拟总线上生成与所述外设一一对应的设备节点;
接收主机系统对所述外设的操作请求,并根据配置信息将所述操作请求发送给所述外设;
通过所述第一USB总线以及第二USB总线获取所述外设的应答信息,并通过所述USB虚拟总线将所述应答信息返回给所述主机系统。
从上述描述可知,本发明的有益效果在于:通过增设扩展端,使得主机与外设之间不直接进行数据传输,而是通过第一USB总线与第二USB总线在主机与扩展端进行数据传输,则在主机需要连接多个外设时,只需要通过增加扩展端的USB总线数量,即可实现主机的USB带宽扩展,从而避免对主机的主板或内部空间进行整改,提高主机USB带宽使用的灵活性。同时,在主机内根据外设的设备信息在USB虚拟总线上生成对应的设备节点,使得外设虽然连接于扩展端,但通过USB虚拟总线能够转换主机的操作请求以及扩展端的应答信息,让主机与外设之间能够实现信息传输,从而实现对外设的控制。这种带宽扩展方式无需多主机协同连接外设,减少了硬件成本和空间占用。
进一步的,所述通过所述第一USB总线以及第二USB总线获取与扩展端连接的外设的设备信息包括:
通过所述第一USB总线接收与所述扩展端连接的外设的设备信息,并且通过所述第二USB总线传输所述设备信息;
所述根据所述设备信息在所述USB虚拟总线上生成与所述外设一一对应的设备节点包括:
根据所述设备信息获取所述外设的带宽需求;
根据所述带宽需求以及所述第一USB总线的带宽承载力,在所述USB虚拟总线上生成与所述外设一一对应的设备节点;
所述USB虚拟总线扣除系统预留带宽后的总带宽承载力大于或等于所述外设的带宽需求。
由上述描述可知,扩展端的第一USB总线用于接收外设的设备信息,扩展端的第二USB总线用于与主机传输外设的设备信息,使得主机与扩展端之间通过USB总线进行数据传输,从而避免采用网络协议或其他通信连接方式,造成通讯延时的问题,保证高实时性业务的稳定性。同时,第二USB总线上采用基于批量传输方式构建的通讯通道,使得主机与扩展端能够自动适应带宽,其总线带宽剩多大就用多大,从而提高主机USB带宽利用率。
进一步的,所述通过扩展端获取外设的设备信息之后,包括:
通过所述扩展端对所述设备信息进行解析,得到所述外设的通讯模式以及基本信息;
根据所述通讯模式配置所述外设的通讯优先级,并将所述外设的通讯优先级以及基本信息记录在所述配置信息中。
由上述描述可知,为避免部分高实时性或其他通讯需求的外设造成通讯延时大的问题,扩展端接收外设的设备信息后,解析外设的通讯模式,对于通讯需求较高的外设则调整其通讯优先级,从而实现分批传输,降低通讯延时。
进一步的,所述操作请求的最小数据单位为URB包;
所述接收所述主机系统对所述外设的操作请求,并根据配置信息将所述操作请求发送给所述外设包括:
接收所述主机系统对所述外设的操作请求,并在所述USB虚拟总线上生成与所述操作请求对应的URB包;
将所述URB包通过所述第二USB总线上基于批量传输方式构建的通讯通道传输至所述扩展端,并根据所述配置信息获取所述URB包对应外设的通讯优先级;
根据所述通讯优先级的顺序,将所述URB包依次通过所述第一USB总线发送给所述外设。
由上述描述可知,当配置信息中通讯优先级较高的URB包,则优先传输至外设。通过扩展端的配置信息实现对外设的通讯顺序进行设置,从而有效避免通讯延时的问题,保证高实时性业务的稳定性。
进一步的,所述通过所述第一USB总线以及第二USB总线获取所述外设的应答信息,并通过所述USB虚拟总线将所述应答信息返回给所述主机系统包括:
通过所述第一USB总线接收所述外设的应答信息,并通过所述第二USB总线上基于批量传输方式构建的通讯通道,将所述应答信息传输至所述USB虚拟总线;
在所述USB虚拟总线上将所述应答信息还原为所述外设对应的设备应答,并将所述设备应答返回给所述主机系统。
由上述描述可知,为实现扩展端与主机之间的数据传输,通过USB虚拟总线,将扩展端所接收到的设备信息转换为对应的虚拟设备信息后发送给系统,从而避免增设扩展端后,主机无法对外设进行正常调用。
进一步的,所述通讯模式包括同步通讯;
所述根据所述通讯模式配置所述外设的通讯优先级包括:
若所述通讯模式为同步通讯,则配置所述外设的通讯优先级为最高级;
所述根据所述配置信息将所述操作请求发送给所述外设包括:
获取预设时间内所有操作请求对应外设的通讯优先级,并计算所述通讯优先级为最高级的优先操作请求的数量;
若所述操作请求中优先操作请求的数量达到预设阈值,则超出所述预设阈值的优先操作请求等待下一次的发送。
由上述描述可知,同步通讯的操作请求的通讯优先级高于其他通讯模式的操作请求,但是优先操作请求的数量至多占用单位时间内转发的操作请求的预设阈值,从而避免同步通讯的外设的通讯延时过大。
请参照图2,本发明另一实施例提供了一种USB带宽扩展装置,包括主机端和扩展端;
所述扩展端包括信息处理器,所述信息处理器包括第一USB总线以及第二USB从总线;
所述主机端包括第二USB主总线;所述主机端用于构建与所述第一USB总线对应标准的USB虚拟总线;
所述第二USB从总线的一端连接所述第二USB主总线,所述第二USB从总线的另一端连接所述第一USB总线的一端,所述第一USB总线的另一端用于连接外设。
进一步的,所述第一USB总线为USB2.0标准总线;所述第二USB主总线和第二USB从主线为USB3.0或以上标准总线。
由上述描述可知,由于现有功能的外设仍以USB 2.0通讯协议为主,故扩展端与外设之间的第一USB总线仍采用USB 2.0标准总线,避免增加成本。同时扩展端与主机之间的第二USB总线采用USB 3.0或以上标准总线,从而提高扩展端与主机之间的可用带宽,提高数据传输效率。
进一步的,还包括总线扩展芯片;所述总线扩展芯片的一端连接所述第二USB从总线,所述总线扩展芯片的另一端用于连接外设。
由上述描述可知,当扩展端自身的第一USB总线数量不足以匹配外设数量时,可通过增加对应数量的总线扩展芯片用于连接外设,以避免对装置进行整机修改,减少成本。
本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的一种USB带宽扩展方法中的各个步骤。
从上述描述可知,本发明的有益效果在于:通过增设扩展端,使得主机与外设之间不直接进行数据传输,而是通过第一USB总线与第二USB总线在主机与扩展端进行数据传输,则在主机需要连接多个外设时,只需要通过增加扩展端的USB总线数量,即可实现主机的USB带宽扩展,从而避免对主机的主板或内部空间进行整改,提高主机USB带宽使用的灵活性。同时,在主机内根据外设的设备信息生成对应的USB虚拟总线,使得外设虽然连接于扩展端,但通过USB虚拟总线能够转换主机的操作请求以及扩展端的应答信息,让主机与外设之间能够实现信息传输,从而实现对外设的控制。这种带宽扩展方式无需多主机协同连接外设,减少了硬件成本和空间占用。
本发明实施例提供了一种USB带宽扩展方法、装置及可读存储介质,可应用于银行柜面、工业控制等场景下,主机同时连接多个基于USB2.0连接的外设协同完成一个任务,在已有业务应用无需修改适配的前提下,灵活、便捷地实现计算主机的USB带宽扩展,提高主机的USB总线连接能力,且保证多个USB外设的正常调用,以下通过具体实施例来说明:
请参照图1,本发明的实施例一为:
一种USB带宽扩展方法,包括:
S1、构建与第一USB总线对应标准的USB虚拟总线;
需要说明的是,USB虚拟总线的通讯标准与第一USB总线的通讯标准相同。
S2、通过所述第一USB总线以及第二USB总线获取与扩展端连接的外设的设备信息。
具体地,所述S1包括:
S21、通过所述第一USB总线接收与所述扩展端连接的外设的设备信息,并且通过所述第二USB总线传输所述设备信息。
在一种可选的实施方式中,所述第二USB总线基于批量传输方式构建有通讯通道,通过所述通讯通道传输所述设备信息。所述基于批量传输方式构建的通讯通道为Bulk传输。所述第一USB总线的标准带宽为480Mbps;所述第二USB总线的标准带宽为5Gbps、10Gbps或20Gbps。
需要说明的是,主机上安装有与所述第二USB总线对应的设备驱动,使得主机与扩展端之间可通过第二USB总线传输设备信息。
具体地,所述S21之后,包括:
S201、通过所述扩展端对所述设备信息进行解析,得到所述外设的通讯模式以及基本信息。
S202、根据所述通讯模式配置所述外设的通讯优先级,并将所述外设的通讯优先级以及基本信息记录在所述配置信息中。
在一种可选的实施方式中,所述配置信息可存储于主机或扩展端中。在一些实施例中,以配置信息存储于扩展端为例,所述配置信息还包括授权信息,所述授权信息包括供应商ID(VID)、产品识别码(PID)、设备序列号以及主机序列号,则在得到所述外设的通信模式以及基本信息之后,包括:
获取所述扩展端所连接的主机的基本信息,判断所述外设的基本信息以及所述主机的基本信息是否存在于所述授权信息中,若是,则允许所述主机与所述外设通过所述扩展端进行连接通讯;若否,则禁止所述主机与所述外设通过所述扩展端进行连接通讯。以此方式保证业务场景的外设接入时主机内信息系统的安全性。
在一些实施例中,将通讯模式为高实时性通信的外设的通讯优先级配置为高优先级,则步骤S201具体为:当存在新的外设与扩展端连接时,通过设备枚举的方式获取所述外设的设备描述符和配置描述符,对设备描述符和配置描述符进行解析,得到所述外设每个通讯端点的通讯模式。其中,所述扩展端的配置信息中默认将ISO(Isochronous,同步)通讯模式和Interrupt(中断)通讯模式的通讯端点配置高优先级端点。
步骤S202具体为:检索所述扩展端的配置信息是否已经存在被默认为高优先级端点,若不存在,则将所述外设通讯端点添加至扩展端的配置信息中优先级配置记录的尾部。其中,用户可以通过人为指定外设通讯端点的通讯优先级;在人为指定方式中,外设的通讯优先级不受端点通讯方式的约束,任何类型的通讯端点都能够被加入到对应的优先级配置记录中。其中,根据应用场景中实施方案的不同,上述优先级配置记录可以文件、数据库或内存缓存等形式存在。
在一些实施例中,所述优先级配置记录可全部固化于所述扩展端中,也可在所述扩展端运行时进行动态配置;或部分优先级配置记录固化于所述扩展端中,部分优先级配置记录进行动态配置。具体地,当优先级配置记录进行动态配置时,配置发起方通过扩展端提供的外部通讯接口,按扩展端约定的通讯协议将需要设置的优先级配置记录及同优先级仲裁策略下发至扩展端,扩展端将接收的优先级配置记录根据其优先级顺序,合并到扩展端内预设的优先级配置记录中;当扩展端内预设的优先级配置记录中存在与配置发起方下发的优先级配置记录相同优先级的记录时,根据随同所述优先级配置记录一起下发的同优先级仲裁策略,决定下发的优先级配置记录是放置于预设的优先级配置记录的头部或尾部。
S3、根据所述设备信息在所述USB虚拟总线上生成与所述外设一一对应的设备节点。
具体的,所述S3包括:
S31、根据所述设备信息获取所述外设的带宽需求。
S32、根据所述带宽需求以及所述第一USB总线的带宽承载力,在所述USB虚拟总线上生成与所述外设一一对应的设备节点;
所述USB虚拟总线扣除系统预留带宽后的总带宽承载力大于或等于所述外设的带宽需求。
需要说明的是,所述USB虚拟总线的数量可大于所述第一USB总线的数量;其中,总带宽承载力=USB虚拟总线的总数量×单条USB虚拟总线的带宽值,此处USB虚拟总线的总带宽承载力具体为USB虚拟总线扣除系统保留带宽等非可用带宽后剩余的可用带宽承载力。
需要说明的是,所述设备信息中包括连接请求,通过所述虚拟总线将连接请求发送给主机系统后生成对应的设备节点。
S4、接收主机系统对所述外设的操作请求,并根据所述配置信息将所述操作请求发送给所述外设。
需要说明的是,所述主机系统包括主机上向对应外设发送操作请求的业务软件或应用等。
其中,所述操作请求的最小数据单位为URB(Usb Request Block,USB请求块)包。
具体地,所述S4包括:
S41、接收所述主机系统对所述外设的操作请求,并在所述USB虚拟总线上生成与所述操作请求对应的URB包。
S42、将所述URB包通过所述第二USB总线上基于批量传输方式构建的通讯通道传输至所述扩展端,并根据所述配置信息获取所述URB包对应外设的通讯优先级。
S43、根据所述通讯优先级的顺序,将所述URB包依次通过所述第一USB总线发送给所述外设。
在一些实施例中,将每一通讯端点(外设)的优先级配置记录(优先级以及基本信息)通过线性集合的方式存储在扩展端的配置信息中;其中,每一通讯端点的优先级配置记录至少包括设备VID、PID、端点号以及优先级编号,优先级编号为一个整数。当配置信息中存在优先级编号相同时,则以该线性集合中最先出现的优先级配置记录的优先级为高。
S5、通过所述第一USB总线以及第二USB总线获取所述外设的应答信息,并通过所述USB虚拟总线将所述应答信息返回给所述主机系统。
具体地,所述S5包括:
S51、通过所述第一USB总线接收所述外设的应答信息,并通过所述第二USB总线上基于批量传输方式构建的通讯通道,将所述应答信息传输至所述USB虚拟总线。
在一些实施例中,在所述第二USB总线上基于批量传输模式构建通讯通道将所述应答信息传输至所述USB虚拟总线。
S52、在所述USB虚拟总线上将所述应答信息还原为所述外设对应的设备应答,并将所述设备应答返回给所述主机系统。
需要说明的是,所述设备应答为URB应答。
其中,所述通讯模式包括同步通讯,则所述S202包括:若所述通讯模式为同步通讯,则配置所述外设的通讯优先级为最高级。以此方式避免同步通讯外设的通讯延迟过大。
则所述S4包括:
S401、获取预设时间内所有操作请求对应外设的通讯优先级,并计算所述通讯优先级为最高级的优先操作请求的数量;
S402、若所述操作请求中优先操作请求的数量达到预设阈值,则超出所述预设阈值的优先操作请求等待下一次的发送。
在一些实施例中,所述S4具体为:
获取预设时间内所述第二USB总线上所有待传输的URB包,并将所述URB包标记为当前传输批次;
根据所述第二USB总线的理论带宽以及USB传输协议规范计算单次传输批次的URB包理论容量上限;
当所述第二USB总线每传输一个URB包,同步计算当前传输批次中已完成传输且通讯优先级为最高级的URB包的第一数量,并计算所述第一数量在所述URB包理论容量上限的占比;
若所述占比达到或超过预设阈值,则超出预设阈值的URB包延迟到下一传输批次中进行传输。
在一些实施例中,所述预设阈值为80%,即优先发送的URB包至多占用单位时间内发送的所有URB包的80%。
在一些实施例中,根据应用场景特点以及业务需要可调整某类通讯模式指定外设的通讯优先级,从而提高主机系统性能。例如,降低同步通讯方式中录屏外设的通讯优先级,以保证其它非同步通讯外设的资源。
需要说明的是,所述步骤S1-S5的执行主体为需要进行USB带宽扩展的主机。
请参照图2至图3,本发明的实施例二为:
一种USB带宽扩展装置,包括主机端1和扩展端2;
所述扩展端2包括信息处理器21,所述信息处理器21包括第一USB总线101以及第二USB从总线201;
所述主机端1包括第二USB主总线301;所述主机端1用于构建与所述第一USB总线101对应标准的USB虚拟总线;
所述第二USB从总线201的一端连接所述第二USB主总线301,所述第二USB从总线201的另一端连接所述第一USB总线101的一端,所述第一USB总线101的另一端用于连接外设3。
在一种可选的实施方式中,所述扩展端2还包括总线扩展芯片22,所述总线扩展芯片22的一端连接所述第二USB从总线201,所述总线扩展芯片22的另一端用于连接外设3。
需要说明的是,所述第一USB总线101的数量至少为一条。所述总线扩展芯片22的数量根据外设3的数量进行增加,即信息处理器21中的第一USB总线101数量无法满足外设数量需求时,可通过连接总线扩展芯片22实现对第一USB总线101的扩增,使得扩展端2可灵活组合或配置,拓展性强。
需要说明的是,所述扩展端2为集成芯片系统,所述第一USB总线101、第二USB从总线201、第三USB主总线301以及总线扩展芯片21之间的连接关系并未具体说明,此处的连接关系仅表示二者之间可进行数据通讯。
具体的,所述第一USB总线101为USB2.0标准总线;所述第二USB主总线301和第二USB从主线201为USB3.0或以上标准总线。
在一些实施例中,参照图2所示,所述第二USB主总线301即为图中USB3.0或以上标准Master总线;所述第二USB从总线201即为图中USB3.0或以上标准Slaver总线;所述第一USB总线101即为图中USB2.0标准Master总线。信息处理器21基于USB3.0或以上标准的Slaver总线201接入主机1的USB3.0或以上标准Master总线301,实现扩展端2与主机1之间的通讯连接;信息处理器21基于USB2.0标准Master总线101接入业务外设3。
需要说明的是,基于USB2.0标准要求USB2.0能够向下兼容USB1.1标准以及USB1.0标准,故扩展端2所连接的外设3的USB通讯版本可支持USB2.0标准、USB1.1标准以及USB1.0标准。
需要说明的是,所述USB标准所提供的通讯速率如表1所示。
表1USB各个标准提供的通讯速率
USB4.0标准提供10Gbps、20Gbps以及40Gbps的通讯速率,本发明中并未涉及。
在一些实施例中,所述扩展端2还包括基于USB3.0或以上标准的OTG控制器或DRD控制器,所述第二USB从总线201连接所述OTG控制器或DRD控制器。以此方式通过OTG控制器或DRD控制器将第二USB从总线配置为Device模式进行使用。
实施例一所述的一种USB带宽扩展方法的各个步骤通过本实施例中所述的装置实现。参照图3所示,所述主机端1内配置有Slaver设备驱动1001、USB2.0虚拟总线驱动1002、主机系统/业务软件1003以及USB原生总线驱动1004;所述扩展端2内配置有信息处理软件2001以及USB2.0标准总线驱动2002。所述装置的工作原理为:
扩展端2的信息处理软件2001在USB3.0或以上标准Slaver总线201(即所述方法中的第二USB总线)上,构建一个采用Bulk通讯模式的通道2003,并通过该Bulk通道2003接入主机端1的USB3.0或以上标准Master总线301建立通讯。
扩展端2的信息处理软件2001将连接于USB2.0标准Master总线101(即所述方法中的第一USB总线)的外设3的设备信息通过USB3.0或以上标准Slaver总线201转发到主机端1。
主机端1的Slaver设备驱动1001获取扩展端2的信息处理软件2001所上报的设备信息,并根据外设3的带宽需求以及USB2.0标准理论的带宽承载力之间的关系,模拟对应的外设3向主机系统/业务软件1003发送连接请求,在主机端1的USB虚拟总线上生成与外设3一一对应的设备节点。
主机端1的USB虚拟总线驱动1002接收到主机系统/业务软件1003对外设3的URB包时,将URB包通过USB3.0或以上标准Slaver总线201上的Bulk通道2003转发给扩展端2的信息处理软件2001;
扩展端2的信息处理软件2001接收到URB包后,将URB包转发给其对应的真实外设3,待真实外设3应答后,将应答信息通过USB3.0或以上标准Slaver总线201上的Bulk通道2003转发给主机端1的Slaver设备驱动1001;主机端1的Slaver设备驱动1001将接收到的应答信息转换为对应USB2.0虚拟总线的URB应答,并将URB应答发送给主机系统/业务软件1003。
本发明的实施例三为:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现实施例一所述一种USB带宽扩展方法中的各个步骤。
综上所述,本发明提供的一种USB带宽扩展方法、装置及可读存储介质,通过增设扩展端,使得主机与外设之间不直接进行数据传输,而是通过第一USB总线与第二USB总线在主机与扩展端进行数据传输,则在主机需要连接多个外设时,只需要通过增加扩展端的USB总线数量,即可实现主机的USB带宽扩展,拓展性较强,从而避免对主机的主板或内部空间进行整改,硬件成本低,提高主机USB带宽使用的灵活性;并且降低了主机与外设之间的延时,保障了应用场景下业务运行的连续性。同时,在主机内根据外设的设备信息生成对应的USB虚拟总线,使得外设虽然连接于扩展端,但通过USB虚拟总线能够转换主机的操作请求以及扩展端的应答信息,让主机与外设之间能够实现信息传输,从而实现对外设的控制,无需修改主机和主机系统/业务软件,容易集成上线应用,兼容性较强。这种带宽扩展方式无需多主机协同连接外设,减少了空间占用。此外,通过扩展端的配置信息使得扩展端与主机之间的连接带有设备授权功能,保障信息系统的安全性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种USB带宽扩展方法,其特征在于,包括步骤:
构建与第一USB总线对应标准的USB虚拟总线;
通过所述第一USB总线以及第二USB总线获取与扩展端连接的外设的设备信息;
根据所述设备信息在所述USB虚拟总线上生成与所述外设一一对应的设备节点;
接收主机系统对所述外设的操作请求,并根据配置信息将所述操作请求发送给所述外设;
通过所述第一USB总线以及第二USB总线获取所述外设的应答信息,并通过所述USB虚拟总线将所述应答信息返回给所述主机系统。
2.根据权利要求1所述的一种USB带宽扩展方法,其特征在于,所述通过所述第一USB总线以及第二USB总线获取与扩展端连接的外设的设备信息包括:
通过所述第一USB总线接收与所述扩展端连接的外设的设备信息,并且通过所述第二USB总线传输所述设备信息;
所述根据所述设备信息在所述USB虚拟总线上生成与所述外设一一对应的设备节点包括:
根据所述设备信息获取所述外设的带宽需求;
根据所述带宽需求以及所述第一USB总线的带宽承载力,在所述USB虚拟总线上生成与所述外设一一对应的设备节点;
所述USB虚拟总线扣除系统预留带宽后的总带宽承载力大于或等于所述外设的带宽需求。
3.根据权利要求1所述的一种USB带宽扩展方法,其特征在于,所述通过扩展端获取外设的设备信息之后,包括:
通过所述扩展端对所述设备信息进行解析,得到所述外设的通讯模式以及基本信息;
根据所述通讯模式配置所述外设的通讯优先级,并将所述外设的通讯优先级以及基本信息记录在所述配置信息中。
4.根据权利要求3所述的一种USB带宽扩展方法,其特征在于,所述操作请求的最小数据单位为URB包;
所述接收所述主机系统对所述外设的操作请求,并根据配置信息将所述操作请求发送给所述外设包括:
接收所述主机系统对所述外设的操作请求,并在所述USB虚拟总线上生成与所述操作请求对应的URB包;
将所述URB包通过所述第二USB总线上基于批量传输方式构建的通讯通道传输至所述扩展端,并根据所述配置信息获取所述URB包对应外设的通讯优先级;
根据所述通讯优先级的顺序,将所述URB包依次通过所述第一USB总线发送给所述外设。
5.根据权利要求3所述的一种USB带宽扩展方法,其特征在于,所述通过所述第一USB总线以及第二USB总线获取所述外设的应答信息,并通过所述USB虚拟总线将所述应答信息返回给所述主机系统包括:
通过所述第一USB总线接收所述外设的应答信息,并通过所述第二USB总线上基于批量传输方式构建的通讯通道,将所述应答信息传输至所述USB虚拟总线;
在所述USB虚拟总线上将所述应答信息还原为所述外设对应的设备应答,并将所述设备应答返回给所述主机系统。
6.根据权利要求3所述的一种USB带宽扩展方法,其特征在于,所述通讯模式包括同步通讯;
所述根据所述通讯模式配置所述外设的通讯优先级包括:
若所述通讯模式为同步通讯,则配置所述外设的通讯优先级为最高级;
所述根据所述配置信息将所述操作请求发送给所述外设包括:
获取预设时间内所有操作请求对应外设的通讯优先级,并计算所述通讯优先级为最高级的优先操作请求的数量;
若所述操作请求中优先操作请求的数量达到预设阈值,则超出所述预设阈值的优先操作请求等待下一次的发送。
7.一种USB带宽扩展装置,其特征在于,包括主机端和扩展端;
所述扩展端包括信息处理器,所述信息处理器包括第一USB总线以及第二USB从总线;
所述主机端包括第二USB主总线;所述主机端用于构建与所述第一USB总线对应标准的USB虚拟总线;
所述第二USB从总线的一端连接所述第二USB主总线,所述第二USB从总线的另一端连接所述第一USB总线的一端,所述第一USB总线的另一端用于连接外设。
8.根据权利要求7所述的一种USB带宽扩展装置,其特征在于,所述第一USB总线为USB2.0标准总线;所述第二USB主总线和第二USB从主线为USB3.0或以上标准总线。
9.根据权利要求7所述的一种USB带宽扩展装置,其特征在于,还包括总线扩展芯片;所述总线扩展芯片的一端连接所述第二USB从总线,所述总线扩展芯片的另一端用于连接外设。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任意一项所述的一种USB带宽扩展方法中的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310803288.5A CN116909966A (zh) | 2023-07-03 | 2023-07-03 | Usb带宽扩展方法、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310803288.5A CN116909966A (zh) | 2023-07-03 | 2023-07-03 | Usb带宽扩展方法、装置及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116909966A true CN116909966A (zh) | 2023-10-20 |
Family
ID=88362055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310803288.5A Pending CN116909966A (zh) | 2023-07-03 | 2023-07-03 | Usb带宽扩展方法、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116909966A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117492525A (zh) * | 2023-12-29 | 2024-02-02 | 闪极科技(深圳)有限公司 | Usb扩展设备、带宽管理方法和可读存储介质 |
-
2023
- 2023-07-03 CN CN202310803288.5A patent/CN116909966A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117492525A (zh) * | 2023-12-29 | 2024-02-02 | 闪极科技(深圳)有限公司 | Usb扩展设备、带宽管理方法和可读存储介质 |
CN117492525B (zh) * | 2023-12-29 | 2024-04-16 | 闪极科技(深圳)有限公司 | Usb扩展设备、带宽管理方法和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10365830B2 (en) | Method, device, and system for implementing hardware acceleration processing | |
CN109471816B (zh) | 一种基于描述符的pcie总线dma控制器及数据传输控制方法 | |
US9009373B2 (en) | Method for implementing audio transmission and mobile terminal | |
US6816929B2 (en) | Data transfer control method and controller for universal serial bus interface | |
CN106951388B (zh) | 一种基于PCIe的DMA数据传输方法及系统 | |
CN116909966A (zh) | Usb带宽扩展方法、装置及可读存储介质 | |
EP3716084A1 (en) | Apparatus and method for sharing a flash device among multiple masters of a computing platform | |
CN114385534B (zh) | 一种数据处理的方法及装置 | |
CN107852423B (zh) | 用于usb 2.0带宽保留的方法及系统 | |
CN117112465B (zh) | Dma调度器及方法、片上系统、电子组件及设备 | |
JP3755594B2 (ja) | データ転送制御装置及び電子機器 | |
JP3636158B2 (ja) | データ転送制御装置及び電子機器 | |
CN110971621A (zh) | 基于sdio接口的嵌入式多cpu互联电路、互联方法及驱动方法 | |
US10176133B2 (en) | Smart device with no AP | |
US6799231B2 (en) | Virtual I/O device coupled to memory controller | |
EP4440080A1 (en) | Network node configuration and access request processing method and apparatus | |
CN117971135B (zh) | 存储设备的访问方法、装置、存储介质和电子设备 | |
CN220290210U (zh) | 一种usb带宽扩展装置、系统及设备 | |
CN115277842B (zh) | 一种多分区网管下沉通信方法 | |
CN108199864A (zh) | 一种基于PCIe事务层数据传输的带宽分配方法 | |
US20240356886A1 (en) | Network Node Configuration Method and Apparatus, and Access Request Processing Method and Apparatus | |
WO2024140615A1 (zh) | 上报中断的方法、中断的配置方法和装置 | |
WO2024060247A1 (zh) | 基于蓝牙通信的数据交互方法、装置、设备及存储介质 | |
JP4127069B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
CN115454895A (zh) | 一种usb接口扩展方法、系统、设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |