CN107506324A - 转接设备、远程通信***、数据传输方法及装置 - Google Patents
转接设备、远程通信***、数据传输方法及装置 Download PDFInfo
- Publication number
- CN107506324A CN107506324A CN201710617520.0A CN201710617520A CN107506324A CN 107506324 A CN107506324 A CN 107506324A CN 201710617520 A CN201710617520 A CN 201710617520A CN 107506324 A CN107506324 A CN 107506324A
- Authority
- CN
- China
- Prior art keywords
- usb
- data
- client
- interconnecting
- host
- 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
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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种转接设备、远程通信***、数据传输方法及装置。其中,该转接设备包括:PCIe接口,用于提供与主机设备的通信接口;转换电路,与PCIe接口连接,用于通过PCIe接口从主机设备读取通用串行总线USB传输描述符信息,并将USB传输描述符信息转换为USB请求块URB格式,得到第一数据;处理器,用于检测客户端设备侧多个USB设备的插拔事件,以及建立客户端设备所接入的多个USB设备与主机设备的映射关系;收发电路,与转换电路连接,用于将第一数据发送至客户端设备,其中,第一数据中携带有多个USB设备中至少一个USB设备的标识。本申请解决了目前的USB拉远方案存在局限性的技术问题。
Description
技术领域
本申请涉及USB设备重定向领域,具体而言,涉及一种转接设备、远程通信***、数据传输方法及装置。
背景技术
随着计算机技术的不断发展,个人数据或者图形远程工作站、数据中心等设备越来越复杂,导致设备的显示和输入控制设备需要USB设备覆盖非常复杂的应用场景,催生了通用串行总线(Universal Serial Bus,简称为USB)接口设备拉远的需求。所谓USB接口设备拉远,是指将本地(客户端)的USB设备挂载到远端(主机端)的计算机。
目前,业界主要有以下USB接口设备拉远的实现方案:
Linux源码支持的USB OVER IP方案;主机(HOST)端需要安装相应的虚拟USB主机控制器驱动和对应软件;HOST端的驱动需要针对指定的平台;HOST端被安装软件导致原***安全性下降;并且,客户(client)端的USB HOST控制器结构必须和协议规定的控制器结构一致;该方法只能限制应用在定制的硬件***中;网络链路数据传输利用率低,降低了USB的访问带宽。
Teradici基于USB控制器控制接口的桥接方案;client端的USB HOST控制器结构必须和协议规定的控制器结构一致,因此,该方法只能限制应用在定制的硬件***中;网络链路数据传输利用率低,降低了USB的访问带宽。
ICron HUB extenders桥接方案;该方案相当于延长了USB线而已,受USB链路的时间约束,距离只能控制在100米以内。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种转接设备、远程通信***、数据传输方法及装置,以至少解决目前的USB拉远方案存在局限性的技术问题。
根据本申请实施例的一个方面,提供了一种转接设备,包括:高速外设组件互联(Peripheral Component Interconnect express,简称为PCIe)接口,用于提供与主机设备的通信接口;转换电路,与PCIe接口连接,用于通过PCIe接口从主机设备读取通用串行总线USB传输描述符信息,并将USB传输描述符信息转换为USB请求块URB格式,得到第一数据;处理器,用于检测客户端设备侧多个USB设备的插拔事件,以及建立客户端设备所接入的多个USB设备与主机设备的映射关系;收发电路,与转换电路连接,用于将第一数据发送至客户端设备,其中,第一数据中携带有多个USB设备中至少一个USB设备的标识。
根据本申请实施例的另一方面,还提供了一种远程通信***,包括:主机设备;转接设备,该转接设备以上的转接设备,并且,转接设备通过PCIe接口与主机设备连接;客户端设备,设置有多个通用串行总线USB接口,连接有多个USB设备,用于接收主机设备通过转接设备发送的数据,并将接收的数据发送至USB设备,和/或,通过转接设备向主机设备发送多个USB设备产生的数据。
根据本申请实施例的又一方面,还提供了一种数据传输方法,包括:检测客户端设备侧多个USB设备的插拔事件;在检测到多个USB设备中的至少一个接入时,建立客户端设备所接入的多个USB设备与主机设备的映射关系;通过高速外设组件互联PCIe接口从主机设备中读取通用串行总线USB传输描述符信息;将USB传输描述符信息转换为USB请求块URB格式,得到第一数据,其中,第一数据中携带有多个USB设备中至少一个USB设备的标识;将第一数据发送至客户端设备。
根据本申请实施例的又一方面,还提供了一种数据传输装置,包括:检测模块,用于检测客户端设备侧多个USB设备的插拔事件;链路建立模块,用于在检测到多个USB设备中的至少一个接入时,建立客户端设备所接入的多个USB设备与主机设备的映射关系;读取模块,用于通过PCIe接口从主机设备中读取USB传输描述符信息;转换模块,用于将USB传输描述符信息转换为USB请求块URB格式,得到第一数据,其中,第一数据中携带有多个USB设备中至少一个USB设备的标识;发送模块,用于将第一数据发送至客户端设备。
根据本申请实施例的又一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行以上的数据传输方法。
根据本申请实施例的再一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行以上的数据传输方法。
在本申请实施例中,采用设置有PCIe接口、用于将USB传输描述符信息转换为URB格式的数据的转换电路和收发电路的转接设备,通过PCIe接口接入主机,从而实现客户端和主机的通信,进而实现了USB设备拉远的通信,由于采用上述转接设备进行USB设备拉远通信时对主机的软硬件没有限制,因此,实现了USB设备拉远方案的通用性,对0进而解决了目前的USB拉远方案存在局限性的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种转接设备的结构示意图;
图2a是根据本申请实施例的一种可选的转接设备的结构示意图;
图2b是根据本申请实施例的一种可选的转接设备的结构示意图
图3是根据本申请实施例的另一种可选的转接设备的结构示意图;
图4a是根据本申请实施例的一种数据传输方法的流程图;
图4b是根据本申请实施例的一种数据传输装置的结构框图;
图5a是根据本申请实施例的一种远程通信***的结构示意图;
图5b是根据本申请实施例的另一种远程通信***的结构示意图;
图6是根据本申请实施例的一种网络拉远原理的结构示意图;
图7是根据本申请实施例的一种可选的USB链路协议栈的结构示意图;
图8是根据本申请实施例的另一种可选的远程通信***的结构示意图;
图9是根据本申请实施例的一种可选的客户端设备的结构示意图;
图10是根据本申请实施例的一种可选的主机端的控制流程示意图;
图11是根据本申请实施例的一种可选的客户端设备的控制流程示意图;
图12为根据本申请实施例的一种可选的USB传输描述符列表示意图;
图13为根据本申请实施例的一种可选的URB数据与USB传输描述符列表的映射关系示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解本申请实施例,以下将本申请实施例中所涉及的技术术语解释如下:
URB:linux内核中USB驱动实现上的一个数据结构;
操作寄存器(operation regs):EHCI协议规定的操作寄存器,对EHCI USB控制器进行控制的接口;
USB传输描述符列表(101):transaction descriptors set up in main memoryby usb system software,figure(101)。
实施例1
相关技术中,USB设备功能应用越来越广泛,但是USB设备驱动之间的差异也越来越多;大数据、云计算的用户使用USB设备时,希望和本地设备使用体验一致,由于定制化的嵌入式驱动不能满足所有的设备,因此催生了USB OVER IP的需求。即支持USB设备拉远:实现USB设备插在本地客户端上,和直接插在远端计算机上用户体验一致;支持PCIe接口:基于PCIe接口的EHCI协议USB控制器,网络协议传输能兼容软件方式;支持多对一:能够实现多对一方式,即一个远端服务器(HOST)控制多个终端(Client)USB设备;便于实现跨平台:HOST机器上免安装软件驱动,便于实现跨平台。
为实现上述目的,本申请实施例提供了一种转接设备,如图1所示,包括:
PCIe接口11,用于提供与主机设备的通信接口;转接设备通过PCIe接口11接入主机设备。
转换电路13,与上述PCIe接口11连接,用于通过上述PCIe接口11从上述主机设备读取USB传输描述符信息,并将上述USB传输描述符信息转换为URB格式,得到第一数据。
该转换过程可以表现为利用USB传输描述符信息和URB数据的映射关系,得到上述URB格式的数据,即第一数据。其中,USB传输描述符信息可以为USB传输描述符列表中的信息。
收发电路15,与上述转换电路13连接,用于将上述第一数据发送至客户端设备。在一个可选实施例中,收发电路可以包括网络通信模块,即通过网络实现主机和客户端设备之间的数据传输,具体地,如图2a所示,上述收发电路15,包括:网络通信模块151,用于将上述第一数据封装为第一网络数据包,并将上述第一网络数据包发送至上述客户端设备。由此可见,本申请实施例提供的转接设备作为主机和客户端设备之间的沟通桥梁,其与客户端设备通过网络进行通信,该网络依据使用场景的不同可以表现为不同的实现方式,例如,其可以为以太网,本地局域网等。
需要说明的是,网络通信模块中的封装功能,即将第一数据封装为网络数据包的功能可以移至处理器来实现,即由处理器来完成上述封装功能。
处理器17,该处理器17包括用于实现以下功能的模块:HUB模块171,用于检测客户端设备侧多个USB设备的插拔事件,以扩展对更多USB设备的支持。IP地址管理模块173,用于建立客户端设备所接入的多个USB设备与主机设备的映射关系,这样,便可以根据该映射关系建立与客户端设备所接入的USB设备的通信链路,以实现USB设备的拉远操作。
需要说明的是,上述HUB模块171和IP地址管理模块173可以为独立的硬件电路,也可以集成至一个硬件电路中:
其中,对于第一种实现方式,可以通过将HUB模块171和IP地址管理模块173实现的功能通过第一处理器和第二处理器实现;对于第二种实现方式,可以通过将两个模块实现的功能位于同一处理器中实现。
在一个可选实施例中,收发电路15,还用于接收客户端设备接入的多个USB设备的USB设备信息;IP地址管理模块173,用于依据USB设备信息建立映射关系。
在一个可选实施例中,HUB模块171,还用于通过收发电路15向主机设备通知多个USB设备的插拔事件。
采用本实施例提供的技术方案,可以解决USB拉远方案存在局限性的问题,例如需要安装驱动软件,对硬件结构有要求,或者传输距离受限。采用上述方案,可以不需要在宿主机上安装额外的软件,保证工作站数据安全;可以支持多个接入点的多个USB设备;对接入点的USB控制器没有限制,跨平台更好。
作为本申请的一个可选实施例,收发电路15,还用于接收上述客户端设备依据上述第一数据返回的第二数据,并将上述第二数据发送至上述转换电路13。即本申请实施例中的转接设备不仅可以实现主机设备到客户端设备的数据发送,也可以实现客户端设备到主机设备的数据发送,此时,转接设备可以认为是起到数据转发的作用。此时,上述转换电路13,还用于将上述第二数据由URB格式转换为USB传输描述符信息,即转接设备将客户端设备发送的URB格式的第二数据转换为USB格式,以将数据发送至主机设备。可选地,上述转换电路13,还用于通过以下方式将上述USB传输描述符信息转换为URB格式:基于上述USB传输描述符信息与URB数据的映射关系,获取与上述USB传输描述符信息对应的URB数据。
可选地,如图2a所示,上述转接设备还可以包括但不限于:存储器21,设置于上述转换电路13和上述收发电路15之间,用于存储上述第一数据;上述转换电路13,还用于依次将USB数据描述符链表中的上述USB传输描述符信息转换为URB格式,并存储至上述存储器21中。这样,便可以对URB数据进行后续统一处理。
可选地,如图2a所示,上述转接设备还可以包括但不限于:控制器23,用于通过上述PCIe接口接收来自上述主机设备的设置地址指令,以及依据上述设置地址指令确定与上述客户端设备进行通信的地址。需要说明的是,该控制器23也可以为多个,也可以为一个,即,一个控制器对应一个功能,也可以是一个控制器实现多个功能,具体根据实际情况灵活确定。
可选地,为了提高效率,上述控制器23,还用于在上述主机设备进行USB设备的枚举过程中,向上述主机设备返回已有的USB设备信息。即控制器19在枚举USB设备的过程中,根据已有的USB设备信息直接返回设备信息。
需要说明的是,处理器17和控制器23可以为两个独立的器件,也可以为一个独立的器件,对于后者,可以通过一个器件同时完成处理器17和控制器23的功能。
需要说明的是,图1、2a和图2b中所示转接设备中的各个组成部分可以为同一产品中的结构,也可以为分离设置的部件。对于前者,在一个可选实施例中,如图2b所示,转接设备还包括一个壳体1,该壳体1内部设置有上述PCIe接口11、转换电路13、收发电路15、HUB模块171、IP地址管理模块173,存储器21和控制器23,均设置于壳体1中。
图3是根据本申请实施例的另一种可选的转接设备的结构示意图。如图3所示,该转换桥接卡包含了PCIe接口30,操作寄存器处理模块301,主机数据读写处理模块及数据转换模块300,USB设备枚举处理模块302,USB设备管理及设备描述符管理模块303,数据存储单元102及网络控制模块304,USB设备IP地址管理模块306和USB HUB模块307。其中,操作寄存器处理模块301、USB设备枚举处理模块302,USB设备管理及设备描述符管理模块303相当于图2中的控制器21;数据存储单元102相当于图2中的存储器21;网络控制模块304相当于图2中的收发电路15。
其中,操作寄存器处理模块301根据接入USB设备的状态配置EHCI/OHCI操作寄存器,主机通过读取和配置操作寄存器的状态完成对USB设备的枚举和通信,其中主机通过操作寄存器指定了位于主机***存储单元内的USB传输描述符列表101入口指针;主机数据读写处理模块及数据转换模块(300)根据操作寄存器提供的链表指针,读取USB传输描述符列表101,把链表数据依次转换为URB数据包并存储到数据存储单元102,并根据URB数据包执行状态修改USB传输描述符列表101状态;USB设备枚举处理模块302,在主机对设备进行枚举时,USB设备枚举处理模块(302)根据主机配置设备地址(set address)命令,记录主机分配给USB设备地址到相应的USB设备信息表内;另外,为了减少设备枚举的时间,在枚举的过程中,USB设备枚举处理模块302根据已有的USB设备信息直接返回设备信息;USB设备管理及设备描述符管理模块303,维护USB设备信息表(305)包括USB设备在主机端的地址信息、USB设备描述符、USB设备接口描述符、在远端的设备地址等,并监控Client端设备的热插拔事件;网络控制模块304,发送网络数据包202和接收URB数据包返回数据。
其中,USB设备管理及设备描述符管理模块通过网络控制模块获取client端的USB设备描述符信息后,相关信息保存到USB设备信息表内,该设备的USB地址默认为0;
USB设备枚举处理模块依次处理USB设备信息表内USB地址为0的设备,USB设备枚举处理模块配置修改操作寄存器处理模块内的portsc寄存器(可以支持16个设备端口状态),通知HOST端主机有设备接入,HOST端主机对设备进行枚举操作;USB设备枚举处理模块检测到USB设备信息表中USB设备为删除状态,配置修改操作寄存器处理模块内的portsc寄存器,通知HOST端主机设备断开,HOST端主机删除该设备相关的传输描述符列表;USB设备管理及设备描述符管理模块从USB设备信息表内删除该设备相关信息。查询USB设备信息表内USB地址为0的设备;处理设备地址为默认地址0的传输描述符列表,并配置操作寄存器处理模块和主机进行交互,完成设备发现和设备地址管理;查询USB设备信息表,发现某个USB设备为删除状态,配置修改操作寄存器处理模块内的portsc寄存器,通知HOST端主机设备断开;
主机数据读写处理模块及数据转换模块从主机读取传输描述符列表,在主机配置设备地址之前,USB设备枚举处理模块根据USB设备信息表应答HOST端主机的枚举过程;在HOST端主机配置设备地址之后,更新USB设备信息表;
主机数据读写处理模块及数据转换模块根据USB设备信息表依次将从主机读取的传输描述符列表转换为URB数据包,并提交给网络控制模块;当USB设备管理及设备描述符管理模块检测到client端USB设备拔出或者断开,修改USB设备信息表为删除状态;通过网络控制模块获取client端USB设备的设备描述符信息,并保存到USB设备信息表内;检测client端USB设备断开,并修改USB设备信息表为删除状态。
USB设备IP地址管理模块306,管理与各个Client端的数据链路,并建立USB设备地址映射表。
USB HUB模块307,模拟USB设备的热插拔事件,扩展对更多USB设备的支持。
需要说明的是,图1至图3中所示转接设备的具体结构仅是示意,在具体应用时,本申请中的转接设备可以具有比图1至图3所示转接设备多或少的结构。
实施例2
根据本申请实施例,提供了一种数据传输方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例提供的数据传输方法,可以运行于图1至图3所示转接设备中,但不限于此。图4a是根据本申请实施例的一种可选的数据传输方法的流程图。如图4a所示,该方法包括:
步骤S402,检测客户端设备侧多个USB设备的插拔事件。
此处检测过程可以表现为是否接收到客户设备设备发送的通知信息,该通知信息是客户端设备检测到USB设备的插拔事件后发送的。
步骤S404,在检测到多个USB设备中的至少一个接入时,建立客户端设备所接入的多个USB设备与主机设备的映射关系。由此可见,本申请实施例提供的方案支持多个USB设备同时进行拉远通信。
步骤S406,通过PCIe接口从主机设备中读取USB传输描述符信息。
步骤S408,将上述USB传输描述符信息转换为URB格式,得到第一数据。
在一个可选实施例中,可以通过以下方式实现上述转换过程:基于上述USB传输描述符信息与URB数据的映射关系,获取与上述USB传输描述符信息对应的URB数据。
步骤S410,将上述第一数据发送至客户端设备,其中,上述第一数据中携带有多个USB设备中至少一个USB设备的标识。
在一个可选实施例中,通过上述PCIe接口接收来自上述主机设备的设置地址指令,以及依据上述设置地址指令确定与上述客户端设备进行通信的地址。其地址类型可以为IP地址,但不限于此。
作为本申请的一个可选实施例,在上述主机设备进行USB设备的枚举过程中,向上述主机设备返回已有的USB设备信息。
在一个可选实施例中,检测上述客户端设备所接入USB设备的接入状态,其中,上述接入状态包括以下至少之一:上述USB设备接入上述客户端设备,上述USB设备断开与上述客户端设备的连接;依据上述接入状态更新上述已有的USB设备信息。其中,上述“更新”包括但不限于:修改、删除、添加。
需要说明的是,上述各个步骤的执行主体可以为转接设备,但不限于此。
在一个可选实施例中,还可以接收上述客户端设备依据上述第一数据返回的第二数据;并将上述第二数据由URB格式转换为USB传输描述符信息。例如,上述第一数据为发往客户端设备的请求消息,上述第二数据为上述客户端设备依据请求消息反馈的响应消息。
本申请实施例还提供一种数据传输装置,该装置用于实现上述方法,图4b是根据本申请实施例的一种数据传输装置的结构框图。如图4b所示,该装置包括:检测模块40,用于检测上述客户端设备侧多个USB设备的插拔事件;
建立模块42,用于在检测到上述多个USB设备中的至少一个接入时,建立客户端设备所接入的多个USB设备与上述主机设备的映射关系;读取模块44,用于通过高速外设组件互联PCIe接口从主机设备中读取通用串行总线USB传输描述符信息;转换模块46,用于将上述USB传输描述符信息转换为USB请求块URB格式,得到第一数据,第一数据中携带有多个USB设备中至少一个USB设备的标识;发送模块48,用于将上述第一数据发送至客户端设备。
在一个可选实施例中,如图4b所示,上述数据传输装置还可以包括:接收模块50,用于接收上述客户端设备依据上述第一数据返回的第二数据,并将上述第二数据发送至上述转换模块46;上述转换模块46,还用于将上述第二数据由URB格式转换为USB传输描述符信息。
需要说明的是,上述发送模块48和接收模块50可以通过一个模块来实现,例如通过一个收发电路实现,但不限于此。
实施例3
图5a是根据本申请实施例的一种远程通信***的结构示意图。如图5a所示,该***包括:
主机设备50;
转接设备52,该转接设备可以为实施例1中的转接设备,并且,转接设备52通过PCIe接口与主机设备50连接;
客户端设备54,设置有多个USB接口,连接有多个USB设备,用于接收上述主机设备50通过上述转接设备发送的数据,,并将接收的数据发送至USB设备,和/或,通过上述转接设备向上述主机设备发送上述多个USB设备产生的数据。其中,“依据上述多个USB设备产生的数据”包括但不限于USB设备产生的控制指令;或者,主机设备对USB设备的控制指令。
可选地,客户端设备54上设置有多个USB接口。在一个可选实施例中,如图5b所示,上述***还可以包括HUB模块56,该HUB模块56与主机设备50连接,用于接入至少一个客户端设备54。
上述客户端设备,还用于在将上述接收的数据发送至USB设备之前,以及在上述接收的数据为网络数据包格式的情况下,将上述接收的数据转换为URB格式。
图6是根据本申请实施例的一种网络拉远原理的结构示意图。如图6所示,主机端的转换桥接卡(即转接设备)通过PCIe接口600接入主机设备,依据EHCI/OHCI接口协议,把USB传输描述符列表(101)转换为URB(100)数据格式,并通过网络数据包(602)传输到客户机(即客户端设备),客户机通过客户端桥接应用程序把网络包(102)恢复为客户机的URB(103)数据格式,并将URB数据格式的数据传输至与客户机连接的USB设备中。图6中,104也表示USB传输符列表。
图7是根据本申请实施例的一种可选的USB链路协议栈的结构示意图。如图7所示,基于EHCI/OHCI接口协议的USB主机控制器的USB链路协议栈分为主机软件部分和USB控制器PCIe接口卡部分,主机软件部分运行在工作站或者数据中心,USB控制器PCIe接口卡通过PCIe接口接入工作站或者数据中心;主机软件部分包含USB设备驱动、USB核心驱动(coredriver)、USB控制器驱动,是一般***都包含的;其中USB控制器驱动向协议栈的上层USBcore driver提供的接口为标准的USB request block数据接口(简称URB)(100);USB控制器驱动与USB控制器的链接方式由EHCI/OHCI接口协议定义的,EHCI/OHCI接口协议定义了PCI物理接口600的数据链路协议,包含了USB控制器具体的功能配置寄存器、操作寄存器和USB传输描述符列表(101)。
图8是根据本申请实施例的另一种可选的远程通信***的结构示意图。如图8所示,该***包括:
主机端的主机端协议转换桥接卡80通过PCIe接口800接入工作站或者数据中心,client端设备82通过网络控制模块84与主机端协议转换桥接卡80的网络控制模块86连接,完成客户端设备82接入的USB设备通过网络拉远到HOST端的工作站或者数据中心上;其中,客户端设备82包括网络控制模块84和客户端处理模块88。
图9是根据本申请实施例的一种可选的客户端设备的结构示意图。如图9所示,USB设备拉远客户端设备包含了客户端处理模块90(相当于图8中的客户端处理模块88)、网络控制模块92和多个USB设备;客户端处理模块90包含了远端桥接应用程序901、远端桥接设备驱动902和USB驱动和控制器模块903;其中,USB驱动和控制器模块903是一般计算机或者嵌入***包含的,可以完成对USB设备的枚举过程,并向上层提供了通用数据(URB)访问接口;远端桥接设备驱动902,属于协议栈的USB设备驱动层,把网络URB数据转换为Client端支持的URB数据包并提交给USB驱动和控制器模块903;远端桥接应用程序901,接收和维护HOST端网络的连接请求,管理USB设备驱动,把HOST端的网络URB数据包提交给远端桥接设备驱动902。
图10是根据本申请实施例的一种可选的主机端的控制流程示意图。如图10所示,该流程包括:
1、主机端协议转换桥接卡***HOST端主机,上电初始化所有硬件;
2、主机端协议转换桥接卡通知主机枚举USB HUB模块;
3、等待client端网络连接后,USB设备管理及设备描述符管理模块(403)读取client端USB设备信息,USB设备IP地址管理模块(406)根据获取的信息建立USB设备地址映射表(408);
4、USB HUB模块(407)通过HUB消息机制通知HOST端有新的USB设备接入;
5、HOST端主机通过配置操作寄存器提供USB数据描述符链表(101)的操作入口;
6、主机数据读写处理模块及数据转换模块(400)读取数据描述符链表,并将数据描述符转化为URB数据包(102);
7、URB数据包被网络控制模块(404)转发到client端;
8、等待网络端数据回复;
9、收到client端URB包数据回复,主机数据读写处理模块及数据转换模块(400)将数据回复转化为描述符状态;
10、主机数据读写处理模块及数据转换模块(400)修改HOST端主机描述符状态;
11、如果描述符链路还有有效描述符,重复5-8过程;
12、如果第7步,发现网络端口或者设备端口,操作寄存器处理模块(400)配置操作寄存器通知host端主机设备已经发现端口。
图11是根据本申请实施例的一种可选的客户端设备的控制流程示意图。如图11所示,
1、主机端协议转换桥接卡***HOST端主机,上电初始化硬件和软件;
2、USB控制器发现新USB设备接入;
3、USB驱动和控制器模块(503)对USB设备进行枚举;
4、设备枚举结束后,客户端桥接应用程序(501)把该USB设备挂载到客户端桥接设备驱动(502);
5、等待与HOST端网络链路正常;
6、客户端桥接应用程序(501)向HOST端发送USB设备信息表;
7、客户端桥接应用程序(501)等待HOST端发送网络URB数据包(102),并将网络URB数据包(102)提交给客户端桥接设备驱动(502);
8、客户端桥接设备驱动(502)提交给USB驱动和控制模块(503);
9、等待执行URB数据包结束;
10、USB驱动和控制器模块(503)回复HOST端主机URB数据包执行结果;
11、处理下一个URB数据包,重复第七步到第10步;
12、检测到USB设备断开,通知HOST端主机设备断开。
图12为根据本申请实施例的一种可选的USB传输描述符列表示意图。如图12所示,在本申请的一个可选实施例中,USB传输描述符包括两类:QH和qTD。
在本申请的一个可选实施例中,可以通过URB数据与USB传输描述符列表中的USB传输描述符信息的映射关系实现格式转换,图13为根据本申请实施例的一种可选的URB数据与USB传输描述符列表的映射关系示意图。如图13所示,iTD列表包含了URN数据包所需要的所有数据,其与URB数据存在映射关系。其中,上述转换流程包括:主机数据读写处理模块及数据转换模块(400)通过操作寄存器处理模块(401)提供的memory指针,读取QH和qTD传输描述符列表;QH传输链表内容如图13中的iTD列表所示,包含了URB包所需要的所有数据。依照URB数据格式转换为URB数据包。
采用本实施例提供的方案,不需要在主机上安装额外的软件;不侵入HOST端***,保证原***安全稳定;方便跨多种***平台,使用方便;对接入点Client端的USB主机控制器没有限制,可以较好地使用于跨平台的场景。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (20)
1.一种转接设备,其特征在于,包括:
高速外设组件互联PCIe接口,用于提供与主机设备的通信接口;
转换电路,与所述PCIe接口连接,用于通过所述PCIe接口从所述主机设备读取通用串行总线USB传输描述符信息,并将所述USB传输描述符信息转换为USB请求块URB格式,得到第一数据;
处理器,用于检测客户端设备侧多个USB设备的插拔事件,以及建立客户端设备所接入的多个USB设备与所述主机设备的映射关系;
收发电路,与所述转换电路连接,用于将所述第一数据发送至客户端设备,其中,所述第一数据中携带有所述多个USB设备中至少一个USB设备的标识。
2.根据权利要求1所述的转接设备,其特征在于,
所述收发电路,还用于接收所述多个USB设备通过所述客户端设备返回的第二数据,并将所述第二数据发送至所述转换电路,其中,所述第二数据中携带有产生所述第二数据的USB设备的标识;
所述转换电路,还用于将所述第二数据由URB格式转换为USB传输描述符信息。
3.根据权利要求1所述的转接设备,其特征在于,所述收发电路,还用于接收所述客户端设备接入的多个USB设备的USB设备信息;所述处理器,用于依据所述USB设备信息建立所述映射关系。
4.根据权利要求1所述的转接设备,其特征在于,所述收发电路,包括:网络通信模块,用于将所述第一数据封装为第一网络数据包,并将所述第一网络数据包发送至所述客户端设备。
5.根据权利要求1所述的转接设备,其特征在于,
所述转接设备还包括:存储器,设置于所述转换电路和所述收发电路之间,用于存储所述第一数据;
所述转换电路,还用于依次将USB数据描述符链表中的所述USB传输描述符信息转换为URB格式,并存储至所述存储器中。
6.根据权利要求1所述的转接设备,其特征在于,所述转换电路,还用于通过以下方式将所述USB传输描述符信息转换为URB格式:
基于所述USB传输描述符信息与URB数据的映射关系,获取与所述USB传输描述符信息对应的URB数据。
7.根据权利要求1所述的转接设备,其特征在于,
所述处理器,还用于通过所述收发电路向所述主机设备通知所述多个USB设备的插拔事件。
8.根据权利要求1至7中任一项所述的转接设备,其特征在于,所述转接设备还包括:
控制器,用于通过所述PCIe接口接收来自所述主机设备的设置地址指令,以及依据所述设置地址指令确定与所述客户端设备进行通信的地址。
9.根据权利要求8所述的转接设备,其特征在于,所述控制器,还用于在所述主机设备进行USB设备的枚举过程中,向所述主机设备返回已有的USB设备信息。
10.一种远程通信***,其特征在于,包括:
主机设备;
转接设备,该转接设备为权利要求1至9中任一项所述的转接设备,并且,所述转接设备通过高速外设组件互联PCIe接口与所述主机设备连接;
客户端设备,设置有多个通用串行总线USB接口,连接有多个USB设备,用于接收所述主机设备通过所述转接设备发送的数据,并将接收的数据发送至USB设备,和/或,通过所述转接设备向所述主机设备发送所述多个USB设备产生的数据。
11.根据权利要求10所述的远程通信***,其特征在于,所述客户端设备,还用于在将所述接收的数据发送至USB设备之前,以及在所述接收的数据为网络数据包格式的情况下,将所述接收的数据转换为URB格式。
12.根据权利要求10或11所述的远程通信***,其特征在于,所述客户端设备为多个。
13.一种数据传输方法,其特征在于,包括:
检测客户端设备侧多个USB设备的插拔事件;
在检测到所述多个USB设备中的至少一个接入时,建立客户端设备所接入的多个USB设备与主机设备的映射关系;
通过高速外设组件互联PCIe接口从主机设备中读取通用串行总线USB传输描述符信息;
将所述USB传输描述符信息转换为USB请求块URB格式,得到第一数据,其中,所述第一数据中携带有所述多个USB设备中至少一个USB设备的标识;
将所述第一数据发送至客户端设备。
14.根据权利要求13所述的方法,其特征在于,通过通信链路将所述第一数据发送至客户端设备之后,所述方法还包括:
接收所述第一数据中携带的所述至少一个USB设备的标识所指示的USB设备通过客户端设备返回的第二数据;并将所述第二数据由URB格式转换为USB传输描述符信息,其中,所述第二数据为依据所述第一数据产生的数据,所述第二数据中携带有产生所述第二数据的USB设备的标识。
15.根据权利要求13所述的方法,其特征在于,所述方法还包括:
在所述主机设备枚举USB设备的过程中,向所述主机设备返回已有的USB设备信息。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
检测所述客户端设备所接入USB设备的接入状态,其中,所述接入状态包括以下至少之一:所述USB设备接入所述客户端设备,所述USB设备断开与所述客户端设备的连接;
依据所述接入状态更新所述已有的USB设备信息。
17.一种数据传输装置,其特征在于,包括:
检测模块,用于检测所述客户端设备侧多个USB设备的插拔事件;
建立模块,用于在检测到所述多个USB设备中的至少一个接入时,建立客户端设备所接入的多个USB设备与主机设备的映射关系;
读取模块,用于通过高速外设组件互联PCIe接口从主机设备中读取通用串行总线USB传输描述符信息;
转换模块,用于将所述USB传输描述符信息转换为USB请求块URB格式,得到第一数据,其中,所述第一数据中携带有所述多个USB设备中至少一个USB设备的标识;
发送模块,用于将所述第一数据发送至客户端设备。
18.根据权利要求17所述的装置,其特征在于,
所述装置还包括:接收模块,用于接收所述客户端设备依据所述第一数据返回的第二数据,并将所述第二数据发送至所述转换模块;
所述转换模块,还用于将所述第二数据由URB格式转换为USB传输描述符信息。
19.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求13至15中任意一项所述的数据传输方法。
20.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求13至15中任意一项所述的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710617520.0A CN107506324A (zh) | 2017-07-26 | 2017-07-26 | 转接设备、远程通信***、数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710617520.0A CN107506324A (zh) | 2017-07-26 | 2017-07-26 | 转接设备、远程通信***、数据传输方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107506324A true CN107506324A (zh) | 2017-12-22 |
Family
ID=60689003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710617520.0A Pending CN107506324A (zh) | 2017-07-26 | 2017-07-26 | 转接设备、远程通信***、数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107506324A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069288A (zh) * | 2019-03-13 | 2019-07-30 | 北京淳中科技股份有限公司 | Usb设备共享方法、装置及*** |
CN113395236A (zh) * | 2020-03-12 | 2021-09-14 | 杭州海康威视数字技术股份有限公司 | 一种usb数据透传的方法、***、装置及存储介质 |
CN114218138A (zh) * | 2021-11-30 | 2022-03-22 | 山东云海国创云计算装备产业创新中心有限公司 | 一种usb设备模拟装置及测试*** |
CN114385534A (zh) * | 2020-10-19 | 2022-04-22 | 华为技术有限公司 | 一种数据处理的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050209842A1 (en) * | 2004-03-16 | 2005-09-22 | Digi International Inc. | Remote USB port system and method |
US20050289370A1 (en) * | 2000-04-18 | 2005-12-29 | Digi International Inc. | Bus control module for improving legacy support |
CN101035039A (zh) * | 2007-04-20 | 2007-09-12 | 福建升腾资讯有限公司 | Usb映射方法 |
CN102789432A (zh) * | 2011-05-19 | 2012-11-21 | 中国电信股份有限公司 | Usb设备驱动方法和*** |
CN105391719A (zh) * | 2015-11-19 | 2016-03-09 | 苏州跬步信息技术有限公司 | 一种基于tcp/ip网络的智能设备远程控制***及其交互方法 |
-
2017
- 2017-07-26 CN CN201710617520.0A patent/CN107506324A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050289370A1 (en) * | 2000-04-18 | 2005-12-29 | Digi International Inc. | Bus control module for improving legacy support |
US20050209842A1 (en) * | 2004-03-16 | 2005-09-22 | Digi International Inc. | Remote USB port system and method |
CN101035039A (zh) * | 2007-04-20 | 2007-09-12 | 福建升腾资讯有限公司 | Usb映射方法 |
CN102789432A (zh) * | 2011-05-19 | 2012-11-21 | 中国电信股份有限公司 | Usb设备驱动方法和*** |
CN105391719A (zh) * | 2015-11-19 | 2016-03-09 | 苏州跬步信息技术有限公司 | 一种基于tcp/ip网络的智能设备远程控制***及其交互方法 |
Non-Patent Citations (1)
Title |
---|
杨勇: ""基于Linux的USB over IP***设计"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069288A (zh) * | 2019-03-13 | 2019-07-30 | 北京淳中科技股份有限公司 | Usb设备共享方法、装置及*** |
CN110069288B (zh) * | 2019-03-13 | 2022-03-04 | 北京淳中科技股份有限公司 | Usb设备共享方法、装置及*** |
CN113395236A (zh) * | 2020-03-12 | 2021-09-14 | 杭州海康威视数字技术股份有限公司 | 一种usb数据透传的方法、***、装置及存储介质 |
CN114385534A (zh) * | 2020-10-19 | 2022-04-22 | 华为技术有限公司 | 一种数据处理的方法及装置 |
CN114218138A (zh) * | 2021-11-30 | 2022-03-22 | 山东云海国创云计算装备产业创新中心有限公司 | 一种usb设备模拟装置及测试*** |
CN114218138B (zh) * | 2021-11-30 | 2024-05-28 | 山东云海国创云计算装备产业创新中心有限公司 | 一种usb设备模拟装置及测试*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6272551B1 (en) | Network adapter for transmitting network packets between a host device and a power line network | |
CN101849230B (zh) | 在多主机环境中共享遗留设备 | |
JP5917474B2 (ja) | 統合マルチ転送媒体コネクタを利用するシステム及びルーティング方法 | |
JP3799184B2 (ja) | 通信方法、送信方法、受信方法及びそれらを実施する装置 | |
CN107506324A (zh) | 转接设备、远程通信***、数据传输方法及装置 | |
US8407367B2 (en) | Unified connector architecture | |
CN101689171B (zh) | 网络中的端到端流控制 | |
US7458075B2 (en) | Virtual USB port system and method | |
CN102541791A (zh) | 数据传送装置及其控制方法 | |
WO2006110844A2 (en) | Tunneling sata targets through fibre channel | |
WO2008011727A1 (en) | Method and apparatus for distributing usb hub functions across a network | |
CN103248526A (zh) | 实现带外监控管理的通信设备、方法及主从切换方法 | |
CN102821082A (zh) | 一种数据传输方法、装置和*** | |
CN110532208A (zh) | 一种数据处理方法、接口转换结构及设备 | |
CN106610789A (zh) | 一种数据处理方法、装置及*** | |
CN103207801B (zh) | 虚拟机迁移的方法、装置和***及光纤通道交换机 | |
CN106407151A (zh) | 信息处理方法和装置 | |
CN108920193A (zh) | Fpga和cpu间sdio通信接口实现方法、及装置 | |
CN107168909A (zh) | 转接设备、远程通信***、数据传输方法及装置 | |
CN107391409B (zh) | 一种pci-e网络控制器、网络设备和数据传输方法 | |
CN106649186A (zh) | 应用程序与串口外设的通信方法及装置 | |
CN101212480B (zh) | 在usb主机和usb装置之间通信的方法和设备 | |
CN204595794U (zh) | Usb电脑切换器信号延长器及延长器*** | |
JPH07120320B2 (ja) | コンピュータバスと高速環状ネットワークとの間のデータ伝送システム | |
CN207676336U (zh) | 转接设备、远程通信*** |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171222 |