USB On-The-Go 技术概述

发布者:廿由人最新更新时间:2012-11-06 来源: 21ic 关键字:USB  On-The-Go  OTG 手机看文章 扫描二维码
随时随地手机看文章
USB的广泛应用使其正在成为外设与PC机及膝上型电脑连接的工业标准。USB外设主要是便携式设备,随着其数量的不断增多,设备之间无主机参与的直接通信成为亟待解决的问题。我们开发了基于USB总线(接口芯片为Philips公司的PDIUSBD12)的数据采集系统,取得了满意的效果。但在开发USB1。1设备时遇到的设备互连直接通信的要求,一直由于USB主机/设备结构的制约没有理想的解决方案。USB2。0虽然在速度等方面有很大的改进,但同样要依赖计算机主机进行通信。  2001年底,USB开发者论坛(USBImplementersForum,USBIF)发布了专门用于USB外设间"可移动互连"的USB2。0补充规范USBOn-The-Go,其目标是使外设以主机的身份和另外特定的一组外设直接通信。本文中归纳USB2。0补充规范OTG的相关技术,并主要讨论其新增特性。

1新的协议

OTG补充规范对USB2。0的最重要的扩展是其更具节能性的电源管理和允许设备以主机和外设两种形式工作。OTG有两种设备类型:两用OTG设备(Dual-roledevice)和外设式OTG设备(Perip-heral-onlyOTGdevice)。两用OTG设备完全符合USB2。0规范,同时它还要提供有限的主机能力和一个MiniAB插座、支持主机流通协议(HostNegotiationProtocol,HNP),并和外设式OTG设备一样支持事务请求协议(SessionRequestProtocolSRP)。当作为主机工作时,两用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从机(指外设式设备或者以外设方式工作的两用OTG设备,又称B-device,此处指后者)请求A-device重新使能VBUS,而后A-device使用HNP协议交换两个设备的工作方式,这两步完成后由新的OTG主机开始事务传输。B-device可在前一事务结束2ms后的任意时间开始SRP。

B-device将先后执行数据线脉冲调制(data-linepul-sing)和VBUS脉冲调制(VBUSpulsing)。它通过使能数据线上拉电阻(全速和高速设备为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协议的特征称为“NoSilentFailure”。

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挂起总线。

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连接器

USBIF在OTG中定义了更小的连接器,可以同时用于主机式和外设式的设备、具有更低的电源需求、扩展的电源保护模式和利于上层软件开发的简洁设计。

OTG和现有的USB2。0规范完全兼容,一个主要的机械上的改进是它的新式连接器。USB2。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则使该脚断开,这样两用设备便可识别连接设备的类型以决定设备的默认角色。[page]

Mini-A和Mini-B插头是严格配对适用的,如:不能将Mini-A插头和Mini-B插座配合使用。但是,Mini-AB插座适合于以上两种插头。在外形上,Mini-A更接近于椭圆形,而Mini-B更接近于正方形。另外,他们的插头和插座内部的塑料都有颜色:Mini-A为白色,Mini-B为黑色,Mini-AB为灰色。

2。2电缆

USB2。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插头的适配器。

3USBOn-The-Go设备类型

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

3。1两用OTG设备

两用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-onlyOTGdevice)

外设式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目标设备的列表,列表中包括设备的类型和制造商等信息。USBIF正计划定义"OTGType"规范。对于符合此规范的设备,OTG主机只需提供一个驱动程序即可,这将使OTG主机无需为每个设备提供单独的驱动程序,从而支持尽量多的OTG外设。

与PC机不同,OTG两用设备的驱动程序栈由USB主机栈和USB设备栈构成以满足两种工作方式的需要。OTG驱动程序通过连接器的不同或者是否有HNP交换设备的工作方式来决定使用USB主机栈还是USB设备栈。

当OTG两用设备以主机方式工作时,USB主机栈工作。其中的主机控制器驱动程序负责USB主机栈与硬件端点的数据交换,USB驱动程序枚举并保存设备的信息,目标外设主机类驱动程序支持目标设备列表里的设备。主机类驱动程序由芯片制造商提供,同时,OTG提供通用的主机类驱动程序(可以修改以用于非通用设备)。

