I3C (bus)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
I3C
Venn Diagram of I3C Heritage
Type Bus
Designer MIPI Alliance
Sensor Working Group
Designed 2016; 3 years ago (2016)
Manufacturer multiple
Hot pluggable true
Signal CMOS
Data signal Open-drain or Push/Pull
Width 2 wires [data + clock]
Bitrate

12.5 Mbit/s (SDR, standard), 25 Mbit/s (DDR), 33 Mbit/s (ternary),
legacy I²C rates
400 Kbits/s (FM),

Mbit/s (FM+)
Protocol Serial, half-duplex

I3C (MIPI I3C, also known as SenseWire) is an emerging industry standard for multidrop serial data buses. I3C was developed as a collaborative effort between electronics and computer related companies under auspices of the Mobile Industry Processor Interface Alliance (MIPI Alliance). I3C is an evolution of I²C, a de facto standard two-pin serial bus widely used for low-speed peripherals and sensors in computer systems. I3C adds a significant number of system interface features while retaining upward compatibility with existing I²C slave devices while native I3C devices support higher data rates, similar to Serial Peripheral Interface (SPI). Like I²C, I3C uses two signal pins named SDA and SCL. One or more master devices can be connected to one or more slaves over the bus.

Google and Intel have backed I3C as a sensor interface standard for Internet of things (IoT) devices.[1] With public release of the I3C specification,[2] MIPI has begun a push for adoption in the mobile electronics and related industries.[1][3][4]

History[edit]

Goals of the MIPI Sensor Working Group effort were first announced in November 2014 at the MEMS Executive Congress in Scottsdale AZ.[5]

Electronic Design Automation tool vendors Cadence,[6] Synopsys[7] and NXP/Silvaco [8] have released controller IP blocks and simulators designed to make implementing the MIPI I3C in new integrated circuit designs easier including FPGA based designs and ASICs

In December 2016, Lattice Semiconductor has integrated I3C support into its new FPGA known as an iCE40 Ultra Plus.[9] making the bus available at relatively low cost for embedded systems designs.

In March 2017, Qualcomm has integrated I3C master support into its new mobile SOC known as an SDM845.[10] making first on the market support for new protocol for mobile/automotive systems.

In December 2017, The I3C 1.0 specification was been released for public review.[1][11] At about the same time, a Linux kernel patch introducing support for I3C was proposed by Boris Brezillon.[12]

Goals[edit]

Prior to public release of the specification, a substantial amount of general information about it has been published in the form of slides from the 2016 MIPI DevCon.[13] The goals for this interface were based on a survey of MIPI member organizations and MEMS Industry Group (MIG) members. The results of this survey have been made public.[14]

Key I3C design enhancement (over I2C) include:[15]

  • Low-power and space efficient design intended for mobile devices (smartphones and IoT devices.)
  • Two-pin interface that is a superset of the I2C standard. Legacy I2C slave devices can be connected to the newer bus.
  • In-band interrupts over the serial bus rather than requiring separate pins
  • Standard Data Rate (SDR) throughput up to 12.5 Mbit/s using CMOS I/O levels,
  • High Data Rate (HDR) modes permitting throughput comparable to SPI while requiring only a fraction of I2C Fast Mode power.[16]
  • A standardized set of common command codes
  • Command queue support
  • Error Detection and Recovery (parity check in SDR mode and 5bit CRC for HDR modes)
  • Dynamic address assignment (DAA) for I3C slaves, while still supporting static addresses for I2C legacy devices
  • I3C traffic is invisible for legacy I2C devices when equipped with I2C spike filters, achieved by SCl HIGH times of less than 50ns
  • Hot-join (some devices on the bus may be powered on/off during operation)
  • Multi-master operation with well-defined hand-off

Device classes[edit]

On an I3C bus in its default (SDR) mode, four different classes of devices can be supported:

  • I3C Main Master
  • I3C Secondary Master
  • I3C Slave
  • I2C Slave (legacy devices)

High Data Rate (HDR) options[edit]

I3C Buses always initialize in SDR mode. To enter HDR mode, the I3C master issues an "Enter HDR" CCC Broadcast command which tells all I3C slaves that the bus is in HDR mode. I3C slaves which do not support HDR have told that to the master and can ignore that command. I3C slaves which do not support HDR need to have a "HDR exit" detector which informs when it is time to listen to the bus again.

HDR modes operate in either Double Data Rate (DDR) or Ternary Symbol modes. These modes can only be on buses under one of two limited configurations:

  • A Pure I3C Bus – no I2C devices on the bus
  • A Mixed Fast Bus – Where I2C devices on the bus are equipped with a 50 ns Spike Filter

There are three possible HDR modes:

  • HDR-DDR Double Data Rate – Data transfers on both clock edges, permitting throughput up to 20 Mbit/s (25 Mbit/s raw bit rate)
  • HDR-TSP Ternary Symbol for Pure Bus – Increases throughput by using both SDA and SCL wires for data. Not allowed on mixed I2C–I3C bus.
  • HDR-TSL Ternary Symbol for Legacy Bus – Permits buses including I2C devices (with a spike filter) to operate at higher speeds.

I2C features not supported in I3C[edit]

  • Pull-up resistors are provided by the I3C master. External pull-up resistor are no longer needed.
  • Clock Stretching – devices are expected to be fast enough to operate at bus speed. The I3C master is the sole clock source.
  • I2C Extended (10-bit) Addresses. All devices on an I3C bus are addressed by a 7-bit address. Native I3C devices have a unique 48-bit address which is used only during dynamic address assignments.

References[edit]

  1. ^ a b c "MIPI makes market push for I3C sensor interface". 14 December 2017.
  2. ^ "MIPI I3C". mipi.org.
  3. ^ "MIPI Alliance opens access to its MIPI I3C Sensor Interface Specification".
  4. ^ "You are being redirected..." www.evaluationengineering.com.
  5. ^ http://www.eetimes.com/document.asp?doc_id=1324598
  6. ^ http://ip.cadence.com/uploads/1075/Cadence_Brochure_MIPI_I3C_Slave_Controller-pdf
  7. ^ "VC Verification IP for MIPI I3C". www.synopsys.com.
  8. ^ "MIPI I3C: a Unified, High-Performing Interface for Sensors-NXP". www.nxp.com.
  9. ^ "Lattice gives iCE40 more power, I/O and memory". 12 December 2016.
  10. ^ "SDM845 Specs".
  11. ^ "MIPI I3C". www.mipi.org.
  12. ^ "LKML: Boris Brezillon: [PATCH v2 0/7] Add the I3C subsystem". lkml.org.
  13. ^ Inc, MIPI Alliance,. "MIPI I3C Sensor Sessions at MIPI DevCon2016". resources.mipi.org.
  14. ^ http://mipi.org/sites/default/files/MIPI%20+%20MIG%20Member%20Sensor%20Interface%20Survey%20Results%20final.pdf
  15. ^ MIPI Alliance (23 September 2016). "MIPI DevCon 2016: A Developer's Guide to MIPI I3C Implementation".
  16. ^ MIPI Alliance (23 September 2016). "MIPI DevCon 2016: MIPI I3C High Data Rate Modes".

External links[edit]