본문 바로가기
Embedded SW/Embedded SW Introduction

05. SPI 통신이란 무엇인가?

by 방구석 임베디드 2021. 7. 16.
반응형

SPI(Serial Peripheral Interface)는 Electric Control Unit안에서

 

IC(Integrated Chip) 끼리 통신을 수행하기 위한 통신 기법입니다.

아래 두개의 자동차 ECU가 있습니다.

VCM(Vehicle Control Module) 와 BCM(Body Control Module)이 있습니다.

이 두개의 ECU는 아래와 같이 CAN 라인을 통해서 정보를 주고 받습니다.

그리고  VCM안에 있는 MCU도 IC칩의 정보를 전달 받고 싶습니다.

분명히 전압을 통하여 정보를 전달 받야할 것입니다.

이렇게 한 제어기 안의 IC들과 정보를 전달 받는 방법은 크게 SPI와 I2C 방식이 있습니다.


SPI는 모토로라에서 만든 통신 방식으로 IC와 Clock을 통하여 동기화 하는 동기식 통신 방식입니다.
하나의 Master와 또 다수의 Slave Device간의 통신이 가능합니다.

여기서 Master는 MCU가 되겠네요!

Slave는 다양한 IC로 EEPROM, Power 관련 IC, 디스플레이 기타 등등이 있습니다.

 

SPI 통신은 아래와 같이 4개의 핀을 사용합니다.

MOSI (Master Out Slave Input) : Master에서 IC 쪽으로 전달하는 라인입니다.
MISO (Master Input Slave Out) : IC에서 Master쪽으로 정보를 전달하는 라인입니다.
SS (Slave Select) : Master에서 통신을 할 IC를 선택하는 라인입니다.
SCK(Serial Clock) : 동기를 맞추어 정보를 전달하기위한 Clock입니다.

 

MCU는 다수의 IC를 제어할수 있습니다.


SPI 통신에서 설계시 중요한 포인트는 3가지 입니다.

1. IC 칩의 Spec을 보고 통신 대역을 설정해야 합니다.

   다시 말해서 SCK Clock의 속도를 어떻게 정할지를 결정해야 합니다.

   예를 들어 IC Chip에서 최대 5MHz까지 통신 대역이 가능하다고 한다면

   5MHz 보다 작거나 같도록 SCK Clock의 속도를 Master에서 조절해야 합니다.

 

2. IC 칩의 Spec을 보고 Polarity를 결정해야 합니다.

   SPI는  Clock polarity(CPOL)와 Clock phase(CPHA)의 조건에 따라 Sampling 위치가 달라집니다.

  

1) CPOL = 0 CPHA = 0


2) CPOL = 0, CPHA = 1


3) CPOL = 1, CPHA = 0



4) CPOL = 1, CPHA = 1

 

3. 마지막으로 Delay Time을 Spec에 맞게 설정해야 합니다.

아래와 같이 SS핀이 내려갔을때 SCLK가 시작되는 Delay 시간,

또는 SS핀이 올라가는데 까지 걸리는 Delay 시간

이러한 Delay 시간을 IC Spec에 잘 맞추어 설계를 해야합니다.

Infineon과 NXP MCU를 기반으로 SPI통신을 통하여 외부 IC와 통신을 수행하는 프로젝트를 

조만간 포스팅하도록 하겠습니다.

반응형

댓글