SPI 대 UART: 어떤 프로토콜을 사용해야 합니까?

개요

SPI 및 UART는 단순한 마이크로컨트롤러에서 복잡한 마이크로컨트롤러에 이르기까지 모든 것에 사용됩니다. 산업 장비. 두 장치를 연결하려는 경우 둘 중 하나를 선택해야 합니다.

이 기사에서는 SPI와 UART를 비교하여 프로젝트에 적합한 프로토콜을 결정하는 데 도움을 드립니다.

SPI

SPI

SPI(Serial Peripheral Interface)란 무엇입니까?

Serial Peripheral Interface의 약자입니다. 이것은 두 장치가 서로 통신할 수 있도록 하는 통신 프로토콜입니다.

일반적으로 마이크로컨트롤러와 메모리 칩 간의 통신에 사용됩니다. 또한 일반적으로 다음과 같은 주변 장치를 연결하는 데 사용됩니다. 센서 또는 표시합니다.

SPI는 직렬 프로토콜이기 때문에 하나의 와이어(또는 라인)만 사용하여 데이터를 전송합니다. 이는 유선으로 전송되는 데이터가 한 번에 한 비트만 전송됨을 의미합니다. 대부분의 경우 이 직렬 전송은 매우 빠르게 발생합니다.

또한 다양한 애플리케이션에서 사용할 수 있을 만큼 충분히 다재다능합니다. 예를 들어 플래시 드라이브를 컴퓨터에 연결하기 위해 SPI를 사용할 수 있습니다. 컴퓨터 또는 아마도 연결 LCD Arduino 보드에 표시합니다.

SPI 와이어

SPI 와이어

SPI 와이어

이 프로토콜을 사용하면 두 장치가 서로 정보를 보낼 수 있습니다. SPI 프로토콜은 XNUMX개의 와이어로 구성됩니다.

미소

MISO는 마스터 인 슬레이브 아웃을 의미합니다. 이것은 두 개의 SPI 장치 간에 통신하는 방법입니다.

MISO 와이어는 양방향 신호 라인입니다. 동기식 통신 시스템에서 마스터와 슬레이브 장치 간의 데이터 교환을 제공합니다. 이 와이어는 마스터 장치에서 슬레이브 장치로 데이터를 전송하는 데 사용되며, 마스터 장치가 슬레이브 장치에서 데이터를 수신할 수 있도록 합니다.

SS/CS

통신 중인 장치가 현재 선택되어 있는지 여부를 제어합니다. SS/CS 라인은 이러한 공유 라인 중 하나입니다. 통신하려는 버스의 장치를 선택하는 데 사용할 수 있습니다.

SS 핀은 일반적으로 HIGH로 풀링되고 CS 핀은 로우로 풀링됩니다. SPI의 경우 이러한 신호는 오픈 드레인입니다. 그것들을 낮게 구동할 수 있으려면 저항으로 끌어올려야 합니다. 예를 들어, 4비트 버스에서 사용하려는 8비트 칩 선택이 있는 경우 이러한 4개의 칩 선택을 모두 함께 묶고 단일 풀업 저항.

SCK

시프트 클록이라고도 하는 직렬 클록 라인은 마이크로컨트롤러와 SPI 장치 간의 데이터 전송을 동기화하는 데 사용됩니다. 데이터가 장치 안팎으로 이동하는 속도를 결정하는 연속 클록 신호입니다.

이 클록 신호는 SPI 버스의 다른 모든 신호를 동기화하는 데 사용됩니다. 일반적으로 마스터 장치의 전용 핀에 연결됩니다. 그만큼 주파수 이 클록 신호의 1MHz보다 크거나 같아야 합니다.

모시

MOSI 신호는 컴퓨터의 마이크로컨트롤러가 SPI 주변 장치로 데이터를 보내야 함을 알립니다. 그런 다음 이를 읽고 자체 주변 장치로 보냅니다.

데이터 전송의 세계에서 직렬 인터페이스는 한 번에 XNUMX비트의 정보가 순차적으로 전송됨을 의미합니다. 마스터 장치에서 데이터를 전송하고 가져 와서 슬레이브 장치로 보냅니다.

