Estabelecendo Comunicação Serial no Desenvolvimento Embarcado
Conteúdo
- Tipos Comuns de Comunicação Serial
1.1 UART (Transmissor-Recebedor Assíncrono Universal)
1.2 I2C (Inter-Integrated Circuit)
1.3 SPI (Interface Serial de Periféricos)
1.4 CAN (Controller Area Network) - Software de Teste e Depuração Serial
2.1 Driver de Porta Serial Virtual
2.2 Monitor de Porta Serial
2.3 Divisores de Porta Serial de Hardware
2.4 Cabo Espião Monitor de Serial RS232 - Hardware ou Software para desenvolvimento de sistemas embarcados seriais?
Devido à sua simplicidade, a conexão serial é frequentemente usada interna e externamente na tecnologia embarcada. Existem diferentes tipos de dispositivos de comunicação serial em sistemas embarcados, com diferentes propósitos e peculiaridades. Ao desenvolver esses sistemas, é importante escolher o tipo certo. Por isso, vamos explorar e comparar alguns protocolos comuns de comunicação serial e também sugerir algumas ferramentas universais que serão úteis, independentemente da sua escolha.
Tipos Comuns de Comunicação Serial
UART (Transmissor-Recebedor Assíncrono Universal)
UART é um dos protocolos de comunicação mais simples e antigos em sistemas embarcados. A conexão pode ser estabelecida apenas entre dois dispositivos. Cada um possui um pino de transmissão e um pino de recepção, e ambos os canais são unidimensionais. Os dados são convertidos em um sinal binário e enviados em pacotes de byte. Os pacotes também contêm bits de início e fim, e um bit para detecção de erros.
UART é assíncrono - não usa linhas adicionais para enviar pulsos de clock, utilizando bits de início e fim para sincronização. Muitos parâmetros, incluindo a taxa de transmissão (bits por segundo), devem ser os mesmos em ambos os dispositivos. As taxas de transmissão devem ser relativamente baixas para evitar a desincronização. Geralmente, optar por UART em sistemas embarcados em vez de protocolos mais recentes não seria uma questão de melhoria técnica, mas sim uma questão de economia de custos e tempo ao trabalhar em protótipos ou adicionar capacidade de depuração.
Em alguns casos, usando um conversor UART para Ethernet, os dados UART podem ser transmitidos por uma rede Ethernet, permitindo comunicação entre dispositivos que não estão conectados diretamente.
Aplicações:
- Depuração muitas vezes não requer a complexidade e a velocidade de outros protocolos, e o UART fornece uma maneira rápida e simples de implementá-lo.
- Conexão de dispositivos a PCs através de portas seriais ou conversores serial-para-USB.
Prós: Fácil de trabalhar, potencialmente maior alcance de conexão.
Contras: Taxa de transferência de dados baixa, só pode conectar dois dispositivos.
I2C (Inter-Integrated Circuit)
I2C permite que vários - potencialmente grandes quantidades - de dispositivos sejam conectados ao mesmo barramento. Um barramento I2C consiste em dois fios - uma linha de dados e uma linha de clock, e cada dispositivo se conecta a ele com um pino de dados e um pino de clock.
Quando um dispositivo no barramento está transmitindo, todos os outros dispositivos recebem a mensagem, então alguns bits precisam ser usados para especificar um endereço. Além disso, isso bloqueia todos os outros dispositivos de enviar mensagens, impondo um limite rígido sobre a rapidez com que os dados podem ser trocados.
I2C é um grande avanço em complexidade em relação ao UART, devido ao manejo da concorrência, ao mesmo tempo em que carece dos avanços que aumentam a velocidade dos protocolos de comunicação mais recentes em sistemas embarcados.
Aplicações:
- Sistemas de baixa velocidade que trocam pequenas quantidades de dados, como leituras de sensores.
- Identificação de dispositivos em PCs, como Serial Presence Detect em módulos de RAM e DDC para dispositivos de exibição.
Prós: A maneira mais simples de conectar vários dispositivos com acesso mútuo total.
Contras: Lento, muito mais exigente que o UART.
SPI (Interface Serial de Periféricos)
Como seu nome sugere, SPI é comumente usado para conectar vários periféricos a um controlador. Atualmente, este é um tipo muito comum de dispositivos de comunicação serial em sistemas embarcados. O controlador escolhe qual periférico está ouvindo no momento e então troca dados com ele. Ao contrário do I2C, a seleção é feita por meio de linhas individuais - portanto, cada novo dispositivo conectado precisa de sua própria linha CS, mas a linha de clock e dados de entrada/saída são compartilhadas entre todos eles. Também existem configurações alternativas de "circuito em série", onde uma sequência de periféricos transmite dados uns para os outros e compartilha a mesma linha CS.
SPI é mais rápido que o UART devido à presença de uma linha de clock, e mais rápido que o I2C, pois é realmente mais simples, sem a necessidade de transmitir o endereço do receptor com cada mensagem ou considerar a possibilidade de múltiplos controladores.
Aplicações:
- Sistemas de curto alcance e alta velocidade, onde há necessidade de conectar cartões SD, displays LCD, módulos RTC, etc.
Prós: Mais rápido que I2C e UART.
Contras: Sem suporte para múltiplos controladores no mesmo barramento, pinos individuais necessários para cada periférico.
CAN (Controller Area Network)
Um barramento CAN consiste em dois fios, mas ao contrário do I2C, nenhum deles é uma linha de clock. Ambos carregam os mesmos dados (apenas um sinal binário de qualquer dispositivo no barramento), e eles são enrolados um ao redor do outro para minimizar os efeitos da interferência elétrica. Em geral, o CAN é adaptado para distâncias maiores - enquanto os barramentos anteriores poderiam cobrir vários metros no máximo, um barramento Controller Area Network pode se estender por cerca de 40.
Semelhante ao I2C, os dispositivos conectados - também conhecidos como nós CAN - só transmitem se nenhum outro dispositivo estiver transmitindo no momento, e os quadros de dados (os pacotes) incluem um identificador para especificar o destino.
Este barramento é destinado a aplicações industriais, como comunicação em sistemas embarcados automotivos. Previsivelmente, a largura de banda é muito menor do que qualquer um dos tipos de conexão mencionados, muitas vezes por uma ordem de magnitude.
Aplicações:
- Eletrônica automotiva, com o CAN sendo o padrão atual
- Outras aplicações industriais, como linhas de produção
Prós: Longo alcance, alta confiabilidade, implementação simples
Contras: Largura de banda baixa
Como escolher o certo?
A melhor maneira de determinar o tipo certo de conexão serial para seu caso é simplesmente observar como casos semelhantes estão sendo tratados por outros técnicos. É provável que eles já tenham considerado as necessidades potenciais de seus sistemas ao escolher o protocolo. Caso contrário, você terá pelo menos um bom ponto de partida e obterá uma resposta melhor abordando as falhas em sua escolha.
Software de Teste e Depuração Serial
Desenvolvedores de sistemas embarcados precisam ser capazes de monitorar o comportamento de seus sistemas. Um aspecto importante desse monitoramento é a depuração de portas seriais. Uma interface serial pode muito bem ser a única maneira de comunicar com o sistema embarcado. A Electronic Team, Inc. oferece um pacote de software de porta serial completo e repleto de recursos que tornará o trabalho com seus sistemas embarcados baseados em serial muito mais fácil e eficiente.
Vamos dar uma olhada em algumas das melhores ferramentas de desenvolvimento de software e hardware para engenheiros que trabalham com portas seriais e sistemas embarcados.
Driver de Porta Serial Virtual e Driver de Porta Serial Virtual PRO
Esta aplicação útil pode criar portas COM virtuais com taxa de transmissão configurável e conexão de linha de sinal. Com ela, você pode facilmente passar a saída serial de uma aplicação para outra.
O Driver de Porta Serial Virtual PRO (VSPD) introduz ainda mais recursos:
- Criar “conexões de pacote” que coletam entradas de várias portas de entrada e as enviam para várias portas de destino
- Mesclar várias entradas em uma única porta de SAÍDA
- Dividir uma única porta de entrada para torná-la acessível a várias aplicações
- Um Interruptor automático que escolhe automaticamente uma porta livre para aplicativos que não conseguem encontrar uma
É absolutamente essencial se você estiver escrevendo software de conexão serial ou testando como seu hardware interage com software existente.
Monitor de Porta Serial
Monitor de Porta Serial (SPM) é um conjunto versátil de ferramentas que não só permite armazenar e visualizar a entrada dos seus dispositivos seriais de várias maneiras diferentes, mas também enviar dados diretamente para ele através do terminal embutido.
Ele pode:
- Reenviar a mesma entrada para o dispositivo a partir de uma sessão inteira com a função de Reprodução
- Exibir dados em vários modos, incluindo tabelas e saída de terminal
- Monitorar várias portas COM ao mesmo tempo
- Salvar todas as informações das suas sessões na área de transferência ou em um arquivo de texto
Divisores de Porta Serial de Hardware
Dispositivos físicos que podem realizar algumas das funções das ferramentas de software discutidas acima estão disponíveis para o desenvolvedor de sistemas embarcados. Você pode obter cabos que permitem compartilhar o sinal de uma única porta serial com dois ou mais dispositivos ou aplicações.
Desvantagens: Eles oferecem menos flexibilidade do que a alternativa de software, pois são limitados no número de conexões que podem ser disponibilizadas. Outra limitação é o comprimento do cabo que pode ser utilizado e a tarefa geral de gerenciamento de cabos que pode se tornar desajeitada à medida que a necessidade de compartilhar sinais cresce.
Cabo Espião Monitor de Serial RS232
Cabos de monitoramento serial ou sniffer podem ser obtidos que funcionam em modo half-duplex ou full-duplex. Eles funcionam fornecendo um conector adicional para um cabo RS232. Um dispositivo conectado a essa terceira conexão pode monitorar a comunicação que viaja entre as duas extremidades do cabo RS232. Dependendo do tipo de dispositivo ou aplicação que está conectado, você pode ser capaz de registrar os dados para uso posterior.
DCAClab é um simulador de circuitos elétricos online para educação em STEM e tecnologia, ajuda os professores de mecatrônica a explicar circuitos para seus alunos com facilidade. Simula e resolve problemas em circuitos quebrados em um ambiente de simulação rico, fornecido com componentes com aparência real, osciloscópio realista e multímetro com várias funções para usar.
Hardware ou Software para desenvolvimento de sistemas embarcados seriais?
Ao escolher ferramentas para o desenvolvimento de sistemas embarcados seriais, você precisa considerar a facilidade de uso e a flexibilidade. Sem dúvida, as aplicações de software projetadas especificamente para trabalhar com dispositivos seriais são mais poderosas e oferecem opções à medida que seu ambiente de teste muda.
Benefícios adicionais de uma solução de software incluem a eliminação da necessidade de comprar cabos caros e a capacidade de monitorar a atividade serial remotamente. Se você é sério sobre o desenvolvimento de sistemas embarcados, deve dar uma olhada de perto nessas ferramentas de software. Elas tornarão sua vida de desenvolvimento muito mais agradável e lhe darão uma vantagem sobre a concorrência.