USB Device Tree Viewer(USB设备树查看器)是一个Windows平台上的工具,用于查看和分析计算机上所有连接的USB设备的详细信息。它通过列出USB设备的树形结构,帮助用户或技术人员查看连接的USB设备及其属性、驱动程序、接口等信息。
USB Device Tree Viewer(USB设备树查看器)是一个Windows平台上的工具,用于查看和分析计算机上所有连接的USB设备的详细信息。它通过列出USB设备的树形结构,帮助用户或技术人员查看连接的USB设备及其属性、驱动程序、接口等信息。
功能:
显示USB设备树: USB设备树查看器以树形结构显示计算机上所有USB设备的层级关系,包括USB控制器、集线器、连接的外设等。这使得用户可以清晰地看到每个USB设备的位置和层级结构。
详细的设备信息: 它提供了每个USB设备的详细信息,如设备描述符、硬件ID、制造商、产品ID、序列号等。技术人员可以利用这些信息来诊断硬件问题,更新驱动程序,或者进行其他故障排除工作。
USB端口监控: 工具可以显示当前连接的USB端口,以及每个端口的状态、连接的设备和其支持的传输速度(如USB 2.0、USB 3.0、USB 3.1等)。
设备驱动信息: 可以查看每个USB设备使用的驱动程序及其版本,帮助用户确定是否有驱动程序问题或是否需要更新驱动程序。
提供设备详细日志: 设备树查看器能够提供有关USB设备的详细事件和状态变化日志,对于故障诊断和设备监控非常有用。
为什么使用USB Device Tree Viewer?
故障排除: 当某个USB设备无法正常工作时,USB设备树查看器能帮助用户定位问题,确认是否是硬件连接问题,还是驱动程序问题。通过查看设备的详细信息,可以检查是否有冲突的驱动程序或设备未正确识别。
驱动更新与兼容性检查: 如果你的设备无法被识别或工作不正常,USB设备树查看器能帮助你查看设备的驱动程序版本,判断是否需要更新驱动程序或者更换不同版本的驱动程序。
设备管理: 对于需要连接多个USB设备的用户,USB设备树查看器可以帮助轻松管理这些设备,尤其是在工作站上需要多台USB设备同时工作的情况下,查看设备的连接状态非常重要。
硬件信息收集: 对于硬件分析师或开发人员,USB设备树查看器能帮助收集有关USB硬件设备的详细信息,帮助进行硬件开发和兼容性测试。
怎么样使用USB Device Tree Viewer?
下载与安装: USB Device Tree Viewer可以从网上免费下载,并不需要复杂的安装过程。它通常是一个轻量级的工具,不占用太多系统资源。
运行工具: 启动后,工具会自动扫描计算机上连接的所有USB设备并显示设备树。你可以通过点击设备树中的各个节点查看详细信息。
查看设备信息: 选择某个设备节点后,你可以查看该设备的硬件ID、产品描述、厂商信息、设备驱动等详细信息。
分析USB端口和驱动: 通过查看每个端口的状态和信息,用户可以诊断哪些端口可能存在问题或哪些设备连接异常。
USB Device Tree Viewer 是一个非常有用的工具,尤其适用于需要管理和排查USB设备的用户和技术人员。它提供了深入的USB硬件信息,帮助用户更好地理解设备如何与计算机交互,并能在出现问题时提供有效的诊断信息。
USB Device Tree Viewer的官方网站是:https://www.uwe-sieber.de/usbtreeview_e.html。
在这个网站上,你可以下载USB Device Tree Viewer的最新版本,并找到相关的文档和使用说明。该工具由Uwe Sieber开发,提供了详细的USB设备信息和树形结构显示,非常适合用于USB设备的故障排除和管理。
USB Device Tree Viewer 初级使用教程大纲
1. 介绍与安装
什么是USB Device Tree Viewer?
功能概述:查看计算机上所有连接的USB设备的详细信息。
适用场景:故障排除、驱动程序管理、硬件分析等。
下载安装步骤
下载并解压(无需安装过程)。
启动程序。
2. 界面概览
主界面介绍
左侧:USB设备树结构。
右侧:详细设备信息窗口。
菜单栏
各功能按钮和菜单介绍,如刷新设备、保存日志等。
3. 如何查看USB设备
自动加载设备树
启动工具后,自动扫描当前连接的USB设备。
浏览设备树
展开和折叠设备树结构。
查看设备的层级关系,如USB控制器、集线器、外设等。
查看详细信息
设备描述符:查看设备的制造商、产品ID、序列号等。
驱动程序:查看设备的驱动程序信息。
4. 如何使用设备信息
查看硬件ID
设备的唯一标识符。
通过硬件ID检查驱动程序的兼容性。
查看设备状态
设备是否正常工作、是否有错误信息。
查看传输速度
确认设备是否连接到USB 3.0、2.0等端口。
5. 常见操作
刷新设备树
如何刷新设备信息,查看新增或移除的USB设备。
保存设备信息
保存当前USB设备信息为日志文件,用于故障排除或文档记录。
导出日志
如何导出设备树的详细信息或错误日志。
6. 常见问题与故障排除
设备无法识别
使用USB Device Tree Viewer检查设备连接状态。
检查驱动程序是否正确安装。
设备信息缺失
排查USB端口或硬件是否存在故障。
重新连接设备或更新驱动程序。
7. 总结与进阶
总结:USB Device Tree Viewer的基础用途
设备管理、驱动程序检查、硬件故障排除等。
进阶功能探索
深入使用更复杂的功能,如查看USB集线器的详细层级结构、调试USB通信等(适合有一定技术基础的用户)。
附录
常见术语解释
数据传输:负责在主机和设备之间传输数据。
管理连接:检测和处理USB设备的插拔(热插拔)事件。
控制信号的传递:管理设备的供电和通信协议。
支持不同的USB版本:例如,USB 2.0、USB 3.0或USB 3.1,确保不同版本设备的兼容性。
数据转发:将数据从主机传输到设备或从设备传输到主机。
分配电源:集线器提供给每个连接的设备一定的电力,确保设备能够正常工作。
支持级联连接:多个集线器可以级联使用,从而进一步扩展USB端口数。
USB版本:表明设备支持的USB版本(例如USB 2.0、USB 3.0)。
厂商ID和产品ID:设备的制造商和产品标识符,主机通过这些ID识别设备。
设备类别:设备的类型(如音频设备、存储设备等)。
最大功率需求:设备在工作时所需的最大电流。
设备特征:例如是否支持远程唤醒等特性。
接口编号:唯一标识接口。
接口类:接口的类别(如音频、存储、通信等)。
端点描述符:该接口支持的端点,决定了数据传输的类型和方向。
控制端点(Endpoint 0):每个USB设备必须有一个控制端点,用于设备初始化和管理。
批量端点(Bulk Endpoint):用于大数据量的传输,适用于不需要实时性的设备,如USB存储设备。
中断端点(Interrupt Endpoint):用于小量数据传输,适用于事件驱动的设备,如键盘、鼠标等输入设备。
同步端点(Isochronous Endpoint):用于实时数据传输,确保数据流的稳定性,适用于音频和视频等实时数据应用。
配置编号:标识设备的特定配置。
接口数目:此配置下的接口数量。
设备功耗:设备在此配置下的功率要求。
接口描述符:此配置下包含的接口信息。
控制传输(Control Transfer):用于设备的初始化、命令发送、设备描述符请求等,通常用于短小的命令。
批量传输(Bulk Transfer):用于大数据量的传输,适用于没有实时性要求的设备,如USB闪存。
同步传输(Isochronous Transfer):用于实时数据传输,保证数据按时传送,适用于音频、视频设备等。
中断传输(Interrupt Transfer):用于短小的数据传输,通常应用于键盘、鼠标等设备,保证及时响应。
正常模式:设备正常工作时的功耗。
挂起模式:设备处于非活动状态,功耗较低。
待机模式:设备进一步降低功耗,但仍然可以响应主机的唤醒信号。
设备管理:负责设备的检测、识别和初始化。
数据传输:管理设备和主机之间的数据交换。
供电管理:为USB设备提供电力(在某些情况下,主机提供的电源不足时,设备可能需要外部电源)。
外部存储设备:如USB闪存驱动器、外部硬盘。
输入设备:如键盘、鼠标。
音频设备:如耳机、麦克风。
打印设备:如USB打印机。
USB控制器、集线器、设备描述符等相关术语解释。
在USB(通用串行总线)系统中,涉及到许多重要的术语,这些术语帮助理解USB设备与主机之间的连接和通信。以下是一些常见的USB术语的解释:
1. USB控制器(USB Controller)
USB控制器是计算机或设备中负责管理USB接口和数据传输的硬件或集成电路。它负责与USB设备之间的通信和数据交换,按照USB协议进行数据打包、传输和接收。
USB控制器的主要功能:
2. USB集线器(USB Hub)
USB集线器是一种扩展设备,可以增加计算机的USB端口数。它充当多个USB设备与主机之间的中介,将一个USB端口分成多个端口,使得多个USB设备能够共享一个主机的USB接口。
USB集线器的主要特点:
集线器通常分为主动集线器和被动集线器,其中主动集线器有自己的电源适配器,而被动集线器则从主机的USB端口获取电源。
3. 设备描述符(Device Descriptor)
设备描述符是USB设备向主机报告其基本信息的数据结构。它是设备和主机进行通信的第一步,主机通过设备描述符识别设备的类型、功能、支持的协议等。
设备描述符的主要内容:
设备描述符通常是USB设备与主机交换的第一个信息结构,帮助主机识别设备并加载适当的驱动程序。
4. 接口描述符(Interface Descriptor)
接口描述符用于描述USB设备的某个功能接口。USB设备可以有多个接口,每个接口提供不同的功能,接口描述符包含有关该接口的详细信息。
接口描述符的主要内容:
例如,一个USB音频设备可能有两个接口描述符,一个用于音频输入(麦克风),一个用于音频输出(扬声器)。
5. 端点(Endpoint)
端点是USB设备与主机之间进行数据传输的基本单位。每个端点都有唯一的编号,用于标识数据流的方向(从设备到主机或从主机到设备)。
端点的类型:
6. 配置描述符(Configuration Descriptor)
配置描述符是设备描述符的延伸,描述了USB设备支持的不同工作模式。每个USB设备可以有多个配置,每个配置可以包含多个接口。
配置描述符的主要内容:
配置描述符帮助主机选择适当的设备模式或功能,确保设备能按预期工作。
7. 传输类型(Transfer Type)
USB协议定义了几种不同的传输类型,用于不同的数据传输场景。主要有以下几种类型:
8. USB电源管理(USB Power Management)
USB提供了不同的电源管理选项,允许设备在不需要时降低功耗。设备通过挂起模式、省电模式等减少能源消耗。
USB的电源管理模式:
9. USB主机(USB Host)
USB主机是指计算机或设备,负责管理USB设备的连接、通信和控制。主机控制着数据的传输,管理设备的识别、驱动程序安装等任务。
主机的主要功能:
10. USB设备(USB Device)
USB设备是与主机连接并进行数据交换的外部设备。每个设备都有一个唯一的设备描述符,主机通过这些描述符识别设备的功能。
设备的种类:
11. 热插拔(Hot Swap)
热插拔是指设备在系统运行过程中可以被插入或拔出,而无需关机或重启系统。USB支持热插拔,用户可以随时插入或移除USB设备而不影响计算机的正常运行。
这些术语在USB协议中都扮演着重要角色,从USB控制器到集线器、设备描述符、端点以及各种传输类型等,每个术语都在帮助主机与设备之间进行有效的通信与数据交换。理解这些术语可以帮助开发人员设计和优化USB设备,确保设备与主机之间的稳定、快速的连接和数据传输。
相关资源与文档
官方文档、支持论坛或常见问题解答。
以上大纲适合入门级用户,帮助他们快速理解和掌握USB Device Tree Viewer的基本功能与使用方法。如果你需要更多细节或具体的操作步骤,可以逐步深入每个部分。
USB Device Tree Viewer 中级使用教程大纲
1. 工具概述与进阶功能介绍
USB Device Tree Viewer的高级功能
深入分析设备连接情况、USB通信路径、驱动状态等。
适用于硬件工程师、驱动开发人员、技术支持人员等。
使用场景
详细分析USB设备性能、解决USB设备驱动冲突、调试高性能设备(如USB 3.0及以上设备)。
分析USB通信数据流、排查设备兼容性问题。
2. 界面深入剖析
设备树结构解读
解析树结构中的各个层级:USB Root Hub、集线器(Hub)、端点(Endpoint)等。
区分设备类型(如存储设备、键盘、鼠标、音频设备等)和它们的连接路径。
设备属性
深入查看设备的硬件ID、制造商信息、产品ID、版本信息等。
查看与设备相关的配置描述符、接口描述符、端点描述符等。
USB协议栈和数据传输路径的详细信息。
3. 使用高级设备信息分析
传输速率与带宽分析
如何确认USB设备的连接速率(USB 2.0, 3.0, 3.1等)以及数据传输带宽使用情况。
分析不同USB端口(如USB 3.0端口、USB 2.0端口)对设备性能的影响。
设备通信路径
路径分析:查看USB控制器、集线器到设备的通信路径。
分析带宽分配情况,诊断带宽不足导致的性能问题。
4. 分析USB集线器(Hub)与设备层级
USB集线器的层级结构
了解多级USB集线器的工作原理及其对设备连接的影响。
如何查看集线器中的端口状态及设备连接情况。
端口状态与故障排除
通过USB Device Tree Viewer识别是否有端口断开、设备无法识别等问题。
分析集线器的电源分配和功耗管理,识别电力不足的设备。
5. 设备驱动程序与兼容性检查
驱动程序关联与分析
查看设备驱动程序的信息,包括驱动程序版本、制造商、兼容性等。
检查设备是否使用了合适的驱动程序,解决驱动冲突或更新问题。
驱动程序状态
通过查看驱动的加载与卸载状态,检查是否存在驱动加载失败或冲突的情况。
更新与回滚驱动
在USB Device Tree Viewer中,识别需要更新或回滚的驱动程序版本,帮助诊断设备功能问题。
6. USB设备电力管理与功耗监控
电力分配分析
查看USB设备的功率需求和电源状态,诊断是否由于功率不足导致的设备无法正常工作。
电源管理与节能模式
了解USB设备如何进入省电模式,分析省电设置对设备的影响。
通过USB Device Tree Viewer诊断设备在省电模式下的行为。
7. 日志导出与故障排除
导出高级设备日志
如何导出详细的USB设备日志,包含设备的连接、断开、驱动加载、带宽使用等信息。
调试USB设备问题
使用设备日志进行问题诊断,找出设备未响应、连接中断、驱动冲突等问题的根本原因。
利用日志检查USB通信失败和协议错误。
8. USB协议栈与通信调试
USB通信协议分析
了解USB数据包的传输结构(如数据包类型、端点类型、数据流控制)。
使用USB Device Tree Viewer辅助分析USB设备在传输数据时的表现,帮助开发人员调试通信问题。
USB主机与设备之间的协议交互
通过分析USB设备的接口和端点,理解设备与主机之间的协议交互,排除数据传输中的错误。
9. 进阶操作与自定义设置
自定义视图与筛选功能
使用自定义筛选器显示特定类型的设备(例如只显示存储设备、音频设备等)。
调整树状视图显示,隐藏不需要的设备信息,便于查看核心设备信息。
与其他调试工具结合使用
配合Wireshark等网络分析工具调试USB设备的通信,查看更详细的协议层信息。
解决方案" style="margin: 35px 0px 10px; padding: 0px 0px 5px; border: 0px; font-size: 16px; vertical-align: baseline; box-sizing: border-box; line-height: 1.5; color: rgb(29, 33, 41); font-family: UbuntuMono, "Varela Round", "PingFang SC", "Microsoft YaHei", Helvetica, Arial, Menlo, Monaco, monospace, sans-serif; text-wrap: wrap; background-color: rgb(247, 248, 250);">10. 常见问题与解决方案
设备无法识别或频繁断开
分析设备连接状态、端口电力、驱动状态等,解决USB设备无法稳定连接的问题。
传输速度低于预期
排查设备连接端口、USB版本支持、带宽限制等因素,确保设备达到预期的传输速率。
驱动程序加载失败
检查驱动兼容性、是否存在冲突、系统日志中是否有加载失败的信息,帮助解决驱动加载问题。
11. 总结与扩展
总结:USB Device Tree Viewer的中级使用技巧
如何结合设备信息和驱动程序管理,进行高效的硬件故障诊断和性能优化。
扩展学习
深入学习USB协议、硬件设计及开发调试技能,提升对USB系统的全面理解。
附录
常见术语与概念
数据传输:USB协议支持不同类型的数据传输,如控制传输、批量传输、同步传输和中断传输。
设备识别与配置:USB协议使得设备能够与主机通信,交换设备信息,如设备描述符、配置描述符等。
电源管理:USB协议规定了设备的电源管理规范,包括设备供电和省电模式等。
端点地址:每个端点都有唯一的端点地址,这个地址包括设备地址和端点编号(例如:端点0表示控制端点,端点1表示数据端点)。
端点类型:
控制端点(Endpoint 0):每个USB设备至少有一个控制端点(通常是端点0),用于设备的配置、初始化以及设备与主机之间的管理数据交换。
批量端点(Bulk Endpoint):用于大数据量的传输,如文件传输,适合不需要实时性的应用(如USB存储设备)。
中断端点(Interrupt Endpoint):用于小数据量传输,通常用于事件驱动的设备,如键盘、鼠标、游戏手柄等输入设备。
同步端点(Isochronous Endpoint):用于实时数据传输,适用于音频、视频等需要持续数据流的设备,确保数据按时间顺序传输。
设备的USB版本:表示设备支持的USB版本(如USB 2.0、USB 3.0等)。
厂商ID和产品ID:厂商ID(Vendor ID)和产品ID(Product ID)一起唯一标识设备的厂商和产品。
设备类代码(Device Class):表明设备的类别,如存储设备、音频设备、输入设备等。
最大电流:设备正常工作时需要的电流量。
设备ID和版本号:标识设备的版本。
配置标识符:唯一标识设备的某个配置。
接口数目:此配置中包含的接口数量。每个接口可能对应不同类型的设备功能。
配置功耗:设备在该配置下的电流需求。
接口描述符:每个接口描述符定义了该接口支持的端点和功能。
接口编号:接口的唯一标识符。
接口类、子类和协议:指定接口的类型(如音频、通信、存储等)。
端点:该接口支持的端点列表,表示如何进行数据传输。
USB协议、USB端点、设备描述符、配置描述符等详细解释。
在 USB 协议中,有许多重要的术语和概念,这些术语帮助我们理解 USB 设备与主机之间的通信和数据传输。下面详细解释一些常见的术语和概念:USB协议、USB端点、设备描述符、配置描述符等。
1. USB协议(USB Protocol)
USB(Universal Serial Bus)协议是一种用于连接计算机与外部设备的数据传输标准。它的设计目标是提高数据传输速率,简化设备连接并提供热插拔功能。USB协议包括多个层次的规范,涵盖了从物理层、链路层到协议层、应用层的所有内容。
USB协议的主要功能包括:
2. USB端点(Endpoint)
USB端点是USB设备与主机之间进行数据传输的基本单位。每个USB设备可以有多个端点,每个端点都可以用于特定的传输任务。USB端点按照数据传输类型进行区分:控制、批量、中断和同步传输。
端点的主要特点:
3. 设备描述符(Device Descriptor)
设备描述符是USB设备提供的一个数据结构,包含了设备的基本信息。它是USB设备与主机进行通信时的第一步,主机通过设备描述符了解设备的类型和能力。
设备描述符的主要内容:
设备描述符通常由8字节固定头部和其他可变长度的字段组成。
4. 配置描述符(Configuration Descriptor)
配置描述符描述了USB设备的具体配置,包括该设备支持的端点、接口、功耗等信息。一个USB设备可以有多个配置描述符,主机可以选择适当的配置来与设备进行通信。
配置描述符的主要内容:
配置描述符的存在使得USB设备能够支持多种工作模式或配置。例如,某个USB设备可能既能作为存储设备使用,也能作为音频设备使用,主机通过选择不同的配置来切换设备功能。
5. 接口描述符(Interface Descriptor)
接口描述符定义了设备的一个具体功能接口。一个USB设备可能有多个接口,每个接口可能包含多个端点,支持不同的数据传输方式。每个接口描述符都指示该接口的功能以及该接口支持的端点类型。
接口描述符的主要内容:
例如,一个音频设备可能包含两个接口,一个用于输入(麦克风),另一个用于输出(扬声器),它们分别有不同的端点。
6. 字符串描述符(String Descriptor)
字符串描述符用于存储设备的字符串信息,如设备名称、厂商名称等。每个字符串描述符由多个字符组成,并通过特定的编码格式进行传输(通常为Unicode)。主机可以请求设备返回字符串描述符,以便显示设备的名称或其他信息。
7. 控制传输(Control Transfer)
控制传输是USB协议中最基本的一种传输方式,通常用于设备的初始化、配置和控制命令。它是USB设备和主机之间的双向通信方式,可以用于获取设备的描述符、配置设备以及发送控制命令。
控制传输由三个阶段组成:
控制传输通常用于设备的初始化和命令控制。
8. 批量传输(Bulk Transfer)
批量传输用于大数据量的传输,通常没有严格的延迟要求。它适用于不需要实时性的设备,如USB闪存盘、外部硬盘等。批量传输的数据包大小灵活,取决于设备和主机的缓冲区大小。
9. 同步传输(Isochronous Transfer)
同步传输用于实时数据传输,保证数据按时间顺序、精确的时间间隔传输,通常用于音频和视频流传输。它保证了传输的带宽和时效性,但如果数据丢失,可能不会进行重试。
10. 中断传输(Interrupt Transfer)
中断传输用于小量数据的传输,并且对延迟敏感。它通常用于设备需要定期报告事件或状态变化的场景,如键盘、鼠标等输入设备。中断传输具有优先级,确保及时响应。
以上术语和概念是USB协议的核心内容。理解这些概念能够帮助开发者和工程师更好地设计、调试和优化USB设备。例如,设备描述符和配置描述符帮助主机识别和配置设备,端点是设备与主机之间进行数据交换的基本单元,而控制传输和批量传输等不同的传输方式则支持不同类型的数据交换需求。
设置阶段(Setup Stage):主机发送请求包到设备,包含命令和请求参数。
数据阶段(Data Stage):如果有数据交换,主机和设备在此阶段交换数据。
状态阶段(Status Stage):传输结束,设备返回状态信息。
推荐阅读与资源
官方文档、技术文章、USB协议标准文档(如USB 2.0/3.0规范)。
在线论坛与社区资源,如USB开发者论坛。
这个中级教程大纲将帮助用户深入了解USB设备的工作原理、设备管理和调试技巧,并提供更强的故障排查与性能优化能力。适合希望通过USB Device Tree Viewer来解决更复杂硬件问题的用户。
USB Device Tree Viewer 高级使用教程大纲
1. 工具概述与高级功能介绍
USB Device Tree Viewer高级功能概览
针对高端用户(硬件工程师、驱动开发人员、调试专家)的使用场景。
介绍工具的深度分析功能,如USB协议栈分析、驱动冲突诊断、带宽优化、低级设备调试等。
使用场景
高速USB设备性能优化、调试复杂硬件交互。
设备间带宽冲突分析、USB通信错误排查。
深度分析USB设备驱动和协议栈,以便进行底层开发。
2. 工具界面与核心数据结构解析
USB设备树结构高级分析
理解USB树的多层级结构:USB根集线器(Root Hub)、集线器(Hub)、端点(Endpoint)、接口(Interface)等。
设备树数据的深入解释,如何获取设备详细硬件信息、配置描述符、接口描述符等。
树结构过滤:定制筛选器,快速识别特定类型的设备、设备类(例如存储、音频、视频设备等)和状态。
高级设备属性解析
查看和分析设备的多维信息:硬件ID、设备描述符、供应商信息、产品ID等。
USB协议分析:从低层协议上解读数据包交换、传输类型、端点控制等。
3. 带宽和性能分析
USB带宽分配分析
深入分析USB总线带宽分配情况,特别是在多设备连接时如何分配带宽。
带宽冲突诊断:在USB 3.x及以上版本设备中,分析设备间带宽竞争和优化方案。
数据传输速率评估
分析不同USB版本的带宽表现(USB 2.0、3.0、3.1等),对设备性能的影响。
实时监控USB数据传输速率,检查设备是否在最大传输速率下工作。
带宽利用率分析:如何优化USB设备在多个端口或集线器下的带宽利用。
4. 高级USB集线器与设备层级调试
USB集线器(Hub)诊断
查看多层次集线器的详细结构和端口连接状态,诊断复杂USB设备的连接问题。
USB集线器电力分析:分析USB集线器电源管理、功率限制、设备电压稳定性等问题。
端口与连接诊断
高级端口状态监控:分析端口连接、断开、状态变化。
检查端口电力状态、断电和过电流问题,避免因电力不足导致设备无法正常工作。
5. 驱动程序与设备兼容性深度分析
驱动程序匹配与优化
查看每个USB设备对应的驱动程序版本和状态,评估其兼容性、性能和稳定性。
驱动冲突分析:识别多个设备或驱动程序间的冲突,解决可能导致设备无法正常工作的驱动问题。
驱动程序更新与回滚
在USB Device Tree Viewer中直接查看并建议驱动程序的升级或降级操作,确保设备兼容性和性能。
设备诊断日志:导出并分析设备驱动加载过程中的错误,判断设备无法正常工作的根本原因。
6. USB电力管理与功耗优化
电力管理分析
精细分析设备的电力消耗,包括供电状态、电流、电压等。
省电模式诊断:分析USB设备如何进入省电模式,以及省电对设备性能的影响。
电力分配与管理
深入分析USB设备的电源要求,识别因电力不足导致的设备无法正常工作。
功率调节与优化:通过设备树分析电力管理系统,确保设备在不同负载情况下获得足够电力。
7. USB协议栈与低级调试
USB协议分析
深入解析USB数据包的传输过程:数据包类型(控制、批量、等时、同步)、数据流控制、端点类型等。
分析USB设备在传输过程中可能出现的错误,如丢包、延迟、传输失败等。
USB主机与设备协议交互
解析USB主机和设备间的协议交互,帮助开发人员解决设备无法识别、通讯失败等问题。
使用USB协议栈分析工具,调试并优化USB设备通信过程中的效率和稳定性。
8. 日志导出与高级故障排查
高级日志导出
提取详细的设备事件日志,包括设备连接、状态变化、驱动加载、数据传输等信息。
日志格式和内容定制:导出可调试的格式,以便后续分析与问题定位。
故障排查
结合日志进行故障诊断,找出设备无法连接、性能异常、协议错误等问题的根本原因。
实时监控:分析设备状态实时更新信息,快速定位USB通信问题。
9. USB数据流与通信调试
实时数据流分析
利用USB Device Tree Viewer与其他分析工具(如Wireshark)配合使用,调试和捕捉USB数据流,查看通信包的详细信息。
协议错误分析:通过对比期望与实际数据流,找出数据包传输过程中的错误。
USB通信性能优化
优化USB设备的数据传输过程,减少延迟、提高带宽利用率,确保数据在最大速率下传输。
调试USB 3.0/3.1设备:重点分析USB 3.0及以上版本的通信协议,优化多设备共存环境下的性能。
10. 高级操作与自定义功能
自定义树视图与设备筛选
定制显示USB设备树,过滤出特定类别的设备,便于大规模设备环境下的快速定位和问题排查。
扩展功能设置:自定义USB设备树的显示选项,优化大规模设备分析时的视图效果。
与其他调试工具结合使用
将USB Device Tree Viewer与其他系统工具(如Device Manager、Task Manager)结合使用,实现更全面的硬件管理与调试。
配合USB监控工具(如USBlyzer、Wireshark等)进行全方位的USB设备通信和性能分析。
11. 常见问题与解决方案
USB设备连接问题
分析USB设备无法连接、频繁断开等问题,检查驱动、端口状态、电力问题等。
性能问题
解决设备性能不达标、传输速率低等问题,优化设备连接、带宽分配及数据传输路径。
驱动程序和兼容性
排查设备驱动冲突、驱动加载失败等问题,提供驱动更新或回滚的操作方案。
12. 总结与扩展学习
总结:USB Device Tree Viewer的高级使用技巧
如何利用工具进行复杂的硬件故障排查、性能调优以及多设备兼容性分析。
扩展学习资源
深入学习USB协议栈、驱动开发、硬件调试技能,提高USB系统的整体管理和优化能力。
推荐学习资料:USB规格文档、USB设备设计和开发手册等。
附录
常见术语与概念
包括三个阶段:
请求设备状态(例如获取设备描述符)。
配置设备(例如设置设备的参数或控制设备状态)。
定义:控制传输是USB协议中最基础的传输类型,通常用于设备的初始化、配置、控制命令以及状态报告。
特点:它是单向的,通常用于设备与主机之间进行小量的数据交换。控制传输通常在设备初始化和配置时使用。
用途:
传输格式:
典型应用:USB键盘、鼠标、USB存储设备的配置、USB音频设备的控制。
批量传输没有实时性要求,主机和设备根据可用带宽进行数据交换。
数据包可以是任意大小,依赖于设备和主机端的缓冲区大小。
适用于大容量数据交换,如USB硬盘、闪存驱动器、打印机等设备。
定义:批量传输用于大块数据的传输,没有严格的延迟要求,主要用于数据量大但不要求实时传输的设备。
特点:批量传输速度较快,但没有带宽保证,可能会受到总线的流量控制。它具有较高的容错性,适合大文件传输。
用途:
传输格式:
典型应用:USB存储设备(如U盘、外部硬盘)和打印机等。
数据传输是按固定时间间隔进行的,具有较低的延迟。
会进行带宽预留,保证实时性。
适用于音视频数据、实时传感器数据流等需要低延迟的应用。
定义:同步传输用于时间敏感的应用场景,如音频和视频流,要求数据按照精确的时间间隔进行传输。
特点:传输具有固定的带宽和周期性,优先保证传输的实时性。虽然带宽较为稳定,但在设备和主机发生传输冲突时,数据可能会丢失。
用途:
传输格式:
典型应用:USB摄像头、USB麦克风、音频接口设备、视频会议设备等。
数据包较小,通常在设备发出中断信号时进行传输。
具有固定的传输间隔,确保及时响应。
用于设备需要定期报告信息的场景,如键盘、鼠标、游戏控制器等。
定义:中断传输用于传输小量数据,通常用于设备向主机报告事件或状态变化。它是基于事件驱动的。
特点:传输时间不确定,但它具有较高的优先级,主机定期检查设备的状态,并进行必要的数据交换。适合需要小数据量、低延迟的实时通信。
用途:
传输格式:
典型应用:键盘、鼠标、外部游戏手柄等输入设备。
控制端点(Control Endpoint):USB设备通常有一个控制端点,用于控制命令的交换。所有USB设备至少有一个控制端点,端点0通常是控制端点。
批量端点(Bulk Endpoint):用于批量传输,支持大数据块的传输。数据量大但传输延迟要求低。
中断端点(Interrupt Endpoint):用于事件驱动的中断传输,适用于小量数据的高优先级交换。
同步端点(Isochronous Endpoint):用于同步传输,保证数据按时间顺序准确传输。用于音视频等实时数据流传输。
每个USB端点都有一个地址,用于识别和区分不同的端点。端点地址通常包括设备号和端点号(例如0x81代表设备1的输入端点1)。
设备描述符字段:
设备类型:如主机控制器、存储设备、音频设备等。
厂商ID和产品ID:用来唯一标识厂商和产品。
USB版本:设备支持的USB协议版本(如USB 2.0、3.0)。
最大电流:设备工作时需要的电力信息。
物理层(Physical Layer):负责USB信号的传输。
链路层(Link Layer):处理数据链路的建立和维持,确保数据可靠传输。
协议层(Protocol Layer):提供具体的USB传输类型(控制、批量、同步、中断等)和数据格式。
应用层(Application Layer):处理USB设备的具体应用逻辑,如音频、视频、存储等。
带宽分配:不同的传输类型(批量、同步、中断等)具有不同的带宽要求。控制传输和中断传输通常优先处理,以保证延迟敏感的数据及时传送。
流量控制:USB协议通过控制数据流量,防止设备或总线过载。它使用中断传输的优先级、同步传输的时间调度等技术进行流量控制。
详细解读USB协议相关术语,如控制传输、批量传输、同步传输、端点类型等。
常见术语与概念:USB协议相关术语详细解读
USB(Universal Serial Bus)协议广泛应用于各种设备之间的数据传输和通信。在USB协议栈中,涉及多个技术和概念。以下是一些常见的USB术语和概念的详细解读:
1. USB传输类型(Transfer Types)
USB协议定义了四种主要的传输类型,每种传输类型有不同的特点和用途:
2. 端点(Endpoint)
端点是USB通信的基本单位,是数据传输的目标和源。每个USB设备有多个端点,端点分为不同类型。
3. USB设备描述符(Device Descriptor)
设备描述符包含了USB设备的基本信息,如设备的类型、厂商ID、产品ID、支持的USB版本等。它由一组固定格式的数据组成,是USB协议栈用于识别设备和为设备分配资源的重要信息。
4. USB传输协议栈
USB协议栈由多个层级组成,每个层级负责不同类型的操作和数据处理。典型的协议栈包括:
5. 带宽管理与流量控制
USB协议有内置的带宽管理机制,确保不同类型的传输可以在共享总线上公平且有效地使用带宽。
这些概念和术语是理解和使用USB协议的重要基础。每种传输类型和端点都有其特定的应用场景和技术要求,了解它们有助于在设计、调试和优化USB设备时做出正确选择。例如,控制传输适合用于配置和命令,批量传输适用于大容量数据交换,同步传输则是实时音视频设备的首选。
控制传输(Control Transfer)
批量传输(Bulk Transfer)
同步传输(Isochronous Transfer)
中断传输(Interrupt Transfer)
设置阶段(Setup):主机向设备发送控制命令。
数据阶段(Data):主机和设备交换数据。
状态阶段(Status):确认传输的结果。
端点类型
端点地址
推荐工具与资源
USB协议分析工具、驱动更新工具、USB设备开发文档和社区支持。
这个高级教程大纲帮助用户深入掌握USB Device Tree Viewer的高级功能,针对复杂的硬件环境和高端调试需求提供全面的解决方案,适合有经验的硬件开发者和技术专家进行高级诊断和性能优化。
USB Device Tree Viewer(USBView)专家级使用教程大纲
引言
简介:USB Device Tree Viewer(USBView)是一个强大的工具,允许用户查看和分析系统中连接的USB设备。它以树状结构显示每个USB设备的详细信息,包括设备描述符、端点信息、传输协议等内容。
本教程目标:深入讲解如何使用USBView,帮助用户熟练掌握USB设备管理、调试、问题排查和性能优化。
第一部分:USB设备基础知识回顾
USB协议概述
USB的工作原理
USB设备与主机之间的通信流程
常见的USB设备类型
USB设备描述符
设备描述符(Device Descriptor)
配置描述符(Configuration Descriptor)
接口描述符(Interface Descriptor)
端点描述符(Endpoint Descriptor)
USB传输类型
控制传输
批量传输
中断传输
同步传输
第二部分:USB Device Tree Viewer 安装与配置
USBView工具介绍
USBView的用途
USBView的界面介绍
USBView与Windows设备管理器的比较
安装和配置USB Device Tree Viewer
如何从官方网站下载USBView
安装步骤(Windows和Linux平台)
配置与启动USBView
USB设备列表显示
查看系统中所有USB设备
显示每个USB设备的详细信息
识别USB设备的连接状态和主机控制器
第三部分:深度分析USB设备信息
查看设备描述符
设备描述符的结构与内容
解析厂商ID(Vendor ID)和产品ID(Product ID)
查找设备类型(例如:存储、音频、视频设备等)
分析USB端点信息
端点的作用与分类
各类端点的详细信息(控制、批量、同步、中断)
分析端点传输类型及其在数据流中的角色
理解USB配置描述符
查看设备的配置选项
分析设备的功率要求、接口数量等
检查多配置设备及其切换配置功能
查看接口描述符
了解接口的类别和功能
分析接口与端点的关系
设备可能支持的多个接口(例如音频接口和控制接口)
第四部分:调试与诊断
检测USB设备连接和工作状态
如何通过USBView查看USB设备是否正常连接
检查设备的电源状态(例如:供电不足、过载等)
分析设备是否处于挂起或待机模式
问题排查技巧
如何分析设备无法识别的问题
通过USBView查找设备故障(如硬件问题、驱动冲突等)
使用USBView检查设备的驱动加载状态
USB设备性能测试
使用USBView查看设备的带宽、延迟等性能指标
分析设备与主机之间的数据传输效率
优化USB设备的性能
第五部分:高级使用技巧
USB链路分析与追踪
使用USBView进行USB设备链路的追踪
分析主机控制器与USB设备之间的通信细节
监控USB数据流及其在总线中的传输情况
自定义USB设备树视图
自定义设备信息的显示格式
增强可视化分析(使用颜色标注、过滤功能等)
结合USBView和其他调试工具(如Wireshark等)进行深入分析
USB设备模拟与测试
使用USBView配合开发工具模拟USB设备行为
在测试环境中验证设备的兼容性和稳定性
自动化测试:如何用脚本工具获取USB设备信息并生成报告
第六部分:USB设备开发者指南
开发USB设备时的调试流程
如何利用USBView进行USB设备开发调试
设备初始化、描述符生成及通信协议的调试
设备和主机控制器的调试
主机控制器的状态监控
分析不同版本USB主机控制器的行为(如USB 2.0与USB 3.0的差异)
优化USB设备通信
提高数据传输效率的方法
通过USBView分析数据瓶颈并进行优化
第七部分:常见问题与解决方案
设备识别问题
USB设备不被识别的常见原因及解决方法
驱动程序问题
设备驱动程序冲突的排查与修复
如何更新和安装正确的USB驱动程序
电力不足问题
设备无法正常供电的原因与解决策略
如何通过USBView确认设备的电力需求
第八部分:实战案例
案例一:存储设备故障排查
通过USBView排查USB存储设备无法读写的原因
检查设备描述符、端点和配置描述符
提供解决方案:更换USB端口、更新驱动、检查硬盘健康状况
案例二:USB摄像头性能优化
通过USBView分析USB摄像头的数据传输性能
优化端点配置和传输协议以减少延迟
提供解决方案:调整带宽分配、优化传输协议
案例三:解决USB设备的电力问题
通过USBView检查USB设备的功率需求
排查设备电力供应不足的原因
提供解决方案:使用独立电源适配器或调整主机电力设置
总结:通过USB Device Tree Viewer,用户可以深入了解系统中的每个USB设备,快速进行问题排查、性能优化和调试,尤其对于开发人员和硬件工程师来说,USBView是一个不可或缺的工具。
未来展望:随着USB技术的发展,USB设备将会更加多样化,USBView作为一个强大的分析工具,也将不断更新和改进。
下载地址: https://www.uwe-sieber.de/usbtreeview_e.html
USB Device Tree Viewer V4.5.1 |
Home [Download] Descripton The USB Device Tree Viewer, short UsbTreeView is based upon the Microsoft "USBView" sample application found in the Windows Driver Development Kits and now standalone at GitHub.But it is source code only, there is no executable for end users provided. Meanwhile USBView comes as executables as part of the "Debugging Tools für Windows", see here: USBView. But still it is still more or less merely a demo application for the Windows USB API, after 20 years it still doesn't even save the window position...UsbTreeView started with the USBView source code from the DDK for Server 2003. Here are the improvements I've done:Window position is saved, yeaInformations from the Windows Device Management are collected and matched with the found USB devices; Therefore UsbTreeView can show the child devices, including drive letters and COM-portsBackground color and font of the right pane can be set (the font shown in the screenshots is DOSLike 7)Keeps the tree item selection over refreshShows open handles on failed safe removalWay more descriptors are decoded, as Audio 2.0Hexdump of the descriptors can be shownSafe removal, device restart and port restartExtended USB information available under Windows 8, 10 and 11 (taken from the latest USBView sample application)Extended information about host controllersFailed USB requests are re-tried in the background, e.g. if a USB mouse was moved while requesting its propertiesToolbar with jump-lists for easily finding devices in complex treesTree-view with handmade 16x16 icons, USBView used 32x32 icons scaled down to 15x15many minor improvementsWith V3.0No more enumeration of all devices on arrival and removal of a USB deviceSearch function (not full text, only things like device ID, drive letter, volume name etc)Some new Keyboard shortcuts (Alt+D to open the drives list, Alt+R the Others list, Alt+S to focus the search edit, Alt+Left/Right to cycle thru the search hitsOptions not to expand empty hubs or hub with only empty hubs attachedOptions to jump to arrived and removed devicesOption to expand tree items to make selected arrived and removed devices visibleOption to rename tree items (press F2 or single-click it when selected)Uses Windows visual theme with option to turn it offWith V3.2Tree node highlight of arrived and removed devicesWith V3.3Can write and read a report in XML format (not compatibel with USBView's)With V3.4UVC 1.5 with H.264With V3.5Can copy a full height screenshot of the tree-view to the Windows clipboardWith V3.6Support for high-DPI screens - no more bitmap scaling under Windows 8/10/11With V3.7Tree node of USB devices can use better names than those (often generic) from the Device ManagerWith V3.8Context menu item "Regedit..." to open certain device specific registry keys in the Windows Registry EditorWith V4.0Child devices of the USB device are shown in the tree-view (can be turned off)USB4 and Thunderbolt (information from Device Manager only)Option to show drive sizes in the tree-viewThe former UsbTreeView.txt is now accessible thru the help menuWith V4.2Half Dark ModeWith V4.3Font of the tree-view can be changedAll devices can be renamed (F2 or click again)Renaming a device sets the device's registry value "FriendlyName" too. This way the name change is reflected in the Windows Device Manager.But only if in the menu "Options" -> "Device Names in Tree" "From Device Manager" is selected, otherwise this stays for UsbTreeView only.With V4.4Shows SuperSpeedPlus connection speed of 10 or 20 GBit/s (requires Windows 11 24H2 or later)256x256 icons for ultra high DPI (or just very large font in the tree-view - just for fun: with Sans Serif 136 you get 256x256 icons at 100 scale)With V4.5Context menu item "Network Properties..." for network devices opening its Properties dialogContext menu item "Test Read Speed..." for disk devices perfoming a short read speed test Latest History V4.5.1Bugfix: With option "allow only one instance" activating a previous instance actually worksNew: In section Summary it shows comments for the "USB Version" like "3.2 Gen 1 (aka USB 3.0 - 5 Gbit/s)"V4.5.0New: Context menu item "Properties" for "My Computer" node opening the Windows properties dialogNew: Context menu item "Network Properties..." for network devices opening its Properties dialogNew: Context menu item "Test Read Speed..." for disk devices perfoming a short read speed testNew: Device specific icons instead of class icons if availableNew: Fonts are stored DPI specific, avoiding rounding errors when switching between DPIsRestored: 48x48 icons removed in V4.4.0 in favor of 256x256 are back (256 does not scale well down to 48)V4.4.4Bugfix: Crash when selecting certain WPD devicesBugfix: Sometimes wrong 45 tree icon after restarting a deviceNew: Tree icons with 10 or 20 instead of S+ for SuperSpeedPlus devices on Windows 11 24H2V4.4.3Bugfix: Non-PCI xHCI host controllers not shownNew: Context menu item "Explorer" for Storage Volumes and WPD storage devicesV4.4.2Bugfix: USB4 Device Router not shownMew: Firmware Status Capability Descriptor decodedV4.4.1Bugfix: In section "Summary" complain about missing iSerial string descriptor even it is presentMew: Manufacturer and Product string descriptor shown in section "Summary"V4.4.0Bugfix: Some reasons for crashs fixedNew: Shows SuperSpeedPlus connection speed of 10 or 20 GBit/s (requires Windows 11 24H2 or later)New: 256x256 icons for ultra hi-res screens or very large font in the TreeViewV4.3.5 (2024-08-18)New: Larger icons for hi-res screens or large fonts in the TreeViewV4.3.4 (2024-08-05)Bugfix: Some icons colors stayed white or black when background color of the TreeView was neitherV4.3.3 (2024-08-04)New: Unwanted horizontal scroll in the treeview avoided on many occationsNew: Background color of the TreeView can be changedV4.3.2 (2024-07-21)Bugfix: Deselected option "Expand for empty Hubs" had no effect since V4.2.1V4.3.1 (2024-07-14)New: Better large icons (on high DPI or with large tree-view font)New: arm64 releaseV4.3.0 (2024-06-19)New: Font of the tree-view can be changedAll devices can be renamed (F2 or click again)New: Renaming a device sets the device's registry value "FriendlyName" too. This way the name change is reflected in the Windows Device Manager.But only if in the menu "Options" -> "Device Names in Tree" "From Device Manager" is selected, otherwise this stays for UsbTreeView only.Bugfix: Another crash fixedV4.2.7 (2024-06-11)Bugfix: Sometimes black font color in the right pane even dark mode active or other color selectedNew: Commandline parameter -s to pre-fill the search textbox, e.g. -s=USB\VID_1234&PID_9876V4.2.6 (2024-06-02)Bugfix: Switching Windows theme off did not work on Windows 8 and older since V4.2Bugfix: High CPU load on XP and Vista/Win7 with DWM disabledBugfix: Problem icon sometimes not updated after device restartBugfix: Some more crashs fixedV4.2.5 (2024-05-09)Bugfix: Yet another crash fixedV4.2.4 (2024-05-07)Bugfix: Another crash fixedV4.2.3 (2024-05-02)Bugfix: Some reasons for crashes fixedNew: Starts RegEdit in Local System context to get access to all device keysV4.2.2 (2024-04-14)Bugfix: Somtimes freeze when using the jump-listsNew: Shows a very few information about HID devicesV4.2.1 (2024-04-08)New: Dark scroll bars and combo boxes in "Half Dark Mode"V4.2.0 (2024-04-01)New: "Half Dark Mode"V4.1.1Bugfix: "Device maximum Speed" of SuperSpeed devices connected at High-Speed shown wrong as High-Speed in V4.1.0V4.1.0New: For video devices the default video modes are shown in the Summary sectionNew: Some information about WPD devicesNew: Option to show useless WPD devices Windows creates for USB storage volumes (maybe known to some for haveing "Code 10" in the device manager when a volume had no drive letter under Windows 7/8)New: USB3 Ports of SuperSpeedPlus connected standard hubs are assumed to support SuperSpeedPlus tooNew: Shows an error if a bInterfaceNumber is > bNumInterfaces-1Bugfix: Lots of minor fixes and some reasons for crashes fixedV4.0.6New: Workarounds for devices for which no arrival/removal notifications are sentV4.0.5Bugfix: Several reasons for crashs in V4.x fixedBugfix: Max port speed of known SuperSpeedPlus ports not shown as SuperSpeedV4.0.4Bugfix: SuperSpeed devices running at High-Speed shown with a "Device max speed" of High-SpeedBugfix: Too small font in the right pane on high DPI if there is an INI written by version before V3.6.0Bugfix: Some highlighting glitchesV4.0.3Bugfix: Rare crash on device restartBugfix: Restarted devices sometimes kept the problem iconBugfix: CDROM drives sometimes not addedNew: Option to show hidden volumesV4.0.2Bugfix: Crash when selecting a CDROM driveV4.0.1Some minor fixes for child devicesV4.0.0New: Child devices of the USB device are shown in the tree-view (can be turned off)New: USB4 and Thunderbolt (information from Device Manager only)New: Option to show drive sizes in the tree-viewNew: The former UsbTreeView.txt is now accessible thru the help menuV3.8.9Bugfix: Since V3.8.6 instant crash on some machinesV3.8.8Bugfix: Wrong complain about too short USB hub descriptor on USB3 root-hubsV3.8.7Bugfix: Crash when a device reports more than 16 configurationsV3.8.6Bugfix: Graphical glitches when moving the Window between screens with different scalingsV3.8.5Bugfix: Some registry values where shown even if they are not presentNew: Non-existing ports no more shown in the treeviewNew: Tools menu for opening the Windows Device Manger, Disk Manager, etcV3.8.4Bugfix: Some minor fixesV3.8.3Bugfix: Loading an XML report did not work on Windows with an ANSI codepage using a variable-width encoding (Chinese/Japanese/Korean)V3.8.2Bugfix: Since V3.7.7 no more new devices where detected after removing a hub until a full refreshNew: Billboard Capability Descriptor decodedV3.8.1Bugfix: Starting Regedit did not work mostlyV3.8.0New: Context menu item "Regedit..." to open certain device specific registry keys in the Windows Registry EditorRewind: Reporting a USB version of 2.0 is no more blamed as an error if the device does not deliver an "other_speed" device_qualifier descriptor because the document 2002_05_28_errata.pdf says:"Full speed and low speed only devices designed to this specification should also use version number 2.0"even main USB 2.0 spec says in 9.2.6.6:"Devices that are high-speed capable must set the version number in the bcdUSB field of their descriptors to 0200H. This indicates that such devices support the other_speed requests defined by USB 2.0.". But Full Speed devices do not support the other_speed requests since the have no other speed...V3.7.8Bugfix: V3.7.7 did no show a Window when started under XP thru the Windows Explorer (because it passes stdin/out handles, so UsbTreeView thinks it shall silently write a report to stdout)Bugfix: V3.7.7 crashed when a hub did not deliver its USB_HUB_INFORMATIONV3.7.7Workaround: Some ASMedia host controllers fail to deliver their root-hub's symlink by means of IOCTL_USB_GET_ROOT_HUB_NAME. Same problem when requesting the symlink of a standard hub (IOCTL_USB_GET_NODE_CONNECTION_NAME). Both calls may fail with ERROR_NOT_SUPPORTED when the ASMedia drivers asmtxhci.sys and asmthub3.sys are used. Both cases are resolved now by devices' parent-child relation.New: For /R and /X a 'magic' file name of "stdout" makes it write the text- or XML-report to stdout instead of an actual file. If not redirected it attaches to parent process' console or creates a new one.V3.7.6Bugfix: wChannelConfig of Audio 1.0 descriptors decoded wrong, possible crashBugfix: Other Speed Configuration Descriptor not shown since V3.4V3.7.5Bugfix: x64 Release did not save settings when it has no write access to the INI file because Windows does VirtualStore redirection for 32 bit apps only. Without write access the INI is now saved to %ALLUSERSPROFILE%\Uwe Sieber (under Windows 2000, XP and 2003 to %APPDATA%)V3.7.4Bugfix: Option "Read Msft String Descriptor 0xEE" was read inverted from INI since V3.4.0, so it switched between on and off every startBugfix: bInterval of endpoint descriptors decoded wrongNew: Drop-down lists as wide as the longest itemV3.7.3New: Some fine-tuning for smart node namingV3.7.2Bugfix: When renaming a USB dev's node the default name was always the device description from the Device Manager, even another source was selectedV3.7.1Bugfix: V3.7.0 had no valid default for the new source of display names resultung in showing device IDs until a valid source was selectedV3.7.0New: Tree nodes of USB devices can show now either names from the Device Manager (as UsbTreeView before V3.7) or names build from USB string descriptors or (new default) a smart choice of the available strings (let me know if it does not look that smart for one of your devices)Bugfix: V3.6.0 reported an error for an trailing NULL character in string descriptors even there is noneV3.6.0New: Support for high-DPI screens - no more bitmap scaling under Windows 8/10/11V3.5.3Bugfix: Wrong font color when highlighting selected node while not focusedV3.5.2Bugfix: Port maximum speed shown wrong on pre-Win8 systemsBugfix: Comboboxes with old content after loading an XML reportV3.5.1Bugfix: Minor fixesV3.5.0Bugfix: Crash on Windows 8, 8.1, Server 2008 when dealing with companion portsNew: Highlight for companion ports (Win8+)New: Right-click -> Copy Tree from here can copy a full treeview screenshotV3.4.4Bugfix: since V3.4.0 copy tree to clipboard did not workBugfix: since V3.4.1 possible crash when restarting a hubV3.4.3Bugfix: since V3.4.1 SuperSpeed ports got no 'S' icon and max speed shown as SuperSpeedPlusV3.4.2Bugfix: V3.4.1 crashed on pre-Win8 systemsV3.4.1Bugfix: Child devices sorted by device id instead of kernel name, at least for devices the author came across with this leads to better sorting, e.g. for COM portsBugfix: TreeView's context menu did not work on negative mouse coordinates (on screens left of the main screen)New: Shows a summary with the most interesting informationNew: Can shows sum of used endpoints of all devices attached to a root-hub in the tree-viewNew: Remembers which ports have ever operated at SuperSpeedPlus (because so far there is no way to request the capability)V3.4.0Bugfix: Crash with failed USB hubNew: UVC 1.5 H.264 descriptors are decodedNew: More device interface GUIDs are resolvedNew: Reporting a USB version of 2.0 is blamed as an error if the device does not deliver an "other_speed" device_qualifier descriptor because USB 2.0 spec says 9.2.6.6: "Devices that are high-speed capable must set the version number in the bcdUSB field of their descriptors to 0200H. This indicates that such devices support the other_speed requests defined by USB 2.0."V3.3.8New: Contains nearly 12000 vendor names from usbif.json instead of 1000 from the former usb.ifNew: Option to allow only one instance runningNew: Nodes of devices with a problem show a tool-tip with a problem descriptionV3.3.7Bugfix: Renamed tree items not shown with the customized name on startupV3.3.6New: Shows Registry flags under HKLM\SYSTEM\CurrentControlSet\Control\usbstor\VVVVPPPPV3.3.5New: Sum of used endpoints shown for root-hubsNew: Option to show the number of used endpoints in the treeBugfix: Crashs on device removalV3.3.4Bugfix: Sometimes truncated XML reportNew: A selected tree node can be renamed by pressing F2 or single left-click it (needs admin privileges)V3.3.3New: Finds root hubs which are not the child device of their host controller (often seen on virtual USB over LAN)V3.3.2Bugfix: Text report by command-line did not work since V3.3.0V3.3.1Bugfix: Device arrivals not detected when registry contains wrong device path for a USB hubV3.3.0New: Can write and read a report in XML formatV3.2.4Bugfix: Crash when showing open handle after failed safe removal of a device with a COM portBugfix: MessageBox was shown after writing a report by command-lineBugfix: guidExtensionCode in 'Video Control Extension Unit Descriptor' was not shownNew: Name of guidExtensionCode (e.g. 'YUY2') is extracted from the first four bytes of the GUIDV3.2.3Bugfix: Some strings for Smart Card Functional Descriptor where shown as question marksBugfix: UVC frame intervals where shown without fraction of milliseconds for continuous frame typeV3.2.2Bugfix: UVC frame intervals where shown without fraction of millisecondsV3.2.1Bugfix: Under XP the UsbTreeView process did not end after using "Safely Remove"New: Highlight color of selected item darkerV3.2.0New: TreeView highlighting as known from the SysInternals ProcessExplorerNew: On failed 'safe removal' it shows open handles found for the device ID Windows returns as VetoNameNew: Shows global registry USB flags under HKLM\SYSTEM\CurrentControlSet\Control\UsbFlags and HKLM\SYSTEM\CurrentControlSet\Services\usbhub\hubgV3.1.7New: Detects arrival of USB devices even its driver fails to start, e.g. if no driver is installed yetNew: Detects childs of USB devices even they don't generate device notifications nor they are enumerated by SetupDiGetClassDevs (seen on Arduino Micro)V3.1.6Bugfix: Device Qualifier Descriptor was requested even the device is running at SuperSpeedV3.1.5New: Option to show the port chain instead the port number in the treeBugfix: Some hexdumps where missingBugfix: Device Qualifier Descriptor was requested for USB 1.x devicesV3.1.4New: Copy tree to clipboard functionNew: Text copied to clipboard as HTML fragment enclosed in <pre> tags to get a monospaced font offhandNew: SmartCard Reader Feature Descritpor decodedBugfix: Volume of CDROM drives not recognized on arrivalV3.1.3Bugfix: Wrong value shown for Clock Selector in Audio Control Clock Selector Unit Descriptor 2.0New: Full enumeration when missing USB device notifcation is detected (workaround for SILEX USB Device Servers)V3.1.2Bugfix: Occasional crash on safe removalBugfix: Since V3.0.6 no device information for UHCI controllers under Windows 2000Bugfix: wPacketSize decoded wrong if SuperSpeed device reported a Device Bus Speed of 0x02V3.1.1 (06 May 2017)New: Can show multiple Configuration and Other-Speed-Configuration DescriptorsNew: TreeView sub-menu to copy some id strings to clipboardV3.1.0 (24 Feb 2017)Bugfix: Removal of storage volumes not handled correctlyNew: Project is UNICODE now, so non-ASCII string descriptors are shown correctly even the Windows ANSI codepage cannotNew: Improved robustness when decoding invalid descriptorsNew: Option "Always On Top"V3.0.8 (01 Jan 2017)Bugfix: No more font change in the text pane when hitting some special charatersV3.0.7 (09 Dec 2016)New: Improved detection of arrival/removal of child devicesNew: Devices in low power state and problem code 0 get a 'D1', 'D2' etc icon instead of an exclamation markNew: Workaround for a strange phenomenon: On some Windows device notifications come with wide strings even RegisterDeviceNotificationA was used; This is dealt with now.V3.0.6 (10 Nov 2016)New: Support for virtual USB Controllers where Hostcontroller and Root-Hub are one and the same deviceV3.0.5 (03 Nov 2016)New: Port property PortConnectorIsTypeC (Win10 only)V3.0.4 (15 Aug 2016)New: Device Manager problem numbers shown in the treeview iconsV3.0.3 (29 June 2016)New: Search hits get highlighted in the text pane (which is a RichEdit control now)V3.0.2 (16 June 2016)Bugfix: Dropdown lists not refreshed on device arrival and removalV3.0.1 (13 June 2016)Bugfix: Crash on full refreshV3.0.0 (12 June 2016)New: No more enumeration of all devices on arrival and removal of a USB deviceNew: Search function (not full text, only things like device ID, drive letter, volume name etc)New: Toolbar controls shrink if requiredNew: Some new Keyboard shortcuts (Alt+D to open the drives list, Alt+O the Others list, Alt+S to focus the search edit, Alt+Left/Right to cycle thru the search hitsNew: options not to expand empty hubs or hub with only empty hubs attachedNew: options to jump to arrived and removed devicesNew: option to expand tree items to make selected arrived and removed devices visibleNew: Uses Windows visual theme with option to turn it offOld History Screenshots USB 1.1Here we have an old XP Computer with one single USB 1.1 host controller. As every USB host controller it has exactly one USB root-hub. The root-hub has two ports, at port 1 there is a USB mass storage device attached which is mounted at drive letter Z:. Even the USB drive is USB 2.0 it is running at Full-Speed only because it is attached to a USB 1.1 hub. USB 2.0Here we have Win7 Computer with an Intel P35 chipset which has 8 USB 2.0 High-Speed capable ports. The 8 physical ports are split here: 4 USB 1.1 controllers deal with USB low and Full-Speed devices while one USB "Enhanced" controller deals with the High-Speed devices. I don't know why the 1.1 ports are split over 4 controllers with 2 ports each. Since all manufactures do this, there must be a good reason...The USB High-Speed controllers usually have the keyword "Enhanced" in their device name. Since Vista the "USB Hub Capabilities" can be checked for the "HighSpeed" flag.At port 1 of the Enhanced controller there is a USB High-Speed hub attached and at his port 4 there is a USB mass storage device attached which is thanks to USBDLM mounted at drive letter Z: again. Here it is running at High-Speed.Newer Intel chipset have no more USB1 root hubs. Instead there are two integrated standard hubs which translate Low and Full-Speed into High-Speed. Intel calls them "Integrated USB 2.0 Rate Matching Hub". USB 3.0Here we have a Win8 Computer with a Texas Instrumens TUSB7340 USB SuperSpeed controller card. Windows 8 has native support for USB 3.0 SuperSpeed and an enhanced USB stack which delivers more information, e.g. which speed each port supports. Therefore UsbTreeView can show a 'H' in the icon of the high-speed ports and an 'S' for the SuperSpeed ports. Still missing is the information about the supported SuperSpeed (5, 10 or 20 GBits/s)The TUSB7340 has 4 physical ports. 4 logical ports are for low, full and high-speed devices and another 4 for SuperSpeed devices. Windows 8 also delivers information about which logical ports belong together. In the screenshot you see that the selected port 4 has the CompanionPortNumber 8, this means that port 4 and 8 share the same physical port.USB-C ports may have two companion ports (a group of one USB2 and two USB3): Instead of switching the USB3 RX/TX lines depending on the orientation the device is plugged, the 2x5 USB3 pins are just wired to two separate USB3 ports, see here: https://richardg867.wordpress.com/2020/02/29/usb-c-done-cheap/Internal USB3 ports may have no USB2 companion ports. USB 3.0 HubUSB3 hubs are in fact two completely independend hubs, one for SuperSpeed and the other one for High, Full and Low-Speed devices.The SuperSpeed hub is wired to the five pins in front of a USB3 port, the High-Speed hub is wired to the four pins deep inside of the port.The only thing in common is that both appear connected to ports which are mutual "companion ports".Here port 20 is the companion port of port 9 and vice versa. Port 9 is highlighted in red because it is the High-Speed port. If Port 9 would be selected then port 20 would be highlighted blue because it's a SuperSpeed port: The ports of the two hubs are mutual companion ports of the same port at the other hub.A USB3 device first tries to establish a stable communication with the USB3 port. If that fails (for instance because of a too long or too bad cable) then it tries the USB2 High-Speed connection which usually works then because its electrical requirements are much lower. If connected with High-Speed then the device reports a USB version 2.1 or 2.0.With the right adaptor one could attach a SuperSpeed device and a High-Speed device to the same physical port a the same time. This happens too with fake USB3 hubs which are in fact High-Speed hubs with the five SuperSpeed pins wired thru to one or all of the output ports.So when a USB3 hub is attached there must appear two hubs, otherwise it is fake. Intel Series 8 xHCI ControllerHere we have a bunch of yellow exclamation marks on a Intel Series 8 xHCI controller on a Asus H81-Plus board. Its ports 11 to 15 have a connection status 3 "Device general failure" which leads to the yellow exclamation marks in the tree view.Probably that's the result of having higher port numbers than actual ports are available. In the Intel datasheet's there is documented a register called MAXPORTS:"Number of Ports (MAXPORTS)The value in this field reflects the highest numbered port in the controller, not the actual count of the number of ports. This allows for gaps in the port numbering, between USB2 and USB3 protocol capabilities."So here ports 11 to 15 are in fact a gap in the port numbering, the ports do not exist. Since V3.8.5 UsbTreeView does not show such ports anymore (Windows 8 and higher). Intel's drivers (which you need up to Windows 7) just report NoDeviceConnected at these ports. No response from USB deviceHere we have a non-responding USB device: The USB port signalled an attached device, Windows requested its device descriptor but got no answer. Since Vendor and Product ID are therefore unknown, Windows assigns USB\VID_0000&PID_0002\ plus a random number as device instance ID. The PID might be another low number as 0001 or 0004.Either the device is defective and does not respond or the connection is so bad that any communication fails. Sometimes USB ports signal an attached device even there is none or just a long cable without a device attached. Identify simple BadUSB Devices Simple BadUSB devices are USB composite devices, so they keep their usual functionality but have an additional 'bad' function as a keyboard or a network adaptor.By means of UsbTreeView you can check:The BadUSB device demonstrated by Adam Caudill and Brandon Wilson at github.com looks like this: ======================== USB Device ======================== +++++++++++++++++ Device Information ++++++++++++++++++ Device Description : USB Composite Device Device ID : USB\VID_13FE&PID_5201\6&1A941099&0&2 Driver KeyName : {36fc9e60-c465-11cf-8056-444553540000}\0021 Driver : C:\Windows\system32\DRIVERS\usbccgp.sys Legacy BusType : PNPBus Class : USB Service : usbccgp Enumerator : USB Location Info : Port_#0002.Hub_#0006 Manufacturer Info : (Standard USB Hostcontroller) Child Device 1 : Disk drive Device ID : USB\VID_13FE&PID_5201&MI_00\7&17D1C3FF&0&0000 Class : USB Child Device 2 : USB Input Device Device ID : USB\VID_13FE&PID_5201&MI_01\7&17D1C3FF&0&0001 Class : HIDClassNote that it is a Composite Device, that is has two child devices - the expected disk and the potentially bad keyboard.A regular USB drive look like this: ======================== USB Device ======================== +++++++++++++++++ Device Information ++++++++++++++++++ Device Description : SanDisk Cruzer Edge Device ID : USB\VID_0781&PID_556B\20043514800F42F2829F Driver KeyName : {36fc9e60-c465-11cf-8056-444553540000}\0023 Driver : C:\Windows\system32\DRIVERS\USBSTOR.SYS Legacy BusType : PNPBus Class : USB Service : USBSTOR Enumerator : USB Location Info : Port_#0002.Hub_#0006 Manufacturer Info : USB Storage Device Child Device 1 : Disk Device ID : USBSTOR\DISK&VEN_SANDISK&PROD_CRUZER_EDGE&REV_1.18\123 Class : DiskDrive Volume : \\?\Volume{4d513cf0-6422-11e4-86f7-001b2157a355}\ Kernel Name : \Device\HarddiskVolume17 Mountpoint : Z:\USBDLM can ask on arrival of a new keyboard or network device if it shall be activated:https://www.uwe-sieber.de/usbdlm_help_e.html#badusb Conditions and Download Download latest release:x64:https://www.uwe-sieber.de/files/UsbTreeView_x64.zip(~480KB)Win32:https://www.uwe-sieber.de/files/UsbTreeView_Win32.ziphttps://www.uwe-sieber.de/files/UsbTreeView_Win32_VC6.zip(~450KB)Several anti-virus scanners think that the Win32 build is a trojan. Just use the VC6 build then, same scanners say this is clean...arm64:https://www.uwe-sieber.de/files/UsbTreeView_arm64.zip(~490KB)Latest and old releases are available under the usbtreeviewNNN_platform.zip names, before V3.4 as usbtreeviewNNN.zipUsbTreeView is Freeware. Allowed:- usage in any environment, including commercial- include in software products, including commercial- include on CD/DVD of computer magazines- distribution by means of packet managers Not allowed:- modify any of the files- offer for download by means of a "downloader" softwareI don't ask for donations but some users insist, so:PayPal Similar Tools Restart USB port by command-line:Restart USB PortList USB devices on command-line:List USB DevicesInformation about serial COM ports:COM Port InfoInformation about drives:USB Drive Info Uwe SieberHome: https://www.uwe-sieber.de/english.html |
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://www.hqyman.cn/post/11610.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~