728x90
SPI(Serial Peripheral Interface)는 마이크로컨트롤러와 주변장치 간의 고속 통신을 위한 동기식 직렬 데이터 통신 표준.
SPI는 간단한 구조와 높은 데이터 전송 속도로 인해 많은 임베디드 시스템에서 널리 사용. 1980년대에 모토로라 사에서 개발.
SPI 통신의 구성 요소
- 마스터(Master): 통신을 제어하는 장치로, 클록 신호를 생성.
- 슬레이브(Slave): 마스터와 통신하는 장치로, 여러 슬레이브가 존재 가능.
- 클록(CLK): 마스터에서 생성하는 신호로, 데이터 전송의 속도를 결정.
- MOSI (Master Out Slave In): 마스터에서 슬레이브로 데이터를 보내는 라인.
- MISO (Master In Slave Out): 슬레이브에서 마스터로 데이터를 보내는 라인.
- SS (Slave Select): 특정 슬레이브를 선택하기 위해 사용되는 신호.
SPI 통신의 작동 원리
- 클록 신호 생성: 마스터가 클록 신호를 생성하여 데이터 전송 타이밍을 맞춤.
- 데이터 전송: 마스터는 MOSI 라인을 통해 데이터를 슬레이브로 전송하고, 슬레이브는 MISO 라인을 통해 데이터를 마스터로 보냄.
- 슬레이브 선택: SS 신호를 통해 마스터는 특정 슬레이브를 선택하여 통신을 시작.
SPI의 주요 특징
- 동기식 통신: 클록 신호를 사용하여 데이터 전송을 동기화.
- 다중 슬레이브 지원: 하나의 마스터에 여러 슬레이브를 연결 가능.
- 빠른 데이터 전송 속도: 높은 전송 속도를 지원하며, 일반적으로 I2C보다 빠름.
- 단순한 하드웨어 구조: 비교적 간단한 하드웨어 구성으로 구현 쉬움.
SPI 통신의 장점과 단점
장점:
- 높은 데이터 전송 속도
- 간단한 프로토콜 구조
- 풀 이중 통신 가능
단점:
- 많은 핀을 사용(특히 다중 슬레이브 사용 시)
- 마스터와 슬레이브 간의 물리적 거리가 짧아야 함
- 슬레이브 장치 수가 증가할수록 복잡해짐
SPI 통신의 동작 모드
4가지 동작 모드가 있음. 사용하는 IC칩의 데이터시트 Timing Diagram을 확인하고 설정할 것.
SPI 모드 | 위상반전(CPOL) | 위상지연(CPHA) |
0 | 정상(0) | 즉시(0) |
1 | 정상(0) | 지연(1) |
2 | 반전(1) | 즉시(0) |
3 | 반전(1) | 지연(1) |
데이터 프레임
1 :1 통신 결선도
1 : N 통신 결선
SPI 하드웨어 구성의 주요 고려 사항
- 클록 속도: SPI 클록 속도는 마스터에서 설정, 슬레이브는 이 클록 속도에 맞춰 동작. 너무 높은 클록 속도는 데이터 오류를 유발.
- 전압 레벨: 마스터와 슬레이브 간의 전압 레벨이 호환되는지 확인. 레벨 시프터(level shifter)가 필요한 경우도 있음.
- 신호 무결성: 긴 배선이나 노이즈 환경에서는 신호 왜곡이 발생할 수 있으므로, 신호 무결성을 유지하기 위한 적절한 회로 설계 필요.
- SS 신호 관리: 마스터는 여러 슬레이브 중 하나를 선택할 때 정확하게 SS 신호를 관리해야 함. SS 신호가 잘못 관리되면 데이터 충돌이 발생.
728x90