转接设备、远程通信系统的制作方法

文档序号:15065034发布日期:2018-07-31 22:32阅读:243来源:国知局

本申请涉及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格式,得到第一数据;收发电路,与转换电路连接,用于将第一数据发送至客户端设备。

根据本申请实施例的另一方面,还提供了一种远程通信系统,包括:主机设备;转接设备,该转接设备以上的转接设备,并且,转接设备通过PCIe接口与主机设备连接;客户端设备,用于接收主机设备通过转接设备发送的数据,和/或,通过转接设备向主机设备发送数据。

在本申请实施例中,采用设置有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 memory by 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格式,得到第一数据;以及将从客户端设备接收的第二数据由URB格式转换为USB传输描述符信息。该处理过程可以表现为转换电路13接收从主机设备的第一信号(用于承载USB传输描述符信息的信号),并产生第二信号(即将USB传输描述符信息转换为URB格式产生第二信号,即承载上述第一数据的信号),将第二信号发送至收发电路。另外,转换电路可以产生第三信号(用于承载以下数据的信号:将从客户端设备接收的第二数据由URB格式转换为USB传输描述符信息),将第三信号通过PCIe接口发送至主机设备。

该转换过程可以表现为利用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核心驱动(core driver)、USB控制器驱动,是一般系统都包含的;其中USB控制器驱动向协议栈的上层USB core 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)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1