pontifícia universidade católica - pucrs programação de periféricos seminário sobre protocolo...
TRANSCRIPT
![Page 1: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/1.jpg)
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.
![Page 2: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/2.jpg)
![Page 3: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/3.jpg)
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
![Page 4: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/4.jpg)
Exemplos de aplicação
Figura 1 – Filmadora
Figura 2 – HD externo
Figura 3 – Equipamento de áudio
![Page 5: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/5.jpg)
Cabo – Firewire 400
• Alimentação: 2 pinos
• Dados: 4 pinos
• Distância máxima: 4,5m
![Page 6: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/6.jpg)
Cabo – Firewire 800
• Alimentação: 2 pinos
• Dados: 4 pinos
• Aterramento: 2 pinos
• Nulo: 1 pino
• Distância máxima: 4,5m
![Page 7: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/7.jpg)
Cabo
Figura 4 – Cabo Firewire 400
![Page 8: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/8.jpg)
VelocidadeFirewire:
• 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
![Page 9: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/9.jpg)
Velocidade
Figura 5 – USB Vs Firewire
![Page 10: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/10.jpg)
Topologia• Até 63 dispositivos na mesma porta
Figura 6 – Exemplo de conexão dos periféricos
![Page 11: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/11.jpg)
Nós e endereçamento
• 1 Firewire – 1024 barramentos
• 1 barramento – 64 nós
• 1 nó – 256 TB
• Endereçamento 64 bits
![Page 12: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/12.jpg)
Nós e endereçamento
Figura 7 – Hierarquia de endereçamento
![Page 13: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/13.jpg)
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
![Page 14: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/14.jpg)
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.
![Page 15: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/15.jpg)
Transferência de dados
Figura 9 – Pacotes assíncronos e isócronos no mesmo ciclo.
![Page 16: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/16.jpg)
Transferência de dadosModo Assíncrono:
• Read request
• Write request
• Read response
• Write response
• Lock request
• Lock response
• No Data
![Page 17: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/17.jpg)
Transferência de dadosModo Isócrono:
• Data block
![Page 18: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/18.jpg)
Camadas do protocolo
• Physical Layer
• Link Layer
• Transaction Layer
• Serial Bus Management Layer
![Page 19: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/19.jpg)
Camadas do protocolo
Figura 10 – Diagrama das camadas do protocolo
![Page 20: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/20.jpg)
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;
![Page 21: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/21.jpg)
Physical Layer
• Data Strobe Encoding
Figura 11 – Data Strobe Encoding
![Page 22: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/22.jpg)
Physical Layer
• Reset;
• Tree Identification;
• Self Identification;
![Page 23: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/23.jpg)
Physical Layer – Tree Identification
Figura 12 – Antes da identificação
Figura 13 – Depois da identificação
![Page 24: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/24.jpg)
Physical Layer
Tabela 1 – Alguns controladores de camada física
![Page 25: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/25.jpg)
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.
![Page 26: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/26.jpg)
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.
![Page 27: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/27.jpg)
Link Layer – Interface PHY
Tabela 2 – Sinais de interface Link Layer/Physical Layer
![Page 28: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/28.jpg)
Link Layer
Tabela 3 – Controladores de camada de link
![Page 29: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/29.jpg)
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;
![Page 30: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/30.jpg)
Transaction Layer – Pacote
Figura 14 – Formato típico de um pacote assíncrono
![Page 31: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/31.jpg)
Transaction Layer – Pacote
Tabela 4 – Tabela com a descrição do pacote
![Page 32: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/32.jpg)
Transaction Layer - Transação
1. Nó 1 envia Read Request;
2. Nó 2 responde com Ack;
3. Enquanto o Nó 1 espera o dado, o barramento é usado por outros nós;
4. Nó 2 envia o pacote com os dados;
5. Nó 1 responde com Ack;
![Page 33: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/33.jpg)
Transaction Layer - Transação
Figura 15 – Típica transação dividida
![Page 34: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/34.jpg)
Transaction LayerTipos de Transação
Figura 16 – Tipos de transação
![Page 35: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/35.jpg)
Serial Bus Management Layer
• Topologia lógica;
• Mapa de velocidade;
• Gerenciamento de energia;
• Otimiza o tráfego do barramento.
![Page 36: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/36.jpg)
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.
![Page 37: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/37.jpg)
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.
![Page 38: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/38.jpg)
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
![Page 39: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/39.jpg)
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
![Page 40: Pontifícia Universidade Católica - PUCRS Programação de Periféricos Seminário sobre protocolo Firewire – Palestrantes – Natan Hoppe Thiago Ludwig Porto](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc10c497959413d8c33f8/html5/thumbnails/40.jpg)
Bibliografia
• http://www.gta.ufrj.br/grad/04_2/firewire/firewire_usb.html
• http://pt.wikipedia.org/wiki/FireWire