___2017

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  328 随笔 :: 18 文章 :: 15 评论 :: 18万 阅读

 


辨析 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 端,端点由管道表示。

以上内容一图概括之:

posted on   yin'xiang  阅读(1086)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示