USB OTG设计 (转)

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

  1 主机通信协议与对话请求协议

  USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG)。OTG两用 设备完全符合USB2.0标准,并可提供一定的主机检测能力,支持主机通令协议(HNP)和对话请求协议(SRP)。在OTG中,初始主机设备称为A设 备,外设称为B设备。可用电缆的连接方式来决定初始角色。图2所示是用第5个ID脚确定默认主机的示意图,两用设备使用新型mini-AB插座,从而使 mini-A插头、mini-B插头和mini-AB插座增添了第五个引脚(ID),以用于识别不同的电缆端点。mini-A插头中的ID引脚接地, mini-B插头中的ID引脚浮空。当OTG设备检测到接地的ID引脚时,

表 示默认的是A设备(主机),而检测到ID引脚浮这的设备则认为是B设备(外设)。系统一旦连接后,OTG的角色还可以更换。主机与外设采用新的HNP,A 设备作为默认主机半提供VBUS电源,并在检测到有设备连接时复位总线、枚举并配置B设备。OTG标准为USB增添的第二个新协议称为对话请求协议 (SRP)。SRP允许B设备请求A设备打开VBUS电源并启动一次对话。一次OTG对话可通过A设备提供VBUS电源的时间来确定(注:A设备总是为 VBUS供电,即使作为外设)。也可通过A设备关闭VBUS电源来结束一闪会话以节省功耗,这在电池供电产品中是非常重要的。例如,在两台蜂窝电话通过连 接互相交换信息时,一台连接在电费的mini-A端,是A设备,默认为主机。另一台是B设备,默认为外设。当在不需要USB通信时,A设备可以关闭 VBUS线,此时B设备就会检测到该状态并进入功低耗模式。

  2 OTG功能的构建

  图3所示电路给出了构建OTG功能时需要在基础USB外设上添加的电路,电路中的通用串行总线控制器可以是一个微处理器和USB SIE(串口引擎),也可以是集成的μP/USB芯片或与USB收发器相连的ASIC。为总线提供电源的外部设备需要一路3.3V稳压输出供电电压,以便 为逻辑电路和连接在D+、D-引脚的1500Ω电阻提供电源。通过D+、D-引脚上的上拉电阻可向主机发出设备已连接的信号,并指示设备的工作速度。电阻 上拉至D+表示全速运行,电阻上拉至D-表示低速运行。其它端点(包括D+和D-的15kΩ下拉电阻)用于检测上拉电阻的状态。由于USB设计需要提供热 插拔功能。因此,其ESD保护电路主要用于为D+、D-和VBUS引脚提供保护。

  为了增加OTG的两用功能,必须扩充收发器功能来使OTG设备既可作为主机使用,也可以作为外设使用。而要实现上述功能,就需要在图3所示电路中添加D+和D-端的15kΩ下拉电阻并为VBUS提供供电电源。此外,收发器还需要具备以下三个条件:

  (1)可切换D+/D-线上的上拉和下拉电阻,以提供外设和主机功能。

  (2)作为A设备时,需要具有VBUS监视和供电电路;作为B设备初始化SRP时,需要监视和触发VBUS。

  (3)具有ID输入引脚。

  作为两用OTG设备,ASIC、DSP或其它与收发器连接的电路必须具备充当外设和主机的功能,并应按照HNP协议转换其角色。

  收发器所需添加的大多数电路用于VBUS引脚的管理。作为主机,它必须能够提供5V、输出电流可达8mA的电源。图3中的模拟开关用于配置收发器的各种功能。

  ASIC和控制器还必须包含USB主机逻辑控制功能,包括发送SOF(帧启动)包、发送配置/u36755输入/u36755输出数据包,在USB 1 msec帧内确定传输进程、发送USB复位信号、提供USB电源管理等。

  3 Maxim要提供的USB OTG方案

  MAX3301E是Maxim公司研制的一款USB OTG收发器,该器件集成有电荷泵,可将PDA、蜂窝电话和数码相机等移动设备与USB外设直接连接而无需PC机的参与。采用MAX3301E和一个嵌入 式USB主机,就可直接将诸如打印机或外部硬盘驱动器这样的外设连接。MAX3301E内部包括USB OTG收发器、UBUS电荷泵、线性稳压器和I2C 2线串行接口。内部电平转换器使MAX3301E能够与采用+1.65至+3.6V逻辑电源电压的器件连接。MAX3301E中的电荷泵工作在+3V至+ 4.5V输入电源下,可产生符合OTG要求的VBUS输出,且输出电流大于8mA。该器件可利用内部比较器控制并测量VBUS,同时支持USB OTG SRP和HNP,其典型应用电路如图4所示