UART

UART

UART(Universal Asynchronous Receiver Transmitter)란 무엇입니까?

두 장치 간에 데이터를 전송하는 표준 방법입니다. 소비자 장치에서 산업용 장비에 이르기까지 다양한 유형의 전자 장치에 사용됩니다.

다양한 유형의 장치 및 프로토콜과 통신하는 데 사용할 수 있기 때문에 "보편적"이라고 하며, 발신자와 수신자가 서로 동기화할 필요가 없기 때문에 "비동기성"이라고 합니다. t 정기적인 간격으로 데이터 비트를 보내도록 요구합니다.

UART는 컴퓨터나 다른 장치에서 입력을 받아 동일한 프로토콜을 사용하여 다른 장치로 보냅니다. 즉, 직렬 포트가 있는 컴퓨터가 있는 경우 이 포트를 사용하여 다른 컴퓨터나 장치에 연결하고 유선 또는 무선으로 두 장치가 동일한 프로토콜을 지원하는 한.

SPI와 UART 유사점

둘 다 마이크로 컨트롤러와 주변 장치 간의 통신에 사용됩니다. 두 프로토콜 모두 동일한 원칙을 기반으로 합니다.

직렬 통신

직렬 통신

이중 직렬 통신

이러한 프로토콜은 모두 이중 직렬 통신을 사용합니다. 즉, 동시에 데이터를 송수신할 수 있으므로 랩톱이 프린터와 통신하는 것처럼 동시에 다른 작업을 수행하면서 서로 통신할 수 있어야 하는 장치에 이상적입니다.

이를 통해 SPI 및 UART 프로토콜은 다른 신호를 보내기 전에 응답을 기다릴 필요가 없기 때문에 다른 직렬 인터페이스보다 더 빠른 속도로 작동할 수 있습니다.

근거리 통신

SPI와 UART는 모두 단거리 통신에 사용됩니다. 이는 이더넷과 같은 장거리가 아닌 몇 피트를 통해 데이터를 전송한다는 것을 의미합니다. 둘 다 모터나 센서 제어와 같은 작업을 수행하는 작은 컴퓨터인 마이크로컨트롤러에 사용됩니다.

데이터 처리

SPI와 UART는 모두 유사한 데이터 처리 개념을 가지고 있습니다. 둘 다 직렬 통신 인터페이스를 사용하여 데이터를 송수신하는 수신기-송신기 장치입니다. SPI에서는 수신기가 마이크로프로세서에 연결되고 UART에서는 주변 장치에 연결됩니다. 마이크로프로세서는 SPI 버스 또는 UART 라인을 통해 고속으로 데이터 바이트를 보낼 수 있습니다.

SPI와 UART의 차이점

장치 간에 데이터를 전송할 수 있다는 점에서 유사하지만 몇 가지 주요 차이점이 있습니다.

속도

SPI는 XNUMX개의 데이터 와이어를 사용하여 데이터를 고속으로 전송하는 반면 UART는 XNUMX개만 사용하므로 SPI 프로토콜은 UART 프로토콜에 비해 훨씬 빠르게 장치와 데이터를 주고받을 수 있습니다.

데이터 속도

SPI는 최대 100MHz의 고속으로 데이터를 송수신하고 UART는 최대 20KBps의 훨씬 낮은 속도로 데이터를 송수신합니다. 즉, UART는 문자 메시지 전송과 같은 저속 애플리케이션에 사용할 수 있는 반면 SPI는 모터 또는 기타 하드웨어 장치 제어와 같은 고속 애플리케이션에 더 적합합니다.

와이어 인터페이스

와이어 인터페이스

와이어 인터페이스

SPI는 전이중 모드에서 작동하는 마스터/슬레이브 통신 프로토콜입니다. 마스터는 정보를 처리하고 응답을 반환하는 슬레이브에 정보를 제공합니다. SPI를 사용하면 동일한 버스에 여러 슬레이브를 연결하여 모두 동시에 서로 통신할 수 있습니다.

