통신 방식 정리
SPI 통신
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 통신) |