首页
学习
活动
专区
圈层
工具
发布

一篇读懂:Android手机如何通过USB接口与外设通信(附原理分析及方案选型)

---- 0背景 – 随着移动互联网技术的迅猛发展,两大主流智能移动设备iOS 和Android占据了绝对的市场,除了基本的通话、娱乐功能之外,这些移动设备已经成为新时代中重要的信息终端设备节点。...如果主机要输出数据,则先发一个握手包,通知设备。然后发送数据,设备接收到数据后,再发送一个确认包。如果主机要输入数据,也是先发一个握手包,通知设备。设备然后将准备好的数据发送给主机。...设备发生事件时通过消息管道报告给主机,主机伺机向设备发送命令,开通流管道,发送或接收数据包。主机与设备之间以数据数据包的形式进行传送,显然这与网络上数据传输的方式相同,是一种异步数据传输模式。...OTG(On The Go)是一种新型的USB,能够在没有电脑的情行下,实现设备间的数据及图像的传送,在手机中加入传感器,同时将运行程序载入开发板中,通过OTG接口与手机相接,能够让手机拥有更强大的功能...因为Framework层中并没有封装关于串口通信的类库,所以我们需要通过Android NDK来实现打开、读写串口,然后提供接口供Java本地调用。

15K10

usb协议开发_基于事件驱动的架构

今天说一说usb协议开发_基于事件驱动的架构,希望能够帮助大家进步!!! 1....在设备端,USB设备将非USB格式的数据进行打包处理,转换成USB格式的数据包,然后传递到链路层,经过硬件处理、传递到物理层,由物理层通过PHY以数据流的形式传输到主机。...2) B设备必须检测到D+和D-数据线至少在2ms的时间内低于有效阈值,即处于SE0状态。...相对于大容量存储设备与主机之间通过控制/批量传输,集线器与主机之间通过中断/控制方式完成数据交互。...3.2 USB设备端驱动 从上图可知,设备端驱动包含两部分: 1) 底层设备控制器驱动 2) 上层大容量存储类驱动 3.2.1 设备控制器驱动 USB设备控制器驱动主要实现

