从硬件到软件,从电气特性到传输事务的建立,下面的思维导图是实例通过数据分析仪得到的流程。对调试USB底层驱动有很好的指导作用。先看USB设备状态,对于全速设备,电气上,主机监测到D+ 上拉,则认为已连接,开始加电,第三步后开始软件方面的枚举过程。 连 接 加 电 缺 省 编 址 配 置 挂 起 说 明不 __ ____ ____ ____ ____ __设备尚未连接至接口.其他特性无关是 不 __
1.枚举就是从设备读取各种描述符信息,主机根据读取的描述符信息来决定加载什么驱动,确定是什么样的设备以及如何通信等。2.在USB设备枚举过程中使用了控制传输,这种传输保证数据传输的正确性。控制传输分为:建立过程(主机发起)、可选的数据过程和状态过程。3.控制传输解析:(1)主机发起建立过程,建立过程开始于一个SETUP令牌包,后面紧跟一个DATA0数据包,接着就是数据过程。(2)如果是控制读传输
文章目录1.简介2.描述符3.枚举流程3.1 USB设备请求3.2 流程4.枚举伪代码(从机)5.参考文档 1.简介  枚举就是主机获取从机的信息(各种描述符)用来加载不同的驱动,告诉主机要怎么控制、通信,主机检测到从机上线之后会进行枚举的流程,枚举USB中最重要也最复杂,前面说到USB传输有四种模式,控制传输最繁琐但能够保证枚举的正确性。2.描述符  USB1.1中标准描述符有设备描述符(D
7:48:25     转载于http://www.misssir.cn/art/_show.aspx?art=44 摘要:     从主控开始遍历,先是RootHub,然后每个端口,端口连接的设备类型、描述符,如果是Hub则继续向下遍历。代码已贴出来,如果您看到附件中
转载 2023-08-14 19:44:22
162阅读
枚举所有连接的USB设备代码,编译环境VS2010项目地址:https://gitee.com/tody_guo/ls_us
原创 2023-01-20 14:34:20
121阅读
USB设备接入以后,必须进行设备枚举,得到设备参数,设置设备运行配置等参数,下面的代码就是对U盘设备进行枚举的过程。 因为没有使用操作系统,所以函数使用状态迁移的方式完成枚举,该函数在主循环中被调用。
原创 2010-03-12 10:50:26
3096阅读
1点赞
13评论
转自 http://blog.csdn.net/yaozhenguo2006/article/details/7748896
转载 精选 2013-07-22 16:16:47
1658阅读
USB的从属模式允许用户连接到专门给Android设备设计的USB主机硬件。这些附件必须遵循在Android从属模式开发工具文档中描述的Android从属模式协议。这个协议允许Android设备即使不作为USB主机依然能够跟USB硬件进行交互。当Android设备处于USB从属模式时,被连接的Android USB附件会作为主机,提供用于供电的USB总线,并列举被连接的设备Android3.1(
转载 2023-08-17 22:17:31
145阅读
一、USB枚举过程分析1、USB的插入检测结合智林STM32板上的USB设备接口,分析一下插入检测控制:  当12脚短接,Q1截止,Q2导通,D+上拉,windows就会认为USB接口有一个全速设备,马上复位总线,并开始枚举设备。如果23脚短接,则Q1状态取决于USB-DISCONNECT(PD2)脚的状态。CPU复位后,GPIO引脚处于浮空输入状态。所以此时,Q1导通,Q2截
转载 11月前
228阅读
如果有一天你在家里角落摸索出一根数据线,你想要知道这个数据线还能不能用,想要知道它有啥功能,这个时候你就需要有以下这个自制简易的USB线测试仪啦!一起动手做一个吧!首先,咱先来了解一下USB线吧USB(Universal Serial Bus)中文名为通用串行总线,是一种串口总线USB Type-A目前这种接口已经由USB 2.0发展到了USB 3.0,他们最大的差别就是3.0的接口部分为蓝色,而
上篇 《Windows下USB磁盘开发系列一:枚举系统中U盘的盘符》介绍了很简单的获取系统U盘盘符的办法,现在介绍下如何枚举系统中所有USB设备(不光是U盘)。 主要调用的API如下: 1,调用SetupDiGetClassDevs()获取指定设备类型的句柄; 2,调用SetupDiEnumDeviceInfo()枚举设备信息; 3,调用SetupDiGetDeviceRegistryPrope
usb
转载 2021-07-19 16:32:29
979阅读
现在介绍下如何枚举系统中所有USB设备(不光是U盘)。主要调用的API如下: 1,调用SetupDiGetClassDevs()获取指定设备类型的句柄; 2,调用SetupDiEnumDeviceInfo()枚举设备信息; 3,调用SetupDiGetDeviceRegistryProperty()获取设备信息。 具体实现函数如下: int enum_usb_device_info() {
转载 2014-10-13 19:05:00
63阅读
5点赞
3评论
USB设备从接入HUB到正常工作之前。都属于设备枚举阶段。所谓设备枚举。就是让host控制器认识USB设备,并为其准备资源。建立好主机与设备间的数据传递机制。 该阶段的工作,是USB通信协议规定的,所以属于ISO标
转载 2017-07-03 15:15:00
263阅读
2评论
方法一:#include #include #include #include #include #include #pragma comment(lib, "setupapi.lib")#define BUFSIZE 1024#define SM_SERVERR 289int mai...
转载 2014-10-13 19:01:00
229阅读
2评论
 与现有的USB 3.0接口相比,USB 3.1标称的接口传输速率从5Gbps直接翻倍到了10Gbps。不过,在实际环境下,它能达到现有USB 3.0接口两倍的传输速度吗?外媒AnandTech为我们带来了实际的测试,一起来看看。不过,由于目前还没有基于USB 3.1接口的外设,因此这次测试中AnandTech所使用的是ASMedia的USB 3.1测试开发板。它搭载了ASMedia的A
    在我们的实际工作中,不管是硬件设计调试,如STM32平台的硬件,还是软件调试,如LINUX的usb驱动调试,USB都是一个必须掌握的通讯方式。USB 的整个架构是很庞大的,但对于普通的开发人员需要掌握的就很少。   学习USB通讯就得搞懂USB枚举过程。在工作中,不管是硬件还是系统,只要USB枚举过程无误的进行,USB的通讯基本上就没
USB主机在检测到USB设备插入后,就要对设备进行枚举了。为什么要枚举枚举就是从设备读取各种描述符信息,这样主机就可以根据这些信息来加载合适的驱动程序,从而知道设备是什么样的设备,如何进行通信等。枚举的过程:1、  USB主机检测到USB设备插入之后,就会先对设备复位。USB设备在总线复位后其地址为0,这样主机就可以通过地址0和那些刚刚插入的设备通信。USB主机往地址为0的设备的端点0
转载 11月前
150阅读
## Android识别USB速度 USB(Universal Serial Bus)是一种用于连接计算机和外部设备的通用接口标准。它广泛应用于许多设备,如手机、摄像机、打印机等。在Android开发中,我们经常需要获取连接设备USB速度。本文将介绍如何在Android应用程序中识别USB速度。我们将使用AndroidUSB API来实现。 ### 1. USB速度的概述 USB有四种
原创 10月前
285阅读
Android codebase都很大,编译一次都需要花很多时间,如果是preloader/lk/bootimage还好,
原创 2023-02-16 07:14:45
212阅读
小米手机作为一款流行的智能手机,拥有许多实用的功能。然而,随着手机使用时间的增长,我们可能会发现手机变得越来越卡顿,安全性也可能会受到影响。为了提升小米手机的安全性和运行速度,本文将介绍6个重要的设置,这些设置不仅适用于小米手机,也适用于红米手机。关闭不必要的通知:过多的通知会占用系统资源,导致手机运行缓慢。同时,一些通知可能会包含敏感信息,容易被恶意软件利用。因此,建议关闭一些不必要的通知,以提
  • 1
  • 2
  • 3
  • 4
  • 5