Display Serial Interface
The Display Serial Interface (DSI) is a specification by the Mobile Industry Processor Interface (MIPI) Alliance aimed at reducing the cost of display sub-systems in a mobile device. This is commonly targeted at LCD and similar display technologies. It defines a serial bus and a communication protocol between the host (source of the image data) and the device (destination of the image data).
At the physical layer, DSI specifies a high-speed LVDS point to point serial bus. This bus includes one high speed clock lane and one or more data lanes. Each lane is carried on two wires (due to differential signaling). All lanes travel from the DSI host to the DSI device, except for the first data lane (lane 0), which is capable of a bus turnaround (BTA) operation that allows it to reverse transmission direction. When more than one lane is used, they are used in parallel to transmit data, with each sequential byte in the stream traveling on the next lane. That is, if 4 lanes are being used, 4 bytes are transmitted simultaneously, one on each lane. The link operates in either low power (LP) mode or high speed (HS) mode. In low power mode, the high speed clock is disabled and signal clocking information is embedded in the data. In this mode, the data rate is insufficient to drive a display, but is usable for sending configuration information and commands. High speed mode enables the high speed clock (at frequencies from tens of megahertz to over one gigahertz) that acts as the bit clock for the data lanes. Clock speeds vary by the requirements of the display. High speed mode is still designed to reduce power usage due to its low voltage signaling and parallel transfer ability.
The communication protocol describes two sets of instructions. The Device Command Set (DCS) is a set of common commands for controlling the display device, and their format is specified by the DSI standard. This defined registers that can be addressed and what their operation is. This includes basic commands such as sleep, enable, and invert display. The Manufacturer Command Set (MCS) is a device-specific command space whose definition is up to the device manufacturer. This often includes commands required to program non-volatile memory, set specific device registers (such as Gamma correction), or perform other actions not described in the DSI standard. The packet format of both sets is specified by the DSI standard. Packets are composed of a one byte long identifier, which may be followed by length field if the packets are variable length, then data (if any), and a CRC. Commands that require reading data back from the device will trigger a BTA event which will allow the device to reply with the requested data. A device cannot initiate a transfer, it can only reply to host requests.
Image data is transmitted on the bus, interleaved with signals for horizontal and vertical blanking intervals (porches). The data is drawn to the display in real time and not stored by the device. This allows the manufacture of simpler display devices without frame buffer memory. However, it also means that the device must be continuously refreshed (at a rate such as 30 or 60 frames per second) or it will lose the image. Image data is only sent in HS mode. When in HS mode, commands are transmitted during the vertical blanking interval.
Sources
MIPI Alliance press release on DSI spec: http://www.mipi.org/press/press_release.asp?item_id=10