文档章节

OTG中的ID脚风波释疑

中华大吉CNDuGi
 中华大吉CNDuGi
发布于 2011/04/09 14:07
字数 998
阅读 3547
收藏 1
1. 概要
OTG设备使用插头中的ID引脚来区分A/B Device,ID接地被称作为A-Device,充当USB Host,A-Device始终为总线 提供电力,ID悬空被称作为B-Device,充当USB Device,设备的USB Host/USB Device角色可以通过HNP(主机交换 协议)切换。OTG设备连接时不能跨越USB Hub,如果跨越USB Hub则失去HNP功能。A-Device/B-Device与USB Host/Device没有必然的关系,主机切换完毕后A-Device变成USB从设备,但是仍然为总线供电。

2.USB-OTG插槽类型

As Host Only :提供标准的A插座,普通的USB Host并带有TPL(支持设备列表)

As Device Only:仅能作为外设的B-Device(分为插头一体和插头线缆分离的)

OTG Dual      :使用Micro AB插座,可以在运行时切换Host/Device。

OTG Dual  在插头插入后会先打开VBus,如果没有设备连接则关闭VBus,并开启ADP侦测,而EAs Host Only 则 不会再次关闭VBus
3.协议
SRP(Session Request Protocol)对话请求协议:
SRP协议允许Adevice在总线为使用时通过切断VBUS来节省电源消耗,任何一类Adevice都应该能够响应SRP请求,任何Bdevice也应该能够发起SRP请求,
ADP(Attach Detection Protocol):
提供是否有对端设备插入的检测,支持任何OTG设备
HNP(Host Negotiation Protocol)主机交换协议:
OTG设备通过HNP来切换Host/Device角色,Adevice通过查询Bdevice的OTG性能描述符来判断是否支持HNP协议,以判断Bdevice是否为两用的OTG设备,如果Bdevice支持HNP协议,Bdevice将会返回有效的OTG性能描述符,随后Adevice产生一个SetFeature命令告知Bdevice:你可以在总线挂起时以主机的方式工作,Adevice发送了这个SetFeature命令后挂起总线, 本次Session结束后Host回到Adevice手里。
4.设备框架
OTG描述符
在设备枚举时,A-Device通过GetDeor向B设备请求OTG描述符。OTG描述符也应当作为GetConfiguration()的一部分返回。其中的bmAttributes标示B-Device是否支持ADP/HNP/SRP
标准设备特性,通过SetFeature()设置。
b_hnp_enable
设置此特性,显示B-Device被允许进行HNP,A设备必须在T(HOST_REQ_SUSP)时间内挂起总线,此特性在session结束时清除。
a_hnp_support
早期OTG版本的兼容特性,设置这个特性指示B-Device对端的A-Device支持HNP。
a_alt_hnp_support
该标志已被废弃
5.连接方式(Host -> Device)
As Host Only 与 仅作为外设的B-device(带A插头型)
Host端检测到A插头插入,停止ADP,打开VBus,因为B-Device的A插头与设备作为一体,此时B-Device必定与A插头连接,Host检测到外设连接,开始枚举。
As Host Only 与 仅作为外设的B-device(A插头为线缆连接)
Host段检测到A插头插入,停止ADP,打开VBus,如果B-Device是线缆连接完毕在将A插头插入则整个连接过程与上面无异,因为此 时B-Device可能还没有插入插头,则设备连接超时,VBus再次关闭,等待下一次ADP的改变(线缆连接完毕),再次打开VBus,此时开始正常总 线枚举。
OTG Device 与 OTG Device
Host端检测到插头插入,则打开VBus,如果没有外设检测到,则关闭VBus,打开ADP Probing,Device端检测到插头插入,则打开SRP,如果线缆没有插入,则SRP超时,Device端开始进行ADP Probing,当线缆连接完毕,Device端侦测到ADP变化,发送SRP请求Host打开VBus,Host回应SRP并且打开VBus,完成设备连接。
6.案例分析:
有客户反馈他们的样机OTG mrio AB插座不能识别U盘,最后查出的原因是客户样机的USB的ID脚没有接地,
样机没有切换到USB HOST模式。

