Interfaces Seriais Caio Ramos Setembro de 2008 Objetivos • Apresentar as interfaces seriais mais utilizadas atualmente; • Aprofundar os conhecimentos nas interfaces I2C e SPI. Setembro de 2008 Caio Ramos 2 Tópicos • • • • • • • • • • Introdução Evolução das interfaces de comunicação USB FireWire SATA PCI Express RS-485 I2C SMBus SPI Setembro de 2008 Caio Ramos 3 Introdução • As interfaces são necessárias para expandir a capacidade dos processadores e microcontroladores; – Números de portas de E/S – Divisão de tarefas – Acesso a memórias • Interfaces seriais e paralelas; – Número de conexões – Número de bits transmitidos a cada ciclo de clock Setembro de 2008 Caio Ramos 4 Evolução das Interfaces • Busca constante por maiores taxas de transmissão de dados – Aumento do clock de transmissão – Aumento do número de conexões? • Problemas: – Signal integrity e roteamento – Paralelismo e sincronismo – Imunidade a ruídos Setembro de 2008 Caio Ramos 5 Evolução das Interfaces • Exemplos: – Porta Serial Porta Paralela USB ou FireWire – IDE SATA – ISA LPC – PCI e AGP PCI Express Setembro de 2008 Caio Ramos 6 Interfaces Seriais • Existem diversos tipos de interfaces seriais que são utilizadas em várias aplicações. • RS-232, RS-485, I2C (SMBus), LPC, SPI, SATA, USB, FireWire, One-Wire, PCI Express. Setembro de 2008 Caio Ramos 7 Evolução das Interfaces • Colocar Figura da Placa mãe • Colocar figura da impressora 1-wire Setembro de 2008 Caio Ramos 8 USB – Universal Serial Bus • Surgiu de uma aliança promovida por várias empresas (como NEC, Intel e Microsoft) com o intuito de desenvolver uma tecnologia que permitisse o uso de um tipo de conexão comum entre computador e periféricos: a USB Implementers Forum. Setembro de 2008 Caio Ramos 9 USB – Universal Serial Bus • Características: – Diferencial – Plug and Play – Cabo de até 5 metros – Fornece alimentação de 5V (Bus Powered Devices) • 100 mA • 500 mA, requer negociação através do protocolo. Setembro de 2008 Caio Ramos 10 USB – Camada Física Pino Nome Descrição 1 Vcc +5 Vdc 2 D- Data- 3 D+ Data+ 4 GND Ground USB – Universal Serial Bus • Pode-se conectar até 127 dispositivos. • Taxas de transmissão: – Low Speed: 1,5 Mbps – Full Speed: 12 Mbps – High Speed: 480 Mbps (USB 2.0) • High Speed requer negociação. Setembro de 2008 Caio Ramos 12 USB – Universal Serial Bus Setembro de 2008 Caio Ramos 13 IEEE1394 Bus: FireWire • Criado em 1995; • Baseado no barramento FireWire, utilizado pela Apple; • Também recebe o nome de iLink e Digital Link, nos produtos da eletrônicos da Sony. Setembro de 2008 Caio Ramos 14 IEEE1394 Bus: FireWire • Características: – Até 63 dispositivos – Plug and Play – Cabo de até 4,5 metros – Comunicação Peer-to-Peer Setembro de 2008 Caio Ramos 15 IEEE1394 Bus: FireWire Setembro de 2008 Caio Ramos 16 IEEE1394 Bus: FireWire • Características: – 3 velocidades de operação: • 98,404 Mbps (100 Mbps) • 196,608 Mbps (200 Mbps) • 393,216 Mbps (400 Mbps) – Fornece alimentação para os dispositivos • 1.25A/12V (max), com cabo de 6 pinos. Setembro de 2008 Caio Ramos 17 FireWire vs USB 2.0 Setembro de 2008 Caio Ramos 18 Evolução das Interfaces • Colocar Figura da Placa mãe • Colocar figura da impressora 1-wire Setembro de 2008 Caio Ramos 19 SATA - Serial Advanced Technology Attachment • SATA-IO (SATA International Organization) é a entidade que controla o padrão, formada em 2004 • A revisão 1.0 foi publicada em 2001, com o objetivo de substituir a interface paralela • Objetivo: – Melhorar cabeamento, custo dos cabos e conectores, ventilação interna do gabinete Setembro de 2008 Caio Ramos 20 SATA - Características • LVDS (Low-voltage Differential Signaling) • Taxas de transmissão de 150 MB/s e 300 MB/s • Cabo de até 1 metro • Cada dispositivo é conectado diretamente ao host. Setembro de 2008 Caio Ramos 21 SATA Tecnologias Relacionadas • NCQ (Native Command Queuing): – Permite ao HD organizar as solicitações de gravação ou leitura de dados numa ordem que faz com que as cabeças se movimentem o mínimo possível, aumentando (pelo menos teoricamente) o desempenho do dispositivo e sua vida útil. – Obrigatório no SATA II e opcional no padrão SATA I. Setembro de 2008 Caio Ramos 22 SATA Tecnologias Relacionadas • Link Power Management – Três estados: ativo (active), parcialmente ativo (partial) ou inativo (slumber). – Permite ao HD economizar energia • Staggered Spin-Up – Permite ativar ou desativar HDs trabalhando em conjunto sem interferir no funcionamento do grupo de discos. – Recurso muito útil em sistemas RAID – Também melhora a distribuição de energia entre os discos. Setembro de 2008 Caio Ramos 23 SATA Tecnologias Relacionadas • Hot Plug – Permite conectar o disco ao computador com o sistema operacional em funcionamento. Esse é um recurso muito usado em HDs do tipo removível. • eSATA / xSATA – Permite ao cabo do HD ter um tamanho maior sem que haja perda de dados significativa – eSATA: até 2 metros – xSATA: até 8 metros Setembro de 2008 Caio Ramos 24 SATA - Imagens Setembro de 2008 Caio Ramos 25 SATA Características SATA 1.5 Gb/s SATA 3 Gb/s Frequência 1500 MHz 3000 MHz Bits/clock 1 1 Codificação 8B/10B 80% 80% bits/Byte 8 8 Velocidade máxima teórica 150 MB/s 300 MB/s Setembro de 2008 Caio Ramos 26 SATA - Desempenho Setembro de 2008 Caio Ramos 27 PCI-Express • Introduzido pela Intel em 2004, com o objetivo de substituir as interfaces PCI e AGP. • A partir de 15 de janeiro de 2007, o PCISIG disponibilizou o PCI Express versão 2.0 – Dobra a taxa de transferência da versão 1.1 – Mantém compatibilidade com a 1.1 Setembro de 2008 Caio Ramos 28 PCI-Express • A versão PCIe 3.0 é esperada para 2009/2010 • Conexão ponto a ponto – Canais seriais usando LVDS – Full-duplex • Taxas diferentes de acordo com o número de conexões (x1, x2, x4, x16) – x1 = 250 MB/s (500 MB/s na versão 2.0) Setembro de 2008 Caio Ramos 29 PCI-Express Setembro de 2008 Caio Ramos 30 RS-485 • Padrão definido pela EIA (Electronics Industry Association) – Definiu os padrões RS-485, RS-232, RS-422 – RS (Recommended Standard) – Atualmente são chamados de EIA-XXX. • O padrão define apenas características elétricas (camada física), mas não define nenhum tipo de protocolo. – Problemas de compatibilidade entre equipamentos de fabricantes diferentes. Setembro de 2008 Caio Ramos 31 RS-485 • Características: – 2 fios – Diferencial – Half-Duplex – Multi-ponto (até 32 pontos) – Distâncias de até 1200 metros, com taxas de 100 Kbps – Em distâncias pequenas, pode alcançar até 10 Mbps Setembro de 2008 Caio Ramos 32 RS-485 • Modo diferencial: – Fios A e B – Nivél lógico de acordo com a “diferença” entre A e B. – Nível lógico 1: A positivo e B negativo – Nível lógico 0: B for positivo e A negativo. Setembro de 2008 Caio Ramos 33 RS-485 – Distância x taxa de transmissão Setembro de 2008 Caio Ramos 34 RS-485 Setembro de 2008 Caio Ramos 35 RS-485 • Um uso típico do RS-485 é uma rede formada por um Mestre (PC, por exemplo) conectado a vários dispositivos (escravos) • O mestre inicia a comunicação, endereçando um único escravo • O escravo então responde a requisição Setembro de 2008 Caio Ramos 36 RS-485 Setembro de 2008 Caio Ramos 37 I2C – Inter-Integrated Circuit • Desenvolvido pela Philips em 1996 • Comunicação a 2 fios – SDC: serial clock – SDA: serial data – Os sinais são coletor aberto • Bidirecional (half-duplex) Setembro de 2008 Caio Ramos 38 I2C – Inter-Integrated Circuit Setembro de 2008 Caio Ramos 39 I2C – Inter-Integrated Circuit • Taxa de transferência: – 100 Kbps: standard mode – 400 Kbps: fast mode (F) – 1 Mbps: fast mode plus (Fm+) – 3.4 Mbps: high speed mode • Endereçamento – 7 bits: padrão – 10 bits Setembro de 2008 Caio Ramos 40 I2C – Inter-Integrated Circuit • Nível lógico – Diversos processos de fabricação: TTL, CMOS, NMOS – Não possuem valores pré-definidos – Dependem da tensão de alimentação • MSB enviado primeiro Setembro de 2008 Caio Ramos 41 I2C – Inter-Integrated Circuit • Dispositivos no barramento – Mestre: envia o clock e o endereço do escravo – Escravo: lê o clock e o endereço • Multi-mestre – Vários dispositivos pode controlar o barramento • Arbitrariedade – Visa não corromper a transmissão dos dados e perder a sincronia do clock • Sincronização – Procedimento p/ sincronizar o clock de um ou mais Setembro de 2008 Caio Ramos dispositivos 42 I2C – Inter-Integrated Circuit • Dispositivos no barramento – Mestre: envia o clock e o endereço do escravo – Escravo: lê o clock e o endereço • Multi-mestre – Vários dispositivos pode controlar o barramento Setembro de 2008 Caio Ramos 43 I2C – Comunicação • O dispositivo mestre ajusta a condição inicial (start) – O start bit é indicado por uma transição de alto para baixo do SDA, mantendo o clock alto • O dispositivo master envia 7 bis de endereçamento. – Transições para os bits de dados são feitas enquanto o clock está baixo • O dispositivo master envia o 8º bit, RW/ Setembro de 2008 Caio Ramos 44 I2C – Comunicação • O dispositivo slave envia o sinal de ACK (Acknowledge) • O dispositivo master (ou slave) envia pacotes de 8 bits de dados, sempre seguidos de um sinal ACK enviado pelo dispositivo slave (ou master) confirmando a recepção. • O dispositivo master encerra a comunicação. – O stop bit é indicado por uma transição de baixo para alto do SDA, mantendo o clock alto. Setembro de 2008 Caio Ramos 45 I2C – Inter-Integrated Circuit Setembro de 2008 Caio Ramos 46 I2C – Start e Stop bit • São gerados pelo mestre • A barra é considerada como ocupada após a condição de partida, e livre após a condição de parada Setembro de 2008 Caio Ramos 47 I2C – Transmissão de dados • O número de bytes que pode ser transferido é ilimitado • Cada byte é acompanhado de um bit de reconhecimento. Setembro de 2008 Caio Ramos 48 I2C – Transmissão de dados • Se o IC receptor (escravo) não for capaz de receber um outro byte de dados até que alguma função seja executada, como por exemplo uma interrupção interna, ele deverá levar a linha de clock a nível L , forçando o Mestre a entrar em um modo de espera. Os dados serão lidos novamente, quando o escravo liberar a linha de clock. Setembro de 2008 Caio Ramos 49 I2C – Reconhecimento (ack) • É obrigatório • O MASTER libera a linha SDA (nível H) durante a ocorrência dos pulsos de clock. O IC receptor (SLAVE) leva a linha SDA a nível L durante o período H do pulso de reconhecimento. • Usualmente, o SLAVE endereçado é obrigado a gerar um reconhecimento logo após cada byte ter Caio sido recebido. Setembro de 2008 Ramos 50 I2C – Reconhecimento (ack) • Quando não ocorre uma confirmação após o mestre enviar algum byte, ele deve gerar uma condição de parada e abortar a comunicação. Setembro de 2008 Caio Ramos 51 I2C – Conflitos de clock • Cada Mestre gera seu próprio clock na linha SCL • Os dados são válidos apenas durante o período H dos pulsos de clock. • O período L é determinado pelo IC com o clock de maior período L e o período H pelo IC com o clock de menor período H. Setembro de 2008 Caio Ramos 52 I2C – Conflitos de dados • Se um MASTER está transmitindo um nível H, enquanto outro está transmitindo um nível L, o estágio de saída de dados deste MASTER será desativado, porque o nível da barra não corresponde ao seu próprio nível Setembro de 2008 Caio Ramos 53 I2C Exemplos de transmissão • Transmissão do MASTER para o SLAVE, sem alteração de direção. Setembro de 2008 Caio Ramos 54 I2C Exemplos de transmissão • Transmissão do SLAVE para o MASTER logo após a leitura do primeiro byte. Setembro de 2008 Caio Ramos 55 I2C Exemplos de transmissão • No momento do primeiro reconhecimento, o MASTER passa a assumir o papel de receptor e o SLAVE o de transmissor. Este reconhecimento é ainda gerado pelo SLAVE. Setembro de 2008 Caio Ramos 56 I2C - Endereçamento • O primeiro byte após o start bit determina o endereço do escravo • A exceção é o endereço de "chamada geral " que endereça todos os ICs. Setembro de 2008 Caio Ramos 57 I2C - Endereçamento • 1111XXX é reservado com propósitos de extensões futuras. • 1111111 é reservado aos endereços de extensão – Processo de endereçamento deve continuar nos bytes seguintes • 0000XXX foi definida como um grupo especial. • 0000000 é o endereço de chamada geral – O significado do endereço de chamada geral é sempre especificado no segundo byte. Setembro de 2008 Caio Ramos 58 I2C - Endereçamento ENDEREÇO SLAVE R/W 0000 000 0 Endereço de chamada geral 0000 000 1 byte de partida 0000 001 X endereço CBUS 0000 010 X endereço reservado 0000 011 X a ser definido 0000 100 X 0000 101 X 0000 110 X 0000 111 X Setembro de 2008 Caio Ramos 59 SMBus • Baseado na especificação I2C • A primeira especificação é de 1995 – Versão 1.1: 1998 – Versão 2.0: 2000 • Desenvolvido primeiramente para baterias inteligentes e carregadores • Muito utilizado entre dispositivos de uma placa-mãe – – – – Controladores de tensão Carregadores de bateria Sensores de fan, temperatura, tensão Configuração de dispositivos Setembro de 2008 Caio Ramos 60 SMBus Novas capacidades • Reconfiguração dinâmica – Conexão e desconexão de dispositivos no barramento • Atribuição de endereço dinâmica • Adição de novos sinais (opcionais) – SMBUS#: indica suspend mode – SMBALERT#: indica que um escravo tem algo para transmitir Setembro de 2008 Caio Ramos 61 SPI Serial Peripheral Interface • É um link de dados serial, definido pela Motorola • Full duplex • Mestre – escravo – Somente 1 mestre, com 1 ou mais escravos • Os escravos são selecionados através de conexões (slave select) individuais • MSB Setembro de 2008 Caio Ramos 62 SPI • O barramento SPI possui 4 sinais: – SCLK — Serial Clock (output from master) – MOSI/SIMO — Master Output, Slave Input (output from master) – MISO/SOMI — Master Input, Slave Output (output from slave) – SS — Slave Select (active low; output from master) Setembro de 2008 Caio Ramos 63 SPI Setembro de 2008 Caio Ramos 64 SPI • O chip select é ativo baixo – Alguns dispositivos requerem a borda de descida. Exemplo: MAX1242, um ADC, inicia a conversão após a descida do slave select. • A maioria dos dispositivos deixam suas saídas em alta impedância quando não estão selecionados – Sem essa característica, o escravo não pode compartilhar o barramento com outros dispositivos Setembro de 2008 Caio Ramos 65 SPI – Aplicações • EEPROM e Flash – AT250X0, 25LCXX, NM93CXX, AT45D0XX, NX25FXX • ADC e DAC – ADS1210, ADS1212, ADS1286, ADS7834, ADS8321, CS5531 – AD5530, AD7394, AD8303, DAC8143, TLV5636, TLV5627, TLV5618 • RTC – NM25CXX, MC68HC86T1 • Controlador CAN – 82527, MCP2510 • Microcontroladores, DSP, Controlador USB, Sensor de Temperatura, etc.. Setembro de 2008 Caio Ramos 66 SPI Setembro de 2008 Caio Ramos 67 SPI Modos de configuração • Modo 0 – Mestre envia dado na subida do clock e recebe na descida do mesmo • Modo 1 – Mestre envia dado ½ ciclo à frente da subida do clock e recebe dado na subida do mesmo • Modo 2 – Mestre envia dado na descida do clock e recebe na subida do mesmo • Modo 3 – Mestre envia dado ½ cliclo à frente da subida do clock e recebe na descida do mesmo Setembro de 2008 Caio Ramos 68 SPI Modos de configuração Setembro de 2008 Caio Ramos 69 SPI • Registros: – Registros de configuração • Clock, modo, número de bits, – Registro de buffer de recepção – Registro de buffer de transmissão – Etc. Setembro de 2008 Caio Ramos 70 SPI - Vantagens • Full Duplex • Taxas maiores do que I2C or SMBus • Flexibilidade de protocolo – Não limitado a palavras de 8 bits – Flexibilidade de escolha de tamanho, conteúdo e função das mensagens • Menos circuitos – Lower power requirements than I²C or SMBus due to less circuitry (including pullups) Setembro de 2008 Caio Ramos 71 SPI – Desvantagens • Requer mais pinos do que a I2C – Não possui endereçamento, logo necessita de um SS para cada escravo • Não possui controle de fluxo • Não tem confirmação de recebimento – No hardware slave acknowledgment (the master could be "talking" to nothing and not know it) • Suporta somente um dispositivo mestre • Without a formal standard, validating conformance is not possible Setembro de 2008 Caio Ramos 72 Referências • Gook, Michael. PC Hardware Interfaces: A Developer’s Reference. Unated States of America: ALIST, 2004. • http://www.infowester.com/usb.php • http://ece.ut.ac.ir/classpages/F83/Interface/USB.ppt • http://informatica.hsw.uol.com.br/portas-usb.htm • http://www.powerlandcomputers.com/PDF%20Brochures/firewireusb.pdf • http://www.qimaging.com/support/kb/whitepapers/firewire_usb_tec hnote.pdf • http://www.csun.edu/~vcact00f/311/termProjects/700class/USB2.0v sFireWire.pdf • http://www.infowester.com/serialata.php Setembro de 2008 Caio Ramos 73 Referências • http://pt.wikipedia.org/wiki/Serial_ATA • http://www.clubedohardware.com.br/artigos/564 • http://www.lisha.ufsc.br/~guto/teaching/ish/devices/eia485/overview .pdf • http://www.cic.unb.br/~bordim/TD/Arquivos/G10_Monografia.pdf • http://jeronimomachado.vilabol.uol.com.br/I2C.htm • http://www.ee.pucrs.br/~terroso/html/protocolos.html • http://www2.eletronica.org/artigos/eletronica-digital/protocolo-decomunicacao-i2c • http://dee.feg.unesp.br/Disciplinas/SEL3103/PDF/microp_cap9Serial.pdf • http://www.ee.pucrs.br/~terroso/html/protocolos.html#spi Setembro de 2008 Caio Ramos 74