CN105808480A - Usb otg设备的角色切换方法、系统及usb otg设备 - Google Patents
Usb otg设备的角色切换方法、系统及usb otg设备 Download PDFInfo
- Publication number
- CN105808480A CN105808480A CN201610116817.4A CN201610116817A CN105808480A CN 105808480 A CN105808480 A CN 105808480A CN 201610116817 A CN201610116817 A CN 201610116817A CN 105808480 A CN105808480 A CN 105808480A
- Authority
- CN
- China
- Prior art keywords
- equipment
- usbotg
- controller
- pin
- state
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4286—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种USB OTG设备的角色切换方法、系统及USB OTG设备,USB OTG设备的角色切换方法包括:当USB OTG设备接收到对端设备发出的主机交换协议请求时,对USB OTG设备的OTG控制器进行复位,并更改OTG控制器用于检测USB电缆插头类型的ID引脚检测端的状态,以使USB OTG设备的角色在主机设备与外设设备之间进行切换。通过上述方式,本发明实施例无需更改USB OTG设备的内部硬件电路,仅仅通过更改OTG控制器的状态机跳转流程,能使USB OTG 1.3设备在OTG 2.0协议环境下实现HNP过程,从而大大节省了成本。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种USBOTG设备的角色切换方法、系统及USBOTG设备。
背景技术
通用串行总线(UniversalSerialBus,简称USB)是一种数据交换的通用接口,现已广泛应用于各种通信产品中。随着移动设备的计算能力的增强,以及实际应用的需求,USB实现者协会(UniversalSerialBusImplementersForums,简称USBIF)开发了USBOTG(On-The-Go)的规范。
USBOTG规范是UBS2.0规范的一个补充,一个OTG产品是一个便携式设备,使用单一的双角色(Mini-AB插座或Micro-AB插座)。当两个支持OTG的设备相连时,通过USB连接线两端的插头(A-插头和B-插头)可以区分缺省的主机(A-设备,与A-插头连接的支持OTG的设备)和缺省的外设(B-设备,与B-插头连接的支持OTG的设备)。具体地,具有USBOTG功能的设备增加了第五个引脚-ID,以用于识别不同的角色。当具有USBOTG功能的设备检测到ID引脚接地(低电平),时,表示接入的对端设备为USB外设设备(Peripheral),从而该USBOTG设备将其设置为USB主机设备(Host),而当具有USBOTG功能的设备检测到ID引脚浮空(高电平)时,表示接入的对端设备为USB主机设备,从而该USBOTG设备将其设置为USB外设设备。
此外,A-设备和B-设备之间还可以通过主机交换协议(HostNegotiationProtocol,简称HNP)实现主机和外设的角色切换,OTG协议允许下层驱动组件在USB主机和USB外设角色之间随意转换,不需要改变电缆物理位置。如此一来,具有HNP功能的USBOTG设备会出现以下四种状态:A-主机设备、A-外设设备、B-主机设备和B-外设设备。
USB-IF在2012年提出OTG2.0协议,同时宣告旧有的OTG1.3协议在2012年底失效。OTG2.0协议对HNP角色切换中的时间设置有所变更,从而导致原本支持OTG1.3协议的OTG设备无法在OTG2.0环境下实现HNP功能。因而对于原本支持OTG1.3协议的OTG设备来说,为了与支持OTG2.0的OTG设备通信并执行HNP角色切换,则需要对其硬件进行升级更新。硬件升级所消耗成本较高,周期较长,尤其在产品已经批量生产的前提下,对已经出厂的批量OTG设备无法进行硬件升级或更改,因此亟需一种能够在不对OTG设备进行硬件升级的前提下也能使OTG1.3设备在OTG2.0环境下实现HNP功能的方法。
发明内容
本发明主要解决的技术问题是提供一种USBOTG设备的角色切换方法及USBOTG设备,以使USBOTG1.3设备在OTG2.0环境下实现HNP功能。
本发明一实施例提供一种USBOTG设备的角色切换方法,包括:当USBOTG设备接收到对端设备发出的主机交换协议请求时,对USBOTG设备的OTG控制器进行复位,并更改OTG控制器用于检测USB电缆插头类型的ID引脚检测端的状态,以使USBOTG设备的角色在主机设备与外设设备之间进行切换。
本发明另一实施例提供一种USBOTG设备,包括主机控制器、外设控制器及OTG控制器。其中该OTG控制器耦接于主机控制器及外设控制器,包含一ID引脚检测端,用于检测USBOTG设备所连接的USB电缆插头类型,该OTG控制器用于响应对端设备发出的主机交换协议请求,进行复位,并更改ID引脚检测端的状态,以控制USBOTG设备当前处于使能状态的控制器在主机控制器和外设控制器之间进行切换。
本发明再一实施例提供一种USBOTG设备的角色切换方法,应用于第一USBOTG设备和第二USBOTG设备,第一USBOTG设备和第二USBOTG设备经由USB电缆互相连接,第一USBOTG设备初始为A-主机设备,第二USBOTG设备初始为B-外设设备。该方法包括:第二USBOTG设备向第一USBOTG设备发送第一主机交换协议请求,该第一主机交换协议请求用于请求成为主机设备;第一USBOTG设备将USB总线挂起,对第一USBOTG设备的OTG控制器进行复位,并将OTG控制器的ID引脚检测端的状态从A类型更改为B类型,以将第一USBOTG设备的角色从A-主机设备切换到B-外设设备,其中该ID引脚检测端用于检测第一USBOTG设备所连接的USB电缆的插头类型;第二USBOTG设备检测到第一USBOTG设备将USB总线挂起后,将角色从B-外设设备切换到B-主机设备。
本发明又一实施例提供一种USBOTG设备的角色切换系统,包含第一USBOTG设备和经由USB电缆与第一USBOTG设备连接的第二USBOTG设备。其中第一USBOTG设备包含第一主机控制器、第一外设控制器和第一OTG控制器,第一USBOTG设备初始为A-主机设备。第二OTG设备包含第二主机控制器、第二外设控制器和第二OTG控制器,第二USBOTG设备初始为B-外设设备。该第一OTG控制器耦接于第一主机控制器和第一外设控制器,包含一ID引脚检测端,用于检测第一USBOTG设备所连接的USB电缆插头类型。第一OTG控制器用于在接收到第二USBOTG设备发出的第一主机交换协议请求后,将USB总线挂起,进行复位,并将ID引脚检测端的状态从A类型更改为B类型,以将第一USBOTG设备的角色从A-主机设备切换到B-外设设备,并控制当前处于使能状态的控制器从第一主机控制器切换到第一外设控制器。第二OTG控制器用于在检测述第一USBOTG设备将USB总线挂起后,将第二OTG设备的角色从B-外设设备切换到B-主机设备,并控制当前处于使能状态的控制器从第二外设控制器切换到第一主机控制器。
本发明实施例通过在USBOTG设备接收到对端设备的HNP请求后,对OTG控制器进行复位,使其能够重新检测所连接的USB电缆的插头类型,并在此基础上进一步对OTG控制器用于检测USB电缆插头类型的ID引脚检测端的状态进行更改,使得OTG控制器能够根据重新检测到的更改后的USB电缆插头类型,更改其OTG角色,从而使USBOTG设备的角色在主机设备和外设设备之间进行切换。本发明实施例无需更改USBOTG设备的硬件电路,仅更改了OTG控制器的状态机跳转流程,便能使USBOTG1.3设备在OTG2.0协议环境下实现HNP过程,从而大大节省了成本。
附图说明
图1是本发明实施例的USBOTG设备的结构示意图;
图2是支持OTG2.0协议的USBOTG设备通过HNP协议实现在A-主机设备与A-外设设备之间切换的状态机跳转示意图;
图3是本发明USBOTG设备的角色切换方法实施例一的流程示意图;
图4是本发明的USBOTG设备的角色切换方法实施例二的状态机跳转示意图;
图5是本发明的USBOTG设备的角色切换方法实施例三的流程示意图;
图6是本发明的USBOTG设备的角色切换系统的结构示意图;
图7是本发明USBOTG设备一实施例的结构示意图;
图8是图7所示的ID引脚控制电路的实施例一的结构示意图;
图9是图7所示的ID引脚控制电路的实施例二的结构示意图。
具体实施方式
在说明书当中使用了某些词汇来指称特定的元件。本领域的技术人员应可理解,硬件制造商可能会用不同的名词来称呼同一个元件。本说明书并不以名称的差异来作为区分元件的方式,而是以元件在功能上的差异来作为区分的准则。在通篇说明书当中所提及的「包含」为一开放式的用语,故应解释成「包含但不限定于」。此外,「耦接」一词在此包含任何直接及间接的电气连接手段,因此,若文中描述一第一装置耦接于一第二装置,则代表该第一装置可直接电气连接于该第二装置,或者透过其他装置或连接手段间接地电气连接至该第二装置。
图1是本发明实施例的USBOTG设备的结构示意图。如图1所示,通常情况下,一个完整的USBOTG设备应当包含三个单元:主机控制器11,外设控制器12及OTG控制器13。其中OTG控制器13通过状态机控制USBOTG设备的工作状态,并根据初上电时所检测到电缆插头的类型(A类型或B类型)以及HNP角色切换的结果,将当前工作的控制器在主机控制器11和外设控制器12之间进行切换。举例来说,当OTG控制器13的状态机跳转到A-主机状态或B-主机状态时,OTG控制器13使能主机控制器11并禁能外设控制器12,从而控制USBOTG设备成为USB主机设备;而当状态机跳转到A-外设状态或B-外设状态时,OTG控制器13使能外设控制器12并禁能主机控制器11,从而控制USBOTG设备成为USB外设设备。
为了更详细的介绍USBOTG设备的角色设定及切换过程,下一实施例将举例说明支持OTG2.0协议的USBOTG设备的在主机和外设两者之间进行切换的过程。需要说明的是,通常来说,在OTG2.0协议下,两个互连的USBOTG设备可以通过HNP协议来实现角色的互换。具体地,当初始角色为外设设备的USBOTG设备想要成为主机设备时,其可以向对端(即另一USBOTG设备)发送HNP请求,从而对端设备将角色从主机设备切换到外设设备,本USBOTG设备则从外设设备切换到主机设备,而当该USBOTG设备使用完总线,想要回到外设设备的身份时,其同样向对端设备发送HNP请求(相当于HNP返回请求),从而对端设备从外设设备切换回主机设备的身份,而本USBOTG设备则从主机设备切换回外设设备的身份。
图2是支持OTG2.0协议的USBOTG设备通过HNP协议实现在A-主机设备与A-外设设备之间切换的状态机跳转示意图。本实施例中假定USBOTG设备所连接的USB电缆的插头类型为A-插头,并以A-设备为例来描述遵循OTG2.0协议的HNP角色切换过程。需要说明的是,本实施例的状态机跳转示意图中所示的各个状态并未包含HNP协议所定义的OTG状态机的所有状态,而是仅包含了为了实现将USBOTG设备在A-主机(A_host)角色和A-外设(A_peripheral)角色之间切换所需的必要状态。
如图2所示,本实施例的状态机跳转过程除了开始(start)状态以外共包含5个状态,分别是A-空闲(A_idle)状态、A-主机状态、A-挂起(A-suspend)状态、A-外设状态和A-等待(A_wait_bcon)状态。由于假定本实施例的USBOTG设备所连接的USB电缆的插头类型为A-插头,在初上电时,OTG控制器根据其所检测到的电缆插头类型自动从start状态跳转至A_idle状态(步骤a1)。而由于A-插头所对应的默认角色为USB主机,因此在A_idle状态下,OTG状态机自动跳转至A_host状态,以将USBOTG设备设置为USB主机设备(步骤b1)。接下来,当USBOTG设备接收到对端设备发出的HNP请求时,代表对端设备有想要成为主机的需求,此时OTG控制器控制USBOTG设备将USB总线挂起,以让出对总线的控制权,并将OTG状态机跳转至A_suspend状态(步骤c1)。而当检测到对端设备获得总线控制权后,OTG控制器控制OTG状态机跳转至A_preipheral状态,将USBOTG设备的角色切换至USB外设设备(步骤d1),此时一次角色切换过程完成。接着,当对端设备使用完USB总线,其也会将USB总线挂起,因此当OTG控制器检测到USB总线被挂起后,控制OTG状态机进入A_wait_bcon状态,以准备重新掌握对总线的控制权(步骤e1)。最后,在等待一定的时间后,OTG控制器控制OTG状态机重新跳转回A_host的状态(步骤f1),又从USB外设角色切换回主机角色。
在本实施例中,初始角色为主机的USBOTG设备在第一次接收到HNP请求时,从A-host状态跳转到A_preipheral状态,并在第二次接收到HNP请求时,从A_preipheral状态跳转回A-host状态,与此相对的,对端的USBOTG设备的身份则是从B_preipheral状态跳转到B_host状态,并接着从B_host状态跳转回B_preipheral状态,从而以此实现互连的两个USBOTG设备始终为一个是主机一个是外设的状态。
对于OTG1.3协议和OTG2.0协议来说,两者所定义的实现HNP切换的状态机跳转流程是一致的,也就是说,USBOTG设备在OTG1.3环境或OTG2.0环境下均是按照同样的步骤流程来完成HNP切换,但是不同的是,OTG2.0协议对HNP角色切换中的时间设置有所变更。具体地,OTG2.0协议中将时间参数TA_BDIS_ACON的值从OTG1.3协议的3ms更改为150ms,该时间参数TA_BDIS_ACON的含义是指USBOTG设备从B_peripheral状态进入至B_host状态所需的时间。具体地,当USBOTG设备从A_suspend状态切换到A_peripheral状态时,对端设备需从B_peripheral状态切换至B_host状态。而当USBOTG设备从A_suspend状态切换到A_peripheral状态,将总线控制权让出之后,其会检测对端设备有没有及时进入B_host状态,若在TA_BDIS_ACON时间内还未检测到对端设备进入B_host状态,则USBOTG设备将重新要回总线控制权,重新回到A_host状态,并发出“HNP失败”的消息。
如此来看,由于OTG2.0协议中将时间参数TA_BDIS_ACON的值从3ms更改为150ms,大大延迟了对端设备进入B_host状态的时间,必然会导致当支持OTG1.3协议的USBOTG设备与支持OTG2.0协议的USBOTG设备通信时,OTG1.3设备在短暂地进入A_peripheral状态之后又重新回到A_host状态,从而导致HNP切换失败。具体地,由于USBOTG1.3设备设置的TA_BDIS_ACON时间过短,从而其在从A_suspend状态切换到A_peripheral状态后,对端的USBOTG2.0设备需要较长的时间(150ms)才能进入B_host状态,USBOTG1.3设备的OTG控制器在3ms内未检测到对端设备进入B_host状态,又会重新回到A_host状态,导致HNP切换失败。
可见,若想要使USBOTG1.3设备在OTG2.0环境下完成HNP切换,则需要更改USBOTG1.3设备对时间参数TA_BDIS_ACON的设置。但在大部分的USBOTG1.3设备的设计中,该时间参数是在设备出厂前固定在芯片内部只读电路中,并未提供给用户修改该时间参数的接口,因此该方法对于已出厂的设备无法进行修改。因此,若想要在不更换芯片的前提下,实现USBOTG1.3设备在OTG2.0环境下的HNP切换,则需要考虑其他的实现方法。
本发明实施例提供了一种通过改变HNP切换的状态机跳转流程来实现USBOTG1.3设备在OTG2.0环境下的HNP切换的方法。由于OTG控制器会自动根据所检测到的USB电缆插头类型来设置USBOTG设备为A-host设备或B-preipheral设备,此外,仅从总线的表现行为来看,A_host状态与B_host状态,A_preipheral状态和B_preipheral状态,彼此之间的在总线上的表现相同,对端设备无法对二者进行区分,因此可以充分地利用这些特征,通过在状态机跳转流程中插入OTG控制器的复位操作,来对实现HNP切换的状态机跳转流程进行改变。下面将详细叙述本发明实施例通过改变HNP切换的状态机跳转流程来实现USBOTG1.3设备在OTG2.0环境下的HNP切换的方法。
图3是本发明USBOTG设备的角色切换方法实施例一的流程示意图。如图3所示,本实施例的方法包括如下步骤:
步骤301,USBOTG设备接收到对端设备发出的HNP请求;
步骤302,USBOTG设备对OTG控制器进行复位,并更改该OTG控制器用于检测USB电缆插头类型的ID引脚检测端的状态,以使USBOTG设备的角色在主机设备与外设设备之间进行切换。
具体地,在本实施例中,当USBOTG设备接收到对端设备发出的HNP请求时,会对OTG控制器进行复位,具体指对OTG控制器的状态机进行复位,相当于使OTG控制器的状态机重新回到开始(start)状态,从而在开始状态,OTG控制器会重新检测所连接的USB电缆的插头类型。进一步地,本实施例中,USBOTG设备在对OTG控制器进行复位后,会更改OTG控制器用于检测USB电缆插头类型的ID引脚检测端的状态。例如若该ID引脚检测端原本检测到的USB电缆的插头类型为A类型,则将其更改为B类型,反之,若该ID引脚检测端原本检测到的USB电缆的插头类型为B类型,则将其更改为A类型。由于OTG控制器会自动根据所检测到的USB电缆插头类型来设置USBOTG设备为A-主机设备或B-外设设备,从而通过更改OTG控制器所检测到的USB电缆插头的类型,可以使USBOTG设备的角色从原本的主机设备切换到外设设备,或者从原本的外设设备切换到主机设备,以在主机设备和外设设备之间进行切换。
本发明实施例通过在USBOTG设备接收到对端设备的HNP请求后,对OTG控制器进行复位,使其能够重新检测所连接的USB电缆的插头类型,并在此基础上进一步对OTG控制器用于检测USB电缆插头类型的ID引脚检测端的状态进行更改,使得OTG控制器能够根据重新检测到的更改后的USB电缆插头类型,更改其OTG角色,从而使USBOTG设备的角色在主机设备和外设设备之间进行切换。
本发明实施例无需更改USBOTG设备的硬件电路,仅更改了OTG控制器的状态机跳转流程,而更改OTG控制器的状态机跳转流程仅需通过更改软件设置便可以实现,从而大大节省了成本。进一步地,由于在OTG状态机的跳转流程中,仅有部分状态(A_host/B_host、A_preipheral/B_preipheral)是可以在总线上表现出来,被对端设备所感知,即对端设备仅关注HNP切换的结果是否为USBOTG设备在主机角色和外设角色之间进行来回切换,而不在意OTG控制器是如何控制状态机的跳转实现该角色切换功能的,因此,本发明实施例能够成功的模拟HNP原理实现OTG角色的切换,而不会被对端设备所察觉。
图4是本发明的USBOTG设备的角色切换方法实施例二的状态机跳转示意图。假定本实施例的USBOTG设备为更新了软件设置的USBOTG1.3设备,其所连接的USB电缆的插头类型为A类型,且其对端设备为USBOTG2.0设备,对端设备所连接的USB电缆的插头类型为B类型。如图4所示,本实施例的状态机跳转过程从开始(start)状态开始。在初上电时,OTG控制器根据其所检测到的电缆插头类型自动从start状态跳转至A_idle状态(步骤a2)。而由于A-插头所对应的默认角色为USB主机,因此在A_idle状态下,OTG状态机自动跳转至A_host状态,以将USBOTG设备设置为A-主机设备(步骤b2)。接着,当USBOTG设备接收到对端设备发出的HNP请求时,代表对端设备有想要成为主机的需求,此时OTG控制器控制USBOTG设备将USB总线挂起,让出对总线的控制权,并将OTG状态机跳转至A_suspend状态(步骤c2)。
以上三个步骤与图2所示的USBOTG2.0设备的前三个步骤是一样的。而基于前述的时间参数TA_BDIS_ACON在OTG1.3和OTG2.0中设置不同的原因,USBOTG1.3设备在3ms内未检测到对端设备进入B_host状态时将重回A_host状态,因此在本实施例的d2步骤中,USBOTG设备将直接对OTG控制器进行复位,具体指通过一复位控制器对USBOTG设备的复位端置位,从而使OTG状态机回到开始状态。紧接着,USBOTG设备对OTG控制器用于检测USB电缆插头类型的ID引脚检测端的状态进行更改,具体指将ID引脚检测端的状态从A类型更改为B类型,从而使OTG状态机自动跳转至B_idle状态。
需要说明的是,在OTG协议中,A_idle状态与B_ilde状态都属于空闲状态,这两个状态的表现特性是完全相同的,唯一不同之处在于,其中A_idle状态将默认跳转至A_host状态,而B_ilde状态将默认跳转至B_preipheral状态。此外还需要说明的是,对于本发明实施例中USBOTG设备如何更改ID引脚检测端的状态,以在A类型和B类型之间进行切换的具体实现方式将在后续实施例中进行详细的阐述。
接着回到图4所示的OTG状态机,在d2步骤之后,OTG状态自动跳转到B_preipheral状态(步骤e2),从而USBOTG设备成功响应HNP请求,从主机角色切换到外设角色。虽然与图2所示的状态机跳转流程不同,本实施例是从A-主机角色跳转到B-外设角色(而非A-外设角色),但因仅从总线的表现行为来看,A_host状态与B_host状态,A_preipheral状态和B_preipheral状态,彼此之间的在总线上的表现相同,对端设备无法对二者进行区分,因此对端设备会“认为”USBOTG设备已经从A_host跳转到A_preipheral,这样的跳转流程并不会影响到USBOTG设备的HNP功能。
接着,当对端设备使用完USB总线,想要重新回到外设角色时,对端设备会将USB总线挂起,并发出HNP请求,在本实施例中,当USBOTG设备检测到这个状态后,又将直接对OTG控制器进行复位,从而使OTG状态机又重新回到start状态,接着USBOTG设备再次对OTG控制器用于检测USB电缆插头类型的ID引脚检测端的状态进行更改(步骤f2),具体指将ID引脚检测端的状态从B类型重新更改回为A类型,从而使得OTG状态机又自动跳转至A_idle状态,以及自动从A_idle状态跳转回到A_host状态(步骤g2)。这样,一次从外设角色切换至主机角色的HNP切换又会完成。
可见,本实施例通过更改软件设置对OTG状态机的跳转流程进行更改,使USBOTG设备在接收到HNP请求后,通过复位操作和更改ID引脚检测端所检测到的电缆插头类型的操作,可以在A-主机设备和B-外设设备之间进行切换。本发明实施例无需更改USBOTG设备的硬件电路,仅需通过更改软件设置便可以实现,从而大大节省了成本。进一步地,本发明实施例能够使USBOTG1.3设备成功的模拟OTG2.0协议所定义的HNP原理实现OTG角色的切换,并不会被对端设备所察觉。
图5是本发明的USBOTG设备的角色切换方法实施例三的流程示意图。如图5所示,本实施例的方法应用于第一USBOTG设备和第二USBOTG设备,且假定第一USBOTG设备与USB电缆的A插头相连,第二USBOTG设备与USB电缆的B插头相连,即第一USBOTG设备初始为A-主机设备,第二USBOTG设备初始为B-外设设备,以及第一USBOTG设备为支持OTG1.3协议的USBOTG设备,第二USBOTG设备为支持OTG2.0协议的USBOTG设备。本实施例详细描述初始角色为主机的USBOTG1.3设备与初始角色为外设的USBOTG2.0设备之间的HNP角色切换过程,本实施例的方法包含下述步骤:
步骤501,第二USBOTG设备向第一USBOTG设备发送第一HNP请求,该第一HNP请求用于请求成为主机设备;
步骤502,第一USBOTG设备将USB总线挂起,对其OTG控制器进行复位,并将其OTG控制器的ID引脚检测端的状态从A类型更改为B类型,以将该第一USBOTG设备的角色从A-主机设备切换到B-外设设备,第二USBOTG设备则在检测到USB总线被挂起后,将其角色从B-外设设备切换到B-主机设备;
在本步骤中,第一USBOTG设备完成从A_host状态至B_preipheral状态的切换,具体的切换过程可以参见图4所示的状态机跳转流程。而第二USBOTG设备则完成从B_preipheral状态至B_host的状态的切换,由于第二USBOTG设备本身符合OTG2.0协议,因此其按照OTG2.0协议规定的跳转流程进行角色的切换即可,本实施例并未对第二USBOTG设备的OTG状态机跳转过程进行更改。
步骤503,第二USBOTG设备向第一USBOTG设备发送第二HNP请求,该第二HNP请求用于请求从主机设备返回外设设备;
步骤504,第一USBOTG设备对其OTG控制器进行复位,并将ID引脚检测端的状态从B类型更改回A类型,以将其角色从B-外设设备切换到A-主机设备,以及第二USBOTG设备则将角色从B-主机设备切换回B-外设设备。
在上述步骤中,第一USBOTG设备检测到第二USBOTG设备断开总线,相当于接收到第二USBOTG设备发送的HNP_back请求(第二HNP请求),从而将OTG状态机从B_preipheral状态切换回A_host状态,具体的切换过程同样可以参见图4所示的状态机跳转流程。而第二USBOTG设备则完成从B_host状态至的B_preipheral状态的切换,由于第二USBOTG设备本身符合OTG2.0协议,因此在本步骤中,其同样按照OTG2.0协议规定的跳转流程进行角色的切换即可。
由于仅从USB总线的表现行为来看,A_host状态与B_host状态,A_preipheral状态和B_preipheral状态,彼此之间的在总线上的表现相同,因此在本实施例的方法中,第二USBOTG设备无法对二者进行区分,即第二USBOTG设备会“认为”第一USBOTG设备已经从A_host跳转到A_preipheral,并从A_preipheral跳转回A_host,从而通过对第一USBOTG设备的状态机跳转流程进行更改,可以使USBOTG1.3设备成功的模拟OTG2.0协议所定义的HNP原理实现OTG角色的切换,并不会被对端设备所察觉。
图6是本发明USBOTG设备的角色切换系统的结构示意图,本实施例的系统应用于如5所示的USBOTG设备的角色切换方法中。如图所示,本实施例的角色切换系统包含第一USBOTG设备61以及第二USBOTG设备62,其中第一USBOTG设备61为支持OTG1.3协议的USBOTG设备,以及第二USBOTG设备62为支持OTG2.0协议的USBOTG设备。
该第一USBOTG设备61包含第一OTG控制器611、第一主机控制器612及第一外设控制器613。其中第一OTG控制器611分别与第一主机控制器612和第一外设控制器613连接。该第一OTG控制器611用于在接收到第二USBOTG设备62发送的用于请求成为主机设备的第一HNP请求后,对其OTG控制器进行复位,并将其OTG控制器的ID引脚检测端的状态从A类型更改为B类型,以将其角色从A-主机设备切换到B-外设设备,并使当前处于使能状态的控制器从第一主机控制器612切换到第一外设控制器613。该第一OTG控制器611还用于在接收到用于请求从主机设备返回外设设备的第二HNP请求后,对OTG控制器进行复位,并将ID引脚检测端的状态从B类型更改回A类型,以将其角色从B-外设设备切换到A-主机设备,以及将当前处于使能状态的控制器从第一外设控制器613切换回第一主机控制器612。
该第二USBOTG设备62包含第二OTG控制器621、第二主机控制器622及第二外设控制器623。其中第二OTG控制器621分别与第二主机控制器622和第二外设控制器623连接。该第二OTG控制器621则用于在向第一USBOTG设备61发送所述第一HNP请求后,将第二USBOTG设备62的角色从B-外设设备切换到B-主机设备,并使当前处于使能状态的控制器从第二外设控制器623切换到第二主机控制器622。该第二OTG控制器621还用于在向第一USBOTG设备61发送所述第二HNP请求后,将角色从B-主机设备切换到B-外设设备,以及将当前处于使能状态的控制器从第二主机控制器622切换回第二外设控制器623。
本实施例中关于第一USBOTG设备61和第二USBOTG设备62具体如何实现角色切换的过程可以参见上述的方法实施例,为简洁起见,在此不再赘述。
下面将具体阐述本发明实施例中USBOTG设备如何对ID引脚检测端的状态进行更改,以使OTG控制器检测到USB电缆插头类型在A类型和B类型之间进行切换的具体实现方式。图7是本发明USBOTG设备一实施例的结构示意图。如图7所示,本实施例的USBOTG设备包含:主机控制器71,外设控制器72以及OTG控制73。其中OTG控制器73分别连接主机控制器71和外设控制器72,且该OTG控制器73包含一ID引脚检测端IDconctroller,用于检测该USBOTG设备所连接的USB电缆的电缆插头类型。该OTG控制器73用于在USBOTG设备接收到对端设备发出的HNP请求时,响应所述HNP请求,进行复位,并更改该ID引脚检测端的状态,以控制USBOTG设备当前处于使能状态的控制器在主机控制器71和外设控制器72之间进行切换,即控制USBOTG设备的角色在主机设备与外设设备之间进行切换。具体地,在本实施例中,当OTG控制器73接收到对端设备发出的HNP请求时,会对进行复位,具体指控制其状态机进行复位,使状态机重新回到开始状态,从而在开始状态,OTG控制器73会通过ID引脚检测端IDconctroller重新检测所连接的USB电缆的插头类型。进一步地,OTG控制器73在进行复位后,会控制更改该ID引脚检测端IDconctroller的状态。例如若该ID引脚检测端IDconctroller原本检测到的USB电缆的插头类型为A类型,则将其更改为B类型,反之,若该ID引脚检测端IDconctroller原本检测到的USB电缆的插头类型为B类型,则将其更改为A类型。由于OTG控制器73会自动根据所检测到的USB电缆插头类型来使能主机控制器71或外设控制器72工作,从而设置USBOTG设备为A-主机设备或B-外设设备。因此通过更改OTG控制器所检测到的USB电缆插头的类型,可以使USBOTG设备的角色从原本的主机设备切换到外设设备,或者从原本的外设设备切换到主机设备,以在主机设备和外设设备之间进行切换。进一步地,本实施例的USBOTG设备还包含一ID引脚控制电路74。该ID引脚控制电路74连接于USBOTG设备所连接的USB电缆的ID引脚PINID与OTG控制器73的ID引脚检测端IDconctroller之间,上述OTG控制器73控制更改ID引脚检测端IDconctroller所检测到的USB电缆类型的方法包括:通过该ID引脚控制电路74控制输入至ID引脚检测端IDconctroller的状态值在USB电缆的ID引脚PINID的状态值与一相反的状态值SW_ID之间进行切换。具体地,该ID引脚检测端IDconctroller的状态包含接地和浮空两种,从而其所分别对应的状态值包含低电平和高电平两种。SW_ID的状态值始终与ID引脚PINID的状态值相反,即若USBOTG设备所连接的USB电缆的插头类型为A类型,代表ID引脚PINID的状态值为低电平,则SW_ID的状态值为高电平;反之,若USBOTG设备所连接的USB电缆的插头类型为B类型,代表ID引脚PINID的状态值为高电平,则SW_ID的状态值为低电平。本发明实施例的USBOTG设备通过接收到对端设备的HNP请求后,对OTG控制器进行复位,使其能够重新检测所连接的USB电缆的插头类型,并在此基础上进一步对OTG控制器用于检测USB电缆插头类型的ID引脚检测端的状态进行更改,使得OTG控制器能够根据重新检测到的更改后的USB电缆插头类型,更改其OTG角色,从而使USBOTG设备的角色在主机设备和外设设备之间进行切换。本发明实施例无需更改USBOTG设备的硬件电路,仅需通过更改软件设置以更改OTG控制器的状态机跳转流程便可以实现USBOTG1.3设备模拟OTG2.0协议的HNP功能,从而大大节省了成本。图8是图7所示的ID引脚控制电路74的实施例一的结构示意图。如图8所示,该ID引脚控制电路74进一步包含一多路选择器741,内部寄存器742以及状态值控制器743。其中该多路选择器741连接在USB电缆的ID引脚PINID与OTG控制器73的ID引脚检测端IDconctroller之间,具体地,该多路选择器741的第一输入端连接USB电缆ID引脚PINID,多路选择器741的输出端连接OTG控制器73的ID引脚检测端IDconctroller,以及多路选择模块741的第二输入端接收一输入状态值SW_ID,该输入状态值SW_ID由内部寄存器742提供。
该状态值控制器743分别连接该内部寄存器742、多路选择器741的使能控制端、USB电缆的ID引脚PINID以及OTG控制器73。具体地,该状态值控制器743用于当USBOTG设备连接USB电缆插头时,检测USB电缆插头的ID引脚PINID的状态值(高电平或低电平),并在内部寄存器742中写入与检测到的ID引脚PINID的状态值相反的状态值(低电平或高电平)。此外,该状态值控制器743还进一步用于当USBOTG设备接收到对端设备发出的HNP请求时,在OTG控制器73的指示下,通过多路选择器741的使能控制端控制该多路选择器741的输出在ID引脚PINID的状态值和内部寄存器741提供的状态值之间进行切换。具体地,当USBOTG设备接收到对端设备发出的HNP请求时,OTG控制器73进行复位,并通知状态值控制器743对多路选择器741的输出进行切换,此时状态值控制器743输出相应的使能信号SW_ID_EN至多路选择器741的使能控制端,使其相应选择第一输入端或第二输入端的信号作为输出信号。例如可以设置为:当使能信号SW_ID_EN为0时,多路选择器741选择ID引脚PINID的状态值作为输出给OTG控制器73的ID引脚检测端,而当使能信号SW_ID_EN为1时,多路选择器741选择内部寄存器742提供的状态值作为输出给OTG控制器73的ID引脚检测端。需要说明的是,此实例仅是为了举例说明,而并非对本发明的限制。本领域的技术人员还可以根据实际需求进行其他的设置。
在本实施例中,上述ID引脚控制电路74中的所有单元模块均可以与OTG控制器73及主机控制器71、外设控制器72集成于同一芯片内部。或者在另一实施例中,仅ID引脚控制电路74中的内部寄存器742和状态值控制器743与OTG控制器73、主机控制器71及外设控制器72集成于同一芯片内部,而多路选择器741独立于该芯片设置,即设置为芯片外部。此时状态值控制器743的输出信号SW_ID_EN及内部寄存器742的输出信号SW_ID均通过该芯片的输出引脚输出至多路选择器741。本领域的技术人员可以了解的是,这仅是为了举例说明,而并非对本发明的限制,本领域的技术人员还可以根据实际需求进行其他的设置。
图9是图7所示的ID引脚控制电路74的实施例二的结构示意图。本实施例中,ID引脚控制电路74仅包含一控制器744,该控制器744分别连接USB电缆的ID引脚PINID、OTG控制器73的一输出以及OTG控制器73的ID引脚检测端IDconctroller。该控制器744用于直接根据OTG控制器73的状态机所处的当前状态来控制输出相应的状态值至OTG控制器73的ID引脚检测端IDconctroller。具体地,当OTG控制器73的状态机的当前状态为开始(start)状态时,控制器744输出检测到的ID引脚PINID的状态值至ID引脚检测端IDconctroller,以使OTG控制器正常检测到所连接的USB电缆的插头类型;当OTG控制器73的状态机的当前状态为A_host或A_suspend状态,且OTG控制器73指示接收到对端设备的HNP请求时,控制器744直接输出状态值1(高电平)至ID引脚检测端IDconctroller,使OTG控制器73接下来能跳转到B_peripheral状态;当OTG控制器73的状态机的当前状态为B_peripheral状态,且OTG控制器73指示接收到对端设备的HNP请求时,控制器744输出状态值1(高电平)至ID引脚检测端IDconctroller,使OTG控制器73接下来能跳转到A_host状态。
本实施例中,控制器744设置在USBOTG设备所在芯片内部,且控制器744对OTG控制器73的输出通过该芯片的通用输入输出引脚(GPIO)予以实现。
本发明实施例虽然列举了两种USBOTG设备对ID引脚检测端的状态进行更改,以使OTG控制器检测到USB电缆插头类型在A类型和B类型之间进行切换的实现方式,但是需要说明的是,本发明并不对此进行限制,本领域技术人员还可以根据实际需要进行其他设置,只要符合本发明的精神,都属于本发明所保护的范畴之内。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (23)
1.一种USBOTG设备的角色切换方法,其特征在于,包括:
当所述USBOTG设备接收到对端设备发出的主机交换协议请求时,对所述USBOTG设备的OTG控制器进行复位,并更改所述OTG控制器用于检测USB电缆插头类型的ID引脚检测端的状态,以使所述USBOTG设备的角色在主机设备与外设设备之间进行切换。
2.根据权利要求1所述的方法,其特征在于,
所述更改所述OTG控制器用于检测USB电缆插头类型的ID引脚检测端的状态包括:将所述ID引脚检测端所检测到的USB电缆插头类型在A类型和B类型之间进行切换;
所述使所述USBOTG设备的角色在主机设备与外设设备之间进行切换包括:使所述USBOTG设备的角色在A-主机设备与B-外设设备之间进行切换。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述USBOTG设备的角色为A-主机设备且接收到所述对端设备发出的所述主机交换协议请求时,对所述OTG控制器进行复位,并将所述ID引脚检测端所检测到的USB电缆插头类型从A类型更改为B类型,以使所述USBOTG设备从所述A-主机设备切换为B-外设设备;
当所述USBOTG设备的角色为B-外设设备且接收到所述对端设备发出的所述主机交换协议请求时,对所述OTG控制器进行复位,并将所述ID引脚检测端所检测到的USB电缆插头类型从B类型更改为A类型,以使所述USBOTG设备从所述B-外设设备切换为A-主机设备。
4.根据权利要求1所述的方法,其特征在于,所述更改所述OTG控制器用于检测USB电缆插头类型的ID引脚检测端的状态包括:
将所述ID引脚检测端的状态在接地和浮空两者之间进行切换。
5.根据权利要求1所述的方法,其特征在于,所述更改所述OTG控制器用于检测USB电缆插头类型的ID引脚检测端的状态包括:
通过一ID引脚控制电路控制输入至所述ID引脚检测端的状态值在所述USBOTG设备所连接的USB电缆插头的ID引脚的状态值和与所述ID引脚的状态值相反的状态值之间切换,其中所述ID引脚的状态值包括高电平和低电平两种。
6.根据权利要求5所述的方法,其特征在于,所述ID引脚控制电路包含多路选择器,所述多路选择器的第一输入端连接所述USB电缆插头的ID引脚,所述多路选择器的输出端连接所述ID引脚检测端,以及所述多路选择模块的第二输入端接收一输入状态值,所述输入状态值与所述USB电缆插头的ID引脚的状态值相反;
所述通过所述ID引脚控制电路控制输入至所述ID引脚检测端的状态值进行切换的步骤包括:控制所述多路选择器的输出在所述第一输入端的信号和所述第二输入端的信号之间切换。
7.根据权利要求6所述的方法,其特征在于,所述ID引脚控制电路还包含内部寄存器和状态值控制器,其中所述多路选择器的第二输入端连接所述内部寄存器,所述输入状态值由所述内部寄存器提供,所述状态值控制器连接所述内部寄存器、所述多路选择器的使能控制端、所述USB电缆插头的ID引脚以及所述OTG控制器,所述方法还包括:
当所述USBOTG设备连接所述USB电缆插头时,所述状态值控制器检测所述USB电缆插头的ID引脚的状态值,并在所述内部寄存器中写入与检测到所述ID引脚的状态值相反的状态值;
当所述USBOTG设备接收到所述对端设备发出的所述主机交换协议请求时,所述状态值控制器在所述OTG控制器的指示下,通过所述多路选择器的使能控制端控制所述多路选择器的输出在所述ID引脚的状态值和所述内部寄存器的状态值之间进行切换。
8.根据权利要求5所述的方法,其特征在于,所述ID引脚控制电路包含控制器,所述控制器分别连接所述USB电缆插头的ID引脚、所述OTG控制器的一输出以及所述ID引脚检测端,所述方法还包括:
所述控制器根据所述OTG控制器的状态机所处的当前状态来控制输出相应的状态值至所述ID引脚检测端,当所述OTG控制器的状态机的当前状态为开始状态时,所述控制器输出检测到的所述ID引脚的状态值至所述ID引脚检测端,当所述OTG控制器的状态机的当前状态为A-主机状态或A-挂起状态时,所述控制器输出状态值1至所述ID引脚检测端,当所述OTG控制器的状态机的当前状态为B-外设状态时,所述控制器输出状态值0至所述ID引脚检测端。
9.一种USBOTG设备,其特征在于,包括:
主机控制器;
外设控制器;
OTG控制器,耦接于所述主机控制器及外设控制器,包含一ID引脚检测端,用于检测所述USBOTG设备所连接的USB电缆插头类型,所述OTG控制器用于响应对端设备发出的主机交换协议请求,进行复位,并更改所述ID引脚检测端的状态,以控制所述USBOTG设备当前处于使能状态的控制器在所述主机控制器和所述外设控制器之间进行切换。
10.根据权利要求9所述的设备,其特征在于,所述OTG控制器用于响应对端设备发出的主机交换协议请求,进行复位,并将所述ID引脚检测端所检测到的USB电缆插头类型在A类型和B类型之间进行切换,以使所述USBOTG设备的角色在A-主机设备与B-外设设备之间进行切换。
11.根据权利要求9所述的设备,其特征在于,所述USBOTG设备还包含:
ID引脚控制电路,所述ID引脚控制电路连接在所述USBOTG设备所连接的USB电缆插头的ID引脚与所述OTG控制器的所述ID引脚检测端之间,用于控制输入至所述ID引脚检测端的状态值在所述ID引脚的状态值和与所述ID引脚的状态值相反的状态值之间切换,其中所述ID引脚的状态值包括高电平和低电平两种。
12.根据权利要求11所述的设备,其特征在于,所述ID引脚控制电路包含:
多路选择器,所述多路选择器的第一输入端连接所述ID引脚,所述多路选择器的输出端连接所述ID引脚检测端,以及所述多路选择模块的第二输入端接收一输入状态值,所述输入状态值与所述USB电缆插头的ID引脚的状态值相反,所述多路选择器用于基于所述OTG控制器的控制,选择所述第一输入端的信号或所述第二输入端的信号输出至所述ID引脚检测端。
13.根据权利要求12所述的设备,其特征在于,所述ID引脚控制电路还包含内部寄存器和状态值控制器:
所述多路选择器的第二输入端连接所述内部寄存器,所述输入状态值由所述内部寄存器提供,所述状态值控制器连接所述内部寄存器、所述多路选择器的使能控制端、所述USB电缆插头的ID引脚以及所述OTG控制器;
所述状态值控制器用于当所述USBOTG设备连接所述USB电缆插头时,检测所述USB电缆插头的ID引脚的状态值,并在所述内部寄存器中写入与检测到所述ID引脚的状态值相反的状态值;
当所述USBOTG设备接收到所述对端设备发出的所述主机交换协议请求时,在所述OTG控制器的指示下,通过所述多路选择器的使能控制端控制所述多路选择器的输出在所述ID引脚的状态值和所述内部寄存器的状态值之间切换。
14.根据权利要求13所述的设备,其特征在于,所述多路选择器、内部寄存器及状态值控制器集成于所述USBOTG设备所在芯片的内部。
15.根据权利要求13所述的设备,其特征在于,所述内部寄存器及状态值控制器集成于所述USBOTG设备所在芯片的内部,所述多路选择器独立于所述USBOTG设备所在芯片设置。
16.根据权利要求11所述的设备,其特征在于,所述ID引脚控制电路包含控制器,所述控制器分别连接所述USB电缆插头的ID引脚、所述OTG控制器的一输出以及所述ID引脚检测端;
所述控制器用于根据所述OTG控制器的状态机所处的当前状态来控制输出相应的状态值至所述ID引脚检测端:当所述OTG控制器的状态机的当前状态为开始状态时,所述控制器输出检测到的所述ID引脚的状态值至所述ID引脚检测端,当所述OTG控制器的状态机的当前状态为A-主机状态或A-挂起状态时,所述控制器输出状态值1至所述ID引脚检测端,当所述OTG控制器的状态机的当前状态为B-外设状态时,所述控制器输出状态值0至所述ID引脚检测端。
17.根据权利要求16所述的设备,其特征在于,所述控制器集成于所述USBOTG设备所在芯片的内部。
18.一种USBOTG设备的角色切换方法,其特征在于,应用于第一USBOTG设备和第二USBOTG设备,所述第一USBOTG设备和第二USBOTG设备经由USB电缆互相连接,所述第一USBOTG设备初始为A-主机设备,所述第二USBOTG设备初始为B-外设设备,所述方法包括:
所述第二USBOTG设备向所述第一USBOTG设备发送第一主机交换协议请求,所述第一主机交换协议请求用于请求成为主机设备;
所述第一USBOTG设备将所述USB总线挂起,对所述第一USBOTG设备的OTG控制器进行复位,并将所述OTG控制器的ID引脚检测端的状态从A类型更改为B类型,以将所述第一USBOTG设备的角色从所述A-主机设备切换到所述B-外设设备,所述ID引脚检测端用于检测所述第一USBOTG设备所连接的USB电缆的插头类型;
所述第二USBOTG设备检测到所述第一USBOTG设备将USB总线挂起后,将角色从所述B-外设设备切换到B-主机设备。
19.根据权利要求18所述的方法,其特征在于,所述方法还包括:
所述第二USBOTG设备向所述第一USBOTG设备发送第二主机交换协议请求,所述第二主机交换协议请求用于请求从所述主机设备返回外设设备;
所述第一USBOTG设备对所述OTG控制器进行复位,并将所述ID引脚检测端的状态从B类型更改回A类型,以将所述第一USBOTG设备的角色从所述B-外设设备切换到所述A-主机设备,所述第二USBOTG设备将角色从所述B-主机设备切换到所述B-外设设备。
20.根据权利要求18或19所述的方法,其特征在于,所述第一USBOTG设备为符合OTG1.3协议的USBOTG设备,所述第二USBOTG设备为符合OTG2.0协议的USBOTG设备。
21.一种USBOTG设备的角色切换系统,其特征在于,包含第一USBOTG设备和经由USB电缆与所述第一USBOTG设备连接的第二USBOTG设备,其中,
所述第一USBOTG设备包含第一主机控制器,第一外设控制器和第一OTG控制器,所述第一USBOTG设备初始为A-主机设备,所述第一OTG控制器耦接于所述第一主机控制器和第一外设控制器,包含一ID引脚检测端,用于检测所述第一USBOTG设备所连接的USB电缆插头类型,所述第一OTG控制器用于在接收到所述第二USBOTG设备发出的第一主机交换协议请求后,将USB总线挂起,进行复位,并将所述ID引脚检测端的状态从A类型更改为B类型,以将所述第一USBOTG设备的角色从所述A-主机设备切换到所述B-外设设备,并控制当前处于使能状态的控制器从所述第一主机控制器切换到所述第一外设控制器;
所述第二OTG设备包含第二主机控制器,第二外设控制器和第二OTG控制器,所述第二USBOTG设备初始为B-外设设备,所述第二OTG控制器用于在检测到所述第一USBOTG设备将USB总线挂起后,将所述第二OTG设备的角色从所述B-外设设备切换到B-主机设备,并控制当前处于使能状态的控制器从所述第二外设控制器切换到所述第一主机控制器。
22.根据权利要求21所述的系统,其特征在于,
所述第一OTG控制器还用于在接收到所述第二USBOTG设备发出的第二主机交换协议请求后,进行复位,并将所述ID引脚检测端的状态从B类型更改为A类型,以将所述第一USBOTG设备的角色从所述B-外设设备切换回所述A-主机设备,并控制当前处于使能状态的控制器从所述第一外设控制器切换回所述第一主机控制器;
所述第二OTG控制器还用于在所述第二USBOTG设备向所述第一USBOTG设备发送所述第二主机交换协议请求后,将所述第二OTG设备的角色从所述B-主机设备切换回B-外设设备,并控制当前处于使能状态的控制器从所述第二主机控制器切换回所述第二外设控制器。
23.根据权利要求21或22所述的系统,其特征在于,所述第一USBOTG设备为符合OTG1.3协议的USBOTG设备,所述第二USBOTG设备为符合OTG2.0协议的USBOTG设备。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610116817.4A CN105808480A (zh) | 2016-03-01 | 2016-03-01 | Usb otg设备的角色切换方法、系统及usb otg设备 |
US15/438,850 US20170255585A1 (en) | 2016-03-01 | 2017-02-22 | Method and system for switching role of usb otg device and otg device thereof |
TW106106103A TWI620070B (zh) | 2016-03-01 | 2017-02-23 | Usb otg設備的角色切換方法、系統及usb otg設備 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610116817.4A CN105808480A (zh) | 2016-03-01 | 2016-03-01 | Usb otg设备的角色切换方法、系统及usb otg设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105808480A true CN105808480A (zh) | 2016-07-27 |
Family
ID=56465997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610116817.4A Withdrawn CN105808480A (zh) | 2016-03-01 | 2016-03-01 | Usb otg设备的角色切换方法、系统及usb otg设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20170255585A1 (zh) |
CN (1) | CN105808480A (zh) |
TW (1) | TWI620070B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106515618A (zh) * | 2016-10-28 | 2017-03-22 | 芜湖市吉安汽车电子销售有限公司 | 基于Linux平台车载DA系统的接口切换系统 |
CN109857485A (zh) * | 2019-01-28 | 2019-06-07 | 山东华芯半导体有限公司 | 一种可编程gpio装置及基于该装置的时序实现方法 |
CN109921481A (zh) * | 2019-03-04 | 2019-06-21 | 中国电子科技集团公司第二十八研究所 | Usb通讯时对通讯对象供电的otg设备及供电方法 |
CN113220617A (zh) * | 2016-11-23 | 2021-08-06 | 荣耀终端有限公司 | 一种即插即用设备的检测电路、检测方法及终端 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032983B (zh) * | 2018-09-28 | 2024-02-20 | 高新兴智联科技股份有限公司 | 一种含有usb信号连接电路的手持阅读器 |
FR3102583B1 (fr) * | 2019-10-24 | 2022-11-25 | Stmicroelectronics Grand Ouest Sas | Dispositif à connecteur USB |
US11169584B2 (en) * | 2020-03-31 | 2021-11-09 | Western Digital Technologies, Inc. | Dual-connector storage system and method for simultaneously providing power and memory access to a computing device |
CN115017073B (zh) * | 2021-03-05 | 2023-08-29 | 龙芯中科技术股份有限公司 | 通信控制器的使能方法、装置、电子设备及存储介质 |
WO2022258533A1 (en) | 2021-06-08 | 2022-12-15 | Signify Holding B.V. | Auto-configuration of usb host and peripheral roles in an optical front-end module |
CN114116569A (zh) * | 2021-12-08 | 2022-03-01 | 哈尔滨市科佳通用机电股份有限公司 | 机车信号数据现场导出分析系统及其无工区跨域作业方法 |
CN114519015A (zh) * | 2022-02-23 | 2022-05-20 | 深圳市智微智能科技股份有限公司 | 一种基于Android的Tepy-C切换成OTG模式的方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1815908A (zh) * | 2006-03-02 | 2006-08-09 | 迈普(四川)通信技术有限公司 | 通信设备主从切换方法及通信设备 |
CN102681640A (zh) * | 2011-03-16 | 2012-09-19 | 国基电子(上海)有限公司 | 自我供电usb设备 |
CN103473202A (zh) * | 2013-09-03 | 2013-12-25 | 福建星网锐捷网络有限公司 | Usb otg装置、电子设备及实现otg功能的方法 |
US20150331464A1 (en) * | 2014-05-16 | 2015-11-19 | Cisco Technology, Inc. | Power-over-Ethernet (POE)-Enabled Network Device and USB Device Power Negotiation using USB to POE Protocol Conversion |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7193442B2 (en) * | 2004-09-20 | 2007-03-20 | Texas Instruments Incorporated | USB 1.1 for USB OTG implementation |
US20080178011A1 (en) * | 2007-01-18 | 2008-07-24 | Nokia Corporation | Method and apparatus for usb/otg connection providing active hnp requests and saving host power |
TW201515358A (zh) * | 2013-07-04 | 2015-04-16 | Hon Hai Prec Ind Co Ltd | 具有供電模式切換功能的usb裝置 |
-
2016
- 2016-03-01 CN CN201610116817.4A patent/CN105808480A/zh not_active Withdrawn
-
2017
- 2017-02-22 US US15/438,850 patent/US20170255585A1/en not_active Abandoned
- 2017-02-23 TW TW106106103A patent/TWI620070B/zh not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1815908A (zh) * | 2006-03-02 | 2006-08-09 | 迈普(四川)通信技术有限公司 | 通信设备主从切换方法及通信设备 |
CN102681640A (zh) * | 2011-03-16 | 2012-09-19 | 国基电子(上海)有限公司 | 自我供电usb设备 |
CN103473202A (zh) * | 2013-09-03 | 2013-12-25 | 福建星网锐捷网络有限公司 | Usb otg装置、电子设备及实现otg功能的方法 |
US20150331464A1 (en) * | 2014-05-16 | 2015-11-19 | Cisco Technology, Inc. | Power-over-Ethernet (POE)-Enabled Network Device and USB Device Power Negotiation using USB to POE Protocol Conversion |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106515618A (zh) * | 2016-10-28 | 2017-03-22 | 芜湖市吉安汽车电子销售有限公司 | 基于Linux平台车载DA系统的接口切换系统 |
CN113220617A (zh) * | 2016-11-23 | 2021-08-06 | 荣耀终端有限公司 | 一种即插即用设备的检测电路、检测方法及终端 |
CN113220617B (zh) * | 2016-11-23 | 2022-10-18 | 荣耀终端有限公司 | 一种即插即用设备的检测电路、检测方法及终端 |
CN109857485A (zh) * | 2019-01-28 | 2019-06-07 | 山东华芯半导体有限公司 | 一种可编程gpio装置及基于该装置的时序实现方法 |
CN109921481A (zh) * | 2019-03-04 | 2019-06-21 | 中国电子科技集团公司第二十八研究所 | Usb通讯时对通讯对象供电的otg设备及供电方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201732621A (zh) | 2017-09-16 |
US20170255585A1 (en) | 2017-09-07 |
TWI620070B (zh) | 2018-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105808480A (zh) | Usb otg设备的角色切换方法、系统及usb otg设备 | |
US6012103A (en) | Bus interface system and method | |
US20180024954A1 (en) | Apparatus and methods for dynamic role switching among usb hosts and devices | |
CN108920397B (zh) | 设备识别方法、装置、存储介质及电子设备 | |
CN103473202B (zh) | Usb otg装置、电子设备及实现otg功能的方法 | |
CN103186440B (zh) | 检测子卡在位的方法、装置及系统 | |
CN105183679A (zh) | 一种电子设备及信息处理方法 | |
CN102073602A (zh) | 计算机系统、连接控制装置及连接与断开方法 | |
US10678739B1 (en) | Electronic system, host device and control method | |
CN103412838B (zh) | 一种扩展系统、通信方法、地址配置方法、设备及装置 | |
EP1581878B1 (en) | Systems and methods for automatic assignment of identification codes devices | |
CN104158709A (zh) | 一种光模块识别的方法及端口扩展设备 | |
CN108108314B (zh) | 交换器系统 | |
CN210324188U (zh) | 一种集成电路总线iic主从竞争自动切换设备及其系统 | |
CN107153456A (zh) | Otg连接控制方法、otg连接控制装置及电子设备 | |
CN103376369B (zh) | 通讯负载的测试方法及装置 | |
CN107093408B (zh) | 智能设备开机时背光点亮的控制方法及装置 | |
CN209029000U (zh) | 工程机械显示屏、工程机械和工程监控系统 | |
CN104899164B (zh) | 集成电路总线的地址寻址方法、集成电路总线设备和系统 | |
CN114238194A (zh) | Usb组合设备和枚举方法 | |
CN117591378B (zh) | 一种服务器的温度控制方法、系统、设备及存储介质 | |
CN111182514B (zh) | 一种实现管脚分时复用方法、装置、设备和介质 | |
CN219642236U (zh) | 主从机系统及储能设备 | |
CN202748780U (zh) | 移动终端 | |
CN215954085U (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20160727 |
|
WW01 | Invention patent application withdrawn after publication |