1. SPI (Serial Peripheral Interface) 또는 SSI (Synchronous Serial Interface)
ㅇ 단거리용 동기식 전이중 직렬 통신 방식
- 주변장치 연결 또는 임베디드시스템 내부 모듈 간 직렬 연결
ㅇ 1980년대 Motorola/Freescale社에서 개발
- 공식 표준이 아니라 사실 표준(de facto standard)이므로, 제조사별로 다양한 변형 존재
. 핀 수, 핀 이름, 동작 방식 등에서 차이 있음
2. SPI의 특징
ㅇ 짧은 거리에서, 비교적 고속으로 정보 교환 가능 (단거리, 비교적 고속)
ㅇ 동기식 직렬 전이중 전송 방식
- 별도의 클럭 신호선 (동기식)
- 송수신 가닥선 분리 (전이중)
- 1 가닥 선으로, 1 비트씩 처리하되, 바이트,워드 등 그룹 단위로 묶어서, 전송 (직렬)
3. SPI의 통신 형태
ㅇ 1:多 통신
- 1개 마스터 (연결 시작 및 제어) 만으로, 여러 슬레이브들을 연결 가능
. 즉, 특정 순간에, 1:1 통신 (마스터 및 선택된 슬레이브 간)
. 단, I2C는, 여러 마스터가 허용됨
- 슬레이브 장치 선택/지정을 위해,
. 추가되는 각 슬레이브 장치별로, 슬레이브 선택 선이 추가되어야 함
ㅇ 전이중 전송 방식
- 송수신 가닥선 분리
ㅇ 최소 4개 선 사용 (송신선,수신선,동기선,제어선)
- 2개 데이터 선 (MOSI,MISO)
. 송수신 전송선 분리되어 전이중 전송 가능
.. MOSI : 마스터 → 슬레이브 (Master Out, Slave In)
.. MISO : 슬레이브 → 마스터 (Master In, Slave Out)
. 통상, MSB 부터 먼저 송신 함 ☞ 빅 엔디안 참조
- 1개 클럭선 별도 제공 (SCLK, Serial Clock 또는 SPI Clock)
. 마스터에서 클럭 공급
. 최대 40 Mbps 지원
- 1개 마스터에 의한 슬레이브 선택 선 (SS, Slave Select)
. 선택된 슬레이브 장치의 신호값 : Low 값 유지
. 선택되지 않는 슬레이브 장치의 신호값 : High 값 (하이임피던스) 유지
ㅇ 풀업 저항 필요없음
- I2C 경우, 풀업 저항 연결 필요
3. SPI의 버스 구성
ㅇ 개별적인 슬레이브 연결 구성 방식
- 각 슬레이브를 슬레이브 선택 선들로 일일이 개별 지정
ㅇ 데이지 체인 연결 구성 방식
- 일련의 슬레이브들을 연이어 연결
. 이전 슬레이브의 출력 MISO를 다음 슬레이브의 입력 MOSI에 연결
. 마스터는, 맨 마지막 슬레이브에 대한 데이터 부터 차례차례 송신하고,
. 각 슬레이브는, 입력 데이터를 다음 슬레이브에게 시프트 전송하게 됨