usb OTG如何工作(主/从)

时间:2012-07-05 05:05:09

标签: usb linux-device-driver device-driver usb-otg

设备有usb OTG

以下是场景

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

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

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

2 个答案:

答案 0 :(得分:3)

USB OTG设备的确切行为在usb.org上的specification中有所描述。 zip中有一个名为USB_OTG的PDF。

第6节中的主机协商协议涵盖了两个OTG设备如何决定哪一个获得嵌入式主机。基本上,这是通过驱动D +线上的上拉和下拉电阻来存档的。

注意:在谈论USB时,不使用术语主/从。主设备称为主机并为总线供电,而从设备称为设备。在OTG的情况下(通常,参见例外规范),这两个部分都具有成为主机或设备的能力。当主机通过主机协商协议计算出来时,该部分将成为所谓的嵌入式主机

答案 1 :(得分:1)

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

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

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

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

就此而言。没有简短的解释方法。每个控制器都不同,您必须阅读控制器数据手册和编程模型以实现所有这些过程。除了对USB和OTG规格本身有很好的理解外。

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