发明内容
本发明实施例提供家庭网关上USB设备的访问方法和一种家庭网关,旨在解决USB设备被挂接到家庭网关上以后成为家庭网关独占的设备而不能直接使用PC等终端上的应用软件该USB设备进行透明访问的问题。
本发明实施例提供一种家庭网关上USB设备的访问方法,包括:
接收挂接在所述家庭网关上USB设备的USB消息,所述USB消息包括USB数据帧、USB设备的真实插入事件消息和/或USB设备的真实拔出事件消息;
将所述USB消息适配成网络报文后发送至终端的虚拟USB设备接口以供所述终端的应用程序读取;或者
将所述终端通过所述虚拟USB设备接口发送的网络报文解析为USB数据帧后写入所述USB设备。
本发明实施例提供一种家庭网关上USB设备的访问方法,包括:终端接收来自所述家庭网关的网络报文;
从所述网络报文解析出USB消息后传递至所述终端的虚拟USB设备接口,所述USB消息包括USB数据帧、USB设备的真实插入事件消息和/或USB设备的真实拔出事件消息;
终端应用程序通过所述虚拟USB设备接口读取所述USB数据帧或通过所述虚拟USB设备接口写入数据;
将所述通过所述虚拟USB设备接口写入的数据适配成网络报文后发送至所述家庭网关。
本发明实施例提供一种家庭网关,包括:
接收模块,用于接收挂接在所述家庭网关上USB设备的USB消息,所述USB消息包括USB数据帧、USB设备的真实插入事件消息和/或USB设备的真实拔出事件消息;
适配解析模块,用于将所述接收模块接收的USB消息适配成网络报文后发送至终端的虚拟USB设备接口以供所述终端的应用程序读取或将所述终端通过所述虚拟USB设备接口发送的网络报文解析为USB数据帧后写入所述USB设备。
本发明实施例提供一种终端,包括:
接收模块,用于接收来自所述家庭网关的网络报文;
解析模块,用于从所述网络报文解析出USB消息后传递至终端的虚拟USB设备接口,所述USB消息包括USB数据帧、USB设备的真实插入事件消息和/或USB设备的真实拔出事件消息;
数据读写模块,用于终端应用程序通过所述虚拟USB设备接口读取所述USB数据帧或通过所述虚拟USB设备接口写入数据;
适配模块,用于将所述通过所述虚拟USB设备接口写入的数据适配成网络报文后发送至所述家庭网关。
本发明实施例通过接收挂接在家庭网关上USB设备的USB消息,并将所述USB消息适配成网络报文后发送至终端的虚拟USB设备接口或者将所述应用程序通过所述虚拟USB设备接口发送的网络报文解析为USB数据帧后写入所述USB设备。由于本发明终端可以通过虚拟USB设备接口写入或读取USB消息,并经过适配或解析后与家庭网关进行交互,因此,家庭网关上USB设备不再是家庭网关的独占设备,终端可以充分利用其丰富的应用软件(应用程序)对挂接在家庭网关上的真实USB设备进行透明访问,实现USB设备的诸多功能,而不再需要家庭网关针对每一种类型的USB设备实现一种业务访问功能。
具体实施方式
本发明实施例提供一种家庭网关上USB设备的访问方法,通过接收挂接在所述家庭网关上USB设备的USB消息,并将所述USB消息适配成网络报文后发送至终端的虚拟USB设备接口或者将所述应用程序通过所述虚拟USB设备接口发送的网络报文解析为USB数据帧后写入所述USB设备。本发明实施例还提供相应的家庭网关以及一种终端。以下分别进行详细说明。
请参考图1,本发明实施例一提供的一种家庭网关上USB设备的访问方法基本流程示意图,主要包括:
步骤S101,接收挂接在所述家庭网关上USB设备的USB消息。
在本发明实施例中,挂接在所述家庭网关上USB设备可以是U盘、USB摄像头或USB打印机。当这些真实的USB设备插入、拔出家庭网关的USB设备接口或具有应用数据从USB设备接口流过,家庭网关的USB驱动模块将接收到USB数据帧、USB设备的真实插入事件消息和/或USB设备的真实拔出事件消息等USB消息。
步骤S102,将所述USB消息适配成网络报文后发送至终端的虚拟USB设备接口或者将所述终端通过所述虚拟USB设备接口发送的网络报文解析为USB数据帧后写入所述USB设备。
由于家庭网关与终端之间通过TCP、IP或UDP等通信协议进行通信,USB消息不适宜在上述协议的通信链路上传输,可以首先将所述USB消息适配成网络报文,然后,通过上述协议的通信链路发送至终端的虚拟USB设备接口以供所述终端的应用程序读取,或者反之,将所述终端通过所述虚拟USB设备接口发送的网络报文解析为USB数据帧后写入所述USB设备。显然,解析出的USB数据帧是通过家庭网关的USB驱动模块写入所述USB设备。在本发明实施例中,终端可以是具有计算功能的设备或不同于USB设备的智能化设备,例如,PC、便携式计算机或移动终端(手机)等。
在本发明实施例中,虚拟USB设备接口的意义在于:终端可以对家庭网关上的真实USB设备进行透明访问,即,用户可以像对挂接在终端的真实USB设备一样对家庭网关上的真实USB设备进行访问而感觉不到该真实USB设备的存在。
一般地,与家庭网关连接的可能有多个终端。为了实现多个终端对USB设备的共享且在其中一个终端与被共享的USB设备断开连接时不影响其他终端对USB设备的共享,在本发明实施例中,可以在家庭网关一端生成USB设备的虚拟插入事件消息或USB设备的虚拟拔出事件消息。如此,家庭网关可以在与USB设备保持连接(即USB设备真实地挂接在家庭网关上)的情况时,将所述虚拟插入事件消息或虚拟拔出事件消息适配成网络报文后发送至所述终端。终端从所述网络报文解析出所述虚拟插入事件消息或虚拟拔出事件消息后,在本端执行USB设备的虚拟插入或USB设备的虚拟拔出操作,实现终端与USB设备的连接或断开。
由于终端和家庭网关都可以访问挂接在所述家庭网关上的USB设备,为了防止两者对所述USB设备的访问冲突,在本发明实施例中,用户可以预先配置访问策略,家庭网关执行这些预先配置的访问策略控制所述终端和所述家庭网关对所述USB设备的访问。可以根据业务参数或场景条件配置访问策略,其中,业务参数或场景条件包括所述USB设备的逻辑接口、USB设备的类型以及所述终端和家庭网关访问所述USB设备的优先级,访问策略包括所述家庭网关对所述USB设备的独占访问、所述终端对所述USB设备的独占访问、所述家庭网关对所述USB设备的优先访问、所述终端对所述USB设备的优先访问以及所述家庭网关和终端对所述USB设备的同时共享访问等。
作为本发明一个实施例,在配置访问策略时,可以形成一个规则列表。其中,每条规则包括匹配条件和访问策略,而匹配条件可以是上述业务参数或场景条件等,即,所述USB设备的逻辑接口、USB设备的类型以及所述终端和家庭网关访问所述USB设备的优先级等等。当有访问操作发生时,就根据匹配条件去匹配规则列表中的规则。一旦匹配到了某条规则,则根据该规则的访问策略决定该访问操作是否允许执行。
在本发明实施例中,可以配置访问策略包括以下情形:
1)、当USB设备有多个逻辑接口时,可以针对每个逻辑接口配置一套独立的访问策略。
2)、根据USB设备的类型配置访问策略。例如,对U盘、USB摄像头和USB打印机等不同类型的USB设备就可以配置不同的访问策略,包括但不限于:U盘的访问策略可以为“家庭网关和终端同时共享访问”,而USB摄像头的访问策略可以为“家庭网关独占访问”等等。
3)、根据终端和家庭网关访问所述USB设备的优先级配置访问策略,即,当家庭网关和终端的应用程序同时访问某个USB设备时,可以根据事先配置的优先级决定由谁优先访问该USB设备。例如,当访问策略配置为“家庭网关对USB设备优先访问”时,则家庭网关正在使用该USB设备时,终端就不能访问。即使终端在先使用,家庭网关在后访问该USB设备,终端仍然需要释放对该USB设备的访问,让与家庭网关访问该USB设备。
由于可以通过配置访问策略灵活地控制家庭网关和终端访问挂接在家庭网关上的USB设备的秩序,因此,本发明有效地防止了终端和家庭网关对所述USB设备的访问冲突,实现家庭网关和终端对USB设备的共享。
在本发明实施例中,家庭网关或终端还可以通过单播或广播探测报文,以探测所述家庭网关所属网络是否具有能够共享所述USB设备的其他家庭网关或终端。具体而言,家庭网关和终端的在系统上电初始化完毕时,向网络上的特定协议端口广播或单播探测报文。当网络上正在运行的且同样具有能够共享所述USB设备的其他家庭网关或终端接收到探测报文时,及时地应答一个确认报文,该确认报文中包含该其他家庭网关或终端的类型,广播或单播探测报文的家庭网关或终端收到确认报文后建立起USB共享的通信关系。
请参阅图2,本发明实施例二提供的一种家庭网关上USB设备的访问方法基本流程示意图,主要包括:
步骤S201,终端接收来自所述家庭网关的网络报文。
在本发明实施例中,终端可以是具有计算功能的设备或不同于USB设备的智能化设备,例如,PC、便携式计算机或移动终端(手机)等。
步骤S202,从所述网络报文解析出USB消息后传递至所述终端的虚拟USB设备接口。
由于家庭网关与终端之间通过TCP、IP或UDP等通信协议进行通信,从家庭网关侧发送过来的是网络报文,而终端的应用程序无法直接读取这些网络报文,因此,可以首先从家庭网关侧发送过来的网络报文解析出USB消息后传递至所述终端的虚拟USB设备接口。在本发明实施例中,这些USB消息包括USB数据帧、USB设备的真实插入事件消息和/或USB设备的真实拔出事件消息。
步骤S203,终端应用程序通过所述虚拟USB设备接口读取所述USB数据帧或通过所述虚拟USB设备接口写入数据。
在本发明实施例中,虚拟USB设备接口不同于终端上具有的物理USB设备接口,其原因是,此时的终端并没有挂接任何真实的USB设备。虚拟USB设备接口的意义在于:终端可以对家庭网关上的真实USB设备进行透明访问,即,用户可以像对挂接在终端的真实USB设备一样对家庭网关上的真实USB设备进行访问而感觉不到该真实USB设备的存在。正是由于上述虚拟USB设备接口的存在,终端可以充分利用其丰富的应用软件(应用程序)访问挂接在家庭网关上的USB设备,实现USB设备的诸多功能。
步骤S204,将所述通过所述虚拟USB设备接口写入的数据适配成网络报文后发送至所述家庭网关。
如前所述,USB消息不适宜在基于TCP、IP或UDP等协议的通信链路上直接传输,需要在终端将通过所述虚拟USB设备接口写入的数据适配成网络报文,然后,通过上述协议的通信链路发送至家庭网关侧。
一般地,与家庭网关连接的可能有多个终端。为了实现多个终端对USB设备的共享且在其中一个终端与被共享的USB设备断开连接时不影响其他终端对USB设备的共享,在本发明实施例中,家庭网关在与USB设备保持连接(即USB设备真实地挂接在家庭网关上)时,生成USB设备的虚拟插入事件消息或USB设备的虚拟拔出事件消息,这些虚拟事件消息也是以网络报文的形式传输至终端。这就是说,终端从网络报文解析出USB消息还包括所述USB设备的虚拟插入事件消息和/或USB设备的虚拟拔出事件消息。
如此,终端从网络报文解析出虚拟插入事件消息或虚拟拔出事件消息后,在本端执行USB设备的虚拟插入或USB设备的虚拟拔出操作,实现终端与USB设备的连接或断开。
从上述实施例可以得知,虽然USB设备挂接在家庭网关上,但并不是家庭网关的独占设备,终端可以通过虚拟USB设备接口写入或读取USB消息,并经过适配或解析的过程后,终端可以充分利用其丰富的应用软件(应用程序)访问挂接在家庭网关上的USB设备,实现USB设备的诸多功能。
请参阅图3,本发明实施例三提供的一种家庭网关基本逻辑结构示意图。为了便于说明,仅示出了与本发明实施例相关的部分。该家庭网关包括:
接收模块301,用于接收挂接在所述家庭网关上USB设备的USB消息,所述USB消息包括USB数据帧、USB设备的真实插入事件消息和/或USB设备的真实拔出事件消息。
适配解析模块302,用于将所述接收模块301接收的USB消息适配成网络报文后发送至终端的虚拟USB设备接口以供所述终端的应用程序读取或将所述终端通过所述虚拟USB设备接口发送的网络报文解析为USB数据帧后写入所述USB设备。
由于家庭网关与终端之间通过TCP、IP或UDP等通信协议进行通信,USB消息不适宜在上述协议的通信链路上传输,因此,可以首先采用适配解析模块302将所述USB消息适配成网络报文,然后,通过上述协议的通信链路发送至终端的虚拟USB设备接口以供所述终端的应用程序读取,或者反之,将所述终端通过所述虚拟USB设备接口发送的网络报文解析为USB数据帧后写入所述USB设备。显然,解析出的USB数据帧是通过家庭网关的USB驱动模块写入所述USB设备。在本实施例中,终端可以是具有计算功能的设备或不同于USB设备的智能化设备,例如,PC、便携式计算机或移动终端(手机)等。
由于终端和家庭网关都可以访问挂接在所述家庭网关上的USB设备,为了防止两者对所述USB设备的访问冲突,在本发明实施例中,家庭网关可以进一步包括控制模块303,用于执行用户预先配置的访问策略以通过所述适配解析模块302控制所述终端和所述家庭网关对所述USB设备的访问。这些访问策略可以根据业务参数或场景条件由用户预先配置,其中,业务参数或场景条件包括所述USB设备的逻辑接口、USB设备的类型以及所述终端和家庭网关访问所述USB设备的优先级,访问策略包括所述家庭网关对所述USB设备的独占访问、所述终端对所述USB设备的独占访问、所述家庭网关对所述USB设备的优先访问、所述终端对所述USB设备的优先访问以及所述家庭网关和终端对所述USB设备的同时共享访问等。
一般地,与家庭网关连接的可能有多个终端。为了实现多个终端对USB设备的共享且在其中一个终端与被共享的USB设备断开连接时不影响其他终端对USB设备的共享,在本发明实施例中,还可以在家庭网关虚拟出USB设备的插入事件或拔出事件。进一步地,由家庭网关包括的虚拟消息生成模块304根据虚拟出的USB设备的插入事件或拔出事件生成USB设备的虚拟插入事件消息或USB设备的虚拟拔出事件消息。如此,家庭网关可以在与USB设备保持连接(即USB设备真实地挂接在家庭网关上)时,采用上述适配解析模块302将虚拟消息生成模块304生成的虚拟插入事件消息或虚拟拔出事件消息适配成网络报文后发送至所述终端。终端从所述网络报文解析出所述虚拟插入事件消息或虚拟拔出事件消息后,根据所述虚拟插入事件消息或虚拟拔出事件消息在本端执行USB设备的虚拟插入或USB设备的虚拟拔出操作,实现终端与USB设备的连接或断开。
在本实施例中,家庭网关进一步包括探测模块305,用于单播或广播探测报文以探测所述家庭网关所属网络是否具有能够共享所述USB设备的其他家庭网关或终端。
从上述实施例可以得知,虽然USB设备挂接在家庭网关上,但并不是家庭网关的独占设备,终端可以通过虚拟USB设备接口写入或读取USB消息,并经过适配或解析后,终端可以充分利用其丰富的应用软件(应用程序)访问挂接在家庭网关上的USB设备,实现USB设备的诸多功能。
请继续参阅图4,本发明实施例四提供的一种终端基本逻辑结构示意图。为了便于说明,仅示出了与本发明实施例相关的部分。该终端可以是具有计算功能的设备或不同于USB设备的智能化设备,例如,PC、便携式计算机或移动终端(手机)等。该终端包括:
接收模块401,用于接收来自所述家庭网关的网络报文。
解析模块402,用于从所述网络报文解析出USB消息后传递至终端的虚拟USB设备接口。
由于家庭网关与终端之间通过TCP、IP或UDP等通信协议进行通信,从家庭网关侧发送过来的是网络报文,而终端的应用程序无法直接读取这些网络报文,因此,可以采用解析模块402从家庭网关侧发送过来的网络报文中解析出USB消息后传递至所述终端的虚拟USB设备接口。在本发明实施例中,这些USB消息包括USB数据帧、USB设备的真实插入事件消息和/或USB设备的真实拔出事件消息
数据读写模块403,用于终端应用程序通过所述虚拟USB设备接口读取所述USB数据帧或通过所述虚拟USB设备接口写入数据。虚拟USB设备接口不同于终端上具有的物理USB设备接口,其原因是,此时的终端并没有挂接任何真实的USB设备。虚拟USB设备接口的意义在于:终端可以对家庭网关上的真实USB设备进行透明访问,即,用户可以像对挂接在终端的真实USB设备一样对家庭网关上的真实USB设备进行访问而感觉不到该真实USB设备的存在。正是由于上述虚拟USB设备接口的存在,终端可以充分利用其丰富的应用软件(应用程序)访问挂接在家庭网关上的USB设备,实现USB设备的诸多功能。
适配模块404,用于将所述通过所述虚拟USB设备接口写入的数据适配成网络报文后发送至所述家庭网关。
一般地,与家庭网关连接的可能有多个终端。为了实现多个终端对USB设备的共享且在其中一个终端与被共享的USB设备断开连接时不影响其他终端对USB设备的共享,在本发明实施例中,家庭网关在与USB设备保持连接(即USB设备真实地挂接在家庭网关上)时,其会生成USB设备的虚拟插入事件消息或USB设备的虚拟拔出事件消息,这些虚拟事件消息也是以网络报文的形式传输至终端。这就是说,所述解析模块402从网络报文解析出的USB消息还包括所述USB设备的虚拟插入事件消息和/或USB设备的虚拟拔出事件消息。如此,在本实施例中,终端进一步包括执行模块405,用于在所述解析模块402从网络报文解析出USB设备的虚拟插入事件消息和/或USB设备的虚拟拔出事件消息后,在本端执行USB设备的虚拟插入或USB设备的虚拟拔出操作,实现终端与USB设备的连接或断开。
从上述实施例可以得知,虽然USB设备挂接在家庭网关上,但并不是家庭网关的独占设备,终端可以通过虚拟USB设备接口写入或读取USB消息,并经过适配或解析的过程后,终端可以充分利用其丰富的应用软件(应用程序)访问挂接在家庭网关上的USB设备,实现USB设备的诸多功能。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的家庭网关上USB设备的访问方法、一种家庭网关和终端进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。