2.6K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    USB技术浅析

    仅仅在2006年,就有超过20亿USB设备出产,而现在已经有超过60亿的USB产品被安装。 而随着技术创新的不断前进,新式设备,媒体格式,以及便宜的大容量存储在不断涌现。...高清摄像机将会具有上百GB的存储内容需要迁移到PC端供用户编辑,查看以及打包存储。现有的设备,如数码相机继续创新并增加其容量来容纳更多的非压缩图像。...流可以被用来,例如,支持大容量设备(mass storage device)所需要的乱序(out-of-order)数据传输。...USB3.0 OTG (1) ConfigFS 在《带你遨游USB世界》中,我们介绍了android.c的gadget配置方式,在早期时,linux的gadget驱动都是固定功能,即开机后usb功能就已固定...而这样的功能,明显无法满足移动设备对于otg功能的需求,因此android推出了android.c和composite.c的复合功能的gadget驱动。

    3.6K30

    USB总线和协议

    其次是热插拔(Hot Swap),不需要关机就能插拔设备,大大提高了使用便利性。...每个包都包含同步字段、PID(包标识符)、数据字段和CRC校验。4. USB设备枚举过程4.1 设备连接检测当一个USB设备插入主机时,主机会通过检测D+或D-上的电平变化来发现新设备。...然后主机会给设备分配一个唯一的地址(1-127之间),设备收到地址后就不再使用地址0了。...7.3 MSC类MSC用于U盘、移动硬盘等存储设备。MSC类基于SCSI协议,支持读写扇区、查询容量等操作。实现MSC类设备需要提供底层的存储介质访问接口,比如Flash、SD卡等。...建议在开发初期就建立完善的日志系统,记录USB事件和错误信息,这对问题定位非常有帮助。10. 总结USB技术虽然看起来复杂,但只要掌握了基本原理和协议结构,在实际应用中就能游刃有余。

    34420

    USB协议简介「建议收藏」

    状态切换到K状态 EOP:持续2位时间的SE0信号,后跟随1位时间的J状态 Keep alive即低速EOP信号 1.4 USB插入检测和速度检测: 主机通过设备在D+或D-上的1.5K上拉来检测设备的连接和断开事件...,并由此判别设备的速度 主机先把高速设备检测为全速设备,然后再通过“Chirp序列”的总线握手机制来识别高速和全速设备 USB连接和断开连接: 设备连上主机时(连接) 当主机检测到某一个数据线电平拉高并保持了一段时间...的数据负载 可选的Handshake packet 例子: 2.3 传输 USB协议定义了四种传输类型: 批量(大容量数据)传输(Bulk Transfers): 非周期性,突发...大容量数据的通信,数据可以占用任意带宽,并容忍延迟 。...如USB打印机、扫描仪、大容量储存设备等 中断传输(Interrupt Transfers): 周期性,低频率 允许有限延迟的通信 如人机接口设备(HID)中的鼠标、键盘、轨迹球等 等时(同步)

    4.4K21

    原来ZYNQ的硬件设计如此简单!

    由于 eMMC FLASH 的大容量和非易失特性,在 ZYNQ 系统使用中,它可以作为系统大容量的存储设备,比如存储 ARM 的应用程序、系统文件以及其它的用户数据文件。...OTG_STP PS_MIO42 E12 USB 停止信号 OTG_NXT PS_MIO43 A9 USB 下一数据信号 OTG_DATA0 PS_MIO44 F13 USB 数据 Bit0 OTG_DATA1...PS_MIO45 B15 USB 数据 Bit1 OTG_DATA2 PS_MIO46 D16 USB 数据 Bit2 OTG_DATA3 PS_MIO47 B14 USB 数据 Bit3 OTG_CLK...PS_MIO48 B12 USB 时钟信号 OTG_DATA5 PS_MIO49 C12 USB 数据 Bit5 OTG_DATA6 PS_MIO50 B13 USB 数据 Bit6 OTG_DATA7...5V_OUT 和热插拔检测 (HPD) 电路的控制与 LS_OE 控制信号无关,其通过 CT_HPD 引脚进行控制,使得在启用 HDMI 链路前即可激活检测方案(5V_OUT 和 HPD)。

    1.2K00

    USB HOST与 USB OTG的区别及工作原理

    目前USB硬件接口分三种,普通PC上使用的叫Type;原来诺基亚功能机时代的接口为Mini USB;目前Android手机使用的Micro USB。...其中的设备控制器驱动程序负责USB 设备栈与硬件端点的数据交换,USB协议层负责处理USB协议规范,设备类驱动程序的功能取决于该两用设备的功能(如数码照相机、存储设备、打印机等)。...1.5 数据流模型 OTG主机和设备被划分为功能层、USB设备层和USB接口层3个不同层次,如图2所示。...USB接口层为OTG主机和OTG设备提供物理连接,USB系统软件使用主机控制器来管理主机与 USB设备的数据传输。...一个Mini-B插座(不能使用Mini-AB) Android usb如何实现既可以发现accessory设备,同时也可以发下host设备 做usb通信,首先要先弄清楚哪边是HOST那边是SLAVE

    11.5K31

    嵌入式入门级学习——基于国产平台T3开发板的测试教程(3)

    ​ 本文主要为嵌入式入门开发者的接口、网口等板卡基础快速测试,当初级学习的开发者拿到板卡,如何在最快时间内测试板卡正常?...OUT、CAMERA、LINE IN、H/P OUT等音视频多媒体接口,支持双屏异显、1080P@45fps H.264视频硬件编解码,并支持SATA大容量存储接口。...请通过Micro OTG转USB转接头将U盘与评估板USB0 OTG接口连接,或直接将U盘与评估板USB1 HOST或USB2 HOST任意一个HOST接口连接。...Target# df -h ​ 图 47 备注:USB0 OTG默认是DEVICE模式,测试USB HOST模式时,需将USB0 OTG修改为USB HOST模式。...USB DEVICE模式测试 本小节测试仅支持USB0 OTG接口,USB0 OTG默认是DEVICE模式,请通过Micro USB线将PC机与评估板的USB0 OTG(CON13)接口进行连接。

    5.7K31

    实用技能:旧手机改造为电视盒子的完整教程,看完你就懂了

    本文将为你详细介绍如何将旧手机改造成电视盒子,让你的旧手机焕发新生。一、所需材料与工具要将旧手机改造成电视盒子,你需要准备以下材料和工具:一部性能较好的旧手机,如iPhone 6或红米K40等。...Micro USB数据线,用于连接手机和电源适配器。USB OTG转接线,用于连接手机和U盘。OTG USB HUB,用于扩展USB接口。适合手机电池容量的电源适配器。...安装操作系统与应用:通过Micro USB数据线和电源适配器为Raspberry Pi提供电源,并安装适用于Android系统的电视盒子应用及必要的驱动程序。...配置网络连接:使用OTG USB HUB连接手机和Raspberry Pi的网络接口,并配置网络设置。完成设置:打开电视盒子应用,按照提示进行设置和登录,即可将手机画面投射到电视上观看。...四、优化与扩展电视盒子改造完成后,大家还可以根据个人需求对电视盒子进行性能优化和功能扩展,如调整显示效果、增加存储空间、提高网络速度等。

    4.6K11

    嵌入式基础测试手册——基于NXP iMX6ULL开发板(3)

    USB接口测试本章节使用SanDisk品牌、FAT32格式、16GByte容量的U盘(支持USB 3.0),对USB1 OTG和USB2 HOST接口进行测试。...使用不同品牌、格式或容量的U盘,测试结果将会有所差别。USB HOST模式读写测试本小节以USB2 HOST接口进行演示,将U盘插至评估板USB2 HOST接口。...如需测试USB1 OTG接口,请通过Micro OTG转USB转接头进行连接。评估板检测到U盘后,将打印如下信息,可从中看到U盘容量和挂载名,如下图所示。...USB DEVICE模式功能测试本小节测试USB1 OTG接口的DEVICE模式,USB1 OTG接口可根据设备情况自动切换为HOST/DEVICE模式。...请使用Micro USB数据线连接PC机与评估板USB1 OTG接口。执行如下命令,将评估板系统启动卡BOOT分区模拟为存储盘。

    1.1K40

    如何使用Android-PIN-Bruteforce爆破Android的锁屏密码

    写在前面的话 在这篇文章中,我们将教大家如何通过暴力破解Android手机的锁屏密码来解锁Android设备。...Android-PIN-Bruteforce需要使用一条USB OTG线来将锁定的手机跟Nethunter设备连接,它会模拟一个键盘,并自动尝试输入PIN码,然后不断地进行暴力破解尝试。...[Nethunter手机][USB线][USB OTG适配器][锁定的Android手机] USB HID小工具驱动程序可以提供USB HID模拟功能,这将允许Android Nethunter...设备要求 一台锁定的Android手机 一台Nethunter手机(或者任意支持HID内核的已Root的Android设备) USB OTG线缆/适配器 标准充电线 功能介绍 爆破1-10位任意长度的PIN...码; 使用配置文件以支持不同的手机; 针对3、4、5、6位PIN码提供了优化后的PIN码列表; 绕过手机弹窗,包括低电量警告; 检测手机何时拔下插头或关机,并在重试时每5秒等待一次; 每尝试X个PIN码后可配置

    4.3K30

    STM32F4-高性能家族

    纯属是看见一个东西查了一下,然后就记录了。...84 MHz CPU/105 DMIPS,尺寸最小、成本最低的解决方案,具有卓越的功率效率(Dynamic Efficiency™) STM32F401 –尺寸不到3 x 3mm,具有USB OTG2.0FS...和SDIO接口 这就是高性能里面最小的封装 100 MHz CPU/125 DMIPS,具有卓越的功率效率(Dynamic Efficiency™)和批采集模式(BAM),一种新型面向数据批处理的利用...STM32F411–高RAM容量和增强型外设集,如USB OTG2.0FS和最多5个SPI接口。 STM32F411–高RAM容量和增强型外设集,如USB OTG2.0FS和最多5个SPI接口。...STM32F412– 高RAM和闪存容量,USB接口,增强型外设集,包括灵活的外部静态存储器控制器,具有用于LCD和外部存储器控制的高达16位的数据总线,双模四通道SPI、CAN、DFSDM和TRNG。

    43900

    Android热插拔事件处理详解

    一、Android热插拔事件处理流程图 Android热插拔事件处理流程如下图所示: 二、组成 1....三、典型流程描述 (SD卡挂载流程)         整个过程从Kernel检测到SD卡插入事件开始,之前的一些硬件中断的触发以及driver的加载这里并不叙述,一直到SD卡挂载消息更新到“Android...主要负责系统对大容量存储设备(USB/SD)的挂载/卸载任务,它是一个守护进程,该进程支持这些存储外设的热插拔。...(2)引导      Vold进程启动时候会对现有的外部存储设备进行检查。首先加载并解析vold.fstab,并检查挂载点是否已被挂载。然后执行SD卡的挂载,最后处理USB大容量存储。...向sysfs的uevent文件写入”add\n” 字符也可以触发sysfs事件,相当执行了一次热插拔。

    6K81

    硬件数据手册说明——Ompal138+Spartan-6 开发板(下)

    44Micro SD卡接口评估板带有2路SDIO接口,其中MMC/SD1被复用做LCD接口,另外一路MMC/SD0用作Micro SD卡接口,板上接口为CON12,该接口可以支持SDHC,也就是高速大容量...图 45图 46拓展IO信号CON18是FPGA GPIO拓展接口,引脚定义如下:图 47图 48CON24是EMIFA接口,通过EMIFA可实现评估板与不同类型存储设备的连接,例如多通道AD模块、多串口模块...而串行SATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于其能对传输指令(不仅仅是数据)进行检查,如果发现错误,则会自动矫正。...这在很大程度上提高了数据传输的可靠性,速度可达3Gbps。串行SATA接口还具有结构简单、支持热插拔的优点。...网络接口CON13的接口定义如下图:图 68图 69USB接口CON9是Micro USB 2.0 OTG接口,理论速度480Mbps,主要应用于各种不同的设备或移动设备等从设备间的连接,进行数据交换。

    91400

    Android App 与 U 盘通信详解

    前言 对于 U 盘的了解,相信大多数人应该只停留在跟 U 盘跟电脑通信的阶段,其实现在通过 OTG 线就可以实现手机跟 U 盘之间的数据操作,不仅可以将 U 盘中的文件读取到手机中来,还能将手机中的文件导出到...一、自定义广播接收器接收 U 盘相关的信息 ---- 在 U 盘插入或插出的时候,系统都会发出一条相关的广播,所以我们需要自定义广播接收器,接收这两条广播,然后进行相应的处理。...); // 获取 U 盘存储设备 UsbMassStorageDevice[] storageDevices = UsbMassStorageDevice.getMassStorageDevices...,等到权限申请完成,便会发出这条广播,然后我们可以在广播接收器中接收并处理,从而进行后续的操作。...一款十分简洁、优雅的日记 APP Android 带你撸一个好玩的 DoodleView(涂鸦) Android 撸起袖子,自己封装 DialogFragment 手把手教你从零开始做一个好看的 APP

    2.1K20

    低功耗设计方法--低功耗IP设计(一)

    存储块和其他硬 IP 块对低功耗有特殊要求。低功耗存储器通常具有多种模式:正常操作模式、保留模式和断电。在保留模式下,电压降低到保留数据所需的最小值,但低于进行读取和写入所需的电压。...制定时钟、复位和电源控制信号的初始策略 1.1如何以及何时关闭 在 SALT 芯片上,我们设计了一个包括CPU 和 USB OTG 数字内核的电源门控版本。...然后控制器执行断电序列。保持足够的时间以响应中断。当适当的中断发生时,比如来自外设定时器或来自外部源,CPU 的电源控制器然后配置上电序列。...然后 USB OTG 等待 USB 总线空闲 3ms(表明 USB OTG 可以进入 SUSPEND 模式)。进入 SUSPEND 时,USB 向 USB 电源控制器发出信号以开始断电序列。...类似地,PHY 接口模块保持通电状态,因此如果检测到 USB 活动,它可以向电源控制器发送信号并唤醒内核。时钟和复位模块也保持通电状态,为总线接口单元和 PHY 接口提供时钟。

    1.6K10

    WCH 新品: 一颗外设非常顶的 MCU(CH32H417)

    这个也好,4个SPI,现在快一点的ADC都是串行的: 可以直接使用IIS这个来模拟一部分FPGA的功能也行: 高速数据流本质上也是就是串行的,然后IIS才能和SPI复用一套IP。...完善的USB IP CH32H417 的 USB 系统 是整个 MCU 的一大亮点——它不仅包含传统的 USB2.0 外设(FS/HS OTG),还整合了一个 USB3.0 SuperSpeed 子系统...可以做高速大数据传输(U盘、摄像头、音频设备);USB2.0 OTG 移动存储、双机通讯。...:连接检测、角色切换、PDO 协商完成;与 USBHS / USBSS 模块共用部分 Type-C 引脚,实现数据与供电双重管理。...OTG 控制器 统一 USB Host / Device 角色切换逻辑;监测 ID 引脚(低:Host 模式;高:Device 模式);管理 VBUS 电源开关与检测;在 FS/HS 两个控制器间协调资源

    93610

    DshanMCU-R128s2 USB 外设功能配置

    OTG 主要用作Host 与Device 的切换,如当板子通过 USB 线连接到 USB 主机 (PC) 上时, 此时 OTG 是加载成 USB Device;若当前板子是通过 OTG 线连接一个USB...这表示接入OTG 线,但是还检测到VBUS; 如果没有VBUS 检测,ID 只有0 和1 的两种情况, 也就是说要么加载device 驱动,要么加载host 驱动; 这会带来一些影响:usb 相关时钟一直被打开...通过UAC,可以实现实时获取音频设备的音频数据,并且通过UAC 实现操控设备音量,采样率,等参数。...通过adb pull 将图片拉到PC 端,然后在PC 端打开图片即可看到USB 摄像头拍下的照片。...比如说将USB0切换成Host模式,则运行: usb hci ‑i 0 USB 相关工具 ADB ADB 功能是从Android 移植过来的,设备端会运行adbd 服务,而Host 端(一般为PC) 通过

    71710
    领券