본문 바로가기

연구노트/통신 설계

I2C 통신설계

I2C 통신설계

I2C 통신

1. I2C ( Inter – Integrated Circuit ) 통신

1980년대 초반 필립스에서 제안한 근거리 통신 방식

MCU, CPU, FPGA 등 주변장치와 통신할 수 있는 통신프로토콜

두 Wire 로 여러 디바이스를 연결할 수 있는 저속 통신 인터페이스

동시에 송수신이 불가한 반이중( Half – Duplex ) 방식

각 Slave 는 각자의 주소를 가지고 주소에 해당하는 Slave만 응답하는 방식

2. I2C 통신구성

SCL ( Serial Clock ) : 통신의 동기를 맞추기 위한 클럭신호를 마스터에서 슬레이브로 전송함

동기화 : 마스터가 SCL 신호를 생성하여 슬레이브와 통신속도를 맞춤

데이터 읽기/쓰기 : SCL 신호의 변화(상승, 하강)에 맞춰 SDA의 데이터를 읽거나 씁니다.

Ex. SCL이 High인 동안 SDA의 상태를 읽어 한 비트의 데이터를 인식

마스터 주도 : 일반적으로 SCL 신호를 마스터 장치에 의해서만 생성

SDA ( Serial Data ) : SCL 의 클럭 신호에 맞추어 마스터와 슬레이브 간에 데이터를 송수신함

양방향 통신 : SDA는 데이터를 보내고 받는데 모두 사용, 마스터가 슬레이브에게 데이터를 보낼 때도, 슬레이브가 마스터에게 응답(ACK)를 보낼 떄도 SDA를 사용

데이터 전송 : SCL 의 클럭 신호에 맞춰 한 번에 한 비트씩 데이터를 전송

시작/정지 조건 : 통신의 시작과 끝을 알리는 데도 SDA가 사용

시작 조건 : SCL이 High인 상태에서 SDA가 High에서 Low로 떨어지는 것

정지 조건 : SCL이 High인 상태에서 SDA가 Low에서 High로 올라가는 것

3. I2C 통신의 장단점

장점)

2개의 입출력 핀을 이용해 장치들의 반이중통신이 가능

2개의 선(SCL, SDA)만으로 여러 장치와 통신할 수 있어 하드웨어 연결이 간단

시스템 동작 중에도 I2C 통신 버스에 새 장치의 추가 및 제거가 가능

하드웨어 구성이 간단하며 대화형 동작이 가능함

멀티 마스터/슬레이브 지원 : 하나의 마스터와 여러 개의 슬레이브가 통신하거나, 여러 개의 마스터가 하나의 버스를 공유

단일 마스터 주소 지정 : 각 슬레이브 장치는 고유한 주소를 가짐, 마스터를 특정 슬레이브를 지정해 통신 가능

단점)

데이터 전송 속도가 SPI나 UART와 비해 상대적 저속 ( 일반모드 : 최대 100kHz, 고속모드 : 최대 400kHz ), 대용량 데이터를 전송하는데 적합하지 않음

(저속 데이터 통신 또는 장치의 제어에 적합)

전이중통신 불가 : 마스터와 Slave가 동시에 데이터를 송신할 수 없음

Slave의 주소값이 7bit로 제한되어 있기 때문에, Slave 장치를 동시에 최대 128개까지만 연결가능 : Slave 장치들 사이에 주소 충돌 가능성 있음

통신 거리의 한계 : 통신 선로의 저항과 커패시턴스 떄문에 통신 거리가 짧고, 거리가 멀어질수록 신호의 안정성이 떨어짐

풀업 저항 필요 : 통신 선로를 항상 High 상태로 유지하지 위해 외부 풀업 저항 필요

복잡한 프로토콜 : UART처럼 단순한 프로토콜에 비해 주소, 데이터, ACK(응답 신호) 비트 등 프로토콜 구조가 더 복잡

I2C 동작 방식

1. I2C Write 동작 방식

Write 동작은 마스터 장치가 슬레이브 장치에게 데이터는 보내는 과정

Master는 SCL 과 SDL핀이 모두 High 상태일때, SDA를 Low로 바꾸어 Slave에게 통신시작을 알림

Master는 통신하고자 하는 Slave의 주소를 SDA를 통해 송신

Master는 해당 주소의 Slave와 통신 ( 송신 )을 수행

Master는 SCL이 High이고 SDA가 Low인 상태에서 SDA를 High로 바꾸어 Slave에게 통신종료를 알림

2. I2C Read 동작 방식

Master 는 SCL 과 SDA 핀이 모두 High 상태일 때, SDA 를 LOW 로 바꾸어 Slave에게 통신시작을 알림

Master 는 통신하고자 하는 Slave 의 주소를 SDA를 통해 송신

Master 는 해달 주소의 Slave 와 통신 ( 수신 )을 수행

Master 는 SCL 이 High 이고 SDA 가 Low 인 상태에서 SDA 를 High 로 바꾸어 Slave에게 통신종료를 알림

 

'연구노트 > 통신 설계' 카테고리의 다른 글

HDLC 통신설계  (0) 2025.09.30
CAN 통신설계  (0) 2025.09.29
SPI 통신설계  (0) 2025.09.24
UART 통신설계  (0) 2025.09.24
통신 기본이론  (0) 2025.09.01