Image Sensor Communication Protocols.    View      

Before reviewing image sensors, we need to understand the protocols which they use to communicate. Longer distance protocols will be discussed later.

I2C is a serial (1 data bit wide) communications protocol.

Serial Camera Control Bus (SCCB) runs on top of I2C and is used for controlling cameras. It is the OmniVision-specific term for standard I2C.

MIPI-CSI Camera Command Set (CCS) is a simple scheme for configuring registers over an I2C bus, supporting various register address sizes.

Serial Peripheral Interface Protocol (SPI) is a parallel interface. It can be 1,2,4 or 8 bits wide. FPGAs use SPI for external Flash Memory and often external RAM access. The Himax cameras can be controlled using either SPI or I2C. In some cameras, images can be transmitted over SPI, albeit slowly. The SPI protocol is not ideal for video as it lacks dedicated lines for essential timing signals like Vertical Sync (VSync) and Horizontal Sync (VSync).


 Digital Video Port

 Differential Signalling Protocols

Wireless Protocols.    View      

Communication using radio waves.

Wifi Radio protocols on microcontrollers are limited to 40 Mhz, meaning <= 20Mbits/sec for TCP. Compression is needed for tolerable video. Often H,264 compression is used. 
3G/4G/5G For longer distance, one needs to use the cellular phone network. AD9363 is one promising chip.


 Basics of IQ Signals and IQ modulation & demodulation - A tutorial

Ethernet.    View      

TCP/IP and UDP are often used to transmit video.


 Review of Ethernet SGMII (8B/10B SERDES) Concepts

 IP Camera Protocols And Standards Explained

 Lite Ethernet

 The ultimate guide to IP cameras

 SimpliPHY Your Ethernet Design, Part 1: Ethernet PHY Basics and Selection Process

 How 10GbE NICs Work: MAC, PHY, SerDes, and Offloading Explained

USB.    View      

USB Video Device Class (UVC) transmits video and camera control over USB.

USB is used for connecting multiple devices to a host computer. USB UVC transmits video over USB. Before protocol overhead: USB 2 runs at speeds up to 480 Mbits/s.  USB 3 runs at speeds up to 5Gbits/s (Gen1x1), 10Gbit/s (Gen2x1, Gen1x2), 20Gbit/s (Gen2x2). USB-4 runs st speeds of  20/40/80 Gbits/s.  USB uses 8/10 bit encoding, so only four fifths of the bandwidth is available for data. USB has both a host interface and a device interface. FPGAs are well supported with the device interface, both with hard-core USB device cores, and by the well-known less-than $10 FTDI chips. The $23 EZ-USB™ FX5 enables a low cost FPGA to function as a USB host.


Other Wired Protocols.    View      

The world is moving to high speed serial protocols.

They have fewer wires than parallel interfaces making them cheaper to produce. They use differential signalling which reduces noise, and reduces the voltage swings which reduces power consumption.


 Network Device Interface

 Serial digital interface

 Coax Express

 Gigabit Multimedia Serial Link

  ASA MotionLink

 Mipi A-Phy

 V3Link

 Automotive Applications

 SerDes

 JESD204

 Aurora

 PCIe

Display Protocols.    View      

Often the last stage in a video pipeline is to display it. These display protocols are listed from simplest to most complex and slowest to fastest signaling frequency.

Display Parallel Interface (DPI) and RGB are two names for the same thing: parallel output to a display.  This is not so much a standard as a simple way of doing things. One pixel is transferred per clock cycle, up to 24 bits wide. Also clock, control signals, HSync, VSync, and often Blank, are transmitted at the same time. Hackaday article [21].

Flat Panel Display Link (FPD-Link), confusingly also called LVDS, was released by National Semiconductor in 1996 for sending images from laptops to flat panel displays. It sends each RGB color on a separate differential wire pair at a higher frequency.

DisplayPort uses Low Voltage Differential Signaling, It has at least 4 unidirectional data channels, and a half duplex bidirectional auxiliary channel for command and control. DisplayPort is packet based and more complex than DVI. There are 4 displayPort repositories on github. The Parreto/DisplayPort repository appears mature, and is free for internal use.

Embedded DisplayPort (eDP) is a display panel interface standard for portable and embedded devices. It can have fewer wires than DisplayPort, making it an even more complex protocol. Hackaday article [21].

MIPI Display Serial Interface (MIPI-DSI) drives displays and is simpler than MIPI-CSI.  DSI requires fewer wires, does not include camera control and can be uni-directional.   FPGAs which do not support MIPI-CSI may be able to support MIPI DSI, at least the parallel version.  While the official MIPI-DSI spec is also not freely available, the protocol is well described here [15 ] and here [6]. Hackaday article [20].


 DVI and HDMI


Please Comment

You can comment on this page by replying to the following Mastodon toot.  Eventually the entire thread will be displayed, not just the toot.