Universal Serial Bus (USB)
Raycomm are a UK based, leading developer of custom software and electronic design
solutions for innovative technological products and systems.
USB is a serial bus standard to interface devices. It was designed to allow
peripherals to be connected using a single standardised interface socket to improve plug
and play capabilities because it allows devices to be disconnected without rebooting the
computer (hot swapping).
Other useful features include powering low powered devices without the need for an
external power supply. USB be can be used to connect a host of “standard” devices such
as mice, keyboards, PDAs, gamepads, joysticks, digital cameras and printers. Whilst USB
was conceived for personal computers it has become much more commonplace on a range of
consumer and industrial devices.
Each device connected to a USB host defines an associated set of pipes (logical
channels) these pipes are directional connections from Host to device or vice versa.
They terminate on the device at an endpoint. These endpoints can transfer data in one
direction only. (Each USB device can have 32 active pipes -16 in to host and 16
USB Commands
USB hardware consists of a host controller this is the USB hardware most often found
in a personal computer. Different Device classes then can be connected to the host
controller.
The device class defines expected behaviour and commands that the client must support in
order for it to be a defined device class. There is also a class called vendor specific which
covers any custom USB based interface that may be required. If a device conforms to a published
device class then often the operating system will implement a generic driver for that class of
USB device. Vendor Specific devices require a custom driver to be written for the host
environment.
Defined device classes
- 0x01: USB Audio Device class, USB headsets, external sound cards.
- 0x03: USB Human Interface Device class (HID), keyboards, mice
- 0x06: Power
- 0x07: Printer etc
- 0x08: USB Mass Storage Device class used for USB flash drives, memory card readers,
digital audio players etc.
- 0x09: USB hubs.
- 0x0B: Smart Card readers.
- 0x0E: USB Video Device class, webcam-like devices, motion image capture devices.
- 0xE0: Wireless controllers, for example Bluetooth dongles.
- 0xFF: Vendor Specific
USB Data Rates
There are currently 3 supported data rates with a fourth likely to appear in products in the
next couple of years.
- Low-speed (USB 1.0) rate of 1.5 Mbit/s (192kB/s)
- Full-speed(USB 1.1) rate of 12 Mbits/s (1.5MB/s)
- Hi-speed (USB 2.0) rate of 480 Mbit/s (60 MB/s)
- Super-Speed (USB 3.0) rate of 4.8 Gbit/s (600MB/s)
USB on the Go
USB On-The Go (USB OTG is a supplement to the USB 2.0 specification. USB OTG changes the
master slave relationship such that a device can act as a Host (master) or Device (slave).
An example could be a printer that knows how to grab documents from a USB flash drive and print them but could also be
used as a printer in the normal way.
Wireless USB
Wireless USB (WUSB) is a short-ramge high bandwidth wireless communication protocol. It is
based on WiMedia Alliances Ultra-WideBand (UWB) common radio platform. It is capable of 480
Mbit/s at distances up to 3 metres and 100Mbit/s at up to 10 metres. It is designed to operate
in the 3.1 to 10.GHz frequency range.
Wireless USB is a protocol that sits on top of a UWB platform. The same platform is also used
Bluetooth and Wireless 1394 (FireWire).
The architecture allows up to 127 devices to connect directly to a host. Unlike normal USB
because there are no wires Hubs are not required.
USB Design
Adding USB to a custom project usually involves the use of the Vendor specific class to allow
the correct custom commands to be used. Raycomm have the expertise to not only implement the
interface hardware and software, but also to develop the necessary drivers for Windows and or
Linux.
Sometimes the USB interface and drivers are supplied such as with the FTDI range of USB devices. These devices allow the
replacement of serial interfaces with a USB one. Raycomm has experience of developing a custom API that supports the
specific protocol and commands of the device. This means the customer doesn’t need to understand the complexities of the
FTDI device but just uses a high level interface.
For a no-obligation discussion with one of our senior consultants on your project needs:
- Call us on +44 (0) 1275 847553
- or fill in our Enquiry Form
- or email us using the link at the top of the page
We look forward to hearing from you.
|