金存PSSD开源工具

开源工具testssd 发表了文章 • 0 个评论 • 111 次浏览 • 2020-03-04 12:18 • 来自相关话题

&nb ...查看全部



 



 



金存PSSD升级工具



 



帮你解决USB2.0上盘速度慢的问题。



 



 



 



 


USB抓包软件---Bus Hound,USBlyzer 和-USBTrace 必备

测试工具test3 发表了文章 • 0 个评论 • 529 次浏览 • 2019-09-12 19:51 • 来自相关话题

USB抓包软件---Bus Hound ...查看全部

USB抓包软件---Bus Hound,USBlyzer 和-USBTrace必备



Bus Hound



官方下载地址:http://perisoft.net/bushound/



Bus Hound 简易使用手册:



bus_hound5.0中文使用说明.pdf (246 K) 下载次数:9



软件和注册号:



sn.txt (1 K) 下载次数:7



BusHound_v6.0.1.rar (690 K) 下载次数:11



======================================================= 



 



USBlyzer



官网下载地址:http://www.usblyzer.com/download.htm



论坛下载:USBlyzer.zip (3924 K) 下载次数:4



 




















Version:



2.1



Released:



March 16, 2014



Size:



3,9 Mb





 



=================================================



 



 



 



USBTrace



官网下载地址:http://www.sysnucleus.com/usbtrace_download.html



========================================================



 



 



 



原文地址:http://bbs.armfly.com/read.php?tid=15377


Bushound数据分析及使用指南

分析工具polley88 发表了文章 • 0 个评论 • 1153 次浏览 • 2019-09-12 17:36 • 来自相关话题

Bushound是一款使用起来非常方便快捷的总线数据抓取工具,在我们的测试过成当中,经常会使用它来抓取数据及传输状态用于分析。在这里以usb数据传输为例,大概介绍一下Bushound的使用方法,以及一些典型异常情况的分析。 ...查看全部

Bushound是一款使用起来非常方便快捷的总线数据抓取工具,在我们的测试过成当中,经常会使用它来抓取数据及传输状态用于分析。在这里以usb数据传输为例,大概介绍一下Bushound的使用方法,以及一些典型异常情况的分析。



一、BusHound界面介绍



打开BusHound之后,显示的是这样的界面。当前所显示的界面为顶端界面选项当中的Capture窗口,这个窗口用于显示所有抓取到的数据。点击Stop时会停止数据抓取,这时点击Run,会清空当前数据并开始抓取数据。





这些是想要显示的内容,这些内容可以在Settings窗口下面的Columns to Display设置





选项当中有对应显示内容的解释,在这里就不一个个细说了。



在数据抓取时,不管有没有勾选相应内容,Bushound都会抓取所有Columns to Display当中选项的数据,只是不显示出来而已。如果在抓取完之后想要看相关数据的话,只需要将对应的选项勾选上即可。



在Settings当中可以设置需要显示的内容。





这些选项内容如果在抓取数据的时候没有勾选,那么Bushound是不会抓取的。



在Limits栏中可以设置预留给Bushond抓取数据的缓存空间





Capture Capacity表示缓存的总数据量,Max Record Length表示抓取一个数据包时缓存的数据的量(一条命令\一个状态\一次数据传输,都算一个数据包)。这个在需要的时候可以尽可能设置的大一些,这样抓取的数据比较全面,当数据缓存满了之后,若没有勾选下面的自动停止,则会清除掉所有数据,自动重新开始抓取。





在这个栏目里可以选择什么时候需要自动停止bushound的数据抓取。



 





Save窗口就是常见的数据保存





Device窗口,用于选择需要抓取的设备及协议层。当勾选到对应的设备那一项时,显示的是经过解析的SCSI协议,设备再上一层是原始的SCSI协议数据。



 



二、基本协议解析介绍



抓取最简单的的命令时,只需要像上图一样勾选相应设备前面的选项即可,这时抓到的数据主要由 CMD OUT IN组成





(这里我将Max Record length设为16)



CMD表示发送的命令,IN 和 OUT表示数据的读取和发送,关于CMD的含义,这里给出一个列表





这分列表从参考文档SCSI_Commands_Reference_Manual截取出来的,详细相关命令信息也可以从里面查找。



 



当在Device窗口中勾选了设备的上一层选项时,这时抓到的是SCSI的原始数据





 





可以看到数据明显多了很多,而且眼花缭乱..



我们一点点来解析一下