当OTG两用设备以从机方式工作时,USB设备栈工作。其中的设备控制器驱动程序负责USB设备栈与硬件端点的数据交换,USB协议层负责处理USB协议规范,设备类驱动程序的功能取决于该两用设备的功能(如数码照相机、存储设备、打印机等)。

OTG驱动程序负责处理两用OTG设备的工作方式转换,同时,它还可以返回其结果(如设备是否支持HNP)并处理总线错误。应用层程序通过OTG驱动程序开始或者结束一个传输事务,通过USB主机栈或设备栈与硬件层交换数据。

5数据流模型

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

USB接口层为OTG主机和OTG设备提供物理连接,USB系统软件使用主机控制器来管理主机与USB设备的数据传输。USB系统软件相对于主机控制器而言,处理的是以客户角度观察的数据传输及客户与设备的交互。USB设备层为USB主机系统软件提供一个可用的逻辑设备。主机通过与之功能匹配的客户软件实现其各种功能。

OTG设备与以往的USB设备一样由两种通道:数据流通道和消息通道。数据流通道没有定义好的结构,而消息通道则有固定的结构。但是,每个通道都有一定的带宽、传输类型、传输方向和缓冲区大小。自供电设备配置一个默认的控制通道,由它提供该设备的配置和状态等信息。

USBOTG规范是USB2。0规范的补充而不是替代品。PC主机和标准外设并没有被取代,因为新的OTG仅适用于需要具有主机功能和更小体积的便携式设备。OTG在这些外设间引入了点对点的(point-to-point)通信方式,这使得便携式仪器的发展有了更加广阔的空间。USBOTG已受到Cypress等芯片供应商、软件开发商和设备制造商的广泛支持,OTG不久将会成为新一代的"移动计算"解决方案。
关键字:USB  On-The-Go  OTG 引用地址:USB On-The-Go 技术概述

上一篇:数字机顶盒的架构与设计关键
下一篇:基于ST40GX1与STi5514的网络交互式数字电视机顶盒硬件设计

推荐阅读最新更新时间:2024-05-02 22:25

stm32 usb枚举过程
[单片机]
首款USB 3.0视频采集盒选用赛普拉斯EZ-USB FX3控制器
2012 年 8 月 6 日,北京讯,加州圣何塞讯——赛普拉斯半导体公司(纳斯达克股票代码:CY)日前宣布台湾业界领先的音频/视频设备制造商聪泰科技在其 UB530 USB 3.0 高清 (HD) 视频采集盒中选用了赛普拉斯的 EZ-USB® FX3™ 控制器。UB530 可存储来自包括机顶盒、媒体播放器、高清摄像机和游戏机等各种来源的视频。赛普拉斯的 FX3 解决方案则可提供 USB 3.0 设备桥接器,能够支持 5 Gbps 的全高清数据传输流。 EZ-USB FX3 是业界唯一一款可编程的 USB 3.0 外设控制器。它采用了完全可配置的通用可编程接口 (GPIF™ II),可进行 8 位、16 位和 32 位的配置编程,
[传感器]
VirtualLink联盟推出统一USB-C VR单线缆连接标准
由AMD、英伟达、Oculus、Valve 和微软等公司组成的联盟 VirtualLink 日前宣布推出PC VR的开放式行业连接标准,VR头戴式设备与PC之间的连接线将统一为单根 USB-C 线缆,简化连接方式,不再需要多根转接线。 VirtualLink推出的新标准让VR 头显可以基于更小巧的设备,比如笔记本电脑、平板电脑等这类提供单一 USB-C 接口的设备之上运行。规格包括支持4跟独立的高速HBR3 DP线路、USB3.1通道为摄像头和未来VR头显的自我追踪传感器传输数据,并提供27W的电源供应。这一标准将应用于下一代PC VR设备,或者未来的混合现实平台。
[嵌入式]
VirtualLink联盟推出统一<font color='red'>USB</font>-C VR单线缆连接标准
嵌入式USB主机扩展应用
  1 综述   移动数据交换和存储,是近年来IT行业的热点。如今,各式各样的移动存储有如雨后春笋般出现。从最早的存储量为几K、能存储用户个人信息的USB小钥匙,到容量可与PC硬盘媲美的USB活动硬盘,再到以Flash作为存储介质的真正能够“移动”起来的USB闪盘和优盘,直到今天大量的PC外设和多媒体家电中大量使用的数据存储器……可见,数据交换的可移动性和便捷性是整个数字化时代大厦的根基。移动数据交换刺激了IT业的发展,便利了人们的生活。   与此同时,我们还应注意到这样一个问题:移动数据交换业,是伴随着通用串行总线(Universal Serial Bus,简称为USB)的成熟而兴起的。USB既是数据交换的媒介,又是其核心。可以这
