在线客服
首页 > 技术文章 >
技术文章
技术文章

USB协议分析仪大比拼

一、USB通信协议 是什么?

USB是一种支持在USB主机和USB设备之间进行串行数据传输的通信协议。主机作为总线的主叫方,采用两种信令模式:全速模式12Mb/s和低速模式1.5Mb/s。USB使用四种数据传输方式:控制传输(control)、中断传输(interrupt)、批量传输(bulk)及等时传输(isochronous)。其中控制模式主要用于控制指令传输及USB规范的实现,等时传输主要用于音频及视频传输。USB通过两次总线列举(Enumeration and Renumertion)来实现设备识别以及驱动程序析加载。其具体过程为:USB设备连到主机后,主机依据USB规范在特定地址通过端口0(endpoint0)与外设通信,并将外设视为默认设备。外设与主机通信将其6设备标识(DID、PID、VID)发给主机进行第二次总线列举。主机根据设备标识,加载相应设备驱动程序,重新分配地址,并将控制权转交给外设固件(firmware),通过固件与设备驱动程序及主机应用程序的交互通信,来实现外设的功能。

二、USB通信协议——数据交易

表列出了组成4种传输类型的元素。在这里,读者就需要注意一些通信协议的结构。例如,传输与数据交易、数据交易与封包、封包与字段之间的关系。当然,这是相当复杂且容易弄混淆的地方。其中,传输包含1个或是更多的数据交易,每一个数据交易又包含1个、2个或是3个封包。而封包中,又包含封包标识符(PID)字段、检查字段(CRC)以及额外的信息字段。

表 传输类型、数据交易与封包的关系表

       *每一个封包是往下端接口传递出去的,若是低速,前面还会再放置PRE封包。

因此,若要了解完整的USB通信协议就必须从数据域谈起。通过由下而上,从简易至复杂的通信协议单位来组合出各种复杂的通信协议,进而构建出完整的通信协议。

从表的第2栏中,可以知道其中包含了3种数据交易类型。这3种数据交易是根据其目的与数据流方向来决定的。其中,SETUP数据交易用来送出控制传输要求给设备;IN数据交易是数据从设各传回主机;OUT数据交易是将数据传送出去给设各。每一个数据交易中,包含了辨识、错误检核、状态以及控制信息,同样也包含了要交换的数据等。此外,一个完整的数据交易可能占用多个帧。但是数据交易却是一个实现USB通信协议的最基本的结构组成。也即是,在总线上没有任何通信能够去切断该数据交易的沟通过程。当然,除非是错误的USB通信过程。

此外,一个小量数据的传输也许仅需一个数据交易。如果是大量的数据,传输可能就需使用多个数据交易,每一次传输一部分数据。读者或许会认为表的通信协议的结构非常复杂。其中,尤其是第1栏所列的控制传输是较为严谨与必须去实现的。

根据上述不同封包的组合与搭配就可以执行各种数据交易。但最重要的是,数据交易的格式必须与前面所提及的4种传输类型互相配合。这是因为不同的传输类型就会执行不同的数据交易。其中,除了等时传输外,控制传输、中断传输与批量传输都以下列的3个阶段来组成一个数据交易的动作。

       等时传输却只有包含如下所列的2个阶段而已。若等时传输在传输的过程中发生错误,不会重送一次,所以也就不具有握手阶段。

       因此,为了方便读者的记忆与了解整个USB的通信协议,在此以一个较简易的方式来向读者介绍。即是通过一个小口诀来介绍USB通信概念。这个口诀即是:5 4 2 3 3,如图所示。

       这个口诀相当简单,有点像是通关秘诀,而整个数字的顺序即可串联出USB的通信协议。5,4,2即分别为每个封包(令牌、数据与握手)的字段数目,其后的3则为实现一个数据交易所需的3个封包阶段(令牌、数据与握手),而最后的3则为实现一个控制传输所需的3个数据交易层。读者可以对照表,且只须以这个简易的数字顺序,从下层到上层,即可构建出一个完整的控制传输。而以下,先从USB封包类型与其所包含的字段来谈起。

       北京迪阳公司推出市场上最畅销的USB协议分析仪. 价格:5500元起

 

USB协议分析仪是USB产品的开发和测试工具,它记录在USB总线上发送和接收的数据,通过上位机软件提供的强大的分析和筛选功能,迅速定位数据中存在的错误和问题,从而改善USB产品的开发质量,缩短开发周期。是USB产品开发人员和USB设备制造工厂理想的测试设备。

HD-USB12 USB协议分析仪支持USB1.1低速及USB2.0全速设备。