首先看第一行





这个就是2Ah写命令的原型,Byte[0:3]为小端数据 0x43425355,这个标志在叫做CBW,表示一次命令传输的开始,由Host下发。



Byte[4:7]为CBW Tag,用于给这一个数据包做一个标识。



Byte[8:11]表示命令之后将要传输的数据长度,这里为0x1000即时4096Bytes。



Byte[12]当中的Bit[7]用于表示传输方向,1为读取,0为发送(其他的暂时还没去看)。



Byte[13]表示操作的设备的Lun号,一个设备可以被分为多个分区,即多个Lun,这里用于表示命令是发送给设备的哪一个Lun的。



从Byte[15]开始,就是之前解析过后的CMD数据了,这里大概说一下重要位置的含义,从这里开始数据为大端数据



Byte[0] OpCode 



Byte[1] SubOpCode



Byte[2:5] Address 以Sector为单位



Byte[7:8] Length 以Sector为单位



需要注意的是,除了OpCode以外,其他位置的含义并不是固定的,只是在进行2Ah和28h数据传输过程中,这是比较典型的含义。



所以现在重新看下这一行命令,其用途就是,一条2A的写命令,地址为0x000057A0,长度为8 Sector



下一条就是这个2Ah写命令的数据传输,下发了4096 Bytes数据





我这里为了看起来方便,将抓取长度设成32bytes



再下一条





这是一个由Device发送给Host的数据,开头标识为0x53425355,叫做CSW,用于标志一条SCSI命令传输结束,Byte[4:7]为对应的CBW的Tag。



到此为止,一条SCSI命令就算分析完了,后面的依此类推即可。



后面抽时间再介绍异常状态分析吧



 



三、SCSI命令发送



打开Devices窗口,双击要发送命令的设备





这时会弹出发送命令控制窗





我一般不用USB来发送命令,点击标签栏的SCSI / ATAPI





这里就可以按照自己想要发送的格式来发送命令,也可以发送自己定制的命令。





这里填写要发送的命令的相关信息,就是Opcode,SubOpCode那些,这里的话填的是一个28h读命令,地址为0x00000020,长度为0x20 Sector。



上面的填好之后,要在DataLength那里填写要进行传输的数据量,0x20 Sector即为16384 Bytes,所以填写16384,因为是读数据,所以方向选择Data In





Timeout表示当超过该设定时间,命令还没有完成的话,则视为超时。从这里可以看出SCSI协议实际上并没有规定超时时间,而是人为设定的。



都填好了之后点击run,就会发送出命令了,左下角会显示出发送的命令的状态。


BurnInTest

测试工具test3 发表了文章 • 0 个评论 • 794 次浏览 • 2019-09-12 16:20 • 来自相关话题

