USB OTG插入检测识别

转载请标注原文地址:http://blog.csdn.net/uranus_wm/article/details/9838847

 

一 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过程


  • 19
    点赞
  • 123
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
MTK OTG(On-The-Go)识别流程是指在MTK芯片手机上,如何实现对外部设备的识别和连接。OTG功能允许手机直接连接其他USB设备,这样可以实现数据传输和设备控制。 MTK OTG识别流程如下: 1. 初始化:手机插入USB OTG适配器后,系统会先进行初始化,确认OTG功能是否可用。 2. 检测外部设备:系统会检测插入的设备类型,并判断其是否是支持的OTG设备。 3. 供电设置:如果外部设备支持OTG,则系统会设置合适的供电模式,以确保设备可以正常工作。 4. 设备驱动加载:系统会根据外部设备的类型,加载相应的设备驱动。 5. 设备识别:系统会通过设备驱动识别外部设备,并获取设备的一些基本信息,如设备ID、制造商等。 6. 连接确认:系统会确认设备是否可正常连接,以及支持的功能和参数。 7. 用户确认:如果设备需要用户交互或权限确认,系统会提示用户是否接受连接。 8. 数据传输:如果连接成功,系统可以通过OTG接口与外部设备进行数据传输和交互。 9. 断开连接:当外部设备拔出时,系统会断开与设备的连接,并释放相应的资源。 总的来说,MTK OTG识别流程是通过系统的初始化、设备检测、供电设置、驱动加载、设备识别、连接确认、用户确认、数据传输和断开连接等一系列步骤来实现对外部设备的识别和连接。这样手机可以方便地连接各种类型的外部设备,提供更多的功能和扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值