전이중 통신, SPI 통신이란?

안녕하세요, 주식회사 #한국전자기술 입니다.

​

제어기 안에는 IC(Integrated Chip)라는 칩들이 있습니다. 그 칩끼리 정보를 전달받기 위한 통신 방식으로는 크게 SPI와 I2C 방식으로 나누어지는데 이 중 SPI 통신이란 양방향성을 가지는 통신방법입니다.

 

SPI 통신이란?

SPI(Serial Peripheral Interface)

 

#SPI통신 이란 1:N로 통신할 수 있는 동기식 통신 프로토콜입니다.

​

통신방식은 크게 SPI와 I2C가 있다고 말씀드렸는데, 이 두가지 방법의 가장 큰 차이점은 I2C의 경우 한쪽에서 정보를 보내고 있을 때 다른 쪽에서는 수신만 가능하고 SPI 통신은 한쪽에서 정보를 전송중이더라도 다른쪽에서도 정보를 보낼 수 있다는 점이 가장 큰 차이점이 아닐까 싶습니다.

단, 양방향에서 동시에 정보를 보내려면 별도의 통신선을 통해 동작해야하기 때문에 SPI 통신에서는 총 4개의 선을 사용하게 됩니다.

SCK / MOSI / MISO / SS 최소 본 네 개의 선이 필요한데, 하나씩 살펴보면 아래와 같습니다.

​

SCK : Clock 신호 선

MOSI : Master Out Slave In으로 마스터에서 출력, 슬레이브에서 송신받는 신호 선

MISO : Master In Slave Out으로 마스터로 들어오고 슬레이브에서 데이터가 나가는 신호 선

SS : Slave select로, 슬레이브를 선택하는 선

​

SS 선은 간혹 CS(Chip Select)로 표시된 것이 있으니 주의하시고 MOSI와 MISO는 반대방향으로 전송된다는 것을 확인해주세요.

​

선을 살펴보면 Master와 Slave가 반복적으로 보입니다.

마스터란, 송수신을 결정짓는 장치로 MCU 등이 해당됩니다. 반대로 슬레이브는 EEPROM이나 SD 카드 등이 해당될 수 있습니다. 마스터는 여러 슬레이브와 SS를 통해 연결해 각각의 통신이 가능합니다.

 

전이중 통신, SPI 통신이란?

그림을 보시면 SCK 선은 SCK끼리, MOSI는 MOSI끼리, MISO는 MISO끼리 연결되어있는 것을 볼 수 있습니다.

단 SS는 슬레이브를 선택할 수 있는 스위치 역할을 하기 때문에 마스터의 SS를 각 슬레이브와 연결하여 위쪽 슬레이브와의 통신 여부, 아래쪽 슬레이브와의 통신여부를 결정할 수 있습니다.​

​

SPI 통신은 최대 Clock에 대한 제한이 없어 속도가 빠르고 양방향 통신이 가능하다는 장점이 있습니다. I2C 대비 소비 전력도 낮고 인터페이스 처리 과정이 간단하여 손쉽게 사용할 수 있습니다.

다른 포스트