여러 장치 간의 연결을 단순화하기 위해 SPI를 사용하는 이유 및 방법
DigiKey 북미 편집자 제공
2019-02-14
내장형 시스템은 하나 이상의 프로세서 또는 마이크로 컨트롤러를 사용하여 더 복잡한 시스템 내에서 특수 작업을 실행합니다. 이러한 내장형 컨트롤러는 다른 시스템 부품, 센서 및 다른 컨트롤러와 통신해야 합니다. 복합 직렬 인터페이스 및 프로토콜은 특히 통신하는 장치의 수가 적을 경우 프로그래밍 및 문제 해결이 지나치게 까다로울 수 있습니다.
설계자는 고속의 임의 길이 데이터를 처리할 수 있으며 복잡한 프로토콜 관련 프로그래밍 작업이 없는 단순한 장치 간 디지털 인터페이스를 사용하는 마이크로 컨트롤러, 주변 장치 및 센서를 필요로 합니다.
이에 대한 간단한 솔루션은 컨트롤러를 소수의 로컬 주변 장치 IC 또는 센서에 인터페이스하는 솔루션인 SPI를 갖춘 컨트롤러를 선택하는 것입니다. 이 인터페이스는 하드웨어 주소 지정을 사용하며 최대 50MHz의 클록 속도로 작동하는 단순한 동기식 인터페이스입니다. SPI는 주소 지정 및 상태 확인이 필요한 복잡한 프로토콜을 사용하지 않습니다. 그보다는 더 복잡한 인터페이스 버스의 프로그래밍 오버헤드가 없는 빠른 데이터 전송용 기본 인터페이스라고 할 수 있습니다.
이 기사에서는 여러 작동 모드를 포함한 SPI 인터페이스의 기본 사항을 다룹니다. 그런 다음 SPI 인터페이스를 갖춘 마이크로 컨트롤러 및 기타 장치를 소개하고 이를 적용하는 방법을 보여 줍니다.
SPI란?
SPI는 1985년경 Motorola(현재는 NXP Semiconductors의 일부)에서 개발했습니다. SPI는 단거리 장치 간 통신을 위한 동기식 직렬 인터페이스입니다. 그 후 특히 마이크로 프로세서 및 마이크로 컨트롤러 분야의 많은 반도체 제조업체에서 채용하는 사실상 표준이 되었습니다.
SPI가 인기를 끈 이유는 장점이 매우 많기 때문입니다. 첫 번째 장점은 하드웨어 주소 지정된 인터페이스가 단순하기 때문에 전송되는 비트 수에 대한 완전한 유연성이 제공된다는 점입니다. 마스터가 하나인 마스터-슬레이브 모델을 사용하며 최대 50MHz의 클록에서 작동하는 전이중 통신을 사용하여 여러 슬레이브 장치를 처리할 수 있습니다. 표준 프로토콜을 사용하지 않으며 데이터 패킷만 전송하므로 긴 데이터 스트림의 전송에 적합합니다.
SPI는 최대 네 개의 신호 회선을 사용합니다(그림 1). 일반적으로 프로세서 또는 컨트롤러인 마스터 장치가 클록(SCK) 및 칩 선택(CS) 회선을 공급 및 제어합니다. 전체 다중화 작동은 데이터 회선 MOSI(Master Out Slave In) 및 MISO(Master In Slave Out)로 처리됩니다. 간단한 단일 마스터, 단일 슬레이브 구성에서는 칩 선택 회선을 제거하고 슬레이브에 대한 CS 입력이 활성화된 로직 조건으로 강제 지정할 수 있습니다. 슬레이브 장치가 데이터 전송만 가능한 경우(반이중 통신) MOSI 회선도 제거하여 신호 수를 더 줄일 수 있습니다. 데이터는 데이터 전송이 각 클록에 대해 1비트가 시프트 아웃되는 시프트 레지스터와 비슷한 방식으로 클록 신호에 의해 클록 아웃됩니다.

그림 1: 기본 SPI 전이중 연결은 두 개의 데이터 회선(MOSI, MISO), 클록 회선(SCK) 및 칩 선택 회선(CS)을 사용합니다. 슬레이브의 MOSI는 경우에 따라 SDI(Slave Data In)로 레이블 지정됩니다. MISO는 SDO(Slave Data Out)로 레이블 지정될 수 있습니다. (그림 출처: DigiKey)
여러 슬레이브 장치를 처리하는 방법에는 두 가지가 있습니다(그림 2).

