首页 > 其他分享 >USB协议详解第12讲(USB传输-初探)

USB协议详解第12讲(USB传输-初探)

时间:2024-10-09 22:23:08浏览次数:1  
标签:事务 12 USB 批量 控制传输 传输 同步 初探

1.USB传输、事务、包的关系

USB传输、事务、包是从不同层次上去说明一次数据交互的三个概念。

举个例子可能更好些,"某领导和一个早起的程序员进行了一次交流,说了5件事"

OK,其实这里的"这次交流"就相当于USB的一次传输,"说了5件事"就相当于这次传输过程中的5个事务,当然每件事肯定有若干句对话,就相当于每个事务里面的各种包。

其实通讯协议就是如此,都是从现实生活中抽象出来的,任何通讯协议都可以类比现实生活中人与人之间的交流方式。

2.USB传输类型

USB传输有四种类型,也就是说虽然都是交流(传输),但是主题(传输类型)多种多样。四种传输包括控制传输、同步传输、批量传输、中断传输,每种传输类型使用的事务类型也有所不同。其中批量传输、同步传输每次传输需要一个或多个事务,中断传输每次传输只需要一个事务,控制传输包括三个过程(建立过程、数据过程、状态过程),建立过程和状态过程分别需要一个事务,数据过程则可能包含0个多个事务。

2.1控制传输

控制传输包括控制读传输控制写传输无数据的控制传输,主机在枚举设备的时候,首先进行插入检测,检测完毕之后,设备采用0号端点,以默认地址和主机进行控制传输来进行数据交互,进行传输的通道叫做控制管道。

2.2同步传输

同步传输使用同步事务(Isochronous Transactions)来传输数据。同步传输用在数据量大、对实时性要求高的场合,例如音频设备、视屏设备等,这些设备对数据延时敏感。

这种事务能保证传输的同步性。例如在USB摄像头中传输视频数据的时候会采用这种事务,这种事务能保证每秒有固定的数量传输带宽,但与Bulk传输不同,同步允许有一定的误码率,这样符合视频会议等传输的需求,因为视频会议首先要保证实时性,在一定条件下,允许有一定的误码率。

同步传输事务有只有两个阶段,即令牌阶段、数据阶段,因为不关心数据的正确性,故没有握手阶段。

2.3批量传输

批量传输是使用批量事务(Bulk Transactions)来传输数据。批量传输分为批量读传输和批量写传输两种。批量读使用批量输入事务,批量写使用批量输出事务。批量传输通常在数据量大、对数据的实时性要求不高的场合,例如USB打印机、扫描仪、大容量存储设备等。

2.4中断传输

中断传输是使用中断事务(Interrupt Transactions)来传输数据的。中断传输是一种可以保证主机查询频率的传输。中断端点在端点描述符中要报告主机对此端点的查询时间,主机会保证在小于这个时间间隔的范围内安排一次传输,比如HOST主机1ms内向鼠标设备请求一次数据。

3.传输总结及后期内容

下图主要对四种传输不同传输速率的有效带宽、最大数据包长度、传输错误管理、事务组成进行说明,后面会分4节文章来剖析每一种传输的作用及传输所用的事务类型。

标签:事务,12,USB,批量,控制传输,传输,同步,初探
From: https://www.cnblogs.com/linhaostudy/p/18455307

相关文章

  • USB协议详解第11讲(USB描述符-总结)
    描述符回顾总结1.其实所有的描述符都是USB设备用来描述自己属性及用途的,所以必须在设备端实现对应的描述符,主机会在枚举此设备的时候根据设备实现的描述符去确定设备到底是一个什么样的设备、设备需要的总线资源、和设备的通讯方式等等。2.每一个USB设备只有一个设备描述符,主要......
  • AI预测福彩3D采取888=3策略+和值012路或胆码测试10月9日新模型预测第105弹
            经过100多期的测试,当然有很多彩友也一直在观察我每天发的预测结果,得到了一个非常有价值的信息,那就是9码定位的命中率非常高,100多期一共只错了12次,这给喜欢打私房菜的朋友提供了极高价值的预测结果~当然了,大部分菜友还是走的正常渠道,因此,得想办法进行缩水,尽可能......
  • python——celery异常consumer: Cannot connect to redis://127.0.0.1:6379/1: MISCON
    1.检查Redis日志:查看Redis的日志文件(通常位于/var/log/redis/redis-server.log或者根据你的配置文件中指定的位置),以获取有关错误原因的详细信息。2.检查磁盘空间:确保你的服务器有足够的磁盘空间。使用以下命令检查磁盘使用情况:bashdf-h如果磁盘空间不足,清理一些不必......
  • JDK12~17的新特性:Switch增强,优化NPE,文本块,instanceof增强,record,sealed
    JDK14switch语句的增强:类似lambda的语法糖,不需要再写break了。提供yield实现返回值其中switch类型匹配属于预览,正常情况下是关闭的publicclassEnhanceSwitch{publicstaticvoidmain(String[]args){oldVersion();newVersion();}pri......
  • 上海晶安PLL多聚赖氨酸预处理细胞爬片适用于6孔板12孔板24孔板48孔板96孔板
    上海晶安生物一步法细胞爬片采用优质的玻片制成,厚度均为0.17mm,有圆形和方形。已处理,已灭菌,拆开即用。先进的玻片表面处理技术(TC处理→强吸附力)可促进细胞在玻片上贴壁生长,细胞贴壁牢固。即使在后期免疫组化、免疫荧光、原位杂交处理过程中也不易脱片,避免传统方法中从培养瓶转移......
  • [HY000][1267] Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8m
    问题描述:[HY000][1267]Illegalmixofcollations(utf8mb4_general_ci,IMPLICIT)and(utf8mb4_0900_ai_ci,IMPLICforoperation'='出现这种问题就是关联表的字符集不匹配1.查看数据库的字符集showvariableswhereVariable_namelike'collation%';结果:2.查看关联......
  • Day12-if选择结构
    Day12-if选择结构if单选择结构我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示语法:if(布尔表达式){//如果布尔表达式为true将执行的语句}实例:判断输入的字符串是不是HelloScannerscanner=newScanner(System.in);......
  • COMP612 Computer Graphics Programming
    COMP612ComputerGraphicsProgrammingSemester2,2024Project:HelicopterSceneThisisanindividualassignment.Allworkyousubmitmustbeentirelyyourown.Theassignmentisworth70%andwillbemarkedoutof100.Youmustworkfromtheprovided......
  • Rufus - 开源好用的USB启动盘制作工具
    介绍Rufus是一款格式化和创建USB启动盘的辅助工具。本软件适用于以下场景:需要将可引导ISO(Windows、Linux、UEFI等)刻录到USB安装媒介的情况需要处理未安装操作系统的设备的情况需要在DOS环境下刷写BIOS或其他固件的情况需要运行低级工具的情况Rufus麻雀虽小......
  • 【RAG论文精读3】RAG论文综述1(2312.10997)-第1部分
    收录于我的专栏:AI修炼之路简介论文中英文名Retrieval-AugmentedGenerationforLargeLanguageModels:ASurvey面向大型语言模型的检索增强生成:综述论文地址arxiv地址:https://arxiv.org/abs/2312.10997精读理由这篇综述论文对RAG在大型语言模型中的应用进行了......