Typical applications for USB 3.0
USB 2.0 with its speed of 480Mbps provides sufficient bandwidth for many applications. However, with the rise of HD video and high-resolution cameras, there has been a leap in the multimedia world, which will be bottlenecked by the lower throughput of high speed USB. SuperSpeed USB with throughput up to 5Gbps can help in these scenarios.
Being 10 times faster than USB 2.0, USB 3.0 can provide the required throughput for HD video streaming without compression. It is also possible to transmit HD video of 1080pixel/60fps over the 5 Gbps USB 3.0 standard.
To communicate with image sensors of different resolutions and frame rates, it is necessary to have a highly configurable parallel interface in the USB 3.0 controller. For example, the below block diagram shows an FX3-image sensor interface.
Figure 3: USB 3.0-image sensor interface
Most image sensors may be configured using the I2C interface. The FX3 has an I2C master, which can work at frequencies up to 1MHz to configure image sensor parameters. A GPIF interface can be used to stream data from the image sensor upon assertion of appropriate control signals. The DMA channel provides a high throughput path for data from the GPIF parallel interface to USB interface. The GPIF II block is capable of running up to 100MHz with 32 bits of data (400MBps).
Architecture of a general-purpose USB 3.0 controller
Figure 4: Logical block diagram of a general purpose USB 3.0 peripheral controller
A general-purpose SuperSpeed controller should contain both USB 2.0 and 3.0 interfaces to ensure backward compatibility for high-speed applications. The other essential components in a general-purpose USB 3.0 controller are the CPU, RTOS, DMA engine, memory, serial interfaces, and a reconfigurable parallel interface for communication with a real-world application processor.
Real time Embedded OS
A real-time operating system (RTOS) is an operating system that supports real-time applications by providing logically correct results within the deadline required.
The basic structure of an RTOS is similar to a regular OS but, in addition, it provides mechanisms to allow real-time scheduling of tasks. Though real-time operating systems may or may not increase the speed of execution, they can provide much more precise and predictable timing characteristics than a general-purpose OS.
An RTOS is intended to service real-time application requests that are part of nearly every real-world embedded application. Most RTOSes contain a multitasking kernel that takes care of priority scheduling, fast interrupt response, memory management, and multi-threaded communication. Popular RTOSes include ThreadX, Nucleus, VxWorks, and LynxOS.
In order to perform processing at USB 3.0 rates, a processor capable of executing several hundreds of MIPS at high frequencies is required. The ARM9 series of processors are a good choice for CPU with their processing capability of 220MIPS at 200MHz. This advanced 32-bit processor has a Harvard architecture with separate instruction and data buses
(and caches) to improve processing speed significantly.
An interconnect fabric capable of providing easy integration of various blocks and at the same time supporting high bandwidth communication is needed for USB 3.0-based systems. The ARM AMBA-AHB
bus is capable of providing this high-speed interconnect.