반도체, 임베디드 Study/디지털 설계

SPI - Serial Peripheral Interface 통신

잇(IT) 2024. 4. 1. 21:25
728x90

SPI는 주변 장치들과의 통신을 위한 시리얼 통신 프로토콜을 구현하는데 사용된다.

 

SPI는 다음과 같은 구성 요소로 구성된다.

 

1. Master와 Slave : SPI 통신은 하나의 마스터와 하나 이상의 슬레이브로 구성된다. 마스터는 통신을 제어하고 슬레이브 간에 데이터를 전송한다.

2. Serial 데이터 전송 : SPI는 시리얼 방식으로 데이터를 전송한다. 이것은 비트 단위로 직렬로 전송되며, 일반적으로 데이터는 MSB 또는 LSB부터 전송된다.

3. 시간 동기화 : SPI는 시간 동기화 방식을 사용하여 통신한다. 마스터는 클럭 신호를 생성하여 통신 속도를 제어하며, 데이터는 클럭 신호의 edge에 따라 전송된다.

4. 전송 모드 : SPI는 여러 전송 모드를 지원한다. 주로 사용되는 모드에는 CPOL 및 CPHA가 있다. 이러한 모드는 클럭 신호의 시작 상태 및 데이터 샘플링 시기를 정의한다.

5. 통신 프로토콜 : SPI는 간단하고 유연한 프로토콜을 사용한다. 주로 데이터 전송을 위해 MOSI 및 MISO 라인을 사용하며, 추가적으로 SS 및 SCK 라인이 사용된다.

 

SPI는 기본적으로 Master와 Slave로 구성된다.

위 그림과 같이 하나의 Master가 여러 Slave에게 통신 제어 신호를 보내게 되면 그 신호에 맞게 Slave들이 데이터를 송수신하게된다.

 

통신에 사용되는 대표적인 신호에는 MOSI, MISO, SS, SCK가 있고, Mode 설정을 위한 CPHA, CPOL이 있다.

SCK (Serial Clock) : SCK는 시리얼 클럭 신호를 나타낸다. 이 클럭 신호는 마스터 장치에서 생성되며, 데이터를 전송하는 동안 데이터의 시간적인 흐름을 동기화한다.


MOSI (Master Out Slave In) : MOSI는 마스터에서 슬레이브로 데이터를 전송하는 데 사용되는 핀이다. 마스터가 데이터를 출력하고 슬레이브가 데이터를 입력한다.


MISO (Master In Slave Out) : MISO는 슬레이브에서 마스터로 데이터를 전송하는 데 사용되는 핀이다. 슬레이브가 데이터를 출력하고 마스터가 데이터를 입력한다.


CPHA (Clock Phase) : CPHA는 클럭 신호의 페이즈를 나타낸다. CPHA가 0이면 데이터가 클럭의 edge에서 샘플링되고, CPHA가 1이면 클럭의 트랜지션 중에 샘플링된다.


CPOL (Clock Polarity) : CPOL은 클럭 신호의 극성을 나타낸다. CPOL이 0이면 클럭 신호는 활성 상태에서 시작되고, CPOL이 1이면 클럭 신호는 비활성 상태에서 시작된다.


SS (Slave Select) : SS는 슬레이브 장치를 선택하기 위한 신호다. 마스터는 특정 슬레이브 장치와 통신하기 위해 해당 SS 핀을 활성화한다.

728x90