一种实现usb设备共享使用的方法及系统的利记博彩app

文档序号:7682124阅读:427来源:国知局
专利名称:一种实现usb设备共享使用的方法及系统的利记博彩app
技术领域
本发明涉及网络技术领域,尤其涉及一种实现USB (Universal Serial Bus, 通用串行总线)设备共享使用的方法及系统。
背景技术
TCP ( Transmission Control Protocol,传输控制协议)是TCP/IP协议栈
中的传输层协议,它通过序列确认以及包重发机制,提供可靠的数据流发送 和到应用程序的虚拟连接服务。与IP协议相结合,组成了因特网协议的核 心。
TCP通过面向连接的、端到端的可靠数据报发送来保证可靠性。TCP在 字节上加上一个递进的确认序列号来告诉接收者发送者期望收到的下一个 字节。如果在规定时间内,没有收到关于这个包的确认响应,发送端重新发 送此包。TCP的可靠机制允许设备处理丢失、延时、重复及读错的包。超时 机制允许设备监测丢失包并请求重发。
USB是主机和外围设备之间的一种连接。USB最初是为了替代许多不同 的低速总线(包括并行、串行、和键盘连接)而设计的,它以单一类型的总线 连接各种不同类型的设备。USB的发展已经超越了这些低速的连接方式,它现 在可以支持几乎所有可以连接到PC上的设备。最新的USB规范修订增加了理 论上高达480Mbps的高速连接。
USB在技术层面上是非常简单的,主机通过USB轮询各种不同的外围设 备。USB只担当设备和主控制器之间通信通道的角色,对它所发送的数据没有 任何特殊的内容和结构上的要求。加上它设计上与生倶来的热插拔能力,使得 USB成为一个便利和低成本的机制,它可以连接多个设备到计算机,而不需要
5关闭系统、打开机箱、柠螺丝钉和插拔电线。
随着个人计算机的使用越来越普及,相应外围设备的使用也随之快速增 长。然而,这些外围设备通常只能连接在一台计算机上使用。如何在不改变 现有系统环境前提下,实现外围设备在两台及多台计算机间的共享使用,成 为近来的研究重点。

