dawon-project 2025. 1. 9. 11:33

SPI 통신 : 전이중 동기식 직렬 통신

    -> 비동기식 통신 방식과 달리 사전에 두 장치 간의 통신 속도를 맞춰주지 않아도 클럭을 통해 전송됨(단, 최대 속도는 정해져있다.)

    -> Master에서만 클럭 신호를 생성해서 Slave에게 데이터 전송

* 전이중(Full Duplex : 양방향 통신) : 송/수신이 동시에 가능하다

 

<연결 방법>

  • SCK : 클럭을 생성해서 클럭을 보내는 핀 (마스터가 담당)
  • MOSI(Master Out Slave In) : 마스터가 출력(OUT), 슬레이브가 입력(IN) 받는 핀     
             -> 마스터가 슬레이브에게 데이터를 보내는 핀
  • MISO(Master In Slave Out) :  슬레이브가 출력(OUT), 마스터가 입력(IN) 받는 핀
              -> 슬레이브가 마스터에게 데이터를 보내는 핀
  • SS :  마스터가 슬레이브를 선택하는 핀 
           -> 슬레이브 하나 당 SS핀 하나가 할당 된다.
           -> I2C와 같이 여러 개의 슬레이브를 하나의 SS핀으로 묶어도 됨
            -> 슬레이브가 마스터에게 정보를 보내고 싶어도 항상 마스터가 먼저 데이터를 보내서 클럭 신호를 줘야 데이터를 보낼 수 있다.

<SPI, UART, I2C 각각의 통신 방식 차이점>

 

Protocol UART SPI I2C
Complexity
 -> 핀 연결 복잡도
단순하다 기기가 증가할 수록 복잡해짐 Easy to chain multiple device
Speed 가장 느리다 가장 빠르다 UART보다 빠르다
Number of devices
-> 몇대 까지 통신이 가능한가?
2개 까지 여러개 까지 가능
-> 복잡도 증가
127개까지 가능
-> 복잡도 증가
Number of wires
-> 필요한 선 수
2(Tx, Rx) 4(MOSI, MISO, SS, SCK) 2(SCL, SDA)
Duplex
-> 통신 특성
Full Duplex(전이중 통신 방식)
-> 양방향 통신
Full Duplex(전이중 통신 방식)
-> 송/수신 동시에 가능
Half Duplex(반이중 통신 방식)
-> 한번에 송신 또는 수신 둘 중 하나만 가능
No. of masters and slaves
 -> 마스터와 슬레이브 통신 개수
Single to Single(1:1 통신) 1 master, Multiple slaves
(1:N 통신)
Multiple slaves and masters
(N:N 통신)