通过连接一台全速USB集线器(Full-Speed USB Hub),HD-USB12 USB协议分析仪也可以支持USB2.0高速设备。

 功能特点

 1、 非侵入式全速/低速USB数据总线传输监测;

 2、 自动识别全速/低速USB设备;

 3、 支持21ns分辨率数据时序显示;

 4、 支持实时数据过滤,方便迅速定位数据;

 5、 支持重复数据包压缩。

 6、支持OTG (On-The-Go)——记录及分析HNP 及 SRP协议, 包括捕获VBus及D+/D-脉

7、支持USB1.1 及 USB 2.0 低速、全速及高速数据通讯的采集

8、支持 VBus电压电流监控;

9、记录容量不受限制——可以长时间大容量数据通讯捕获及记录,数据存储于系统硬盘;

10、无干扰高阻抗端口——确保对USB端口通讯无干扰;

11、支持任意设备类——不但支持目前已有的设备类还支持未知的设备类协议分析;

12、任意可编程触发——用户可以随意设置多个触发条件;

 硬件连接

 上图显示了两种不同类型的硬件连接方式。

方式一:
监控计算机与USB主机使用同一台PC机;
在这种连接方式下,如果监控计算机上安装有其它全速或低速USB设备,监控计算机向这些设备广播的数据包将会被“HD-USB12协议分析仪”捕捉并显示,这些不需要的数据可以使用过滤“IN(Orphaned)”数据包的方式滤除(详见《操作手册》4.2.4之第6小点)。

方式二:
监控计算机使用独立的PC机,USB主机使用另外一台PC机或其它形式的USB HOST。

硬件连接注意事项:
1、监控计算机端口必须使用USB2.0高速端口,并直接连接至电脑主板。其长度不应超过2米;
2、从USB设备到USB主机的电缆长度之和不应超过5米;
3、USB主机电缆最好直接连接至主机主板,以减少数据采集时的传输错误。

使用方法

  要使用“HD-USB12协议分析仪”对某个USB设备进行数据分析,可按照以下步骤操作:
1、将分析仪监控端(MONITOR)用USB电缆连接至监控计算机(监控计算机的USB端口必须为2.0高速端口);
2、将分析仪捕获端端口USB I或端口USB II用USB电缆连接至USB主机,注意:此时暂不连接USB设备;
3、在监控计算机上运行“HD-USB12”软件,在软件的状态栏上可以看到分析仪与监控计算机的连接状态。确保分析仪与监控计算机已连接;
4、单击工具条上的“设置”按钮,设置合适的数据缓冲区限制及数据缓冲区增量,缓冲区大小不应超过系统可用内存的50%。默认的数据缓冲区为128M;默认的数据缓冲区增量为2M;
5、在“数据过滤区域”中设置过滤条件,以滤除不需要的数据包。过滤条件设置完成后用鼠标单击工具栏的“过滤”按钮启动过滤;
6、在软件工具条上用鼠标单击“ 开始”按钮启动数据采集;
7、将分析仪另一个捕获端端口用USB电缆连接至需要分析的USB设备,此时捕获的USB设备总线数据将实时显示在监控计算机的软件中。

   单击软件工具条上“停止”按钮可停止数据采集。
   可以在数据捕获之前,数据捕获当中或数据捕获之后在“数据过滤区域”中设置不同的过滤条件,以快速获得需要的数据包。
   选择“文件”菜单的“保存”命令,可将捕获的数据保存为扩展名是.USB的二进制文件;
   选择“文件”菜单的“导出”命令,可将过滤后的数据保存为扩展名是.USB的二进制文件。

性能指标

1、 监控USB端口:;USB2.0 High Speed

2、 采集USB端口支持:USB2.0 Full Speed&USB1.1 Low Speed

3、 采集端消耗电流:<8mA

4、兼容于所有USB2.0 的三种速度;

5、于测试速度下自动发现链接;

6、USBbus 状态与低阶protocols 的量测;

7、支持每个研发人员均可拥有一部的可负担价格;

8、非侵入式分析;

9、小型但强健的封装,电源由USB 供给;

10、绝佳的Off-Site 介入;

11、以高速USB2.0 连接实时地下载分析的数据;
12、可加附式(Scalable) 设计的硬件;

13、可显示Transactions 与传输的层级(Transfers Layers);
14、需求及描述元(Descriptor) 之高阶解码;
15、功能强大的显示过滤器;
16、可以多种形式(XML 、text 、raw 等等)输出分析过的数据;
17、有条理的明细表显示;
18、有软件开发套件可利用;
19、免费的Viewer 软件。

USB协议分析仪在实际USB连通中的作用

在现代电子设备中,越来越多的使用USB接口,不仅因为其使用方便,即插即拔,更因为其价格低廉,协议开放,而广泛使用在各种电子设备上,并且已经发展为不可缺少的一种接口形式。但USB接口的开发过程中,对于工程师来说还是会遇到这样或那样的问题,如何提高调试效率,缩短研发周期,就需要一种调试测试工具——USB协议分析仪。

USB协议分析仪

