USB有三类接口A类接口                     -----------最常见的扁平接口,四芯  VCC   GND   D+   D-

B类接口                                                   -----------方形的梯形接口         同样是四芯

MINI AB类接口                                       -----------介绍如下。

USB设备分两类                                    A类设备 (默认是主设备)

                                                                   B类设备 (默认是从设备)

USB OTG是USB2.0版本的补充,并不是独立的标准,它保留了USB2.0的所有特点。OTG使2个USB外设在脱离PC的情况下可以直接通信。为了实现这种功能,在OTG中有一个新的概念——双功能设备(DRD:Dual-Role Device)。1个DRD能满足下列特征:
具有一定的USB主机能力和提供1个外设列表; 
作为外设时能够实现全速操作(或高速操作); 
作为主控机时能支持全速操作(低速或高速) 
支持主机协商协议(HNP)和会话请求协议(SRP); 
仅有1个微型AB连接端口; 
能够向电源总线提供不小于8mA的电流。
要实现主机功能,主机必须存储大量的设备驱动程序,并且向电源总线提供一定的电流。对于嵌入式USB主机来说,提供大量的设备驱动程序是不现实的也没有必要,1个嵌入式USB主机只需支持部分特定设备,这些设备就是它的外设列表。
主机协商协议(HNP)
在USB标准中,主机采用A型接口,称为A类设备(A-Device);外设采用B型接口,称为B类设备(B-Device)。1个DRD既可以作为主机,也可以作为外设。那么,当2个DRD互连时,哪个设备作为主机,为什么要作为主机?为了解决这两个问题,在OTG中提出了新的协议——主机协商协议(HNP)。在OTG中还定义了一种新的接口——微型AB插座(mini-AB receptacle)以及微型A插头(mi-ni-A plug)和微型B插头(mini-B plug)。在微型AB插座、微型A插头和微型B插头中增加了1个引脚——ID引脚,如图1所示:

在微型A插头中,ID引脚接地,在微型B插头中,ID引脚悬空。在OTG中,如果设备的ID引脚接地(即mini-A插头连接的设备,如图1右侧的设备),则此设备默认为主机,否则为外设。同时,在设备连接使用过程中,通过主机协商协议,允许主机和外设功能互换。例如,假设图1左边的B-Device为1个手持PDA,右边的A-Device为1个打印机。由于连接线的关系,打印机初始化为主机。但是打印机的驱动程序存在PDA中,这时需要PDA作为主机,打印机作为外设。通过HNP可以方便实现此功能,而不必拔下连接线调换插头方向,重新连接打印机和PDA。
会话请求协议(SRP)
OTG收发器一般用在嵌入式设备中,这类设备普遍采用电池供电,对功耗要求很严。为了节省电源,在OTG标准中,当电源总线没有使用时,允许A类设备挂起电源总线。当1个B类设备要工作时,它必须通过某种方法通知A类设备向电源总线供电。为了实现这一功能,在OTG中提出了会话请求协议(SRP)。在OTG中,1个会话定义为A类设备向电源总线VBUS有效供电的时间。需要注意的是,在OTG中电源一直都是由A类设备(连接mini-Aplug的DRD)提供的。由于主机协商协议,A类设备也可能作为外设使用,此时,电源也必须由A类设备提供。当A类设备挂起VBUS后,B类设备进入休眠状态。当B类设备需要再次工作时,它可以通过向数据线发送1个脉冲信号(Data-linePulsing)或向电源总线发送一个脉冲信号(VBUSPulsing)来请求A类设备向电源总线供电。OTG要求无论是DRD设备还是普通的B类设备,都必须具有发送会话请求的功能;同时,普通的A类设备或者DRD设备都必须能够响应1个会话请求。

OTG线与普通USB线的区别

USB数据线是我们常见的设备,OTG线作为近年来随着手机行业的快速发展,逐步进入了我们的日常使用范围。OTG线与普通USB线的有什么区别?

USB数据线用来连接手机和电脑,可通过电脑访问手机里面的照片、音乐,把手机当做U盘使用。OTG数据线则无需PC,手机可直接通过OTG数据线与U盘、鼠标、键盘等USB设备连接。接U盘直接查找资料,接鼠标方便玩游戏,接键盘可快速打字,接相机直接浏览图片,即拍即传。OTG扩展了手机的功能。


手机通过绿联OTG线给USB风扇供电

OTG线与普通USB线的区别,USB数据线连接电脑的时候,由电脑供电,而OTG数据线连接U盘等设备的时候,手机必须给U盘等外设供电,那么手机是如何识别USB数据线和OTG数据线的?拆解两根线之后,会发现USB数据线的第4pin是悬空的,OTG数据线的第4pin是短接到地的,手机芯片应该是通过第4pin判断插入的是OTG数据线还是USB数据线,并以此来决定是否打开OTG供电。

