CN106341777B - Usb虚拟设备创建方法、设备及系统 - Google Patents

Usb虚拟设备创建方法、设备及系统 Download PDF

Info

Publication number
CN106341777B
CN106341777B CN201610658764.9A CN201610658764A CN106341777B CN 106341777 B CN106341777 B CN 106341777B CN 201610658764 A CN201610658764 A CN 201610658764A CN 106341777 B CN106341777 B CN 106341777B
Authority
CN
China
Prior art keywords
equipment
usb virtual
virtual unit
descriptor
usb
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.)
Active
Application number
CN201610658764.9A
Other languages
English (en)
Other versions
CN106341777A (zh
Inventor
苏洪静
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Skyworth RGB Electronics Co Ltd
Original Assignee
Shenzhen Skyworth RGB Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Skyworth RGB Electronics Co Ltd filed Critical Shenzhen Skyworth RGB Electronics Co Ltd
Priority to CN201610658764.9A priority Critical patent/CN106341777B/zh
Publication of CN106341777A publication Critical patent/CN106341777A/zh
Application granted granted Critical
Publication of CN106341777B publication Critical patent/CN106341777B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/14Direct-mode setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/005Discovery of network devices, e.g. terminals

Abstract

本发明公开了一种USB虚拟设备创建方法、设备及系统,该方法用于在主设备端创建USB虚拟设备,所述USB虚拟设备创建方法包括以下步骤:在主设备端加载USB虚拟设备驱动模块,在所述主设备与从设备之间建立无线连接;通过无线局域网发布USB虚拟服务,并监听所述从设备网络端口;如果发现来自从设备的连接信息,则向从设备发送获取USB虚拟设备的配置请求;接收从设备的配置信息;根据配置信息创建相应的USB虚拟设备节点。本发明根据虚拟的设备,可直接在从设备上操作,借助无线WIFI实现了移动终端与主设备之间的数据传输,而无需连接数据线,改善了数据传输的环境,提升用户使用的便捷性和体验效果。

Description

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虚拟服务,提供服务端口和主设备的MAC地址;
所述从设备查询所述USB虚拟服务,如果发现所述主设备,则向所述主设备发送连接信息包括:
所述从设备查询所述USB虚拟服务,如果发现所述主设备,则获取所述主设备的MAC地址,并向所述主设备发送连接信息。
优选地,所述主设备接收所述连接信息,并向所述从设备发送获取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虚拟服务,提供服务端口和主设备的MAC地址;
所述连接模块,还用于在查询所述USB虚拟服务,并在发现所述主设备时,获取所述主设备的MAC地址,并向所述主设备发送连接信息。
优选地,所述收发模块包括第一收发模块、第二收发模块、第三收发模块、第四收发模块和第五收发模块;所述交互模块包括第一交互模块、第二交互模块、第三交互模块、第四交互模块、第五交互模块和第六交互模块;
所述第一交互模块,用于接收所述连接信息,并向所述从设备发送获取USB虚拟设备的设备描述符请求;
所述第一收发模块,用于接收所述设备描述符请求并向所述主设备发送USB虚拟设备的设备描述符;
所述第二交互模块,用于接收所述USB虚拟设备的设备描述符,并向所述从设备发送获取USB虚拟设备的配置描述符请求;
所述第二收发模块,用于接收所述配置描述符的请求并向所述主设备发送USB虚拟设备的配置描述符;
所述第三交互模块,用于接收所述USB虚拟设备的配置描述符,并向所述从设备发送获取USB虚拟设备的接口描述符请求;
所述第三收发模块,用于接收所述接口描述符请求并向所述主设备发送USB虚拟设备的接口描述符;
所述第四交互模块,用于接收所述USB虚拟设备的接口描述符,并向所述从设备发送获取USB虚拟设备的端点描述符请求;
所述第四收发模块,用于接收所述端点描述符请求并向所述主设备发送USB虚拟设备的端点描述符;
所述第五交互模块,用于接收所述USB虚拟设备的端点描述符,并向所述从设备发送获取USB虚拟设备的字符串描述符请求;
所述第五收发模块,用于接收所述字符串描述符请求并向所述主设备发送USB虚拟设备的字符串描述符;
所述第六交互模块,用于接收所述字符串描述符。
本发明的方案,通过在设备端加载USB虚拟设备驱动模块,在主设备与从设备之间建立无线连接后,要使用标准的USB协议来通讯、注册设备并生成设备节点,在此过程中,两设备能在WIFI连接下根据模拟设备的设备、配置、接口来发送和接收USB协议描述的字符串,最终获得USB虚拟设备的配置信息,产生相应的USB虚拟设备节点;根据虚拟的具体设备,可以直接在从设备即移动终端上操作,借助无线WIFI实现了移动终端与主设备之间的数据传输,而无需连接数据线,改善了数据传输的环境,提升用户使用的便捷性和体验效果。
附图说明
图1为本发明USB虚拟设备创建方法一实施例的流程示意图;
图2为图1中主设备端驱动模块加载流程示意图;
图3为主设备端的逻辑配置图;
图4为主设备端HCD初始化流程图;
图5为图1中步骤S4的细化流程图;
图6为本另一发明USB虚拟设备创建方法一实施例的流程示意图;
图7为图5中步骤S20及步骤S30的细化流程示意图;
图8为图5中步骤S40及步骤S50的细化流程示意图;
图9为图8中步骤S40及步骤S50的进一步细化流程示意图;
图10为USB音频设备wifi枚举过程示意图;
图11为本发明USB虚拟设备创建设备一实施例的功能模块示意图;
图12为图11中主设备的细化功能模块示意图;
图13为本发明另一USB虚拟设备创建系统一实施例的功能模块示意图;
图14为图13中主设备和从设备的细化功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种USB虚拟设备创建方法,参照图1,用于在主设备端创建USB虚拟设备,在一实施例中,参见图1,该USB虚拟设备创建方法包括:
步骤S1,在主设备端加载USB虚拟设备驱动模块,在所述主设备与从设备之间建立无线连接;
参见图2,首先需要在主设备系统中实现动态加载相关驱动模块(KO驱动文件),该驱动模块作为linux kernel(linux内核)的模块驱动,在主机端可以被动态加载,可以理解为在Linux下编写USB设备的驱动程序,使用USB core的子系统所定义的数据结构、宏和函数来编写数据的处理功能。当该驱动模块加载后会首先创建USB HCD设备即USB主控制器,主设备与从设备之间建立WIFI无线连接。
如果虚拟的设备是声卡,可以在USB主控制器中设置音频文件的格式,以及与文件格式所对应的声卡的各项参数等,如果模拟的设备是输入设备,可以在USB主控制器中设置输入数据的格式,是录音还是文本等,以及与数据格式所对应的输入设备的各项参数等,为后续交互过程提供请求内容。
步骤S2,通过无线局域网发布USB虚拟服务,并监听所述从设备网络端口;
主设备端的逻辑配置参见图3,主设备有四层逻辑配置,第一层设备、第二层配置、第三层接口、第四层端点;主设备端的虚拟USB HCD的初始化流程参见图4,驱动加载后,进行初始化流程,注册平台驱动,创建USB的主控制器设备,创建USB HCD,添加虚拟HCD到内核,启动虚拟HCD服务发布,在无线局域网内发布的USB虚拟服务即虚拟HCD服务,定时循环监听从设备的连接,等待从设备发送的带有固定协议标识的连接信息,这里的无线局域网覆盖所述主设备和从设备,可以理解为借助相关协议在在无线局域网内发布虚拟USB服务,连接信息附带的固定协议标识,这里的固定协议对应于所述相关协议。
步骤S3,如果发现来自于所述从设备的连接信息,则向所述从设备发送获取USB虚拟设备的配置请求;接收所述从设备反馈的根据所述配置请求返回的配置信息;
如果网络数据中发现相关协定的协议标识(比如0x8899),主设备认为从设备要求建立连接,此时主从设备会根据USB标准协议来沟通交互。
步骤S4,根据所述配置信息创建相应的USB虚拟设备节点。
主设备获取到设备配置符、接口、端点等信息后,反馈配置信息给内核USB Core,USB Core会根据这些描述符信息产生相应USB声卡设备节点。
本发明的方案,通过在设备端加载USB虚拟设备驱动模块,在主设备与从设备之间建立无线连接后,要使用标准的USB协议来通讯、注册设备并生成设备节点,在此过程中,两设备能在WIFI连接下根据模拟设备的设备、配置、接口来发送和接收USB协议描述的字符串,最终获得USB虚拟设备的配置信息,产生相应的USB虚拟设备节点;根据虚拟的具体设备,可以直接在从设备即移动终端上操作,借助无线WIFI实现了移动终端与主设备之间的数据传输,而无需连接数据线,改善了数据传输的环境,提升用户使用的便捷性和体验效果。
优选地,参见图5,所述步骤S4包括:
步骤S41,接收所述连接信息,并向所述从设备发送获取USB虚拟设备的设备描述符请求;所述主设备根据USB虚拟设备处理的数据的格式,向所述从设备发送设备描述符请求;例如需要进行播放音频文件,则发送声卡设备描述符请求,例如需要录入命令或字符,则发送输入设备描述符请求。
步骤S42,接收所述从设备反馈的根据所述设备描述符请求返回的设备描述符,并向所述从设备发送获取USB虚拟设备的配置描述符请求;确定了具体设备后,根据处理的数据的格式,发送配置描述符请求,例如需要播放的是MP3文件,则对声卡的具体参数具有相应的要求,这个要求通过配置描述符请求的形式发送给从设备。
参见图3,在USB设备的逻辑组织中,包含设备、配置、接口和端点四个层次。每个USB设备都提供了不同级别的配置信息,可以包含一个或多个配置,不同的配置使设备表现出不同的功能组合(在探测/连接期间需从其中选定一个),配置由多个接口组成,每个设备、配置、接口、端点都有对应的描述符来描述其属性。
步骤S43,接收所述从设备反馈的根据所述配置描述符请求返回的配置描述符,并向所述从设备发送获取USB虚拟设备的接口描述符请求;从设备接收上述配置描述符请求并返回一个具体的参数,这个参数以配置描述符的形式返回给主设备,主设备根据处理的数据的格式,发送接口描述符,例如USB扬声器可以包含一个音频接口以及键盘、鼠标接口。一个配置中的所有接口可以同时有效,并可被不同的驱动程序连接。每个接口可以有备用接口,以提供不同质量的服务参数。
步骤S44,接收所述从设备反馈的根据所述接口描述符请求返回的接口描述符,并向所述从设备发送获取USB虚拟设备的端点描述符请求;在USB协议中,接口由多个端点组成,代表一个基本的功能,是USB设备驱动程序控制的对象,一个功能复杂的USB设备可以具有多个接口。每个配置中可以有多个接口,而设备接口是端点的汇集(collection)。例如USB扬声器可以包含一个音频接口以及键盘、鼠标接口。一个配置中的所有接口可以同时有效,并可被不同的驱动程序连接。每个接口可以有备用接口,以提供不同质量的服务参数。端点是USB通信的最基本形式,每一个USB设备接口在主机看来就是一个端点的集合。主机只能通过端点与设备进行通信,以使用设备的功能。
步骤S45,接收所述从设备反馈的根据所述端点描述符请求返回的端点描述符,并向所述从设备发送获取USB虚拟设备的字符串描述符请求;在USB系统中每一个端点都有惟一的地址,这是由设备地址和端点号给出的。每个端点都有一定的属性,其中包括传输方式、总线访问频率、带宽、端点号和数据包的最大容量等。一个USB端点只能在一个方向承载数据,或者从主机到设备(称为输出端点),或者从设备到主机(称为输入端点),因此端点可看作一个单向的管道。端点0通常为控制端点,用于设备初始化参数等。只要设备连接到USB上并且上电端点0就可以被访问。端点1、2一般用作数据端点,存放主机与设备间往来的数据。
步骤S46,接收所述从设备反馈的根据所述字符串描述符请求返回的字符串描述符。字符串描述符是上述配置硬件的厂商、型号及参数的具体信息。接收这些信息才算完整,才能完成虚拟设备的配置。
本发明实施例还提供一种USB虚拟设备创建方法,参见图6,用于在主设备端创建USB虚拟设备,所述主设备和从设备均具有USB端口,所述USB虚拟设备创建方法包括以下步骤:
步骤S10,在所述主设备端加载USB虚拟设备驱动模块,在所述主设备与从设备之间建立无线连接;
步骤S20,通过无线局域网发布USB虚拟服务,并监听所述从设备网络端口;
步骤S30,所述从设备查询所述USB虚拟服务,如果发现所述主设备,则向所述主设备发送连接信息;
步骤S40,所述主设备接收所述连接信息,并向所述从设备发送获取USB虚拟设备的配置信息请求;
步骤S50,所述从设备接收所述配置信息请求,并向所述主设备发送USB虚拟设备的配置信息;
步骤S60,所述主设备获取所述配置信息,并根据所述配置信息创建相应的USB虚拟设备节点。
本发明的方案,通过在设备端加载USB虚拟设备驱动模块,在主设备与从设备之间建立无线连接后,要使用标准的USB协议来通讯、注册设备并生成设备节点,在此过程中,两设备能在WIFI连接下根据模拟设备的设备、配置、接口来发送和接收USB协议描述的字符串,最终获得USB虚拟设备的配置信息,产生相应的USB虚拟设备节点;根据虚拟的具体设备,可以直接在从设备即移动终端上操作,借助无线WIFI实现了移动终端与主设备之间的数据传输,而无需连接数据线,改善了数据传输的环境,提升用户使用的便捷性和体验效果。
优选地,参见图7,所述步骤S20包括:步骤S20’,所述主设备在无线局域网内发布USB虚拟服务,提供服务端口和主设备的MAC地址;在无线局域网内发布USB虚拟服务时可借助SSDP协议或者MDNS协议;
所述步骤S30包括:步骤S30’,所述从设备查询所述USB虚拟服务,如果发现所述主设备则获取所述主设备的MAC地址,并向所述主设备发送连接信息。发送的连接信息带有固定协议标识,这里的固定协议可以是SSDP协议或者MDNS协议。
由于需要使用WIFI网络来替代USB硬件传输通道,所以在发布服务后USB虚拟设备模块驱动还要监听WIFI网络接口来等待USB从设备连接。从设备查询所述USB虚拟服务,如果发现所述主设备,从设备通过服务端口获得主设备的MAC地址;并向所述主设备发送带有固定协议标识的连接信息,主设备监听从设备连接,根据MAC层协议标识过滤网络数据,依据USB协议与从设备端通过网络传递的描述符创建内核设备,借助网socket实现与USB设备间数据交互传输。
优选地,参见图8,所述步骤S40包括:步骤S40’,所述主设备根据USB虚拟设备处理的数据的格式,向所述从设备发送请求;
所述步骤S50包括:步骤S50’,所述从设备接收所述请求,向所述主设备发送USB虚拟设备的配置信息。
在本方案的一实施例中,USB虚拟设备是声卡,例如在从设备上播放主设备上的MP3格式的音频文件,则根据MP3格式的音频文件对声卡参数的要求向从设备发送配置请求,所述从设备接收所述配置请求后,向所述主设备协商并发送USB虚拟设备的配置信息。
在实现过程以WIFI为传输媒介,以USB为标准通讯传输协议,在linux系统底层的设备驱动中完成设备的创建,销毁。使得上层应用可以动态查询设备是否存在、使用而不必关心虚拟设备的具体实现。虚拟设备可以通过主从设备间的通讯协议来动态配置,可以通过不同的USB接口实现多种功能:声卡、输入设备等。
由于技术实现以linux驱动模块方式完成,所有可以适用于andorid等底层基于linux的操作系统。随着WIFI技术的不断进步,数据传输环境和效率会逐步得到改善,为智能设备提供更方便、更多样的扩展性,为终端客户提供更友好、更方便的使用体验。
进一步地,参见图9,所述步骤S40包括:
步骤S401,所述主设备接收所述连接信息,并向所述从设备发送获取USB虚拟设备的设备描述符的请求;
步骤S402,所述主设备接收所述设备描述符,并向所述从设备发送获取USB虚拟设备的配置描述符的请求;
步骤S403,所述主设备接收所述配置描述符,并向所述从设备发送获取USB虚拟设备的接口描述符的请求;
步骤S404,所述主设备接收所述接口描述符,并向所述从设备发送获取USB虚拟设备的端点描述符的请求;
步骤S405,所述主设备接收所述端点描述符,并向所述从设备发送获取USB虚拟设备的字符串描述符的请求;
步骤S406,所述主设备接收所述字符串描述符。
所述步骤S50包括:
步骤S501,所述从设备接收所述设备描述符的请求并向所述主设备发送USB虚拟设备的设备描述符;
步骤S502,所述从设备接收所述配置描述符的请求并向所述主设备发送USB虚拟设备的配置描述符;
步骤S503,所述从设备接收所述接口描述符的请求并向所述主设备发送USB虚拟设备的接口描述符;
步骤S504,所述从设备接收所述端点描述符的请求并向所述主设备发送USB虚拟设备的端点描述符;
步骤S505,所述从设备接收所述字符串描述符的请求并向所述主设备发送USB虚拟设备的字符串描述符。
整个交互过程如下参见图10,其中,图10中以模拟音频设备为例进行枚举,主设备端定时发布虚拟HCD服务,并监听网络端口,从设备端定时查询虚拟HCD服务,如果未发现主设备,则继续查询;如果发现主设备则通过服务器端口获得主设备MAC地址,并向主设备发送连接信息,所述主设备接收从设备的连接信息,主设备监听到该连接信息后,向所述从设备发送获取声卡音频的设备描述符的请求;所述从设备接收所述设备描述符的请求并向所述主设备发送声卡音频的设备描述符;所述主设备接收所述设备描述符,并向所述从设备发送获取声卡音频的配置描述符的请求;所述从设备接收所述配置描述符的请求并向所述主设备发送声卡音频的配置描述符;所述主设备接收所述配置描述符,并向所述从设备发送获取声卡音频的接口描述符的请求;所述从设备接收所述接口描述符的请求并向所述主设备发送声卡音频的接口描述符;所述主设备接收所述接口描述符,并向所述从设备发送获取声卡音频的端点描述符的请求;所述从设备接收所述端点描述符的请求并向所述主设备发送USB虚拟设备的端点描述符;所述主设备接收所述端点描述符,并向所述从设备发送获取声卡音频的字符串描述符的请求;所述从设备接收所述字符串描述符的请求并向所述主设备发送声卡音频的字符串描述符。
基于虚拟USB声卡播放音频,参见图10;当USB虚拟声卡创建成功后,会在内核系统USB声卡播放节点:pcmC3D0p主设备可以使用tinyplay测试wav音频文件,同时需要从设备配合接收数据并播放。
基于虚拟USB声卡接收音频,参见图10;当USB虚拟声卡创建成功后,会在内核系统USB声卡采集节点:pcmC3D0c主设备可以使用tinycap测试wav音频文件,同时需要从设备端配合发送音频数据;音频捕捉,可在从设备端录音,并向主设备端发送录音文件。
还可以在主设备端实现输入设备的模拟,通过配置不同的端口即可实现,基于虚拟USB HID输入设备接收控制数据,当USB虚拟输入创建成功,会在内核系统生成USB hidinput设备,节点由于hid输入设备可以通过hid id来共享USB传输通道,所以只需要虚拟出一个输入设备节点即可。通过hid id不同,USB device端可以提供输入设备数据比如虚拟键盘设备、虚拟鼠标设备、虚拟触屏设备、虚拟Gsenor设备等。
本发明通过基于当前相对比较成熟的两种种技术:USB和WIFI,来实现多媒体音频设备和输入设备的模拟。
在USB设备的逻辑组织中,包含设备、配置、接口和端点四个层次。
每个USB设备都提供了不同级别的配置信息,可以包含一个或多个配置,不同的配置使设备表现出不同的功能组合(在探测/连接期间需从其中选定一个),配置由多个接口组成,每个设备、配置、接口、端点都有对应的描述符来描述其属性。
在USB协议中,接口由多个端点组成,代表一个基本的功能,是USB设备驱动程序控制的对象,一个功能复杂的USB设备可以具有多个接口。每个配置中可以有多个接口,而设备接口是端点的汇集(collection)。例如USB扬声器可以包含一个音频接口以及键盘、鼠标接口。一个配置中的所有接口可以同时有效,并可被不同的驱动程序连接。每个接口可以有备用接口,以提供不同质量的服务参数。
端点是USB通信的最基本形式,每一个USB设备接口在主机看来就是一个端点的集合。主机只能通过端点与设备进行通信,以使用设备的功能。
在USB系统中每一个端点都有惟一的地址,这是由设备地址和端点号给出的。每个端点都有一定的属性,其中包括传输方式、总线访问频率、带宽、端点号和数据包的最大容量等。
一个USB端点只能在一个方向承载数据,或者从主机到设备(称为输出端点),或者从设备到主机(称为输入端点),因此端点可看作一个单向的管道。端点0通常为控制端点,用于设备初始化参数等。只要设备连接到USB上并且上电端点0就可以被访问。端点1、2等一般用作数据端点,存放主机与设备间往来的数据。
在USB声卡设备中至少应包含一个音频控制接口(Audio Control Interface,ACI/F),可以包含0到多个音频流接口(Audio Stream Interface,AS I/F)。
在AC I/F接口中,包含了一个音频控制类描述符(AC Class)和全部Function节点的描述符,AC I/F可以使用控制端点传输控制命令和状态信息,也可以包含有独立的中断类型端点,以便建立独立的逻辑通道传输AC命令或状态信息。
每一个AS I/F必须有两个可选设置Setting0/1,Setting0是缺省设置,在接口连接的Function空闲时使用该设置,此时接口不占用USB总线带宽,Setting1是接口工作时使用,此时有AS数据流在连接的USB ISO端点中传输。每个AS接口可以包含1到多个AS通道(声道),AS被连接到同步IN/OUT端点上,接口所使用端点的描述表必须紧跟在AS Class/TypeFormat描述表后面。
USB Audio设备枚举阶段,传送USB设备配置描述符时,应把该Configuration下的所有接口描述符表整块数据用一个数据包发给主机(Device可以有多个Configuration)。
USB标准请求外,USB Audio规范定义了Class Specific Request,Audio ControlRequest,Audio Stream Request三类请求。USB Audio设备除了要对USB标准请求作出响应外,还要响应上述三类请求。比如响应Audio Control单元的AC请求,可以完成音量调节、静音控制等功能。若使用缺省控制端点传输AC命令,处理方法与标准请求相同。对于AudioStream端点,需要软件或硬件同步地把数据块填入或取出USB端点缓冲区。
本发明还提供一种USB虚拟设备创建设备,参照图11,在一实施例中,本发明提供的USB虚拟设备创建设备包括主设备1,所述主设备具有USB端口,所述主设备1包括驱动模块11、发布模块12、交互模块13、创建模块14;
驱动模块11,用于在主设备端加载USB虚拟设备,在所述主设备与从设备之间建立无线连接;
发布模块12,用于通过无线局域网发布USB虚拟服务,并监听所述从设备网络端口;
交互模块13,用于在发现来自于所述从设备的连接信息时,向所述从设备发送获取USB虚拟设备的配置请求;并接收来所述从设备反馈的根据所述配置请求返回的配置信息;
创建模块14,用于根据所述配置信息创建相应的USB虚拟设备节点。
本发明的方案,通过在设备端加载USB虚拟设备驱动模块,在主设备与从设备之间建立无线连接后,要使用标准的USB协议来通讯、注册设备并生成设备节点,在此过程中,两设备能在WIFI连接下根据模拟设备的设备、配置、接口来发送和接收USB协议描述的字符串,最终获得USB虚拟设备的配置信息,产生相应的USB虚拟设备节点;根据虚拟的具体设备,可以直接在从设备即移动终端上操作,借助无线WIFI实现了移动终端与主设备之间的数据传输,而无需连接数据线,改善了数据传输的环境,提升用户使用的便捷性和体验效果。
优选地,参见图12,所述交互模块13包括第一交互模块131、第二交互模块132、第三交互模块133、第四交互模块134、第五交互模块135、第六交互模块136;
第一交互模块131,用于接收所述连接信息,并向所述从设备发送获取USB虚拟设备的设备描述符请求;
第二交互模块132,用于接收所述从设备反馈的根据所述设备描述符请求返回的设备描述符,并向所述从设备发送获取USB虚拟设备的配置描述符请求;
第三交互模块133,用于接收所述从设备反馈的根据所述配置描述符请求返回的配置描述符,并向所述从设备发送获取USB虚拟设备的接口描述符请求;
第四交互模块134,用于接收所述从设备反馈的根据所述接口描述符请求返回的接口描述符,并向所述从设备发送获取USB虚拟设备的端点描述符请求;
第五交互模块135,用于接收所述从设备反馈的根据所述端点描述符请求返回的端点描述符,并向所述从设备发送获取USB虚拟设备的字符串描述符请求;
第六交互模块136,用于接收所述从设备反馈的根据所述字符串描述符请求返回的字符串描述符。
在USB设备的逻辑组织中,包含设备、配置、接口和端点四个层次。每个USB设备都提供了不同级别的配置信息,可以包含一个或多个配置,不同的配置使设备表现出不同的功能组合(在探测/连接期间需从其中选定一个),配置由多个接口组成,每个设备、配置、接口、端点都有对应的描述符来描述其属性。
本发明还提供一种USB虚拟设备创建系统,参照图13,在一实施例中,本发明提供的USB虚拟设备创建系统包括:
主设备1和从设备2,所述主设备1和从设备2均具有USB端口,所述主设备1包括驱动模块11、发布模块12、交互模块13、创建模块14;所述从设备2包括连接模块21和收发模块22;其中:
驱动模块11用于在主设备端加载USB虚拟设备,在所述主设备与从设备之间建立无线连接;
首先需要在主设备系统中实现动态加载相关驱动模块(KO驱动文件),该驱动模块作为linux kernel(linux内核)的模块驱动,在主机端可以被动态加载。当该驱动模块加载后会首先创建USB HCD设备即USB主控制器。如果虚拟的设备是声卡,可以在USB主控制器中设置音频文件的格式,以及与文件格式所对应的声卡的各项参数等,如果模拟的设备是输入设备,可以在USB主控制器中设置输入数据的格式,是录音还是文本等,以及与数据格式所对应的输入设备的各项参数等,为后续交互过程提供请求内容。
发布模块12用于通过无线局域网发布USB虚拟服务,并监听所述从设备网络端口;
在无线局域网内发布虚拟USB服务,等待从设备发送的带有固定协议标识的连接信息,这里的无线局域网覆盖所述主设备和从设备,可以理解为借助相关协议在在无线局域网内发布虚拟USB服务,连接信息附带的固定协议标识,这里的固定协议对应于所述相关协议。
所述连接模块22,用于查询所述USB虚拟服务,并在发现所述主设备时,向所述主设备发送连接信息;
交互模块13,用于接收所述连接信息,并向所述从设备发送获取USB虚拟设备的配置请求;并接收所述从设备反馈的根据所述配置请求返回的配置信息;
如果网络数据中发现相关协定的协议标识(比如0x8899),主设备认为从设备要求建立连接,此时主从设备会根据USB标准协议来沟通交互。
所述收发模块22,用于接收所述配置信息请求,并向所述主设备发送USB虚拟设备的配置信息;
创建模块14,用于获取所述配置信息,并产生相应的USB虚拟设备节点。
主设备获取到设备配置符、接口、端点等信息后,反馈配置信息给内核USB Core,USB Core会根据这些描述符信息产生相应USB声卡设备节点。
本发明的方案,通过在设备端加载USB虚拟设备驱动模块,在主设备与从设备之间建立无线连接后,要使用标准的USB协议来通讯、注册设备并生成设备节点,在此过程中,两设备能在WIFI连接下根据模拟设备的设备、配置、接口来发送和接收USB协议描述的字符串,最终获得USB虚拟设备的配置信息,产生相应的USB虚拟设备节点;根据虚拟的具体设备,可以直接在从设备即移动终端上操作,借助无线WIFI实现了移动终端与主设备之间的数据传输,而无需连接数据线,改善了数据传输的环境,提升用户使用的便捷性和体验效果。
优选地,参见图13,所述发布模块12还用于在无线局域网内发布USB虚拟服务,提供服务端口和主设备的MAC地址;在无线局域网内发布USB虚拟服务时可借助SSDP协议或者MDNS协议;
所述连接模块21还用于在查询所述USB虚拟服务并发现所述主设备时,获取所述主设备的MAC地址,并向所述主设备1发送连接信息。发送的连接信息带有固定协议标识,这里的固定协议可以是SSDP协议或者MDNS协议。
由于需要使用WIFI网络来替代USB硬件传输通道,所以在发布服务后USB虚拟设备模块驱动还要监听WIFI网络接口来等待USB从设备连接。从设备查询所述USB虚拟服务,如果发现所述主设备,从设备通过服务端口获得主设备的MAC地址;并向所述主设备发送带有固定协议标识的连接信息,主设备监听从设备连接,根据MAC层协议标识过滤网络数据,依据USB协议与从设备端通过网络传递的描述符创建内核设备,借助网socket实现与USB设备间数据交互传输。
优选地,所述交互模块13还用于根据USB虚拟设备处理的数据的格式,向所述从设备2发送请求;
所述收发模块22用于接收所述请求,并向所述主设备发送USB虚拟设备的配置信息。
在本方案的一实施例中,USB虚拟设备是声卡,例如在从设备上播放主设备上的MP3格式的音频文件,则根据MP3格式的音频文件对声卡参数的要求向从设备发送配置请求,所述从设备接收所述配置请求后,向所述主设备协商并发送USB虚拟设备的配置信息。
在实现过程以WIFI为传输媒介,以USB为标准通讯传输协议,在linux系统底层的设备驱动中完成设备的创建,销毁。使得上层应用可以动态查询设备是否存在、使用而不必关心虚拟设备的具体实现。虚拟设备可以通过主从设备间的通讯协议来动态配置,可以通过不同的USB接口实现多种功能:声卡、输入设备等。
由于技术实现以linux驱动模块方式完成,所有可以适用于andorid等底层基于linux的操作系统。随着WIFI技术的不断进步,数据传输环境和效率会逐步得到改善,为智能设备提供更方便、更多样的扩展性,为终端客户提供更友好、更方便的使用体验。
优选地,参见图14,所述收发模块22包括第一收发模块221、第二收发模块222、第三收发模块223、第四收发模块224和第五收发模块225;所述交互模块13包括第一交互模块131、第二交互模块132、第三交互模块133、第四交互模块134、第五交互模块135和第六收发模块;
所述第一交互模块221,用于接收所述连接信息,并向所述从设备发送获取USB虚拟设备的设备描述符的请求;
所述第一收发模块131,用于接收所述设备描述符的请求并向所述主设备发送USB虚拟设备的设备描述符;
所述第二交互模块222,用于接收所述USB虚拟设备的设备描述符,并向所述从设备发送获取USB虚拟设备的配置描述符的请求;
所述第二收发模块132,用于接收所述配置描述符的请求并向所述主设备发送USB虚拟设备的配置描述符;
所述第三交互模块223,用于接收所述USB虚拟设备的配置描述符,并向所述从设备发送获取USB虚拟设备的接口描述符的请求;
所述第三收发模块133,用于接收所述接口描述符的请求并向所述主设备发送USB虚拟设备的接口描述符;
所述第四交互模块224,用于接收所述USB虚拟设备的接口描述符,并向所述从设备发送获取USB虚拟设备的端点描述符的请求;
所述第四收发模块134,用于接收所述端点描述符的请求并向所述主设备发送USB虚拟设备的端点描述符;
所述第五交互模块225,用于接收所述USB虚拟设备的端点描述符,并向所述从设备发送获取USB虚拟设备的字符串描述符的请求;
所述第五收发模块135,用于接收所述字符串描述符的请求并向所述主设备发送USB虚拟设备的字符串描述符;
所述第六交互模块136用于接收所述字符串描述符。
本发明通过基于当前相对比较成熟的两种种技术:USB和WIFI,来实现多媒体音频设备和输入设备的模拟。
在USB设备的逻辑组织中,包含设备、配置、接口和端点四个层次。
每个USB设备都提供了不同级别的配置信息,可以包含一个或多个配置,不同的配置使设备表现出不同的功能组合(在探测/连接期间需从其中选定一个),配置由多个接口组成,每个设备、配置、接口、端点都有对应的描述符来描述其属性。
在USB协议中,接口由多个端点组成,代表一个基本的功能,是USB设备驱动程序控制的对象,一个功能复杂的USB设备可以具有多个接口。每个配置中可以有多个接口,而设备接口是端点的汇集(collection)。例如USB扬声器可以包含一个音频接口以及键盘、鼠标接口。一个配置中的所有接口可以同时有效,并可被不同的驱动程序连接。每个接口可以有备用接口,以提供不同质量的服务参数。
端点是USB通信的最基本形式,每一个USB设备接口在主机看来就是一个端点的集合。主机只能通过端点与设备进行通信,以使用设备的功能。
在USB系统中每一个端点都有惟一的地址,这是由设备地址和端点号给出的。每个端点都有一定的属性,其中包括传输方式、总线访问频率、带宽、端点号和数据包的最大容量等。
一个USB端点只能在一个方向承载数据,或者从主机到设备(称为输出端点),或者从设备到主机(称为输入端点),因此端点可看作一个单向的管道。端点0通常为控制端点,用于设备初始化参数等。只要设备连接到USB上并且上电端点0就可以被访问。端点1、2等一般用作数据端点,存放主机与设备间往来的数据。
在USB声卡设备中至少应包含一个音频控制接口(Audio Control Interface,ACI/F),可以包含0到多个音频流接口(Audio Stream Interface,AS I/F)。
在AC I/F接口中,包含了一个音频控制类描述符(AC Class)和全部Function节点的描述符,AC I/F可以使用控制端点传输控制命令和状态信息,也可以包含有独立的中断类型端点,以便建立独立的逻辑通道传输AC命令或状态信息。
每一个AS I/F必须有两个可选设置Setting0/1,Setting0是缺省设置,在接口连接的Function空闲时使用该设置,此时接口不占用USB总线带宽,Setting1是接口工作时使用,此时有AS数据流在连接的USB ISO端点中传输。每个AS接口可以包含1到多个AS通道(声道),AS被连接到同步IN/OUT端点上,接口所使用端点的描述表必须紧跟在AS Class/TypeFormat描述表后面。
USB Audio设备枚举阶段,传送USB设备配置描述符时,应把该Configuration下的所有接口描述符表整块数据用一个数据包发给主机(Device可以有多个Configuration)。
USB标准请求外,USB Audio规范定义了Class Specific Request,Audio ControlRequest,Audio Stream Request三类请求。USB Audio设备除了要对USB标准请求作出响应外,还要响应上述三类请求。比如响应Audio Control单元的AC请求,可以完成音量调节、静音控制等功能。若使用缺省控制端点传输AC命令,处理方法与标准请求相同。对于AudioStream端点,需要软件或硬件同步地把数据块填入或取出USB端点缓冲区。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种USB虚拟设备创建方法,其特征在于,用于在主设备端创建USB虚拟设备,所述USB虚拟设备创建方法包括以下步骤:
在主设备端加载USB虚拟设备驱动模块,在所述主设备与从设备之间建立无线连接;
通过无线局域网发布USB虚拟服务,并监听所述从设备网络端口;
如果发现来自于所述从设备发送带有固定协议标识的连接信息,则向所述从设备发送获取USB虚拟设备的配置请求;接收所述从设备反馈的根据所述配置请求返回的配置信息;
根据所述配置信息创建相应的USB虚拟设备节点。
2.如权利要求1所述的USB虚拟设备创建方法,其特征在于,所述如果发现来自于所述从设备的连接信息,并向所述从设备发送USB虚拟设备的配置请求;接收来所述从设备反馈的根据所述配置请求返回的配置信息包括:
接收所述连接信息,并向所述从设备发送获取USB虚拟设备的设备描述符请求;
接收所述从设备反馈的根据所述设备描述符请求返回的设备描述符,并向所述从设备发送获取USB虚拟设备的配置描述符请求;
接收所述从设备反馈的根据所述配置描述符请求返回的配置描述符,并向所述从设备发送获取USB虚拟设备的接口描述符请求;
接收所述从设备反馈的根据所述接口描述符请求返回的接口描述符,并向所述从设备发送获取USB虚拟设备的端点描述符请求;
接收所述从设备反馈的根据所述端点描述符请求返回的端点描述符,并向所述从设备发送获取USB虚拟设备的字符串描述符请求;
接收所述从设备反馈的根据所述字符串描述符请求返回的字符串描述符。
3.一种USB虚拟设备创建方法,其特征在于,用于在主设备端创建USB虚拟设备,所述USB虚拟设备创建方法包括以下步骤:
在所述主设备端加载USB虚拟设备驱动模块,在所述主设备与从设备之间建立无线连接;通过无线局域网发布USB虚拟服务,并监听所述从设备网络端口;
所述从设备查询所述USB虚拟服务,如果发现所述主设备,则向所述主设备发送带有固定协议标识的连接信息;
所述主设备接收所述连接信息,并向所述从设备发送获取USB虚拟设备的配置信息请求;
所述从设备接收所述配置信息请求,并向所述主设备发送USB虚拟设备的配置信息;
所述主设备获取所述配置信息,并根据所述配置信息创建相应的USB虚拟设备节点。
4.如权利要求3所述的USB虚拟设备创建方法,其特征在于,所述通过无线局域网发布USB虚拟服务,并监听所述从设备网络端口包括:
所述主设备在无线局域网内发布USB虚拟服务,提供服务端口和主设备的MAC地址;
所述从设备查询所述USB虚拟服务,如果发现所述主设备,则向所述主设备发送连接信息包括:
所述从设备查询所述USB虚拟服务,如果发现所述主设备,则获取所述主设备的MAC地址,并向所述主设备发送连接信息。
5.如权利要求3所述的USB虚拟设备创建方法,其特征在于,所述主设备接收所述连接信息,并向所述从设备发送获取USB虚拟设备的配置信息请求;所述从设备接收所述配置信息请求,并向所述主设备发送USB虚拟设备的配置信息包括:
所述主设备接收所述连接信息,并向所述从设备发送获取USB虚拟设备的设备描述符请求;
所述从设备接收所述设备描述符请求并向所述主设备发送USB虚拟设备的设备描述符;
所述主设备接收所述设备描述符,并向所述从设备发送获取USB虚拟设备的配置描述符请求;
所述从设备接收所述配置描述符请求并向所述主设备发送USB虚拟设备的配置描述符;
所述主设备接收所述配置描述符,并向所述从设备发送获取USB虚拟设备的接口描述符请求;
所述从设备接收所述接口描述符请求并向所述主设备发送USB虚拟设备的接口描述符;
所述主设备接收所述接口描述符,并向所述从设备发送获取USB虚拟设备的端点描述符请求;
所述从设备接收所述端点描述符请求并向所述主设备发送USB虚拟设备的端点描述符;
所述主设备接收所述端点描述符,并向所述从设备发送获取USB虚拟设备的字符串描述符请求;
所述从设备接收所述字符串描述符请求并向所述主设备发送USB虚拟设备的字符串描述符。
6.一种USB虚拟设备创建设备,其特征在于,所述USB虚拟设备创建设备包括主设备,所述主设备包括:
驱动模块,用于在主设备端加载USB虚拟设备,在所述主设备与从设备之间建立无线连接;
发布模块,用于通过无线局域网发布USB虚拟服务,并监听所述从设备网络端口;
交互模块,用于在发现来自于所述从设备发送带有固定协议标识的连接信息时,向所述从设备发送获取USB虚拟设备的配置请求;并接收来所述从设备反馈的根据所述配置请求返回的配置信息;
创建模块,用于根据所述配置信息创建相应的USB虚拟设备节点。
7.如权利要求6所述的USB虚拟设备创建设备,其特征在于,所述交互模块包括:
第一交互模块,用于接收所述连接信息,并向所述从设备发送获取USB虚拟设备的设备描述符请求;
第二交互模块,用于接收所述从设备反馈的根据所述设备描述符请求返回的设备描述符,并向所述从设备发送获取USB虚拟设备的配置描述符请求;
第三交互模块,用于接收所述从设备反馈的根据所述配置描述符请求返回的配置描述符,并向所述从设备发送获取USB虚拟设备的接口描述符请求;
第四交互模块,用于接收所述从设备反馈的根据所述接口描述符请求返回的接口描述符,并向所述从设备发送获取USB虚拟设备的端点描述符请求;
第五交互模块,用于接收所述从设备反馈的根据所述端点描述符请求返回的端点描述符,并向所述从设备发送获取USB虚拟设备的字符串描述符请求;
第六交互模块,用于接收所述从设备反馈的根据所述字符串描述符请求返回的字符串描述符。
8.一种USB虚拟设备创建系统,其特征在于,所述USB虚拟设备创建系统包括主设备和从设备,所述主设备包括驱动模块、发布模块、交互模块和创建模块;所述从设备包括连接模块和收发模块;
所述驱动模块,用于在所述主设备端加载USB虚拟设备驱动模块,并在所述主设备与从设备之间建立无线连接;
所述发布模块,用于通过无线局域网发布USB虚拟服务,并监听所述从设备网络端口;
所述连接模块,用于查询所述USB虚拟服务,并在发现所述主设备时,向所述主设备发送带有固定协议标识的连接信息;
所述交互模块,用于接收所述连接信息,并向所述从设备发送获取USB虚拟设备的配置请求;并接收所述从设备反馈的根据所述配置请求返回的配置信息;
所述收发模块,用于接收所述配置信息请求,并向所述主设备发送USB虚拟设备的配置信息;
所述创建模块,用于获取所述配置信息,并根据所述配置信息创建相应的USB虚拟设备节点。
9.如权利要求8所述的USB虚拟设备创建系统,其特征在于,
所述发布模块,还用于在无线局域网内发布USB虚拟服务,提供服务端口和主设备的MAC地址;
所述连接模块,还用于查询所述USB虚拟服务,并在发现所述主设备时,获取所述主设备的MAC地址,并向所述主设备发送连接信息。
10.如权利要求8所述的虚拟设备创建系统,其特征在于,所述收发模块包括第一收发模块、第二收发模块、第三收发模块、第四收发模块和第五收发模块;所述交互模块包括第一交互模块、第二交互模块、第三交互模块、第四交互模块、第五交互模块和第六交互模块;
所述第一交互模块,用于接收所述连接信息,并向所述从设备发送获取USB虚拟设备的设备描述符请求;
所述第一收发模块,用于接收所述设备描述符请求并向所述主设备发送USB虚拟设备的设备描述符;
所述第二交互模块,用于接收所述USB虚拟设备的设备描述符,并向所述从设备发送获取USB虚拟设备的配置描述符请求;
所述第二收发模块,用于接收所述配置描述符请求并向所述主设备发送USB虚拟设备的配置描述符;
所述第三交互模块,用于接收所述USB虚拟设备的配置描述符,并向所述从设备发送获取USB虚拟设备的接口描述符请求;
所述第三收发模块,用于接收所述接口描述符请求并向所述主设备发送USB虚拟设备的接口描述符;
所述第四交互模块,用于接收所述USB虚拟设备的接口描述符,并向所述从设备发送获取USB虚拟设备的端点描述符请求;
所述第四收发模块,用于接收所述端点描述符请求并向所述主设备发送USB虚拟设备的端点描述符;
所述第五交互模块,用于接收所述USB虚拟设备的端点描述符并向所述从设备发送获取USB虚拟设备的字符串描述符请求;
所述第五收发模块,用于接收所述字符串描述符请求并向所述主设备发送USB虚拟设备的字符串描述符;
所述第六交互模块,用于接收所述字符串描述符。
CN201610658764.9A 2016-08-11 2016-08-11 Usb虚拟设备创建方法、设备及系统 Active CN106341777B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610658764.9A CN106341777B (zh) 2016-08-11 2016-08-11 Usb虚拟设备创建方法、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610658764.9A CN106341777B (zh) 2016-08-11 2016-08-11 Usb虚拟设备创建方法、设备及系统

Publications (2)

Publication Number Publication Date
CN106341777A CN106341777A (zh) 2017-01-18
CN106341777B true CN106341777B (zh) 2019-04-02

Family

ID=57824689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610658764.9A Active CN106341777B (zh) 2016-08-11 2016-08-11 Usb虚拟设备创建方法、设备及系统

Country Status (1)

Country Link
CN (1) CN106341777B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108089999B (zh) * 2017-11-29 2021-05-25 郑州云海信息技术有限公司 一种多功能usb设备注册方法及系统
CN109408128B (zh) * 2018-11-10 2022-10-11 歌尔光学科技有限公司 分体式ar设备通信方法及ar设备
CN109819201A (zh) * 2019-03-08 2019-05-28 厦门亿联网络技术股份有限公司 一种会议用辅流数据传输方法、显示方法、会议系统及外围设备
CN110278089A (zh) * 2019-06-17 2019-09-24 厦门亿联网络技术股份有限公司 一种基于虚拟usb设备的无线会议控制系统及控制方法和商业方法
CN110597750A (zh) * 2019-10-29 2019-12-20 杭州国迈电子科技有限公司 一种usb会议装置
CN110995308B (zh) * 2019-11-22 2021-05-07 宁波伊士通控制技术有限公司 一种终端数据采集系统及其采集方法
CN112165715B (zh) * 2020-09-25 2021-12-03 珠海格力电器股份有限公司 设备的检测方法和装置、存储介质、电子装置
CN112672091B (zh) * 2020-12-18 2023-05-09 厦门亿联网络技术股份有限公司 基于网络的视频通信方法、系统、存储介质及uvc设备
CN113138946B (zh) * 2021-04-20 2022-06-03 北京安盟信息技术股份有限公司 一种基于嵌入式Linux的USB数据映射过滤方法及装置
CN114020159A (zh) * 2021-09-27 2022-02-08 北京智象信息技术有限公司 一种Linux系统内核虚拟键盘的定制方法、装置、设备和介质
CN114218138A (zh) * 2021-11-30 2022-03-22 山东云海国创云计算装备产业创新中心有限公司 一种usb设备模拟装置及测试系统
CN114265806B (zh) * 2021-12-17 2024-04-02 威创集团股份有限公司 一种实现usb数据信号共享的方法、装置、设备和存储介质
CN115442083B (zh) * 2022-08-08 2023-08-25 黄建邦 设备接入方法、数据交换方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102255902A (zh) * 2011-07-06 2011-11-23 中兴通讯股份有限公司 一种网络设备功能共享的方法及装置
CN102693142A (zh) * 2012-05-10 2012-09-26 中兴通讯股份有限公司南京分公司 网络适配方法及装置
CN103475650A (zh) * 2013-08-30 2013-12-25 深圳Tcl新技术有限公司 基于无线通信协议的数据处理方法和装置
CN103970582A (zh) * 2013-01-28 2014-08-06 联想(北京)有限公司 Usb设备模拟方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9838651B2 (en) * 2012-08-10 2017-12-05 Logitech Europe S.A. Wireless video camera and connection methods including multiple video or audio streams
CN105307102A (zh) * 2014-07-18 2016-02-03 光宝电子(广州)有限公司 蓝牙无线音频传输器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102255902A (zh) * 2011-07-06 2011-11-23 中兴通讯股份有限公司 一种网络设备功能共享的方法及装置
CN102693142A (zh) * 2012-05-10 2012-09-26 中兴通讯股份有限公司南京分公司 网络适配方法及装置
CN103970582A (zh) * 2013-01-28 2014-08-06 联想(北京)有限公司 Usb设备模拟方法
CN103475650A (zh) * 2013-08-30 2013-12-25 深圳Tcl新技术有限公司 基于无线通信协议的数据处理方法和装置

Also Published As

Publication number Publication date
CN106341777A (zh) 2017-01-18

Similar Documents

Publication Publication Date Title
CN106341777B (zh) Usb虚拟设备创建方法、设备及系统
EP4033773B1 (en) Connection method for multimedia playing device, multimedia playing device and control terminal
JP5940733B2 (ja) 複数のクライアントのための動的環境におけるワイヤレスドッキングのためのホストデバイス、クライアントデバイス及び方法
US8782150B2 (en) Method and apparatus for enabling device communication and control using XMPP
US20130067007A1 (en) Method for controlling the output of devices in the network
CN102546616A (zh) 一种媒体共享互动的实现方法及数字家庭媒体服务器
CN110830970B (zh) 蓝牙设备间的音频传输方法、装置、设备及存储介质
WO2018131528A1 (ja) 端末装置、情報処理装置およびマイク音声送信方法
US10425801B2 (en) Method and device for providing contents in communication system
JP2005516439A (ja) 有線ネットワークに接続されたデバイスの制御装置及び制御方法
CN105743671B (zh) 一种扩容方法、控制器及系统
US9832271B2 (en) Method and apparatus for connection between client and server
CN102948116A (zh) 用于将内容发送到多个装置的方法和设备
JP6516675B2 (ja) マルチメディア通信システムにおけるメディア情報送受信方法及び装置
CN111431900A (zh) 一种可动态扩展的智能家居协议对接系统及方法
JP7018110B1 (ja) モバイル機器ドック
CN105162899A (zh) 用于在网络中通信的电子设备和操作电子设备的方法
US10044598B2 (en) Network proxying technology
EP2547038B1 (en) Electronic device for managing a network and operating method of the same
CN106878927A (zh) 多功能蓝牙设备及其连接方法
CN106604204A (zh) 一种远程蓝牙控制终端应用的方法及系统
CN103475533A (zh) 监控前端接入方法、装置及系统
JP2007304693A (ja) 表示機器選択方法、表示機器選択装置、プログラム、およびプログラムを記録した記録媒体
CN113162991B (zh) 一种应用于物联网中的扩展冯诺依曼结构的多层网络结构
CN107317922A (zh) 一种控制多音频输出的方法、终端和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant