USB端点

news2024/9/20 18:33:39

USB端点

  • 各端点使用循环冗余校验(CRC)来检测传输中发生的错误。

根据 USB 规范,设备端点是 USB 设备中一个独特的可寻址部分,它作为主机和设备间通信流的信息源或库。
USB 枚举和配置一节介绍了设备向默认地址做出响应的步骤。
枚举过程中,该事件在主机读取端点描述符等其他描述符信息之前发生。
在该过程中,需要使用一套专用的端点用于与设备进行通信。
这些专用的端点(统称为控制端点或端点 0)被定义为端点 0 IN 和端点 0 OUT。
虽然端点 0 IN 和端点 0 OUT 是两个不同的端点,但对开发者来说,它们的构建和运行方式是一样的。每一个 USB 设备都需要支持端点 0。因此,该端点不需要使用独立的描述符。
除了端点 0 外,特定设备所支持的端点数量将由各自的设计要求决定。
简单的设计(如鼠标)可能仅要一个 IN 端点。
复杂的设计可能需要多个数据端点。
USB 规范对高速和全速设备的端点数量进行了限制,即每个方向最多使用 16 个端点(16 个 IN、16 个 OUT,总共为 32 个),其中不包含控制端点 0 IN 和 0 OUT 在内。低速设备仅能使用两个端点。
USB 类设备可对端点数量设定更严格的限制。
例如,低速人机界面设备(HID)设计的端点可能不超过两个 — 通常有一个 IN 端点和一个 OUT 端点。数据端点本身具有双向特性。只有对它们进行配置后才支持单向传输(具有单向特性)。例如,端点 1 可作为 IN 或 OUT 端点使用。设备的描述符将正式使其成为一个 IN 端点。

各端点使用循环冗余校验(CRC)来检测传输中发生的错误。

CRC 是一个用于检测错误的计算值。USB 规范中对实际的计算公式进行了解释,这些计算由 USB 硬件进行,这样可确保能够发出正确的响应。数据操作的接收方对数据进行CRC 检查。如果两者匹配,那么接收方将发出一个 ACK。如果两者匹配失败,便不会发出任何握手数据包。
在这种情况下,发送方将重新发送数据。
USB 规范定义了四种端点,并根据类型以及所支持的设备速度限制了数据包的尺寸。
根据设计要求,开发者使用端点:
描述符指出端点类型以及数据包最大尺寸。四种端点和各自的特性如下:
控制端点 — 这些端点支持控制传输(即所有设备支持的传输)。控制传输通过总线发送和接收设备的信息。它的优点是可以保证传输准确。它能够立即检测到错误的发生,并重新发送数据。控制传输在低速和全速设备上使用 10%的保留带宽(在高速设备上为 20%)并提供 USB 系统级控制。
中断端点 — 这些端点支持中断传输。这种传输非常适合需要使用高度可靠的方式来传输少量数据的设备。它通常用于HID 设计。这种传输的名称可引起误会。实际上,它并不是一个中断,但使用了一个轮询率。进行该传输时,主机将在预计时间间隔内检查数据。通过及时检测错误并重新传输数据,该传输可确保数据操作的准确性。在低速和全速设备上,中断传输使用带宽的 90%,而在高速设备上,所用的带宽为 80%。同步端点与其共享该带宽。
中断端点的数据包最大尺寸与设备的速度相关。高速设备支持最大为 1024 字节的数据包。全速设备支持最大为 64 字节的数据包。低速设备支持最大为 8 字节的数据包。
批量端点 — 这些端点支持批量传输,即是在高度可变的时间内传输大量数据并且可用任何带宽空间的传输。它们是USB 设备的最通用传输类型。因为用于批量传输的带宽并不是固定的,该传输的传送时间也是可变的。传送时间取决于总线上的可用带宽,由于该因素,便不能预期实际的传送时间。通过及时检测错误并重新传输数据,该传输可确保数据操作的准确性。批量传输非常适合对时间没有严格要求的大量数据传输。
批量端点的数据包最大尺寸与设备速度相关。高速设备支持最大为 512 字节的数据包。全速设备支持最大为 64 字节的数据包。低速设备不支持批量传输。
同步端点 — 这些端点支持同步传输,即具有预定带宽的连续性实时传输。由于同步传输没有错误恢复机制和握手数据包,它们需要支持容忍错误的数据流。错误由 CRC 字段检测,但不会被修改。因此,同步传输可保证传输速度,但以数据的准确性作为代价。流式音乐或视频即是使用同步端点的应用示例,因为我们的耳朵和眼睛通常忽略偶尔被错过的数据。在低速和全速设备上,同步传输使用带宽的 90%(在高速设备上,所用的带宽为 80%),中断传输与其共享该带宽。
高速设备支持最大为 1024 字节的数据包。全速设备支持最大为 1023 字节的数据包。低速设备不支持同步传输。有关同步传输,请注意一些重点内容。为了保证数据传输,您通常需要使用三个缓冲区,一个正在传输数据、一个已加载数据和一个正在进行加载数据。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2085653.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

