1、USB host 与 OTG有什么区别?
简单的说,如果一个数码设备支持USB HOST,那么它就可以从另外一个USB设备中取得数据。
USB HOST线可以使得很多智能手机支持连接鼠标、键盘、硬盘、U盘、MP3、USB游戏手柄、USB HUB、USB网卡、USB打印机、手机、USB SIM手机卡读卡器等一堆设备,好处多多
OTG就是只要设备支持,双方都可以为USB host.

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模式。

USB host 与 OTG 怎么切换相关推荐

  1. USB Host Device And OTG

    USB是一种数据通信方式,也是一种数据总线,而且是最复杂的总线之一.  硬件上,它是用插头连接.一边是公头(plug),一边是母头(receptacle).例如,PC上的插座就是母头,USB设备使用公 ...

  2. USB HOST与 USB OTG的区别及工作原理

    在SmartQ 7上面,同时存在USB HOST与 USB OTG两个接口,我想问一下,这两个接口有什么区别么?我怎么认为HOST属于是多余呢? 麻烦高手解答,感激不尽!!! 零 USB背景知识 US ...

  3. USB host、usb device、USB OTG的判断

    USB host.usb device.USB OTG的判断 经典博客 概念 host.device OTG 识别 host.device OTG 实际开发中遇到的问题 总结 经典博客 文章 链接 O ...

  4. Real6410移植linux-2.6.39.1记录(3)-USB驱动移植(USB HOST以及USB OTG)

    // 主题:Real6410移植linux-2.6.39.1 // 作者:kevinjz2010@gmail.com // 版权:kevinjz原创 // 平台:linux-2.39.1 real64 ...

  5. Android 系统使用USB OTG功能/打开USB Host API功能

    步骤一:确定 Android 设备是否支持 USB Host 功能,具体可以通过以下步骤进行确认: 1. 查看手机或平板设备参数,或者直接联系厂家咨询: 2. 使用 UsbHostDiagnostic ...

  6. Android + kernel USB host 如何判断插入的设备是高速还是低速的设备

    d+      d- 0        0         PC 0        1         错误设备 1        0         非标准充电器 1        1        ...

  7. 启明云端分享|ESP32-S3 的 USB 支持 USB Host 吗?

    提示:作为Espressif(乐鑫科技)大中华区合作伙伴及sigmastar(厦门星宸)VAD合作伙伴,我们不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程供开发小伙伴参考.同时也用 ...

  8. STM32 USB Host 同时连接多个设备样例(如鼠标和键盘)--原创

    STM32 USB Host 同时连接多个设备样例(如鼠标和键盘) 在网上搜了很多都是USB Host单独连接鼠标或键盘的样例, 而当前很多无线鼠标键盘都是并到一个USB口上的, 也就是同一个USB有 ...

  9. 迅为-IMX6UL开发板丨双网口丨双CAN总线丨4路USB HOST丨2路串口、6路插座引出,共8路串口丨1路RGB信号丨2路LVDS信号

    迅为iMX6UL开发板多路串口开发平台 迅为i.MX 6UL开发板基于ARM Cortex-A7内核,主频高达528 MHz,内存:512MDDR3 存储:8G EMMC,支持2路CAN,2路百兆以太 ...

最新文章

  1. 【数据库】mysql 常用命令(一)
  2. 电脑常见故障处理_关于密封仪、密封试验仪器在使用上的常见故障及维护方面...
  3. Tool之curl:curl的简介、安装、使用方法之详细攻略
  4. 【CV】图像分析用 OpenCV 与 Skimage,哪一个更好?
  5. 数据结构(三)---双向循环链表的实现---java版
  6. 浅析STM32之usbh_def.H
  7. Linux samba的配置和使用
  8. Jquery ui的dialog使用文档概述
  9. 关于shiro授权 This subject is anonymous - it does not have any identifying principals and authorization
  10. 2020 OPPO 开发者大会重磅推出 ColorOS 11,适配机型达 33 种
  11. PB AcceptText()函数
  12. 碧蓝航线经济系统的流程图
  13. [禅悟人生]心不动才能真正认清自己
  14. SCCM部署系统任务序列失败错误代码0x80070002
  15. sklearn库:分类、回归、聚类、降维、模型优化、文本预处理实现用例(赶紧收藏)
  16. 扫描二维码如何实现从微信内直接跳转外部浏览器打开指定页面
  17. 一文读懂VargFacenet
  18. 阅读《精通Python爬虫框架Scrapy》
  19. 什么是语义化标签,常见的语义化标签介绍
  20. gensim bm25模型保存与加载

热门文章

  1. signature=06503812625e47e9ee33634e47a778e8,Title page for ETD etd-07242013-155857
  2. Neo4j的Rest接口使用
  3. 大学计算机AI学习初步规划 202204
  4. ChatGPT和DALLE-2级联后,输出效果震撼了…
  5. Field ‘recordID‘ doesn‘t have a default value
  6. 人体感应(红外感应)
  7. 数据标签体系与用户画像
  8. docker更换镜像源
  9. [Pytorch 常用函数] 激活函数Relu, Leaky Relu
  10. sec^3 不定积分