Interfaces Seriais Caio Ramos Setembro de 2008. Objetivos Apresentar as interfaces seriais mais...
Transcript of Interfaces Seriais Caio Ramos Setembro de 2008. Objetivos Apresentar as interfaces seriais mais...
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 3Caio Ramos
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 4Caio Ramos
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 5Caio Ramos
Evolução das Interfaces
• Exemplos:– Porta Serial Porta Paralela USB ou
FireWire– IDE SATA– ISA LPC– PCI e AGP PCI Express
Setembro de 2008 6Caio Ramos
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 7Caio Ramos
Evolução das Interfaces
• Colocar Figura da Placa mãe
• Colocar figura da impressora 1-wire
Setembro de 2008 8Caio Ramos
USB – Universal Serial Bus
Setembro de 2008 9Caio Ramos
• 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.
USB – Universal Serial Bus
Setembro de 2008 10Caio Ramos
• 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.
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
Setembro de 2008 12Caio Ramos
• 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.
USB – Universal Serial Bus
Setembro de 2008 13Caio Ramos
IEEE1394 Bus: FireWire
Setembro de 2008 14Caio Ramos
• 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.
IEEE1394 Bus: FireWire
Setembro de 2008 15Caio Ramos
• Características:– Até 63 dispositivos– Plug and Play– Cabo de até 4,5 metros– Comunicação Peer-to-Peer
IEEE1394 Bus: FireWire
Setembro de 2008 16Caio Ramos
IEEE1394 Bus: FireWire
Setembro de 2008 17Caio Ramos
• 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.
FireWire vs USB 2.0
Setembro de 2008 18Caio Ramos
Evolução das Interfaces
• Colocar Figura da Placa mãe
• Colocar figura da impressora 1-wire
Setembro de 2008 19Caio Ramos
SATA - Serial Advanced Technology Attachment
Setembro de 2008 20Caio Ramos
• 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
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
• 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
SATATecnologias 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
SATATecnologias Relacionadas
SATATecnologias 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
Setembro de 2008 26Caio Ramos
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
SATA - Desempenho
Setembro de 2008 Caio Ramos 27
PCI-Express
Setembro de 2008 28Caio Ramos
• Introduzido pela Intel em 2004, com o objetivo de substituir as interfaces PCI e AGP.
• A partir de 15 de janeiro de 2007, o PCI-SIG 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
PCI-Express
Setembro de 2008 29Caio Ramos
• 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)
PCI-Express
Setembro de 2008 30Caio Ramos
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 31Caio Ramos
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
MbpsSetembro de 2008 32Caio Ramos
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 33Caio Ramos
RS-485 – Distância x taxa de transmissão
Setembro de 2008 34Caio Ramos
RS-485
Setembro de 2008 35Caio Ramos
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 36Caio Ramos
RS-485
Setembro de 2008 37Caio Ramos
I2C – Inter-Integrated Circuit
Setembro de 2008 38Caio Ramos
• 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)
I2C – Inter-Integrated Circuit
Setembro de 2008 39Caio Ramos
I2C – Inter-Integrated Circuit
Setembro de 2008 40Caio Ramos
• 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
I2C – Inter-Integrated Circuit
Setembro de 2008 41Caio Ramos
• 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
I2C – Inter-Integrated Circuit
Setembro de 2008 42Caio Ramos
• 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
dispositivos
I2C – Inter-Integrated Circuit
Setembro de 2008 43Caio Ramos
• 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
• 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 – Comunicação
Setembro de 2008 Caio Ramos 46
I2C – Inter-Integrated Circuit
Setembro de 2008 Caio Ramos 47
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 48
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 49
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 50
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 sido recebido.
Setembro de 2008 Caio Ramos 51
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 52
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 53
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 54
I2C Exemplos de transmissão
• Transmissão do MASTER para o SLAVE, sem alteração de direção.
Setembro de 2008 Caio Ramos 55
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 56
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 57
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 58
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 59
I2C - Endereçamento
ENDEREÇO SLAVE
R/W
0000 000 0 Endereço dechamada 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 60
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 61
SMBusNovas 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
SPISerial 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
• MSBSetembro 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
Setembro de 2008 Caio Ramos 66
• 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..
SPI
Setembro de 2008 Caio Ramos 67
• 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
SPIModos de configuração
Setembro de 2008 Caio Ramos 68
SPIModos de configuração
Setembro de 2008 Caio Ramos 69
• Registros:– Registros de configuração
• Clock, modo, número de bits,
– Registro de buffer de recepção– Registro de buffer de transmissão– Etc.
SPI
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 possibleSetembro 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/firewire-
usb.pdf• http://www.qimaging.com/support/kb/whitepapers/
firewire_usb_technote.pdf• http://www.csun.edu/~vcact00f/311/termProjects/700class/
USB2.0vsFireWire.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-de-
comunicacao-i2c• http://dee.feg.unesp.br/Disciplinas/SEL3103/PDF/microp_cap9-
Serial.pdf• http://www.ee.pucrs.br/~terroso/html/protocolos.html#spi
Setembro de 2008 Caio Ramos 74