USB-OTG


基本类容转自http://blog.youkuaiyun.com/uranus_wm/article/details/9838847

常见的USB接头如下所示:



一 USB引脚一般四根线,定义如下:


为支持OTG功能,mini/micro usb接口扩展了一个ID引脚(第4脚)

A设备端ID脚接地,则初始状态为Host,例如PC和支持OTG设备做主设备时

B设备端ID脚悬空,默认上拉为高电平,则初始状态为Device,例如U盘和支持OTG设备做从设备时

1. 移动设备如需支持OTG,内部ID引脚需要默认上拉为高

2. VBUS是输入输出双向引脚。对于Device是power supply输入脚;对于Host需要串一个5V电源输出给device。


二 USB插入检测过程,看下面一个简单电路,Samsung Exynos4412平台:


电路描述:CON1为micro usb连接器,VBUS连接系统XuotgVBUS脚,同时提供一个中断输出脚到XEINT28

同时外部一个DC5V经过控制芯片也输出到XuotgVBUS,作为host时需要用到给外部供电

ID脚上拉1.8V作为Host/Slave检测,同时提供另一个中断输入脚到XEINT29

 

该设备支持OTG,下面说下设备的发现过程:

作为从设备插入PC端口时:

1.  系统检测到VBUS上的XEINT28上升沿触发中断,因为PC端会有一个5V从VBUS给过来,进入中断处理函数进一步确认ID脚状态,ID脚为低则状态错误,ID脚为高表示设备应该切换到从设备模式

2. 通知usb gadget使能vbus,按照device模式使能PHY。gadget在probe时注册了一个SPI软中断IRQ_USB_HSOTG,用于响应数据接收

3. 开启usb clk,使能PHY,此时外部5V电源供给系统XuotgVBUS,gadget收到IRQ_USB_HSOTG中断要求重启OTG core

4. USB DP(高速设备为DP,低速设备为DM)上产生一个高电平脉冲,此时PC识别到一个USB设备插入,windows会提示用户

5. 后续就是SETUP,GET DISCRIPTOR的过程

 

作为主设备发现设备插入时:

1. 系统检测到ID脚上XEINT29下降沿触发中断(实际是插入的usb公口第四脚直接连接到第五脚地上面),进入中断处理,切换到主设备模式

2. 关中断,使能DC5V给VBUS上电,唤醒ehci与ohci

3. usb core在内核初始化时注册了一个名为khubd的内核线程,由khubd监控port event。(实际过程我理解是从设别由VUBS供电后,会在DP或DM上产生一个高电平脉冲

ehci在接收到脉冲信号后识别到设备插入,仅仅是理解,这一点未验证)

3. khubd获取port,speed后交给ehci,接下来就是usb的SETUP,GET DISCRIPTOR过程




http://blog.youkuaiyun.com/uranus_wm/article/details/9838847

03-16
<think>好的,我现在要解决用户关于USB-OTG功能和使用方法的问题。首先,我需要回顾用户提供的引用资料,确保信息的准确性。根据引用[1]和[2],USB-OTG的关键在于USB_ID引脚的状态变化和OTG_PWR_EN的控制。引用[3]解释了OTG的基本概念,即主机协商协议(Host Negotiation Protocol),允许设备切换主机和外设角色。 接下来,我需要将USB-OTG的功能分解成几个部分。首先是原理部分,要说明USB_ID如何检测设备类型,以及如何通过拉高或拉低来判定主机或从机模式。然后是硬件连接部分,需要提到Micro-USB接口的结构,特别是第四脚(USB_ID)的作用,以及如何通过外部电路控制供电。 使用方法方面,用户可能需要知道具体的步骤,比如连接线缆的类型、如何切换模式,以及实际应用场景,比如连接U盘或键盘。同时,注意事项也很重要,比如供电限制和兼容性问题,这些都需要在回答中提到。 另外,用户可能对如何开启设备的OTG功能有疑问,虽然不同设备操作不同,但可以建议查看系统设置或开发者选项。最后,生成的相关问题要覆盖原理、硬件设计、协议差异和应用实例,帮助用户进一步探索。 需要确保回答结构清晰,分点说明,并正确引用提供的资料。同时,避免使用专业术语过多,保持语言通俗易懂。检查是否有遗漏的信息,比如主机协商协议的具体过程,是否需要更详细解释?可能简要提及即可,因为引用[3]已经提到允许设备协商角色。 最后,验证所有LaTeX格式是否正确,特别是行内公式是否用$...$,独立公式是否用$$...$$,但在这个回答中可能不需要数学公式,所以主要检查引用标记是否在正确位置,例如[^1]、[^2]、[^3]是否对应正确的引用内容。</think>### USB-OTG功能与使用方法 #### 一、功能概述 USB-OTG(On-The-Go)是一种扩展了传统USB主从架构的技术,允许设备动态切换**主机(Host)**和**从设备(Device)**角色。例如,手机可通过OTG作为主机连接U盘读取数据,或作为从设备连接电脑传输文件。 #### 二、工作原理 1. **角色检测** - 通过USB接口的**USB_ID**引脚电平判断设备角色:若USB_ID接地(拉低),当前设备为**从设备**;若悬空(默认高电平),则作为**主机**。 - 主机模式下,需通过**OTG_PWR_EN**引脚控制外部供电电路,为连接的从设备提供5V电源(USB_VBUS)。 2. **主机协商协议(HNP)** 设备间通过HNP协议自动协商主从关系。例如,手机连接打印机时,若打印机不支持主机模式,手机会主动切换为主机。 #### 三、使用方法 1. **硬件准备** - 使用**Micro-USB/Mini-USB OTG转接线**,确保接口支持USB-ID引脚检测(标准OTG线需将USB_ID引脚接地)。 - 连接外设(如U盘、键盘等)时,需确认设备供电需求。大功率设备(如移动硬盘)可能需要外接电源。 2. **操作步骤** -OTG线插入设备(如手机)。 - 连接外设(如U盘),系统自动检测并切换为主机模式。 - 通过文件管理器访问外设数据,或通过设置启用特定功能(如鼠标控制)。 3. **典型应用场景** - 手机读取U盘、SD卡。 - 连接键盘/鼠标进行移动办公。 - 数码相机直接连接打印机传输照片。 #### 四、注意事项 1. 供电限制:OTG供电能力有限(通常≤500mA),高功耗设备需独立供电。 2. 兼容性:部分设备需手动开启OTG功能(如进入系统设置或开发者选项)。 3. 系统支持:Android 2.3及以上默认支持OTG,但部分厂商可能限制功能[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值