能进大厂的自动化测试面试题

前言 每次到金九银十都避免不了要聊一聊面试题了,如今九月已经是中下旬了,马上就要到十月份了,还在投简历找工作的小伙伴可以看看我这几天发的文章,最近发的都是面试题,如果需要笔者教一下大家怎么写简历的小伙伴可以…

光伏高压并网升压箱变

在当今能源领域的变革浪潮中,光伏能源以其清洁、可再生的显著优势,成为了备受瞩目的焦点。而光伏高压并网升压箱变,则是实现光伏电能顺利接入高压电网的核心设备。 光伏高压并网升压箱变宛如光伏能源系统中的一位“大力士”,承担着…

一张图浏览CSS Functions

点我CSS Functions思维导图下载 函数文章链接示例属性函数var attr env介绍访问文章示例地址

银河麒麟编译opencv库并配置qt环境

1.opencv下载版本:opencv4.5.5,qt安装的是qt5.12.11,系统版本: 2.首先应该安装cmake工具: 下载地址:https://cmake.org/download/ 安装步骤: 1)解压; 2)进入解压后的文件夹cd cmake-3.30.2 3)./bootstrap 4)sudo make 5)sudo make install 3.下载opencv,下…

实现 GridLayoutManger 和 StaggeredGridLayoutManager 混排的工具类

序言 最近项目中要实现瀑布流的混排,于是写了一些工具类来实现。使用了这个工具类,可以处理混排,可以处理间距。都集成在一个接口中。 最后效果类似这样。 工具类 GridItemUI 下面的这个类是用来实现在GridLayouManger中混排的。 packag…

硬件-PCB-正片(常用默认)和负片

文章目录 问题:什么是PCB的正片和负片?1.正片设计默认是无铜的(常用)2.负片设计是默认有铜的3.网友评论道友:我们的对手从来不是别人,而是自己。如果有什么必须战胜,那就是过去的自己。战胜自己…

Nginx 部署前端 Vue 项目全攻略

一、前期准备工作 要将 Vue 项目部署到 Nginx ,需要做好以下准备工作: Nginx 的安装: 对于 Centos 系统,可以通过 yum install -y nginx 命令来安装 Nginx 。 对于 Windows 系统,需要在 Nginx 官网下载相应的安装包并…

数据迁移新技能,MongoDB轻松同步至ClickHouse

在当今数据驱动的世界中,企业的成功依赖于对数据的高效管理和精准分析。数据迁移是实现这些目标的关键环节,而选择合适的工具可以让这项工作变得更加轻松和高效。ETLCloud 是一款创新的 ETL(提取、转换、加载)工具,它提…

(三)了解MySQL 【用户创建和权限/索引】

一、创建用户 DCL主要用于定义数据库的安全性和访问权限,包括创建用户、授予权限、撤销权限等。 CREATE USER 属于DCL因为它关注的是数据库的安全性和用户管理 格式 create user 用户名来源地址 [identified by [password] 密码 ]; 用户名:指…

Web开发:ABP框架中的服务调用原则--避免服务之间的直接依赖

示意图 (Service之间可以相互调用,使用依赖倒置原则:例如某个服务可注入到另一个服务,用法:private readonly IyyyService _yyyService;) 命名约定 WebAPI 控制器: 建议命名为 XXXXController 或 XXXXMa…

