USB协议详解第22讲(USB包-数据包及重传机制)

news/2025/3/16 14:42:12/文章来源:https://www.cnblogs.com/linhaostudy/p/18504099

USB协议详解第22讲(USB包-数据包及重传机制)

1.数据包的分类

数据类包有DATA0数据包、DATA1数据包、DATA2数据包、DATAM数据包。

2.数据类包的组成

我们今天看数据类包的详细结构,数据包的内容由PID域+数据域+16bit CRC域组成,下图为数据包各个域和抓包协议的对应图。

3.数据包的功能

定义了两种数据包DATA0和DATA1以支持数据切换同步和重传功能(重要), 其他类型的数据包此处不做详解。

数据必须始终以整数个字节发送, CRC仅在数据包中的数据域上计算,并且不包括PID,PID具有其自己的CRC检查字段。低速设备允许的最大数据有效负载大小为8个字节,全速设备的最大数据有效负载大小为1023,高速设备的最大数据有效负载大小为1024字节。

4.数据切换同步和重传

就是通过数据DATA0包和DATA1包的切换来实现主机和设备传输错误检测以及重发机制(设计思想)

1.正确数据传输同步原理

假设初始在发送数据之前,主机和设备状态都是0。

主机会根据当前状态先发送DATA0类型数据包给设备,当设备正确收到数据包后会对自己的状态进行反转(变为1),并给主机发送应答数据包,当主机正确接收到应答包后会对自己的状态进行反转(变为1)。

如果还需要发送数据包,则主机会发送DATA1类型的数据包(根据自己的当前状态为1决定的),当设备收到正确收到数据包后会进行对自己的状态进行反转(变为0),并给主机发送应答数据包,当主机正确接收到应答包后会对自己的状态进行反转(变为0)。

正确数据传输机制如下图。

2.数据被破坏的传输原理(重传机制)

假设初始在发送数据之前,主机和设备状态都是0。

机制就是初始在发送数据之前,主机和设备状态都是0,主机会先发送DATA0类型数据包给设备,当设备发现数据存在问题后不会对自己的状态进行切换,并给主机发送非应答数据包,当主机接收到非应答数据包后,不会对自己的状态进行切换。

主机会在适当的时刻对DATA0数据包进行重传(Retry),直到设备接收正常,设备发现数据包正常了会把自己的状态进行反转,并返回应答数据包,主机在收到应答包后会反转自己的状态。

数据被破坏的检测和重传机制如下图。

3.应答包故障的传输原理

假设初始在发送数据之前,主机和设备状态都是0。

主机会先发送DATA0类型数据包给设备,当设备正确收到数据包后会进行对自己的状态进行反转为1,并给主机发送应答数据包,但是,但是应答包在链路上出故障了,怎么办?当主机收到一个校验有问题应答包,主机不会对自己的状态进行反转,主机该怎么办?往下看。

主机会在合适的时间对DATA0数据包进行重发,但是当前设备的状态是1,因此设备会忽略该数据包并保持现在的状态,然后设备会给主机重新在发送一次应答包,当主机正确收到设备的应答包后对自己的状态进行反转。

当还需要发送数据包时,主机会根据自己当前的状态(假设为1),会发送DATA1数据包,设备在正确收到DATA1数据包后,会对自己的状态进行反转,并给主机发送应答数据包,当主机正确接收到应答包后会对自己的状态进行反转。

应答包故障的传输机制如下图。

4.同步传输数据包类型

前面提到过同步传输事务是没有应答包【USB协议详解第17讲(USB事务总结)】,所以同步传输事务没有错误检测机制和重传机制,因此同步传输不能保证数据的正确性。如下图所示。

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

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

相关文章

南昌航空大学 22207208-贺凯凯 第一次总结性Blog

一,前言 本项目中我们实现了一个模拟在线答题判分的程序,分为三次迭代,逐步扩展功能和复杂度。通过三次题目集的练习,我们从基本的答题判分系统开始,逐渐加入了多试卷、多学生、多题目管理等元素,最终形成一个多功能、多用户的答题管理系统。每个题目集中涉及的知识点包括…

海康安防产品-[监控]视频监控原理介绍