USB OTG设计 (转)相关推荐

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

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

  2. 【STM32】一次F105 USB OTG驱动填坑记录

    使用MCU为STM32F105VC,新建工程,使用Keil 自带ST std库,以及ST Legacy usb otg 库, 问题一为VBUS检测的设计疏漏 问题二为usb device无法正常枚举, ...

  3. USB OTG基本原理

    基础知识 OTG:On-The-Go,安上即可用. 说明:USB OTG 标准在完全兼容 USB2.0 标准(ehci)的基础上,增添了电源管理(节省功耗)功能, 它允许设备既可作为主机,也可作为外设 ...

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

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

  5. Concept:USB OTG

    引自:http://www.shenmeshi.com/Computer/Computer_20080401230252_2.html OTG是USB On-The-Go的简写,通常称为USB OTG ...

  6. Android USB OTG U盘读写相关使用最全总结

    Android USB OTG U盘读写相关使用最全总结 https://blog.csdn.net/qq_29924041/article/details/80141514 androidOTG ( ...

  7. USB OTG(On-The-Go)技术概述

    USB OTG(On-The-Go)技术概述[USB 2.0规范] 摘要:USB OTG(On-The-Go)是USB 2.0规范的补充,它使外设可以在无主机参与的情况下直接互连进行通信工程.本文讨论 ...

  8. USB otg 学习笔记

    1 USB OTG的工作原理 OTG补充规范对USB 2.0的最重要的扩展是其更具节能 性的电源管理和允许设备以主机和外设两种形式工作.OTG有两种设备类型:两用OTG设备(Dualrole devi ...

  9. USB OTG学习笔记

    http://blog.21ic.com/user1/1113/archives/2010/67075.html 推荐 仅仅看了半天SPEC写的笔记,有些乱,等调试完毕再次整理,思路不是很成熟,推测成 ...

最新文章

  1. android学习第一天
  2. erlang虚拟机精要(2)-异步信号时间功能
  3. 8.非关系型数据库(Nosql)之mongodb的应用场景(关系型数据库 和 Mongodb进行CRUD时数据用时的比较)
  4. 杀毒软件对Platform Builder编译的影响
  5. Effective C++ .07 virtual析构函数的提供
  6. 一个表单同时向两个页面传值
  7. 最强大的人工智能系统 | NVIDIA DGX-2
  8. 分享我的学习方法——还是坚持+努力
  9. python3 threading.lock_python3爬虫lock如何有序的处理多线程?
  10. TensorFlow在美团外卖推荐场景的GPU训练优化实践
  11. 单片机定时报警C语言程序,单片机控制的简易定时报警器电路设计( - 控制/MCU - 电子发烧友网...
  12. rbw数字信号处理_基于FPGA的数字中频信号处理的设计与实现
  13. Win8 MSDN 简中/繁中/英文正式版下载(微软官方原版)
  14. 【SQL基础】SQL查询语句实例
  15. java 检测表情符号_java判断字符串是否是QQ表情
  16. html中名词解释,HTML相关名词解释
  17. npm安装报错(npm ERR code EPERM npm ERR syscall mkdir npm ERR path CProgram Filesnodejsnode_ca...)
  18. 五月的庐州城《柳絮》
  19. Elasticsearch中object类型与nested类型之间的区别
  20. 反距离加权matlab算法,ImageWarping变形算法研究---反距离加权插值(IDW)

热门文章

  1. 微电网经济调度(风、光、柴油机、蓄电池、电网交互)(Matlab代码实现)
  2. 编译内核时出现bad register name `%dil'错误
  3. win10如何开启自带的虚拟机?
  4. 第七章 卷积神经网络2(代码实现)
  5. c语言三日通 下载,sama
  6. 终于明白了异地恋为什么那么难
  7. svn checkout 忽略某个文件夹
  8. 【二】分布式训练---参数服务器训练(飞桨paddle1.8)
  9. 语法长难句-----简单句
  10. 为视图或函数指定的列名比其定义中的列多。