아두이노/이론

SPI통신 아두이노와 오실로스코프로 확인해보기 1편

원원 2021. 11. 21. 09:35

안녕하세요. 오늘은 SPI통신에 대해 알아보겠습니다.

SPI란 Serial Peripheral Interface의 약자입니다.  특징으로는 데이터를 동시에 보내고 받을 수 있는 전이중 모드를 지원하는 동기식 직렬 통신 인터페이스입니다. UART및 I2C보다 훨씬 빠르고 높은 데이터 전송속도 (8>Mbits)를 지원합니다. SPI에서는 데이터/클럭 라인이 장치 간에 공유되더라도 각 장치에는 고유한 주소 와이어가 있습니다. 

SPI통신은 마스터가 1개이고 슬레이브가 여러개입니다. 적어도 최소한 4개의 포트가 필요합니다.

MOSI는 Master Output Slave Input의 약자입니다. 마스터에서 슬레이브로 데이터를 전송할때 사용합니다.

MISO는 Master Input Slave Output의 약자입니다. 슬레이브로부터 마스터가 데이터를 전송받을때 사용합니다.

SCLK는 Serial Clock의 약자입니다. 데이터를 전송시켜주는 기준입니다.

SS/CS는 Slave Select의 약자입니다. 일반적으로 SS/CS LOW인경우, 통신을 합니다. 슬레이브가 여러개일경우 SS/CS포트가 늘어납니다.

*사용방법
1) 마스터가 슬레이브에게 SS/CS 신호를 Low를 출력합니다.
2) 마스터가 슬레이브에게 SCK 신호를 출력합니다.
3) 시프트 레지스터에 저장한 데이터를 MOSI 단자로 출력합니다.
4) MISO 단자를 통해 슬레이브가 보낸 데이터를 수신합니다.
5) 전송이 끝나면 마스터는 SS/CS신호를 High로 하여 슬레이브의 동작을 정지시킵니다.

 

*장점
1) UART및 I2C에 비해 빠른 프로토콜입니다.
2) UART와 달리 시작 및 정지 비트가 없으므로 중단 없이 데이터를 지속적으로 전송할 수 있습니다.
3) MISO와 MOSI 라인을 분리하여 데이터를 동시에 송수신 가능합니다.

 

*단점
1) 슬레이브가 늘어날수록 더 많은 핀이 필요하게 됩니다.
2) 지정된 흐름제어가 없으며 I2C와 달리 데이터 수신 여부를 확인하는 승인 메커니즘이 없습니다.
3) UART와 달리 오류 검사 형식이 없습니다.

*특징
1) 마스터에서 데이터를 읽을 때 데이터를 전송하고 읽어야 합니다. 왜냐하면 클럭발생은 마스터에서만 할 수 있기 때문입니다.

 

2편 : https://wowon.tistory.com/276