USB协议详解第21讲(USB包-令牌类包)

news/2025/3/17 4:20:07/文章来源:https://www.cnblogs.com/linhaostudy/p/18503912

1.令牌类包的分类

令牌类包有SETUP令牌包、IN令牌包、OUT令牌包。

2.令牌类包的组成

我们今天看令牌类包的详细结构,令牌包的内容由PID域+地址域+5bit CRC域,下图为令牌类包包各个域和抓包协议的对应图。

3.令牌类包的功能

所有令牌包都是主机发起的,作用就是告诉设备主机要干啥,要求设备接下来是收数据还是发数据,根据令牌包的不同接下来的数据含义也会不同。

4.三种令牌包协议图

(1)SETUP令牌包

只用在控制传输中通知设备将要输出一个数据包(只是一个通知作用),也就是通知哪一个设备的哪一个端点接下来要发送一包数据了。SETUP令牌包后只使用DATA0数据包,且只能发送到设备的控制端点

当设备的端点在收到SETUP令牌包后,接下来会等待接收主机发来的设置信息(你不是告诉我你要发送数据嘛,我等着)。协议如下图。

(2)OUT令牌包

通知设备主机将要输出一个数据包(只是一个通知作用),也就是通知哪一个设备的哪一个端点接下来主机要发送一包数据了,你要准备接着。OUT令牌包后使用DATA0/DATA01数据包,可以发送到任意类型的端点

当设备的端点在收到OUT令牌包后,接下来会等待接收主机发来的数据(你不是告诉我你要发送数据嘛,我等着)。协议如下图。

(3)IN令牌包

通知哪一个设备的哪一个端点接下来要发送一包数据给主机只是一个通知作用),当设备收到主机发送的IN令牌包,就会发送数据包给主机。协议如下图。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vmware关于桥接网络【关于安装虚拟机】

桥接网络:在你当前网络环境下,再分配一个ip地址 桥接就是让虚拟机和你的宿主机处于同一个局域网段 网络地址转换:NAT就是在你宿主机的网络环境下 再生成一个虚拟局域网,和宿主机不是同一个网段的 主机模式:虚拟机就是单机模式了,无法和他人通信

FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频

​ijkplayer是Bilibili公司(简称B站)基于FFmpeg3.4研发并开源的国产播放器,它可运行于Android和iOS系统,既支持播放本地视频文件,也支持播放网络上的流媒体链接。之前的文章《Linux编译ijkplayer的Android平台so库》介绍了如何编译获得App工程所需ijkplayer的so文件,接下…

CSP-J 2024第二轮上机试题网传已出

请参考博客: https://blog.csdn.net/jacro111/article/details/143250561谢谢关注!!!

【RocketMQ】路由中心 NameServer

1 前言 上节我们准备了源码以及环境的运行,其中我们启动的时候,会首先启动 NameServer,那么这节我们先看下组件 NameServer,看看它主要是干什么的,在整个生产消费的链路中充当了什么角色,发挥着什么作用。 2 NameServer RocketMQ路由管理、 服务注册及服务发现的机制,…

CUDA编程学习 (1)——CUDA C介绍

这篇文章是关于CUDA编程的基础介绍,主要聚焦于CUDA C的概念与内存管理。文章首先阐明了CUDA的异构计算模型,区分了CPU(host)和GPU(device)的角色,并介绍了它们之间的数据移动和通信机制。接着,详细说明了CUDA程序的执行流程,包括内存分配、数据传输和核函数的调用。1.…

博图SCL均值计算

这一篇学习笔记在新浪博客记录过,这里再记录一次。 工作中有时候会需要做一些均值计算,比如计算某个测量值近一分钟的均值,近一小时均值,近一天的均值。今天在家休息,试着做一下分钟均值,按照每秒一个数据,比如现在时刻10:07:10,那么计算从10:06:11到10:07:10这个时间段…

CUDA编程学习 (2)——CUDA并行性模型

这篇文章深入探讨了CUDA编程中的并行性模型,重点介绍了基于kernel的单指令多数据(SPMD)编程。首先,通过向量加法示例,展示了CUDA内核函数的编写与调用,并解释了__global__、__device__和__host__的不同用法。接着,文章扩展到多维网格配置,演示如何处理图像数据,如RGB转灰…

SLF4J 中的适配器模式

什么是适配器模式 适配器模式中,适配器包装不兼容指定接口的对象,来实现不同兼容指定接口。 SLF4J 中的适配器模式 SLF4J 是一个日志门面系统,其中提供了统一的 Logger 等接口,许多框架都会面向 SLF4J 打印日志,这样就不会和具体的日志框架耦合在一起,框架使用者也就能够…

Pbootcms留言“提交成功”的提示语怎么修改

要在 PbootCMS 中修改留言“提交成功”的提示语,可以按照以下步骤操作:定位文件:打开 apps/home/controller/MessageController.php 文件。查找代码段:在文件中找到大约第 103 行的代码段,该段代码如下:if ($this->model->addMessage($data)) {session(lastsub, ti…

Protues中51单片机按键无法复位(已解决)

前言 昨晚用 Protues 搭建了 51 的最小系统电路,在实物中好用的复位电路,到仿真里不能正常复位了。 51 单片机是高电平复位,所以在运行时 RST 引脚应该是低电平,但在仿真中 RST 引脚一直保持高电平,导致按下按键也不能复位单片机。解决方法 我在网上搜索的解决方法一共有两…

南昌航空大学-22207316-涂高杰-JAVA第一次blog作业

一.前言 本学期新增JAVA的面向程序设计课程,为增加学生编写能力开始了本学期的PTA作业,以及接下来我将根据我的实际情况总结前三次PTA题目集中最后一题并讲诉自己对Java的学习心得。从这三次PTA作业中学习到的了对ArrayLis、Vector等自动增长的数组的使用方法,学习到了许多Ja…