Transfers for control, bulk, and interrupt all use the same format for their Transfer Descriptor (TD). This General TD is a 16-byte, host memory structure that must be aligned to a 16-byte boundary.

上文:
控制传输、批量传输和中断传输均采用相同格式的传输描述符(TD)。此通用TD是一个16字节的主机内存结构体,必须按16字节边界对齐。

4.3.1.1 General Transfer Descriptor Format

4.3.1 General Transfer Descriptor - 图1

注:在双字0(Dword0)中,存在主机控制器(HC)可读写的字段。该双字中未使用的部分(以”——“标示)必须满足以下要求:主机控制器要么不写入这些位,要么在读取后保持原值写回。当传输描述符(TD)对主机控制器可见时,主机控制器驱动程序(HCD)不应修改TD的任何部分。

4.3.1.2 General Transfer Descriptor Field Definitions

表4-2:通用传输描述符(TD)字段定义

字段名 HC访问权限 说明
R R 缓冲区舍入控制
• 该位为0时:从端点传输到TD的最后一个数据包必须完全填满定义的数据缓冲区
• 该位为1时:最后一个数据包可以小于定义的缓冲区,且不会在TD上引发错误条件
DP R 方向/包标识符
该2位字段指示数据流方向和令牌包使用的PID。仅当ED中的D字段设置为00b或11b(PID判定延迟到TD)时,此字段对HC相关。
编码定义
• 00b:SETUP(到端点)
• 01b:OUT(到端点)
• 10b:IN(从端点)
• 11b:保留
DI R 延迟中断
该字段包含本TD的中断延迟计数值。TD完成时,HC可等待DelayInterrupt帧数后再产生中断。如果DelayInterrupt为111b,则此TD完成不产生中断
T R/W 数据翻转
该2位字段用于生成/比较数据PID值(DATA0或DATA1)。每个数据包成功发送/接收后更新。当数据翻转值从ED的toggleCarry字段获取时,此字段的最高位为’0’;当从本字段最低位获取时,最高位为’1’
EC R/W 错误计数
每次传输错误时此值递增。如果ErrorCount为2时又发生错误,错误类型将记录在ConditionCode字段并放入完成队列。事务无错误完成时,ErrorCount重置为0
CC R/W 条件码
该字段包含最后一次尝试执行的事务状态(参见第0节)
CBP R/W 当前缓冲区指针
包含下一个将要访问的端点传输内存位置的物理地址。值为0表示零长度数据包或所有字节已传输完成
NextTD R/W 下一个TD指针
该条目指向链接到此端点的TD列表中的下一个TD
BE R 缓冲区结束指针
包含此TD缓冲区中最后一个字节的物理地址

访问权限说明

  • R:只读(主机控制器仅读取)
  • R/W:读写(主机控制器可读取和写入)

技术特性总结

  1. 支持精确的缓冲区长度控制(R位)
  2. 提供灵活的数据方向/PID配置(DP字段)
  3. 实现中断延迟优化机制(DI字段)
  4. 包含完整的数据 toggle 管理(T字段)
  5. 具备错误计数和状态报告功能(EC/CC字段)
  6. 采用指针链式结构管理数据缓冲区和TD队列

(翻译说明:采用分层技术说明结构,保留所有二进制编码和硬件操作细节,对专业术语进行准确对应,维持技术文档的严谨性和完整性)