SPI vs. UART: Qual protocolo você deve usar?

Introdução

O SPI e o UART são usados ​​em tudo, desde microcontroladores simples até complexos industrial equipamento. Se você deseja conectar dois dispositivos, precisará escolher um ou outro.

Compararemos SPI e UART neste artigo para ajudá-lo a determinar qual protocolo é apropriado para seu projeto.

SPI

SPI

O que é uma SPI (Interface Periférica Serial)?

Significa Serial Peripheral Interface. Este é um protocolo de comunicação que permite que dois dispositivos se comuniquem entre si.

Comumente usado para comunicação entre um microcontrolador e um chip de memória. Também é comumente usado para conectar dispositivos periféricos, como sensor ou mostradores.

Como o SPI é um protocolo serial, ele usa apenas um fio (ou linha) para transmitir dados. Isso significa que os dados enviados pela rede estão sendo enviados apenas um bit por vez. Na maioria dos casos, essa transmissão serial acontece muito rapidamente.

Também é versátil o suficiente para ser usado em uma variedade de aplicativos diferentes - por exemplo, você pode usar o SPI para conectar uma unidade flash ao seu computador ou talvez conectar um LCD exibir para sua placa Arduino.

Fios SPI

Fios SPI

Fios SPI

Este protocolo permite que dois dispositivos enviem informações entre si. O protocolo SPI consiste em quatro fios:

MISO

MISO significa master in slave out. Esta é uma forma de comunicação entre dois dispositivos SPI.

O fio MISO é uma linha de sinal bidirecional. Fornece troca de dados entre os dispositivos mestre e escravo em um sistema de comunicação síncrona. Este fio é usado para transmitir dados do dispositivo mestre para o dispositivo escravo e permite a recepção de dados pelo dispositivo mestre do dispositivo escravo.

SS/CS

Isso controla se o dispositivo com o qual está se comunicando está ou não selecionado. A linha SS/CS é uma dessas linhas compartilhadas. Ele pode ser usado para selecionar com qual dispositivo no barramento você deseja se comunicar.

O pino SS é normalmente puxado para cima, enquanto o pino CS é puxado para baixo. No caso do SPI, esses sinais são de dreno aberto. Eles devem ser puxados para cima com resistores para poder reduzi-los. Por exemplo, se você tiver um chip select de 4 bits que deseja usar em um barramento de 8 bits, poderá combinar todos os 4 desses chips selects em um chip select de 8 bits, amarrando-os e puxando-os para baixo com um único resistor pull-up.

SCK

A linha de clock serial, também conhecida como shift clock, é usada para sincronizar a transferência de dados entre o microcontrolador e o dispositivo SPI. É um sinal de clock contínuo que determina a velocidade na qual os dados são deslocados para dentro e para fora do dispositivo.

Este sinal de clock é usado para sincronizar todos os outros sinais em um barramento SPI. Geralmente é conectado a um pino dedicado no dispositivo mestre. o freqüência deste sinal de clock deve ser maior ou igual a 1 MHz.

MOSI

O sinal MOSI permite que o microcontrolador em um computador saiba que deve enviar dados para o periférico SPI. Este irá então lê-lo e enviá-lo para seus próprios periféricos.

No mundo da transmissão de dados, uma interface serial significa que um bit de informação é transmitido por vez, em ordem sequencial. Ele transfere e recebe dados do dispositivo mestre e os envia para o dispositivo escravo.

UART

UART

O que é um UART (transmissor receptor assíncrono universal)?

Uma maneira padrão de enviar dados entre dois dispositivos. É usado em muitos tipos diferentes de dispositivos eletrônicos, desde dispositivos de consumo até equipamentos industriais.

É chamado de “universal” porque pode ser usado para se comunicar com muitos tipos diferentes de dispositivos e protocolos, e é chamado de “assíncrono” porque não exige que o remetente e o destinatário estejam sincronizados entre si - ou seja, não t exigi-los para enviar bits de dados em intervalos regulares.

O UART recebe informações de um computador ou outro dispositivo e as envia para outro dispositivo usando o mesmo protocolo. Isso significa que se você tiver um computador com porta serial, é possível conectá-lo a outro computador ou dispositivo usando essa porta e enviar dados entre eles por fios ou sem fio desde que ambos os dispositivos suportem o mesmo protocolo.

Semelhanças SPI e UART

Ambos são usados ​​para comunicação entre microcontroladores e dispositivos periféricos. Ambos os protocolos são baseados nos mesmos princípios:

Comunicação em série

Comunicação em série

Comunicação Serial Duplex

