I2C와 SPI

Donghwi Kim·2024년 2월 20일
0

잡다한 개발 지식

목록 보기
21/26

I2C(Inter-Integrated Circut)통신

  • 2개의 선을 이용하는 통신 방식
  • 하나의 마스터와 여러 개의 슬레이브 기기가 물려 통신이 가능
  • 클럭 신호를 사용하는 동기식 통신 방식이라 시간에 자유로움
  • 슬레이브 선택을 위해 항상 주소 데이터가 붙기에 긴 데이터를 전송하기엔 부적합

IC 사이 통신 링크를 제공하는 양방향 2와이어 직렬 버스이다.
즉, 두 가닥으로 직렬 통신을 하는 통신 프로토콜이다.

첫 번째 가닥은 SDA 선이다. 이는 데이터를 주고 받기 위한 선이다.
두 번째 가닥은 SCL 선이다. 이는 타이밍을 동기화 하기 위한 클럭 선이다.

하나의 마스터와 다른 하나의 슬레이브로 구성된다. 슬레이브는 127개까지 구성이 가능하다. 즉, 메인 EUC가 있으면 그 외 여러가지 디바이스들이 묶여 통신이 가능하다.

I2C 사용 시에 주의해야 할 점은 ‘풀업 저항’이다. 위 그림의 Rp 두 개가 저항이다. 이 저항을 다는 이유는 I2C 통신을 위해 SDA 선과 SCL 선이 모두 기본으로 High 상태가 되어야 한다. 풀업 저항은 이를 High 상태로 만들어 준다. 또한, 한 가닥의 선으로 TX, RX를 하기 때문에 Floating 현상이 발생 함을 방지하기 위해 풀업 저항을 달기도 한다.

데이터를 전송 또는 수신 할건지는 마스터에서 주도한다. 그리고 데이터를 송수신할 때 반드시 슬레이브 주소를 마스터에 명시해 두어야 통신이 된다.

시리얼 대표적 통신(UART)와 비교해보면, I2C는 동기화 통신 방식이란 것이다. 동기화 통신 방식이란 클럭 신호를 이용해서 데이터를 얼마나 보내는지 타이밍을 맞춘다. 이는 시리얼 통신처럼 통신 속도를 따로 정해주지 않아도 된다는 점이 있다.

특징

  • 7비트의 주소 공간을 사용하며 128개의 슬레이브를 사용 가능하다.
  • 여러 개의 마스터끼리 통신이 가능하며 400kHz의 전송 속도를 갖는다.
  • 장치가 sleep 모드일 때, 주소 인식으로 깨어날 수 있다.

SPI(Serial Peripheral Interface) 통신

I2C와 마찬가지로 1개의 Master와 여러 개의 Slave가 연결될 수 있다.
통신을 위해 최소 4개의 선이 필요하다.

  • SCK: 클럭 전송을 위한 단자이다. 마스터에서 슬레이브로 클럭을 전송한다.
  • MOSI(Master Out Slave In): Master에서 Slave로 데이터를 전송하기 위한 단자이다.
  • MISO(Master In Slave Out): Slave에서 Master로 데이터를 전송하기 위한 단자이다.
  • SS: 마스터 장치에서 슬레이브 장치를 선택하기 위한 단자이다.
    • SS를 통하여 어떤 장치랑 통신할지를 선택하고, 마스터에서 슬레이브로 클럭을 전송하면 마스터 기기와 슬레이브 기기가 데이터를 주고 받을 수 있다.
    • 여러 개의 슬레이브가 마스터에 연결될 수 있지만, 슬레이브 개수만큼 SS 신호 선이 늘어나게 된다. 따라서 여러 개의 슬레이브가 존재할 때는 효율적이지 않다.
    • 데이터를 전송하고 수신하는 선이 따로 있기 때문에 송, 수신이 동시에 일어날 수 있다. 따라서 반이중 통신 방식인 I2C에 비해 속도가 빠르다.

데이터 송수신 과정

  1. 송수신 할 슬레이브를 선택하기 위해 SS 신호를 보낸다.
  2. 슬레이브 선택 후 SCK 신호를 통해 클럭 신호를 맞춘다.
    a. 클럭 신호는 마스터와 슬레이브만 맞추면 되기 때문에 High에서 보내든 Low에서 보내든 상관없다.
  3. 클럭 신호에 따라 MOSI or MISO를 통해 데이터를 송수신한다.
    a. 그림에서는 따로따로 실행되고 있지만 동시에 송수신이 이루어져도 상관없다.
  4. 데이터 송수신이 끝나면 SS를 끊고 종료한다.


특징

  • 송수신 신호 선이 따로 있는 전이중 방식으로 I2C보다 통신 속도가 빠르다.
  • 4개의 신호 선이 필요하다.
  • 동기 방식이다.
  • 1개의 마스터와 1개 이상의 슬레이브가 필요하며 1:N 통신 방식이다.
  • 슬레이브 수가 증가할 때마다 비례하여 SS 신호 선이 추가로 필요하다.(물리적 단점)

0개의 댓글

관련 채용 정보