首页 > 其他分享 >USB协议详解第17讲(USB事务总结)

USB协议详解第17讲(USB事务总结)

时间:2024-10-20 14:34:19浏览次数:7  
标签:事务 USB 17 Setup packet 传输 详解 Data

1.USB传输回顾

前面讲了四种传输的类型的事务组成,包括控制传输,同步传输,批量传输,中断传输。

2.USB事务总结

本节我们来对事务(transaction)相关内容做以总结,从前面学习中我们可以看到其实事务有三种类型,Setup事务、Data IN事务、Data OUT事务。

  • Setup事务:主要向设备发送控制命令;
  • Data In事务:主要从设备读取数据;
  • Data OUT事务:主要向设备发送数据。

回顾下前面我讲的传输、事务、包的关系,"某领导和一个早起的程序员进行了一次交流,说了5件事"。其实这里的"这次交流"就相当于USB的一次传输,"说了5件事"就相当于这次传输过程中的5个事务,当然每件事肯定有若干句对话,就相当于每个事务里面的各种包。

其实USB所有类型的事务(Setup事务、IN事务、OUT事务)都是由3个包组成(令牌包『Token packet』、数据包『Data packet』、握手包『Handshack packet』),但是,但是,但是除了同步传输所用到的事务,同步传输事务由2个包组成(令牌包、数据包),没有握手包,不会再有其他可能,USB事务组成如下图。

其中所有传输的所有事务的令牌包总是由主机发起,所以我们说USB一切事务都是USB主机操纵的,所有的事务都是主机发起的;数据包含本次传输的数据负载;握手包主要是数据接收方回应数据发送方数据是否正常接收到。

标签:事务,USB,17,Setup,packet,传输,详解,Data
From: https://www.cnblogs.com/linhaostudy/p/18487256

相关文章

  • USB协议详解第18讲(USB包-初探)
    1.USB传输架构和包的组成本节我们开始对USB包进行深入讲解,USB所有的传输都会被分成包进行传输,不同类型的包里面包含着不同的域(后面一一学习)。传输架构和包的组成如下图。每个包都由SOP(包起始域)、SYNC(同步域)、PacketContent(包内容)、EOP(包结束域)四部分组成,其中SOP、SYNC、EOP为所......
  • USB协议详解第15讲(USB传输-批量传输及事务组成)
    1.前言前面讲过USB一个传输由多个事务组成,一个事务由多个包实体组成。传输又分为控制传输、同步传输、批量传输、中断传输四种,上一节我们讲了同步传输细节及事务组成,今天我们主要讲解批量传输及事务组成,批量传输也叫大容量传输。批量传输和同步传输类似,是使用批量事务(BulkTrans......
  • USB协议详解第16讲(USB传输-中断传输及事务组成)
    1.前言中断传输用于那些频率不高,但是对周期有一定要求的数据传输。具有保证的带宽,并能在下一个周期对先前错误的传输进行重传。中断端点在端点描述符中要报告主机对此端点的查询时间,主机会保证在小于这个时间间隔的范围内安排一次传输,比如HOST主机1ms内向鼠标设备请求一次数据。......
  • Nuxt.js 应用中的 build:before 事件钩子详解
    title:Nuxt.js应用中的build:before事件钩子详解date:2024/10/20updated:2024/10/20author:cmdragonexcerpt:build:before钩子在Nuxt.js中是一种有力的工具,使开发者能够在应用的构建流程开始之前进行自定义处理和配置。在处理动态需求和配置时,开发者可以充......
  • Nuxt.js 应用中的 app:templatesGenerated 事件钩子详解
    title:Nuxt.js应用中的app:templatesGenerated事件钩子详解date:2024/10/19updated:2024/10/19author:cmdragonexcerpt:app:templatesGenerated是Nuxt.js的一个生命周期钩子,在模板编译到虚拟文件系统(VirtualFileSystem,VFS)之后被调用。这个钩子允许开发......
  • Nuxt.js 应用中的 app:templates 事件钩子详解
    title:Nuxt.js应用中的app:templates事件钩子详解date:2024/10/18updated:2024/10/18author:cmdragonexcerpt:app:templates是Nuxt.js中一个强大的生命周期钩子,它在NuxtApp生成过程中调用。这一钩子允许开发者自定义、修改或添加新文件到构建目录,提供了......
  • Nuxt.js 应用中的 build:before 事件钩子详解
    title:Nuxt.js应用中的build:before事件钩子详解date:2024/10/20updated:2024/10/20author:cmdragonexcerpt:build:before钩子在Nuxt.js中是一种有力的工具,使开发者能够在应用的构建流程开始之前进行自定义处理和配置。在处理动态需求和配置时,开发者可以充分利用......
  • 【命令操作】信创终端系统上timedatectl命令详解 _ 统信 _ 麒麟 _ 方德
    往期好文:【功能介绍】麒麟桌面系统快速识别软件包依赖顺序的方法Hello,大家好啊!今天给大家带来一篇关于如何在信创终端系统上使用timedatectl命令的详细介绍。timedatectl是Linux系统中非常实用的时间管理工具,它允许用户通过命令行轻松设置系统时间、日期以及时区,特别适用......
  • 详解UDP-TCP网络编程
    目录UDP数据报套接字编程API代码示例--(回显)单个客户端UdpEchoServerUdpEchoClientUdpDictServer(词典)将服务端程序部署到云服务器上TCP流套接字编程API长短链接代码示例--(回显)多个客户端TcpEchoServerTcpEchoClientUDP数据报套接字编程APIDatagramSoc......
  • 详解Java之lambda
    目录lambda引入语法函数式接口lambda表达式的使用语法精简:代码示例:变量捕获局部变量捕获成员变量捕获lambda在集合中的使用lambda的优缺点lambda引入Lambda表达式是JavaSE8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。lambda表达......