DESIGN VIEW is the summary of the complete DESIGN SOLUTION contributed article, which begins on Page 2.
Until very recently, no common interface existed between handheld devices and PC peripherals. Then, this past January, Sony released the CLIE personal digital assistant with Universal Serial Bus On-The-Go (USB OTG) functionality. Developed by the USB Implementers Forum (USB-IF), the USB OTG specification provides a common, interoperable solution.
In addition to full USB device functionality, USB OTG confers limited USB host functionality on all handheld devices and PC peripherals. The result is, for example, a PDA or camera that can connect directly to any printer, or a PDA that can download files directly to a portable USB hard-disk drive or CD-RW drivewith no PC to act as an intermediary.
USB has emerged as a popular and necessary interface on nearly every PC and peripheral device that communicates with a PC. With a bandwidth of up to 12 Mbits/s for full-speed and 480 Mbits/s for high-speed mode, USB has more than sufficient bandwidth for consumer applications.
USB OTG provides a cost-effective solution for PDAs, mobile phones, and other handheld devices to communicate among themselves, as well as with any USB peripheral anywhere, anytime. USB OTG products can have both USB-host and peripheral-controller functions on one chip. Thus, the chip can act as a USB host supporting high-, full-, and low-speed devices, or as a USB peripheral itself. Host and peripheral roles can be interchanged through the Host Negotiation Protocol (HNP). Because HNP allows the host function to be transferred between two devices, there's no need to switch cables. With this feature, manufacturers of dual-role devices can specify which peripherals their device will support.
The article digs into the design of a USB dual-role controller, particularly its three main modules: the USB host controller, USB device controller, and OTG module. Also discussed is SRP (Session Request Protocol) and HNP implementation. It stresses that implementing HNP in software is best, due to the inherent flexibility. However, hardware is recommended to deal with the interrupt-latency problem.
Full article begins on Page 2