Aula 04 - I/O e protocolos de comunicação PDF
Document Details
Uploaded by SelfDeterminationOmaha
Instituto Tecnológico de Aeronáutica - ITA
Harlei M. A. Leite
Tags
Summary
This document is a lecture on I/O and communication protocols for embedded systems and microcontrollers. It covers topics including input/output, various communication protocols, and communication strategies. The lecture is targeted at an undergraduate level at the Aeronautics Institute of Technology - ITA.
Full Transcript
EEA-27 Microcontroladores e Sistemas Embarcados Aula 04 - I/O e protocolos de comunicação Prof. Dr. Harlei M. A. Leite Aeronautics Institute of Technology - ITA Electronic Engineering Division Department of Applied Electronics Conteúdo 1. 2. 3. Entrada e saída (I/O) Protocolos Referências Prof. Dr....
EEA-27 Microcontroladores e Sistemas Embarcados Aula 04 - I/O e protocolos de comunicação Prof. Dr. Harlei M. A. Leite Aeronautics Institute of Technology - ITA Electronic Engineering Division Department of Applied Electronics Conteúdo 1. 2. 3. Entrada e saída (I/O) Protocolos Referências Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Entrada e saída (I/O) Introdução Se refere ao fluxo de informação do ponto de vista do processador. Entrada: Chegada de dados à CPU. O dado sai de um dispositivo e vai para a CPU. Ex: teclado, sensor, mouse, microfone, etc. Saída: Saída de dados da CPU. O dado sai da CPU e vai para um dispositivo. Ex: display, led, buzzer, monitor, atuador, etc. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Entrada e saída (I/O) Introdução Existem dois métodos principais para acessar dispositivos I/O: ○ ○ I/O mapeada em portas (port-mapped I/O); I/O mapeada em memória (memory-mapped I/O). Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Entrada e saída (I/O) I/O mapeada em portas Os dispositivos ocupam um espaço de endereçamento diferente da memória. Cada porta de I/O tem um endereço de memória específico. Neste caso, algumas instruções especiais (IN e OUT) são usados para transferir dados entre o dispositivo e o uP. O dispositivo é referenciado pelo número da porta quando especificado por essas instruções especiais. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Entrada e saída (I/O) I/O mapeada em portas Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Entrada e saída (I/O) I/O mapeada em memória O espaço de endereçamento dos dispositivos I/O faz parte do espaço de endereçamento do sistema. Não necessita de instruções especiais (e.g., IN e OUT) para mover dados entre os dispositivos e o uP. Comandos como MOV e ADD funcionam para isso. O espaço de memória usado pelos dispositivos I/O não pode ser utilizado pelo sistema. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Entrada e saída (I/O) I/O mapeada em memória Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Introdução Permitem a troca de informações entre vários dispositivos. Torna a comunicação segura e eficiente. É formado por um conjunto de regras. Um sistema embarcado pode receber dados de sensores e enviar comandos para atuadores por meio de protocolos de comunicação. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Métodos de comunicação Simples: Comunicação unidirecional. Ex: transmissão de TV. Ex: Transmissão de sinal de TV Half-duplex: Comunicação bidirecional, mas nunca ao mesmo tempo. Ex: Walkie-Talkies Full-duplex: Comunicação bidirecional, simultaneamente. Ex: Chamada telefônica Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial Os dados são transmitidos bit a bit, em sequência, por um único canal de comunicação. Um único fio (caminho de comunicação) é usado para enviar e receber dados, reduzindo seu custo e volume devido a sua simplicidade. Protocolo de comunicação mais complexo: ○ É preciso quebrar palavras em bits, sequenciar a transmissão e reagrupar os bits para compor as palavras novamente. ○ Sinais de controle e de dados podem ser multiplexados na mesma trilha, o que aumenta a complexidade do protocolo de comunicação. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação paralela Múltiplos bits de dados são transmitidos simultaneamente por vários fios de comunicação. Cada bit tem seu próprio caminho dedicado. Tipicamente utilizado para conectar dispositivos no mesmo CI ou na mesma placa de circuito impresso. É preciso isolar as trilhas para reduzir a interferência, aumentando o seu custo e volume ocupado. O barramento deve ser curto, para evitar atrasos na propagação devido ao desalinhamento temporal entre os dados nas trilhas. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação sem fio É realizada por meio de ondas eletromagnéticas, em uma variedade de frequências. Exemplos: Wi-Fi, Bluetooth, 4G, 5G, infravermelho, radiofrequência (RF), etc. O alcance é determinado pela potência de transmissão. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Estratégias de comunicação Síncrona: o sinal de clock é compartilhado entre o transmissor e receptor. Isso permite que o receptor mantenha o sincronismo durante a recepção de longas mensagens. É frequentemente utilizada em sistemas onde a precisão temporal é crucial. Assíncrona: os dados são transmitidos sem um sinal de clock compartilhado. Cada pacote de dados inclui informações de controle de tempo, como start bit e stop bit, que usualmente tem o nível de tensão oposto ao de descanso, que permite que o receptor entre em sincronismo com o transmissor para os dados subsequentes. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Estratégias de comunicação Exemplo de comunicação assíncrona. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial Serial Peripheral Interface (SPI) ○ Comunicação Full-Duplex desenvolvido pela Motorola para oferecer uma interface simples e de baixo custo entre microcontroladores e chips periféricos. ○ Utilizada em microcontroladores, chips de memória Flash, e outros dispositivos que necessitem de uma interface simples e de velocidade razoável. ○ É um protocolo síncrono em que todas as transmissões são referenciadas a um clock comum, geralmente pelo mestre (processador). ○ O periférico escravo usa o clock (SCK) para sincronizar a aquisição do fluxo de dados. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial Serial Peripheral Interface (SPI) ○ ○ ○ ○ CLK (serial clock): pulso de clock gerada pelo mestre para sincronização. MOSI (master out slave in): por onde o mestre envia dados para o escravo. MISO (master in slave out): por onde o escravo envia dados para o mestre. SS (slave select): usado para selecionar o escravo durante a comunicação. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial Serial Peripheral Interface (SPI) ○ A troca de dados deve acontecer nas duas direções, ou seja, para o mestre enviar 1 bit, ele precisa receber 1 bit, pois o controlador é baseado em um registrador de deslocamento (cascata de flip-flops) ligada ao mesmo sinal de clock, onde a saída de um flip-flop é ligada na entrada de outro. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial Serial Peripheral Interface (SPI) ○ Exemplo de transferência de dados Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial I2C (Inter-Integrated Circuit) ○ Projetado pela Philips Semiconductors há mais de 20 anos, é um protocolo de barramento serial com dois fios. ○ Barramento bidirecional (half-duplex), de baixa velocidade e síncrono com um clock em comum. ○ Dispositivos podem ser acrescentados ou removidos do barramento I2C sem afetar os demais. ○ Mais do que um dispositivo pode assumir o papel de mestre do barramento. ○ Cada dispositivo conectado ao barramento I2C tem um endereço único e pode operar como um transmissor (mestre), um receptor (escravo) ou ambos. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial I2C (Inter-Integrated Circuit) Resistor de pull-up que garante que as linhas ficam no nível lógico ALTO quando ociosas. Os dispositivos conectados ao barramento ou deixam a linha em seu nível normal ou forçam seu nível lógico para BAIXO. SDA - dado serial SCL - clock serial Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial I2C (Inter-Integrated Circuit) ○ Processo de comunicação via I2C (condição de partida) Quando inativos, SDA e SCL ficam no nível ALTO. A transferência começa com uma transição de ALTO para BAIXO (borda de descida) do sinal SDA enquanto SCL está ALTO, seguido de SCL indo para BAIXO. Isto indica a todos os receptores no barramento que um pacote de transmissão está em seu início. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial I2C (Inter-Integrated Circuit) ○ Processo de comunicação via I2C (transição de cada bit) Cada bit a ser transmitido precisa ser colocado na linha SDA enquanto SCL está BAIXO (barra azul). O dado é recebido quando SCL fica ALTO (barra verde). Este processo se repete para os demais bits. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial I2C (Inter-Integrated Circuit) ○ Processo de comunicação via I2C (condição de parada) A transferência termina com uma transição de SDA de nível BAIXO para ALTO (borda de subida) enquanto SCL está em nível ALTO. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Pacote de informações Comunicação serial I2C (Inter-Integrated Circuit) ○ Processo de comunicação via I2C Cada byte transmitido deve ser confirmado pelo receptor. Após a transmissão do oitavo bit de dado, o mestre libera a linha SDA e gera um pulso adicional de clock em SCL. Isto aciona o receptor, que, então, deve confirmar o recebimento do byte colocando a linha SDA em BAIXO. Se o receptor não faz isso, o mestre aborta a transmissão e toma medidas apropriadas de tratamento de erro. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Start Client address Direction (R/W) = 1 (leitura) ou 0 (escrita) ACK (Confirmação) Data bytes Stop Protocolos Comunicação serial I2C (Inter-Integrated Circuit) ○ Processo de comunicação via I2C Existem endereços associados a chamadas especiais de um mestre. Por exemplo, o endereço 00000000 com bit de direção 0 (escrita) indica que o mestre deseja transmitir o byte para todos os escravos conectados ao barramento (broadcast). Quando mais de um dispositivo assume o papel de mestre, é preciso utilizar uma técnica de arbitragem, que pode ser via software ou hardware. Vários dispositivos podem interfacear com o barramento I2C, tais como EEPROMS, flash, algumas memórias RAM, temporizadores watchdog, microcontroladores, etc; Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial USB (Universal Serial Bus) ○ Criado pela Intel em 1994, junto com outras empresas (Microsoft, HP, NEC, Apple). ○ Facilita a conexão de dispositivos periféricos ao PC (Plug & Play). ○ Hoje é o padrão de interconexão mais utilizado. ○ Segue o modelo mestre/escravo, também chamado de (host/device). Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial USB (Universal Serial Bus) ○ Padrões até o momento Versão Ano Taxa de transferência USB 1.0 1996 Até 12 Mbit/s USB 1.1 1998 Até 12 Mbit/s USB 2.0 2000 Até 480 Mbit/s USB 3.0 2008 Até 4.8 Gbit/s USB 3.1 2013 Até 10 Gbit/s USB 3.2 2017 Até 20 Gbit/s USB 4.0 (USB-C) 2019 Até 40 Gb/s Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Compatíveis Compatíveis Protocolos Comunicação serial USB (Universal Serial Bus) ○ ○ ○ ○ ○ Comunicação assíncrona. Half-duplex (USB 1.x, 2.x, 3.0 e 3.1). Full-duplex (USB 3.2 e 4.0). Interface fornece alimentação (5 V, até 500mA). Máximo de 127 dispositivos conectados. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial USB (Universal Serial Bus) ○ Interface Elétrica - USB 3.0 Dois pinos diferenciais de dados (D+, D-). Eles formam um par diferencial usado para enviar sinais de dados. A comunicação ocorre através da variação da tensão entre esses dois pinos. Um pino de alimentação (VBUS). Este pino fornece energia ao dispositivo conectado. Ele é usado para alimentar dispositivos USB. Um de terra (GND). Fornece uma referência de tensão comum para os outros pinos. Todos os dispositivos conectados ao barramento USB compartilham o mesmo terra para garantir uma referência de tensão consistente. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial USB (Universal Serial Bus) ○ Interface Elétrica - USB 3.0 O canal D+ oscila entre as tensões de 2,5 V e 5 V. O canal D- oscila entre as tensões de 0 V e 2,5 V. D+ D- BIT 2.5 V 0V NULL 2.5 V 2.5 V 0 5V 0V 1 5V 2.5 V NULL Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial UART (Universal Asynchronous Receiver/Transmitter) ○ Comunicação assíncrona, ou seja, comandos precisam ser passados para sincronização. ○ Um bit de start é enviado antes da palavra a ser enviada. ○ Um bit de stop é enviado ao final da palavra. ○ É comum haver um bit de paridade para chegar erros de transmissão. ○ O tamanho da palavra a ser recebia / transmitida, assim como velocidade da transmissão, devem ser configurados e acordados entre receptor e transmissor. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial UART (Universal Asynchronous Receiver/Transmitter) ○ Exemplo de comunicação Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial UART (Universal Asynchronous Receiver/Transmitter) ○ Exemplo de comunicação Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação serial UART (Universal Asynchronous Receiver/Transmitter) ○ ○ TX - Transmitter RX - Receiver Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação paralela Barramento PCI (Peripheral Component Interconnect) ○ História Antes do surgimento do PCI, o barramento ISA (Industry Standard Architecture) reinava. Com o tempo, o barramento ISA se tornou obsoleto, sendo o gargalo nos computadores. Vendo isso, a Intel desenvolveu o barramento PCI e lançou no dia 22 de junho de 1992, durante o desenvolvimento do Pentium 3, se tornando o padrão definitivo do mercado. Na sequência, veio o padrão PCI-X (Peripheral Component Interconnect eXtended). Com o avanço dos jogos e aplicações gráficas, os processadores e memórias ganharam mais desempenho e o barramento PCI se tornou obsoleto, se tornando o gargalo. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação paralela Barramento PCI ○ História Em 2003 surge o barramento serial PCI Express, abreviado por PCIe, utilizado até os dias atuais. O PCIe é um barramento sequencial, permitindo a sua operação em altas frequências com um risco menor de ocorrer interferência eletromagnética no trajeto quando comparado com o PCI, que apresenta um conjunto de linhas adjacentes. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Protocolos Comunicação sem fio Características ○ Vantagens: ○ ○ ○ Permitem a transmissão de dados sem fios Manutenção Custo Mobilidade Desvantagens ○ ○ ○ ○ ○ Segurança Infraestrutura Alcance do sinal Interferência Velocidade de transmissão Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Referências Andrew S. Tanenbaum; Todd Austin. Organização Estruturada de Computadores. 6ª edição. Pearson, 2013. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados