2.2. USB相关的软件

如果某个USB设备正常工作,除了对应的硬件之外,还需要对应的软件支持。

2.2.1. USB设备端的固件(Firmware)

而对于USB设备端来说,内部是需要有对应的设备端的驱动,常常称其为固件Firmware,其实现了对应的设备端的USB所要做的事情,主要是相应一些标准的请求,完成对应的数据读取和写入等。

2.2.2. USB主机(Host)端的USB驱动和软件

对应的,主机Host端,也需要对应的驱动,此部分驱动,不论是Linux下,还是Windows下,都已经实现了常见的驱动了,所以一般来说,很少需要驱动开发者再去写相关的驱动。

2.2.3. 其他一些USB测试和协议分析等软件

在设备驱动开发阶段或者USB出现问题,需要调试的时候,往往就需要一些调试工具了。

一般来说,都包含了对应的USB硬件测试工具,加上对应的软件工具,去捕获对应USB总线上的数据,即所谓的USB抓包,然后再去分析抓取出来的数据,是否是期望的,是否符合USB协议的规范定义。

我所见过的一些USB抓包工具有:

  1. USB Explorer 260 + Ellisys USB Analysis Software

    Ellisys的USB Explorer 260硬件,加上对应的USB软件Ellisys USB Analysis Software,实现USB数据抓包和分析

    Ellisys USB Explorer 260的外观是这样的:

    图 2.1. USB协议分析工具:Ellisys的USB Explorer 260

    USB协议分析工具:Ellisys的USB Explorer 260

    TODO:

    Ellisys USB Explorer 260的对应功能特点,可以参考:

    http://www.ellisys.com/products/usbex260/features.php#usbex260g

    从:

    http://www.ellisys.com/support/download.php

    可以看到截图:

    ->

    http://www.ellisys.com/products/usbex260/download.php

    可以看到各种下载。

  2. Catalyst Enterprises公司的硬件,加上对应的软件SBAE USB,实现USB数据捕获和分析

另外,当然也有一些USB开发相关的工具,比如:

  1. usbview

    用于查看USB设备的详细信息

  2. USB20CV

    用来做USB兼容性测试的工具,具体工具下载和详细解释可以去USB官网找到。

  3. bus hound

    好像是个纯软件的USB抓包工具,据说不支持USB枚举过程的抓包。具体没用过,只是听说过