常见的安防系统组成 如下图:是一个小区,小区中一般包含了这些安防设备,这些安防设备组合在一起成了一套安防系统在安防系统中,视频监控占据着较为重要的地位 视频监控原理和技术 视频监控系统发展 视频监控的定义:利用视频技术探测、监视设防区域,实时显示、记录现场图像…

企业数据高效集成:聚水潭与金蝶系统对接实战

聚水潭盘亏-金蝶其他出库:高效数据集成方案 在企业管理系统中,如何实现不同平台间的数据无缝对接一直是一个关键挑战。本文将分享一个具体的技术案例:如何通过轻易云数据集成平台,将聚水潭的盘亏数据高效集成到金蝶云星空的其他出库模块。 背景与需求分析 在本次集成项目中…

GESP一级真题分析-202303-选择题1-输入输出设备、存储单位、默认数据类型、标识符命名

GESP一级真题分析-202303-选择题1-输入输出设备、存储单位、默认数据类型、标识符命名 PDF文档公众号回复关键字:202410261 相关知识点 1) 输入输出设备 输入设备 是外界向计算机传送信息的装置。在微型计算机系统中,最常用的输入设备是键盘和鼠标。 此外还有电子光笔、数字化…

GBJ2510-ASEMI整流桥GBJ2510参数、封装、尺寸

GBJ2510-ASEMI整流桥GBJ2510参数、封装、尺寸编辑:ll GBJ2510-ASEMI整流桥GBJ2510参数、封装、尺寸 型号:GBJ2510 品牌:ASEMI 封装:GBJ-4 安装方式:直插 批号:2024+ 现货:50000+ 正向电流(Id):25A 反向耐压(VRRM):1000V 正向浪涌电流:350A 正向电压(VF):1.10V…

Java 题目集总结

一、前言 在本次 Java 课程的学习中,我们通过完成三次精心设计的题目集,深入探索了 Java 编程的广阔世界。这三次题目集犹如攀登知识高峰的阶梯,每一次都引领我们迈向更高的层次,涵盖了从基础概念到复杂应用的多个重要知识点,为我们提供了宝贵的实践机会,使我们在编程的道…

南昌航空大学 22207209-侯智慧-第一次blog作业

一、前言 在过去的几个月中,我全身心地投入到了Javapta课程的学习中,尤其是三次极具挑战性的大作业。这些作业不仅是对我Java编程技能的考验,也是我在计算机科学领域不断探索和成长的重要里程碑。 最初接触这些作业时,我感到有些不知所措。每个项目都要求我们运用不同的Jav…

触想全新一代AIoT工控主板CX-3576上市热销

近日,工业电脑知名品牌触想智能发布全新一代低功耗大模型AIoT工控主板——CX-3576.达成中高端性能与合理价格的平衡。新品搭载Rockchip RK3576八核CPU,集成G52图形处理器和6Tops算力NPU,支持密集矩阵运算与深度学习框架,且具备4K超清显示和三屏异显功能,I/O拓展丰富,为工…

OO_PTA题目集1-3总结

(1)前言 前三次作业算是让我走上了写JAVA的正轨,题目小多,难度还可。初步学会了如何去写了类。题目内容主要涉及无参有参构造,排序查找,类的设计,常用系统类方法的使用等等,以及主要的答题判题程序的编写与迭代。在这三次作业里也算是初窥门槛了罢。 (2)设计与分析 第…

Linux系统安装Nodejs的详细教程

Linux系统安装Nodejs(详细教程) 介绍: ​ Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型, [1] 让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务…

金蝶云星空与聚水潭数据无缝对接技巧

金蝶云星空与聚水潭的数据集成案例分享 在企业信息化管理中,数据的高效流动和准确对接至关重要。本文将深入探讨如何通过轻易云数据集成平台,实现金蝶云星空物料数据到聚水潭商品数据的无缝对接。本次集成方案命名为“金蝶-物料——>聚水潭-商品”,旨在解决跨平台数据同步…

高效集成聚水潭奇门数据到MySQL的技术方案

聚水潭奇门数据集成到MySQL的技术案例分享 在本次技术案例中,我们将探讨如何通过轻易云数据集成平台,将聚水潭奇门的售后单数据高效、可靠地集成到MySQL数据库中。具体方案为“聚水潭-售后单-->BI虹盟-售后表”。这一过程不仅需要处理大量的数据,还需确保数据的完整性和实…