3. TT 的两种模式:单 TT(Single TT)与多 TT(Multiple TT)架构对比、适用场景
事务翻译器(Transaction Translator, TT)是 USB 2.0 集线器(Hub)的核心组件,负责将主机发出的高速(HS)Split Transaction 转换为全速/低速(FS/LS)设备能够理解的完整事务。根据 Hub 内部 TT 实例的数量和分配方式,分为 单 TT(Single TT) 和 多 TT(Multiple TT) 两种架构。这两种架构在性能、成本、并发能力和应用场景上存在显著差异。
💡 核心概念: 单 TT 架构下,Hub 内部只有一个 TT 实例,所有下行端口共享该实例;多 TT 架构下,每个下行端口拥有独立的 TT 实例,实现端口级隔离与并发。
3.1 单 TT(Single TT)架构
单 TT 架构是 USB 2.0 Hub 的早期实现方式,也是成本最低的方案。其核心特征是:整个 Hub 内部仅包含 一个 事务翻译器实例,所有连接到该 Hub 下行端口(Downstream Port)的全速/低速设备,都必须通过这一个 TT 与主机进行数据交换。
3.1.1 架构特点
- 资源共享: 所有 FS/LS 设备共享同一个 TT 的缓冲区(Buffer)和状态机。
- 串行处理: 同一时刻只能处理一个 Split Transaction,后续事务必须等待当前事务完成。
- 成本低廉: 芯片面积小,逻辑简单,适合对成本敏感的嵌入式系统。
- 兼容性好: 符合 USB 2.0 规范的基本要求,所有 USB 2.0 Hub 控制器均支持。
3.1.2 单 TT 架构示意图
3.2 多 TT(Multiple TT)架构
多 TT 架构是 USB 2.0 规范的可选增强特性,旨在解决单 TT 架构下的性能瓶颈。其核心特征是:Hub 内部为 每个下行端口 分配一个独立的 TT 实例,各端口之间的 FS/LS 事务可以并行处理,互不干扰。
3.2.1 架构特点
- 端口隔离: 每个下行端口拥有独立的缓冲区、状态机和帧计数器。
- 并行处理: 多个下行端口可以同时进行 Split Transaction,显著提升总吞吐量。
- 避免头阻塞(HOL Blocking): 一个端口上的慢速设备不会阻塞其他端口上的快速设备。
- 成本较高: 芯片面积增大,逻辑复杂度提升,功耗略有增加。
3.2.2 多 TT 架构示意图
3.3 单 TT 与多 TT 架构对比
| 对比维度 | 单 TT(Single TT) | 多 TT(Multiple TT) |
|---|---|---|
| TT 实例数量 | 1 个(全局共享) | N 个(每个下行端口 1 个) |
| 事务并发能力 | 无并发,串行处理 | 端口级并发,可并行处理 |
| 头阻塞(HOL) | 严重,慢速设备会阻塞其他端口 | 无,端口间完全隔离 |
| 缓冲区大小 | 单个缓冲区,容量有限 | 每个端口独立缓冲区,总容量更大 |
| 芯片面积 | 小 | 大(约增加 30%~50%) |
| 功耗 | 低 | 中等偏高 |
| 成本 | 低 | 高 |
| USB 规范要求 | 强制支持 | 可选支持 |
3.4 适用场景分析
3.4.1 单 TT 适用场景
- 低成本嵌入式系统: 如单片机(MCU)扩展 USB 接口,对成本敏感,且通常只连接 1~2 个低速外设(如键盘、鼠标)。
- 单一设备应用: Hub 仅用于连接一个全速设备,无需考虑多设备并发。
- 非实时性应用: 对数据传输延迟不敏感,如批量数据传输(Bulk Transfer)的打印机、扫描仪。
- 老旧设备兼容: 部分早期 USB 2.0 Hub 芯片仅支持单 TT,用于替换或维修场景。
3.4.2 多 TT 适用场景
- 高性能多设备系统: 如 USB 集线器同时连接多个全速音频设备、HID 设备或数据采集设备。
- 实时性要求高的场景: 如等时传输(Isochronous Transfer)的 USB 麦克风、摄像头,需要稳定的帧传输间隔。
- 混合速度设备环境: 同时连接全速和低速设备,且要求各设备性能不受影响。
- 工业自动化与数据采集: 多个传感器同时上报数据,需要避免数据丢失或延迟。
📌 选型建议: 在嵌入式系统设计中,如果 Hub 下行端口连接的 FS/LS 设备数量 ≤ 2,且对并发性能无特殊要求,优先选择单 TT 以降低成本;如果设备数量 ≥ 3,或涉及等时传输、实时控制,务必选择多 TT 架构。
3.5 性能调优要点
在实际配置中,针对 TT 模式的选择和优化,需要关注以下参数:
- TT 实例数量配置: 部分 Hub 控制器(如 Cypress CY7C656xx 系列)支持通过寄存器配置 TT 模式,需确认硬件支持情况。
- 缓冲区深度调整: 多 TT 架构下,每个端口的缓冲区大小可能可调(如 512B / 1KB),根据设备负载合理分配。
- 帧起始(SOF)间隔: 多 TT 架构下,各端口独立跟踪 SOF,需确保时钟同步精度。
- Split Transaction 超时: 单 TT 架构下,建议适当增大超时阈值,避免慢速设备导致事务失败。
⚠️ 常见误区: 不要认为多 TT 一定比单 TT 好。在仅连接 1 个全速设备时,单 TT 与多 TT 性能几乎无差异,但单 TT 功耗更低、成本更优。盲目选择多 TT 可能造成资源浪费。
3.6 本章小结
- 单 TT 架构:共享一个 TT 实例,串行处理,成本低,适合少设备、低并发场景。
- 多 TT 架构:每个端口独立 TT 实例,并行处理,避免头阻塞,适合多设备、高实时性场景。
- 选型时需综合考虑设备数量、传输类型、实时性要求和成本预算。
- 性能调优应关注 TT 实例数量、缓冲区深度、SOF 同步和超时配置。