zoukankan      html  css  js  c++  java
  • 辨析 USB 的端点和管道

    辨析 USB 的端点和管道

    USB 端点

    端点是 USB 设备上的缓冲区,端点是与硬件本身相关的术语,与主机操作系统无关。主机可以向上述缓冲区发送或接受数据。端点分为控制端点数据端点

    每个 USB 设备必须至少提供一个控制端点,该端点在地址 0 处,被称为默认端点端点0。此端点是双向的,也就是说,host 可以在一次传输事务内向端点0发送并接收数据。控制传输的目的是使 host 能够获取设备信息,配置设备或执行特定于设备的控制操作。

    数据端点是可选的,用于传输数据。它们是单向的,具有不同类型(控制、中断、批量、同步)和其他属性。所有这些属性都在端点描述符(参阅 USB 2.0 规范,9.6 Standard USB Descriptor Definitions)中进行了介绍。

    在 USB 术语中,端点的方向(发送给或发送自某端点)是从 host 的角度定义的。因此,IN 是指 host 从设备接收数据,OUT 是指 host 发出数据给到设备。USB 设备还可以支持控制数据的双向传输。

    设备上的一组端点组成功能接口,一组接口组成设备配置。有关详细信息,请参阅 "USB 描述符"。

    host 可以查看端点信息,该操作可以在设备完成配置之前,或在选择备用设置期间。循环访问所有接口,然后遍历每个接口的设置列表,就可以查看每个端点的属性,或某个设置的端点集。 查看端点信息不会影响设备的配置状态。

    USB 管道

    管道是一个抽象概念,数据经由管道在 device 和 host 之间进行传输。管道纯粹是一个软件术语。一个管道和 device 上的端点交互,而端点具有一个唯一的地址。管道的另一端始终是 host controller。

     

    一旦 device 完成配置(不管是通过选中一项配置还是选中一个接口的备用设置),和端点对应的管道就被打开了,因此它们成为  I/O 操作的对象。管道具有端点的所有属性,它处于活动状态,被用来与 host 进行通信。

    经过配置的端点称为管道,否则就是一个纯粹的端点

    总结

    • 端点是 device 上的硬件;管道是 host 端的软件。
    • 端点未进行过配置;管道进行了配置,用于传输。
    • host 给管道发送数据,或从管道接受数据。

    USB 设备具有用于数据传输的端点。 在 host 端,端点由管道表示。

    以上内容一图概括之:

  • 相关阅读:
    powerdesigner设置主键为自增字段,设置非主键为唯一键并作为表的外键
    关于window.event.srcElement 和 window.event.target(触发事件的对象)
    JS遍历Table的所有单元格内容
    创Wcf案例数据服务
    jstack和线程dump分析
    Chromium Graphics: GPUclient的原理和实现分析之间的同步机制-Part II
    oracle11g导出空表
    java序列化是什么和反序列化和hadoop序列化
    【leetcode列】3Sum
    【POJ1741】Tree 树分而治之 模板略?
  • 原文地址:https://www.cnblogs.com/rockyching2009/p/14021322.html
Copyright © 2011-2022 走看看