SPI(Serial Peripheral Interface)는 Motorola사에 의하여 개발되었고 지금은 표준화 되어 전세계적으로 널리 사용하는 근거리용 직렬통신 규격으로서, 마스터(master)와 슬레이브(slave) 사이에서 MOSI, MOSO, SCK, SS 등 4개의 통신선을 사용하는 고속 동기식 직렬통신 방식이다.
 SPI 직렬통신은 반드시 1개의 마스터와 1개의 슬레이브 사이에서만 수행된다. 마스터는 송신 데이터와 함께 클럭 신호를 동시에 슬레이브에게 보낸다. 그러면 슬레이브는 이 클럭을 사용하여 데이터를 수신하면서 동시에 자신의 데이터를 마스터에게 보낸다.
 이와 같이 SPI 직렬통신에서는 마스터가 통신의 제어를 주도하며, 항상 송신 동작과 수신 동작이 동시에 수행되어 전이중 통신이 된다. 따라서, 만약 마스터가 슬레이브에게 데이터를 보내는 것이 목적이라면 마스터가 받은 수신 데이터는 무시하면 되며, 반대로 마스터가 슬레이브로부터 데이터를 가져오는 것이 목적이라면 슬레이브에게 더미 데이터를 송신하면서 수신된 데이터를 읽으면 된다.
 SPI 직렬통신 포트에서는 각각의 통신 채널마다 4개씩의 신호가 사용되는데, MOSI(Master-Out Slave-In) 신호는 마스터에서 서 출력되고 슬레이브로 입력되는 신호이고, MISO(Master-In Slave-Out) 신호는 마스터에서 출력되고 슬레이브로 입력되는 신호이며, SCK(Serial Clock) 신호는 마스터에 의하여 구동되는 직렬전송 클럭 신호이다. 또한 SS(Slave Select) 신호는 마스터가 여러개의 슬레이브 디바이스 중에서 마스터와 서로 데이터를 전송할 1개의 소자를 선택하는 칩선택 신호이다.

+ Recent posts