카이로스의 시간

SPI 통신이란 본문

Embedded SW

SPI 통신이란

차녕 2023. 9. 18. 19:14

SPI(Serial Peripheral Interface Bus)는 Embedded system에서 많이 사용하는 통신 인터페이스입니다. 주로 단거리 장치간 통신을 위해 사용되고, MCU Control 분야에서 많은 반도체 업체에서 표준으로 채택되고 있습니다. 이 SPI 통신은 매우 간단하며 효율적인 구성을 갖고 있습니다. 또, 전이중 통신, 비교적 낮은 소비전력 등 많은 장점들이 있습니다.

 

 

구성

  • SPI는 4가지의 논리 신호를 사용합니다.
    • CS: Chip Select (active low, Main -> Sub, 데이터 전송 시작에 사용)
    • SCLK: 직렬 클럭 (Main -> Sub)
    • MOSI: 데이터 전송(Main -> Sub)
    • MISO: 데이터 전송(Sub -> Main)

동작

  • SPI는 기본 장치로 동작하는 Main 장치와 하나 이상의 Sub 장치로 작동합니다.
  • Main의 MOSI에서 Sub의 MOSI로 데이터가 전송됩니다.
  • Sub의 MISO에서 Main의 MISO로 데이터가 전송됩니다.
  • 데이터 전송:
    • 통신을 시작하려면 SPI Main이 먼저 CS를 low로 해서 Sub 장치를 선택합니다.
    • Main, Sub는 장치 각각에서 1clock 마다 1bit의 데이터 전송이 발생합니다.(Main은 MOSI, Sub는 MISO로 1bit의 데이터를 보냅니다.)
    • 데이터는 일반적으로 Main의 MSB(최상위 비트)부터 먼저 이동합니다.
    • 이후 수신기에서는 전송된 비트를 샘플링해서 shift register의 최하위 비트에 저장합니다.

 

적용

  • SPI는 기본적으로 다양한 peripheral과 통신하기위해 사용합니다.
    • 각종 센서: 온도, 압력, ADC, 터치 스크린
    • 제어 장치: 오디오 코덱, 디지털 전위차계, DAC
    • 통신: 이더넷, USB, CAN
    • 메모리: 플래시 및 EEPROM
    • MMC, SD Card 등