目录

OTG是什么

一、OTG的历史

二、OTG的原理

1.设计原理

2.相关原理

三、OTG的功能

四、如何使用OTG功能?

三、OTG工作原理

1 新的协议

1.1 事务请求协议SRP

1.2 主机流通协议HNP

2 连接器和电缆

2.1 连接器

2.2 电缆

3 USB On-The-Go设备类型

3.1 两用OTG设备(dual-role device)

3.2 外设式OTG设备(Peripheral-only OTG device)

4 驱动程序

5 数据流模型


OTG是什么

OTG全称为On-The-Go,是一种已经较为成熟的技术,主要应用于不同的设备或移动设备间的连接,进行数据交换。通过OTG技术,可以给智能终端扩展USB接口配件以丰富智能终端的功能,比如扩展遥控器配件,把手机、平板变成万能遥控器使用等。

一、OTG的历史

由于USB技术的发展,使得PC与周边设备可以通过简单、低成本的方式将各种设备串联进行数据传输,但是这种方便与简单只限于PC端,一旦离开了PC端就无法进行,这使得很多人的需求无法的到满足,特别是12年开始兴起的智能机时代。于是各厂商将USB标准化组织在2001年12月18日公布的OTG技术合入,使得其可以随时的连接各种设备,进行数据的交换与传输。

到今天,OTG功能已经时智能手机的标配了,无论是大厂商还是各个小厂。但是部分的手机不可以直接使用,需要在设备中开启此功能。

二、OTG的原理

1.设计原理

随着PAD(平板电脑)、移动电话、数码相机、打印机等消费类产品的普及,用于这些设备与电脑,或设备与设备之间的高速数据传输技术越来越受到人们的关注, IEEE1394和USB是用于此类传输的两个主要标准。

这两个标准都提供即插即用和热插拔功能,都可以向外提供电源,也都支持多个设备的连接。其中 IEEE1394支持较高的数据传输速度,但相对比较复杂、价格较高,主要用于需要高速通信的AV产品;而最初的USB标准主要面向低速数据传输的应用,其中USB1.1支持1.5Mbps和12Mbps的传输速率,被广泛用于传输速率要求不高的PC机外设,如:键盘、鼠标等。USB2.0标准的推出使 USB的传输速度达到480Mbps。而USB OTG技术的推出则可实现没有主机时设备与设备之间的数据传输。例如:数码相机可以直接与打印机连接并打印照片,从而拓展了USB技术的应用范围。

2.相关原理

大家都知道自从1996年USB传输协议的诞生,并以其优势很快的风靡了所有计算机外设以及数码设备,大家都知道USB设备分为HOST(主设备)和SLAVE(从设备),只有当一台HOST与一台SLAVE连接时才能实现数据的传输,OTG设备就是我们的“EX”既能充当HOST,亦能充当SLAVE。

Mini 5PIN OTG:常见安卓平板OTG接口

Micro USB3.0 OTG:2016年以前的安卓手机OTG接口

Type C OTG:在2016年以后的安卓手机OTG接口

Lightning OTG:苹果手机专用OTG

三、OTG的功能

  1. 为其他的手机或平板供电,操作简单,只需要使用OTG线与数据线即可完场。

  2. 扩展设备内存,当设备使用OTG连接U盘时,可以将图片、视频、文档保存至U盘中,节省手机内存。

  3. 互传文件,通过OTG线,将手机与U盘、移动设备等USB储存设备相连接,即可在手机和USB储存设备间互传文件。

  4. 外接辅助设备,比如可以外接游戏手柄、鼠标、键盘等,同时也可以使用网线转接头直连网线上网。

四、如何使用OTG功能?

使用OTG功能非常的简单,只需要一部手机、OTG线、需要外接的设备(以U盘为例),使用OTG线的type-c接口插入手机,OTG端口插入U盘,即可使用了。

三、OTG工作原理

1 新的协议

