Microprocessor/MCU Communication I2C 개념 정리
  • 728x90
    반응형


    [I2C 개념 정리]


    I2C(Inter-Integrated Cicuit)는 1980년대 필립스사가 개발한 디바이스 간의 저속 데이터 전송을 위한 버스 표준이다.

    AVR에서는 Tow wire라는 이름을 사용하고 있는데, 내용상 I2C와 동일하다.

    I2C라고 표기를 했는데, 실제로 2는 윗첨자를 올려써야하며, 자승(square)를 의미한다. 즉 읽을때 '아이 스쿼어 씨'라고 읽는다.


    I2C는 전형적인 버스구조로 multi-master, multi-slave를 지원하고, 하나의 버스에 최대 128개의 디바이스가 연결될 수 있다.

    버스는 매우 느린 편으로, 현재 5MHz 정도까지 표준이 나와있다고 하는데, 보통 100k를 저속, 400k를 고속이라고 하며,

    대부분 이 정도의 속도만 지원한다. AVR도 최고 속도는 400k 까지만 지원하고 있다.


    아래는 I2C버스 시스템의 형태이다.

    I2C는 두 개의 버스라인으로 구성된다. SCL은 클럭라인으로, 전송에 필요한 동기용 클럭을 전달한다. 

    SDA는 데이터라인으로, SCL클럭에 맞추어 데이터를 주고 받는 라인이다.


    버스는 공용이기 때문에 어떤 디바이스가 버스를 사용하기 위해서는 먼저 버스를 획득해야 한다. 

    버스를 획득할 수 있는 능력을 가진 디바이스를 마스터(master)라고 한다. 

    반대로 슬레이브(slave)는 스스로 버스를 획득할 수 없다. 


    여러개의 마스터가 있는 경우는 특정 마스터가 버스를 쓰기 위해 일종의 경쟁이 일어날 수 도 있다. 

    버스를 특정한 마스터가 획득하는 과정을 일반적으로 아비트레이션(Arbitration)이라고 한다.


    마스터는 버스 상에서 데이터 사이클을 시작할 수 있으며 이때 SCL라인으로 클럭을 공급할 책임이 있다.

    슬레이브 디바이스는 클럭을 받기만 한다.

     

    728x90
    반응형

    'Microprocessor > MCU Communication' 카테고리의 다른 글

    SPI 통신 기초  (0) 2019.01.14
    SPI 통신  (0) 2016.12.12
    I2C start/stop  (0) 2016.09.20
    I2C 오픈 콜렉터(Open Collector) 오픈 드레인(Open Drain)  (1) 2016.09.20
상단으로