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。


二、配置、接口和端点

该设备包含许多描述符(如下图所示),这些描述符有助于定义设备的功能。我们将在页面下方进一步研究这些描述符。目前,我们需要了解配置、接口和端点是什么,以及它们如何组合在一起。
配置描述符集
一个设备可以有多个配置,但一次只能有一个配置,要更改配置,整个设备必须停止运行。例如,可以使用不同的配置来指定不同的电流要求,因为所需的电流是在配置描述符中定义的。

但是,具有多个配置并不常见。Windows 标准驱动程序将始终选择第一个配置,因此没有太多意义。

一个设备可以有一个或多个接口。每个接口可以有多个端点,并表示属于特定类的功能单元。

  • 21
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值