SPI 무선통신
SPI(Serial Peripheral Interface, 직렬 주변기기 인터페이스)는 1:N 통신을 지원하는 동기식 통신 방식이다.
SPI 통신은 Master-Slave 구조를 기반으로 하는 시리얼 통신 방식으로, Master가 Slave에게 데이터를 송신하거나 Slave가 Master에게 데이터를 송신할 수 있다. SPI 무선통신은 이러한 SPI 통신 방식을 무선으로 구현한 것이다.
여기서 Master-Slave 구조는 하나의 Master 장치가 여러 개의 Slave 장치를 제어하는 구조이다. Master 장치는 Slave 장치에 명령을 내리고, Slave 장치는 Master 장치의 명령을 수행한다.
Master-Slave 구조는 다음과 같은 장점이 있다.
- 단순성: Master 장치가 Slave 장치를 제어하는 방식이 단순하기 때문에 설계 및 구현이 쉽다.
- 효율성: Master 장치가 Slave 장치에 명령을 내리면 Slave 장치는 바로 명령을 수행하기 때문에 효율적이다.
- 확장성: Master 장치와 Slave 장치를 추가하여 시스템을 확장할 수 있다.
Master-Slave 구조는 컴퓨터 네트워크, 산업용 제어, 전자 장치 등 다양한 분야에서 사용된다.
다시 SPI 통신으로 넘어가서
SPI 통신을 위해선 반드시 하나의 마스터와 하나의 슬레이브 기기가 존재해야 하며 통신을 위해선 최소 4개의 선 MISO, MOSI, SCK, SS가 필요하다.
- MOSI : Master Out, Slave In – 마스터에서 데이터를 출력하기 위한 신호 선
- MISO : Master In, Slave Out – 슬레이브에서 데이터를 출력하기 위한 신호 선
- SCK : Clock 신호 선
- SS : Slave Select – 데이터를 송수신할 슬레이브를 선택하기 위한 신호 선
데이터를 전송하고 수신하는 선이 따로 있기에 송수신이 동시에 이루어질 수 있어 송수신이 하나의 선으로 이루어지는 I2C 통신에 비해 속도가 빠르다. 그렇기에 속도가 빠르단 장점을 살려 이더넷 통신이나 SD 쉴드같은 주로 빠른 데이터 전송 속도를 필요로 하는 데에 많이 사용된다.
SPI 통신은 I2C 통신처럼 하나의 마스터에 여러 개의 슬레이브가 연결될 수 있기에 슬레이브를 선택하기 위한 방법으로 SS 신호를 사용한다. 하나의 슬레이브에 하나의 SS선을 사용한다.
SPI 통신은 동기화 통신 방식이므로 통신에는 클럭 신호가 사용되며, 클럭 신호는 마스터에서만 출력된다.