自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 USB中QTD的概念

特别是对于需要高带宽和低延迟的应用,如视频流、音频传输和大文件传输,QTD的使用可以显著提升性能。通过使用QTD,主机控制器可以在一次DMA(Direct Memory Access,直接内存访问)操作中处理多个传输请求,从而提高传输效率并减少CPU的负担。每个QTD描述了一个特定的USB传输任务,包括要传输的数据量、数据缓冲区的地址、传输类型(如控制、批量、中断或等时传输)、以及与该传输相关的其他参数。Token:包含传输的各种属性,如传输类型、端点地址、最大包大小、实际传输的数据长度等。

2024-12-10 18:11:20 329

原创 USB的三种事务

设备接收到SETUP DATA包后,发送一个握手包(Handshake Packet,如ACK、NAK或STALL)确认接收状态。当设备遇到无法处理的情况,例如请求的端点不存在、请求的命令无效或设备进入错误状态时,它会发送一个STALL握手包给主机。当设备成功接收到一个OUT或SETUP事务的数据包后,它会发送一个ACK握手包给主机,确认数据已正确接收。当设备暂时无法处理主机的请求(例如,设备的缓冲区已满或正在进行其他操作),它会发送一个NAK握手包给主机。

2024-12-10 12:07:51 405

原创 USB(Universal Serial Bus)协议为什么要分DATA0和DATA1包

DATA0和DATA1包用于实现一种简单的错误检测机制,称为“交替强制”(toggle)或“数据包ID切换”。例如,如果上一次传输使用的是DATA0,那么下一次传输将使用DATA1,反之亦然。这种切换机制帮助接收方识别出是否丢失了数据包。如果接收方接收到的数据包类型与预期不符,它就知道可能发生了数据丢失或损坏,并可以请求重新传输。每个数据包都有一个7位的地址域和4位的端点号,但PID是一个单独的字段,用于标识包的类型。但也有例外情况,在同步传输中(四类传输类型中之一),所有的数据包都是为DATA0。

2024-12-10 11:53:50 311

原创 usb设备地址与端点地址概念区分

其中,端点描述符包含了每个端点的属性,如端点地址、传输类型(控制、批量、中断或等时)、最大包大小和轮询间隔(对于中断和等时端点)。枚举是USB设备连接到主机后自动进行的一个初始化过程,在这个过程中,USB主机与设备交换一系列标准请求,以确定设备的功能和配置。作用:当一个USB设备首次连接到主机时,它会默认分配一个特殊的地址(通常是0),然后通过枚举过程,主机为该设备分配一个唯一的非零地址。端点识别:通过解析端点描述符,主机了解到每个端点的具体信息,包括端点号、方向(IN/OUT)、传输类型等。

2024-12-10 11:29:17 561

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除