一种usb设备映射、交互方法、装置、云终端及云服务器的制造方法_3

文档序号:9380335阅读:来源:国知局
br>[0073]步骤S610,终端的USB驱动的USB设备类驱动层对该第一网络包进行解封装得到第一 URB ;
[0074]步骤S612,终端的USB驱动的USB设备类驱动层将第一 URB发送给终端的USB驱动的USB核心驱动层;
[0075]步骤S614,终端的USB驱动的USB核心驱动层将第一 URB发送给终端的USB驱动的USB主控驱动层;
[0076]步骤S616,终端的USB驱动的USB主控驱动层与USB设备进行交互,获取携带有数据的第二 URB ;
[0077]步骤S618,终端的USB驱动的USB主控驱动层将携带有数据的第二 URB发送给终端的USB驱动的USB核心驱动层;
[0078]步骤S620,终端的USB驱动的USB核心驱动层将携带有数据的第二 URB发送给终端的USB驱动的USB设备类驱动层;
[0079]步骤S622,终端的USB驱动的USB设备类驱动层对该第二 URB进行封装,生成第二网络包;
[0080]步骤S624,终端的USB驱动的USB设备类驱动层将该第二网络包发送给虚拟机的USB驱动的USB主控层;
[0081]步骤S626,虚拟机的USB驱动的USB主控层对该第二网络包进行解封装得到携带有数据的第二 URB ;
[0082]步骤S628,虚拟机的USB驱动的USB主控驱动层将携带有数据的第二 URB发送给虚拟机的USB驱动的USB核心驱动层;
[0083]步骤S630,虚拟机的USB驱动的USB核心驱动层将携带有数据的第二 URB发送给虚拟机的USB驱动的USB设备类驱动层;
[0084]步骤S632,虚拟机的USB驱动的USB设备类驱动层将携带有数据的第二 URB发送给应用程序;
[0085]步骤S634,应用程序得到请求的数据,该交互过程完成。
[0086]使用本发明提供的USB设备映射、交互方法,当虚拟机用户需要使用终端侧的USB设备中的数据时,其业务流程可以具体包括:
[0087]步骤1:USB设备插入终端本地,本地U 口检测程序就会检测到USB插入事件,并读取其VID、PID、CLASS等相关信息,将这些信息与本地配置文件进行比较,判断该USB设备需不要进行映射。如果需要映射,就通过绑定应用程序绑定该USB设备,即:将为该USB设备加载的驱动的USB设备类驱动替换为USB设备映射驱动:stub驱动。
[0088]步骤2:U 口检测程序将USB设备的端口信息通过虚拟机通信发送给虚拟机内USB映射管理程序。
[0089]步骤3:虚拟机内的USB映射管理程序收到本地绑定程序发过来的USB端口号之后,利用从虚拟机通道得来的本地IP地址和约定好的端口和本地等待映射输出程序建立socket网络通信。并将该USB端口号和获取设备信息命令发给本地等待映射输出程序。本地等待映射输出程序收到该命令之后将对应USB端口的USB设备的设备信息发给虚拟机。虚拟机USB映射管理程序替换虚拟机内USB设备主控驱动替换为USB设备映射驱动:vhci驱动。
[0090]步骤4:虚拟机向终端本地以网络包形式发送URB,URB通过两层驱动到达了 vhci驱动,vhci驱动把URB包封装成网络包发给本地的stub驱动
[0091]步骤5:本地stub驱动得到网络包封装的URB之后,进行解封装,把网络包变回URB,并发给底层USB主控驱动。USB主控驱动和USB设备进行数据交互,并返回携带数据的URB给stub驱动。
[0092]步骤6:stub驱动将携带数据的URB封装成网络包发给虚拟机vhci驱动,vhci驱动进行解封装之后发给上层驱动和应用程序。
[0093]本发明还提供了一种USB设备映射装置,用于包括USB设备、云终端和云服务器的云系统中的云终端,所述USB设备与所述云终端连接,所述云服务器中包括至少一个虚拟机,所述映射装置包括:第一获取模块,用于获取所述USB设备的设备信息;第一加载模块,用于根据所述设备信息,在云终端侧为所述USB设备加载第一 USB驱动;第一发送模块,用于通过虚拟专用通道,向与所述云终端对应的虚拟机发送链路创建请求,以使得所述虚拟机根据所述云终端的IP地址及预设的通信端口号创建与所述云终端的通信链路,所述链路创建请求中携带有与所述USB设备对应的USB端口号;第一接收模块,用于接收所述虚拟机通过所述通信链路发送的携带有所述USB端口号的设备信息获取请求;第二发送模块,用于根据所述设备信息获取请求,通过所述通信链路将与所述USB端口号对应的USB设备的设备信息发送给所述虚拟机,以使得所述虚拟机根据所述设备信息在虚拟机侧为所述USB设备加载第二 USB驱动,所述第二 USB驱动通过所述通信链路与所述第一 USB驱动通信以访问所述USB设备。
[0094]上述的USB设备映射装置,其中,所述根据所述设备信息,在云终端侧为所述USB设备加载第一 USB驱动之前,还包括:判定模块,用于根据所述设备信息及预设的配置文件,判断是否需要对所述USB设备进行映射;当所述判断模块判定需要对所述USB设备进行映射时,进入第一加载模块。
[0095]上述的USB设备映射装置,其中,所述第一 USB驱动及所述第二 USB驱动均包括:USB设备类驱动层、USB核心驱动层及USB主控驱动层;所述第二 USB驱动的USB主控驱动层通过所述通信链路与所述第一 USB驱动的USB设备类驱动层通信以访问所述USB设备。
[0096]本发明还提供了一种USB设备交互装置,用于包括USB设备、云终端和云服务器的云系统中的云终端,所述云服务器中包括至少一个虚拟机,所述USB设备与所述云终端连接,并通过如上所述的映射方法映射至与所述云终端对应的虚拟机,所述交互装置包括:第二接收模块,用于接收所述虚拟机发送的封装有第一USB请求块URB的第一网络包;第一解析模块,用于对所述第一网络包进行解析,得到所述第一 URB ;第二获取模块,用于从所述USB设备中获取携带有与所述第一 URB对应的数据的第二 URB ;第一封装模块,用于将所述第二 URB封装为第二网络包;第三发送模块,用于将所述第二网络包发送给所述虚拟机。
[0097]本发明还提供了一种云终端,包括如上所述的装置。
[0098]本发明还提供了一种USB设备映射装置,用于包括USB设备、云终端和云服务器的云系统中的云服务器,所述USB设备与所述云终端连接,所述云服务器中包括至少一个虚拟机,所述映射装置包括:第三接收模块,用于通过虚拟专用通道,接收所述云终端发送的链路创建请求,所述链路创建请求中携带有与所述USB设备对应的USB端口号;创建模块,用于根据所述云终端的IP地址及预设的通信端口号创建与所述云终端的通信链路;第四发送模块,用于通过所述通信链路向所述云终端发送设备信息获取请求,所述设备信息获取请求中携带有所述USB端口号,以获取与所述USB端口号对应的USB设备的设备信息;第四接收模块,用于通过所述通信链路接收所述云终端发送的所述USB设备的设备信息;第二加载模块,用于根据所述设备信息为所述USB设备在虚拟机侧加载第二 USB驱动,所述第二USB驱动通过所述通信链路与所述云终端在云终端侧为所述USB设备加载的第一 USB驱动通信以访问所述USB设备。
[0099]上述的USB设备映射装置,其中,所述第一 USB驱动及所述第二 USB驱动均包括:USB设备类驱动层、USB核心驱动层及USB主控驱动层;所述第二 USB驱动的USB主控驱动层通过所述通信链路与所述第一 USB驱动的USB设备类驱动层通信以访问所述USB设备。
[0100]本发明还提供了一种USB设备交互装置,用于包括USB设备、云终端和云服务器的云系统中的云服务器,所述云服务器中包括至少一个虚拟机,所述USB设备与所述云终端连接,并通过如上所述的映射方法映射至与所述云终端对应的虚拟机,所述交互装置包括:第二封装模块,用于将第一 USB请求块URB封装为第一网络包;第五发送模块,用于向所述云终端发送所述第一网络包;第五接收模块,用于接收云终端反馈的封装有第二 URB的第二网络包,所述第二 URB中携带有与所述第一 URB对应的数据;第二解析模块,用于对所述第二网络包进行解析,获取所述第二 URB中携带的数据。
[0101]本发明还提供了一种云服务器,包括如上所述的装置。
[0102]以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【主权项】
1.一种USB设备映射方法,其特征在于,用于包括USB设备、云终端和云服务器的云系统中的云终端,所述USB设备与所述云终端连接,所述云服务器中包括至少一个虚拟机,所述映射方法包括: 获取所述USB设备的设备信息; 根据所述设备信息,在云终端侧为所述USB设备加载第一 USB驱动; 通过虚拟专用通道,向与所述云终端对应的虚拟机发送链路创建请求,以使得所述虚拟机根据所述云终端的IP地址及预设的通信端口号创建与所述云终端的通信链路,所述链路创建请求中携带有与所述USB设备对应的USB端口号; 接收所述虚拟机通过所述通信链路发送的携带有所述USB端口号的设备信息获取请求; 根
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1