1

设备具有 USB OTG 支持。以下是场景:

  1. 当设备连接到 PC 时,该设备充当从设备。(设备如何知道它必须充当从设备?)

  2. 当设备连接到打印机时,该设备充当主机。(设备如何知道它必须充当主设备?)

设备连接到 OTG 时执行的步骤是什么?如何实现这个机制(简而言之)?

4

2 回答 2

3

The exact behavior of USB OTG devices is described in the specification you can find at usb.org. There is a PDF inside the zip called USB_OTG.

The Host Negotiation Protocol in section 6 covers how two OTG devices decide which one is getting the embedded host. Basically this is archived by driving pull-up and pull-down resistors on the D+ line.

Note: When talking about USB the terms master/slave are not used. The master is called host and powers the bus whereas the slave is called device. In the case of OTG (in general, see specification for exceptions) both parts have the capability to be host or device. When the host was figured out by the Host Negotiation Protocol, this part becomes the so called embedded host.

于 2012-07-09T20:42:16.260 回答
1

在您提到的两种情况下,USB设备能够通过电缆知道是主机还是设备。USB 电缆(非 C 型)不对称。一侧是主机,另一侧是设备。连接器上有一个称为 ID 引脚的引脚,它在设备侧浮动并在主机侧接地。这允许每一侧的 USB 控制器知道它连接到电缆的哪一侧,从而知道它在连接时应该扮演哪个角色(主机或设备)。这些类型的设备称为双重角色设备。

如果您有这样的设备,则可以将其插入常规主机(例如笔记本电脑),它将充当设备。您可以将其插入常规设备(如打印机),它将充当主机。这一切都基于电缆。

如果您将两个双重角色 OTG 设备相互插入。它们的初始角色由电缆以相同的方式确定。

在确定了初始角色之后,他们可以通过主机协商协议 (HNP) 将角色从他们最初由电缆确定的角色交换。

至于实现这一点。没有简单的方法来解释它。每个控制器都是不同的,您必须阅读控制器数据手册和编程模型才能实现所有这些程序。以及对 USB 和 OTG 规范本身有很好的了解。

一个不错的起点是http://usb.org,您可以在其中找到所有规格。

于 2017-02-09T17:15:27.230 回答