发明内容
本发明提供一种实现USB设备共享使用的方法及系统,用以解决现有技 术中USB设备通常只能连接在一 台计算机上使用,无法在多台计算机间共享 使用的问题。
本发明所述技术方案包括
一种实现USB设备共享使用的方法,包括步骤
A、 连接有USB设备的服务器端主机与客户端主机建立连接,客户端主机 根据接收到的USB设备信息映射出相应的USB设备,并加载相应的USB设 备驱动;
B、 客户端主机欲访问所述USB设备时,向所述连接有USB设备的服 务器端主机发送USB设备操作请求;
C、 服务器端主机收到所述USB设备操作请求后,从中解析出USB请 求块,以此实现对USB设备的操作。
所述步骤A具体包括步骤
当连接有USB设备的服务器端主机与客户端主机建立连接时,客户端主 机的虚拟主机控制器接口驱动将端口变化情况通知客户端主机的USB核心 层驱动;
客户端主机的USB核心层驱动根据接收的USB设备信息在虛拟总线上 映射出相应的USB设备,并加载对应的USB设备驱动。 所述步骤B具体包括步骤当客户端主机中的应用程序欲访问所述USB设备时,向该USB设备的 驱动发送I/0操作请求;
所述USB设备的驱动程序将I/O操作请求转换为USB命令,然后将USB 命令封装成USB请求块格式后发送给客户端主机的USB核心层驱动;
客户端主机的USB核心层驱动将接收到的USB请求块发送给客户端主 机的虚拟主才几控制器4妄口驱动;
客户端主机的虚拟主机控制器接口驱动将接收到的USB请求块按网络 数据格式进行打包封装后发送给远程的服务器端主机。
所述步骤C具体包括步骤
服务器端主机的虚拟设备驱动接收客户端主机发送的数据包,从此数据 包中解析出USB请求块,将其发送给服务器端主机的USB核心层驱动;
服务器端主机的USB核心层驱动将接收到的USB请求块发送给服务器 端主^L的USB主^U空制器驱动;
USB主机控制器驱动将所述USB请求块转换为传输描述符后发送给相 应的USB设备,以此实现对该USB设备的I/O操作。
所述客户端主机和服务器端主机之间采用TCP协议通过IP网络传输USB 请求块。
一种实现USB设备共享使用的系统,包括客户端主机和服务器端主机, 其中,
客户端主机,与连接有USB设备的服务器端主机连接,用于根据接收到 的USB设备信息映射出相应的USB设备,并加载相应的USB设备驱动,以 及在欲访问所述USB设备时,向所述服务器端主机发送USB设备操作请求;
服务器端主机,用于在收到所述USB设备操作请求后,从中解析出USB 请求块,以此实现对USB设备的操作。
所述客户端主机中包含USB设备驱动模块、USB核心层驱动模块和虚 拟主机控制器接口驱动模块,其中,USB设备驱动才莫块,用于接收客户端主机中的应用程序发出的USB设 备I/0操作请求,将该操作请求转换为USB命令,然后将USB命令封装成 USB请求块格式后发送给客户端主机上的USB核心层驱动模块;
USB核心层驱动模块,用于将接收到的USB请求块发送给客户端主机 上的虚拟主机控制器接口驱动模块;
虚拟主机控制器接口驱动模块,用于将接收到的USB请求块按网络数 据格式进行打包封装后发送给远程的服务器端主机。
所述服务器端主机中包含虚拟设备驱动模块、USB核心层驱动模块和 USB主机控制器驱动模块,其中,
虚拟设备驱动模块,用于接收客户端主机发送的数据包,从此数据包中 解析出USB请求块,将其发送给服务器端主机上的USB核心层驱动模块;
USB核心层驱动模块,用于将接收到的USB请求块发送给服务器端主 机的USB主机控制器驱动模块;
USB主机控制器驱动模块,用于将所述USB请求块转换为传输描述符 后发送给相应的USB设备,以此实现对该USB设备的1/0操作。
本发明有益效果如下
本发明所述技术方案通过直接在本地客户端主机上实现对远程服务器连 接的USB设备的虚拟映射,将虚拟后的USB设备当成本地实际的设备使用, 从而实现对远端服务器上连接的USB接口设备进行共享使用。本发明打破了 常规网络传输的共享级别一直停留在文件级别的传统,解决了传统设备共享方 法中不肯k对设备进行高级访问操作的缺点,将网络共享级别深入到设备级共 享,使终端用户能够像使用本地USB设备一样的共享使用远端服务器上连接 的USB接口设备。


