I2C 통신

아두이노에서 사용하는 시리얼 통신, I2C통신, SPI통신 또한 라즈베리에서 사용이 가능하다.

I2C 통신은 데이터를 주고 받기 위한 선 SDA와 송수신 타이밍을 동기화를 하기 위한 클럭 선 SCL 선으로 이루어진다.
하나의 마스터와 하나 이상의 슬레이브로 이루어지며, 슬레이브는 최대 127개까지 연결할수 있다.

위의 사진에서 Device들 중에서 하나가 마스터가 되고 나머지는 슬레이브가 되는 형식이다.

간단하게 정리하면
-I2C 통신은 2개의 선을 이요하는 통신 방식이다
-하나의 마스터에 여러개의 슬레이브 기기가 연결될 수 있다는 장점이 있다
-클럭 신호를 사용하는 동기식 통신 방식이기에 시간에 자유롭다는 장점이 있다
-슬레이브 선택을 위해 항상 주소 데이터가 붙기 때문에 긴 데이터에는 부적합 하다는 단점이 있다

I2C 통신은 시작 신호와 데이터 신호, 정지 신호로 이루어진다.

SDA와 SCL선은 HIGH 상태가 기본이며 SDA신호만 LOW로 바뀌면 시작 신호로 간주한다.
그 후 SCL선으로 클럭 신호가 만들어지며, 클럭신호가 LOW일때 SDA신호가 HIGH 또는 LOW로 바뀌며 클럭신호가 HIGH일때 SDA신호를 읽어 들인다.
모든 비트의 전송이 끝난 후 SCL신호가 HIGH가 되면 SDA 신호도 HIGH로 만들어 정지 신호를 만든다.

댓글

이 블로그의 인기 게시물

PLC와 아두이노 그리고 온도 센서를 이용하여 램프 점등

C언어로 로또 프로그램 만들기

python 에서 resize 이벤트 만들기