CN103873537A - 一种usb设备远程共享方法及系统 - Google Patents
一种usb设备远程共享方法及系统 Download PDFInfo
- Publication number
- CN103873537A CN103873537A CN201210552363.7A CN201210552363A CN103873537A CN 103873537 A CN103873537 A CN 103873537A CN 201210552363 A CN201210552363 A CN 201210552363A CN 103873537 A CN103873537 A CN 103873537A
- Authority
- CN
- China
- Prior art keywords
- usb
- client
- service end
- management device
- driver element
- 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
Images
Landscapes
- Information Transfer Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种USB设备远程共享方法及系统。本方法为:1)USB设备远程共享服务端与客户端建立网络连接,响应来自客户端的USB请求;2)USB设备远程共享服务端将该USB请求传递给服务端桩驱动单元;3)服务端桩驱动单元与实际USB设备的驱动进行通信对该USB请求进行响应;然后USB设备远程共享服务端将该响应发送给该客户端;4)该客户端的VHCI驱动单元根据该响应信息完成本地USB设备的虚拟,将发生在该实际USB设备的系统事件反应到该客户端本地系统上。本发明大大提高了USB设备的使用效率,满足了远程相互共享使用的需求。
Description
技术领域
本发明涉及一种USB设备远程共享的方法及其系统。
背景技术
由于多媒体技术的发展对外设与主机之间的数据传输率有了更高的需求,因此,USB总线技术应运而生。USB(Universal Serial Bus),翻译为中文就是通用串行总线,是由Conpaq,DEC,IBM,Inter,Microsoft,NEC和Northen Telecom等公司为简化PC与外设之间的互连而共同研究开发的一种免费的标准化连接器,它支持各种PC与外设之间的连接,还可实现数字多媒体集成。
USB接口的主要特点是:即插即用,可热插拔。USB连接器将各种各样的外设I/O端口合而为一,使之可热插拔,具有自动配置能力,用户只要简单地将外设插入到PC以外的总线中,PC就能自动识别和配置USB设备。而且带宽更大,增加外设时无需在PC内添加接口卡,多个USB集线器可相互传送数据,使PC可以用全新的方式控制外设。USB可以自动检测和安装外设,实现真正的即插即用。而USB的另一个显著特点是支持“热”插拔,即不需要关机断电,也可以在正运行的电脑上插入或拔除一个USB设备。随着时间的推移,USB将成为PC的标准配置。基于USB的外设将逐渐增多,现在满足USB要求的外设有:调制解调器,键盘,鼠标,光驱,游戏手柄,软驱,扫描仪等,而非独立性I/O连接的外设将逐渐减少。即主机控制式外设减少,智能控制外设增多。
USB总线标准由1.1版升级到2.0版后,传输率由12Mbps增加到了240Mbps,更换介质后连接距离由原来的5米增加到近百米。基于这点,USB也可以做生产ISDN以及基于视频的产品。如数据手套的数字化仪提供数据接口。
USB设备越来越普及,相互共享使用的需求也越来越大,在很多场合需要能够在远端直接使用插在另外一台机器上的USB设备。
发明内容
网络日益普及,计算机与计算机多半已经通过网络可以互相连接,本发明提出的USB设备远程共享的方法就是基于网络连接的,包括局域网、WiFi以及Internet等各种方式,如图1所示。
正常情况下,USB物理设备与上层客户软件、系统软件的通信过程如图2所示。
本发明基于对USB规范的深入研究之上,引入虚拟主机控制器驱动和桩驱动,如图3所示,通过各种网络连接传输USB请求,使得在客户端用户看来就如同服务端的USB设备就插在本地机器上一样。
本发明的技术方案为;
一种USB设备远程共享方法,其步骤为:
1)USB设备远程共享服务端与客户端建立网络连接,响应来自客户端的USB请求;
2)USB设备远程共享服务端将该USB请求传递给服务端桩驱动单元;
3)服务端桩驱动单元与实际USB设备的驱动进行通信对该USB请求进行响应;然后USB设备远程共享服务端将该响应发送给该客户端;
4)该客户端的VHCI驱动单元根据该响应信息完成本地USB设备的虚拟,将发生在该实际USB设备的系统事件反应到该客户端本地系统上。
进一步的,客户端采用全双工异步方式将USB请求发送给USB设备远程共享服务端。
进一步的,USB设备远程共享服务端采用全双工异步方式将USB响应发送给客户端。
进一步的,所述网络连接为TCP或者UDP连接网络连接。
一种USB设备远程共享系统,其特征在于,USB设备远程共享服务端包括一服务端设备控制管理器、服务端桩驱动单元;客户端包括一客户端设备控制管理器、客户端VHCI驱动单元;USB设备远程共享服务端与客户端通过网络连接;其中
服务端设备控制管理器,用于与客户端建立网络连接,响应来自客户端的USB请求,
并将USB请求传递给服务端桩驱动单元,同时也将服务端桩驱动单元的反馈发送给客户端设备控制管理器;
服务端桩驱动单元,用于响应来自服务端设备控制管理器收到的USB请求,然后直接与实际USB设备驱动进行通信,并将响应反馈给服务端设备控制管理器;
客户端设备控制管理器,用于通过网络连接与服务端设备控制管理器进行通信,发送USB请求,并接收来自服务端设备控制管理器的USB请求反馈;
客户端VHCI驱动单元,用于根据USB响应信息完成本地USB设备的虚拟,将发生在服务端USB硬件设备的系统事件反应到客户端本地系统上。
进一步的,客户端设备控制管理器采用全双工异步方式将USB请求发送给服务端设备控制管理器。
进一步的,服务端设备控制管理器采用全双工异步方式将USB请求反馈信息发送给客户端设备控制管理器。
进一步的,所述网络连接为TCP或者UDP连接网络连接。
发明的优点与积极效果:
本发明充分遵守USB规范和一些网络通信规范,技术特征是通过网络连接来传输USB请求,然后内部通过USB VHCI驱动和USB桩驱动相互配合,将客户端上对远程服务端上USB设备的请求,以及远程服务端对客户端的响应等互相传递。
如果在局域网或者网速较快的情况下使用,即网络连接速度比USB总线读写速度接近或者更快的情况下,客户端对于远程服务端上USB设备的使用将跟在本地使用差不多。
附图说明
图1为CloudUSB整体系统通信示意图
图2为USB标准通信示意图
图3为CloudUSB实现示意图。
具体实施方式
本发明通过在具体实现时增加的客户端设备控制管理器、客户端VHCI驱动单元、服务端设备控制管理器、服务端桩驱动单元4个部分,完成USB设备的远程共享,如图3所示。
服务端设备控制管理器:此部分使用已有的技术(比如Socket套接字)通过与客户端建立网络连接,响应来自客户端的USB请求,并将USB请求传递给服务端桩驱动单元,同时也将服务端桩驱动单元的反馈发送给客户端设备控制管理部分。
服务端桩驱动单元:此部分主要是响应来自服务端设备控制管理部分收到的USB请求,并直接与实际USB设备驱动进行通信,并将响应反馈给服务端设备控制管理器部分。
客户端设备控制管理器:此部分通过网络连接与服务端设备控制管理器进行通信,发送使用服务端设备的USB请求,并接收来自服务端设备控制管理器的USB请求反馈。
客户端VHCI驱动单元:此部分主要完成本地USB设备的虚拟,将发生在服务端硬件设备的系统事件反应到本地系统上。
在整个实现上面,尽量减少通信环节,这样可以最大程度减少延迟。服务端也不需要引入“服务器虚拟机”,在客户端需要使用服务端的USB设备时,通过网络连接(具体实现时采用TCP或者自定义的可靠UDP连接均可)将USB请求发送给服务端上的设备控制管理器,设备控制管理器将USB请求发给桩驱动单元,由桩驱动单元去与实际的USB设备通信,这个里面也会牵涉到通道、USB传输事务处理等细节,具体实现都严格遵守USB规范协议。响应和请求可以做成半双工或者全双工,本发明在实现时可采用全双工异步方式,加上灵活运用系统缓冲、DMA等机制来提高传输效率。
实现时封装了下面功能函数:
ssize_t cloudusb_recv(int sockfd,void *buff,size_t bufflen);
ssize_t cloudusb_send(int sockfd,void *buff,size_t bufflen);
int cloudusb_send_op_common(int sockfd,uint32_t code,uint32_t status);
int cloudusb_recv_op_common(int sockfd,uint16_t *code);
int cloudusb_set_reuseaddr(int sockfd);
int cloudusb_set_nodelay(int sockfd);
int cloudusb_set_keepalive(int sockfd)。
Claims (8)
1.一种USB设备远程共享方法,其步骤为:
1)USB设备远程共享服务端与客户端建立网络连接,响应来自客户端的USB请求;
2)USB设备远程共享服务端将该USB请求传递给服务端桩驱动单元;
3)服务端桩驱动单元与实际USB设备的驱动进行通信对该USB请求进行响应;然后USB设备远程共享服务端将该响应发送给该客户端;
4)该客户端的VHCI驱动单元根据该响应信息完成本地USB设备的虚拟,将发生在该实际USB设备的系统事件反应到该客户端本地系统上。
2.如权利要求1所述的方法,其特征在于客户端采用全双工异步方式将USB请求发送给USB设备远程共享服务端。
3.如权利要求1或2所述的方法,其特征在于USB设备远程共享服务端采用全双工异步方式将USB响应发送给客户端。
4.如权利要求1所述的方法,其特征在于所述网络连接为TCP或者UDP连接网络连接。
5.一种USB设备远程共享系统,其特征在于,USB设备远程共享服务端包括一服务端设备控制管理器、服务端桩驱动单元;客户端包括一客户端设备控制管理器、客户端VHCI驱动单元;USB设备远程共享服务端与客户端通过网络连接;其中
服务端设备控制管理器,用于与客户端建立网络连接,响应来自客户端的USB请求,并将USB请求传递给服务端桩驱动单元,同时也将服务端桩驱动单元的反馈发送给客户端设备控制管理器;
服务端桩驱动单元,用于响应来自服务端设备控制管理器收到的USB请求,然后直接与实际USB设备驱动进行通信,并将响应反馈给服务端设备控制管理器;
客户端设备控制管理器,用于通过网络连接与服务端设备控制管理器进行通信,发送USB请求,并接收来自服务端设备控制管理器的USB请求反馈;
客户端VHCI驱动单元,用于根据USB响应信息完成本地USB设备的虚拟,将发生在服务端USB硬件设备的系统事件反应到客户端本地系统上。
6.如权利要求5所述的系统,其特征在于客户端设备控制管理器采用全双工异步方式将USB请求发送给服务端设备控制管理器。
7.如权利要求5或6所述的系统,其特征在于服务端设备控制管理器采用全双工异步方式将USB请求反馈信息发送给客户端设备控制管理器。
8.如权利要求5所述的系统,,其特征在于所述网络连接为TCP或者UDP连接网络连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210552363.7A CN103873537A (zh) | 2012-12-18 | 2012-12-18 | 一种usb设备远程共享方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210552363.7A CN103873537A (zh) | 2012-12-18 | 2012-12-18 | 一种usb设备远程共享方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103873537A true CN103873537A (zh) | 2014-06-18 |
Family
ID=50911658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210552363.7A Pending CN103873537A (zh) | 2012-12-18 | 2012-12-18 | 一种usb设备远程共享方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103873537A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808495A (zh) * | 2016-05-09 | 2016-07-27 | 苏州通云信息科技有限公司 | 一种usb共享机柜 |
CN107957900A (zh) * | 2016-10-17 | 2018-04-24 | 中兴通讯股份有限公司 | 一种虚拟环境下对远程iso进行管控的方法及相关装置 |
CN111752659A (zh) * | 2020-06-23 | 2020-10-09 | 杭州雾联科技有限公司 | 一种基于网络的usb设备异步共享方法 |
CN113596101A (zh) * | 2021-07-05 | 2021-11-02 | 锐捷网络(苏州)有限公司 | 跨平台数据透传方法、系统及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1976310A (zh) * | 2005-07-08 | 2007-06-06 | 美国博通公司 | 在网络中通过总线接口进行通信的方法和系统 |
CN101488941A (zh) * | 2008-01-18 | 2009-07-22 | 中兴通讯股份有限公司 | 一种实现usb设备共享使用的方法及系统 |
CN102523264A (zh) * | 2011-12-06 | 2012-06-27 | 北京航空航天大学 | 面向虚拟机的usb设备远程共享方法和系统 |
-
2012
- 2012-12-18 CN CN201210552363.7A patent/CN103873537A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1976310A (zh) * | 2005-07-08 | 2007-06-06 | 美国博通公司 | 在网络中通过总线接口进行通信的方法和系统 |
CN101488941A (zh) * | 2008-01-18 | 2009-07-22 | 中兴通讯股份有限公司 | 一种实现usb设备共享使用的方法及系统 |
CN102523264A (zh) * | 2011-12-06 | 2012-06-27 | 北京航空航天大学 | 面向虚拟机的usb设备远程共享方法和系统 |
Non-Patent Citations (1)
Title |
---|
TAKAHIRO HIROFUCHI等: "USB/IP - a Peripheral Bus Extension for Device Sharing over IP Network", 《2005 USENIX ANNUAL TECHNICAL CONFERENCE》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808495A (zh) * | 2016-05-09 | 2016-07-27 | 苏州通云信息科技有限公司 | 一种usb共享机柜 |
CN105808495B (zh) * | 2016-05-09 | 2018-06-15 | 苏州通云信息科技有限公司 | 一种usb共享机柜 |
CN107957900A (zh) * | 2016-10-17 | 2018-04-24 | 中兴通讯股份有限公司 | 一种虚拟环境下对远程iso进行管控的方法及相关装置 |
CN111752659A (zh) * | 2020-06-23 | 2020-10-09 | 杭州雾联科技有限公司 | 一种基于网络的usb设备异步共享方法 |
CN113596101A (zh) * | 2021-07-05 | 2021-11-02 | 锐捷网络(苏州)有限公司 | 跨平台数据透传方法、系统及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6708247B1 (en) | Extending universal serial bus to allow communication with USB devices at a remote location | |
US6735658B1 (en) | System and method for combining computer video and remote universal serial bus in an extended cable | |
EP1750401B1 (en) | USB 1.1 over a high speed link | |
US8856388B2 (en) | Method and apparatus for connecting USB devices to a computer | |
US8504707B2 (en) | Method and system for sending and receiving USB messages over a data network | |
US7644211B2 (en) | Method and system for controlling transmission of USB messages over a data network between a USB device and a plurality of host computers | |
CN101350001B (zh) | 数据共享及传输的系统及方法 | |
CN101527715B (zh) | 以远端控制功能控制多台远端周边装置的服务器 | |
AU2007278728B2 (en) | Method and apparatus for distributing usb hub functions across a network | |
US20090063717A1 (en) | Rate Adaptation for Support of Full-Speed USB Transactions Over a High-Speed USB Interface | |
US10261930B2 (en) | System, device and method for transmitting signals between different communication interfaces | |
CN103873537A (zh) | 一种usb设备远程共享方法及系统 | |
US8745296B2 (en) | Serial storage protocol compatible frame conversion, at least in part being compatible with SATA and one packet being compatible with PCIe protocol | |
CN102882871A (zh) | 一种移动终端usb虚拟化映射方法 | |
CN107506324A (zh) | 转接设备、远程通信系统、数据传输方法及装置 | |
CN104850518A (zh) | 远程登入电脑的方法 | |
CN108920193A (zh) | Fpga和cpu间sdio通信接口实现方法、及装置 | |
CN202694039U (zh) | 一种适配器电路 | |
US9417720B2 (en) | Fast virtual media KVM system | |
CN103457880A (zh) | 交换器系统以及操作交换器的方法 | |
CN101867510A (zh) | 板级双系统互联方法 | |
TWI345711B (zh) | ||
CN103763333A (zh) | 桥接通讯模块及方法 | |
CN108132900A (zh) | 转接设备、远程通信系统以及数据传输方法 | |
JP4495860B2 (ja) | 通信のためのインタフェース及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into 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: 20140618 |