[嵌入式]
基于USB接口的多节点无线测温系统
1 引言 温度监测在土木建筑施工、储粮仓库、智能楼宇、空调系统以及其他工农业生产中有着广泛的应用。传统的测温方法是在各监测点布置温度探头,由专人每天定时采集各点的温度数据,再输入电脑保存,并生成温度、应力的变化曲线和测试报告,也有一些是通过数据采集箱采集温度和应力数据,然后通过电缆上传电脑做进一步的数据处理。 传统的测量方法需要监测人员频繁来往于施工现场,劳动强度大,数据采集和传输不方便,信息管理的自动化程度低,难于满足现代信息化监测的要求。为了提高测温数据采集的准确性、可靠性、及时性,同时实现温度和应力数据的智能化、信息化管理,本文针对大规模建筑施工监测等工程应用的要求,设计了一种基于无线数据传输和USB接口的多节点远程温度
[测试测量]
基于<font color='red'>USB</font>接口的多节点无线测温系统
基于C8051F系列单片机的数据采集系统USB接口设计
1 引言 随着现代工业生产和科学研究对数据采集系统的要求日益提高,传输速度、纠错能力和操作安装的简易性是人们进行采集数据时一直关注的问题,这使得数据通讯技术不可避免地成为了其中的关键技术,而数据采集系统采用何种接口进行数据通讯是影响系统整体效率的重要因素之一。USB(通用串行总线)总线接口技术由于具有速度快、设备安装和配置容易、易于扩展、能够采用总线供电及使用灵活等优点,已逐渐成为现代数据传输的发展趋势[1-5]。 本文给出了一种基于C8051F320的数据采集系统USB 接口设计方案,完成了USB 接口硬件电路设计和软件程序开发,并将其应用到仓库视频监控系统中,实现了快速、方便的数据采集和传输。 2 C8051F320
[单片机]
基于C8051F系列单片机的数据采集系统<font color='red'>USB</font>接口设计
U盘启动Ubuntu的Live USB
        也许你 已经使用过或者听说过 Linux的Live CD,通过一张Live CD,你既可以用来安装Linux,还可以将Linux加载到内存上,从而实现一些特殊的功能,比如:在Linux系统无法引导时,通过Live CD可以实现对引导的修复;比如:在系统崩溃后,通过Live CD进入系统转移重要数据……       可是你在感慨Live CD的好处的同时,也能感受到它的不方便?       1.机器没有光驱;       2.携带不方便;       3.Linux版本更新很快,每更新一次,都得重新刻录光盘;       4.光盘的内容不能修改;       没错。Live USB!将Live C
[嵌入式]
12-S3C2440驱动学习(九)嵌入式linux-USB驱动程序(未完待续)
1、学习思路 一个USB设备插入到系统中时,会被系统识别出USB设备,并通过系统上的USB总线驱动程序通过约定好的规范询问USB设备的信息(描述符),如设备名称。USB总线驱动程序负责:识别USB设备,给USB设备找到对应的驱动程序(自己开发)。USB设备通过约定好的规范,把描述符发送给USB总线驱动程序。 问1. 既然还没有 驱动程序 ,为何能知道是 android phone 答1. windows里已经有了USB的总线驱动程序,接入USB设备后,是 总线驱动程序 知道你是 android phone ,提示你安装的是 设备驱动程序 。 问2. USB设备种类非常多,为什么一接入电脑,就能识别出来? 答2.
[单片机]
12-S3C2440驱动学习(九)嵌入式linux-<font color='red'>USB</font>驱动程序(未完待续)
热门资源推荐
热门放大器推荐
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved