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