comunicação de dados... · como se fosse um frame isolado de informação. a sincronização é...
TRANSCRIPT
1
Comunicação de Dados
Comunicação de Dados: Conceitos
Básicos
• Várias aplicações requerem a comunicação
entre o microcontrolador e um ou mais
dispositivos externos;
• Exemplo de dispositivos externos: sensores,
memórias, outros microcontroladores, etc.;
• Comunicação pode ser paralela ou serial;
Comunicação de Dados: Conceitos Básicos
Melhor imunidade a ruídos
Baixa imunidade a ruídos
Menor Velocidade (comparada a comunicação paralela)
Alta velocidade
Comunicação Serial Comunicação Paralela
Porta Paralela - Centronics • Criada em 1981 para transmissão de dados entre o IBM-PC e a
impressora: bits de dados e de controle;
• Capaz de transmitir 8 bits de dados em paralelo;
• O padrão SPP (Standard Parallel Port) é o original, e também o mais limitado e lento (unidirecional, 500kbps);
• O padrão EPP (Enhaced Parallel Port) é mais rápido que o SPP e permite comunicação biridecional;
• O padrão ECP – (Extended Capability Port) também é bidirecional e acrescentou acesso direto à memória (DMA) e capacidade de compressão de dados.
• EPP e ECP estão especificados na norma IEEE-1284;
• Taxa de comunicação: até 1Mbit/s;
• Comprimento máximo do cabo: 3 a 9 metros.
Porta Paralela
• Atualmente, a comunicação serial é
dominante;
• Existem vários tipos de padrões em uso
por diferentes dispositivos;
• Os protocolos seriais podem ser
classificados em duas categorias:
–Síncronos;
–Assíncronos.
Comunicação Serial
8
Conceitos e definições
Eficiência de uma transmissão: O throughput é a taxa de transferência efetiva de um sistema. Esta
taxa de transferência pode ser menor que a taxa de entrada devido
às perdas e atrasos no sistema, ou seja, throughput é diferente da
largura de banda nominal.
• Nos protocolos síncronos, além das linhas de
comunicação, há uma ou mais linhas de
sincronização (clock).
• A informação na linha de dados é transmitida a
cada transição da linha de clock.
• Neste tipo de comunicação existe o elemento
mestre, que gera o clock, e os escravos, que
recebem o sinal de clock.
Comunicação Serial Síncrona
1 0 0 1 1 0 1 0
Clock
Dado
Comunicação Serial Síncrona
11
Conceitos e definições
Transmissão serial síncrona.
Em sistemas síncronos, canais separados são
usados para transmitir dados e informação de tempo.
• Nos protocolos assíncronos não existe uma linha específica para sincronização;
• A sincronização entre o transmissor e receptor é garantida pela precisão dos clocks de cada elemento e também pela utilização de sinais de marcadores de início e fim do dado transmitido;
• Todos os bits tem a mesma duração.
Comunicação Serial
Assíncrona
Start Bit Stop Bit 1 0 0 1 1 0 1 0
Comunicação Serial
Assíncrona
Conceitos e definições
Transmissão serial assíncrona. O modo assíncrono trata cada caractere separadamente, transmitindo-o
como se fosse um frame isolado de informação. A sincronização é feita
por um bit de início (start-bit), controle de erro que pode ser feito por um
bit de paridade N (nenhum), E (par) ou O (ímpar) e um ou dois bits de
parada (stop bit).
Start Bit-1 Bit-2 Bit-3 Bit-4 Bit-5 Bit-6 Bit-7 Bit-8 P Stop-1 Stop-2
Bits de dados 7 ou 8
Bits opcionais
Transmitindo Informação
• Mas como posso transmitir outras informações além de “zeros” e “uns”?
• ASCII (American Standard Code for Information Interchange).
• Esta tabela criou um padrão para troca de informações em sistemas binários.
Tabela ASCII
Extended ASCII
Porta Serial EIA-232 • Padrão definido em 1969 pela EIA (Electronics Industries
Association) para comunicação com modems;
• O termo “RS” vem de Recommended Standard;
• O padrão original possui conector de 25 pinos com diversos sinais de controle;
• Atualmente alguns computadores ainda possuem RS-232, mas o padrão atual usa conector de 9 pinos;
• Até 115kbits/s, distantes até 30 metros;
• A comunicação pode ser síncrona ou assíncrona.
• EIA-232 define a camada física: tipos de conectores (DB-25 e DB-9) e níveis de tensão:
–Maior que +3V = zero;
–Menor que -3V = um.
• Taxas padronizadas: 4,8kbps; 9,6kbps e 19,2kbps;
• Versões comerciais baseadas no RS-232 podem atingir taxas maiores e distâncias mais longas;
• Serial ponto a ponto, sendo um transmissor e um receptor;
• Terra comum entre os dispositivos.
• Os sinais variam de 3 a 15 volts positivos ou negativos.
Níveis de sinal +-5V, +-10V, +-12V e +-15V são vistos
comumente, dependendo da fonte elétrica disponível.
• Valores próximos de zero não são sinais válidos;
• O nível lógico um é definido por uma tensão negativa
(marca). O nível lógico zero é positivo (espaço).
• É muito comum o uso de CIs especialmente projetados
para compatibilização dos níveis de tensão com sinais
TTL (0 a 5V). Ex.: MAX 232:
Serial – RS-422
• Um transmissor por barramento com até 10
receptores;
• Pares trançados – sinal diferencial;
• Maior imunidade a ruídos e distâncias maiores que
RS-232;
• Até 100kbps com 1,2km ou até 1Mbps para distâncias
curtas;
• Existem CIs de conversão TTL/RS-422;
• Utilizada nos Apple Macintosh até 1999.
Barramento RS-485 • Padrão de comunicação
serial que permite a ligação de até 256 dispositivos a um mesmo barramento;
• A comunicação é feita através de sinal diferencial com tensão entre 0 e 5V: excelente imunidade a IEM;
• Barramento formado por um par de fios trançados;
• Até 10Mbps (100m);
• Até 1.200m (taxas menores).
• No mercado existem CIs e equipamentos conversores entre os padrões RS-485 e RS-232 que permitem a ligação de computadores pessoais a instrumentos que operam no padrão RS-485.
• O CI MAX485 faz a conversão de serial (RX/TX) para RS-485.
USB
• Projetado para que diferentes dispositivos pudessem ser conectados através de um soquete único de interface padronizada;
• Também tinha o objetivo de aperfeiçoar as capacidades de plug-and-play através do hot-swapping;
• O host USB (ex.: computador) detecta automaticamente quando um novo dispositivo é conectado, identifica-o e configura os drivers apropriadamente;
USB1.0até12Mbits/s;
USB2.0até480Mbits/s; USB 3.0 até 5 Gbits/s
• O host USB também pode fornecer energia a dispositivos de baixo consumo (até 500mA, 5V);
• Comprimento máximo de 5m para um cabo individual;
• Distância máxima de 30m entre o controlador USB e o dispositivo com o uso de repetidores;
• O ATmega328 possui hardware para implementação de
comunicação serial em diferentes padrões:
• SPI – Serial Peripheral Interface;
• TWI – Two Wire serial Interface (I2C);
• USART – Universal Synchronous and Asynchronous
Serial Receiver and Transmitter (estilo RS-232);
Comunicação Serial no
ATmega328P
SPI – Serial Peripheral
Interface
• SPI – Serial Peripheral Interface – é uma interface de comunicação serial síncrona utilizada para comunicação a curta distância:
• Memórias Flash e EEPROM;
• Relógios de tempo real;
• Sensores;
• Potenciômetros digitais;
• Telas de LCD; etc.
• No ATmega328P a interface SPI também
é usada para a gravação da memória de
programa do microcontrolador.
• Na comunicação SPI sempre existe um
dispositivo mestre (em geral é o próprio
microcontrolador) que controla os periféricos;
• Três linhas são comuns a todos os dispositivos:
– MISO (Master In Slave Out) – linha pela qual o
escravo envia dados ao mestre;
– MOSI (Master Out Slave In) – linha pela qual o
mestre envia dados aos escravos;
– SCK (Serial Clock) – clock gerado pelo mestre para
sincronizar a comunicação.
• Além das linhas MISO, MOSI e SCK, cada dispositivo
está conectado a uma linha SS:
• SS (Slave Select) – cada escravo possui uma entrada
desta linha, que é controlada pelo mestre para habilitar
ou desabilitar os dispositivos individualmente:
• Em nível baixo: comunicação habilitada;
• Em nível alto: escravo ignora o mestre.
• Para escrever código para um dispositivo SPI deve-se observar:
– Se os dados são transmitidos primeiro pelo MSB (Most Significant Bit) ou pelo LSB (Least Significant Bit);
– Se a linha de clock fica em nível alto ou baixo quando inativa;
– Se a amostragem dos dados deve ser feita na borda de subida ou na borda de descida do clock;
– A velocidade de comunicação (cada dispositivo pode ter um limite distinto).
• A biblioteca do Arduino faz a placa operar em modo mestre;
• Ordem de transmissão dos dados (primeiro pelo MSB ou pelo LSB): SPI.setBitOrder();
• Linha de clock fica em nível alto ou baixo quando inativa e modo de amostragem de dados: SPI.setDataMode();
• Velocidade de comunicação: SPI.setClockDivider().
SPI com Arduino
Pinos SPI
Cartão de Memória SD
Cartão de Memória SD
• A biblioteca “SD.h” provê meios de
utilização de cartões de memória SD com
o Arduino.
• Esse tipo de memória se comunica com o
microcontrolador por SPI.
Cartão de Memória SD
Cartão de Memória SD
• Alimentação: 3,3V uso de resistores
em 5V!
TWI – Two Wire serial
Interface (I2C)
I2C
• I2C (Inter-Integrated Circuit) ou TWI (Two Wire
serial Interface) foi desenvolvido pela PHILIPS
no início da década de 1980 para transferência
de dados entre microcontroladores e
equipamentos;
• Barramento de comunicação serial de dados
entre dispositivos onde a conexão é feita
através de 2 fios;
• É half-duplex, ou seja, em determinado
instante, apenas recebe ou envia informação;
• Taxa de transferência: até 100kbits/s;
• Operação em modo mestre/escravo: um
dispositivo ou processo (mestre) tem
controle unidirecional sobre um ou mais
dispositivos (escravos);
• Pode possuir mais de um mestre, mas só
um controla o barramento de cada vez.
Pinos TWI (I2C)
USART – Universal
Synchronous and
Asynchronous serial
Receiver and Transmitter
• USART do ATmega328:
• Registradores de recepção e transmissão independentes (full-duplex);
• Operação síncrona ou assíncrona;
• Síncrona com clock mestre ou escravo;
• Frames de 5 a 9 bits, com 1 ou 2 stop-bits;
• Paridade par ou ímpar por hardware;
• Interrupções: transmissão completa, recepção completa e registradores vazios.
Comunicação Serial
no ATmega328P
• Frame no modo assíncrono:
Comunicação Serial
no ATmega328P
Comunicação Serial no Arduino
• Microcontrolador possui hardware para
comunicação serial:
• Pino digital 0 (RX): recepção de dados;
• Pino digital 1 (TX): transmissão de dados;
• Bit 1 = 5V; Bit 0 = 0V;
• A maioria das placas Arduino possui hardware
que converte sinais do padrão serial
assíncrono para USB;
Pinos de Comunicação Serial
Comunicação Serial USART:
Meios de Utilização
Comunicação sem-fio • Wixel shield for Arduino, com dois módulos Wixel;
• Rádio de 2,4GHz para até 30 metros, 350kbps;
• Possui microcontrolador programável por interface amigável;
• Tem 15 pinos de I/O, com 6 entradas analógicas, que podem ser programados de forma independente da comunicação;
• Permite a criação de uma rede com até 128 módulos de comunicação;
• A comunicação é feita como se fosse comunicação serial padrão;
• Permite gravar programas no Arduino sem ligar o cabo USB à placa!
Conexão Bluetooth • Modelo JY-BT03 - Shenzhen Jiayuan Electronic Co.
Ltd.;
• Conexão com pinos RX-TX do microcontrolador;
• Comunicação Bluetooth 2.0;
• Baud rate: 2.400 a 1.382.400 bps;
• Tensão de alimentação: 5,0 V (3,6V a 6,0V);
• Corrente: 35mA quando realiza "pareamento"; 8mA quando conectado;
• Antena impressa na própria placa;
• Possui LED que indica o estado da conexão Bluetooth;
• Senha padrão: 1234.
Conexão em rede ZigBee • ZigBee designa um conjunto de especificações para a
comunicação sem-fio entre dispositivos eletrônicos, com
ênfase na baixa potência de operação, na baixa taxa de
transmissão de dados e no baixo custo de implantação;
Módulo ZigBee • Módulo Digi XBee ZB - Antena Wire - Low Power
• Frequência de Transm.: 2,4 GHz
• Potência de Transm.: 1,25 mW
• Alcance Máximo estimado: até 120m (+1 dBm)
• Topologias de rede: P-to-P,rede ZigBee
• Sleep Mode < 1µA
• RF Data Rate 250 kbps
• Segurança: 128-bit AES
• (10) GPIO, (4) ADC e 3V3 CMOS UART
Módulo ZigBee • XBee e XBee-PRO ZB
• Frequência de Transm.: 2,4 GHz
• Potência de transm.: 63 mW (+18 dBm) / Int'l 10 mW (+10 dBm)
• Alcance Máximo estimado: 3200 m
• RF Data Rate: RF 250 kbps, Serial up to 1 Mbps
• Segurança: 128-bit AES
• Antena PCB