Bus Hound概述

Bus Hound概述

Bus Hound是一个超级软件总线协议分析器,用于捕捉来自设备的协议包和输入输出操作。该软件是由美国perisoft公司研制的一种专用于PC机各种总线数据包监视和控制的开发工具软件,其名"hound"的中文意思为"猎犬",即指其能敏锐地感知到总线的丝毫变化。

本文档是对USB控制开发软件---Bus Hound的使用方法的总结。适用于正在学习USB总线驱动的技术工程师。

Bus Hound下载地址

BusHound v6.0.1

Bus Hound使用说明

主要介绍下Bus Hound的几个界面,各个选项的含义,以及如何设置。

settings设置 - 设置捕捉的内容

limits(设置缓冲区)

Capture Capacity(捕获能力): 用于捕获数据缓冲区的容量,以K为单位。

Max Record Length(最大记录长度): 是在传输时显示的最大字节数(设置为512可以看到完整的描述符信息)

Stop When...(设置停止条件)

用于停止捕获操作的触发条件,可对触发条件进行任何组合,只要有一个触发条件满足时,捕获操作将停止,屏幕上将用高亮红色显示对应的触发数据

Buffer Full(缓冲区满): 当缓冲区满时停止操作,如果未选中此选项,系统将采用滚动覆盖模式保存最近捕获到的数据

Not Ready(没有准备好): 遇到设备未准备好,超时,或忙的情况时停止捕获操作

No Media(没有媒体): 当设备返回没有媒体时,停止捕获操作

Media Error(媒体错误) : 当设备返回一个媒体错误时,停止捕获操作,典型情况是报告发现扇区错误

Hardware Error(硬件错误): 当发生硬件错误时停止捕获操作

Bus Reset(总线复位): 遇到总线复位操作时停止捕获操作

Invalid Command(非法命令): 当发现非法的命令时停止捕获操作

Data Overrun(数据过载): 当发生数据过载或数据欠载时,停止捕获操作

Vendor Error(厂商错误): 当一个独特的厂商错误出现时停止捕获操作

Any Other Error(任何错误发生): 当系统遇到任何种类的错误发生时停止数据捕获操作

Text Pattern / Hex Pattern(文本式样): 当出现定义的特殊式样的文本数据时,停止捕获操作,对于文本式样,区分大小写,检查过程遍及数据传输的每个阶段,包括命令,数据和状态阶段

Merge Repeated Commands(合并重复命令): 出现命令与前一命令相同的状况时,新命令将不独记录,取而代之的是,前一命令的数量值加1(去掉这个,相同的字节就不会合并)

Enable SoundS(执行捕获): 设定或遇到触发条件弹出设备窗口时,发出"呯"的一声

Driver I/O to Capture(设置要捕获的驱动程序)

这个选项包括了需要抓取的驱动程序类,如果取消勾选,那对应的驱动输出的所有数据都会被过滤。

不详细说明。

Phases to Capture(设置要捕获的数据包类型)

这个选项包括了Bus Hound所有能捕获的阶段列表,复选对应的选项表示进行捕获操作,清除复选框时表示不进行捕获,这个选项对于用于过滤不感兴趣(无用)数据尤为有用。

ATAS - ATA task file status【硬盘,ATA命令】

ATA - ATA task file command【硬盘,ATA命令】

ATP - ATA pass throuth【硬盘,ATA命令】

BRB - Biletooth request block【蓝牙】

CMD - SCSI/ATAPI command【SCSI】

CTL - USB control transfer【USB】USB控制传输

IN - Data in transfer【USB】数据输入

IRB - FireWire I/O request block【FireWire总线】

IRP - I/O request packet【I/O请求】

ISOC - Isochronous transter【USB】同步传输

LOCK - FireWire lock transaction【FireWire总线】

NTSTS - NT status value. 【/】

ok - command complete【/】

OUT - Data out transfer【USB】数据输出

RESET - bus Reset【/】复位信号

SENSE - SCSI sense data【SCSI】

SPT - SCSI pass throuth block【SCSI】

SRB - SCSI request block【SCSI】

SSTS - SCSI request block status【SCSI】

STAK - NT IRP stack location【I/O请求】

URB - USB request【USB】USB请求块

USTS - USB status【USB】USB状态

Ps:如果只是捕获USB相关的包,只选择:CTL、IN、OUT、URB、USTS...

Coloumn to Display(设置要纵列显示的项目)

这个选项用于设置纵列显示的项目,勾选的太多,显示起来会比较乱,最好只勾选几个关键的。

Device: 设备号(小数点后面代表端点)

Address: 地址(FireWire异步地址或通道号码,略)

Length: 数据长度

Phase: 捕获类型(Phases to Capture中的选项)

Data: 数据

Description: 阶段捕获数据描述

Delta: 相对上一次输出的时间增量

Cmd.Phase.Ofs(rep) Date: 软件自带帮助文档

Date:日期,以年月日形式出现

Time: 时间相位以小时:分钟:秒。毫秒形式出现

Driver: 驱动程序-提交命令的驱动程序

Device设置 - 设置捕捉的设备

启动Bus Hound软件,将USB设备插入电脑。如图所示,进入"Devices"目录,在"Devices"内选择要监控的设备。例如:我的设备是一个U盘,则设备为USB大容量存储设备,点击"USB大容量存储设备"图标,可以在下面的"Properties"图框内看到设备的总线类型、设备的电源以及各个端点的功能等信息。

Click in the check box to select a device(勾选设备,即可监听)

Auto select hot plugged devices(勾选自动检测设备插入拔出)

Properties(设备属性)(显示设备的一些细节特性)

Send Command(发送命令)(发送命令到设备)

Send Command - 发送命令

选中需要监听的设备----点击Send Command----USB----选中端点----设置Data Length,输入发送的协议命令,点击Run,显示Complete

选中需要监听的设备----点击Send Command----USB----点击Reset Device,复位设备

选中需要监听的设备----点击Send Command----USB----点击Hot Plug,热插拔

切至Capture,查看捕获的数据。

Ps:直接在下面的"Hex Bytes"框中可以输入数据。框中的部分既是数据输入部分,直接输入数值就可以。最后点击 "RUN" 完成发送。


版权声明:本文为CSDN博主「Evan_ZGYF丶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/Ivan804638781/article/details/112929441

相关推荐
PythonFun4 小时前
WPS中表格行高无法手动调整怎么办?
前端·html·wps
IT_陈寒4 小时前
JavaScript性能优化:7个V8引擎内部原理帮你减少90%内存泄漏的实战技巧
前端·人工智能·后端
narukeu4 小时前
聊下 rewriteRelativeImportExtensions 这个 TypeScript 配置项
前端·javascript·typescript
开压路机4 小时前
模拟实现反向迭代器
前端·c++
San30.4 小时前
从 0 到 1 打造 AI 冰球运动员:Coze 工作流与 Vue3 的深度实战
前端·vue.js·人工智能
xiangzhihong84 小时前
Visual Studio 2026 正式发布,带来 AI 原生 IDE 和提升性能
前端
安_4 小时前
为什么 Vue 要用 npm run dev 启动
前端·vue.js·npm
LYFlied4 小时前
【每日算法】LeetCode 437. 路径总和 III
前端·算法·leetcode·面试·职场和发展
六便士的理想4 小时前
el-table实现滑窗列
前端·vue.js