UART는 데이터 송수신을 위해 한 쌍의 와이어만 필요한 단순화된 직렬 프로토콜입니다. UART를 사용하여 동일한 버스에 여러 장치를 연결할 수 있지만 SPI에서 할 수 있는 것처럼 모든 장치가 한 번에 대화할 수 있는 방법은 없습니다.

데이터 전송

일반적으로 마이크로컨트롤러와 다른 칩 또는 주변 장치와 같은 두 장치 간의 고속 데이터 전송에 사용됩니다. 마이크로컨트롤러는 마스터 장치 역할을 하여 자체와 슬레이브 장치 간의 데이터 흐름을 제어합니다. SPI는 한 번에 여러 비트를 전송할 수 있으므로 UART보다 효율적이지만 연결 양쪽 끝에 더 복잡한 하드웨어가 필요합니다.

UART는 각 비트를 개별적으로 전송해야 하기 때문에 고속 전송에 적합하지 않습니다. 한 번에 여러 비트를 보낼 방법이 없습니다.

SPI의 장점

SPI는 다른 인터페이스 유형에 비해 다양한 이점이 있습니다. 이는 한 번에 하나씩 데이터를 전송해야 하는 직렬 통신보다 훨씬 빠릅니다. 다른 이점은 다음과 같습니다.

낮은 신호/핀 수

SPI는 낮은 신호/핀 수를 제공하므로 다른 유형의 인터페이스를 사용하는 경우보다 더 적은 수의 와이어를 사용하여 시스템을 연결할 수 있습니다. 따라서 소형 폼 팩터 장치를 보거나 공간이 제한된 경우 SPI가 특히 유용합니다.

여러 마스터 지원

여러 마스터가 서로 통신할 수 있습니다. 따라서 여러 장치가 동일한 버스를 공유하고 각각 버스에서 데이터를 주고받을 수 있는 마이크로컨트롤러에서 사용하기에 이상적입니다.

예를 들어, SPI 기반 장치는 다른 SPI 기반 장치(예: 디스플레이 또는 센서) 다른 장치가 작업을 완료했는지 여부에 대해 걱정할 필요가 없습니다.

통신용 XNUMX선

이 프로토콜은 두 개의 와이어를 사용하여 여러 장치 간에 통신을 생성합니다. SPI는 별도의 클록 및 데이터 라인을 사용하여 장치 간에 정보를 전송합니다. SPI 버스에는 마스터 장치와 하나 이상의 슬레이브 장치가 있습니다. 마스터는 MOSI 라인을 통해 직렬 형식으로 명령을 전송하는 동시에 MISO 라인의 슬레이브에 데이터를 전송함으로써 각 슬레이브와 통신할 수 있습니다.

다른 노예의 요구에 적응하십시오

SPI는 여러 슬레이브 장치를 호스트 컨트롤러에 연결해야 하는 애플리케이션에 매우 적합합니다. 임베디드 시스템 또는 컴퓨터 시스템. 이 프로토콜을 통해 슬레이브 장치는 호스트 컨트롤러의 요구에 적응할 수 있습니다. 즉, 통신 요구 사항이 다른 여러 센서를 연결하는 것과 같은 애플리케이션에 쉽게 사용할 수 있습니다.

SPI 단점

SPI에는 여러 장치를 지원하는 기능을 포함하여 많은 이점이 있지만 몇 가지 단점도 있습니다.

복잡한

SPI는 여러 장치 간의 통신을 허용하는 직렬 인터페이스입니다. SPI의 문제는 특히 혼합에 많은 장치가 있을 때 설정하기가 복잡할 수 있다는 것입니다.

SPI 장치를 연결할 때 선이 서로 간섭하지 않고 교차되지 않는지 확인해야 합니다. 이로 인해 데이터 손실 또는 센서의 잘못된 판독값과 같은 문제가 발생할 수 있습니다.

느린 속도

SPI는 다른 통신 프로토콜보다 데이터를 전송하는 데 더 많은 클록 주기가 필요하기 때문에 속도가 느립니다. 이는 많은 양의 데이터를 전송하려는 경우 문제가 될 수 있습니다. 속도가 느리면 모든 정보를 전송하는 데 시간이 더 오래 걸리기 때문입니다.

반이중 인터페이스

