USB host、usb device、USB OTG的判断

  • 经典博客
  • 概念
    • host、device
    • OTG
  • 识别
    • host、device
    • OTG
  • 实际开发中遇到的问题
  • 总结

经典博客

文章 链接
OTG数据线与普通USB数据线有什么区别? https://www.jb51.net/shouji/332556.html
USB OTG简介、与普通USB线的区别 https://blog.csdn.net/mao0514/article/details/46345861
linux usb驱动——host与device电路 https://www.cnblogs.com/mahj/p/8480085.html
开机自动打开USB调试模式和配置android为USB OTA模式 https://blog.csdn.net/longkg/article/details/8626271
USB HOST与 USB OTG的区别及工作原理 https://blog.csdn.net/rainbowbirds_aes/article/details/86557077
RK平台下USB_OTG提供的接口和返回的状态 https://blog.csdn.net/wangubuntu/article/details/17723793
USB Host、USB Device和USB otg的理论简析 https://blog.csdn.net/DIYfashaoyou/article/details/49895111

概念

host、device

usb协议中,设备连接是主从模式,具体定义自行了解usb协议,比较直观的认识,如下:

USB Host是指驱动过后,板子就可以连接USB接口连接的器件,读取和装载数据了。
USB Device是指驱动过后,板子可以当做一个USB移动设备,通过USB连接到电脑上,类似U盘
OTG

手机只有一个外接usb口,为了方便用户使用,如otg上插上一条可以支持U盘插入的线,手机就可以直接访问U盘的内容,不需要经过PC,手机给外设供电。若手机连上PC,PC上的usb口基本为host端,为方便使用,手机端作为device端比较方便合理。因此手机端的usb支持host、device模式的自动切换。OTG即是增加了host、device协商机制的usb口。

识别

host、device

host、device的电路设计不同,定义好角色后不可以转变。如果需要转变,就是下面介绍的OTG。
分别的电路图见上面博客介绍。在实际使用中,若无客制化需求,在linux开发中,驱动都是已经有的。

各自的角色在设备上电后,根据电路自行执行确定的角色驱动。

OTG

otg数据线设计比普通的usb数据线多了一条ID线。OTG连接如下:

OTG口就是手机端的充电口,usb口接入PC后连接U盘。

usb口接上设备后,在otg口端检测ID脚的电平高低,OTG决定作为host或device端。若id脚为低电平作为host端,对外供电;若id脚悬空,则作为device端。详见博文《https://blog.csdn.net/mao0514/article/details/46345861》。

实际开发中遇到的问题

rk3288平台与linux设备,两个设备连接,android端打开rndis。换了一个设备后,一样的连接,发现rndis开关为灰色,也即没有rndis设备被识别到。为什么?
硬件把另外一端的usb连接线的DET脚电平拉高供电,就能正常使用。

分析OTG的定义,此处otg端作为了device端。从android设备命令查看:

cat /sys/bus/platform/drivers/usb20_otg/force_usb_mode

值为2,确实被作为device端了。这时通过命令

echo 1 > /sys/bus/platform/drivers/usb20_otg/force_usb_mode

把otg口设置为host端,rndis也无法识别,说明对端就是host端,host与host端是不能通信的。

总结

usb协议只能是host与device间通信。若不能通信,两端都是device或都是host。非OTG口是不能动态设置usb口为host端或者device端,一个确定的开发板,usb的角色由设计电路决定。按照usb协议定义的电气标准,通用usb驱动会自动适配usb驱动。

