Forums Microcontroller Boards ARM Difference between CAN,I2C,SPI and LIN

Difference between CAN,I2C,SPI and LIN

Link to this post 10 Aug 14

Can anyone differentiate CAN,I2C,SPI and LIN Protocols

Link to this post 11 Aug 14

Visnu Bharat,

CAN,I2C,SPI and LIN all these protocols are related to serial communication/protocols. Only the naming is differ from the techniques we used to transfer the data, about number of lines we used, about data transfer speed.


Controller Area Network is the secure and fast serial communication protocol. CAN is generally used for different device at different location i.e, usually out side of our PCB. CAN is a multi-master serial bus standard for connecting ECUs
Lines: 2 Lines[TX and RX]
Speed: up to 1 Mbit/s

Inter Integrated Circuit is an official standard serial communication protocol that only requires two signal lines that was designed for communication between chips on a PCB.
Lines: 2 lines [SCK and SCL]
Speed: 100kbps [faster data transmission modes have been developed over the years to achieve speeds of up to 3.4Mbps]


Serial Peripheral Interface is a very low power serial protocol. SPI bus is full-duplex bus, which allows communication to flow to and from the master device simultaneously.
Lines: 4 lines [MISO, MOSI, SCK, CS]
Speed: up to 10Mbps


Local Interconnect Network is a serial network protocol used for communication between components outside the PCB/BOARD. LIN is a broadcast serial network comprising one master and typically up to 16 slaves.
Lines: Single wire communication
Speed: up to 20 kbit/s.


This is one more serial protocol you missed to mention. Universal Asynchronous Receiver Transmitter. it is very simple and old one from all the serial protocols. It is the famous one and most used serial protocol.
Lines : 3 lines are more than enough [TX , RX & GND]
it not suitable for long distance transmission.

more serial protocols are available UART,USART,I2S,Microwire,1-wire etc.,

Link to this post 15 Oct

I have a similar doubt which is as follows,

At the physical level :
1. What are the suitable interfacing boards supported by i2c? I want to interface multiple automobile modules like braking, propulsion, battery, etc. which include sensors and more.
2. Is it possible to make a hybrid network with both i2c and SPI network protocols?

Please Acknowledge. Thank you, in advance.