SPI 인터페이스는 반이중 인터페이스입니다. 즉, 장치가 데이터를 보내면 아무 것도 받을 수 없습니다. 장치가 데이터를 보내거나 받을 준비가 되지 않은 경우 데이터를 보낼 준비가 될 때까지 기다리라는 지시를 받아야 합니다.

UART의 장점

UART는 다른 직렬 인터페이스에 비해 몇 가지 다른 이점이 있습니다.

시계 필요 없음

UART에는 어떤 종류의 시계도 필요하지 않습니다. 이는 데이터가 일정한 속도로 전송되며 동기화할 필요가 없음을 의미합니다. 따라서 UART는 장거리 또는 시끄러운 환경에서 데이터를 전송하는 데 매우 유용합니다.

SPI 또는 I2C와 같은 다른 종류의 직렬 통신에서는 송신기와 수신기가 서로 통신할 수 있도록 동기화해야 합니다. 즉, 두 장치 중 하나에 지연이 있으면 통신 문제가 발생할 수 있습니다. 예를 들어 한 장치가 다른 장치가 예상한 것보다 조금 늦게 데이터를 보내면 수신 오류가 발생할 수 있습니다.

간편한 작동

UART는 데이터 핀을 마이크로컨트롤러의 적절한 I/O 핀에 연결하는 것 외에 다른 구성이 필요하지 않기 때문에 설정 및 사용이 간단합니다. 그들은 또한 핀이 적기 때문에 한 번에 많은 핀을 가질 수 있습니다. 단일 회로 기판 너무 많은 공간을 사용하거나 걱정할 필요없이 .

오류 검사용 패리티 비트

직렬 인터페이스로 작업할 때 오류를 확인하는 것이 중요합니다. UART에는 데이터가 올바르게 전송되고 있는지 확인하는 데 도움이 되는 오류 검사를 가능하게 하는 패리티 비트가 있습니다.

UART 단점

UART는 여러 애플리케이션에 효과적인 솔루션이지만 UART 프로토콜을 사용하는 데는 다음과 같은 몇 가지 단점이 있습니다.

프레임 크기 9비트 전용

이는 프레임 크기 또는 단일 와이어를 통해 보낼 수 있는 데이터 양이 프레임당 9비트로 제한됨을 의미합니다. 한 프레임에서 XNUMX비트 이상을 보내려고 하면 잘립니다.

낮은 데이터 전송 속도

UART의 가장 큰 단점은 데이터 전송 속도가 느리다는 것입니다. 이것은 간단한 응용 프로그램에서는 문제가 되지 않을 수 있지만 고속 데이터 전송에서는 큰 단점이 될 수 있습니다.

그 이유는 UART가 통신에 하나의 와이어만 사용하고 오류 수정 기술을 사용하지 않기 때문입니다.

이 때문에 UART는 두 장치 간에 많은 양의 데이터를 빠르게 전송해야 하는 애플리케이션에 적합하지 않습니다.

여러 마스터 또는 슬레이브 시스템을 사용할 수 없음

여러 마스터 또는 슬레이브 시스템을 사용하려면 모두 동일한 클럭 주파수에 있는지 확인해야 합니다. 그렇지 않으면 데이터가 손상됩니다.

또한 동일한 마스터 및 슬레이브 시스템에 대해 서로 다른 전송 속도를 사용하는 경우에도 주의해야 합니다. 그렇게 하면 데이터가 제대로 처리되지 않습니다.

SPI 대 UART

SPI 대 UART

맺음말

그래서 평결은 무엇입니까? 어떤 버스 프로토콜을 사용해야 합니까? SPI 또는 UART입니까? 글쎄요, 그것에 대한 간단한 답은 없습니다. 최상의 선택은 프로젝트 요구 사항과 이러한 프로토콜에 대한 친숙도에 따라 달라질 수 있습니다. 그러나 이미 이러한 프로토콜 중 하나를 사용하는 시스템이 있는 경우 여러 시스템 간에 일관된 통신을 유지하기 위해 이를 고수하는 것이 가장 좋습니다.

쿠키 기본 설정 업데이트
위쪽으로 스크롤