Linux学习(15)-网络编程:滑动窗口、拥塞控制、udp

本节学习内容 1.滑动窗口(1.滑动窗口的作用2.如果如果接收端填充的接收窗口为0,发送端接下来怎么处理3.糊涂窗口综合征4.tcp中nagle算法是什么) 2.拥塞控制 3.udp协议特点及编程流程 本节可能会用到的指令 ifconfig查看自己的ip地址 pi…

Scrapy添加代理IP池:自动化爬虫的秘密武器

在网络爬虫的世界里,IP地址的频繁更换是防止被目标网站封禁的有效手段。通过在Scrapy中添加代理IP池,你可以轻松实现自动化的IP切换,提高数据抓取的效率和稳定性。今天,我们就来详细讲解一下如何在Scrapy中添加代理IP池&#xff0…

使用 nuxi analyze 命令分析 Nuxt 应用的生产包

title: 使用 nuxi analyze 命令分析 Nuxt 应用的生产包 date: 2024/8/29 updated: 2024/8/29 author: cmdragon excerpt: 使用 nuxi analyze 命令可以帮助你深入了解生产包的结构和大小,从而做出针对性的优化。通过定期分析生产包,你可以识别并解决性能瓶颈,提高应用的加…

Linux 数据结构 内核链表 栈

内核链表&#xff1a; 1.一种链表结构能够操作多种类型的数据对象 2.节点包含数据变成数据包含节点 /*Copyright (c) 2008-2012 Red Hat, Inc. <http://www.redhat.com>This file is part of GlusterFS.This file is licensed to you under your choice of the…

从雨滴到数据--双翻斗雨量传感器让雨量可视化

CG-04-D1双翻斗雨量传感器是一种重要的水文、气象仪器&#xff0c;主要用于测量自然界中的降雨量&#xff0c;并将降雨量转换为以开关量形式表示的数字信息量输出&#xff0c;以满足信息传输、处理、记录和显示等需求。以下是对双翻斗雨量传感器的详细介绍&#xff1a; 一、工…

手机号码归属地查询如何用PHP进行调用

一、什么是手机号归属地查询接口&#xff1f; 手机号码归属地查询接口又叫手机号归属地、手机号信息查询、手机号查询&#xff0c;通过手机号查询归属地信息、是否虚拟运营商等。该接口可支持三大运营商&#xff0c;移动、电信、联通等。 二、手机号归属地查询接口适用场景有…

《Toolformer: Language Models Can Teach Themselves to Use Tools》论文解读

0. 引言 《Toolformer: Language Models Can Teach Themselves to Use Tools》 论文主要探讨了语言模型&#xff08;LMs&#xff09;在解决新任务时的能力和局限性&#xff0c;并提出了一个名为 Toolformer 的新方法。该方法通过简单 API 接口将外部工具与 LMs 相结合&#xf…

趣味算法------过河卒

目录 ​编辑 题目描述 解题思路 具体代码 总结 问题描述&#xff1a; 解决方案&#xff1a; 代码实现&#xff1a; 关键点&#xff1a; 题目描述 棋盘上 A 点有一个过河卒&#xff0c;需要走到目标 B 点。卒行走的规则&#xff1a;可以向下、或者向右。同时在棋盘上 C…

海外仓系统是什么?你想要了解的都在这里

对从事海外仓经营的人来说&#xff0c;海外仓系统肯定是不陌生的。但是对一些刚进入海外仓领域的货代代理&#xff0c;或一些家庭海外仓的经营者来说&#xff0c;还是有些糊涂&#xff0c;不知道自己到底要不要引入这样的管理系统&#xff0c;引入海外仓系统之后到底能帮自己做…

尚品汇-订单接口实现(四十)

目录&#xff1a; &#xff08;1&#xff09;搭建service-order-client模块 &#xff08;2&#xff09;微服务之间用户信息传递 &#xff08;3&#xff09;在web-all模块中添加接口 &#xff08;4&#xff09;下订单 &#xff08;1&#xff09;搭建service-order-client模…