USB协议分析仪是协议层的分析工具,是测试设备的一种。对于USB这种高速串行总线来说,仅仅进行物理层测试是远远不够的,由于在高低电平中寓含着丰富的指令,传递着大量信息。所以对于USB传输协议就需要专用的USB协议分析仪来分析测试,USB协议分析仪是按照标准的USB协议来分解数据,将包含有用信息的数据提取出来,并解释这些数据的含义。随着设备之间传递数据速度的不断提高,越来越多的高速串行总线被使用,如SATA、SAS、Ethernet、FC等等,这些高速串行总线也同样有其协议分析工具。

为了让读者更好的了解USB协议分析仪的功能与用途,本文列举一个调试USB通信的小例子。

实验环境

如图所示,左侧计算机安装USB协议分析仪软件,加上USB协议分析仪主机构成USB协议分析系统。DE2实验板作为USB设备,右侧计算机安装应用程序对DE2进行操作。我们主要关心安装有应用程序的计算机与DE2实验板之间的USB通信是否正常,并且希望了解这个通信过程是怎样完成的。

DE2实验板是教学过程中使用的开发板,针对USB通信接口部分有一片接口控制芯片,可通过加载固件程序控制USB数据传输,对于USB开发工程师来说,编写固件程序是实现USB通信的重要部分,但很难验证固件程序是否正确,是否按照工程师的意愿执行。在PC端安装有应用程序控制实现哪些功能,是在设备底层还需要编写驱动程序,确保可实现USB通信,在生产研发中,驱动程序部分和应用程序部分大多由软件工程师完成,所以USB协议分析仪是硬件工程师和软件工程师都需要的测试设备。

USB协议分析仪是按照USB协议,将总线上的信号翻译成数据,再将数据逐层解析,分析其传输数据的含义。在这个过程中,可将USB传输过程中的错误明确的指示出来,用户可根据上下文关系找到问题所在。

 分析过程

在本实验中,如图所示,PC端应用程序的主要功能是:按下ADD键,给DE2发送加1的指令,显示在DE2实验板的液晶显示屏上;按下CLEAR键,给设备发送清零的指令,DE2实验板的液晶显示屏上的显示为00;通过这个简单的应用程序,我们可以了解实验板上USB固件程序,计算机上USB驱动程序是否可以正确工作。

如图所示,在应用程序的源程序中,点击ADD,发送的数据为“AA AB AC AD AE AF A0 A1”,这个就是我们要在USB通信过程中需要传输的数据。传输了这一组数据也就表示传输了ADD指令。

点击ADD键发送的指令数据:

AA AB AC AD AE AF A0 A1
 

下面,我们用Ex200来捕获发送的ADD指令数据以及其前后过程。分析捕捉到的数据搜索到DATA0,DATA1数据包内容皆为“AA AB AC AD AE AF A0 A1”,与源代码一致。如图所示,为DATA0数据包的内容。我们每次按下ADD控件,就可以捕获到这一组数据,这说明USB通信没有问题,可以进行下一步的大数据量传输与通信。

又如图所示,在应用程序的源程序中,点击CLEAR,发送的数据为“55 55 5C 5D 5E 5F 50 51”,这个就是我们要在USB通信过程中需要传输的数据。传输了这一组数据也就表示传输了CLEAR指令。:

点击CLEAR键发送的指令数据:

55 55 5C 5D 5E 5F 50 51
 
 
我们用Ex200来捕获发送的CLEAR指令数据以及其前后过程。分析捕捉到的数据搜索到DATA0,DATA1数据包内容皆为“55 55 5C 5D 5E 5F 50 51”,与源代码一致。如图所示,为DATA0数据包的内容。我们每次按下CLEAR控件,就可以捕获到这一组数据。

另外,USB协议分析仪是一种很好的学习USB协议的工具,如图所示,通过USB协议分析仪可分析并了解USB设备枚举过程,在教学中可以生动地说明USB通信传输过程,在实际研发中,也可提高效率,缩短开发周期。

小结

       USB协议分析仪是在USB开发过程中必不可少的工具,在研发过程中起到事半功倍的效果,随着USB通信接口的广泛使用,USB协议分析仪也会成为更普及的测试仪器。经过一段时间的发展,USB协议分析仪也趋于成熟,主机体积更加小巧,不需要外加电源即可工作,软件界面更加人性化,让人一目了然。USB协议从1.0到2.0,再到最新的USB3.0,协议分析仪也会追随USB协议发展的脚步,支持所有版本的测试。

北京迪阳世纪科技有限责任公司 版权所有 © 2008 - 2018 著作权声明
010-62156134 62169728 13301007825 节假日:13901042484 微信号:sun62169728
地址:北京市西城阜外百万庄扣钟北里7号公寓
E_mail:sales@pc17.com.cn 传真: 010-68328400
京ICP备17023194号-1 公备110108007750