硬件上的差异就是,OTG 线一端有一根PIN多接了个GND接地线,让机器分辨谁是主机、谁是Device外设,单以外观是无法分辨OTG线与普通USB线的区别的。

传统 usb 接口出pin 有
1. vbus (5v)
2. GND
3. D+
4. D-


OTG线 接线示意图

otg线 只有 micro接口, 总共出5pin
1. vbus
2. GND
3. D+
4. D-
5. ID

USB线材里面都是跑4条线,只差在接头,手机/平板都是micro USB, 接普通USB线,ID pin悬空, 所以运作在 client/peripheral mode。如果把 ID GND接地掉, 就会进入 host mode。

USB OTG简介、与普通USB线的区别的更多相关文章

  1. USB OTG to PC USB API简介

    本API分为四部分:Linux或Android内核 (主要是gadget驱动).linux端API及其DEMO.Windows 驱动.Windows API及其Demo. 一.linux.Androi ...

  2. USB OTG

    OTG检测的原理是:USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG).USB OTG技术可实现没有主机时设备 ...

  3. USB OTG ID 检测原理

    OTG 检测的原理是: USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG).USB OTG技术可实现没有主机时 ...

  4. 详述USB OTG发展及协议标准

    USB On-The-Go 扩大了USB 的应用领域,将USB 从传统的PC 与外设通讯的模式,扩展到移动电子和嵌入式领域中,抛开主机PC,实现通常的外设与外设之间点对点(Point to Point ...

  5. USB OTG原理+ ID 检测原理

    OTG 检测的原理是: USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG).USB OTG技术可实现没有主机时 ...

  6. USB OTG ID 检测原理【转】

    OTG 检测的原理是: USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG).USB OTG技术可实现没有主机时 ...

  7. USB OTG原理和 ID 检测原理

    OTG 检测的原理是: USB OTG标准在完全兼容USB2.0标准的基础上,增添了 电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG).USB OTG技术可实现没有主机 ...

  8. OTG线与普通USB线的区别

    转自OTG线与普通USB线的区别 USB数据线是我们常见的设备,OTG线作为近年来随着手机行业的快速发展,逐步进入了我们的日常使用范围.OTG线与普通USB线的有什么区别?       USB数据线用 ...

  9. USB OTG简单介绍、与普通USB线的差别

    USB有三类接口A类接口                     -----------最常见的扁平接口,四芯  VCC   GND   D+   D- B类接口                    ...

随机推荐

  1. java之Servlet监听器Listener

    常用应用场景:单点登录.统计在线人数 一.简介 (一)概述 1.Listener 用于监听 java web程序中的事件,例如创建.修改.删除Session.request.context等,并触发响 ...

  2. Django跨域请求之JSONP和CORS

    现在来新建一个Django项目server01,url配置为 url(r'^getData.html$',views.get_data) 其对应的视图函数为get_data: from django. ...

  3. C# 语法学习整理

    1.协变与逆变的概念 文章地址:https://segmentfault.com/a/1190000007005115 **************************************** ...

  4. selenium打开chrome浏览器代码

    import os from selenium import webdriver chromedriver = "C:\Program Files (x86)\Google\Chrome\A ...

  5. Java程序占用的内存可能会大于Xmx

    很多人认为Xmx和-Xms参数指定的就是Java程序将会占用的内存,但是这实际上只是Java堆对象将会占用的内存.堆只是影响Java程序占用内存数量的一个因素. 除了堆,影响Java程序所占用内存的因 ...

  6. BZOJ 2754: [SCOI2012]喵星球上的点名 [AC自动机+map+暴力]

    2754: [SCOI2012]喵星球上的点名 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 1902  Solved: 837[Submit][St ...

  7. AMDP + XSLX Workbench 报表开发模式

    本文介绍了我和同事通过使用AMDP + XSLX Workbench缩短报表开发周期.分离数据查询处理逻辑和前端展示工作的经验.欢迎讨论. 前言 最近接到了一套人力资源报表的开发需求,需要以EXCEL ...

  8. 基于Appium1.6.X的WebDriverAgent编译、安装

    转自:http://www.cnblogs.com/baconLiu/p/6861431.html tips:WebDriverAgent是Appium1.6.3以后版本新添加的模块,为了让appiu ...

  9. 蛋疼的_after_insert

    这两天在做一个素材类的网站,用的依旧是TP3.2,在做到发布话题这部分的时候,发现了一个问题,我在添加话题的时候在模型里写了个钩子函数_after_insert(),希望在新增话题数据之后同时将话题的 ...

  10. Dagger2 使用全解析

    Dagger2 使用全解析 Dagger是一个注入工具,何为注入,我们要生产一批机器人,每个机器人都有一个控制器,我们可以在机器人内部 new 出一个控制器: class Robot { val co ...