USB OTG有关协议
想了解USB OTG的工作原理,需要知道三个协议:
- ADP:Attach Detection Protocol
- HNP:Host Negotiation Protocol
- SRP:Session Request Protocol
本文引用地址:http://www.eepw.com.cn/article/201612/329123.htm
ADP
USB主从设备或USB OTG设备,如何知道USB总线上有没有挂接其它USB设备呢?USB设备会周期性地检测USB端口的电容值,如果USB端口电容值变化足够大,大到可以确定有新的USB设备接入了,那么USB A型设备会为USB总线提供电源,并检测设备连接;而USB B型设备则发起一个会话请求(SRP),并等待A型设备的响应。
HNP
主从设备是如何确定的?
USB OTG既可以做主设备,也可以做从设备。在系统运行过程中,OTG设备的角色(主设备or从设备)可以转换,但是,在系统刚启动时,OTG设备的角色是确定的。如何确定的呢?下面来解决这个问题

上图是几种典型的USB接口,其中Mini-A型、Mini-B型、Micro-AB型和Micro-B型口都有五个管脚,管脚顺序是
1:Vbus
2:D-
3:D+
4:ID
5:GND
若是ID管脚接地,则该设备为A设备;若ID管脚悬空,则该设备是B设备,其中A设备是initial host,B设备是initial peripheral。即系统刚启动时,A设备是主设备,B设备是从设备。
如下图所示,左边的设备是B设备,右边的USB设备是A设备。

值得注意的是,在系统运行的过程中,USB设备的主从角色可能会变化,但是A设备/B设备的名称不会变化。也就是说,在系统运行过程中,A设备有可能从主设备变成从设备,但是A设备仍然叫做A设备;B设备类似。
另外,A设备始终是供电设备,而与A设备扮演的角色无关。即使A设备变成了从设备,仍然由A设备供电。
为什么需要更换主从设备的角色呢?

上图为一个需要互换角色的例子。左边是一台PDA,PDA里有打印机驱动,但由于它是B设备,因此初始角色是从设备。很显然,在打印服务的过程中,有必要互换PDA和打印机的角色。
我们在开发i.MX233开发板的过程中,ID管脚没有引出来,因此,默认i.MX233是从设备。可是USB摄像头也是从设备,这样i.MX233没有办法转换成主设备,从而i.MX233无法使用USB Camera。
SRP
正如刚刚提到的那样,A设备一直供电,即使A设备通过HNP协议由主设备变成从设备了,也一直由A设备供电。然而,在嵌入式系统里,尤其是只有电池供电的系统里,功耗是一个很重要的性能指标。A设备可以通过停止供电终止会话,进而降低功耗。这样就产生了一个问题:如果B设备要求开启一个会话,该怎么办?
SRP可以解决这个问题。根据SRP,B设备可以请求A设备打开电源,开始一个会话(session)。