OTG补充规范对USB2.0的最重要的扩展是其更具节能性的电源管理和允许设备以主机和外设两种形式工作。OTG有两种设备类型:两用OTG设备(Dual-role device)和外设式OTG设备(Perip-heral-only OTG device) 。两用OTG设备完全符合USB2.0规范,同时它还要提供有限的主机能力考核成绩和一个MiniAB插座、支持主机流通协议(Host Negotiation Protocol,HNP),并和外设式OTG设备一样支持事务请求协议(Session Request Protocol,SRP).当作为主机工作时,两用OTG设备可在总线上提供8mA的电流,而以往标准主机则需要提供100~500mA的电流。 
  两个两用OTG设备连接在一起时可交替以主机和从机的方式工作,这个特点兼容了现有USB 规范主机/外设的结构模型。OTG主机同样负责补始化数据通信的任务,比如:总线复位、获取USB各种描述符和配置设备。这些配置完成后,两个OTG设备便可以分别以主机和从机方式传输信息,两个设备主从角色交换的过程由主机传输协议(HNP)定义。以下以两用OTG设备为例讨论SRP和HNP。

1.1 事务请求协议SRP

在以往的USB系统运行过程中,主机提供5V的电源和不低于100mA的总线电流。当OTG主机(指以主机方式工作的两用OTG设备,又称A-device)连接到有线电源时这种方法是适用的,但像手机这样的自供电移动设备则不能承受如此大的电能浪费。为了节约电源延长电池的使用寿命,当总线上没有活动时,OTG主机将挂起总线电源VBUS。 SRP协议可使OTG从机(指外设式设备或者以外设方式工作的两用设备,又称B-device,此处指后者)请求A-device重新使能VBUS,而后 A-device使用HNP协议交换两个设备的工作方式,这两步完成后由新的OTG主机开始事务传输。B-device可在前一事务结束2ms后的任意时间开始SRP,SRP的时序波形见图形1。

  B-device将先后执行数据线脉冲调制(data-line pul-sing)和VBUS脉冲调制(VBUS pulsing) 。它通过使能数据线上拉电阻(全速和高速设备为D+,低速设备为D-)5~10ms实现前者,后者通过驱动VBUS实现。VBUS必须要有足够长的时间对其电容充电,这个时间应能保证不大于13μF的电容充电至2.1V(OTG设备的电容是6.5μF或更小),从而不会对标准主机的96μF或更高的电容充电至2.0V。该限制保证了从B-device引来的VBUS电流不会破坏标准主机的端口。 
  A-device检测到数据线脉冲调制或者VBUS脉冲调制后,首先复位总线,然后发送 Set_feature命令而先不进行设备的枚举,此时B-device尚处在默认的从机状态。如果Set_feature命令成功执行,说明B- device为两用OTG设备,A-device(使用HNP协议)挂起VBUS准备让B-device交换为主机方式接管总线。如果 Set_feature命令执行失败,说明B-device为外设式OTG设备,于是A-device使能VBUS准备开始一个传输事务(此时,A- device只是被唤醒,并未改变工作方式)。当A-device认为总线上没有传输需要时,挂起VBUS以结束该事务。这种A-device自动检测B -device是否支持HNP协议的特征称为"No Silent Failure"。

1.2 主机流通协议HNP

当两用设备连接了一个Mini-A插头或者Mini-B插头时,它相应的便以OTG主机或者OTG外设的默认方式工作。A-device为默认主机,所以由它提供VBUS电源,且在检测到有设备接入时复位总线、八举并配置B-device。 
  A-device在完成对B-device的使用后,可以通过查询B-device的 OTG性能描述符来判断是否支持HNP协议(即是否为两用OTG设备)。如支持HNP,B-device将返回有效的OTG性能描述符,A-device 则产生一个Set_feature命令(即HNP_Enable)来通知B-device可以在总线挂起的时候以主机方式工作,随后A-device挂起总线。HNP的时序波形见图2。

  B-device通过上拉电阻(全速时)或者下拉电阻(高速时)拉低D+以示连接断开。随后,作为对B-device断开的响应,A-device使能它的数据线并开始以从机方式工作。完成这些转换后,B-device和A-device便各自以主机角色和外设角色使用总线。如果该B-device属于两用OTG设备且A-device不再使用它了,A-device便重发Set_feature命令并挂起总线。若B-device申请角色转换时出错,A -device则拉低VBUS以结束该事务。当B-device正常结束传输事务时便挂起VBUS使能其上拉电阻,重新以从机方式运行。A-device 检测到总线挂起后,发出一个连接断开信号并重新以主机方式工作。

2 连接器和电缆

2.1 连接器

