CN106452838A - Usb设备模拟装置及方法 - Google Patents
Usb设备模拟装置及方法 Download PDFInfo
- Publication number
- CN106452838A CN106452838A CN201610798196.2A CN201610798196A CN106452838A CN 106452838 A CN106452838 A CN 106452838A CN 201610798196 A CN201610798196 A CN 201610798196A CN 106452838 A CN106452838 A CN 106452838A
- Authority
- CN
- China
- Prior art keywords
- module
- usb device
- descriptor
- processing module
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明涉及一种USB设备模拟装置及方法。该装置包括通信模块、存储模块和处理模块,通信模块连接存储模块和处理模块,存储模块连接处理模块,通信模块通信连接控制端,处理模块接口连接受控端。通信模块接收控制端发送的待模拟USB设备的设备描述符并输出至存储模块进行预存储;处理模块接收受控端发送的设备描述符请求指令;响应于设备描述符请求指令,从存储模块取预存储的设备描述符发送至受控端;接收受控端根据设备描述符发送的数据请求指令,通过通信模块将数据请求指令转发至控制端,接收控制端返回的应答数据并发送至受控端。如此,通过采用通信模块、存储模块和处理模块组成硬件结构的设备模拟装置,不需要软件驱动,可靠性高。
Description
技术领域
本发明涉及硬件模拟技术领域,特别是涉及一种USB设备模拟装置及方法。
背景技术
软件开发人员在开发一款与某种硬件设备进行通信的软件、或者需要对开发的软件进行测试的时候,需要用到硬件设备。当没有足够的硬件设备,或者硬件设备的价格非常昂贵时,可能无法满足每一个开发人员都有一台硬件设备,此时,通常是采用设备模拟的方式解决硬件设备供用不足的问题。
传统的USB设备模拟方式一般是采用纯软件模拟实现,通过驱动设置连接的接口。当采用这种方式连接计算机时,计算机自带的杀毒软件可能拦截软件模拟的驱动,导致模拟不成功,可靠性低。
发明内容
基于此,有必要针对上述问题,提供一种可靠性高的USB设备模拟装置及方法。
一种USB设备模拟装置,包括通信模块、存储模块和处理模块,所述通信模块连接所述存储模块和所述处理模块,所述存储模块连接所述处理模块,所述通信模块还用于通信连接控制端,所述处理模块还用于接口连接受控端;
所述通信模块接收所述控制端发送的待模拟USB设备的设备描述符并输出至所述存储模块进行预存储;
所述处理模块接收所述受控端发送的设备描述符请求指令;以及响应于所述设备描述符请求指令,从所述存储模块取预存储的设备描述符发送至所述受控端;以及接收所述受控端根据所述设备描述符发送的数据请求指令,通过所述通信模块将所述数据请求指令转发至控制端,接收所述控制端返回的应答数据并发送至所述受控端。
上述USB设备模拟装置,通过通信模块与控制端进行通信,接收控制端发送的设备描述符并发送至存储模块进行存储,从而模拟为与设备描述符对应的USB设备;通过处理模块与受控端接口连接,将设备描述符发送至受控端以使受控端识别,以及接收受控端的数据请求指令,通过通信模块将数据请求指令转发至控制端,接收控制端返回的应答数据并发送至受控端。如此,通过采用通信模块、存储模块和处理模块组成硬件结构的USB设备模拟装置,不需要软件驱动,可靠性高。
一种USB设备模拟方法,包括如下步骤:
接收受控端发送的设备描述符请求指令;
响应于所述设备描述符请求指令,取预存储的待模拟USB设备的设备描述符发送至所述受控端;
接收所述受控端根据所述设备描述符发送的数据请求指令;
将所述数据请求指令转发至控制端,接收所述控制端返回的应答数据并发送至所述受控端。
上述USB设备模拟方法,接收受控端发送的设备描述符请求指令,响应于设备描述符请求指令,取预存储的待模拟USB设备的设备描述符发送至受控端;接收受控端根据设备描述符发送的数据请求指令,将数据请求指令转发至控制端,接收控制端返回的应答数据并发送至受控端。如此,通过模拟为与设备描述符对应的USB设备,并实现与受控端和控制端的模拟通信,不需要软件驱动,可靠性高。
附图说明
图1为一实施例中USB设备模拟装置的结构框图;
图2为一应用例中USB设备模拟装置的工作示意图;
图3为一实施例中USB设备模拟方法的流程图;
图4为另一实施例中USB设备模拟方法的流程图。
具体实施方式
参考图1,一实施例中的USB设备模拟装置,包括通信模块110、存储模块130和处理模块150,通信模块110连接存储模块130和处理模块150,存储模块130连接处理模块150,通信模块110还用于通信连接控制端,处理模块150还用于接口连接受控端。
通信模块110接收控制端发送的待模拟USB设备的设备描述符并输出至存储模块130进行预存储。处理模块150接收受控端发送的设备描述符请求指令;以及响应于设备描述符请求指令,从存储模块130取预存储的设备描述符发送至受控端;以及接收受控端根据设备描述符发送的数据请求指令,通过通信模块110将数据请求指令转发至控制端,接收控制端返回的应答数据并发送至受控端。
设备描述符用于指示待模拟USB设备的通用信息,例如对于USB设备,设备描述符包括对USB设备及所有设备配置起全程作用的信息,USB设备的设备描述符在USB设备被枚举时,向主机报告各个端点的特性(输入还是输出),包括端点号、通信方向、端点0上支持的最大数据包长度(也称做数据有效负载),带宽要求等。
控制端通过发送设备描述符至通信模块110,指示USB设备模拟装置模拟为与设备描述符对应的设备,例如,需用到USB设备A,则控制端通过通信模块110将USB设备A的设备描述符发送至存储模块130进行存储,指示USB设备模拟装置模拟为USB设备A。受控端指在USB设备模拟装置模拟为设备描述符对应的设备后,与USB设备模拟装置进行模拟通信的终端。控制端和受控端可以是计算机等终端设备,且控制端和受控端可以是不同的终端,也可以是采用同一终端。
上述USB设备模拟装置,通过通信模块110与控制端进行通信,接收控制端发送的设备描述符并发送至存储模块130进行存储,从而模拟为与设备描述符对应的USB设备;通过处理模块150与受控端接口连接,将设备描述符发送至受控端以使受控端识别,以及接收受控端发送的数据请求指令,通过通信模块110将数据请求指令转发至控制端,接收控制端返回的应答数据并发送至受控端。如此,通过采用通信模块110、存储模块130和处理模块150组成硬件结构的USB设备模拟装置,不需要软件驱动,可靠性高。
在一实施例中,设备描述符包括多个待模拟USB设备的通用信息。如此,当通信模块110接收控制端发送的设备描述符并输出至存储模块130进行预存储,此时一个设备描述符可以对应多个待模拟USB设备,USB设备模拟装置同时模拟多台设备,不需要重复接收存储设备描述符,提高模拟效率。
在一实施例中,通信模块110为WiFi模块。WiFi模块可以实现无线通信,方便快捷。可以理解,在其他实施例中,通信模块110还可以采用其他类型,例如蓝牙模块。
在一实施例中,存储模块130为缓存器。通信模块110将接收的设备描述符输出至缓存器进行预存储,处理模块150接收受控端的设备描述符请求指令后从缓存器取出设备描述符发送至受控端。缓存器交换速度快,通过采用缓存器存户设备描述符,可提高存储和提取的效率。
在一实施例中,处理模块150设有USB接口,处理模块150通过USB接口连接受控端。如此,处理模块150通过USB接口连接的方式与受控端连接,插拔方便。
在一实施例中,处理模块150为MCU(Micro Control Unit微控制单元)。MCU功能强大,通过采用MCU作为处理模块150,可提高数据处理效率。
一实施例中,处理模块150可以通过通信模块110接收控制端发送的重新枚举指令,根据重新枚举指令发送枚举信号至受控端,以使受控端根据枚举信号发送设备描述符请求指令至处理模块150。
参考图2,为一具体应用例的工作示意图,本应用例中通信模块110采用WiFi模块,存储模块130采用缓存器,处理模块150采用MCU,整体工作过程为:
(1)、在控制端上通过软件来和USB设备模拟装置进行通信,将待模拟USB设备的设备描述符等信息通过WiFi模块写入到缓存器中。
(2)、控制端通过WiFi模块向MCU发出重新枚举指令,MCU发送枚举信号至受控端。
(3)、受控端发送设备描述符请求指令至MCU。
(4)、MCU从缓存器中取出设备描述符,将设备描述符返回给受控端,从而完成设备识别过程,比如此时USB设备模拟装置模拟的为设备A。
(5)、受控端向MCU发出特定于设备A的数据请求指令。
(6)、MCU将数据请求指令通过WiFi模块发送给控制端,控制端根据不同的数据请求指令返回相应的应答数据。
(7)、应答数据通过MCU返回给受控端。
对于受控端发送有多种类型的数据请求指令时,重复步骤(5)到(7),从而完成对设备A的完整模拟。
参考图3,一实施例中的USB设备模拟方法,可以应用于上述USB设备模拟装置,该方法包括如下步骤。
S110:接收受控端发送的设备描述符请求指令。
受控端指在USB设备模拟装置模拟为设备描述符对应的设备后,与USB设备模拟装置进行模拟通信的终端,可以是计算机等终端设备。
S130:响应于设备描述符请求指令,取预存储的待模拟USB设备的设备描述符发送至受控端。
设备描述符用于指示待模拟USB设备的通用信息,例如对于USB设备,设备描述符包括对USB设备及所有设备配置起全程作用的信息,USB设备的设备描述符在USB设备被枚举时,向主机报告各个端点的特性(输入还是输出),包括端点号、通信方向、端点0上支持的最大数据包长度(也称做数据有效负载),带宽要求等。设备描述符可以是通信接收控制端发送的设备描述符后存储在存储模块,也可以是直接接收界面输入的设备描述符后存储在存储模块。
设备描述符可以包括多个待模拟USB设备的通用信息。如此,一个设备描述符可以对应多个待模拟USB设备,USB设备模拟装置同时模拟多台设备,不需要重复接收存储设备描述符,提高模拟效率。
S150:接收受控端根据设备描述符发送的数据请求指令。
受控端接收设备描述符后,根据设备描述符识别设备描述符对应的待模拟USB设备。若设备描述符对应一个待模拟USB设备,则数据请求指令为对应该设备描述符的请求指令;若设备描述符对应多个待模拟USB设备,则数据请求指令为受控端从识别的多个待模拟USB设备中选取的待模拟USB设备对应的请求指令。例如,受控端接收端的设备描述符对应待模拟USB设备A和待模拟USB设备B,此时,受控端需要待模拟USB设备A的数据,则发送对应待模拟USB设备A的数据请求指令。
S170:将数据请求指令转发至控制端,接收控制端返回的应答数据并发送至受控端。
通过将数据请求指令转发至控制端,由控制端根据不同的数据请求指令返回相应的应答数据,减轻设备模拟装置的负担,完成数据请求指令对应的数据通信。
上述USB设备模拟方法,接收受控端发送的设备描述符请求指令,响应于设备描述符请求指令,取预存储的待模拟USB设备的设备描述符发送至受控端;接收受控端根据设备描述符发送的数据请求指令,将数据请求指令转发至控制端,接收控制端返回的应答数据并发送至受控端。如此,通过模拟为与设备描述符对应的USB设备,并实现与受控端和控制端的模拟通信,不需要软件驱动,可靠性高。
在一实施例中,请参阅图4,步骤S110之前,还包括步骤S100。
S100:建立与控制端的通信连接,接收控制端发送的设备描述符并存储。
通过与控制端通信,以便接收控制端发送的设备描述符进行存储。例如,一实施例中,具体通过通信模块通信连接控制端,通信模块接收控制端发送的设备描述符,并输出至存储模块进行存储。可以理解,在其他实施例中,也可以采用其他方式完成设备描述符的预存储。
在一实施例中,请继续参阅图4,步骤S110包括:接收控制端发送的重新枚举指令,根据重新枚举指令发送枚举信号至受控端,并接收受控端根据枚举信号发送的设备描述符请求指令。
通过接收控制端的重新枚举指令并根据重新枚举指令发送枚举信号至受控端,如此以便通知受控端可以重新枚举。例如,一实施例中,处理模块接收控制端发送的重新枚举指令,并根据重新枚举指令发送枚举信号至受控端。可以理解,在其他实施例中,还可以是采用其他方式发送枚举信号至受控端,例如,当需要通知受控端可以重新枚举时,对处理模块与受控端之间的接口进行拔插,使处理模块断电后重新连接受控端,受控端检测处理模块断电后重新连接,则认为处理模块发送枚举信号。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种USB设备模拟装置,其特征在于,包括通信模块、存储模块和处理模块,所述通信模块连接所述存储模块和所述处理模块,所述存储模块连接所述处理模块,所述通信模块还用于通信连接控制端,所述处理模块还用于接口连接受控端;
所述通信模块接收所述控制端发送的待模拟USB设备的设备描述符并输出至所述存储模块进行预存储;
所述处理模块接收所述受控端发送的设备描述符请求指令;以及响应于所述设备描述符请求指令,从所述存储模块取预存储的设备描述符发送至所述受控端;以及接收所述受控端根据所述设备描述符发送的数据请求指令,通过所述通信模块将所述数据请求指令转发至控制端,接收所述控制端返回的应答数据并发送至所述受控端。
2.根据权利要求1所述的USB设备模拟装置,其特征在于,所述设备描述符包括多个待模拟USB设备的通用信息。
3.根据权利要求1所述的USB设备模拟装置,其特征在于,所述处理模块设有USB接口,所述处理模块通过所述USB接口连接所述受控端。
4.根据权利要求1所述的USB设备模拟装置,其特征在于,所述通信模块为WiFi模块。
5.根据权利要求1所述的USB设备模拟装置,其特征在于,所述存储模块为缓存器。
6.根据权利要求1所述的USB设备模拟装置,其特征在于,所述处理模块为MCU。
7.一种USB设备模拟方法,其特征在于,包括如下步骤:
接收受控端发送的设备描述符请求指令;
响应于所述设备描述符请求指令,取预存储的待模拟USB设备的设备描述符发送至所述受控端;
接收所述受控端根据所述设备描述符发送的数据请求指令;
将所述数据请求指令转发至控制端,接收所述控制端返回的应答数据并发送至所述受控端。
8.根据权利要求7所述的USB设备模拟方法,其特征在于,所述设备描述符包括多个待模拟USB设备的通用信息。
9.根据权利要求7所述的USB设备模拟方法,其特征在于,所述接收受控端发送的设备描述符请求指令的步骤之前,还包括步骤:
建立与控制端的通信连接,接收所述控制端发送的设备描述符并存储。
10.根据权利要求7所述的USB设备模拟方法,其特征在于,所述接收受控端发送的设备描述符请求指令的步骤,包括:
接收控制端发送的重新枚举指令,根据所述重新枚举指令发送枚举信号至所述受控端,并接收所述受控端根据所述枚举信号发送的所述设备描述符请求指令。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201610798196.2A CN106452838A (zh) | 2016-08-31 | 2016-08-31 | Usb设备模拟装置及方法 |
| PCT/CN2016/113193 WO2018040429A1 (zh) | 2016-08-31 | 2016-12-29 | Usb设备模拟装置及方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201610798196.2A CN106452838A (zh) | 2016-08-31 | 2016-08-31 | Usb设备模拟装置及方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN106452838A true CN106452838A (zh) | 2017-02-22 |
Family
ID=58164528
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201610798196.2A Pending CN106452838A (zh) | 2016-08-31 | 2016-08-31 | Usb设备模拟装置及方法 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN106452838A (zh) |
| WO (1) | WO2018040429A1 (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108388372A (zh) * | 2018-02-24 | 2018-08-10 | 广州视源电子科技股份有限公司 | 一种自适应触摸数据的方法、装置、设备及存储介质 |
| CN110069288A (zh) * | 2019-03-13 | 2019-07-30 | 北京淳中科技股份有限公司 | Usb设备共享方法、装置及系统 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101266590A (zh) * | 2008-04-22 | 2008-09-17 | 北京飞天诚信科技有限公司 | 动态切换设备配置的方法和系统 |
| CN102713843A (zh) * | 2010-08-24 | 2012-10-03 | 联发科技股份有限公司 | 包含检测usb主机操作系统类型的usb装置枚举方法 |
| CN102737003A (zh) * | 2011-04-01 | 2012-10-17 | 中兴通讯股份有限公司 | 一种模拟usb设备的方法及装置 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080021693A1 (en) * | 2006-07-21 | 2008-01-24 | Microsoft Corporation | Storage Device Simulator |
| US7881919B2 (en) * | 2007-04-03 | 2011-02-01 | Microsoft Corporation | USB device simulator |
| CN103617068A (zh) * | 2013-11-18 | 2014-03-05 | 四川长虹电器股份有限公司 | 在Android模拟器中模拟操作USB设备的方法 |
| CN105488000B (zh) * | 2015-12-23 | 2018-09-14 | 数安时代科技股份有限公司 | 实现usb设备快速访问的方法和系统 |
-
2016
- 2016-08-31 CN CN201610798196.2A patent/CN106452838A/zh active Pending
- 2016-12-29 WO PCT/CN2016/113193 patent/WO2018040429A1/zh not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101266590A (zh) * | 2008-04-22 | 2008-09-17 | 北京飞天诚信科技有限公司 | 动态切换设备配置的方法和系统 |
| CN102713843A (zh) * | 2010-08-24 | 2012-10-03 | 联发科技股份有限公司 | 包含检测usb主机操作系统类型的usb装置枚举方法 |
| CN102737003A (zh) * | 2011-04-01 | 2012-10-17 | 中兴通讯股份有限公司 | 一种模拟usb设备的方法及装置 |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108388372A (zh) * | 2018-02-24 | 2018-08-10 | 广州视源电子科技股份有限公司 | 一种自适应触摸数据的方法、装置、设备及存储介质 |
| CN110069288A (zh) * | 2019-03-13 | 2019-07-30 | 北京淳中科技股份有限公司 | Usb设备共享方法、装置及系统 |
| CN110069288B (zh) * | 2019-03-13 | 2022-03-04 | 北京淳中科技股份有限公司 | Usb设备共享方法、装置及系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2018040429A1 (zh) | 2018-03-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10969983B2 (en) | Method for implementing NVME over fabrics, terminal, server, and system | |
| KR20140143793A (ko) | 유니버셜 직렬 버스 디바이스들에 대한 데이터 재지향 | |
| US8990439B2 (en) | Transport mode data transfer between a channel subsystem and input/output devices | |
| CN105849709A (zh) | 用于在主机模式与从属模式之间切换下游端口的通用串行总线(usb)集线器 | |
| US10162778B2 (en) | Universal serial bus emulation layer | |
| CN104237699A (zh) | 一种usb接口通信测试系统及方法 | |
| CN105790830A (zh) | 光模块在位检测方法和装置 | |
| CN103412836B (zh) | 热插拔处理方法、装置以及系统 | |
| CN108287804B (zh) | 一种i2c控制器驱动方法及系统 | |
| CN103744478A (zh) | 一种蓝牙无线显示器及其控制方法 | |
| CN102884515B (zh) | 串口重定向处理方法、设备和系统 | |
| US10261937B2 (en) | Method and system for communication of device information | |
| US20120102251A1 (en) | Serial attached small computer system interface (sas) domain access through a universal serial bus interface of a data processing device | |
| US11226891B2 (en) | Testing devices and methods for testing a device driver software | |
| CN106452838A (zh) | Usb设备模拟装置及方法 | |
| CN110209605B (zh) | Pcie总线网卡的寄存器读写方法和计算设备 | |
| CN109189705A (zh) | 一种usb扩展方法、装置、设备、存储介质及系统 | |
| CN114721900A (zh) | 连接关系的建立方法、主板、装置、设备和存储介质 | |
| CN104217182A (zh) | 具有移动高画质连接端口的显示器及其信号处理方法 | |
| CN107329924A (zh) | 一种数据交互系统及方法 | |
| CN107346295A (zh) | 一种数据传输线缆和数据传输方法 | |
| CN104268109A (zh) | 数据接口通信方法和装置 | |
| US20210374082A1 (en) | Interface connection device, system and method thereof | |
| CN117436405B (zh) | 一种仿真验证方法、装置及电子设备 | |
| US20180183792A1 (en) | EXPANDED iOS® DEVICE CAPABILITY |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170222 |
|
| RJ01 | Rejection of invention patent application after publication |