USB简介系列-04

系列文章目录

USB简介之四



USB协议部分

本部分讨论USB的协议部分。


一、控制一个USB设备

在详细介绍之前,我们需要先了解一下主机在插入设备时是如何识别和安装设备的。我们需要了解一下总体过程,先不要陷入细节的泥潭。

当您插入 USB 设备时,主机会意识到(由于一条数据线上的上拉电阻)设备已插入。

主机现在向设备发出 USB 复位信号,以便在复位结束时以已知状态启动。在此状态下,设备响应默认地址 0。在重置设备之前,主机会阻止从端口向下游发送数据。它一次只会重置一个设备,因此不存在两个设备响应地址 0 的危险。

主机现在将向设备地址 0 的端点 0 发送请求,以找出其最大数据包大小。它可以使用“获取描述符(设备)”命令来发现这一点。即使在地址 0 上,设备也必须响应此请求。

通常(即在 Windows 中),主机现在将再次重置设备。然后,它向地址为 0 的设备发送一个设置地址请求,其中包含一个唯一地址。请求完成后,设备将采用新地址。(此时,主机可以自由地重置其他最近插入的设备)。

通常,主机现在将开始对设备进行测验,以获取它认为需要的尽可能多的细节。这里涉及的一些请求是:

  • Get Device Descriptor 获取设备描述符
  • Get Configuration Descriptor获取配置描述符
  • Get String Descriptor 获取字符串描述符

目前,设备处于寻址但未配置的状态,并且只允许响应标准请求。

一旦主机觉得它对设备有足够清晰的了解,它就会加载合适的设备驱动程序。

然后,设备驱动程序将通过向设备发送“设置配置”请求来选择设备的配置。

设备现在处于已配置状态,可以开始作为其设计的设备工作。从现在开始,除了必须继续支持的标准请求外,它还可以响应特定于设备的请求。

现在,我们可以看到设备必须响应一组请求,并且需要查看传达请求的详细方式。

我们在系列3中看到,数据以 4 种不同类型的传输方式传输:

  • Control Transfers 控制转移
  • Interrupt Transfers 中断传输
  • Bulk Transfers 批量转账
  • Isochronous Transfers 同步传输

在配置设备之前,唯一可用的传输类型是控制传输。目前唯一可用的端点是双向端点 0。


二、配置、接口和端点

该设备包含许多描述符(如下图所示),这些描述符有助于定义设备的功能。我们将在页面下方进一步研究这些描述符。目前,我们需要了解配置、接口和端点是什么,以及它们如何组合在

相关推荐

  1. USB简介系列-04

    2023-12-18 01:54:03       39 阅读
  2. Linux 系统 ubuntu22.04 发行版本 固定 USB 设备端口号

    2023-12-18 01:54:03       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-18 01:54:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-18 01:54:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-18 01:54:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-18 01:54:03       20 阅读

热门阅读

  1. MBA-论文说-历年考题参考

    2023-12-18 01:54:03       35 阅读
  2. 六大设计原则

    2023-12-18 01:54:03       33 阅读
  3. 第16课 SQL入门之更新和删除数据

    2023-12-18 01:54:03       44 阅读
  4. c# 数组删除

    2023-12-18 01:54:03       38 阅读
  5. 外部函数接口FFI

    2023-12-18 01:54:03       37 阅读
  6. LeetCode 15 三数之和

    2023-12-18 01:54:03       39 阅读