400 likes | 524 Views
Pontifícia Universidade Católica - PUCRS. Programação de Periféricos. Seminário sobre protocolo Firewire. – Palestrantes – Natan Hoppe Thiago Ludwig. Porto Alegre, 24 de Outubro de 2007. História. Desenvolvido pela Apple Substituto do SCSI Padronizado em 1995 através da norma IEEE 1394.
E N D
Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto Alegre, 24 de Outubro de 2007.
História • Desenvolvido pela Apple • Substituto do SCSI • Padronizado em 1995 através da norma IEEE 1394. • Firewire 400, IEEE 1394a • Firewire 800, IEEE 1394b
Exemplos de aplicação Figura 1 – Filmadora Figura 2 – HD externo Figura 3 – Equipamento de áudio
Cabo – Firewire 400 • Alimentação: 2 pinos • Dados: 4 pinos • Distância máxima: 4,5m
Cabo – Firewire 800 • Alimentação: 2 pinos • Dados: 4 pinos • Aterramento: 2 pinos • Nulo: 1 pino • Distância máxima: 4,5m
Cabo Figura 4 – Cabo Firewire 400
Velocidade • Firewire: • Firewire 400: 400 Mbps = 50 MB/s • Firewire 800: 800 Mbps = 100 MB/s • USB: • USB 1.0: 1,5 Mbps = 0,188 MB/s • USB 1.1: 12 Mbps = 1,5 MB/s • USB 2.0: 480 Mbps = 60 MB/s
Velocidade Figura 5 – USB Vs Firewire
Topologia • Até 63 dispositivos na mesma porta Figura 6 – Exemplo de conexão dos periféricos
Nós e endereçamento • 1 Firewire – 1024 barramentos • 1 barramento – 64 nós • 1 nó – 256 TB • Endereçamento 64 bits
Nós e endereçamento Figura 7 – Hierarquia de endereçamento
Nós e endereçamento Figura 8 – Endereçamento • 10 bits: Número do barramento • 6 bits: Número do nó • 48 bits: Endereçamento de memória
Transferência de dados • Modo Assíncrono • Modo Isócrono • Frequência de operação: 8 KHz • Pacotes de diferentes modos podem ser transferidos no mesmo ciclo de clock.
Transferência de dados Figura 9 – Pacotes assíncronos e isócronos no mesmo ciclo.
Transferência de dados • Modo Assíncrono: • Read request • Write request • Read response • Write response • Lock request • Lock response • No Data
Transferência de dados • Modo Isócrono: • Data block
Camadas do protocolo • Physical Layer • Link Layer • Transaction Layer • Serial Bus Management Layer
Camadas do protocolo Figura 10 – Diagrama das camadas do protocolo
Physical Layer • Sinal elétrico, conector e cabo; • Responsável por transformar a topologia física em árvore lógica; • Usa Data Strobe Encoding para gerar o clock;
Physical Layer • Data Strobe Encoding Figura 11 – Data Strobe Encoding
Physical Layer • Reset; • Tree Identification; • Self Identification;
Physical Layer – Tree Identification Figura 12 – Antes da identificação Figura 13 – Depois da identificação
Physical Layer Tabela 1 – Alguns controladores de camada física
Link Layer • Gerenciamento de pacotes; • Verifica o CRC recebido e calcula e anexa o CRC a ser enviado; • Transferência isócrona; • Determina que tipo de transferência está em andamento.
Link Layer – Implementação básica • Interface com a Physical Layer; • Geração e verificação de CRC; • Transmissão e recepção de filas (FIFOs); • Registradores de interrupção; • Interface hospedeira (Host interface); • Pelo menos um canal DMA.
Link Layer – Interface PHY Tabela 2 – Sinais de interface Link Layer/Physical Layer
Link Layer Tabela 3 – Controladores de camada de link
Transaction Layer • Usado apenas para transferências assíncronas; • 5 tipos de transações: • Simple Quadlet Read; • Simple Quadlet Write; • Variable Lenght Read; • Variable Lenght Write; • Lock Transactions;
Transaction Layer – Pacote Figura 14 – Formato típico de um pacote assíncrono
Transaction Layer – Pacote Tabela 4 – Tabela com a descrição do pacote
Transaction Layer - Transação • Nó 1 envia Read Request; • Nó 2 responde com Ack; • Enquanto o Nó 1 espera o dado, o barramento é usado por outros nós; • Nó 2 envia o pacote com os dados; • Nó 1 responde com Ack;
Transaction Layer - Transação Figura 15 – Típica transação dividida
Transaction LayerTipos de Transação Figura 16 – Tipos de transação
Serial Bus Management Layer • Topologia lógica; • Mapa de velocidade; • Gerenciamento de energia; • Otimiza o tráfego do barramento.
Curiosidades • A Apple nunca pretendeu cobrar para o uso do nome FireWire. Podia ser usado por qualquer parte, desde que assinasse um acordo de que usaria o nome para um produto que era compatível com a versão original do padrão IEEE 1394-1995. Porém Steve Jobs estava convencido de que a Apple devia pedir US$ 1.00 por porta. Os lucros resultantes da cobrança de US$ 1.00 por porta de FireWire era significativo, particularmente os valores cobrados à Intel. A Intel tinha apostado muito na tecnologia do padrão IEEE 1394 com o novo padrão melhorado 1394a-2000. Em virtude disto, um grupo dentro da Intel usou este argumento para abandonar o apoio à tecnologia FireWire e trazer à luz do dia o novo e melhorado USB 2.0. Simultaneamente, a Sony e os outros partidários da tecnologia fizeram ver à Apple que todos eles tinham igualmente patentes e, conseqüentemente, também tinham direito a parte dos royalties cobrados por porta FireWire. Apple teria que pagar aproximadamente US$ 15.00 por porta aos outros criadores de tecnologia FireWire O resultado final foi a criação da 'Autoridade de Licenciamento 1394', um organismo que cobra um valor de US$ 0.25 por sistema de usuário final (como um carro ou computador) a qualquer empresa que utilize a tecnologia 1394.
Curiosidades • A implementação do FireWire custa um pouco mais do que a do USB. Isso levou o USB a ser padrão para a maioria dos periféricos que não necessitam de um barramento de alta velocidade. • a grande diferença entre o FireWire e o USB 2.0 é que este último é baseado no host, o que significa que o dispositivo tem que estar conectado a um computador para realizar a comunicação. O FireWire é peer-to-peer (ponto a ponto), o que significa que duas câmeras FireWire podem se comunicar entre si sem passar por um computador.
Bibliografia • http://www.infowester.com/firewire.php • http://www.guiadohardware.net/tutoriais/usb-firewire-dvi/firewire-ieee-1394.html • http://www.apple.com/br/firewire/ • http://www.gta.ufrj.br/grad/04_2/firewire/tecnologia.html
Bibliografia • http://www.pcworld.com/article/id,14371-page,1/article.html • http://sss-mag.com/newiss10.html#firewire • http://www.linux1394.org/ • http://public.rz.fh-wolfenbuettel.de/~bermbach/research/firewire/files/basics.pdf
Bibliografia • http://www.gta.ufrj.br/grad/04_2/firewire/firewire_usb.html • http://pt.wikipedia.org/wiki/FireWire