USB IF在OTG中定义了更小的连接器,可以同时用于主机式和外设式的设备、具有更低的电源需求、扩展的电源保护模式和利于上层软件开发的简洁设计。 
  OTG和现有的USB2.0规范完全兼容,一个主要的机械上改进是它的新式连接器。USB 2.0定义了三种连接器对(插头和插座):Standard-A、Standard-B和Mini-B。Mini-B连接器是专为较小的外设(如移动电话等)开发的。OTG规范增加了第四种插头:Mini-A,两种插座:Mini-A和Mini-AB。这些连接器比最初的USB连接器要小许多(如: Mini-A插头截面积只有Standard-A插头的38%),更适合于便携式设备。 
  Mini-AB插座用于两用设备。Mini-A新增的ID脚(以前的USB插头不含此脚)在连接Mini-AB时接地短路,而Mini-B则使该脚断开,这样两用设备便可识别连接设备的类型以决定设备的默认角色。 
  Mini-A和Mini-B插头是严格配对适用的,如:不能将Mini-A插头和Mini-B插座配合使用。但是,Mini-AB插座适合于以上两种插头。在外形上,Mini-A更新近于椭圆形,而Mini-B更接近于正方形。另外,他们的插头和插座内部的塑料都有颜色:Mini-A为白色,Mini-B为黑色,Mini-AB为灰色。

2.2 电缆

USB 2.0规范定义了两种电缆:Standard-A至Standard-B和Standard-A至Mini-B。OTG新增了两种电缆:Mini-A至 Standard-B和Mini-A至Mini-B。Mini-A-to-Mini-B电缆的延迟被减少到可以在“A端”使用适配器,如:用 Standard-A插头连接OTG两用设备需要一个Standard-A插座至Mini-A插头的适配器,而且Mini-A插头连接Standard- A插座时需要一个Mini-A插座至Standard-A插头的适配器。

3 USB On-The-Go设备类型

OTG有两种设备:两用OTG设备和外设式OTG设备。两用OTG设备可以作为USB外设或者USB OTG主机,并且可为总线提供8mA电流。而外设式OTG设备不具备主机性能,它必须在向两用设备(主机)的请求获准后才能通信。两用OTG设备必须能以全速方式运行,而高速运行的方式是可选的。外设型OTG设备可以设计在高速、全速和低速中的任意一种方式下工作。

3.1 两用OTG设备(dual-role device)

两用OTG设备都有一个Mini-AB插槽,所以一个Mini-A至Mini-B电缆可以直接将两个两用OTG设备连接在一起,而此时用户不会觉察到两个设备的不同,也不知道它们的默认主从配置。 
  A-device(主机)必须在事务传输过程中提供总线电源,这是A-device和B-device的主要不同,同时也说明了两个设备的连接的非对等关系。A-device负责为总线供电因此它控制通信发生的时机,B-device只有通过SRP协议向“主机”请求传输。 
  设计一个两用设备是比较困难的,因为它要具备:有限的主机能力、可作为一个全速的外设(可选的高速方式)、OTG目标设备的列表、目标设备的驱动程序、支持SRP、支持HNP、一个Mini-AB插座、VBUS上不小于8mA的电流输出、与用户通信的方式。

3.2 外设式OTG设备(Peripheral-only OTG device)

外设式OTG设备是普通的USB外设。它有一个OTG功能描述符说明其支持事务请求协议SRP而且它不是两用OTG设备。此外,外设式OTG设备只能配置Mini-B型插座或者必须有一个带Mini-A插头的附属电缆,而不能使用Mini-AB型插座。 
  SRP是B-device(此处指外设式设备)向A-device请求传输事务时必须使用的协议。它由前面提到的数据线脉冲调制和VBUS脉冲调制(B-device产生)两种方法构成。A-device必须能检测这两种方法之一的信号,并开始一个相应的传输事务。除了固件(firmware)略有增加外,B-device同时可产生两种信号的成本并没有增加成本,而且还使实现A- device更加简单(只需根据实际情况提供其中一种方式的检测)。 
  一个OTG设备不必实现OTG的所有性能。例如,一个外设式OTG设备可能只需支持SRP和一个小于等于8mA的默认电流消耗配置。其实,添加对SRP支持也较简单:在VBUS上接一个驱动电阻并增加一些简单的逻辑,从而产生VBUS脉冲调制信号。 
  另外,无论是两用OTG设备还是外设式OTG设备,都可以和通用的许机相连,只不过两用OTG设备具有一定的主机能力(可以驱动特定的一组OTG设备工作)。

