USB - OTG

USB OTG (On-The-Go)

Definition(定义):

    * USB OTG 可让平板电脑或智能手机等设备充当主机,允许其他 USB 设备(如 USB 闪存驱动器、数码相机、鼠标或键盘)连接到它们。

    * 它允许设备在主机和外设之间切换角色。例如,智能手机可以作为主机设备从可移动媒体读取数据,但在连接到主机时,又可以作为 USB 大容量存储设备。

    * USB OTG enables devices like tablets or smartphones to act as hosts, allowing other USB devices (such as USB flash drives, digital cameras, mice, or keyboards) to be attached to them.

    * It allows devices to switch roles between being a host and a peripheral. For example, a smartphone can read from removable media as the host device but present itself as a USB Mass Storage Device when connected to a host computer.

Roles(角色):

    * USB OTG 为设备定义了两种角色:

        * OTG A 设备: 供电设备。

        * OTG B 设备: 用电设备。

    * 在默认链接配置中,A 设备充当 USB 主机,B 设备充当 USB 外围设备。主机和外设模式可在以后通过主机协商协议(HNP)进行交换。

    * USB OTG defines two roles for devices:

        * OTG A-device: The power supplier.

        * OTG B-device: The power consumer.

    * In the default link configuration, the A-device acts as a USB host with the B-device acting as a USB peripheral. The host and peripheral modes may be exchanged later by using Host Negotiation Protocol (HNP).

Initial Detect(初始化检测):

每个设备的初始角色由 ID 引脚的接线决定。

The initial role of each device is determined by the wiring of the ID pin.

micro 插头的 pin 脚定义:

1 pin 连接电源(VBUS);

2、3 pin 用来传送数据(D+、D-);

5 pin 接地(GND);

4 pin 检测 ID。ID pin——当 OTG 设备检测到 ID pin 接地时,OTG 设备应初始化为 A 设备(主机); 而检测到 ID 引脚浮空时,应初始化为 B 设备(外设)。

type-A 插头的 pin 脚定义:

2 条用来传送数据(D+、D-);

1 条是电源 线(VBUS);

1 条是接地线(GND);

type-A 接口,用于连接 host。

手机使用 OTG 线连接 U 盘时,OTG 线的 micro 插座,ID 引脚直接连接到 GND,ID pin 处于接地状态。 而 OTG 线另一端的 type-A 母座,是没有 ID pin 的。

手机端的 micro 母座,检测到接入的 micro 插头的 ID pin 为接地,所以手机作为主设备 A。

U 盘端 type-A 插座,ID pin 在设计之初就已经拉死,处于悬空状态,所以 U 盘作为从设备 B。

(固定为 device 的设备,一般会直接将 ID pin 悬空,不需要引出到 type-A 接口)

OTG转接线:

micro 数据线:

接口 ID pin 状态:

1.OTG 设备检测到 USB_ID 信号为低电平时,该设备应作为 Host(主机,也称 A 设备)。

2.OTG 设备检测到 USB_ID 信号为高电平时,该设备应作为 Slave(外设,也称 B 设备)。

3.实际的 USB 连接线缆中,不存在 USB_ID 线缆,而在接口部分就直接拉死,要不处于接地状态,要不就 是悬空状态。

4.对于非 OTG 设备,host 设备默认将 USB_ID pin 和地短接,Slave 设备则默认将 USB_ID pin 悬空。

type-A 母座的设备,一般只作为 host,例如 PC。

type-A 插头的设备,一般只作为 device,例如 mouse、keyboard、U 盘。

micro 母座的 OTG 设备,既可作为 host,也可作为 device,例如手机。

Use Cases(使用示例):

    * 连接外部设备: 您可以使用 USB OTG 将外置存储设备(如硬盘或闪存驱动器)连接到手机或平板电脑。

    * 键盘和鼠标: 使用 USB OTG 线缆将键盘或鼠标连接到智能手机或平板电脑。

    * 数码相机: 使用 USB OTG 直接将照片从相机传输到手机。

    * 游戏控制器: 将游戏控制器或其他输入设备连接到移动设备。

    * USB 闪存盘: 轻松访问存储在 USB 闪存驱动器中的文件。

    * Connecting External Devices: You can use USB OTG to connect external storage devices (like hard drives or flash drives) to your phone or tablet.

    * Keyboard and Mouse: Use a USB OTG cable to connect a keyboard or mouse to your smartphone or tablet.

    * Digital Cameras: Transfer photos directly from your camera to your phone using USB OTG.

    * Game Controllers: Connect game controllers or other input devices to your mobile device.

    * USB Flash Drives: Easily access files stored on a USB flash drive.