USB host、usb device、USB OTG的判断相关推荐

  1. android usb host hid,Android USB Host与HID通讯

    前端时间捣鼓一个HID的硬件, 需要和android通信, 网上搜索了一圈,收获不小. 其中代码之处有些地方需要注意的, 特此注明一下: /*** USB HOST 连接 HID *@authorIV ...

  2. 网络摄像头转usb接口_Arduino + USB Host Sheild 实现USB鼠标转PS/2接口

    制作缘由 公司内网只有PS/2接口,希望可以使用无线鼠标(貌似没有PS/2接口的).而那种USB转PS/2的转接头只是简单的连线,需要键盘或鼠标本身支持PS/2模式才可以正常工作,现代的USB鼠标接收 ...

  3. usb host 驱动 - device 拔插

    1. usbhid 设备拔插 1.1 usb device disconnect 1.1.1 上层卸载usb 设备驱动 生成应用通过ioctl 卸载usb 设备. [ 709.471619] [T29 ...

  4. 关于usb host和device 相关内容网址

    1.USB+HOSTDEVICE控制器的设计与验证: http://wenku.baidu.com/link?url=5HsA8qaSWFqpUEseNb9U9YC3fbRmrhb5IkTuZJByv ...

  5. linux usb host复位,Linux USB Host-Controller的初始化代码框架分析

    Linux USB Host-Controller的初始化代码框架分析 http://blog.csdn.net/zkami usb_hcd_omap_probe (const struct hc_d ...

  6. S3C2440 WINCE6将USB DEVICE改成USB HOST,实现两个USB HOST

    S3C2440一般默认的是一个USB DEVICE,一个USB HOST,即一个主口,一个从口,先来看看USB Device与USB Host相关知识. USB Host: 最底层就是USB Host ...

  7. USB学习6---Linux Android USB软件架构设计

    下面学习针对高通平台的HS-USB(HS:high speed高速)堆栈(stack)软件架构设计和源代码布局的细节. Android HS-USB堆栈基于下面几点: Gadget driver fr ...

  8. USB Host Device And OTG

    USB是一种数据通信方式,也是一种数据总线,而且是最复杂的总线之一.  硬件上,它是用插头连接.一边是公头(plug),一边是母头(receptacle).例如,PC上的插座就是母头,USB设备使用公 ...

  9. Android + kernel USB host 如何判断插入的设备是高速还是低速的设备

    d+      d- 0        0         PC 0        1         错误设备 1        0         非标准充电器 1        1        ...

最新文章

  1. 【ACM】杭电OJ 2019
  2. mybatis配置文件不在resources目录下时需进行的额外配置方法
  3. 【数据字典】国标数据字典
  4. Windows 活动目录(AD)服务器系统升级到2012之升级完成后工作(八)
  5. 配置hibernate_测试Hibernate的最低配置
  6. POJ1177 Picture 线段树+离散化+扫描线
  7. Convert、Parse、TryParse、(int)等区别(细节小记)
  8. fameview搅拌机控件_搅拌机爱好者齐聚第十五届年会
  9. 数据科学入门与实战:玩转pandas实战项目分析航班晚点情况
  10. virtual 关键字以及虚函数的介绍
  11. 2000年建模b题matlab,2013数学建模B题matlab代码
  12. 中国被动元件市场规模调研与发展趋势预测报告2022版
  13. 阿里云网站域名备案流程全过程(图文讲解)
  14. 合并报表口诀_《中级会计实务》合并报表学不会?据说把他的讲义抄6遍就能过!...
  15. 计算机重装系统后黑屏,重装系统过程中电脑黑屏后修复的方法-电脑自学网
  16. HDU 6627 equation(模拟,分类讨论)
  17. 【Android应用开发技术:媒体开发】音频
  18. [WinError 10060]错误
  19. 【C语言】指针进阶(2)
  20. NSGAII快速非支配遗传算法二代学习笔记1

热门文章

  1. dicom文件详细解析
  2. 实验报告:用协同过滤算法对电影评分,并使用RMSE算出预测误差
  3. 苹果收购AI音乐公司,音乐人工智能将迎来新机遇?
  4. 精英反向学习与黄金正弦优化的HHO算法
  5. 再谈区块链在积分领域的应用
  6. leetcode 974
  7. @Transactional 事务注解详解
  8. JVM_常见【面试题】
  9. osgEarth中出现simsum.ttc: file not handled的告警信息的处理办法
  10. manifest java_JAR包中的MANIFEST.MF文件详解以及编写规范