Esses protocolos usam comunicação serial duplex. Isso significa que eles podem enviar e receber dados ao mesmo tempo, o que os torna ideais para dispositivos que precisam se comunicar enquanto fazem outras coisas ao mesmo tempo, como um laptop conversando com sua impressora.

Isso permite que os protocolos SPI e UART operem em velocidades mais altas do que outras interfaces seriais, pois não precisam esperar por uma resposta antes de enviar outro sinal.

Comunicação de curta distância

Ambos SPI e UART são usados ​​para comunicação de curta distância. Isso significa que eles transmitem dados por alguns metros, em vez de longas distâncias como a Ethernet. Ambos são usados ​​em microcontroladores, que são pequenos computadores que executam tarefas como controlar motores ou sensores.

Processamento de dados

Tanto o SPI quanto o UART têm um conceito semelhante de processamento de dados. Ambos são dispositivos receptor-transmissor que usam uma interface de comunicação serial para enviar e receber dados. No SPI, o receptor é conectado ao microprocessador, enquanto no UART é conectado a um dispositivo periférico. O microprocessador pode enviar bytes de dados através do barramento SPI ou da linha UART em altas velocidades.

Diferenças SPI e UART

Eles são semelhantes na maneira como permitem que os dados sejam enviados entre dispositivos, mas existem algumas diferenças importantes entre eles.

Velocidade

O SPI usa quatro fios de dados para transferir dados em alta velocidade, enquanto o UART usa apenas dois, é por isso que os protocolos SPI podem transferir dados de e para um dispositivo muito mais rápido em comparação com os protocolos UART.

Taxas de dados

O SPI envia e recebe dados em alta velocidade de até 100 MHz, enquanto o UART envia e recebe dados em uma velocidade muito menor de até 20 KBps. Isso significa que o UART pode ser usado para aplicativos de baixa velocidade, como envio de mensagens de texto, enquanto o SPI é mais apropriado para aplicativos de alta velocidade, como controle de motores ou outros dispositivos de hardware.

Interface de fio

Interface de fio

Interface de fio

SPI é um protocolo de comunicação mestre/escravo que opera no modo full duplex. O mestre fornece informações ao escravo, que as processa e retorna uma resposta. Com o SPI, é possível ter vários escravos conectados no mesmo barramento, permitindo que todos se comuniquem simultaneamente.

UART é um protocolo serial simplificado que requer apenas um par de fios para enviar e receber dados. É possível ter vários dispositivos conectados no mesmo barramento usando UART, mas não há como todos falarem ao mesmo tempo como você pode com o SPI.

Transmissão de dados

Normalmente usado para transmissão de dados em alta velocidade entre dois dispositivos, como um microcontrolador e outro chip ou periférico. O microcontrolador atua como o dispositivo mestre, controlando o fluxo de dados entre ele e o dispositivo escravo. O SPI pode transmitir vários bits ao mesmo tempo, o que o torna mais eficiente que o UART, mas requer hardware mais complexo em ambas as extremidades da conexão.

O UART não é bom para transmissão em alta velocidade porque cada bit deve ser enviado individualmente; não há como enviar vários bits de uma só vez.

Vantagens SPI

SPI tem vários benefícios sobre outros tipos de interface. Isso é muito mais rápido do que a comunicação serial, que requer transmissão de dados um por vez. Outras vantagens incluem:

Baixo sinal/contagem de pinos

O SPI oferece uma baixa contagem de sinal/pin, o que significa que você pode usar menos fios para conectar seu sistema do que usaria se usasse outro tipo de interface. Isso torna o SPI particularmente útil quando você está olhando para dispositivos de fator de forma pequeno ou quando o espaço é limitado.

Suporta Vários Mestres

Permite que vários mestres se comuniquem entre si. Isso o torna ideal para uso em microcontroladores, onde vários dispositivos podem compartilhar o mesmo barramento e cada um enviar dados de e para o barramento.

Por exemplo, um dispositivo baseado em SPI pode enviar dados para outro dispositivo baseado em SPI (como um exibição ou sensor) sem ter que se preocupar se o outro dispositivo completou sua tarefa ou não.

Dois fios para comunicação

Este protocolo usa dois fios para criar comunicação entre vários dispositivos. O SPI usa clock e linhas de dados separados para enviar informações entre os dispositivos. O barramento SPI possui um dispositivo mestre e um ou mais dispositivos escravos. O mestre pode se comunicar com cada um dos escravos enviando comandos em formato serial pela linha MOSI, enquanto simultaneamente envia dados para o escravo na linha MISO.

Adapte-se às demandas de diferentes escravos

