interfaces seriais caio ramos setembro de 2008. objetivos apresentar as interfaces seriais mais...
TRANSCRIPT
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