USB简介系列-04

发布时间:2023年12月18日

系列文章目录

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。


二、配置、接口和端点

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

文章来源:https://blog.csdn.net/zuoph/article/details/135049807
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。