Neste artigo, iremos abordar o que de mais moderno existe sobre barramentos: o FireWire. O FireWire é um barramento serial de altíssimo desempenho que proporciona a conexão de diversos equipamentos, utilizando uma topologia flexível e proporcionando uma relação custo-benefício bastante atraente. Nosso objetivo é passar uma ideia a respeito das características inovadoras do FireWire, como os conceitos de portais, pontes, nós, conexão virtual, etc.. Pedimos desculpas se deixarmos alguma lacuna, mas colocamos como justificativa a dificuldade de obtermos dados técnicos sobre o assunto. Boa parte dos documentos disponíveis tinham acesso controlado, o que não nos permitiu um estudo mais aprofundado. 
O barramento FireWire, criado pela Apple no início da década de 90, foi adaptado, em 1995, e padronizado pela norma IEEE 1394. Sua capacidade de comunicação pode atingir até 30 vezes a velocidade do USB (Universal Serial Bus, leia artigo sobre o assunto). Sua ideia é parecida com a do USB: possui uma interface simples capaz de receber até 63 dispositivos, como drives de discos, câmeras digitais, televisão digital, computadores, etc., como mostrado na Figura 1.

clique para ampliar
Figura 1: Exemplo de arranjo de equipamentos com o FireWire.A Sony, Panasonic, Sharp, Canon e JVC foram as primeiras companhias a lançarem produtos com o FireWire (cerca de 7 milhões de codificadores de vídeo digital - MPEG). O mercado de computadores também já está abastecido com modelos da Apple, Compaq, Sony e NEC. Aguarda-se também a oferta de outros modelos de outras companhias líderes. Atualmente, a Castlewood Systems desenvolve um drive de disco que recebe diretamente a massa de dados de uma câmera digital, que promete eliminar o uso de fitas num estúdio de vídeo de alta qualidade.
Como pode ser observado, o FireWire não é um barramento exclusivo para computadores, visto que as aplicações de vídeo foram as primeiras a serem beneficiadas. Contudo, as companhias têm gradualmente adicionado, nos modelos mais novos, conectores FireWire em computadores, como é feito para o USB. Como no USB, não é necessário inicializar a máquina para detectar os dispositicos FireWire conectados, já que os mesmos são também detectados no ato de sua conexão física, em tempo de execução de aplicativos. Para recordar este processo, aconselha-se uma leitura do nosso artigo sobre o barramento USB.
Os produtos FireWire atuais podem operar a uma taxa de 400 Mbps (50MB/s), contra 12 Mbps (1,5 MB/s) do USB. Apesar de revisões da especificação USB já permitirem taxas maiores (USB 2.0 operando a 480Mbps ou 60MB/s), o FireWire não parará por aí: deverá atingir brevemente, com o auxílio de fibras especiais ou comunicação sem fio ("wireless"), velocidades de 800 a 3.200 Mbps. Para falar a verdade, pode operar a 800Mbps (100MB/s) sob a nova especificação IEEE1394b.
FireWire é, então, um apelido para um barramento serial especificado pelo IEEE, recebendo o nome oficial de IEEE 1394. A exemplo do PCI, dois ou mais barramentos FireWire isolados eletricamente podem ser conectados via um circuito especial, chamado de ponte. Historicamente, seu nascimento se deu em 1995 e foi apresentado à sociedade em fevereiro de 1996, quando Peter Johansson, da Congruent Software, expôs o trabalho intitulado "Serial Bus to Serial Bus Bridges" para um grupo de representantes das grandes empresas líderes de mercado, como Phillips, Apple, NEC, Seagate, Sony, Sun, Samsung e Texas. Este acontecimento deu origem a uma série de reuniões para a discussão de questões técnicas para não só a definição do padrão IEEE 1394-1 (ponte entre barramentos FireWire), mas também para a especificação de pontes responsáveis pela interface do barramento em estudo com outros barramentos. Estas reuniões passaram a contar posteriormente também com representantes da Intel, Microsoft, Canon, Compaq e Panasonic, dentre outras. Embora tais especificações ainda não estejam finalizadas, o grupo mantém sempre um "draft" da situação no site http://grouper.ieee.org/groups/1394/1. Sendo assim, alguns detalhes expostos neste texto estão sujeitos a posteriores revisões.
Com as novas revisões do FireWire propondo-o a ser um barramento serial com um desempenho cada vez melhor, a taxa de comunicação implementada por uma ponte é flexivelmente programável para estar entre S100 (100 Mb/s) a até S3200 (3200 Mb/s), a um custo acessível, tanto para conectar periféricos de computadores quanto eletro-domésticos. Segundo o comitê 1394, outras aplicações, como transmissão digital de vídeo, ainda estão limitadas por uma arquitetura e uma definição de protocolo para pontes hoje incompletas. Na verdade, a especificação física do barramento foi bem simples. O mais complexo é definir os padrões de ponte, o que está sendo feito pela proposta IEEE 1394-1.
Para começar uma descrição da proposta 1394-1, serão colocadas algumas definições.
- Ponte: é o circuito capaz de permitir a comunicação entre dois ou mais barramentos seriais com operações independentes.
- Identificador de barramento (Bus_ID): é um número de 10 bits que identifica, de forma única, um dos barramentos seriais em uma topologia de rede composta por vários barramentos.
- Portal: é o circuito que conecta fisicamente uma ponte FireWire com um barramento. Cada ponte deve implementar pelo menos 2 portais, ou seja, permitir a comunicação entre 2 barramentos. Numa rede genérica, uma ponte pode implementar N portais, N<256, identificados por 0, 1, ..., N-1.
- Rede: é um grupo de barramentos e nós interconectados, capazes de serem mutuamente endereçados por transações envolvendo pacotes de dados.
- Nó Local: Dois nós são ditos locais se eles estiverem conectados ao mesmo barramento, ou seja, com um mesmo identificador (Bus_ID).
- Identificador de Nó Local: é um número de 16 bits que representa um endereço para o nó (periférico) conectado ao barramento.
- Mestre para Ciclo de Rede: é o circuito eleito para ser o responsável por fornecer o sinal de relógio que vai sincronizar a rede. Desta forma, vários eventos na rede poderão ser realizados de forma isócrona, ou seja, sincronizados por um único relógio. Porém, o padrão IEEE 1394-1 prevê também a comunicação assíncrona.
- Identificador físico: é um número de 6 bits associado a cada nó, via processo de auto-identificação que sucede à inicialização do barramento.
- Nó Remoto: Um nó é dito remoto em relação a outro se estão conectados a barramentos com diferentes identificadores.
- Nó Virtual: Um nó genérico.
- Identificador Virtual: é um número de 6 bits que representa um endereço de um nó local conectado. A associação destes identificadores é feita pelo portal que gerou o barramento local.
- Identificador de Nó Virtual: é um número de 16 bits que representa um endereço para um nó genérico que, para transacionar pacotes com um determinado portal, deve percorrer pelo menos uma ponte.