内容提要
文章通过USB总线枚举分析了一款Type-C拓展坞的硬件拓扑:VL103负责PD和DP Alt-mode,VL817作为USB Hub,AG6320将DP转为HDMI/VGA。VL817的第四端口被拆分使用,3.0接网卡,2.0接读卡器和虚拟设备,从而解释了全部接口的实现方式。
延伸解读
从枚举结果反推拓扑:避免被芯片功能误导
文章最初仅凭芯片功能推测拓扑,认为VL103负责PD和DP Alt-mode,AG6320的DP输入应来自VL103,但忽略了VL817的供电能力和端口浪费问题。实际通过USB总线枚举发现,Type-C接口可同时连接多个芯片:VL103处理CC和SBU,VL817处理USB 3.0和2.0,AG6320直接取用DP差分对。这提醒我们,硬件分析应以实际枚举数据为准,而非单纯依赖芯片规格。
VL817端口拆分:一个端口如何承载两个设备
VL817作为USB Hub,其第四个端口被拆分为USB 3.0和USB 2.0两部分:3.0部分连接RTL8153千兆网卡,2.0部分连接Terminus USB 2.0 Hub。这种拆分使得一个物理端口能同时服务两个不同速率的设备,且从枚举看它们共享同一Port ID。这解释了为何VL817的四个端口能连接三个外接USB口、网卡、读卡器及虚拟设备,实现了端口的高效利用。
虚拟Billboard设备与Terminus Hub的引入原因
枚举中出现的USB Billboard Device(2109:8888)并非实体,而是VL817虚拟出来的,用于向主机报告Alt-mode信息。而Terminus USB 2.0 Hub的加入,是因为VL817最后一个USB 2.0端口需要同时连接GL3224读卡器和VL103模拟的USB C Video Adaptor,端口不足才额外扩展。这两个细节说明,拓展坞设计常通过虚拟设备和级联Hub来满足协议要求和设备连接需求。
Q&A
Biaze KZ11 拓展坞用了哪些主要芯片?
Biaze KZ11 拓展坞采用了 RTL8153、GL3224、VL103、VL817、AG6320 芯片。
VL103 芯片在拓展坞中起什么作用?
VL103 负责 Type-C 的 PD 3.0 电源协商、CC 逻辑和 DP Alt-mode 功能,同时透传 USB 2.0 信号,并处理 DP 的 AUX 信号和 HPD 信号。
为什么拓展坞中需要两个 VL817 芯片?
实际上只使用了一个 VL817 芯片。VL817 是一个 USB 3.0 Hub,内部包含一个 USB 3.0 Hub 和一个 USB 2.0 Hub,提供四个 USB 3.0 和四个 USB 2.0 端口,足以连接所有下游设备。
拓展坞的 USB 3.0 端口是如何实现的?
VL817 的前三个端口同时连接 USB 3.0 和 USB 2.0 信号到外接 USB 3.0 端口,实现完整的 USB 3.0 功能。
为什么拓展坞中有一个 Terminus USB 2.0 Hub?
因为 VL817 的第四个端口需要同时连接 RTL8153 网卡(USB 3.0)和多个 USB 2.0 设备(GL3224 读卡器和 USB C Video Adaptor),但 USB 2.0 端口数量不足,所以通过 Terminus USB 2.0 Hub 扩展出更多 USB 2.0 端口。
拓展坞的 HDMI 和 VGA 输出是如何实现的?
AG6320 芯片将来自 Type-C 的 DP 信号转换为 HDMI 或 VGA 信号,同时通过 I2S 接口输出音频。