All the previous blogs deals with the camera architecture and with this blog we would like to discuss on another important aspect of a vision system, which is the host systems.
The components that discussed in our earlier blogs such as sensor, ISP, USB controller and so on does not enable the camera to be stand-alone. The camera additionally requires a host processor interface that runs the application to operate the camera.
The host platforms that we commonly come across are:-
1. PC platforms – The commonly used PC platforms are either based on Intel processor or AMD processor. These platforms usually comes with USB 3.0 port, USB 2.0 port, Ethernet etc. These platforms usually run Windows or Linux OS.
2. ARM platforms – These platforms are commonly used for portable/compact/handheld/low power focussed solutions. As in case of PC, ARM as well presents us with multiple options such as ARM7, ARM9, ARM53, ARM15 etc. These platforms usually run Linux or Android OS.
At Regami, we recommend USB based camera solutions for PC based host platform and we recommend MIPI/Parallel interface based camera solutions for ARM based host platform.
The benefits of USB is that they have standards that govern the hardware as well as software implementation. Thus, they are more modular and scalable.
Whereas, MIPI or Parallel only has standards to govern the signaling method but do not have any standards to govern the hardware and software aspects. The MIPI/Parallel connectors can vary based on the implementation and the drivers or software can vary between processors. Thus, MIPI/Parallel implementation varies based on processor, OS and hardware design.
Still, MIPI/Parallel is recommended for ARM based systems as they offer better bandwidth, lower overheads, more reliability and lower power consumption. Moreover, the most ARM processors only support up to USB 2.0 and their USB implementation on the OS level in terms of priority is not as rugged as that we find in PC platforms.
Points to Consider
PC platforms
→ Host Controller – For USB cameras, the USB controller chipset vendors usually recommend the preferred list of USB host controllers with which their controllers are best compatible. Please make sure you check with the camera vendor if they have any specific list.
→ Bandwidth – Please keep an eye on the resolution/frame rate that the camera is required to function at in order to satisfy the use case. Calculate the bandwidth requirement to cross check if the USB on the host can support it.
→ Power – Please keep an eye on the power requirement of the camera. The USB ports on the PC are driven by the standard, as in, USB 2.0 supports 5V/500mA and USB 3.0 supports 5V/900mA. Should the camera require more than this then we shall have to add a powered hub or power the camera externally.
→ Multiple Cameras – Should the requirement demand the use of multiple cameras, then keep an eye on how many cameras are to integrate with each USB host controller. We expect concerns with either
o Power – Since USB cameras are bus powered, the cameras would end up
demanding more power than the host can support. In this case, we shall have to use Powered Hubs.
o Bandwidth – The total bandwidth requirement of all cameras might exceed the bandwidth supported by the host controllers. In this case, we shall have to either reduce the resolution/frame rate of each camera or increase the host controllers on the system.
ARM platforms
USB camera
→ Host Controller – For USB cameras, the USB controller implementation and the priority levels of USB are not as powerful as that in the case of PC. The effective bandwidth that you can expect from USB cameras over ARM is usually lower than effective bandwidth that can be expected from same USB camera over a PC.
→ Power – The USB 3.0 cameras would require 5V 900mA. Please check the ARM implementation for the power it can support.
→ Multiple Cameras – Should the requirement demand the use of multiple cameras, then keep an eye on how many cameras are to integrate with each USB host controller. We expect concerns with either
o Power – Since USB cameras are bus powered, the cameras would end up demanding more power than the host can support. In this case, we shall have to use Powered Hubs.
o Bandwidth – The total bandwidth requirement of all cameras might exceed the bandwidth supported by the host controllers. In this case, we shall have to either reduce the resolution/frame rate of each camera or increase the host controllers on the system.
MIPI/Parallel camera
→ MIPI/Parallel Interfaces – Please study the MIPI/Parallel implementation in the ARM processor in terms of the number of bits(parallel) or number of lanes(MIPI). This shall decide the hardware design as well as the maximum resolution/frame combination.
→ Clock Rate – The clock rate also decide the bandwidth support. There would be configuration that supports 4 Lane MIPI. However, the clock rate would be lower such that you would be able to achieve bandwidth similar to what we get over 2 Lane MIPI.
→ Multiple Cameras – Should the requirement demand the use of multiple cameras, then keep an eye on how many cameras can be integrated over the MIPI/parallel interface. There are ARM implementation support 2 Parallel interfaces or 2-4 MIPI interfaces. Please check the specs before planning the solution.
o Clock Rate – Please check the clock rate of the implementation. There are cases where the clock rate is independent for each MIPI interface and thus you can simultaneously achieve maximum bandwidth for each interface. However, there are cases where the clock is common. In this case, when we use 2 Interfaces, the bandwidth becomes half.
We, at Regami Solutions, shall be able to work with you, understand your application, your system requirements and architect the solution along with you.
Cheers
Sarvesh Rajagopal
Commentaires