4 驱动程序

与PC主机不同,便携式设备没有便捷的方式和足够的空间装载新的驱动程序。因此,OTG规范要求每个两用OTG设备有一个支持的外设式OTG目标设备的列表,列表中包括设备的类型和制造商等信息。USB IF正计划定义“OTG Type”规范。对于符合此规范的设备,OTG主机只需提供一个驱动程序即可,这将使OTG主机无需为每个设备提供单独的驱动程序,从而支持尽量多的OTG外设。 
  与PC机不同,OTG两用设备的驱动程序栈由USB主机栈和USB设备栈构成以满足两种工作方式的需要,见图3。OTG驱动程序通过连接器的不同或者不否有NHP交换设备的工作方式来决定使用USB主机栈还是USB设备栈。 
  当OTG两用设备以主机方式工作时,USB主机栈工作。其中的主机控制器驱程序负责USB 主机栈与硬件端点的数据交换,USB驱动程序枚举并保存设备的信息,目标外设主机类驱动程序支持目标设备列表里的设备。主机类驱动程序由芯片制造商提供,同时,OTG提供通用的主机类驱动程序(可以修改以用于非通用设备)。 
  当OTG两用设备以从机方式工作时,USB设备栈工作。其中的设备控制器驱动程序负责USB设备栈与硬件端点的数据交换,USB协议层负责处理USB协议规范,设备类驱动程序的功能取决于该两用设备的功能(如数码照相机、存储设备、打印机等)。 
  OTG驱动程序负责处理两用OTG设备的工作方式转换,同时,它还可以返回其结果(如设备是否支持HNP)并处理总线错误。应用层程序通过OTG驱动程序开始或者结束一个传输事务,通过USB主机栈或设备栈与硬件层交换数据。OTG两用设备的驱动程序栈配置见图3。

5 数据流模型

OTG主机和设备被划分为功能层、USB设备层和USB接口层三个不同层次,见图4。 

  USB接口层为OTG主机和OTG设备提供物理连接,USB系统软件使用主机控制器来管理主机与USB设备的数据传输。USB系统软件相对于主机控制器而言,处理的是以客户角度观察的数据传输及客户与设备的交互。USB设备层为USB主机系统软件提供一个可用的逻辑设备。主机通过与之功能匹配的客户软件实现其各种功能。 
  OTG设备与以往的USB设备一样的两种通道:数据流通道和消息通道。数据流通道没有定义好的结果,而消息通道则有固定的结构。但是,每个通道都有一定的带宽、传输类型、传输方向和缓冲区大小。自供电设备配置一个默认的控制通道,由它提供该设备的配置和状态等信息。 
  USB OTG规范是USB2.0规范的补充而不是替代品。PC主机和标准外设并没有被取代,因为新的OTG仅适用于需要具有主机功能和更小体积的便携式设备。OTG在这些外设间引入了点对点的(point-to-point)通信方式,这使得便携式仪器的发展有了更加广阔的空间。USB OTG已受到Cypress等芯片供应商、软件开发商和设备制造商的广泛支持,OTG不久将会成为新一代的“移动计算”解决方案。