一.测试配置 1.测试模式 BurnInTest 提供了几种测试模式供使用者选择,使用者也可以选择不同的Pattern自动进行循环。在每个循环过程中(不包括Butte ...查看全部

一.测试配置



1.测试模式



BurnInTest 提供了几种测试模式供使用者选择,使用者也可以选择不同的Pattern自动进行循环。在每个循环过程中(不包括Butterfly seeking和Quick physical drive test)BurnInTest将在硬盘中创建一个文件,并进行比较。



•     Default (Cyclic)



•     Sequential data pattern (0,1,2...255)



•     Random data with random seeking



•     High Low frequency data overwrite (10101 then 00001)



•     Butterfly seeking



•     Binary data pattern 1 (10101010)



•     Binary data pattern 2 (01010101)



•     Zeros data pattern (00000000)



•     Ones data pattern (11111111)



•     Random data pattern



•     Quick physical drive test (BurnInTest Professional only)



注:随机数据随机搜索(Random data with random seeking)包括两个重复的步骤,(1)写、读和比较随机数据的测试文件。(2)寻找测试文件的随机地址并在此地址读数据块。BurnInTest生成7个不同的随机数据块单元,块的大小取决于设置的参数(如:16KB)。BurnInTest按顺序写入7个随机数据块单元,如此反复直到写满设置的文件大小(如:0.1% of the disk size)。测试文件写入完成后,依顺序读并且与写入数据进行比较。



在读写并校验完每个文件后,BurnInTest将随机选择一个测试文件(1..n,n是已经写到硬盘里的测试文件的序号),然后在文件中随机的选择一个块。BurnInTest将找到他在测试文件中的位置,然后读并且校验测试文件中的一个块,或写一个块在此位置。此项操作重复的次数为配置中“seek count”。



BurnInTest 写入磁盘的所有数据均为连续地址的(包括Random data pattern),且当测试的模式为Random data pattern 时写入磁盘的每个block size大小的数据相同。



2.文件大小



测试的文件大小等于测试硬盘某个百分比的大小,且测试文件创建于测试设备的根目录下。每个测试的文件都填满编码的数字序列(a Pattern),当文件需要被校验(Read)的时候用来校验正确的操作。文件将被创建在空白的区域,直到硬盘至少有94%被填满(我们称其为’full’ level)。当硬盘到达了这个限制,所有的测试文件将被清除,测试再次开始。94%的限制用来确保一些空间留给其他应用(包括windows 的交换文件)。



3.专有特性



对物理盘测试而言,因为没有文件系统写入可见的文件,BurnInTest 将在硬盘上直接创建一个虚拟的文件,这将损坏硬盘中的数据。物理盘的测试通常比逻辑盘的测试快很多,也会提供一个更好的结果。Quick physical drive test通过读、写、比较硬盘起始、结束及其中间的区域的虚拟测试文件进行测试,提供了更加快速的测试方式。



二.常见Error信息



1.Not enough free disk space



磁盘上没有足够的空闲空间来为磁盘测试创建一个测试文件。



2.Test file could not be created



BurnInTest无法在磁盘上创建一个能够运行磁盘测试的文件。检查是否可以使Windows资源管理器访问磁盘。检查根目录中文件写入和创建的权限。



3.Error while writing to the disk



测试文件不能完全写入磁盘。可能由硬件错误或突然缺少空闲磁盘空间导致。



4.Error writing to disk - Disk is full



选中的硬盘已满,测试文件不能完全写入磁盘。



5.Test file could not be re-opened



测试文件是成功创建的,但是不能重新打开以进行验证。可能由硬件错误或Windows中的资源问题导致。



6.Error while reading from the disk



读取已创建的文件失败,可能由硬件错误或Windows的问题导致。



7.Data Verify failure



这是一个严重的错误,它表明从磁盘读取的数据与写入磁盘的数据不一样,这是个硬件错误



8.Seek size requested not equal to actual



在磁盘或CD测试的寻找部分中,请求的查找大小与实际的查找大小不匹配。



三.测试脚本命令



1.执行命令



执行外部文件后继续执行脚本。



语法:



      EXECUTE<文件名><参数>



参数:



      文件名     要被执行的文件名。文件名须括在“”中,且可执行。



      参数        传递给可执行文件的任意命令行参数。



例:



      #测试前启动记事本记录结果



EXECUTE "c:\windows\system32\notepad.exe" "c:\MyResults\Results.txt"



RUN CONFIG



2.等待执行命令



执行一个可执行文件,等待该进程结束后继续处理脚本。



将配置信息从外部程序传到BurnInTest。



执行文件将产生一个脚本命令文件,执行文件关闭后BurnInTest会继续运行。



3.退出命令



语法:



      EXIT



参数:



      无



      注:BurnInTest 将会退出并返回一个返回值,表明脚本执行是否通过。返回值为0代表成功,返回值为1代表失败。



例:



      RUN CONFIG



      #Exit BurnInTest and return an exit code to the batch file.



      EXIT



4.加载命令



语法:



      LOAD <文件名>



参数:



      文件名    配置文件的完整路径名。这个配置文件必须是以前在BurnInTest中创建的。



例:



#Load the low load configuration file that we created earlier



LOAD “C:\ConfigurationFiles\LowLoad.bitcfg”



5.记录命令



将错误的状态和状态记录历史写在文本中。



语法:



      LOG <Text>



参数:



      Text          此文本中将添加错误和状态历史状态记录的细节。



例:



#Start an S1 sleep and log the start and stop times



LOG "Sleep S1 Duration 60 seconds starting"



EXECUTEWAIT SLEEPER -S1 -D 60



LOG "Sleep S1 Duration 60seconds complete"



6圈数设置命令



语法:



      SETSCYCLES<Number of test cycles>



参数:



      Number of test cycles          设置测试循环的圈数,当所有测试达到设置的圈数后自动停止。



例:



#Set the number of test cycles to 1



SETCYCLES 1



7.持续时间设置命令



语法:



SETDURATION <Duration>



参数:



      Duration 设置测试持续的时间,单位为分钟。