Determining USB Peripheral Device Class

Document Reference No.: FT_000447
Determining USB Peripheral Device Class Application Note AN_174
Version 1.0
Clearance No.: FTDI# 211
Future Technology Devices International Ltd.
Application Note AN_174
Determining USB Peripheral Device
Class
Document Reference No.: FT_000447
Version 1.0
Issue Date: 2011-05-23
This document will demonstrate how a USB peripheral device class can be obtained. This information can
be helpful in determining if the peripheral is supported by the current Vinculum host controller firmware.
Use of FTDI devices in life support and/or safety applications is entirely at the user’s risk, and the user
agrees to defend, indemnify and hold harmless FTDI from any and all damages, claims, suits or expense
resulting from such use.
Copyright © 2011 Future Technology Devices International Limited
1
Document Reference No.: FT_000447
Determining USB Peripheral Device Class Application Note AN_174
Version 1.0
Clearance No.: FTDI# 211
TABLE OF CONTENTS
1
Introduction .................................................................... 3
2
What are Device Classes?................................................ 4
3
Determining the Device Class .......................................... 5
3.1
Using PC Utilities ...................................................................... 5
3.2
Using the VNC2 firmware .......................................................... 6
4 Classes of devices currently supported by the Vinculum
firmware .............................................................................. 7
5
Contact Information ........................................................ 8
Appendix A – References ................................................... 10
A.1 Websites ................................................................................... 10
A.2 Technical Documentation .......................................................... 10
A.3 Utilities ..................................................................................... 10
Appendix B– Revision History ............................................ 11
Copyright © 2011 Future Technology Devices International Limited
2
Document Reference No.: FT_000447
Determining USB Peripheral Device Class Application Note AN_174
Version 1.0
Clearance No.: FTDI# 211
1
Introduction
Many users enquire if a certain device is supported by the Vinculum host controllers. Although the VNC2
generation supports all USB transfer types (Control, Bulk, Interrupt and Isochronous) the real answer to
the question depends on the device class reported back by the device and whether a VOS driver currently
exists for that device class or has still to be created. This document will demonstrate to users how a
device class can be determined.
Copyright © 2011 Future Technology Devices International Limited
3
Document Reference No.: FT_000447
Determining USB Peripheral Device Class Application Note AN_174
Version 1.0
Clearance No.: FTDI# 211
2
What are Device Classes?
Not all USB peripherals are the same. Each device type is defined by a number referred to as the device
class. The class definitions are defined and controlled by the USB Implementers Forum. For example a
keyboard is a Human Interface Device (HID) class device and therefore has device class 0x03. A full list
of device classes can be found at: http://www.usb.org/developers/defined_class
The device class is reported back to the USB host controller during device enumeration as part of the
device descriptors.
Copyright © 2011 Future Technology Devices International Limited
4
Document Reference No.: FT_000447
Determining USB Peripheral Device Class Application Note AN_174
Version 1.0
Clearance No.: FTDI# 211
3
Determining the Device Class
3.1 Using PC Utilities
The simplest method to read the device class is to plug the peripheral into a windows PC and use the free
USBVIEW utility from the FTDI website: http://www.ftdichip.com/Support/Utilities/usbview.zip
Set the utility to display “Config Descriptors” under the options tab and then select the required device
from the device tree.
Figure 1: USBVIEW Screenshot
Copyright © 2011 Future Technology Devices International Limited
5
Document Reference No.: FT_000447
Determining USB Peripheral Device Class Application Note AN_174
Version 1.0
Clearance No.: FTDI# 211
The key information to look for first is:
bDeviceClass
bDeviceSubClass
bDeviceProtocol
This is highlighted at the top of the screenshot in figure 1.
Many device classes can be determined from these fields.
In the example shown the values are defied as 0x00. This indicates that the values are defined in the
interface class section and as such the user must then check:
bInterfaceClass
bInterfaceSubClass
binterfaceProtocol
This is highlighted at the bottom of the screenshot in figure 1.
0x08 in the bInterfaceClass in the example defines the device as Mass Storage class.
In this case the class is supported by both VNC1L and VNC2 firmware drivers.
If the class is returned as 0xFF then this is vendor specific and as such the device normally uses a vendor
supplied driver as opposed to a generic USB driver. Such devices, with the exception of FTDI devices, are
unlikely to appear as part of the generic Vinculum library.
To allow the Vinculum device to support such a class would require the user to obtain the device API and
create their own driver.
3.2 Using the VNC2 firmware
The Vinculum device, VNC2, is supplied with an IDE and sample projects. One of these projects is called
“USBDescriptors.vproj”.
If a VNC2 device is available then this project can be built and loaded onto the device to allow the
descriptors of any device plugged into the USB ports of the VNC2 to be read out over the UART interface.
Using a utility such as HyperTerminal the printout follows a similar format to USBVIEW.
A getting started guide for VNC2 tools is available at:
http://www.ftdichip.com/Support/Documents/AppNotes/AN_142_VinculumII_Tool_Chain_Getting_Started_Guide.pdf
Copyright © 2011 Future Technology Devices International Limited
6
Document Reference No.: FT_000447
Determining USB Peripheral Device Class Application Note AN_174
Version 1.0
Clearance No.: FTDI# 211
4
Classes of devices currently supported by the Vinculum firmware
Classes of devices supported by the Vinculum firmware at the time of writing (corresponds to toolchain
release version 1.4.0) are:
Class
Bulk Only Mass Storage (BOMS)
Human Interface Device (HID)
Printer
Hub
Communication Device Class (CDC)
FTDI peripherals
Video
Audio
Wireless controller
VNC1L
YES
YES
YES
YES
YES
YES
No
No
No
VNC2
YES
YES
YES
YES
YES
YES
Under Consideration
Under Consideration
Under Consideration
Copyright © 2011 Future Technology Devices International Limited
7
Document Reference No.: FT_000447
Determining USB Peripheral Device Class Application Note AN_174
Version 1.0
Clearance No.: FTDI# 211
5
Contact Information
Head Office – Glasgow, UK
Future Technology Devices International Limited
Unit 1, 2 Seaward Place, Centurion Business Park
Glasgow G41 1HH
United Kingdom
Tel: +44 (0) 141 429 2777
Fax: +44 (0) 141 429 2758
E-mail (Sales)
E-mail (Support)
E-mail (General Enquiries)
Web Site URL
Web Shop URL
[email protected]
[email protected]
[email protected]
http://www.ftdichip.com
http://www.ftdichip.com
Branch Office – Taipei, Taiwan
Future Technology Devices International Limited (Taiwan)
2F, No 516, Sec. 1 NeiHu Road
Taipei 114
Taiwan, R.O.C.
Tel: +886 (0) 2 8797 1330
Fax: +886 (0) 2 8751 9737
E-mail (Sales)
E-mail (Support)
E-mail (General Enquiries)
Web Site URL
[email protected]
[email protected]
[email protected]
http://www.ftdichip.com
Branch Office – Hillsboro, Oregon, USA
Future Technology Devices International Limited (USA)
7235 NW Evergreen Parkway, Suite 600
Hillsboro, OR 97123-5803
USA
Tel: +1 (503) 547 0988
Fax: +1 (503) 547 0987
E-Mail (Sales)
E-mail (Support)
E-mail (General Enquiries)
Web Site URL
[email protected]
[email protected]
[email protected]
http://www.ftdichip.com
Branch Office – Shanghai, China
Future Technology Devices International Limited (China)
Room 408, 317 Xianxia Road,
ChangNing District,
ShangHai, China
Tel: +86 (21) 62351596
Fax: +86(21) 62351595
E-mail (Sales)
E-mail (Support)
E-mail (General Enquiries)
Web Site URL
[email protected]
[email protected]
[email protected]
http://www.ftdichip.com
Copyright © 2011 Future Technology Devices International Limited
8
Document Reference No.: FT_000447
Determining USB Peripheral Device Class Application Note AN_174
Version 1.0
Clearance No.: FTDI# 211
Distributor and Sales Representatives
Please visit the Sales Network page of the FTDI Web site for the contact details of our distributor(s) and
sales representative(s) in your country.
Legal Disclaimer:
System and equipment manufacturers and designers are responsible to ensure that their systems, and
any Future Technology Devices International Ltd (FTDI) devices incorporated in their systems, meet all
applicable safety, regulatory and system-level performance requirements. All application-related
information in this document (including application descriptions, suggested FTDI devices and other
materials) is provided for reference only. While FTDI has taken care to assure it is accurate, this
information is subject to customer confirmation, and FTDI disclaims all liability for system designs and for
any applications assistance provided by FTDI. Use of FTDI devices in life support and/or safety
applications is entirely at the user’s risk, and the user agrees to defend, indemnify and hold harmless
FTDI from any and all damages, claims, suits or expense resulting from such use. This document is
subject to change without notice. No freedom to use patents or other intellectual property rights is
implied by the publication of this document. Neither the whole nor any part of the information contained
in, or the product described in this document, may be adapted or reproduced in any material or electronic
form without the prior written consent of the copyright holder. Future Technology Devices International
Ltd, Unit 1, 2 Seaward Place, Centurion Business Park, Glasgow G41 1HH, United Kingdom. Scotland
Registered Company Number: SC136640
Copyright © 2011 Future Technology Devices International Limited
9
Document Reference No.: FT_000447
Determining USB Peripheral Device Class Application Note AN_174
Version 1.0
Clearance No.: FTDI# 211
Appendix A – References
A.1 Websites
FTDI home page
http://www.ftdichip.com/index.html
Vinculum II Home page
http://www.ftdichip.com/Products/ICs/VNC2.htm
USB Implementers Forum Device Class List
http://www.usb.org/developers/defined_class
A.2 Technical Documentation
What is USB? – Technical Note
http://www.ftdichip.com/Support/Documents/TechnicalNotes/TN_110%20What%20is%20USB.pdf
VNC2 tools getting started guide
http://www.ftdichip.com/Support/Documents/AppNotes/AN_142_VinculumII_Tool_Chain_Getting_Started_Guide.pdf
A.3 Utilities
USBVIEW
http://www.ftdichip.com/Support/Utilities/usbview.zip
Copyright © 2011 Future Technology Devices International Limited
10
Document Reference No.: FT_000447
Determining USB Peripheral Device Class Application Note AN_174
Version 1.0
Clearance No.: FTDI# 211
Appendix B– Revision History
Version 1.0
First Release
2011-05-23
Copyright © 2011 Future Technology Devices International Limited
11