USB OTG的工作原理-相互切换和交互流程
OTG补充规范对USB 2.0的最重要的扩展是其更具节能性的电源管理和允许设备以主机和外设两种形式工作。OTG有两种设备类型:两用OTG设备(Dualrole device)和外设式OTG设备(Peripheralonly OTG device) 。两用OTG设备完全符合USB 2.0规范,同时,他还要提供有限的主机能力和一个MiniAB插座、支持主机流通协议(Host Negotiatio n Protocol, HNP),并和外设式OTG设备一样支持事务请求协议(Session Request Protocol, SRP)。 当作为主机工作时,两用OTG设备可在总线上提供8 mA的电流,而以往标准主机则需要 提供100~500 mA的电流。
2个两用OTG设备连接在一起时可交替以主机和从机的方式工作,这个特点兼容了现有USB 规范主机/外设的结构模型。OTG主机负责初始化数据通信的任务,比如:总线复位、获取USB 各种描述符和配置设备。这些配置完成后,2个OTG设备便可以分别以主机和从机方式传输信息,2个设备主从角色交换的过程由主机传输协议(HNP)定义。
设备的初始功能是通过定义连接器来实现的。OTG定义了一个叫做MiniAB的袖珍插孔,他能直接接入MiniA或者MiniB插口,MiniAB有一个ID引脚 上拉至电源端,MiniA插头有一个与地连接好的ID(R<10 Ω),Mini B插头有一个与地连接的开路ID引脚(R>100 kΩ)。当2个OTG设备连接到一起的时候 ,MiniA插头边的ID引脚会注入一个“0”状态,MiniB插头边的ID引脚为 “1”,ID为0的OTG设备默认为主机(Adevice),ID为1的OTG设备默认为从机(B device)。图1对上述内容进行了图解。
HNP是一种用来实现Adevice和Bdevice主机/从机转换的协议(实际上是电缆的反转)。主/从机功能交换的结果表现在下列过程中:
(1)利用上拉电阻来发送信号给从机。
(2)Adevice可在Bdevice上设置“HNP Enable”特性。
(3)Bdevice断开上拉。
(4)ADevice与上拉电阻相连,表明Adevice从属于从机。
(5)Adevice给Vbus供电。
(6)Bdevice检测Adevice的上拉。
(7)复位/列举/使用Adevice。
与PC主机不同,便携式设备没有便捷的方式和足够的空间装载新的驱动程序。因此,OTG 规范要求每个两用OTG设备有一个支持的外设式OTG目标设备的列表,列表中包括设备的类型和制造商等信息。
与PC机不同,OTG两用设备的驱动程序栈由USB主机栈和USB设备栈构成以满足两种工作方式的需要。OTG驱动程序通过连接器的不同或者是否有NHP交换设备的工作方式来决定使用USB主机栈还是USB设备栈。
当OTG两用设备以主机方式工作时,USB主机栈工作。其中的主机控制器驱动程序负责USB 主机栈与硬件端点的数据交换,USB驱动程序枚举并保存设备的信息,目标外设主机类驱动程序支持目标设备列表里的设备。主机类驱动程序由芯片制造商提供,同时,OTG提供通用的主机类驱动程序(可以修改以用于非通用设备)。
当OTG两用设备以从机方式工作时,USB设备栈工作。其中的设备控制器驱动程序负责USB 设备栈与硬件端点的数据交换,USB协议层负责处理USB协议规范,设备类驱动程序的功能取决于该两用设备的功能(如数码照相机、存储设备、打印机等)。
OTG驱动程序负责处理两用OTG设备的工作方式转换,同时,他还可以返回其结果(如设备是否支持HNP)并处理总线错误。应用层程序通过OTG驱动程序开始或者结束一个传输事务, 通过USB主机栈或设备栈与硬件层交换数据。
OTG主机和设备被划分为功能层、USB设备层和USB接口层3个不同层次,如图2所示。
OTG设备与以往的USB设备一样有两种通道:数据流通道和消息通道。数据流通道没有定义好的结果,而消息通道则有固定的结构。但是,每个通道都有一定的带宽、传输类型、传输方向和缓冲区大小。自供电设备配置一个默认的控制通道,由他提供该设备的配置和状态等信息。
一问一答:
USB OTG是USB 2.0的补充规范
2. USB OTG针对USB 2.0的最重要扩展是什么?
更具节能性的电源管理和允许设备以主机和外设两种形式工作。
3. USB2.0中定义三种类型: HOST(主机),Device(设备), HUB
OTG新增两种设备: Dual-role device(两用设备),Perip-heral-only OTG device(OTG外设)
4. USB 2.0中定义了三种连接器对(插头和插座): Standard-A(主机),Standard-B(外设),Mini-B(较小的外设)
OTG新增插头: Mini-A
OTG新增插座: Mini-A和Mini-AB(同时支持Mini-A或Mini-B的插头)
其中插头和插座内部的塑料颜色:Mini-A为白色,Mini-B为黑色,Mini-AB为灰色
5. USB 2.0中定义了两种电缆: Standard-A至Standard-B, Standard-A至Mini-B
OTG增加的两种电缆:Mini-A至Standard-B, Mini-A至Mini-B
6. OTG的Dual-role device(两用设备)必须具备:
1) 有限的主机能力
2) 可作为全速的外设(可选的高速方式)
3)可作为全速的主机(可选的低速或高速方式)
3) OTG目标设备的列表及驱动程序
4)支持SRP,HNP
5)一个Mini-AB插座
6)VBUS上不小于8mA的电流输出
7)与用户通讯的方式
7. Perip-heral-only OTG device(OTG外设):
1.是普通的USB外设
2. 支持SRP
3. 一个Mini-B插座(不能使用Mini-AB)
- Linux(52)
- Linux Kernel(12)
- C(6)
- Bootloader(4)
- Shell(10)
- English(4)
- USB(17)
- UVC(1)
- Embed(14)
- Images(19)
- TI Davinci(1)
- SVN(2)
- IT(6)
- Others(7)
- Samba(1)
- Resource(3)
- VIM(3)
- Live(8)
- Net(13)
USB OTG的工作原理-相互切换和交互流程相关推荐
- USB OTG的工作原理
USB OTG的工作原理 OTG补充规范对USB 2.0的最重要的扩展是其更具节能性的电源管理和允许设备以主机和外设两种形式工作.OTG有两种设备类型:两用OTG设备(Dualrole device) ...
- 什么是USB Server?工作原理是什么?
什么是USB Server?工作原理是什么? 什么是USB Server? USB Server:远程连接调用USB设备的.软硬件结合的.集中化,集群化的安全管控产品.主要解决企业在虚拟化.超融合架构 ...
- USB OTG ID 检测原理
OTG 检测的原理是: USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG).USB OTG技术可实现没有主机时 ...
- USB OTG的检测原理及使用
USB OTG标准允许设备既可作为主机,也可作为外设.USB OTG技术可实现没有主机时,设备和设备之间的数据传输. USB OTG接口中有5条线: 2条用来传输数据(D+.D-) 1条是电源线(VB ...
- ISP(图像信号处理)算法概述、工作原理、架构、处理流程
目录 ISP的主要内部构成:ISP内部包含 CPU.SUP IP(各种功能模块的通称).IF 等设备 ISP的控制结构:1.ISP逻辑 2.运行在其上的firmware ISP上的Firmwar ...
- 浏览器工作原理:浅析HTTP请求流程
一个 TCP 连接过程包括了建立连接.传输数据和断开连接三个阶段. 而 HTTP 协议,正是建立在 TCP 连接基础之上的.HTTP 是一种允许浏览器向服务器获取资源的协议,是 Web 的基础,通常由 ...
- USB HOST与 USB OTG的区别及工作原理
在SmartQ 7上面,同时存在USB HOST与 USB OTG两个接口,我想问一下,这两个接口有什么区别么?我怎么认为HOST属于是多余呢? 麻烦高手解答,感激不尽!!! 零 USB背景知识 US ...
- otg usb 定位_详解USB OTG工作原理及其应用
原标题:详解USB OTG工作原理及其应用 1994年,Intel,Compaq等七家软硬件全球知名企业为了突破当时PC使用串口和并口传输速度的限制,成立了通用串行 开发者论坛( Implemente ...
- USB OTG原理+ ID 检测原理
OTG 检测的原理是: USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG).USB OTG技术可实现没有主机时 ...
最新文章
- C++/C++11中用于定义类型别名的两种方法:typedef和using
- Windows API一日一练(一)第一个应用程序 使用应用程序句柄 使用命令行参数 MessageBox函数 RegisterClass和RegisterClassEx函数
- phpstrom安装bootstrap3插件
- 18秋学期计算机基础在线作业2,东大18秋学期《计算机应用基础》在线作业2.pdf...
- SAP CRM Fiori应用 my Opportunity的扩展
- PHP类参数_PHP依赖注入的含义
- 用于RIA的JavaFX 2与HTML5
- Redis整合Springboot实现单机配置
- 语音识别插件_AnsweringMachine XS: 越狱理由之二,iPhone 电话语音答录机
- 计算机中那些事儿(八):再历装系统之终身学习
- Cobbler安装指南
- mysql 创建用户命令-grant
- 凸优化第九章无约束优化 9.3梯度下降方法
- lgg7刷机包下载_LGG7One刷机包
- 税控盘查看服务器设置的网站,税控盘服务器地址
- 使用 Python 制作黑白照片生成器
- Base64编解码及其C++实现
- ERROR: sdl2 requested but not found
- 怎么免费注册微信小程序-微信小程序开发-视频教程1
- uni-app使用 getUserInfo 报错 fail can only be invoked by user TAP gesture 解决方法