O SPI é adequado para aplicações em que você precisa conectar vários dispositivos escravos a um controlador host, como em um incorporado sistema ou um sistema de computador. O protocolo permite que os dispositivos escravos se adaptem às demandas do controlador host, o que significa que ele pode ser facilmente usado para aplicações como conectar vários sensores com diferentes requisitos de comunicação.

Desvantagens SPI

Embora o SPI tenha muitos benefícios, incluindo sua capacidade de suportar vários dispositivos, ele também apresenta algumas desvantagens.

Complicado

SPI é uma interface serial que permite a comunicação entre vários dispositivos. O problema com o SPI é que ele pode ser complicado de configurar, especialmente quando há muitos dispositivos no mix.

Ao conectar dispositivos SPI, você precisa garantir que as linhas não interfiram umas nas outras e que não se cruzem. Isso pode resultar em problemas como perda de dados ou leituras incorretas dos sensores.

Velocidade mais lenta

O SPI é mais lento do que outros protocolos de comunicação porque requer mais ciclos de clock para transferir dados do que eles. Isso pode ser um problema se você estiver tentando transmitir uma grande quantidade de dados, pois a velocidade mais lenta significa que levará mais tempo para que todas as informações sejam transferidas.

Interface Half-Duplex

A interface SPI é uma interface half-duplex, o que significa que, se um dispositivo estiver enviando dados, ele não poderá recebê-los. Se o dispositivo não estiver pronto para enviar ou receber dados, ele deve ser instruído a aguardar até que esteja pronto para isso.

Vantagens UART

UART tem vários outros benefícios sobre outras interfaces seriais:

Não há necessidade de relógio

UARTs não precisam de nenhum tipo de relógio. Isso significa que os dados são enviados a uma taxa constante e não há necessidade de sincronização. Isso torna os UARTs extremamente úteis para enviar dados em longas distâncias ou em ambientes ruidosos.

Com outros tipos de comunicação serial, como SPI ou I2C, você precisa sincronizar o remetente e o destinatário para que eles possam se comunicar. Isso significa que, se houver qualquer tipo de atraso em qualquer um dos dispositivos, isso poderá causar problemas de comunicação - por exemplo, se um dispositivo enviar seus dados um pouco depois do esperado por outro dispositivo, isso poderá causar erros na recepção.

Fácil de operar

Os UARTs são simples de configurar e usar porque não requerem nenhuma configuração além de conectar o pino de dados ao pino de E/S apropriado em seu microcontrolador. Eles também têm poucos pinos, então você pode ter muitos deles em um placa de circuito único sem ter que se preocupar em ocupar muito espaço ou poder.

Bit de Paridade para Verificação de Erros

Ao trabalhar com uma interface serial, é importante verificar os erros. Os UARTs vêm com um bit de paridade que permite a verificação de erros, o que pode ajudar a garantir que seus dados sejam transmitidos corretamente.

Desvantagens UART

Embora o UART seja uma solução eficaz para vários aplicativos, existem algumas desvantagens em usar o protocolo UART:

Tamanho do Quadro 9 Bits Apenas

Isso significa que o tamanho do quadro, ou a quantidade de dados que podem ser enviados por um único fio, é limitado a nove bits por quadro. Se você tentar enviar mais de 9 bits em um quadro, ele será truncado.

Baixas velocidades de transmissão de dados

A maior desvantagem do UART é que ele possui baixas velocidades de transmissão de dados. Embora isso possa não ser um problema para aplicativos simples, pode ser uma grande desvantagem para a transmissão de dados em alta velocidade.

A razão para isso é que o UART usa apenas um fio para comunicação e não utiliza nenhuma técnica de correção de erros.

Por causa disso, o UART não é adequado para aplicações em que há necessidade de transmitir grandes quantidades de dados rapidamente entre dois dispositivos.

Não é possível usar vários sistemas mestre ou escravo

Se você quiser usar vários sistemas Mestre ou Escravo, certifique-se de que todos estejam na mesma frequência de clock. Se não estiverem, seus dados serão corrompidos.

Você também precisa ter cuidado ao usar diferentes taxas de transmissão para o mesmo sistema mestre e escravo. Se você fizer isso, os dados não serão processados ​​corretamente.

SPI x UART

SPI x UART

Conclusão

Então, qual é o veredicto? Qual protocolo de barramento você deve usar? É SPI ou UART? Bem, não há uma resposta simples para isso. A melhor escolha provavelmente dependerá das necessidades do seu projeto e da familiaridade com esses protocolos. No entanto, se você tiver um sistema que já usa um desses protocolos, é melhor mantê-lo para manter a comunicação consistente entre vários sistemas.

Atualizar preferências de cookies
Voltar ao Topo