图1为实现本发明的原理功能框图;图2为本发明的具体设计原理图3为本发明所述实现USB设备共享使用的方法的流程图; 图4为本发明所述实现USB设备共享使用的系统的结构框图。
具体实施例方式
本发明的主要技术思想是,在客户端主机上将对USB设备操作的具体 请求命令按网络协议进行打包封装,包含有URB ( USB Request Block, USB 请求块)命令的网络数据经过以太网传输到远端接有USB设备的服务器端 主机上,服务器端主机首先接收网络数据,再把网络数据中包含的URB命 令提取出来,将这些命令发送到具体的USB设备上,从而实现对USB设备 的具体操作。本发明解决了传统设备共享方法中不能对设备进行高级访问操作 的缺点,本发明打破常规网络传输的共享级别一直停留在文件级别的传统,将 网络共享级别深入到设备级共享,使客户端主机能够像使用本地USB设备一 样的对远端服务器端主机连接的USB设备进行共享使用。
下面将结合各个附图对本发明的具体实现过程做进一步详细的说明。
图1为实现本发明的原理功能框图,由图l可见,传统的设备接口驱动 才莫式为用户端应用程序直接调用PDD (per-device driver,对应设备驱动)实 现对相应设备的访问操作。这种方式存在着驱动程序与设备间——对应,难 以扩展的缺陷。现有技术中设备接口驱动模式发展为在驱动与设备间扩展出 一个总线驱动,设备挂载在这个总线上,从而遵守统一的总线驱动。本发明 在总线驱动位置扩展出一个虚拟总线驱动,它不与具体的设备进行交互,而 是把对设备的操作命令进行网络打包进而通过网络发送给远端的具体设备。
USB主机驱动程序的体系层次包括USB PDDs (USB设备驱动)、USB Core Driver ( USB核心层驱动)和USB HCD ( Host Controller Deriver,主机 控制器驱动)。USB设备驱动控制各个对应的USB设备,负责接收应用程序 对USB设备具体的I/O操作请求,并把这些请求转换为URBs格式发送给USB核心驱动层;USB核心层驱动主要负责USB驱动管理和协议处理,向 上为设备驱动提供编程接口,向下为USB主机控制器驱动提供编程接口 , 通过全局变量维护整个系统的USB设备信息、完成设备热插拔控制、总线 数据传输控制等;USB主机控制器驱动是各具体主控制器硬件的驱动程序, 用于接收核心驱动层发来的URBs,并4巴这些URBs分解成TDs (传输描述 符,Transfer Descriptors )与具体端口进行操作,最后由具体的硬件完成I/O 请求。
图2所示为本发明的具体设计原理图,由图2可见,为实现本发明的功 能,本发明在客户端主机上设计一个VHCI Driver (虚拟主机控制器接口驱 动,Virtual Host Controller Interface Driver)驱动来代替USB HCD的功能。 VHCI驱动在这里可以效仿USB Root Hub ( USB根集线器)的功能,当服务 器端主机的USB设备通过IP网络被连接到客户端主机上时,VHCI驱动就 能通知USB核心层驱动端口状态的变化,从而USB核心层驱动能在客户端 主机上虚拟出一个USB设备。该VHCI驱动可以^皮看成是一个图1中所示的 虚拟总线驱动,它负责处理USB核心层驱动发来的URBs队列,每一个URB 经过VHCI驱动转换成IP网络数据包后被传送到远端机器上;在远程服务器 端主机上的VPD Driver (虚拟设备驱动,Virtual Per-Device Driver)模块负 责接收这些数据,虚拟设备驱动在这里虚拟的是USB设备驱动的功能,它 负责把接收到的IP网络数据包中的URBs解析出来,再把每一条URB命令 发送到本地具体的USB设备上去,从而实现对设备的访问。最后再把操作 结果通过网络发送给客户端主机。
图3为本发明所述实现USB设备共享使用的方法的流程图,具体包括如 下步骤
步骤10、当远程连接有USB设备的服务器端主机通过网络与客户端主 机相连时,客户端主机中的虚拟主机控制器接口驱动会通知客户端主机中的 USB核心层驱动相关端口的变化。
10步骤11、客户端主机中的USB核心层驱动根据接收到的USB设备信息 在虚拟总线上映射出一个相应的USB设备,并加载对应的USB设备驱动。
步骤12、在客户端主机中的应用程序需要对USB设备进行访问操作时, 首先调用该USB设备对应的USB设备驱动。
步骤13、 USB设备驱动接收应用程序发来的1/0操作请求,将这些I/0 请求转换成一 系列具体的USB命令,再把这些USB命令封装成URBs格式 后发送给USB核心层驱动。
步骤14、 USB核心层驱动将从USB设备驱动接收到的URBs发送给虚 拟主机控制器接口驱动。
步骤15、虚拟主机控制器接口驱动负责处理从核心层驱动接收到的 URBs队列,把每一个URB封装成IP网络数据包发送到远程服务器端。
步骤16、服务器端主机上的虚拟设备驱动接收从客户端主机发送来的 IP网络数据包,并从此数据包中解析出实际的URBs,再把这些URBs发送 给服务器端主机上的USB核心层驱动。
步骤17、服务器端主机上的USB核心层驱动将从虚拟设备驱动接收到 的URBs发送给服务器端主机上的USB主机控制器驱动。
步骤18、服务器端主机上的USB主机控制器驱动是实际USB主机控制 器芯片的驱动程序,实际的USB设备与USB主机控制器芯片上的Hub相连。 USB主机控制器驱动主要负责将USB核心层驱动发送来的URBs转换成一 系列具体的传输描述符(TDs),这些传输描述符对应于实际的USB处理帧, 最后由主机控制器芯片完成对实际USB设备的I/O操作。
相应于本发明上述方法,本发明进而提出了一种实现USB设备共享使 用的系统,请参阅图4,该图为本发明所述实现USB设备共享使用的系统的 结构框图,其主要包括客户端主机和服务器端主机,其中,
客户端主机,与连接有USB设备的服务器端主机连接,用于根据接收到 的USB设备信息映射出相应的USB设备,并加载相应的USB设备驱动,以及在欲访问所述USB设备时,向所述服务器端主机发逸USB设备操作请求;
服务器端主机,用于在收到所述USB设备操作请求后,从中解析出USB 请求块,以此实现对USB设备的操作。
所述客户端主机中具体包含USB设备驱动模块、USB核心层驱动模块和 虚拟主机控制器接口驱动模块,其中,
USB设备驱动才莫块,用于接收客户端主机中的应用程序发出的USB设 备I/0操作请求,将该操作请求转换为USB命令,然后将USB命令封装成 USB请求块格式后发送给客户端主机上的USB核心层驱动模块;
USB核心层驱动模块,用于将接收到的USB请求块发送给客户端主机 上的虚拟主机控制器接口驱动模块;
虚拟主机控制器接口驱动模块,用于将接收到的USB请求块按网络数 据格式进行打包封装后发送给远程的服务器端主机。
所述服务器端主机中具体包含虚拟设备驱动模块、USB核心层驱动模块 和USB主机控制器驱动模块,其中,
虚拟设备驱动模块,用于接收客户端主机发送的数据包,从此数据包中 解析出USB请求块,将其发送给服务器端主机上的USB核心层驱动模块;
USB核心层驱动模块,用于将接收到的USB请求块发送给服务器端主 机的USB主机控制器驱动模块;
USB主机控制器驱动模块,用于将所述USB请求块转换为传输描述符 后发送给相应的USB设备,以此实现对该USB设备的I/O操作。
本发明中,在IP网络中传送URBs采用的是TCP协议而不是UDP( User Datagram Protocol ,用户数据报协议)协议。这是因为TCP是面向连接的, 在传送过程中要进行三次握手、重传确认等手段来保证数据传输的可靠性, 确保数据一定传送到接收者。而UDP是一种无连接的传输层协议,提供面 向事务的简单不可靠信息传送服务,不提供对IP协议的可靠机制、流控制 以及错误恢复功能等。所以这里选择TCP协议来传输URBs数据,确保主机
12端接收数据的准确性与完整性。
本发明可实施的典型应用场合刀片服务器系统中,服务器刀片通过本 发明去共享同一个USB设备。刀片服务器系统内部有多个服务器刀片,运 用本发明,每个刀片可以通过网络共享使用一个USB设备,而无需每个刀 片都连接USB设备才能使用。这样实现了使用的方便和设备的节约。
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
1权利要求
1、一种实现USB设备共享使用的方法,其特征在于,包括步骤A、连接有USB设备的服务器端主机与客户端主机建立连接,客户端主机根据接收到的USB设备信息映射出相应的USB设备,并加载相应的USB设备驱动;B、客户端主机欲访问所述USB设备时,向所述连接有USB设备的服务器端主机发送USB设备操作请求;C、服务器端主机收到所述USB设备操作请求后,从中解析出USB请求块,以此实现对USB设备的操作。
2、 如权利要求l所述的方法,其特征在于,所述步骤A具体包括步骤 当连接有USB设备的服务器端主机与客户端主机建立连接时,客户端主机的虚拟主机控制器接口驱动将端口变化情况通知客户端主机的USB核心 层驱动;客户端主机的USB核心层驱动根据接收的USB设备信息在虚拟总线上 映射出相应的USB设备,并加载对应的USB设备驱动。
3、 如权利要求l所述的方法,其特征在于,所述步骤B具体包括步骤 当客户端主机中的应用程序欲访问所述USB设备时,向该USB设备的驱动发送I/0操作请求;所述USB设备的驱动程序将I/O操作请求转换为USB命令,然后将USB 命令封装成USB请求块格式后发送给客户端主机的USB核心层驱动;客户端主机的USB核心层驱动将接收到的USB请求块发送给客户端主 机的虚拟主机控制器接口驱动;客户端主机的虛拟主机控制器接口驱动将接收到的USB请求块按网络 数据格式进行打包封装后发送给远程的服务器端主机。
4、 如权利要求l所述的方法,其特征在于,所述步骤C具体包括步骤包中解析出USB请求块,将其发送给服务器端主机的USB核心层驱动; 服务器端主机的USB核心层驱动将接收到的USB请求块发送给服务器端主机的USB主机控制器驱动;USB主机控制器驱动将所述USB请求块转换为传输描述符后发送给相应的USB设备,以此实现对该USB设备的I/O操作。
5、 如权利要求3或4所述的方法,其特征在于,所述客户端主机和服务 器端主机之间采用TCP协议通过IP网络传输USB请求块。
6、 一种实现USB设备共享使用的系统,其特征在于,包括客户端主机 和服务器端主机,其中,客户端主机,与连接有USB设备的服务器端主机连接,用于根据接收到 的USB设备信息映射出相应的USB设备,并加载相应的USB设备驱动,以 及在欲访问所述USB设备时,向所述服务器端主机发送USB设备操作请求;服务器端主机,用于在收到所述USB设备操作请求后,从中解析出USB 请求块,以此实现对USB设备的搡作。
7、 如权利要求6所述的系统,其特征在于,所述客户端主机中包含USB 设备驱动模块、USB核心层驱动模块和虚拟主机控制器接口驱动模块,其中,USB设备驱动模块,用于接收客户端主机中的应用程序发出的USB设 备I/0操作请求,将该操作请求转换为USB命令,然后将USB命令封装成 USB请求块格式后发送给客户端主机上的USB核心层驱动模块;USB核心层驱动模块,用于将接收到的USB请求块发送给客户端主机 上的虚拟主机控制器接口驱动模块;虚拟主机控制器接口驱动模块,用于将接收到的USB请求块按网络数 据格式进行打包封装后发送给远程的服务器端主机。
8、 如权利要求6所述的系统,其特征在于,所述服务器端主机中包含 虛拟设备驱动模块、USB核心层驱动模块和USB主机控制器驱动模块,其 中,虚拟设备驱动模块,用于接收客户端主机发送的数据包,从此数据包中解析出USB请求块,将其发送给服务器端主机上的USB核心层驱动模块; USB核心层驱动模块,用于将接收到的USB请求块发送给服务器端主机的USB主机控制器驱动模块;USB主机控制器驱动模块,用于将所述USB请求块转换为传输描述符后发送给相应的USB设备,以此实现对该USB设备的I/O操作。
全文摘要
本发明公开了一种实现USB设备共享使用的方法及系统,所述方法包括连接有USB设备的服务器端主机与客户端主机建立连接,客户端主机根据接收到的USB设备信息映射出相应的USB设备,并加载相应的USB设备驱动,客户端主机欲访问所述USB设备时,向所述连接有USB设备的服务器端主机发送USB设备操作请求,服务器端主机收到所述USB设备操作请求后,从中解析出USB请求块,以此实现对USB设备的操作;所述系统包括客户端主机和服务器端主机。本发明将网络共享级别深入到设备级共享,使终端用户能够像使用本地USB设备一样的共享使用远端服务器上连接的USB接口设备。
文档编号H04L29/02GK101488941SQ20081000052
公开日2009年7月22日 申请日期2008年1月18日 优先权日2008年1月18日
发明者洋 周 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1