USB OTG
想了解USB OTG的作业原理,需求知道三个协议:
ADP:Attach Detection Protocol
HNP:Host Negotiation Protocol
SRP:Session Request Protocol
2.1 ADP
USB主从设备或USB OTG设备,怎么知道USB总线上有没有挂接其它USB设备呢?USB设备会周期性地检测USB端口的电容值,假如USB端口电容值改变足够大,大到能够确认有新的USB设备接入了,那么USB A型设备会为USB总线供给电源,并检测设备衔接;而USB B型设备则建议一个会话恳求(SRP),并等候A型设备的呼应。
2.2 HNP
2.2.1 主从设备是怎么确认的?
USB OTG既能够做主设备,也能够做从设备。在体系运转过程中,OTG设备的人物(主设备or从设备)能够转化,但是,在体系刚发动时,OTG设备的人物是确认的。怎么确认的呢?下面来处理这个问题
上图是几种典型的USB接口,其间Mini-A型、Mini-B型、Micro-AB型和Micro-B型口都有五个管脚,管脚次序是
1:Vbus
2:D-
3:D+
4:ID
5:GND
若是ID管脚接地,则该设备为A设备;若ID管脚悬空,则该设备是B设备,其间A设备是initial host,B设备是initial peripheral。即体系刚发动时,A设备是主设备,B设备是从设备。如下图所示,左面的设备是B设备,右边的USB设备是A设备。
值得注意的是,在体系运转的过程中,USB设备的主从人物可能会改变,但是A设备/B设备的称号不会改变。也就是说,在体系运转过程中,A设备有可能从主设备变成从设备,但是A设备依然叫做A设备;B设备相似。
别的,A设备始终是供电设备,而与A设备扮演的人物无关。即便A设备变成了从设备,依然由A设备供电。
2.2.2 为什么需求替换主从设备的人物呢?
上图为一个需求交换人物的比如。左面是一台PDA,PDA里有打印机驱动,但由于它是B设备,因而初始人物是从设备。很显然,在打印服务的过程中,有必要交换PDA和打印机的人物。
咱们在开发i.MX233开发板的过程中,ID管脚没有引出来,因而,默许i.MX233是从设备。但是USB摄像头也是从设备,这样i.MX233没有办法转化成主设备,然后i.MX233无法运用USB Camera。
2.3 SRP
正如刚刚说到的那样,A设备一向供电,即便A设备经过HNP协议由主设备变成从设备了,也一向由A设备供电。但是,在嵌入式体系里,尤其是只要电池供电的体系里,功耗是一个很重要的性能指标。A设备能够经过中止供电停止会话,进而降低功耗。这样就产生了一个问题,假如B设备要求敞开一个会话,该怎么办?
SRP能够处理这个问题。依据SRP,B设备能够恳求A设备翻开电源,开端一个会话(session)。
如上图所示,B设备中的SRP PULSE会先给D+引脚一个脉冲,之后再给VBUS一个脉冲,这样能够唤醒A设备。相应的,右边的A设备检测到D+或VBUS上的信号,则敞开VBUS并发动会话。