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 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 10 bits: Número do barramento 6 bits: Número do nó 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 Layer Tipos 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