首页 > 其他分享 >USB 端点和管道的区别

USB 端点和管道的区别

时间:2024-08-05 15:07:41浏览次数:13  
标签:USB 主机 接口 管道 端点 设备

在USB体系架构中,经常会混用USB端点和USB管道的概念,包括本人也经常混用。但严格来说它们是两个不同的概念,具体表现在:

  • 端点是USB设备端的概念,是真实的特理设备上的概念,其特性是通过端点描述符来描述的。而管道是USB主机端的上软件的概念,其概据USB的设备端点信息建立的数据软件数据通道。

  • 端点不需要配置,其是真真切切的物理存在;而管道是需要配置的,方可进行数据传输。管道属于主机软件层,可动态销毁和创建,在使用管道进行数据传输前,需要配置。

  • USB主机端是通过管道进行数据的收发。USB设备端通过端点进行数据的收发。

USB端点

USB设备端的端点的一个重要组成部分是端点缓冲区。USB主机端通过发送USB数据到USB设备端的缓冲区实现数据的收到功能。USB端点按功能可分为控制端点和数据端点。

控制端点在USB设备端就是通过0地址端点。每个USB设备都必须包括一个USB控制端点,并且这个控掉端点是双向的。控制端点的数据传输使用控制传输方式,其主要功能使主机实现对设备的配置如设备描述符配置描述符和字符串描述的获取和对设备的配置(如设备地址的设置等)。

USB 0端点是双向的,其他端点都是单向的。

数据端点从理论上来讲是可选的。数据端点用于数据的传输,传输的类型(控制传输中断传输批量传输,同步/等时传输)等属性。这些属性信息是通过端点描述符来描述符。

在USB体系中,数据的传输方向永远是以主机为参考对象的。向主机发送数据叫做IN,从主机发出数据叫OUT.USB设备还可以支持双向传输控制数据。

USB设备的端点按组进行分类,这个组在USB主语中叫做USB接口,通过接口描述符来描述。一般一个USB接口代表一个USB功能,但也有一些复杂设备是通过多个接口的联合来实现的,如UVC摄像头和UAC音频。

复杂设备的接口关联通过接口关联描述符(IAD)来描述的。

USB主机在进行设备配置前,是需要获取USB的配置描述符。第二次获取的配置描述包含了USB设备的所有接口,端点信息。USB主机通过遍历USB设备描述符中所有的设备接口及转换接口信息,并且查看分析各接口下对应的USB端点信息。

查看端点信息不会影响设备的配置状态。只有对设备进行配置如选择配置,选择接口才会设备的工作状态。

USB管道

USB主机和设备使用管道进行数据通讯。管道是USB主机在软件层面上的一个抽象.管道可以理解为USB主机端对USB端点的软件抽象,所以它包括USB设备端点的所有信息。由于USB数据的收发都是由主机发起的,所以我们可以理解为USB主机通过对USB设备提供的端点进行软件抽象成管道,在主机端通过管道与USB设备的端点进行数据通讯。

USB主机通过选择USB配置或USB接口(转换接口)实现对USB管道的“打开”。当USB管道“打开”后它们是活动的,可以进行数据通讯。

未配置的端点称为端点,而配置的端点称为管道。

标签:USB,主机,接口,管道,端点,设备
From: https://www.cnblogs.com/linhaostudy/p/18343261

相关文章

  • windows xusb21.sys驱动对虚拟手柄个数限制
    由于windows授权限制,云游戏服务器上的windows版本多数为server2019部分游戏用到了手柄,调研后基于https://github.com/nefarius/ViGEmBus来魔改虚拟出84个手柄(一个容器只跑一个游戏,一个游戏独立使用4个手柄,一台云游戏服务器预开21个容器,所以理论至少需要能创建84个手柄)但是实......
  • Windows不支持用USB连接多部手机
    上下文一开始我以为是我的USB坏了,但我发现换数据线也不好解决。我感觉每次好像在我连接两部手机后就会出问题。然后我又发现驱动名称叫libusbk,经过一番搜索后,我在隔壁libusb发现问题所在。解释Windows的WinUSB不支持连接多部手机。连接多部手机后会导致无法再连接手机。消息来......
  • Windows不支持用USB连接多部手机
    上下文一开始我以为是我的USB坏了,但我发现换数据线也不好解决。我感觉每次好像在我连接两部手机后就会出问题。然后我又发现驱动名称叫libusbk,经过一番搜索后,我在隔壁libusb发现问题所在。解释Windows的WinUSB不支持连接多部手机。连接多部手机后会导致无法再连接手机。消息来......
  • Windows不支持用USB连接多部手机
    上下文一开始我以为是我的USB坏了,但我发现换数据线也不好解决。我感觉每次好像在我连接两部手机后就会出问题。然后我又发现驱动名称叫libusbk,经过一番搜索后,我在隔壁libusb发现问题所在。解释Windows的WinUSB不支持连接多部手机。连接多部手机后会导致无法再连接手机。消息来......
  • Speedybee405v3 与 msp_rx 的 USB 通信
    我正在尝试让飞行控制器405speedybeev3使用Pythonmultiwii通过USB进行通信。我将接收器设置为msp_rx,但无法显示IMU数据。当我将USB插入计算机并使用multiwii.py时,它应该获取IMU数据,但飞控却没有不显示任何值。我理解你想通过Python的multiwii库读取......
  • 果宇科技与某迪公司应用布袋除尘器的管道插入式粉尘检测仪案例
    项目背景:某迪为了确保工业生产的安全、‌提高生产效率以及保护环境,‌保障工作人员的健康,该企业选购24台管道插入式粉尘检测仪,下面果宇科技小编分享管道插入式粉尘检测仪在某迪公司布袋除尘器的应用案例:技术背景与工作原理管道插入式粉尘检测仪概述:GY/VGD-100-PIL管道插入......
  • 记录一次IPhone和Android手机usb网卡驱动的移植过程
    记录一次IPhone和Android手机USB网卡的移植过程移植环境IPhoneUSB网卡的快速移植1.**添加驱动支持**2.USB连接IPhone手机,留意手机的`信任弹窗`并点击确定和输入密码3.检查USB网卡是否生成4.如果生成的网卡没有自动分配IP,安装udhcpc5.验证测试AndroidUSB网卡的快......
  • 管道与重定向
    文章目录 1.重定向2.输出重定向 3.输入重定向3.1通过输入重定向创建文件:4.管道4.1常用小命令5.参数传递:xargs总结1.重定向文件描述符:进程在运行的过程中根据需要会打开多个文件,每打开一个文件会有一个数字标识。这个标识叫文件描述符。进程使用文件描述符来......
  • WSL - 网络摄像头 USB:无法通过索引打开摄像头
    我已按照本教程进行操作:https://github.com/dorssel/usbipd-win/wiki/WSL-support#usbip-client-tools我成功将USB摄像头与WSL2连接,但无法连接打开摄像头。$lsusbBus002Device001:ID1d6b:0003LinuxFoundation3.0roothubBus001Device002:ID046d......
  • Redis中pipeline(管道)详解
    redis管道pipeline举个例子:小卖铺免费让你拿50瓶饮料,你是一次拿一瓶拿回家,还是打包一次或者多次拿回家?概念Redis管道(pipelining)是一种在客户端向服务端发送多个请求而不等待响应的技术。它可以显著提高Redis应用程序的性能。管道的主要思想是客户端向服务端发送多个请求......