PHPoC는 동기식 직렬 통신방식인 SPI 인터페이스를 제공합니다.
SPI는 마스터와 슬레이브로 구성되며 총 4개의 연결선이 사용됩니다.
구분 | 의미 | 설명 |
---|---|---|
SCK | Serial Clock | 동기화를 위한 클록 |
MOSI | Master Output, Slave Input | 마스터의 출력 |
MISO | Master Input, Slave Output | 슬레이브의 출력 |
SS | Slave Select | 슬레이브 선택 |
SPI 신호선 중 SS를 제외한 나머지 세 가닥은 모든 슬레이브에 공통적으로 연결되지만, SS는 각각의 슬레이브로 연결 됩니다. 따라서 3대의 슬레이브와 통신하기 위해서는 마스터가 3개 이상의 SS포트를 가지고 있어야 합니다. 마스터가 특정 슬레이브와 데이터 통신을 하기 위해서는 해당 슬레이브가 연결 된 SS포트에는 LOW를, 나머지 SS포트들에는 HIGH를 출력합니다. 즉, 마스터는 한 번에 하나의 슬레이브와만 통신할 수 있습니다. 특정 슬레이브와 통신이 끝나면 해당 SS핀을 다시 HIGH상태로 변경합니다.
SPI는 샘플링 방식에 따라 모드 0 ~ 3까지 4가지 모드를 정의합니다.
SPI는 데이터 통신에 앞서 마스터와 슬레이브 사이에 데이터 전송 순서를 맞춰 주어야 합니다. LSB부터 전송하는 방법과 MSB부터 전송하는 방법이 있습니다.
SPI의 마스터와 슬레이브의 데이터 버퍼는 원형 큐의 형태입니다. 따라서 데이터 통신은 송신과 수신이 항상 동시에 이루어집니다. 다음 그림은 LSB가 먼저 전송되는 경우에 마스터와 슬레이브 사이의 데이터 송/수신을 개념적으로 나타낸 것입니다.