如上图所示,B设备中的SRP PULSE会先给D+引脚一个脉冲,之后再给VBUS一个脉冲,这样可以唤醒A设备。相应的,右边的A设备检测到D+或VBUS上的信号,则开启VBUS并启动会话。
USB OTG有关协议的更多相关文章
- 详述USB OTG发展及协议标准
USB On-The-Go 扩大了USB 的应用领域,将USB 从传统的PC 与外设通讯的模式,扩展到移动电子和嵌入式领域中,抛开主机PC,实现通常的外设与外设之间点对点(Point to Point ...
- USB otg 学习笔记
1 USB OTG的工作原理 OTG补充规范对USB2.0的最重要的扩展是其更具节能性的电源管理和允许设备以主机和外设两种形式工作.OTG有两种设备类型:两用OTG设备(Dualrole device ...
- USB OTG介绍(转载)
1. 概要 OTG设备使用插头中的ID引脚来区分A/B Device,ID接地被称作为A-Device,为连接时候的USB Host,A-Device始终为总线提供电力,ID悬空被称作为B-Devic ...
- USB OTG学习
1. 概要 OTG设备使用插头中的ID引脚来区分A/B Device,ID接地被称作为A-Device,为连接时候的USB Host,A-Device始终为总线提供电力,ID悬空被称作为B-Devic ...
- USB OTG简单介绍
1 引言 随着USB2.0版本号的公布,USB越来越流行,已经成为一种标准接口.如今,USB支持三种传输速率:低速(1.5Mb/s).全速(12Mb/s)和快速(480Mb/s),四种传输类型:块传输 ...
- USB OTG简要
1 介绍 随着USB2.0发布版本号,USB更受欢迎.它已成为一种标准接口.现在,USB它支持三种速度:低速(1.5Mb/s).全速(12Mb/s)速(480Mb/s),四种传输类型:块传输.同步传输 ...
- USB OTG简介、与普通USB线的区别
USB有三类接口A类接口 -----------最常见的扁平接口,四芯 VCC GND D+ D- B类接口 ...
- USB OTG原理+ ID 检测原理
OTG 检测的原理是: USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG).USB OTG技术可实现没有主机时 ...
- USB OTG简单介绍、与普通USB线的差别
USB有三类接口A类接口 -----------最常见的扁平接口,四芯 VCC GND D+ D- B类接口 ...
- [RK3288][Android6.0] USB OTG模式及切换【转】
本文转载自:https://blog.csdn.net/kris_fei/article/details/78620960 Platform: RK3288 OS: Android 6.0 Kerne ...
随机推荐
- RT-Thread内存管理
一.内存管理的特点 分配内存的时间必须是确定的.一般内存管理算法是根据需要存储的数据的长度在内存中去寻找一个与这段数据相适应的空闲内存块,然后将数据存储在里面.而寻找这样一个空闲内存块所耗费的时间是不 ...
- AI实战 | 手把手带你打造智能待办助手
背景 大家好,我是努力的小雨.今天我想分享一下搭建待办助手的经历.起初,我并没有什么特别的创意点子.但在4月16日的百度Create大会上,我看到了小度的大模型加持使得其变得更加智能.我被一场示例所震 ...
- Gparted扩展硬盘空间
需求:有一些磁盘占满了空间,例如/亦或者/opt目录等.可以通过Gparted扩展空间. 1.vmware添加ISO [添加光盘]gparted-live-cd添加至ISO 2.延迟引导启动,强制进入 ...
- MySQL:根据指定日期加365天,当前时间距离明年的指定的日期还有多少天-SQL
一.数据准备 /* Navicat Premium Data Transfer Source Server : songweipeng Source Server Type : MySQL Sourc ...
- postgresql 去重&查最新一组记录 关键词partition by
- postgresql性能优化3:分区表
一.分区表产生的背景 随着使用时间的增加,数据库中的数据量也不断增加,因此数据库查询越来越慢. 加速数据库的方法很多,如添加特定的索引,将日志目录换到单独的磁盘分区,调整数据库引擎的参数等.这些方法都 ...
- EasyExcel处理Mysql百万数据的导入导出案例,秒级效率,拿来即用!
一.写在开头 今天终于更新新专栏 <EfficientFarm> 的第二篇博文啦,本文主要来记录一下对于EasyExcel的高效应用,包括对MySQL数据库百万级数据量的导入与导出操作,以 ...
- 基于 three.js 加载器分别加载模型
点击查看代码 /** * 参数:模型文件路径,成功回调函数 * * 基于 three.js 加载器分别加载模型 * * 全部加载后通过回调函数传出打印 */ import { FBXLoader } ...
- Django国际化与本地化指南
title: Django国际化与本地化指南 date: 2024/5/12 16:51:04 updated: 2024/5/12 16:51:04 categories: 后端开发 tags: D ...
- Angular等了三年,那个她已经来了
Angular生态丰富,功能强大,支撑了许多大型项目的开发.而且一直在前方等待着其他框架跟上.但是不得不直面的一个问题就是:"在等待其他框架跟上的这三年",Angular在陆陆续续 ...