로딩
티스토리 데이터 처리 중입니다.

SPI 통신

 SPI 통신

SPI 통신은 동기식 직렬 통신으로 SCLK, MOSI, MISO, SS/CS의 4선으로 구성된다. 마스터가 SCLK를 생성해 클럭에 맞춰 MOSI로 데이터를 보내고 MISO로 데이터를 받으며, SS/CS를 통해 특정 슬레이브를 활성화한다. 데이터 전송은 Full Duplex로 한 클럭 펄스마다 MOSI와 MISO가 각각 전송되며 속도는 수 Mbps 이상으로 구현 가능하다. 하나의 마스터가 여러 슬레이브를 두려면 각 슬레이브에 독립된 CS 신호가 필요하고 신호 엣지에 대한 CPOL과 CPHA 설정이 중요하다. SPI의 전형적인 특징은 고속성과 단순한 구조, 독립된 CS 라인으로 인한 충돌 감소이며, 시스템 설계 시 CPOL/CPHA에 따라 모드가 결정된다.

장점으로는 수십 MHz까지의 고속 통신이 가능하고, Full-Duplex로 송수신이 동시에 이뤄지며, 구조가 비교적 단순하고 버스 충돌이 적다. 또한 슬레이브를 확장할 때 CS 신호만 추가하면 되며 하드웨어와 소프트웨어 설계가 비교적 용이하고 유연한 확장이 가능하다. 반면 단점으로는 핀 수가 증가하고 슬레이브 수가 늘어날수록 CS 핀이 늘어나 마스터 핀 수가 증가하는 점이 있다. 거리는 수 m 이내로 제한되며 신호 감쇠와 크로스토크 위험이 존재하고, 표준이 부재한 경우 장비 제조사마다 SPI 모드가 달라 버스 공유나 다중 마스터 구현이 어렵다.

SPI 버스 설계 시 주의할 점으로 풀업/풀다운 저항은 신호 무결성에 영향을 미친다. CS 라인은 기본적으로 HIGH 상태로 유지하는 풀업이 필요하며 MOSI/MISO 라인에서도 필요 여부가 회로 설계에 따라 달라진다. 신호 반사를 줄이기 위한 종단 저항은 SCLK, MISO, MOSI에 22Ω에서 100Ω 사이를 직렬로 삽입하는 것이 권장되며, 송신단 근처에 종단 저항을 배치해 링잉을 억제하는 것이 바람직하다. CPOL과 CPHA의 네 가지 모드는 Mode 0에서 Mode 3까지 구분되며 idle 상태의 클럭 전압과 샘플링 엣지가 다르게 설정된다. 이러한 모드 선택은 데이터 샘플링 타이밍과 설계의 호환성에 직접적으로 영향을 준다.

원문 링크 : SPI 통신