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
Download

InterfaceSerial14092008