Since it was first established, USB has followed a very well defined host-peripheral structure. Through this structure the host PC can control any peripheral that it has been connected to, while also (during the period in which this connection is maintained) supplying it with the power necessary to operate. In more recent times, however the sophistication of peripherals has increased considerably.
At the same time the computing industry has evolved – moving from the desktop domain to portable devices As a result of these two occurrences it is getting harder to define the relationship between host and peripheral. The explosion in popularity of the Android operating system, in particular, is acting as a catalyst for the changes in this relationship.
The next generation peripherals that are now emerging will make use of an embedded version of what is used on everyday desktop or laptop computing platforms. These embedded operating systems now have the capacity to provide USB hosting. The USB Host function can, if necessary, be simplified – forming what is known as an Embedded Host. Through such Embedded Hosts a restricted number of peripherals (such as Flash drives, etc.) can be connected to systems for specific, pre-defined applications.
As well as the Embedded Host, there is another USB hosting option that is in some cases used with peripheral hardware. USB On-The-Go (OTG) is basically a USB port that can effectively flip between being a Host or peripheral on-the-fly. Although its full specification enables a port to act as either of these functions, generally speaking USB OTG ports are actually locked down to be just one or the other, based upon the execution of protocols.
Android is now irrevocably changing the way in which engineers approach the incorporation of USB connectivity into system designs. The user interface element of the Android kernel enables a great deal of flexibility to be achieved and allows updates to be easily carried out. This is something that has resulted in the operating systems’ widespread acceptance throughout the portable electronics sector. The popularity is almost unprecedented – Android can now boast that it is the operating system of choice both in the smartphone and the tablet PC arena.
Connecting Android devices
It is because Android devices tend to be of a portable nature, thus requiring power to be supplied by a battery, that the traditional host-peripheral arrangement no longer applies. Despite the fact that the Linux kernel on which the operating system is based provides USB host support, the way that an Android device will relate to peripheral hardware is very different because of the power aspect. Major benefits can be realised if the host element is dispensed and only the peripheral function is incorporated. By doing this there is no longer a need for the power for to a connected peripheral to be provided by the Android device’s USB port. The Android device’s power budget is thereby kept to minimum as there are no external drains to be concerned about.
The introduction, by Google, of the Android Open Accessory Initiative has changed all that for ever. It effectively turns the whole host-peripheral relationship on its head – the USB peripheral is now the Android device and the USB Host is the external hardware to which it has been connected. So the USB Host (or accessory) is controlled by Android device. Simultaneously the Android device relies on the accessory to supply it with power (receiving the full 500mA set out within by the USB specification), rather than having to use up its own battery power. This arrangement also makes it possible, thanks to the Android device becoming effectively a peripheral, to remove the need for it to provide the complex USB Host connection and software stack. Through use of a simple application running on the Android device, control of the accessory is initiated.
The Android Open Accessory Initiative expands the dimensions of the Android operating system. The ways in which Android devices can be used will expand dramatically. It will be able to fulfil the role of a data repository, with information being passed to and from items of hardware to which it has been connected. It will also be able to serve in a controlling capacity, with the more intuitive touch-based user interfaces of smartphone or tablet PCs being far easier to operate than the push button, keypad control and limited screens that many pieces of equipment have.
To support the initiative, FTDI Chip has developed the FT311D and FT312D full speed USB Host bridge ICs. Running off standard 3.3V supplies, these chips enable the quick and easy integration of USB links into various peripherals from any Android device with a USB device port. They require no programming in order to do this. The FT311D has the capacity to bridge the USB port to six different user selectable interface types (GPIO, UART, PWM, I2C master, SPI slave and SPI master). It can support data rates of up to 6Mbit/s. The internal buffering mechanism of the UART-focused FT312D has 5512Bytes of memory capacity on the UART receiver side and 256Bytes on the UART transmitter side. This enables smooth data streaming between the USB port and the UART port of the IC.
USB will, in the Android era, continue to offer a highly convenient means by which to transfer data transfer to/from portable products, as well as providing a conduit for battery charging. Charging is something that greatly benefits Android devices, but conveniently shifts the hosting requirement to the other system. This shift that is being addressed by the emergence of host chips that fully support the Android Open Accessory Initiative, have host stack capability and that provide bridged interfaces from USB to a multitude of system interfaces. Through such devices it will be possible for USB interconnection to support the control of external hardware via all manner of Android devices.
Dave Sroka is Sales Account Manager at FTDI Chip