Link | I2C (Inter-Integrated Circuit) | Serial Peripheral Interface (SPI) | 1-Wire | PJON SoftwareBitBang | I3C / SenseWire | SMBus (System Management Bus) | DCC (Digital Command Control) | CAN bus (Controller Area Network) |
---|---|---|---|---|---|---|---|---|
Design date | 1982 | 1985 ? | 1990 ? | 2010 | 2016 | 1994 | 1989 ? | 1983 |
Characteristics | ||||||||
Max nodes | 127 / 1024 | Limited by connections | 248 | 255 | 127 | 128 | 16384 (214) | 229 |
Max distance | 7.6 m | 10 ft | 300 m | 2,000 m | 40 m | |||
Bit rates | 5 Mbit/s | 16.3 kbit/s | 27kbit/s | 12.5 Mbit/s (400 Kbits/s for I2C compatibility) | 100 kbit/s | 5 kbit/s | 1 Mbit/s | |
Number of data wires / pin | 2 (SDA, SCL) | 3 + 1 per nodes | 1 (Data + GND) | 1 (Data + GND) | 2 (SDA, SCL) | 2 | 1 | |
Communication type | Half-duplex | Full-duplex | Half-duplex | Half-duplex / Simplex | Half-duplex | Half-duplex | Simplex | Half-duplex |
Broadcast | Yes | No | Yes | Yes | Yes | Yes | Yes | |
Error detection | No | No | Yes CRC | Yes Dual CRC | Yes Parity in SDR mode / CRC in HDR mode | Yes | Yes | Yes |
Direct Arduino compatibility | Yes | Yes | Yes | Yes | Yes derived from I2C | - via adapter | - via adapter (ie: MCP2515) | |
Links | ||||||||
Wikipedia | wikipedia.org/... | wikipedia.org/... | wikipedia.org/... | wikipedia.org/... | wikipedia.org/... | wikipedia.org/... | wikipedia.org/... | |
Website | pjon.org/... | mipi.org/... | opendcc.de/... | |||||
Arduino library | arduino.cc/... | arduino.cc/... | arduino.cc/... | github.com/... | github.com/... | github.com/... |