CN107168909A - 转接设备、远程通信***、数据传输方法及装置 - Google Patents
转接设备、远程通信***、数据传输方法及装置 Download PDFInfo
- Publication number
- CN107168909A CN107168909A CN201710486199.7A CN201710486199A CN107168909A CN 107168909 A CN107168909 A CN 107168909A CN 201710486199 A CN201710486199 A CN 201710486199A CN 107168909 A CN107168909 A CN 107168909A
- Authority
- CN
- China
- Prior art keywords
- usb
- data
- urb
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 97
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000008569 process Effects 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 9
- 230000002093 peripheral effect Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 28
- 238000007726 management method Methods 0.000 description 15
- 238000006243 chemical reaction Methods 0.000 description 12
- 101001042125 Eisenia hortensis Chymotrypsin inhibitor Proteins 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 210000000352 storage cell Anatomy 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 239000004606 Fillers/Extenders Substances 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000011084 recovery 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/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
-
- 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/0024—Peripheral component interconnect [PCI]
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Systems (AREA)
Abstract
本申请公开了一种转接设备、远程通信***、数据传输方法及装置。其中,该方法包括:通过PCIe接口从主机设备中读取通用串行总线USB传输描述符信息;将USB传输描述符信息转换为USB请求块URB格式,得到第一数据;将第一数据发送至客户端设备。本申请解决了目前的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,简称为PCI)接口,用于提供与主机设备的通信接口;转换电路,与PCIe接口连接,用于通过PCIe接口从主机设备读取通用串行总线USB传输描述符信息,并将USB传输描述符信息转换为USB请求块URB格式,得到第一数据;收发电路,与转换电路连接,用于将第一数据发送至客户端设备。
根据本申请实施例的另一方面,还提供了一种远程通信***,包括:主机设备;转接设备,该转接设备以上的转接设备,并且,转接设备通过PCIe接口与主机设备连接;客户端设备,用于接收主机设备通过转接设备发送的数据,和/或,通过转接设备向主机设备发送数据。
根据本申请实施例的又一方面,还提供了一种数据传输方法,包括:通过PCIe接口从主机设备中读取通用串行总线USB传输描述符信息;将USB传输描述符信息转换为USB请求块URB格式,得到第一数据;将第一数据发送至客户端设备。
根据本申请实施例的又一方面,还提供了一种数据传输装置,包括:读取模块,用于通过PCIe接口从主机设备中读取USB传输描述符信息;转换模块,用于将USB传输描述符信息转换为USB请求块URB格式,得到第一数据;发送模块,用于将第一数据发送至客户端设备。
根据本申请实施例的又一方面,还提供了一种存储介质,其特征在于,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行以上的数据传输方法。
根据本申请实施例的再一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行以上的数据传输方法。
在本申请实施例中,采用设置有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,用于将上述第一数据封装为第一网络数据包,并将上述第一网络数据包发送至上述客户端设备。由此可见,本申请实施例提供的转接设备作为主机和客户端设备之间的沟通桥梁,其与客户端设备通过网络进行通信,该网络依据使用场景的不同可以表现为不同的实现方式,例如,其可以为以太网,本地局域网等。
采用本实施例提供的技术方案,可以解决USB拉远方案存在局限性的问题,例如需要安装驱动软件,对硬件结构有要求,或者传输距离受限。
作为本申请的一个可选实施例,收发电路15,还用于接收上述客户端设备依据上述第一数据返回的第二数据,并将上述第二数据发送至上述转换电路13。即本申请实施例中的转接设备不仅可以实现主机设备到客户端设备的数据发送,也可以实现客户端设备到主机设备的数据发送,此时,转接设备可以认为是起到数据转发的作用。此时,上述转换电路13,还用于将上述第二数据由URB格式转换为USB传输描述符信息,即转接设备将客户端设备发送的URB格式的第二数据转换为USB格式,以将数据发送至主机设备。可选地,上述转换电路13,还用于通过以下方式将上述USB传输描述符信息转换为URB格式:基于上述USB传输描述符信息与URB数据的映射关系,获取与上述USB传输描述符信息对应的URB数据。
可选地,如图2a所示,上述转接设备还可以包括但不限于:存储器17,设置于上述转换电路13和上述收发电路15之间,用于存储上述第一数据;上述转换电路13,还用于依次将USB数据描述符链表中的上述USB传输描述符信息转换为URB格式,并存储至上述存储器17中。这样,便可以对URB数据进行后续统一处理。
可选地,如图2a所示,上述转接设备还可以包括但不限于:控制器19,用于通过上述PCIe接口接收来自上述主机设备的设置地址指令,以及依据上述设置地址指令确定与上述客户端设备进行通信的地址。需要说明的是,该控制器19也可以为多个,也可以为一个,即,一个控制器对应一个功能,也可以是一个控制器实现多个功能,具体根据实际情况灵活确定。
可选地,为了提高效率,上述控制器19,还用于在上述主机设备进行USB设备的枚举过程中,向上述主机设备返回已有的USB设备信息。即控制器19在枚举USB设备的过程中,根据已有的USB设备信息直接返回设备信息。
需要说明的是,图1和2中所示转接设备中的各个组成部分可以为同一产品中的结构,也可以为分离设置的部件。对于前者,在一个可选实施例中,如图2b所示,转接设备还包括一个壳体1,该壳体1内部设置有上述PCIe接口11、转换电路13、收发电路15、存储器17和控制器19,均设置与壳体1中。
图3是根据本申请实施例的另一种可选的转接设备的结构示意图。如图3所示,该转换桥接卡包含了PCIe接口30,操作寄存器处理模块(301),主机数据读写处理模块及数据转换模块(300),USB设备枚举处理模块(302),USB设备管理及设备描述符管理模块(303),数据存储单元102及网络控制模块304。其中,操作寄存器处理模块(301)、USB设备枚举处理模块(302),USB设备管理及设备描述符管理模块(303)相当于图2中的控制器21;数据存储单元102相当于图2中的存储器17;网络控制模块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设备信息表为删除状态。
需要说明的是,图1至图3中所示转接设备的具体结构仅是示意,在具体应用时,本申请中的转接设备可以具有比图1至图3所示转接设备多或少的结构。
实施例2
根据本申请实施例,提供了一种数据传输方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例提供的数据传输方法,可以运行于图1至图3所示转接设备中,但不限于此。图4a是根据本申请实施例的一种可选的数据传输方法的流程图。如图4a所示,该方法包括:
步骤S402,通过PCIe接口从主机设备中读取USB传输描述符信息;
步骤S404,将上述USB传输描述符信息转换为URB格式,得到第一数据;
在一个可选实施例中,可以通过以下方式实现上述转换过程:基于上述USB传输描述符信息与URB数据的映射关系,获取与上述USB传输描述符信息对应的URB数据。
步骤S406,将上述第一数据发送至客户端设备。
在一个可选实施例中,通过上述PCIe接口接收来自上述主机设备的设置地址指令,以及依据上述设置地址指令确定与上述客户端设备进行通信的地址。其地址类型可以为IP地址,但不限于此。
作为本申请的一个可选实施例,在上述主机设备进行USB设备的枚举过程中,向上述主机设备返回已有的USB设备信息。
在一个可选实施例中,检测上述客户端设备所接入USB设备的接入状态,其中,上述接入状态包括以下至少之一:上述USB设备接入上述客户端设备,上述USB设备断开与上述客户端设备的连接;依据上述接入状态更新上述已有的USB设备信息。其中,上述“更新”包括但不限于:修改、删除、添加。
需要说明的是,上述各个步骤的执行主体可以为转接设备,但不限于此。
在一个可选实施例中,还可以接收上述客户端设备依据上述第一数据返回的第二数据;并将上述第二数据由URB格式转换为USB传输描述符信息。例如,上述第一数据为发往客户端设备的请求消息,上述第二数据为上述客户端设备依据请求消息反馈的响应消息。
本申请实施例还提供一种数据传输装置,该装置用于实现上述方法,图4b是根据本申请实施例的一种数据传输装置的结构框图。如图4b所示,该装置包括:读取模块40,用于通过高速外设组件互联PCIe接口从主机设备中读取通用串行总线USB传输描述符信息;转换模块42,用于将上述USB传输描述符信息转换为USB请求块URB格式,得到第一数据;发送模块44,用于将上述第一数据发送至客户端设备。
在一个可选实施例中,如图4b所示,上述数据传输装置还可以包括:接收模块46,用于接收上述客户端设备依据上述第一数据返回的第二数据,并将上述第二数据发送至上述转换模块42;上述转换模块42,还用于将上述第二数据由URB格式转换为USB传输描述符信息。
需要说明的是,上述发送模块44和接收模块46可以通过一个模块来实现,例如通过一个收发电路实现,但不限于此。
实施例3
图5a是根据本申请实施例的一种远程通信***的结构示意图。如图5a所示,该***包括:
主机设备50;
转接设备52,该转接设备可以为实施例1中的转接设备,并且,转接设备52通过PCIe接口与主机设备50连接;
客户端设备54,用于接收主机设备50通过转接设备发送的数据,和/或,通过转接设备向主机设备发送数据。
可选地,客户端设备54上设置有多个USB接口。在一个可选实施例中,上述***还可以包括HUB设备56,该HUB设备56与主机设备50连接,用于接入至少一个客户端设备54。
图6是根据本申请实施例的一种网络拉远原理的结构示意图。如图6所示,主机端的转换桥接卡(即转接设备)通过PCIe接口(300)接入主机设备,依据EHCI/OHCI接口协议,把USB传输描述符列表(101)转换为URB(100)数据格式,并通过网络数据包(602)传输到客户机(即客户端设备),客户机通过客户端桥接应用程序把网络包(102)恢复为客户机的URB(103)数据格式。图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物理接口(300)的数据链路协议,包含了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、等待client端网络连接后,USB设备管理及设备描述符管理模块(403)读取client端USB设备信息;
3、操作寄存器处理模块(401)通过配置操作寄存器通知HOST端有新的USB设备接入;
4、HOST端主机通过配置操作寄存器提供USB传输描述符列表(101)的操作入口;
5、主机数据读写处理模块及数据转换模块(400)读取数据描述符链表,并将数据描述符转化为URB数据包(102);
6、URB数据包被网络控制模块(404)转发到client端;
7、等待网络端数据回复;
8、收到client端URB包数据回复,主机数据读写处理模块及数据转换模块(400)将数据回复转化为描述符状态;
9、主机数据读写处理模块及数据转换模块(400)修改HOST端主机描述符状态;
10、如果描述符链路还有有效描述符,重复5-8过程;
11、如果第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格式,得到第一数据;
收发电路,与所述转换电路连接,用于将所述第一数据发送至客户端设备。
2.根据权利要求1所述的转接设备,其特征在于,
所述收发电路,还用于接收所述客户端设备依据所述第一数据返回的第二数据,并将所述第二数据发送至所述转换电路;
所述转换电路,还用于将所述第二数据由URB格式转换为USB传输描述符信息。
3.根据权利要求1所述的转接设备,其特征在于,所述收发电路,包括:网络通信模块,用于将所述第一数据封装为第一网络数据包,并将所述第一网络数据包发送至所述客户端设备。
4.根据权利要求1所述的转接设备,其特征在于,
所述转接设备还包括:存储器,设置于所述转换电路和所述收发电路之间,用于存储所述第一数据;
所述转换电路,还用于依次将USB数据描述符链表中的所述USB传输描述符信息转换为URB格式,并存储至所述存储器中。
5.根据权利要求1所述的转接设备,其特征在于,所述转换电路,还用于通过以下方式将所述USB传输描述符信息转换为URB格式:
基于所述USB传输描述符信息与URB数据的映射关系,获取与所述USB传输描述符信息对应的URB数据。
6.根据权利要求1至5中任一项所述的转接设备,其特征在于,所述转接设备还包括:
控制器,用于通过所述PCIe接口接收来自所述主机设备的设置地址指令,以及依据所述设置地址指令确定与所述客户端设备进行通信的地址。
7.根据权利要求6所述的转接设备,其特征在于,所述控制器,还用于在所述主机设备进行USB设备的枚举过程中,向所述主机设备返回已有的USB设备信息。
8.一种远程通信***,其特征在于,包括:
主机设备;
转接设备,该转接设备为权利要求1至7中任一项所述的转接设备,并且,所述转接设备通过高速外设组件互联PCIe接口与所述主机设备连接;
客户端设备,用于接收所述主机设备通过所述转接设备发送的数据,和/或,通过所述转接设备向所述主机设备发送数据。
9.根据权利要求8所述的远程通信***,其特征在于,
所述客户端设备上设置有多个通用串行总线USB接口。
10.根据权利要求8所述的远程通信***,其特征在于,所述***还包括:HUB设备,与所述主机设备连接,用于接入至少一个所述客户端设备。
11.一种数据传输方法,其特征在于,包括:
通过高速外设组件互联PCIe接口从主机设备中读取通用串行总线USB传输描述符信息;
将所述USB传输描述符信息转换为USB请求块URB格式,得到第一数据;
将所述第一数据发送至客户端设备。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
接收所述客户端设备依据所述第一数据返回的第二数据;并将所述第二数据由URB格式转换为USB传输描述符信息。
13.根据权利要求11所述的方法,其特征在于,将所述USB传输描述符信息转换为USB请求块URB格式,包括:
基于所述USB传输描述符信息与URB数据的映射关系,获取与所述USB传输描述符信息对应的URB数据。
14.根据权利要求11所述的方法,其特征在于,所述方法还包括:
通过所述PCIe接口接收来自所述主机设备的设置地址指令,以及依据所述设置地址指令确定与所述客户端设备进行通信的地址。
15.根据权利要求11所述的方法,其特征在于,所述方法还包括:
在所述主机设备进行USB设备的枚举过程中,向所述主机设备返回已有的USB设备信息。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
检测所述客户端设备所接入USB设备的接入状态,其中,所述接入状态包括以下至少之一:所述USB设备接入所述客户端设备,所述USB设备断开与所述客户端设备的连接;
依据所述接入状态更新所述已有的USB设备信息。
17.一种数据传输装置,其特征在于,包括:
读取模块,用于通过高速外设组件互联PCIe接口从主机设备中读取通用串行总线USB传输描述符信息;
转换模块,用于将所述USB传输描述符信息转换为USB请求块URB格式,得到第一数据;
发送模块,用于将所述第一数据发送至客户端设备。
18.根据权利要求17所述的装置,其特征在于,
接收模块,用于接收所述客户端设备依据所述第一数据返回的第二数据,并将所述第二数据发送至所述转换模块;
所述转换模块,还用于将所述第二数据由URB格式转换为USB传输描述符信息。
19.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求11至16中任意一项所述的数据传输方法。
20.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求11至16中任意一项所述的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710486199.7A CN107168909A (zh) | 2017-06-23 | 2017-06-23 | 转接设备、远程通信***、数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710486199.7A CN107168909A (zh) | 2017-06-23 | 2017-06-23 | 转接设备、远程通信***、数据传输方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107168909A true CN107168909A (zh) | 2017-09-15 |
Family
ID=59819202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710486199.7A Pending CN107168909A (zh) | 2017-06-23 | 2017-06-23 | 转接设备、远程通信***、数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107168909A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132900A (zh) * | 2017-11-10 | 2018-06-08 | 西安万像电子科技有限公司 | 转接设备、远程通信***以及数据传输方法 |
CN112672091A (zh) * | 2020-12-18 | 2021-04-16 | 厦门亿联网络技术股份有限公司 | 基于网络的视频通信方法、***、存储介质及uvc设备 |
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-06-23 CN CN201710486199.7A patent/CN107168909A/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 (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132900A (zh) * | 2017-11-10 | 2018-06-08 | 西安万像电子科技有限公司 | 转接设备、远程通信***以及数据传输方法 |
CN112672091A (zh) * | 2020-12-18 | 2021-04-16 | 厦门亿联网络技术股份有限公司 | 基于网络的视频通信方法、***、存储介质及uvc设备 |
CN112672091B (zh) * | 2020-12-18 | 2023-05-09 | 厦门亿联网络技术股份有限公司 | 基于网络的视频通信方法、***、存储介质及uvc设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6272551B1 (en) | Network adapter for transmitting network packets between a host device and a power line network | |
US8407367B2 (en) | Unified connector architecture | |
JP5917474B2 (ja) | 統合マルチ転送媒体コネクタを利用するシステム及びルーティング方法 | |
CA2657827C (en) | Method and apparatus for distributing usb hub functions across a network | |
US6799220B1 (en) | Tunneling management messages over a channel architecture network | |
CN105320628B (zh) | 使能单根i/o设备多根共享的适配装置、***及方法 | |
US20050240685A1 (en) | Virtual USB port system and method | |
CN101937406B (zh) | 一种VxWorks操作***中实现驱动1394设备的方法和*** | |
CN109710548A (zh) | 一种dma控制数据传输方法、***及设备 | |
WO2013136522A1 (ja) | 計算機システム及び計算機間のデータ通信方法 | |
CN107506324A (zh) | 转接设备、远程通信***、数据传输方法及装置 | |
CN102273179B (zh) | 一种终端批量升级方法及装置 | |
CN103077148B (zh) | 一种基于pcie的主机通讯方法和主机 | |
CN106020926B (zh) | 一种用于虚拟交换机技术中数据传输的方法及装置 | |
CN101849230A (zh) | 在多主机环境中共享遗留设备 | |
CN109302466A (zh) | 数据处理方法、相关设备及计算机存储介质 | |
US5408609A (en) | Computer architecture having elements distributed over and adaptable to a plurality of local area networks of various types, and a microprograms architecture therefore | |
CN102790777A (zh) | 网络接口适配器注册方法及驱动设备、服务器 | |
CN110476156A (zh) | 通用串行总线网络交换机 | |
CN104798010B (zh) | 至少部分的串行存储协议兼容帧转换 | |
CN114138700B (zh) | 一种串口数据传输的流控方法、装置、设备及存储介质 | |
CN107145459A (zh) | 一种级联板、ssd远程共享访问的***和方法 | |
CN104714904A (zh) | 采用窗口映射机制的RapidIO控制器及其控制方法 | |
CN102821082A (zh) | 一种数据传输方法、装置和*** | |
CN109412922A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20171124 Address after: 710075 D102 room, building 4, Maple new city, F District, Xi'an hi tech Zone, Shaanxi Applicant after: XI'AN WANXIANG ELECTRONIC TECHNOLOGY CO., LTD. Address before: 710065 Room 501, building B, 8 cool Industrial Park, Tang Yan Nan Road, Xi'an, Shaanxi Applicant before: Su Rui |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170915 |
|
RJ01 | Rejection of invention patent application after publication |