- Tipos de protocolos de comunicação
- Modos de transmissão em comunicação serial
- Sincronização de Relógio
- Outros termos relacionados à comunicação serial
- Protocolos seriais síncronos
- Protocolos Seriais Assíncronos
- Conclusão
Antes de começar com os protocolos de comunicação serial, vamos dividir a terminologia em três partes. A comunicação é uma terminologia muito conhecida que envolve a troca de informações entre dois ou mais médiuns. Em sistemas embarcados, a comunicação significa a troca de dados entre dois microcontroladores na forma de bits. Essa troca de bits de dados no microcontrolador é feita por algum conjunto de regras definidas conhecidas como protocolos de comunicação. Agora, se os dados são enviados em série, ou seja, um após o outro, o protocolo de comunicação é conhecido como Protocolo de Comunicação Serial. Mais especificamente, os bits de dados são transmitidos um de cada vez de maneira sequencial através do barramento de dados ou canal de comunicação em Comunicação Serial.
Tipos de protocolos de comunicação
Existem diferentes tipos de transferência de dados disponíveis na eletrônica digital, como comunicação serial e comunicação paralela. Da mesma forma, os protocolos são divididos em dois tipos, como protocolo de comunicação serial e protocolos de comunicação paralela. Exemplos de protocolos de comunicação paralela são ISA, ATA, SCSI, PCI e IEEE-488. Da mesma forma, existem vários exemplos de protocolos de comunicação serial, como CAN, ETHERNET, I2C, SPI, RS232, USB, 1-fio e SATA, etc.
Neste artigo, os diferentes tipos de protocolos de comunicação serial serão discutidos. A comunicação serial é a abordagem mais amplamente usada para transferir informações entre periféricos de processamento de dados. Cada dispositivo eletrônico, seja um computador pessoal (PC) ou móvel, funciona com comunicação serial. O protocolo é a forma segura e confiável de comunicação com um conjunto de regras endereçadas pelo host de origem (remetente) e host de destino (receptor) semelhante à comunicação paralela.
Modos de transmissão em comunicação serial
Como já foi dito acima, na comunicação serial os dados são enviados na forma de bits, ou seja, pulsos binários e é sabido que o binário um representa a lógica HIGH e o zero representa a lógica LOW. Existem vários tipos de comunicação serial, dependendo do tipo de modo de transmissão e transferência de dados. Os modos de transmissão são classificados como Simplex, Half Duplex e Full Duplex.
Método Simplex:
No método simplex, qualquer meio, ou seja, o remetente ou o receptor podem estar ativos ao mesmo tempo. Portanto, se o remetente está transmitindo os dados, o receptor só pode aceitar e vice-versa. Portanto, o método simplex é uma técnica de comunicação unilateral. Os exemplos bem conhecidos de método simplex são televisão e rádio.
Método Half Duplex:
No método half duplex, tanto o remetente quanto o receptor podem estar ativos, mas não ao mesmo tempo. Portanto, se o remetente está transmitindo, o receptor pode aceitar, mas não pode enviar, e vice-versa. O exemplo mais conhecido de half duplex é a internet, onde o usuário envia uma solicitação de dados e os obtém do servidor.
Método Full Duplex:
No método full duplex, tanto o receptor quanto o transmissor podem enviar dados um ao outro ao mesmo tempo. O exemplo conhecido é o telefone celular.
Além disso, para a transmissão de dados adequada, o relógio desempenha um papel importante e é uma das principais fontes. O mau funcionamento do relógio resulta na transmissão inesperada de dados, mesmo às vezes na perda de dados. Assim, a sincronização do relógio torna-se muito importante quando se utiliza a comunicação serial.
Sincronização de Relógio
O relógio é diferente para dispositivos seriais e é classificado em dois tipos viz. Interface serial síncrona e interface serial assíncrona.
Interface serial síncrona:
É uma conexão ponto a ponto de um mestre para o escravo. Nesse tipo de interface, todos os dispositivos usam um único barramento de CPU para compartilhar dados e relógio. A transmissão de dados torna-se mais rápida com o mesmo barramento para compartilhar relógio e dados. Além disso, não há incompatibilidade na taxa de transmissão nesta interface. No lado do transmissor, há um deslocamento dos dados para a linha serial, fornecendo o relógio como um sinal separado, pois não há início, parada e bits de paridade são adicionados aos dados. No lado do receptor, os dados são extraídos usando o relógio fornecido pelo transmissor e converte os dados seriais de volta para a forma paralela. Os exemplos bem conhecidos são I2C e SPI.
Interface serial assíncrona:
Na interface serial assíncrona, o sinal de relógio externo está ausente. As interfaces seriais assíncronas podem ser vistas principalmente em aplicativos de longa distância e são um ajuste perfeito para a comunicação estável. Na interface serial assíncrona, a ausência de fonte de relógio externa faz com que ela conte com vários parâmetros, como controle de fluxo de dados, controle de erros, controle de taxa de transmissão, controle de transmissão e controle de recepção. No lado do transmissor, há um deslocamento de dados paralelos para a linha serial usando seu próprio relógio. Também adiciona os bits de início, parada e verificação de paridade. No lado do receptor, o receptor extrai os dados usando seu próprio relógio e converte os dados seriais de volta para a forma paralela depois de remover os bits de início, parada e paridade. Os exemplos bem conhecidos são RS-232, RS-422 e RS-485.
Outros termos relacionados à comunicação serial
Além da sincronização do relógio, há certas coisas a serem lembradas ao transferir dados em série, como taxa de transmissão, seleção de bits de dados (Framing), sincronização e verificação de erros. Vamos discutir esses termos resumidamente.
Taxa de bauds: a taxa de bauds é a taxa na qual os dados são transferidos entre o transmissor e o receptor na forma de bits por segundo (bps). A taxa de baud mais comumente usada é 9600. Mas há outra seleção de taxa de baud, como 1200, 2400, 4800, 57600, 115200. Quanto maior a taxa de baud, os dados serão transferidos de uma vez. Além disso, para a comunicação de dados, a taxa de transmissão deve ser a mesma para o transmissor e o receptor.
Enquadramento: O enquadramento refere-se ao número de bits de dados a serem enviados do transmissor ao receptor. O número de bits de dados difere no caso de aplicação. A maior parte do aplicativo usa 8 bits como bits de dados padrão, mas também pode ser selecionado como 5, 6 ou 7 bits.
Sincronização: os bits de sincronização são importantes para selecionar um bloco de dados. Ele informa o início e o fim dos bits de dados. O transmissor definirá os bits de início e parada para o quadro de dados e o receptor irá identificá-lo de acordo e fazer o processamento posterior.
Controle de erros: O controle de erros desempenha um papel importante durante a comunicação serial, pois há muitos fatores que afetam e adicionam ruído na comunicação serial. Para se livrar desse erro, os bits de paridade são usados onde a paridade verifica a paridade par e ímpar. Portanto, se o quadro de dados contém o número par de 1s, ele é conhecido como paridade par e o bit de paridade no registro é definido como 1. Da mesma forma, se o quadro de dados contém o número ímpar de 1s, ele é conhecido como paridade ímpar e limpa o bit de paridade ímpar no registro.
O protocolo é como uma linguagem comum que o sistema usa para entender os dados. Conforme descrito acima, o protocolo de comunicação serial é dividido em tipos, ou seja, Síncrono e Assíncrono. Agora, os dois serão discutidos em detalhes.
Protocolos seriais síncronos
O tipo síncrono de protocolos seriais como SPI, I2C, CAN e LIN são usados em diferentes projetos porque é um dos melhores recursos para periféricos integrados. Além disso, esses são os protocolos amplamente usados nas principais aplicações.
Protocolo SPI
A Interface Periférica Serial (SPI) é uma interface síncrona que permite que vários microcontroladores SPI sejam interconectados. No SPI, fios separados são necessários para linha de dados e clock. Além disso, o relógio não está incluído no fluxo de dados e deve ser fornecido como um sinal separado. O SPI pode ser configurado como mestre ou como escravo. Os quatro sinais SPI básicos (MISO, MOSI, SCK e SS), Vcc e Terra fazem parte da comunicação de dados. Portanto, são necessários 6 fios para enviar e receber dados do escravo ou mestre. Teoricamente, o SPI pode ter um número ilimitado de escravos. A comunicação de dados é configurada em registros SPI. O SPI pode fornecer até 10 Mbps de velocidade e é ideal para comunicação de dados em alta velocidade.
A maioria dos microcontroladores tem suporte embutido para SPI e pode ser conectado diretamente ao dispositivo compatível com SPI:
- Comunicação SPI com microcontrolador PIC PIC16F877A
- Como usar a comunicação SPI no microcontrolador STM32
- Como usar SPI no Arduino: comunicação entre duas placas Arduino
Comunicação Serial I2C
Comunicação de duas linhas de circuito integrado (I2C) entre diferentes ICs ou módulos onde duas linhas são SDA (Serial Data Line) e SCL (Serial Clock Line). Ambas as linhas devem ser conectadas a uma fonte positiva usando um resistor pull up. O I2C pode fornecer velocidade de até 400 Kbps e usa um sistema de endereçamento de 10 ou 7 bits para direcionar um dispositivo específico no barramento i2c para que possa conectar até 1024 dispositivos. Tem comunicação de comprimento limitado e é ideal para comunicação a bordo. As redes I2C são fáceis de configurar, pois usam apenas dois fios e novos dispositivos podem ser simplesmente conectados às duas linhas de barramento I2C comuns. Igual ao SPI, o microcontrolador geralmente tem pinos I2C para conectar qualquer dispositivo I2C:
- Como usar a comunicação I2C no microcontrolador STM32
- Comunicação I2C com Microcontrolador PIC PIC16F877
- Como usar I2C no Arduino: comunicação entre duas placas Arduino
USB
USB (Universal Serial Bus) é amplamente protocolo com diferentes versões e velocidades. No máximo 127 periféricos podem ser conectados a um único controlador host USB. O USB atua como um dispositivo "plug and play". Os USB são usados em quase dispositivos como teclados, impressoras, dispositivos de mídia, câmeras, scanners e mouse. Ele é projetado para fácil instalação, classificação de dados mais rápida, menos cabeamento e troca a quente. Ele substituiu as portas seriais e paralelas mais pesadas e lentas. O USB usa sinalização diferencial para reduzir a interferência e permitir a transmissão em alta velocidade a longa distância.
Um barramento diferencial é construído com dois fios, um dos quais representa os dados transmitidos e o outro seu complemento. A ideia é que a tensão 'média' nos fios não carregue nenhuma informação, resultando em menos interferência. Em USB, os dispositivos podem consumir uma certa quantidade de energia sem solicitar ao host. USB usa apenas dois fios para transferência de dados e é mais rápido do que a interface serial e paralela. As versões USB suportam velocidades diferentes, como 1,5 Mbps (USB v1.0), 480 Mbps (USB2.0), 5 Gbps (USB v3.0). O comprimento de um cabo USB individual pode atingir até 5 metros sem hub e 40 metros com hub.
POSSO
A Rede de Área do Controlador (CAN) é usada, por exemplo, no setor automotivo para permitir a comunicação entre ECUs (Unidades de Controle do Motor) e sensores. O protocolo CAN é robusto, de baixo custo e baseado em mensagens e cobre muitas aplicações - por exemplo, carros, caminhões, tratores, robôs industriais. O sistema de barramento CAN permite o diagnóstico central de erros e configuração em todas as ECUs. As mensagens CAN são priorizadas por meio de IDs para que os IDs de maior prioridade não sejam interrompidos. Cada ECU contém um chip para receber todas as mensagens transmitidas, decidir a relevância e agir de acordo - isso permite fácil modificação e inclusão de nós adicionais (por exemplo, CAN bus data loggers). As aplicações incluem start / stop de veículos, sistemas anti-colisão. Os sistemas de barramento CAN podem fornecer velocidade de até 1 Mbps.
Microfio
MICROWIRE é uma interface serial de 3 Mbps de 3 Mbps essencialmente um subconjunto da interface SPI. Microwire é uma porta serial de E / S em microcontroladores, portanto, o barramento Microwire também pode ser encontrado em EEPROMs e outros chips periféricos. As 3 linhas são SI (Serial Input), SO (SerialOutput) e SK (Serial Clock). A linha de entrada serial (SI) para o microcontrolador, SO é a linha de saída serial e SK é a linha de relógio serial. Os dados são deslocados na borda descendente do SK e são avaliados na borda ascendente. SI é deslocado na borda ascendente do SK. Um aprimoramento de barramento adicional para MICROWIRE é chamado MICROWIRE / Plus. A principal diferença entre os dois barramentos parece ser que a arquitetura MICROWIRE / Plus dentro do microcontrolador é mais complexa. Suporta velocidades de até 3 Mbps.
Protocolos Seriais Assíncronos
O tipo assíncrono de protocolos seriais é muito essencial quando se trata de transferência de dados confiável de longa distância. A comunicação assíncrona não requer um relógio de tempo comum a ambos os dispositivos. Cada dispositivo escuta e envia independentemente pulsos digitais que representam bits de dados em uma taxa acordada. A comunicação serial assíncrona é às vezes referida como serial Transistor-Transistor Logic (TTL), onde o nível de alta tensão é lógico 1 e a baixa tensão equivale à lógica 0. Quase todo microcontrolador no mercado hoje tem pelo menos um receptor assíncrono universal- Transmissor (UART) para comunicação serial. Os exemplos são RS232, RS422, RS485 etc.
RS232
O RS232 (padrão recomendado 232) é um protocolo muito comum usado para conectar diferentes periféricos, como monitores, CNCs etc. O RS232 vem em conectores macho e fêmea. O RS232 tem topologia ponto a ponto com no máximo um dispositivo conectado e cobre distâncias de até 15 metros a 9600 bps. As informações na interface RS-232 são transmitidas digitalmente por lógico 0 e 1. O lógico "1" (MARK) corresponde a uma tensão na faixa de -3 a -15 V. O lógico "0" (ESPAÇO) corresponde a um tensão na faixa de +3 a +15 V. Vem em conector DB9 que possui 9 pinagens como TxD, RxD, RTS, CTS, DTR, DSR, DCD, GND.
RS422
O RS422 é semelhante ao RS232, que permite enviar e receber mensagens simultaneamente em linhas separadas, mas usa um sinal diferencial para isso. Na rede RS-422, pode haver apenas um dispositivo de transmissão e até 10 dispositivos de recepção. A velocidade de transferência de dados no RS-422 depende da distância e pode variar de 10 kbps (1200 metros) a 10 Mbps (10 metros). A linha RS-422 é de 4 fios para transmissão de dados (2 fios trançados para transmissão e 2 fios trançados para recepção) e um fio terra comum GND. A tensão nas linhas de dados pode estar na faixa de -6 V a +6 V. A diferença lógica entre A e B é maior que +0,2 V. Lógico 1 corresponde à diferença entre A e B menor que -0,2 V. O padrão RS-422 não define um tipo específico de conector, geralmente pode ser um bloco de terminais ou um conector DB9.
RS485
Como o RS485 usa topologia multiponto, é mais usado nas indústrias e é o protocolo preferido da indústria. RS422 pode conectar 32 drivers de linha e 32 receptores em configurações diferenciais, mas com a ajuda de repetidores adicionais e amplificadores de sinal de até 256 dispositivos. O RS-485 não define um tipo específico de conector, mas geralmente é um bloco de terminais ou um conector DB9. A velocidade de operação também depende do comprimento da linha e pode chegar a 10 Mbit / s a 10 metros. A tensão nas linhas está na faixa de -7 V a +12 V. Existem dois tipos de RS-485, como RS-485 em modo half duplex com 2 contatos e RS-485 em modo full duplex com 4 contatos. Para saber mais sobre como usar RS485 com outros microcontroladores, verifique os links:
- Comunicação serial RS-485 MODBUS usando Arduino UNO como escravo
- Comunicação serial RS-485 entre Raspberry Pi e Arduino Uno
- Comunicação serial RS485 entre Arduino Uno e Arduino Nano
- Comunicação serial entre STM32F103C8 e Arduino UNO usando RS-485
Conclusão
A comunicação serial é um dos sistemas de interface de comunicação amplamente usados em eletrônicos e sistemas embarcados. As taxas de dados podem ser diferentes para aplicativos diferentes. Os protocolos de comunicação serial podem desempenhar papel decisivo no tratamento deste tipo de aplicações. Portanto, escolher o protocolo serial correto torna-se muito importante.