Compatibility(兼容性):

    * 并非所有设备都支持 USB OTG,但近年来它已变得越来越普遍。

    * 请查看设备规格,了解其是否支持 USB OTG。

    * Not all devices support USB OTG, but it has become more common over the years.

    * Check your device’s specifications to see if it supports USB OTG.

Host Negotiation Protocol (HNP) (主机协商协议):

    * HNP 允许两个 OTG 系统在 USB 连接期间交换主机/外设角色。

    * 当两个设备都是 OTG 双角色设备时,HNP 可使它们交换角色。

    * 通过使用 HNP,OTG 设备可以获得数据传输调度的控制权。因此,任何 OTG 设备都能通过 USB OTG 总线启动数据传输。

    * HNP allows two OTG systems to swap their host/peripheral roles during a USB connection.

    * When both devices are OTG dual-role devices, HNP enables them to exchange roles.

    * By using HNP, an OTG device can acquire control of data-transfer scheduling. Thus, any OTG device can initiate data transfer over the USB OTG bus.

总之,HNP 使 USB OTG 设备能够在主机和外设角色之间动态切换,增强了其多功能性和适应性!

In summary, HNP empowers USB OTG devices to dynamically switch between host and peripheral roles, enhancing their versatility and adaptability!

参考:

1,CSDN

USB OTG基本原理-CSDN博客

2,Bing Copilot

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

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

相关文章

基于SSM SpringBoot vue服装物流管理系统

基于SSM SpringBoot vue服装物流管理系统 系统功能 首页 图片轮播 人个中心 登录注册 后台管理: 登录注册 个人中心 货物信息管理 货物入库管理 订单信息管理 商品出库管理 快递追踪管理 用户管理 供应商信息管理 盘点信息管理 管理员管理 开发环境和技术 开发语言&#xf…

github-actions

文章目录 workflow触发器action市场contextsecrets 默认环境变量 workflow name: {{workflow name}} run-name: {{workflow runs name}}on: {{触发器}} #[push]env:{{定义workflow变量}}: valuejobs:{{job name}}:runs-on: {{运行机器}} #ubuntu-latestenv:{{定义job变量}}: v…

小程序开发能力

小程序开发能力 1. 获取用户头像 当小程序需要让用户完善个人资料时,我们可以通过微信提供的头像、昵称填写能力快速完善。如图: 想使用微信提供的头像填写能力,需要两步: 将 button 组件 open-type 的值设置为 chooseAvatar当…

