USB协议详解第13讲(USB传输-控制传输及事务组成)

news/2024/10/19 19:46:55

1.前言

前面讲过USB一个传输由多个事务组成,一个事务由多个包实体组成。传输又分为控制传输、同步传输、批量传输、中断传输四种,今天我们主要讲解控制传输三个阶段及事务组成。

控制传输是一种特殊的传输方式,且传输过程相对复杂一些,但十分重要。当USB设备初次连接主机时,用控制传输传送控制命令等对设备进行配置,同时设备接入主机时,需要通过控制传输去获取USB设备的描述符以及对设备进行识别,在设备的枚举过程中都是使用控制传输进行数据交换。

控制传输主要包括控制读传输控制写传输无数据控制传输三种,如下图。

2.控制传输的结构

一次完整控制传输可以分为三个阶段:初始设置阶段--->数据阶段(可选)--->状态信息阶段

2.1初始设置阶段

初始设置阶段用于固定建立SETUP事务,标志一次控制传输的开始。

2.2数据阶段(可选):

初始设置阶段中命令如果要求读/写数据,数据阶段就会在这一阶段来具体交换数据(如果没有数据交换要求则可省去数据阶段步骤,具体有SETUP事务标准请求命令决定,如下)。

主机如果是控制读数据请求,则数据阶段为一个或者多个IN事务;

主机如果是控制写数据请求,则数据阶段为一个或者多个OUT事务;

主机如果是无数据的控制请求,则没有数据阶段。

数据阶段是由一到多个IN/OUT事务组成。这是由于有时候存在一个事务传不完的数据,所以可能存在多个连续IN/OUT事务的情况,在同一次数据传输阶段中事务类型(读写)必定相同。

2.3状态信息阶段(核心)

状态信息阶段是要返回数据传输的成功与否,具体也需要看控制传输的类型。需要注意的是,状态信息的数据传输方向与数据阶段方向相反。其实我们来思考下,主机给设备把一推数据发送完毕了(OUT事务),主机肯定要请求一个IN事务,让设备把自己的接收情况发给主机,你设备要给我说你在本轮接收数据有没有问题,同样的,设备把数据发送给主机(IN事务),主机肯定要发起一个OUT事务请求,告诉设备主机的接收情况,告诉设备本轮接收数据有没有问题。

3.抓包分析

3.1控制读传输抓包分析

控制读传输在初始设置阶段会发起一个SETUP事务,从这个SETUP事务我们可以知道是设备给主机传输数据,并且数据长度是255,具体的协议后期会详解,大家在这里把先控制传输理解到位,接着在数据阶段完成数据交换(因为是设备给主机传输数据,所以是数据阶段是IN事务),最后在状态信息阶段主机给设备发送一个OUT事务表明自己接收是否异常。

3.2写控制传输抓包分析

控制写传输在初始设置阶段同样会发起一个SETUP事务,从这个SETUP事务我们可以知道是主机向设备传输数据,并且数据长度是12,接着在数据阶段完成数据交换(因为是主机给设备传输数据,所以数据阶段是OUT事务),最后在状态信息阶段主机发起一个IN事务,请求设备回答接收情况。

3.3无数据的控制传输抓包分析

无数据控制传输在初始设置阶段同样会发起一个SETUP事务,从这个SETUP事务看到数据长度是0,因此无数据阶段,最后在状态信息阶段主机发起一个IN事务,请求设备回答接收情况。

4.控制传输各速率下支持最大包长度

5.控制传输事务组成如下

6.传输、事务、包组成学习架构图

本架构图后期再学习中会一步一步更新,每一节之后也会逐步完善并更新,最后会完整的展示出来传输、事务、包的结构,让大家在学习过程中对协议框架不混乱。

·

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

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

相关文章

图片隐写的几大思考方向

一、看文件类型 特别是gif文件,可以用stegsolve的Frame Browser逐帧查找看有无flag线索题目链接:https://buuoj.cn/challenges#/金三胖 二、想这几个方向 (1)Stegsolve方向 对应方向:LSB、滤镜查找 ①LSB 1.选Analyse/Data Extract2.勾选以下设置3.点Preview,发现里面出现…

DEDE文章{dede:pagebreak/}翻页错位的解决方法

问题描述 在使用DEDE的 {dede:pagebreak/} 标签进行文章分页时,点击下一页后,文章内容会错位,出现在层外面。 解决方法检查文章中的HTML结构问题可能是因为文章内容中包含 div 层,而这些 div 层在分页时会导致布局错乱。 解决方法:将文章中的 div 层替换为 p 标签。<p&…

怎样修改公司网站的资料?网站怎么在后台修改文字?

修改公司网站的资料通常涉及以下几个步骤,具体操作可能会根据网站的技术栈和管理后台的不同而有所差异:登录管理后台:使用管理员账号登录到公司网站的管理后台。这通常是通过网站上的“登录”或“管理”链接进入。导航至编辑页面:在管理后台中找到需要修改的内容对应的编辑…

如何修改网站指定模板?网站怎么修改密码?

修改网站指定模板通常涉及以下几个步骤,具体操作可能会根据使用的网站构建工具或平台(如WordPress, Joomla, Drupal等)有所不同:备份当前模板:在进行任何修改之前,确保备份当前正在使用的模板文件和数据库。这可以防止在修改过程中出现错误导致网站无法正常访问。选择编辑…

判断隐写的第一步:识别文件类型

遇到不给文件后缀的文件题目,使用TrIDNET工具进行分析可以快速得出文件结果

20241019

这两天的题和今天的考试题。都是城外的 今天考试爆蛋了。【探险队】 题意: 思路:发现这是个基环树森林,考虑怎么做。发现如果是一条链的话很好做,直接一选一不选就行了,那就可以先这样把基环树都搞成一个个环。然后想到对于一个环可能它之前连着个链,然后最后一个被选了,…

网站没后台怎么修改内容?

如果网站没有后台管理系统,修改内容通常需要直接编辑网站的文件。以下是一些常见的方法:直接编辑HTML/CSS/JS文件:如果网站是静态的,即主要由HTML、CSS和JavaScript文件组成,可以直接在服务器上找到这些文件并进行编辑。 使用FTP客户端(如FileZilla)连接到服务器,下载需…

无缝轮播图

## vue3 无缝轮播图 <template><!-- @touchend="handleTouchEnd" --><!-- @touchstart="handleTouchStart" --><div class="carousel-conainer"><divclass="carousel-list":style="{ transform: `tra…