USB-OTG:1、OTG原理介绍

目录

🍅点击这里查看所有博文

  随着自己工作的进行,接触到的技术栈也越来越多。给我一个很直观的感受就是,某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了,只有经常会用到的东西才有可能真正记下来。存在很多在特殊情况下有一点用处的技巧,用的不多的技巧可能一个星期就忘了。

  想了很久想通过一些手段把这些事情记录下来。也尝试过在书上记笔记,这也只是一时的,书不在手边的时候那些笔记就和没记一样,不是很方便。

  很多时候我们遇到了问题,一般情况下都是选择在搜索引擎检索相关内容,这样来的也更快一点,除非真的找不到才会去选择翻书。后来就想到了写博客,博客作为自己的一个笔记平台倒是挺合适的。随时可以查阅,不用随身携带。

  同时由于写博客是对外的,既然是对外的就不能随便写,任何人都可以看到。经验对于我来说那就只是经验而已,公布出来说不一定我的一些经验可以帮助到其他的人。遇到和我相同问题时可以少走一些弯路。

  既然决定了要写博客,那就只能认真去写。不管写的好不好,尽力就行。千里之行始于足下,一步一个脚印,慢慢来 ,写的多了慢慢也会变好的。权当是记录自己的成长的一个过程,等到以后再往回看时,就会发现自己以前原来这么菜😂。

  本系列博客所述资料均来自互联网,并不是本人原创(只有博客是自己写的)。出于热心,本人将自己的所学笔记整理并推出相对应的使用教程,方面其他人学习。为国内的物联网事业发展尽自己的一份绵薄之力,没有为自己谋取私利的想法。若出现侵权现象,请告知本人,本人会立即停止更新,并删除相应的文章和代码。

前言

  在传统的USB连接中,一个设备通常充当主机,而其他设备则充当从设备。主机设备负责控制数据传输和供电,而从设备则被动地响应主机的指令。手机连接PC之后便会充当USB从机,这时候PC就可以直接操作手机中的文件。

输入图片说明

OTG介绍

  上面说到的方法只限于PC端,一旦离开了PC端就无法进行。这使得很多人的需求无法的到满足,特别是12年开始兴起的智能机时代。于是各厂商将USB标准化组织在2001年12月18日公布的OTG技术合入,使得其可以随时的连接各种设备,进行数据的交换与传输。

  OTG(On-The-Go)是一种USB标准,它允许USB设备在主机模式和设备模式之间切换,以便在需要时充当主机或设备。

输入图片说明

  在OTG协议中,设备可以根据需要在主机模式和设备模式之间切换。这意味着一个设备可以在一段时间内充当主机,控制其他设备,并在另一段时间内充当从设备,响应其他设备的指令。手机就是我们日常生活中最容易见到的OTG设备。

  需要注意,使用OTG功能设备硬件和驱动程序都需要支持OTG标准。此外,操作系统和应用程序也需要相应地支持OTG功能。

OTG检测

  在OTG中定义了一种新的接口——微型AB插座(mini-AB receptacle)以及微型A插头(mi-ni-A plug)和微型B插头(mini-B plug)。在微型AB插座、微型A插头和微型B插头中增加了1个引脚USB_ID 引脚。

输入图片说明

  当OTG设备插入主设备时,主设备会给OTG设备5V_USB供电,VBUS检测到上升沿,触发中断。这时OTG设备在中断中会对USB_ID进行状态检测,若检测结果为高电平,则OTG设备切换成device模式。

由于主设备是没有USB_ID的引脚的(或者浮空),所以OTG设备在接入主机时USB_ID便处于上拉输入的浮空状态中,也就是高电平。

  当从设备插入OTG设备时。OTG设备会检测到USB_ID的下降沿,此时OTG设备会切换到host模式,并且开启VBUS电压输出给从设备供电。

一般情况下OTG连接器中micro USB的第4脚是直接连到GND的。说以只要有从设备接入,USB_ID就会被拉低。

输入图片说明

OTG应用

  OTG的灵活性和可扩展性使得它在移动设备和嵌入式系统中得到广泛应用,为用户提供更多的连接和交互选择。其主要的应用如下所述:

  连接存储设备:OTG允许设备连接外部存储设备,如U盘、读卡器和硬盘。通过将OTG设备连接到主机设备,用户可以直接访问存储设备中的文件,方便地进行文件传输和共享。

输入图片说明

  连接采集设备:OTG支持连接各种外部采集设备,如鼠标、键盘、手柄、相机麦克风等。通过将这些设备连接到OTG设备,用户可以在移动设备上实现更方便的输入和控制,提升用户体验。

