SECTION 4. USB COMMUNICATIONS
This device conforms to the USB specification revision 1.1. This device also conforms with the
Human Interface Device (HID) class specification version 1.1. The device communicates to the
host as a vendor-defined HID device. The details about how the card data and commands are
structured into HID reports follow later in this section. The latest versions of the Windows
operating systems come with a standard Windows USB HID driver. Windows applications that
communicate to this device can be easily developed. These applications can communicate to the
device using standard windows API calls that communicate to the device using the standard
Windows USB HID driver. These applications can be easily developed using compilers such as
Microsoft’s Visual Basic or Visual C++. A demonstration program and its source code, written
in Visual Basic, that communicates with this device is available. This demo program can be
used to test the device and it can be used as a guide for developing other applications. More
details about the demo program follow later in this document.
It is recommended that application software developers become familiar with the HID
specification the USB specification before attempting to communicate with this device. This
document assumes that the reader is familiar with these specifications. These specifications can
be downloaded free from www.usb.org.
This is a full speed USB device. This device has a number of programmable configuration
properties. These properties are stored in non-volatile memory. These properties can be
configured at the factory or by the end user. The device has an adjustable endpoint descriptor
polling interval value that can be set to any value in the range of 1ms to 255ms. This property
can be used to speed up or slow down the card data transfer rate. The device also has an
adjustable serial number descriptor. More details about these properties can be found later in this
document in the command section.
The device will go into suspend mode when directed to do so by the host. The device will wake
up from suspend mode when directed to do so by the host. The device does not support remote
wakeup.
This device is powered from the USB bus. The vendor ID is 0x0801 and the product ID is
0x0002.
HID USAGES
HID devices send data in reports. Elements of data in a report are identified by unique identifiers
called usages. The structure of the device’s reports and the device’s capabilities are reported to
the host in a report descriptor. The host usually gets the report descriptor only once, right after
the device is plugged in. The report descriptor usages identify the devices capabilities and report
structures. For example, a device could be identified as a keyboard by analyzing the device’s
report descriptor. Usages are four byte integers. The most significant two bytes are called the
usage page and the least significant two bytes are called usage IDs. Usages that are related can
share a common usage page. Usages can be standardized or they can be vendor defined.
Standardized usages such as usages for mice and keyboards can be found in the HID Usage
Tables document and can be downloaded free at www.usb.org. Vendor-defined usages must
9