Bus Hound中文版使用说明书.docx
Bus Hound 5.0使用说明书(版本:1.0)编制:古道热肠版权所有:21I C侃单片机板块完成日期:2007年7月BusHound软件是由美国perisoft公司研制的一种专用于PC机各种总线 数据包监视和控制的开发工具软件,其名“ hound的中文意思为“猎犬”,即 指其能敏锐地感知到总线的丝毫变化。Bus Hound的最新版本为6.0己上市,但考虑到目前广泛使用的为5.版 本,故本说明书以其5.0作为蓝本,进行功能说明。Bus Hound是一个超级软件总线协议分析器,用于捕捉来自设备的协议包 和输入输出操作,其优良特性如下:拜 支持所有版本的IDE,SCSI,USB,1394总线拜支持各类设备如硬盘库,DVD,鼠标,扫描仪,网络照相机等拜 支持 Windows9X,WindowsMe,NT4.0,2000,2003,XP 和嵌入式 XP 操作系统拜 捕捉数据的总量仅受机器内存限制拜 可以设置触发信号自动停止捕获操作拜测试读取,同步等设备性能拜捕获设备驱动包,例如IRP拜捕获任意数量的并行设备,而不管其总线类型拜身材苗条,易于交换与下载拜捕获的数据易于拷贝到其它环境生成Html格式拜 捕获的数据能保存为文本文件或ZIP文件拜所有的可捕获设备以树形结构列出,让选择设备来得更轻松些拜可捕获设备的启动过程拜用户爱好设定功能,如用户可调整捕获到的数据显示宽度,更宜于查看和使用。拜 查看底层协议包括SCSI的sense数据和USB的设置包拜 查看每阶段的时间变化精确到微秒拜将输入输出发生的操作实时显示到屏幕上拜 纯软件解决方案,你不需要对硬件进行任何变更,一些依旧Bus Hound有如此强大的功能,首先让我们一睹其界面风采,启动界面如下:二、捕获窗口操作指南单击主界面窗口上部命令按钮区的Capture按钮进入捕获操作主视窗。一个命令发送到设备通常由1个或几个阶段来完成,例如,一个典型的命令由命令字 节阶段,数据字节阶段和状态字节阶段来完成,Bus Hound在捕获显示窗口中将显示出 阶段完成的时间信息和详细的数据内容。捕获数据列表以下将描述捕获窗口中每一列的功能1、设备列设备ID,每个设备分配了一个数字,第1个设备从0开始,第2个设备为1,依此 类推,这项功能对于软件同时捕获多个并行设备非常有用,设备的ID分配在Device窗口 中完成。对于USB设备,设备的端点同时显示出来(例如4.1表示ID为4的设备的1号端点)2、阶段列阶段类型,请参考下表为每个阶段缩写获知详细的细节信息阶段,功能描述-ADDR8 byte 1394 transfer addressATI7 byte ATA task file returned from an IDE deviceATO7 byte ATA task file sent to an IDE deviceATPWindows ATA_ PASS_ THROUGH data structureCDBSCSI command descriptor block(Known as a packet command for ATAPI devices)CTL8 byte setup packet of a USB control transferDIData In (Device to PC transfer)DOData Out (PC to device transfer)IORWindows VXD I/O Request data structureIRBWindows 1394 I/O Request Block data structureIRPWindows I/O Request Packet data structureISOCIsochronous transfer data bytesLENData transfer length of a DI,DO, or ISOC phase indecimal units. This field is off by default and can beturned on from the settings WindowLOCK1394 lock transactionNSTSWindows 4 byte kernel mode NTSTATUS fieldRSETBus or device resetRSTSWindows VXD IOR statusSNSSCSI request sense dataSPTWindows SCSI Pass Through data structureSRBWindows SCSI Request Block (SRB) data structureSSTSWindows 1 byte SCSI Request Block (SRB) statusSTAKWindows IO_ STACK_ LOCATION data structureURBWindows USB Request Block (URB) data structureUSTSWindows 4 byte USBD_ STATUS code3、数据列与每个阶段对应的数据显示在此列中,例如命令字节,数据传输字节,和状 态字节都能在此窗口中显示出来。4、描述列I IV I JV4 ' 1 N /I、I久/、kJ J IX,I 45、时间微分值Delta( dt)从前一阶段到当前阶段所花费的时间均显示在此列中,时间单位的缩写对照表 见下表:NameUnitsusMicrosecondsmsMillisecondsscSecondsmnMinuteshrHoursdyDays6、命令.相位。1个数据组合体用来的标识当前捕获的数据的确切阶段,所有值均为十进制CMD11Phase是命令中的阶段数,1个命令通常由许多阶段组成,例如数据传输阶段和状态反馈阶段,阶段计数值从1开始,在命令中当有新的阶段产生时进行加1操作Ofs每个阶段中字节的偏移量,计数值从0开始,数据传输过程中的每个新的数据字 节时进行加1操作。Rep7、日期阶段发生的日期在这一列中进行显示,格式为:年/月/日8阶段发生的时间在这一列中进行显示,格式为:小时:分钟:秒.0-23能当退出Bus Hound应用程序时,Run按钮处于按下状态时,设备驱动部分继续捕获数 据,当系统进行重启时,它将早于系统启动过程进行数据捕获操作。当退出Bus Hound应用程序时,Stop按钮处于按下状态时,启动过程不会发生数据捕 获操作,直到按下了启动按钮。拜数据列表的列顺序能通过拖拉列顶部到合适位置进行改变。每行字节显示宽度能被修 改为1,2, 4,8,16,或者32,这些设定被保存。拜能够在捕获窗口中进行数据查找操作,输入查找的字符串在窗口左下部的文本窗 口中,然后按向上或向下箭头完成查找操作,如果未查找到字符串,光标位置不做改变,注意查找时不区分大小写。拜 窗口支持拖选操作,Shift按钮不放,单击结尾行,选中的数据能用鼠标拖拉到另外的软件中使用(就是拷贝操作),也可以按Ctrl+ C 将选中的数据先拷拷贝到剪贴板,再在其它软件中用Ctrl+ V粘贴完成数据拷贝操作。拜命令交迭交迭的命令被标识,当发送到设备的一个新的命令启动先于前一个命令时,这种 情况在输入输出子系统是有可能发生的,这种交迭现象Bus Hound能够显示出来,当 然这种情况不会出现的硬件抽象层。拜多输入输出阶段这种情况仅在Windows 9X操作系统发生,同一命令的多输入输出阶段被列表显 示时,指示传输被分割通过许多存储空间来完成的.器PS2鼠标数据格式以下是PS/2鼠标返回的数据格式,这就是众所周之的在Windows DDK中定义的MOUSE_ INPUT_ DATA 结构体:OffsetLengthContent02Not used22Position type:0000h = relative position0001h = absolute position42Button flags:0001h = left button down0002h = left button up0004h = right button down0008h = right button up0010h = middle button down0020h = middle button up0040h = button 4 down0080h = button 4 up0100h = button 5 down0200h = button 5 up0400h = mouse wheel62Mouse wheel data84Not used124X position164Y position204Device specific information器PS2键盘数据格式以下是PS/2键盘返回的数据格式,这就是众所周之的在 Windows DDIK定义的KEYBOARD. INPUT_ DATA 结构体:OffsetLengthContent02Not used22Scan code of key42Flags:0000h = key pressed0001h = key released0002h = extended scan code E00004h = extended scan code E162Not used84Device specific information保存数据窗口nBus Hound- x|s' Q S T邹PertsaftCeptura Seve Sepinos Devices HelpEslSave Captureii DaraComment;File Type'宓 Text FilsSaveC Zip File单击启动窗体界面上的Save按钮将所有捕获到的数据保存到指定的文件中,文件 格式可选为TXT格式或ZIP格式,保存到文件中的数据格式与屏幕保持一致。1个附加的数据说明将被放置在数据文件的头部,当前日期与时间也包含在说明中,通过插入 c转义字符来完成,如果保存的是ZIP格式文件,说明内容也被压缩成四Z、P稼统设定窗口系统设定窗口提供用户进行参数设置。复选框选中后立即生效,数字输入需按压应用 按钮或切换到另一个窗体时或退出Bus Hound时生效。r Buffer Full厂 Not Readyr No Mediar Media ErrorHardware Error r Bus ResetData OvernmVendor Error-Invalid Corrimand Windlows Error一 Any Other ErrorText PatternHex Pattern1Stop WhenADDR1394 txansfeiL addtejs3ATIATAtile statujAT0ATI C43K tile.ATPATA sisiss tkEGugh blockQCMCom.EizLd deseziptor blodtSCTLUSE ccmtzDl nanster3DIData ina队由out.IQRVXD I/O rtqvwst blgk.IPB1394 T/0 cequisait blacKIRPKT I2U request packetigqcLEKCsta lengthLOCK1394 lad trangia£tioAPhases to Capture (circle captured)17 Merge Arpcatcd Cnnncmd际 Enable SoundsI一拜 Buffer Size(缓冲区大小)指示用于捕获数据缓冲区的RAM大小,以K为单位,设置上限仅受系统内存限制, 如果出现内存不够,缓冲区尺寸将缩减到可用RAM的大小。如果想获得更多的空间用 来缓存数据,除了增加系统内存外,也可以在其它程序运行之前设置较大的缓冲区尺 寸。注意:申请1个比较大的缓冲区在Windows9X和Windows Me可能会花费一小段时 间。拜Max Phase(最大阶段)指定每阶段捕获数据的最大数量,例如:当设定值为32时,发生了一个64K的读操 作,仅仅前32个读取到的字节被捕获到,这个选项对于保持一个捕获数据量的最小值是非 常有用的。器Stop W hen(停止条件)设定用于停止捕获操作的触发条件,可对触发条件进行任何组合,只要有一个触发条 件满足时,捕获操作将停止,屏幕上将用高亮红色显示对应的触发数据。Any Other Error(任何错误发生)当系统遇到任何种类的错误发生时停止数据捕获操作Buffer Full(缓冲区满)当缓冲区满时停止操作,如果未选中此选项,系统将采用滚 动覆盖模式保存最近捕获到的数据。Bus Reset(总线复位)遇到总线复位操作时停止捕获操作Data Overrun(数据过载)当发生数据过载或数据欠载时,停止捕获操作。Hardw are Error(硬件错误)当发生硬件错误时停止捕获操作I nvalid Command(非法命令)当发现非法的命令时停止捕获操作Media Error(媒体错误)当设备返回一个媒体错误时,停止捕获操作,典型情况是 报告发现扇区错误。No Media(没有媒体),当设备返回没有媒体时,停止捕获操作Not Ready(没有准备好)遇到设备未准备好,超时,或忙的情况时停止捕获操作Text Pattern / Hex Pattern(文本式样)当出现定义的特殊式样的文本数据时,停止捕获操作,对于文本式样,区分大小写,检查过程遍及数据传输的每个阶段,包 括命令,数据和状态阶段。Vendor Error(厂商错误)当一个独特的厂商错误出现时停止捕获操作W indow s Error(操作系统错误)当出现一个操作系统类型的错误时停止捕获操作器 Phases to Capture(选择阶段)这个选项包括了 Bus Hound所有能捕获的阶段列表,复选对应的选项表示进行捕获操 作,清除复选框时表示不进行捕获,这个选项对于用于过滤不感兴趣(无用数据)阶段或者 启动系统默认关闭了阶段尤为有用。选项框右边,1个白色的圆将出现,这将指示用于捕获操作的阶段,如果圆出现绿色闪亮, 指示此阶段正在发生并被捕获到。拜 Merge Repeated Commands(合并重复命令)选中此项后,如果出现命令与前一命令相同的状况时,新命令将不独记录,取而代之 的是,前一命令的数量值加1,这项功能尤其适用于当与设备进行同一命令通讯时将捕获到 的数据进行简约化处理。拜 Enable SoundS选中此项后,在执行捕获,设定,或遇到触发条件弹出设备窗口时,Bus Hound 将发出“呼”的一声。拜 Columns To Display复选列表框中的选项,表示想将对应的列显示在捕获窗口中,选中的列将能执行 拖选和保存操作,详细情况见“捕获窗口”章节关于每一列的介绍。五、设备窗口设备列表指示出Bus Hound能支持的当前系统中的每一个设备,列表自动更新,反映 出是否插入或移除设备。选择复选框表示选中或取消选中设备进行捕获操作。选中操作立 即生效。每个设备被指定一个数字绑定到设备名的前面,这个数字在捕获窗口中将显示在设备 列下,这个数字用来指示设备加入系统顺序。当出现设备以亮字体显示时,指示设备不在当前的系统中。拜 Capture new deviecs(捕获新设备)选中此项将自动捕获检测到的新设备的数据,这项特色功能尤其适用于发送到热拔插 设备的第1个命令。拜 Device Properties(设备属性)这个面板将显示设备的一些细节特性,比如“传输性能表现”,性能表现是通过完成 命令过程中总的传输字节数除上总的花费时间来得到的。当捕获窗口中的运行按钮按下时, 性能表现统计数据将被清除掉。拜 Send Command(发送命令)使用此命令,您能发送您自已的命令到设备,启用发送命令功能,只需在高亮选择一 个设备后,用鼠标单击“ Send Command”按钮或简单地双击设备。发送命令到设 备的功能是一个非常强大的辅助工具,让你提交命令到USB,1394, ATA和SCSI设 备易于反掌。你也可以用它来完成一些其它的特殊操作,例如总线复位,执行硬件端 口的输入输出。注意:硬件端口的输入输出操作可以会导致系统崩溃,清谨慎使用。六、文件安装列表BUSHOUND.EXE - Bus Hound 可执行文件BUSCMDR.EXE - Bus Commander 执行文件BHUNINST.EXE -反安装文件(卸载文件)BHLOG.EXE -将数据捕获到磁盘的工具(仅注册版有此文件)BHOUND3.VXD - Windows 95, 98, Me 设备驱动程序BHOUND4.SYS - Windows NT 4.0 设备驱动程序BHOUND5.SYS - Windows 98, Me, 2000, 2003, XP 设备驱动程序HELP.RTF -帮助文件(也就是本文件)Site License注册版的Bus Hound在其安装目录下包含了 bhlog.exe命令行工具。Bhlog将捕获 到的实时数据存放到磁盘文件中,这将解除捕获数据存放空间受机器内存限制的束缚。让你实现磁盘有多大空间,我Bun Hound就有多大能耐的功能。Bhlog在系统冻结(休眠) 甚至重启时仍能将捕获到的数据存放到1个网络驱动器的文件中的功能。(E3Bus HoundISUE ?Perfcift匚 isBwr#Seye口 wi 中等HelpEart使用过程中遇到问题可查看软件的帮助系统,也可以去Peri soft软件公司的网 站获得最新的信息。Bus Hound软件的帮助系统主界面如下:1、什么类型的输入输出操作能被捕获?Bus Hound捕获经由总线传输的数据包,这包括命令,数据,状态,和时序。Bus Hound并不监视独立的硬件信号。2、Bus Hound会改变我的设备的工作方式吗?答案是不会改变,因为Bus Hound仅仅是完成“侦听”数据包的工作,它不会改 变命令,更不会发送它自已的命令,也不会替代任何系统设备,不会存取硬件。总之 系统和设备的操作不必在乎bus Hound软件是否在运行或停止运行,就当它不存在似 的。3、Bus Hound会影响到系统的性能吗?用户捕获数据是来自速度极快的并行设备,因而感觉不到它对系统性能的 影响,换句话说,给使用者的印象是对性能没有影响。当处于停止状态时,Bus Hound也是不会损伤系统。4、Bus Hound支持哪些设备?所有的IDE,SCSI,USB和1394设备都得到支持,包括磁盘驱动器,鼠 标、扫描仪,网络摄像头,等等。只要是枚举成以上所列的总线类型的设备均 能够得到支持,例如一些USB转并行口的设备就能捕获。5、为何有3个重复的设备?对于某些设备,Windows操作系统建立了更高层的数据包然后传输到底 层的包最终送往硬件,Bus Hound显示了几个设备,如此你能选择在哪个层 次进行捕获操作。6、对于控制能捕获到什么呢?有些控制能收到命令,有些却收不到,你可以对一个控制尝试进行捕获操 作,并查看数据是否为有用的。7、为什么bus Hound没有显示一个设备?当系统以安全模式启动时,将没有设备显示,这是由于安全模式下系统为 了清洁,将系统置于安全模式的特性决定的。当设备未正常安装时,不会显示出来,即启动控制面板的设备管理器,当 出现带问号的设备是不能进行捕获操作的。SCSI适配卡在win95/98/Me下不能显示,除非其附属于某设备。8、为什么有些设备会出现灰色的?灰色的设备指示它目前未处于系统管理范围之内。9、当启动系统进行捕获操作时,系统出现冲撞,我该怎么办呢?这种情况归根到底是Window9X系统架构的限制造成的,如果有太多的 设备驱动要求接收输入输出是否完成的通告,系统就会发生冲撞,甚至崩溃。 微软设备驱动和其它安装的软件如Bus Hound也需要通告,解决这类问题的 办法是移除原驱动软件用附加的软件为设备进行安装操作,例如CD/DVD设 备,一个简易的解决办法就是重命名传统的SCSI1Hlp.Vxd为 SCSI1Hlp.bak,该文件存在 windows/system/iosubsys 目录下。10、为有何我不能捕获所有的1394的事件?有些1394设备,Bus Hound显示的是逻辑设备例如AV/VHS设备,选择 这些设备的上一层节点进行捕获操作能解决问题。当Bus Hound记录同步传输时,没有可行的办法去解决查看每一同步传 输过程。如果想捕获到1394设备的更多信息,升级系统到Windows XP或者 更高级的版本就得到更多。11、对于IDE硬盘设备,为何我无法看到task file(任务文件)命令?Bus Hound仅仅在应用程序或驱动明确地发送一个ATA命令(如:SMART,IDENTIFY 等),完成捕获ATA命令。对于通常的文件系统请求,Bus Hound捕获SCSI CDBS代替ATA命令。注意CDBS命令和ATA命令有相 关性而且很容易转换成与之相关的ATA命令。还要注意到的是CDB是XTA数据 传输的等同体。12、在哪儿我可以得到捕获数据的详细信息?你可访问以下站点 明,也可以参考以下资源SpecificationLocationUSBUSB官方.网站SCSIhttp:/www.t10.orgIDE, ATA, ATAPIhttp:/www.t13.org/1394, Firewirehttp:/www.1394ta.org/或http:/www.ieee.org/Windows DDK微软DDK专栏13、如何获得技术支持?请访问网站Bus Hound官方网站得到问题答案,详细文档,及Bug报导以及共 享和完整版的相关信息。14、如何与中文版作者联系?Bus Hound软件中文版说明书由“古道热肠”根据英文版说明书改编而成,如有 更好的建议或意见请与作者联系。联系邮箱如下:古道热肠邮箱