小知识·OTG工作原理相关推荐

  1. otg usb 定位_详解USB OTG工作原理及其应用

    原标题:详解USB OTG工作原理及其应用 1994年,Intel,Compaq等七家软硬件全球知名企业为了突破当时PC使用串口和并口传输速度的限制,成立了通用串行 开发者论坛( Implemente ...

  2. 08.GPIO基础知识和工作原理

    GPIO基础知识和工作原理 参考资料 1.正点原子开发板资料 <STM32FXX开发指南:库函数版本>-第六章跑马灯实验 2.STM32FxXx官方资料: F429:<STM32F4 ...

  3. 套接字(socket)基本知识与工作原理

    套接字(socket)基本知识与工作原理 一.Socket相关概念 Socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.(其实就是两个程序通信用的.) S ...

  4. 第28节 防火墙基本知识、工作原理及工作模式

    防火墙基本知识.工作原理及工作模式 1 防火墙概述 1.1 基本概念 1.2 与路由器对比 1.3 防火墙的基本功能 1.4 衡量防火墙性能的5大指标 2 区域隔离 2.1 区域概念 2.2 隔离思路 ...

  5. 操作系统之内存管理:1、内存管理基础知识(指令工作原理、地址转化、程序运行过程)

    1.内存管理基础知识(指令工作原理.地址转化.程序运行过程) 思维导图 什么是内存? 指令的工作原理 装入模块的三种实现 绝对装入 可重定位装入 动态重定位 程序的运行过程 链接的三种方式 思维导图 ...

  6. 什么是MPLS?多协议标签交换(MPLS)基础知识和工作原理

    <什么是MPLS?多协议标签交换> 简介 MPLS的起源 90年代中期,IP技术凭借技术简单和成本低廉实现快速发展,Internet数据海量增长.但由于硬件技术存在限制,基于最长匹配算法的 ...

  7. HDD/SSD基础知识及工作原理

    文章目录 HDD 一.硬盘的硬件结构 1.硬盘外部结构 : 2.硬盘内部结构: 3.硬盘控制电路: 磁头 磁道 盘片 磁面 柱面 扇区 电机主轴 二.硬盘的工作原理 三.硬盘的主要参数 四.硬盘的接口 ...

  8. 固态继电器基础知识和工作原理

    固态继电器是一种完全由固态电气元件组成的非接触式开关,可以以较小的控制信号驱动大电流负载.由于电气元件(即开关晶体管.可控硅等半导体元件)的开关特性,它可以实现无接触和无火花的开关.与电磁继电器相比, ...

  9. linux服务器基础知识及工作原理汇总

    服务器基础 一.服务器的种类 1.按网络规模划分 按网络规模划分,服务器分为工作组级服务器.部门级服务器.企业级服务器 2.按架构划分 按照服务器的结构,可以分为CISC(复杂指令集)架构的服务器和R ...

  10. 小知识·typec耳机原理

    目录 数字耳机和模拟耳机 手机中模拟和数字耳机的差异 typec耳机介绍 数字耳机和模拟耳机 模拟耳机即我们的常见的3.5mm接口的耳机,包括左右声道,地或者mic,如左图. 数字耳机(右图)包含一个 ...

最新文章

  1. PHP类继承、接口继承关系概述
  2. java字符生成器_Java实现简单字符生成器代码例子
  3. 使用if和goto语句构造循环
  4. 文本文件的读写(字符流)
  5. C++ 线程同步之临界区CRITICAL_SECTION
  6. Mysql中用SQL增加、删除字段,修改字段名、字段类型、注释,调整字段顺序总结...
  7. php yaf 教程,Yaf教程2:入门使用
  8. IIS上部署asp.net core2.1项目
  9. python中cursor操作数据库(转)
  10. a标签下载pdf文档
  11. 分布式定时任务框架说明
  12. Java银行账户管理子系统
  13. 《无聊教程●第一课●教你编一个牛逼的VBScript邮件发送器》
  14. linux上安装python、igraph源码包_linux ubuntu 安装/卸载/删除python-igraph方法
  15. python 画图自定义x轴刻度值
  16. 高中上计算机专业用买电脑吗,我是高中毕业生,要上大学该买什么电脑?
  17. bug bounty - 绕过限制劫持Skype账号
  18. 25岁,想转行到 IT,应怎样入门?
  19. java 和 c# 下的RSA证书+AES+DES加解密实现
  20. 在Linux中,_exit()、exit(0)、exit(1)、和return的区别!!

热门文章

  1. 图像处理(十三)LBP特征提取
  2. 微信群控系统 1.1.0注册过程详解,
  3. 华工计算机工图答案,华南理工 网络画法几何及工程制图-课程习题集答案
  4. 【雷达】一维和二维自适应波束形成(DBF))DBF附matlab代码
  5. 点云配准(三) 传统点云配准算法概述
  6. FreeSWITCH channel variables(信道变量)
  7. 电子元器件筛选公司/费用-电子元器件筛选方法与技术要求
  8. Linux查看可执行文件依赖库
  9. 11111111111111111111
  10. 未来能源互联网技术革命,能源产业大数据应用解析