그림 2: 다중 슬레이브 인터페이스를 처리하기 위한 두 가지 구성 직접 연결에는 각 슬레이브에 대한 칩 선택이 필요합니다. 데이지 체인 연결은 단일 칩 선택을 사용하며 모든 데이터를 하나의 회선에 결합합니다. (그림 출처: DigiKey)
직접 연결은 각 슬레이브 장치에 대해 칩 선택 회선을 사용합니다. 대부분의 마이크로 컨트롤러에는 3~4개의 칩 선택 회선이 있습니다. 이로 인해 최대 슬레이브 수가 칩 선택 회선의 수로 제한됩니다. 대개이 경우 이 점은 문제가 되지 않지만, 설계에 따라 버스에 더 많은 장치가 필요한 경우 데이지 체인 방식을 사용하여 구성할 수 있습니다. 데이지 체인을 사용하면 여러 슬레이브 장치에 공통 칩 선택이 사용되며 데이터는 공통 데이터 회선에서 스트리밍됩니다. SPI 슬레이브 장치의 모델을 시프트 레지스터로 사용하면 슬레이브의 데이터가 직렬 멀티플렉싱된 스트림으로 전파됩니다.
SPI 클로킹 모드
마스터가 클록을 제어 및 생성합니다. 두 개의 클록 특성은 클록 극성(CPOL) 및 클록 위상(CPHA)입니다. 이 두 가지는 슬레이브 장치가 데이터에 상대적으로 클로킹되는 활성 클록 에지를 제어합니다. CPOL = 0은 클록을 로직 0에서 유휴 상태로 설정합니다. CPOL = 1은 로직 1에서 유휴 상태인 클록이 있습니다. CPHA = 0은 전연에서 클로킹되는 데이터가 있고 CPHA = 1은 후연에서 클로킹된 데이터가 있습니다(그림 3).

그림 3: SPI 클로킹 모드 선택은 데이터가 샘플링되는 활성 클록 에지를 고정합니다. (그림 출처: DigiKey)
마스터의 CPOL 및 CPHA 회선이 데이터 클로킹을 위한 활성 에지 및 클록 극성을 결정합니다. 모드 1이 가장 널리 사용되지만, 설계자는 다른 세 모드에 동등하게 액세스할 수 있습니다.
SPI 전송의 세 신호 구성 요소는 오실로스코프에서 관찰할 수 있습니다(그림 4). 이 예시에서는 8비트 데이터 패킷이 전송되고 있습니다. SPI 직렬 디코딩 옵션이 적용된 Teledyne LeCroy의 HDO4104A 오실로스코프를 사용하여 전송이 관찰됩니다.

그림 4: 직렬 디코딩 옵션이 적용된 Teledyne LeCroy HDO4104A 오실로스코프에서 본 SPI 교환의 예 파형은 다음과 같습니다. 위쪽 트레이스는 데이터 회선이고 중간 트레이스는 클록이며 아래쪽 트레이스는 칩 선택입니다. 데이터 트레이스의 파란색 오버레이는 디코딩된 콘텐츠를 16진수로 보여 줍니다. (그림 출처: DigiKey)
모드 1 클록은 유휴가 0으로 설정되고(CPOL = 0), 데이터가 후연 또는 하강 에지에서 클로킹되는(CPHA = 1) 8개의 펄스 그룹으로 구성됩니다. 이 예시에서 사용된 오실로스코프에는 데이터 콘텐츠를 디코딩하는 직렬 디코딩 옵션이 있습니다. 데이터 콘텐츠는 데이터 트레이스의 파란색 오버레이에서 16진수로 읽습니다. 디코딩은 칩 선택 회선이 어설션되는 동안 발생하는 데이터와만 관련됩니다(레벨 0). 총 17개의 클록 버스트가 있지만, 그중 5개만 활성 칩 선택 상태에 해당합니다.
파형 표시 그리드 아래의 표에는 각 패킷에 대한 오실로스코프 트리거에 상대적인 시간과 활성 데이터 콘텐츠 그리고 측정된 클록 비율(이 경우 100kbits/s)이 나열되어 있습니다. 각 버스트의 클록 주기 수는 슬레이브 장치에서 클로킹되는 데이터 비트 수를 설정합니다.
마이크로 프로세서 I/O 선택
Microchip Technology ATtiny816-MNR은 여러 I/O 인터페이스를 지원한다는 점에서 여러 마이크로 컨트롤러와 유사합니다(그림 5). 이 특정 컨트롤러는 고성능 저전력 AVR® RISC 아키텍처를 사용하며 최대 20MHz에서 실행할 수 있습니다. 최대 4Kb 또는 8Kb 플래시, 256바이트 또는 512바이트의 SRAM 및 128바이트의 EEPROM이 모두 20핀 패키지에서 지원됩니다.