© 著作权归作者所有

中华大吉CNDuGi
粉丝 40
博文 117
码字总数 52956
作品 0
深圳
高级程序员
私信 提问
加载中

评论(1)

中华大吉CNDuGi
中华大吉CNDuGi
是的,您好!
pcDuino安装IOIO-OTG应用程序实现温度与光的检测

IOIO+Android环境下有很多应用,最近我就在pcDuino上玩IOIO-OTG。现在再介绍一个在pcDuino上安装Android系统运行IOIOTempLight程序,通过LDR Module和Linker_Temp来检测或改变光与温度的应用...

pc朵拉
2013/07/02
0
0
pcDuino上安装IOIO-OTG应用程序显示传感器波形

在Android+IOIO环境下安装一个简单的app应用可以显示模拟传感器输入信号,现在我想用pcDuino装Android系统运行IOIOSensorGraph.apk显示传感器波形,通过Rotary Potentiometer Module改变输入...

pc朵拉
2013/07/02
1K
3
端口的复用——基于STM32F767IGT6

基本概念: 在STM32中有很多内置外设,这些内置外设的操作也是通过140根GPIO引脚的,如果一个GPIO引脚复用为内置外设的功能,那么此时就叫做GPIO的功能复用: 例:串口1的发送和接收引脚可选...

u014663232
2018/04/17
0
0
Bananapi 系列开发板使用 3.7V锂电池供电工作

1 BPI系列电池接口位置 2 电池红线正极对应接到板子的正接上,黑线接到板子的负极上(注意:GPIO中有DCIN引脚需要5.0V直流电源或移动电源输入) 3 接上锂电池,电源指示灯红灯是不亮的,长按开...

bananapi
2016/01/19
92
0
[RK3288][Android6.0] USB OTG模式及切换

Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 先提USB HOST/DEVICE/OTG概念: OTG控制器可以做host,也能做device,控制器的角色一般由USB ID电平来决定。完整的USB2.0 OTG 控制器硬件...

kris_fei
2017/11/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Knative 初体验:Eventing Hello World

作者 | 阿里云智能事业群高级开发工程师 元毅 基于事件驱动是Serveless的核心功能之一,通过事件驱动服务,满足了用户按需付费(Pay-as-you-go)的需求。在之前的文章中我们介绍过 Knative ...

zhaowei121
21分钟前
2
0
利用AJAX向后台servlet传JSON数据,后台利用fastjson进行解析

一,json的构建 JSON的格式分为两种,第一种类似于JavaScript中的对象(这里需要注意的是JS中的对象与java中的对象概念是不一样的,js可以在对象中定义属性,方法等,类似于java中的类,但是...

我叫小糖主
23分钟前
1
0
Adobe开发出一个反修图工具 还原人像PS 痕迹

“这是一个假人,但在网路上有多少自拍可以代表真人?”一些读者在虚拟偶像的讨论下评论了这篇文章。 事实上,在上传照片先进行修图似乎是一种新的“社交礼仪”,并且越来越难以区分真假内容...

wowloop
26分钟前
3
0
壮丽70年·奋斗新时代|蒸妙中药熏蒸和汗蒸的区别

桑拿、汗蒸、熏蒸相信这些在日常生活中都常能听到,如今现代人的生活和工作压力越来越大,很多人的身体早已吃不消了,一些人就会选择汗蒸或者熏蒸来放松身体。 汗蒸是一种休闲全新的养生方式...

公益传承
26分钟前
0
0
setSystemUiVisibility方法和getSystemUiVisibility方法

这两个方法的调用方式如下: getActivity().getWindow().getDecorView().setSystemUiVisibility; getActivity().getWindow().getDecorView().getSystemUiVisibility; 参考资料: http://blo......

天王盖地虎626
31分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部