본문으로 이동

직렬 주변기기 인터페이스 버스

위키백과, 우리 모두의 백과사전.

SPI 버스: 싱글 마스터와 싱글 슬레이브

직렬 주변기기 인터페이스 버스(Serial Peripheral Interface Bus) 또는 SPI 버스는 아키텍처 전이중 통신 모드로 동작하는 모토로라 아키텍처에 이름을 딴 동기화 직렬 데이터 연결 표준이다. 장치들은 마스터 슬레이브 모드로 통신하며 여기서 마스터 장치는 데이터 프레임을 초기화한다. 여러 슬레이브 장치들은 개별 슬레이브 셀렉트 (칩 셀렉트) 라인과 함께 동작할 수 있다.

인터페이스

[편집]

SPI 버스는 4가지 논리 신호를 지정한다:

  • SCLK: 직렬 클럭 (마스터로부터의 출력)
  • MOSI; SIMO: 마스터 출력, 슬레이브 입력 (마스터로부터의 출력)
  • MISO; SOMI: 마스터 입력, 슬레이브 출력 (슬레이브로부터의 출력)
  • SS: 슬레이브 셀렉트 (active low, 마스터로부터의 출력).

그 밖의 호환되는 이름으로는 다음과 같이 쓰인다:

  • SCLK - SCK; CLK: 직렬 클럭 (마스터로부터의 출력)
  • MOSI - SDI; DI, DIN, SI: 직렬 데이터 입력; 데이터 입력, 직렬 입력
  • MISO - SDO; DO, DOUT, SO: 직렬 데이터 출력, 데이터 출력, 직렬 출력
  • SS - nCS, CS, CSB, CSN, nSS, STE: 칩 셀렉트, 슬레이브 전송 기능 이용 (active low, 마스터로부터의 출력)

통신 개요

[편집]

마스터가 SS를 통해 신호를 전송할 슬레이브를 선택한다. 마스터는 MOSI를 통해서 SCLK에 동기화된 신호를 전송한다. 슬레이브는 SS을 통해서 신호를 수신할 수 있게 활성화되어 있는 상태에서 자신(슬레이브)의 MOSI를 통하여 전달되는 신호를 SCLK 에 맞춰 수신한다. SCLK에 동기화된 MOSI 신호는 8비트나 16비트, 또는 그 이상의 비트로 조합되어 유의미한 데이터로 사용된다.

SPI를 사용하여 통신하는 프로토콜은 몇 가지 인터페이스로 나뉜다.

  • 모토로라 SSP 호환 인터페이스
    • 전이중, four-wire 동기 전송
    • 프로그래밍 가능한 clock polarity 및 phase
  • 내셔널 세미컨덕터 마이크로와이어 인터페이스
    • 8비트 제어 메시지를 이용한 반이중 전송
  • 텍사스 인스트루먼츠 동기 직렬 인터페이스
    • 전이중, four-wire 동기 전송
    • Transmit data pin tristateable when not transmitting.

모토로라 SSP 호환 인터페이스는 Polarity와 Phase로 신호를 서로 송신하는 프로토콜이 조절할 수 있다. Polarity와 Phase를 조합하면 4가지 방식이 가능하다.

  1. Motorola SSP Format with SPO=0, SPH=0
  2. Motorola SSP Format with SPO=0, SPH=1
  3. Motorola SSP Format with SPO=1, SPH=0
  4. Motorola SSP Format with SPO=1, SPH=1

SPO(Signal Polarity)와 SPH(Signal Phase)변경하면 다음과 같은 약속의 효과가 있다.

  1. polarity Control 설정이 LOW인 경우 SCLK가 LOW 인 구간에 의미있는 신호가 출력된다.
  2. polarity Control 설정이 HIGH인 경우 SCLK가 HIGH 인 구간에 의미있는 신호가 출력된다.
  3. phase control 설정이 LOW인 경우 SCLK가 첫 번째 변화(엣지)시점에서 신호를 수신(Capture)한다.
  4. phase control 설정이 HIGH인 경우 SCLK가 두 번째 변화(엣지)시점에서 신호를 수신(Capture)한다.

사례

  1. SPO가 0, SPH가 1인경우

SPI CLOCK가 LOW상태에서 SS가 HIGH에서 LOW가 되고 SPI_CLOCK이 HIGH로 올라가면서 동시에 MOSI가 활성화된다. SPI CLOCK 이 절반나갔을 때부터 유효 데이터로 인정되고 SPI CLOCK 이 떨어지는(폴링엣지)시점에 의미있는 신호가 데이터로서 수신된다(Capture)

  1. SPO가 1, SPH가 1인경우

SPI CLOCK가 HIGH상태에서 SS가 HIGH에서 LOW가 되고 SPI_CLOCK이 LOW로 떨어지면서 동시에 MOSI가 활성화된다. SPI CLOCK 이 절반나갔을 때부터 유효 데이터로 인정되고 SPI CLOCK 이 올라가는(라이징엣지)시점에 의미있는 신호가 데이터로서 수신된다(Capture)

모드 번호

[편집]
모드 CPOL CPHA
0 0 0
1 0 1
2 1 0
3 1 1

SPI의 장단점

[편집]

장점

[편집]
  • 완전한 전이중 통신
  • 전송되는 비트에 대한 완전한 프로토콜 유연성
  • 전송기가 필요하지 않음
  • 매우 단순한 하드웨어 인터페이스 처리
  • IC 패키지에 4개의 핀만 사용하며 이는 병렬 인터페이스에 비해 수가 적은 것이다.

단점

[편집]
  • 하드웨어 슬레이브 인식이 없음
  • 슬레이브에 의한 하드웨어 흐름 제어가 없음
  • 오류 검사 프로토콜이 정의되어 있지 않음
  • 일반적으로 노이즈 스파이크에 영향을 받는 경향이 있음 (통신 문제를 일으킬 수 있음)
  • RS-232, RS-485, CAN 버스보다 비교적 더 짧은 거리에서 동작
  • 하나의 마스터 장치만 지원

같이 보기

[편집]
관련 단자

외부 링크

[편집]