Python实现时间序列分析动态因子模型(DynamicFactor算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 动态因子模型(Dynamic Factor Models, DFM)是一种统计学和计量经济学中用于处理…

源码安装 HIPIFY 和应用示例,将cuda生态源码转化成HIP生态源码

1,源码下载 GitHub - ROCm/HIPIFY: HIPIFY: Convert CUDA to Portable C CodeHIPIFY: Convert CUDA to Portable C Code. Contribute to ROCm/HIPIFY development by creating an account on GitHub.https://github.com/ROCm/HIPIFY.git git clone --recursive ht…

springboot230基于Spring Boot在线远程考试系统的设计与实现

在线远程考试系统设计与实现 摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到…

基于JAVA的毕业设计分配选题系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 专业档案模块2.2 学生选题模块2.3 教师放题模块2.4 选题审核模块 三、系统展示四、核心代码4.1 查询专业4.2 新增专业4.3 选择课题4.4 取消选择课题4.5 审核课题 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpri…

vmware虚拟机centos中/dev/cl_server8/root 空间不够

在使用vmware时发现自己的虚拟机的/dev/cl_server8/root空间不够了,没办法安装新的服务。所以查了一下改空间的办法。 1.在虚拟机关闭的状态下,选中需要扩容的虚拟机->设置->硬件-> 硬盘->扩展->填写扩大到的值。 2.打开虚拟机&#xff…

jxls——自定义命令设置动态行高

文章目录 前言依赖引入绘制 jxls 批注的 excel 模板测试类编写自定义命令关于自动换行 前言 之前的博客中都简单说了数据的渲染和导出excel文件。包括固定的 表头结构,以及动态 表头和表数据等方式。 本篇博客主要说明自定义命令的方式,控制输出excel文…

Unity AssetBundle详解,加载本地包、加载网络包代码全分享

在Unity中,AssetBundle(简称AB包)是一种将多个文件或资源打包到一个文件中的方式,用于优化资源的加载和管理。使用AB包,可以按需加载资源,减少应用的初始加载时间,并可以实现热更新等功能。下面是一个基本的流程,展示如何在Unity中加载AB包并显示其中的资源。 步骤1:…

springboot 实现本地文件存储

springboot 实现本地文件存储 实现过程 上传文件保存文件(本地磁盘)返回文件HTTP访问服务器路径给前端,进行效果展示 存储 服务端接收上传的目的是提供文件的访问服务,对于SpringBoot而言,其对静态资源访问提供了很…

H3C防火墙安全授权导入

一、防火墙授权概述 前面我们已经了解了一些防火墙的基本概念,有讲过防火墙除了一些基本功能,还有一些高级安全防护,但是这些功能需要另外独立授权,不影响基本使用。这里以H3C防火墙为例进行大概了解下。 正常情况下,防…

深度学习_15_过拟合欠拟合

过拟合和欠拟合 过拟合和欠拟合是训练模型中常会发生的事,如所要识别手势过于复杂,如五角星手势,那就需要更改高级更复杂的模型去训练,若用比较简单模型去训练,就会导致模型未能抓住手势的全部特征,那简单…

[云原生] K8s之pod进阶

一、pod的状态说明 (1)Pod 一直处于Pending状态 Pending状态意味着Pod的YAML文件已经提交给Kubernetes,API对象已经被创建并保存在Etcd当中。但是,这个Pod里有些容器因为某种原因而不能被顺利创建。比如,调度不成功(…

原神抢码,米游社抢码-首发

本文章仅供学习使用-侵权请联系删除_2023年3月14日08:17:06 本来在深渊12层打不过的我偶然在刷到了一个dy的直播间,看到主播在抢码上号帮忙打深渊还号称痛苦号打不满不送原石的旗号我就决定扫码试试,在直播间内使用了两部手机互相扫码在扫了一下午的码后…

自动驾驶技术详解

🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:自动驾驶技术 🎀CSDN主页 发狂的小花 🌄人生秘诀:学习的本质就是极致重复! 目录 一 自动驾驶视觉感知算法 1目标检测 1.1 两阶…

css背景图片属性

基础代码&#xff1a; div {width: 200px;height: 200px;background: url(./css-logo.png); }<div></div> 1、background-repeat&#xff1a;默认是repeat 设置背景图片在容器内是否平铺。 background-repeat: repeat-y; background-repeat: repeat-x; background…

消息中间件之RocketMQ源码分析(二十四)

事务消息 事务消息机制。 事务消息的发送和处理总结为四个过程: 1.生产者发送事务消息和执行本地事务 2.Broker存储事务消息 3.Broker回查事务消息 4.Broker提交或回滚事务消息 生产者发送事务消息和执行本地事务。 发送过程分为两个阶段: 第一阶段,发送事务消息 第二阶段,发…

Java泛型简介

Java泛型简介 Java泛型是在Java 5中引入的一个特性&#xff0c;它允许程序员在编译时指定类、接口或方法能够接受的类型。泛型的主要目的是提供编译时类型安全检查&#xff0c;避免在运行时因为类型转换错误而导致的ClassCastException。 在没有泛型之前&#xff0c;Java中的集…

Ubuntu系统使用Docker搭建Jupyter Notebook并实现无公网ip远程连接

文章目录 1. 选择与拉取镜像2. 创建容器3. 访问Jupyter工作台4. 远程访问Jupyter工作台4.1 内网穿透工具安装4.2 创建远程连接公网地址4.3 使用固定二级子域名地址远程访问 本文主要介绍如何在Ubuntu系统中使用Docker本地部署Jupyter Notebook&#xff0c;并结合cpolar内网穿透…