当前位置: 首页 > news >正文

USB基础知识--Endpoint与pipe

参考文档:《FX3_PROGRAMMERS_MANUAL》

第一部分:用一个比喻来理解

想象一下,USB设备(比如你的U盘)是一个公司大楼,而主机(比如你的电脑)是邮局

  1. 公司大楼(USB设备)

    • 这个大楼有很多个部门,每个部门负责处理特定的事情。
    • 比如:
      • 前台(Endpoint 0):这是公司唯一对外的总机。所有来联系公司的人,都必须先通过前台。前台负责确认对方身份、问清楚要办什么事,然后转接到相应的部门。这个部门是必须存在的。
      • 收件部(一个OUT端点):专门接收从邮局寄来的包裹(数据)
      • 发件部(一个IN端点):专门把公司要寄出的包裹送到邮局。
  2. 邮局(USB主机)

    • 邮局知道这个公司的每个部门地址。它不会把包裹胡乱扔进公司大门,而是会建立一条条专用的邮路(Pipe/管道),直接通到对应的部门。
    • 比如,邮局会建立一条路到“收件部”用来送包裹,建立另一条路到“发件部”用来取包裹。

现在,我们把比喻对应回USB术语:

  • 公司大楼 = USB设备(如U盘、鼠标、键盘)
  • 部门 = Endpoint(端点)
  • 前台 = Endpoint 0(控制端点,用于管理设备)
  • 收件部 = 某个OUT端点(接收主机发来的数据)
  • 发件部 = 某个IN端点(向主机发送数据)
  • 邮局 = USB主机(你的电脑)
  • 专用邮路 = Pipe(管道)(主机软件与设备端点之间的逻辑连接)

所以,Endpoint的本质就是:USB设备内部专门负责一种数据收/发任务的“小窗口”或“端口”。


第二部分:结合文档的详细解释

现在你有了基本概念,我们再回头看文档里的专业描述,就很容易理解了。

1. Endpoint是逻辑实体(Logical Entity) 这意味着它不是一个物理的插口,而是设备内部程序定义的一个“地址”或“邮箱”。数据包会通过USB线缆传过来,设备内部的芯片会根据数据包上的“地址”(即端点号)把数据送到对应的“邮箱”里。

2. 方向性(IN 和 OUT) 这是USB中非常重要的概念,但很容易混淆。记住,方向永远是相对于主机(你的电脑)而言的

  • OUT:数据从主机流出 -> 到设备。比如,电脑把文件写入U盘。
  • IN:数据流入主机 <- 从设备。比如,U盘把文件读给电脑。

3. 端点0(Endpoint 0)的特殊性

  • 每个USB设备必须要有端点0。
  • 它就像公司的“前台”或“总机”,用于控制传输
  • 当你把USB设备插上电脑时,电脑(主机)就是通过端点0来询问设备:“你是谁?”(获取描述符)、“你叫什么名字?”(获取字符串)、“你需要多少电压?”等等。这个过程叫做枚举
  • 端点0没有描述符,它是“天生”就存在的。

4. 端点描述符(Endpoint Descriptor) 这就像是每个部门的“工作说明书”,告诉主机这个部门是干什么的、能处理多大的包裹、工作节奏怎么样。描述符里包含了:

  • 端点号:是哪个部门(比如端点1)。
  • 方向:是收件部(OUT)还是发件部(IN)。
  • 传输类型:这个部门处理什么类型的业务(下面会讲)。
  • 最大包大小:这个部门一次能处理多大的包裹(比如每次最多512字节)。
  • 轮询间隔:主机应该多久来问一次这个部门有没有新包裹(对于中断传输)。

5. 传输类型(Transfer Types) 不同的端点(部门)处理不同类型的数据(业务),这决定了数据传输的优先级和可靠性。文档中提到了四种:

  • 控制传输(Control):最重要的传输,必须通过端点0进行。用于查询、配置设备。就像通过“前台”办理重要手续。
  • 批量传输(Bulk):用于传输大量、不要求实时性、但必须准确的数据。比如U盘传文件、打印机打文档。就像“物流部”,不要求快,但要求货物不能出错。
  • 中断传输(Interrupt):用于传输少量、但需要设备及时响应数据。比如鼠标移动、键盘按键。主机会定期(比如每10毫秒)来“问一下”鼠标:“你动了吗?”。
  • 同步传输(Isochronous):用于传输实时性要求高的连续数据流,可以容忍少量错误。比如摄像头视频流、USB音箱音频流。就像“直播流”,要求持续不断,偶尔卡一下或有点马赛克可以接受。

总结

对于一个USB小白来说,你可以这样记住:

Endpoint(端点)就是USB设备内部的一个“专用窗口”。

  • 每个窗口有编号(如1,2,3...)。
  • 每个窗口有方向(IN是设备往外送数据,OUT是设备收数据)。
  • 有一个特殊的0号窗口是“接待窗口”,负责管理通信。
  • 不同窗口处理不同类型的业务(控制、文件、实时流等)。
  • 电脑通过建立到这些窗口的“管道”来和设备高效地收发数据。

希望这个解释能让你彻底明白!这是理解整个USB通信模型的基础,非常重要。

http://www.dtcms.com/a/541800.html

相关文章:

  • SpringBoot拦截器实战与原理剖析
  • 把握智能语音风口:云蝠智能【声・纪元】VoiceAgent 实时语音智能论坛邀您同行
  • 一文吃透二叉树、完全平衡树、红黑树原理及C语言实现
  • 做网站用别人的图片沈阳设计公司排名
  • 浙江自己如何做网站wordpress 做后台
  • 网站 模板下载陕西富通建设有限公司网站
  • 淄博高效网站建设免费网站建站模板
  • Bootstrap4 Jumbotron详解与使用指南
  • IoT技术在产线实践中的应用
  • 合格VR大空间企业:核心要素有哪些?
  • 06.OpenStack网络管理
  • C++学习记录(23)智能指针
  • 网站内容策划方案wordpress底部版权信息修改
  • python 在class中几种函数的定义和用法
  • 电商数据中台基石:通过 API 构建淘宝商品实时数据源
  • 川崎机器人焊接电源气体省气
  • 理想汽车基于 Hologres + Flink 构建万亿级车联网信号实时分析平台
  • php教育视频网站开发如何做古诗词网站
  • 自发购卡网站在吗做手机建立网站软件
  • Git Tag 理解和使用
  • 如何写一个WebRTC ACE音频应用处理模块
  • 当机器拥有感觉:从电子皮肤到视频神经系统的具身智能革命
  • 快速搭建网站服务器网站推广策划方案
  • 【Linux基础知识系列:第一百六十三篇】创建虚拟网络:Linux网络桥接
  • 东方财经报道|深兰科技落户张江,AI医疗与情感陪伴并进,拓展智能未来版图
  • 跨区域多院区如何破局?浙江三甲医院实现核心医疗系统国产化重构
  • 做网站的怎么挣钱wordpress设计漂亮的页面
  • 【前端】圆角和非圆角实现渐变边框的区别(border)
  • 模板网站免费淘宝网页版官网
  • 苏州建设工程招标在哪个网站电子商务网站建设需要什么