I²C(아이스퀘어드시, Inter-Integrated Circuit)는 필립스에서 개발한 직렬 버스이다. 마더보드, 임베디드 시스템, 휴대 전화 등에 저속의 주변 기기 연결에 사용된다.
SDA선과 SCL 선이 모두 기본으로 High SCL은 클럭 신호선 (Signal CLock)를 의미하고 SDA는 데이터 신호선 (Signal DAta)을 의미
한 클럭당 한 비트 데이터 신호를 만든다. 모든 비트의 전송이 끝난 후 SCL 신호가 High가 되면 SDA 신호 역시 High로 되어 정지 신호(P를 만든다.
시작 신호 뒤 나오는 첫 7비트는 슬레이브의 주소값이다. 8번째 비트는 데이터를 읽어올지 또는 쓸지를 나타내는 신호 비트이다.
시리얼 대표적 통신(UART)와 비교 해보면, I2C는 동기화 통신 방식이라는 것이다. 동기화 통신 방식이란 Clock 신호를 이용해서 데이터를 얼마나 보내는지 타이밍을 맞춘다. 이는 시리얼 통신처럼 통신속도(Baudrate)를 따로 정해주지 않아도 된다는 점이 있다. 시리얼 통신은 비동기식 방식이기 때문에 사전에 데이터 전송 속도 등에 대한 합의가 이루어져 있어야만 함. 따라서 통신하는 장치들은 거의 오차가 없이 동일한 속도로 데이터를 추출해야 하고 한쪽이 조금이라도 추출 속도가 다르면 잘못된 정보가 전송되는 결과를 초래함.
따라서 비동기식 통신은 오히려 더 많은 하드웨어 장치가 요구되게 된다. 소프트웨어적으로 비동기식 통신 프로토콜을 구현하기가 어렵기 때문이다. 그리고 매 데이터의 전송단위마다 시작비트와 종료비트를 포함해야 하고 이는 데이터 전송율의 저하를 초래함.
이 외에도 또다른 중요한 단점은 비동기 통신 방식은 오직 2개의 장치만이 통신할 수 있다는 점임. 비록 여러개의 장치를 하나의 시리얼포트에 연결하는 것이 가능하기는 하지만 그럴려면 외부 하드웨어를 연결해서 통신의 선점권을 부여하는 등의 추가적인 조치가 필요하게 된다.
마지막으로 데이터 전송률문제가 있다. 이론상으로는 비동기식 통신에서 통신 속도에 대한 제한이 없지만, 실제로 구현하면 전송 속도를 올리는데 한계가 있고 가장 높이 올려도 대게 초당 230400 bit 이상으로 올리지는 못함.