SPI 개요


PHPoC는 동기식 직렬 통신방식인 SPI 인터페이스를 제공합니다.

SPI 연결

SPI는 마스터와 슬레이브로 구성되며 총 4개의 연결선이 사용됩니다.

SPI 신호선

구분 의미 설명
SCK Serial Clock 동기화를 위한 클록
MOSI Master Output, Slave Input 마스터의 출력
MISO Master Input, Slave Output 슬레이브의 출력
SS Slave Select 슬레이브 선택

SPI 연결

spi_overview_01

슬레이브 선택

SPI 신호선 중 SS를 제외한 나머지 세 가닥은 모든 슬레이브에 공통적으로 연결되지만, SS는 각각의 슬레이브로 연결 됩니다. 따라서 3대의 슬레이브와 통신하기 위해서는 마스터가 3개 이상의 SS포트를 가지고 있어야 합니다. 마스터가 특정 슬레이브와 데이터 통신을 하기 위해서는 해당 슬레이브가 연결 된 SS포트에는 LOW를, 나머지 SS포트들에는 HIGH를 출력합니다. 즉, 마스터는 한 번에 하나의 슬레이브와만 통신할 수 있습니다. 특정 슬레이브와 통신이 끝나면 해당 SS핀을 다시 HIGH상태로 변경합니다.

데이터 통신

SPI 모드

SPI는 샘플링 방식에 따라 모드 0 ~ 3까지 4가지 모드를 정의합니다.

spi_overview_02

데이터 전송 순서

SPI는 데이터 통신에 앞서 마스터와 슬레이브 사이에 데이터 전송 순서를 맞춰 주어야 합니다. LSB부터 전송하는 방법과 MSB부터 전송하는 방법이 있습니다.

데이터 전송 흐름

SPI의 마스터와 슬레이브의 데이터 버퍼는 원형 큐의 형태입니다. 따라서 데이터 통신은 송신과 수신이 항상 동시에 이루어집니다. 다음 그림은 LSB가 먼저 전송되는 경우에 마스터와 슬레이브 사이의 데이터 송/수신을 개념적으로 나타낸 것입니다.

spi_overview_03