输入图片说明

  对外直接供电:OTG设备可以为其他USB接口设备提供直接供电。例如,通过将OTG设备连接到USB小风扇、USB台灯或MP4等设备,可以为它们提供电源,使它们可以在没有独立电源的情况下正常工作。

输入图片说明

  那么本篇博客就到此结束了,这里只是记录了一些我个人的学习笔记,其中存在大量我自己的理解。文中所述不一定是完全正确的,可能有的地方我自己也理解错了。如果有些错的地方,欢迎大家批评指正。如有问题直接在对应的博客评论区指出即可,不需要私聊我。我们交流的内容留下来也有助于其他人查看,说不一定也有其他人遇到了同样的问题呢😂。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/704147.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis实战—验证码登录注册

目录 基于Session Controller层 Service层 ServiceImpl层 ​编辑校验登录状态 ThreadLocal 登录拦截器 添加拦截器到Config Controller层实现 基于Redis ServiceImpl 新增刷新拦截器 添加拦截器到Config 基于Session Controller层 /*** 发送手机验证码*/PostMappi…

如何搭建本地DNS服务器

一、搭建本地DNS服务器 1.初始化设置 systemctl disable --now firewalld.service #关闭防火墙,并开机不自启 setenforce 0 #临时关闭selinux防火墙 vim /etc/selinux/config …

GPU学习记一下线程分组相关

在compute的时候,是要dispatch一个数量的代表分了多少块任务集,dispatch的块内部也是有一个数量的,那么这些值怎么取的呢 内部,N卡32 外面dispatch的数量就是all/32 然后细说这个值 这有一个叫core的东西,就是相当于th…

Autosar架构

蓝框那种叫component,绿框的叫function cluster。 接口 有三种接口,RTE跟SWC之间链接的叫Autosar Interface,RTE跟BSW的Components链接是Standardized Interface,RTE跟BSW的services链接的是Standardized Autosar Interface。 St…

详解xlsxwriter 操作Excel的常用API

我们知道可以通过pandas 对excel 中的数据进行处理分析,但是pandas本身对格式化数据方面提供了很少的支持,如果我们想对pandas进行数据分析后的数据进行格式化相关操作,我们可以使用xlsxwriter,本文就对xlsxwriter的常见excel格式…

场景文本检测识别学习 day09(SSM、S4、Mamba、S6)

SSM(State Space Model) SSM是一个针对连续函数的模型,即输入是连续函数,输出也是连续函数。上图为状态方程和输出方程,其中h(t)是当前时刻的状态,x(t)是当前时刻的输入,h’(t)是下一个时刻的状…

AI绘画做图在线对话二合一源码系统 直接输入文字就可以在线生成视频 带完整的安装包以及搭建教程

系统概述 AI绘画做图在线对话二合一系统是一款集成了AI绘画、在线对话和视频生成功能的综合性软件。用户只需在系统中输入文字描述,系统便能根据描述内容自动生成相应的绘画作品和对话内容,进而将这些元素组合成一部完整的视频。该系统不仅支持多种绘画…

mybatis-plus-ui代码生成器

mybatis-plus-generator-ui 提供交互式的Web UI用于生成兼容mybatis-plus框架的相关功能代码,包括Entity,Mapper,Mapper.xml,Service,Controller等 ,可以自定义模板以及各类输出参数,也可通过SQL查询语句直接生成代码。 使用方法 引入mave…

webpack优化构建速度示例-合理配置loader的include exclude:

实际上,babel-loader 在 Webpack 配置中默认并不包含 exclude 和 include 选项的默认值,通常,为了优化构建性能,开发者会显式地设置 exclude 和 include 选项,以便 babel-loader 只处理必要的文件。 src/index.js impo…

搞大事!法国邀请芬兰公司建量子工厂

法国当地时间5月13日,法国总统马克龙宣布启动2024年度“选择法国”(Choose France)商业峰会。今年峰会召开前,法国赢得了创纪录的150亿欧元外国投资承诺,覆盖从人工智能到制药和能源等领域。 而涉及到量子领域最重磅的…

react18【系列实用教程】useMemo —— 缓存数据 (2024最新版)

为什么添加了 memo &#xff0c;子组件2依然重新渲染了呢&#xff1f; 因为父组件向子组件2传递了引用类型的数据 const userInfo {name: "朝阳",};<Child2 userInfo{userInfo} />memo() 函数的本质是通过校验Props中数据的内存地址是否改变来决定组件是否重新…

【Java学习笔记10 Java Web 应用——JSP

JSP(Java Script Pages)技术是一种网站开发技术&#xff0c;可以让Web开发人员快速、高效的开发出易于维护的动态网页。使用JSP技术开发的Web应用程序具有跨平台性&#xff0c;不需要修改程序&#xff0c;发布后即可在Windows、Linux等不同的操作系统中运行。 10.1 JSP技术概述…