그림 5: I/O 포트가 강조 표시된 Microchip Technology ATtiny816 마이크로 컨트롤러 제품 구성도 이 컨트롤러에는 SPI 포트와 USART 포트가 모두 포함되며 후자는 보조 SPI로 구성할 수 있습니다. (그림 출처: Microchip Technology)
인터페이스 측에서, 마이크로 컨트롤러에는 USART(Universal synchronous and asynchronous receiver transmitter), I2C 호환 TWI(Two-wire interface) 및 SPI가 포함됩니다. USART는 보조 SPI 포트로 구성할 수 있습니다.
SPI는 AVR 장치와 주변 장치 또는 여러 마이크로 컨트롤러 간의 전이중 통신을 허용합니다. SPI 주변 장치는 마스터 또는 슬레이브로 구성할 수 있으며 이에 따라 마이크로 컨트롤러 간의 통신이 가능합니다.
SPI 기반 센서
SPI를 통합하는 많은 수의 마이크로 프로세서 및 마이크로 컨트롤러를 보완하는 것은 SPI를 통해 디지털 데이터를 제공하는 다양한 센서입니다. 예를 들어 Microchip Technology의 TC77-3.3MCTTR 디지털 온도 센서는 소형 폼 팩터, 저비용 응용 분야를 위한 직렬 액세스 가능 디지털 온도 센서입니다. TC77은 -55°C ~ +125°C의 온도 범위를 지원합니다. 2.7V ~ 5.5V 공급을 지원하며, 작동 시 250A를 소비하며 1A를 소비하는 저전력 종료 모드가 있습니다.
일반적인 응용 분야에서 온도 센서는 표준 SPI 연결을 통해 프로세서에 연결됩니다. 온도 데이터의 형식은 그림 6에서처럼 13비트 디지털 워드로 지정됩니다.

그림 6: Microchip Technology의 TC77은 작고 저렴하며 사용하기 쉬운 온도 센서입니다. 컨트롤러 또는 프로세서에 빠르게 연결 가능하며 온도 판독치를 13비트 디지털 워드로 전송합니다. 타이밍 구성도에서 볼 수 있는 것처럼 CS 회선을 로직 0으로 어설션하여 통신이 초기화됩니다. (그림 출처: Microchip Technology)
그림은 T77의 온도 레지스터의 읽기 동작에 대한 타이밍 구성도입니다. CS 회선을 로직 0에 어설션하여 통신이 초기화됩니다. 그런 다음 센서가 데이터의 첫 번째 비트를 전송합니다. 마이크로 컨트롤러는 SCK의 상승 에지에서 데이터를 읽습니다. 그런 다음 SCK의 하강 에지가 사용되어 센서로부터 데이터 나머지를 클로킹합니다. 이전 예와 같은 모드 1 전송이지만 데이터 워드가 더 깁니다.
SPI의 범위 확장
여러 IC 제조 업체는 많은 마이크로 프로세서 및 마이크로 컨트롤러에 SPI를 포함했을 뿐 아니라 버스의 기능을 확대했습니다. Analog Devices의 LTC6820 isoSPI 절연 통신 인터페이스가 그 좋은 예입니다. 이 IC는 차동 신호를 사용하여 단일 연선 연결을 통해 통신하는 두 SPI 장치 간의 전기적 분리를 제공합니다(그림 7). 이 신호 모드는 LTC6820의 SPI 인터페이스의 사용 가능 범위를 최대 100m로 확장합니다. 다만 클록 속도는 10m 거리에서 정격 속도 1Mbit/s보다 낮아집니다.

그림 7: LTC6820 절연기 쌍은 두 SPI 장치 간에 전기적 분리를 제공합니다. IC는 최대 10m 거리에서 최대 1Mbit/s, 최대 100m 거리에서는 감소된 클록 속도의 데이터 전송을 지원합니다. (이미지 출처: Analog Devices)
절연은 펄스 변압기를 통해 제공되는데 이 기술은 산업 네트워킹 응용 분야 및 원격 센서 읽기에 사용되기도 합니다.
결론
SPI는 위치 주소 지정을 위한 데이터 읽기 및 쓰기와 반대로 소스를 데이터 스트림으로 기술할 수 있는 응용 분야에서 간단하고 저렴하며 오버헤드가 낮은 인터페이스에 대한 필요성을 충족합니다. 마이크로 컨트롤러와 센서, 디지타이저, 디지털 신호 처리 장치 및 기타 프로세서 간의 장치 간 통신을 처리하는 데 이상적입니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.


