UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE ENGENHARIA DE COMPUTAÇÃO DESENVOLVIMENTO DE UM CONVERSOR HOMEPNA/ETHERNET Área de Hardware / Redes por Fernando Souza de Andrade Sergio Velozo, Bel Orientador São José (SC), junho de 2008 UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE ENGENHARIA DE COMPUTAÇÃO DESENVOLVIMENTO DE UM CONVERSOR HOMEPNA/ETHERNET Área de Hardware / Redes por Fernando Souza de Andrade Relatório apresentado Examinadora do à Trabalho Banca de Conclusão do Curso de Engenharia de Computação para análise e aprovação. Orientador: Sérgio Velozo, Bel São José (SC), junho de 2008 SUMÁRIO LISTA DE ABREVIATURAS .......................................................................................... iv LISTA DE FIGURAS........................................................................................................ vi RESUMO......................................................................................................................... viii ABSTRACT....................................................................................................................... ix 1 INTRODUÇÃO ............................................................................................................... 1 1.1 CONTEXTUALIZAÇÃO......................................................................................... 1 1.2 OBJETIVOS ............................................................................................................. 3 1.2.1 Geral................................................................................................................... 3 1.2.2 Específicos ......................................................................................................... 3 1.2.3 Escopo e Delimitação do Trabalho .................................................................... 3 1.4 JUSTIFICATIVA ..................................................................................................... 4 2 FUNDAMENTAÇÃO TEÓRICA................................................................................... 5 2.1 REDES DE COMPUTADORES.............................................................................. 5 2.1.1 Arquitetura de Redes.......................................................................................... 7 2.2 REDES DOMICILIARES ........................................................................................ 8 2.2.1 Com Fio ............................................................................................................. 8 2.2.1.1 Protocolo Ethernet ...................................................................................... 9 2.2.2 Sem Fio ............................................................................................................ 11 2.2.3 Sem Novos Fios ............................................................................................... 11 2.2.3.1 HomePNA 3.0........................................................................................... 14 2.3 SISTEMAS EMBARCADOS ................................................................................ 17 2.3.1 Transistor ......................................................................................................... 18 2.3.2 Circuitos Integrados ......................................................................................... 18 2.3.3 Circuito Impresso............................................................................................. 19 2.3.4 Arquitetura Geral de um Sistema Embarcado ................................................. 20 2.3.4.1 Memória de Programa............................................................................... 22 2.3.4.2 Arquitetura Harvard x Von Neumann....................................................... 23 2.3.4.3 Clock ......................................................................................................... 24 2.3.4.4 Registradores............................................................................................. 24 2.3.4.5 Contador de Instrução ............................................................................... 25 2.3.5 Microcontroladores e Microprocessadores ...................................................... 26 2.3.6 Firmware .......................................................................................................... 27 2.3.6.1 Tradução de um Software ......................................................................... 30 2.3.6.2 Ligação...................................................................................................... 31 2.3.6.3 Montagem ................................................................................................. 32 2.3.6.4 Carregamento............................................................................................ 32 3 CONVERSOR HPN ...................................................................................................... 33 3.1 ARQUITETURA GERAL...................................................................................... 35 3.1.1 Arquitetura Geral do Sistema........................................................................... 35 3.1.2 Arquitetura Geral do Conversor....................................................................... 37 3.2 ANÁLISE DE REQUISITOS................................................................................. 38 3.3 HARDWARE ......................................................................................................... 39 3.3.1 Microcontrolador MC9S08QD4 ...................................................................... 39 ii 3.3.1.1 Firmware de Gerência............................................................................... 42 3.3.2 Switch Realtek RTL8305SC............................................................................ 47 3.3.2.1 Arquitetura Geral do Switch Ethernet....................................................... 49 3.3.2.2 Tabela de Endereçamento MAC............................................................... 50 3.3.2.3 Auto Negociação....................................................................................... 51 3.3.2.4 Controle de Fluxo ..................................................................................... 52 3.3.3 Modem HPN CG3010...................................................................................... 53 3.3.3.1 Arquitetura Geral do Modem HPN........................................................... 58 3.3.3.2 Interface MII ............................................................................................. 59 3.3.3.3 Modo Seguro............................................................................................. 62 3.4 SOFTWARE ........................................................................................................... 63 3.5 TESTES .................................................................................................................. 64 3.5.1 Ferramentas Copper-gate ................................................................................. 65 3.5.2 Ferramenta de Geração de Tráfego de Dados.................................................. 69 3.5.3 Aplicações de Vídeo ........................................................................................ 73 3.5.3.1 Configuração 1.......................................................................................... 74 3.5.3.2 Configuração 2.......................................................................................... 75 3.5.3.3 Testes Realizados...................................................................................... 76 4 CONCLUSÃO ............................................................................................................... 78 REFERÊNCIAS BIBLIOGRÁFICAS.............................................................................. 80 iii LISTA DE ABREVIATURAS 3G ADSL AMAC BPL CAM CSMA/CD EEPROM FDQAM HCNA HomeCNA HomePNA HPNA IEEE IDE IrDA LED MAC MDC MDI MDIO MDIX MII MII SnP PE PHY PLC PLL POTS PROM PWM QAM QoS RAM RF RISC ROM SOHO SMI SNI SRAM USB Terceira Geração Asymmetric Digital Subscriber Line Asynchronous MAC Protocol Broadband Power line Comparison Address Match Carrier Sense Multiple Access with Collision Detection Electrically Erasable Programmable Read Only Memory Frequency Diverse Quadrature amplitude Home Coax Network Alliance Home Coax Network Alliance Home Phone Line Network Alliance Home Phone Line Network Alliance International Telecommunication Union Integrated Development Enviroment Infra Red Data Association Light Emitting Diode Media Access Control Management Interface Clock Medium Dependent Interface Management Interface Input/Output Medium Dependent Interface Crossover Media Independent Interface MII Solder and Play Pay Load Encoder Physical Interface Power Line Communications Phase Locked Loop Plain Old Telephone Service Programmable Read Only Memory Pulse Width Modulation Quadrature Amplitude Modulation Quality of service Random Access Memory Radio Frequence Reduce Instruction Set Computing Read Only Memory Small Oficce Home Office Serial Managemment Interface Serial Network Interface Static Random Access Memory Universal Serial Bus iv UTP VLAN WiFi Unshield Twisted Pair Virtual Local Área Network Wireless Fidelity v LISTA DE FIGURAS Figura 1. Rede de computadores......................................................................................... 6 Figura 2. Transmissão de dados em uma arquitetura TCP/IP............................................. 7 Figura 3. Cabeçalho Ethernet............................................................................................ 10 Figura 4. Comparação entre as principais tecnologias para rede domiciliar .................... 14 Figura 5. Máscara de densidade espectral de potência do HomePNA 3.0. ...................... 16 Figura 6. Máscara de densidade espectral de potência para 240Mbps ............................. 17 Figura 7. Exemplo de circuito Integrado .......................................................................... 19 Figura 8. Onda Quadrada.................................................................................................. 24 Figura 9. ALU – Unidade Lógica e Aritmética ................................................................ 26 Figura 10. Algoritmo exemplo.......................................................................................... 28 Figura 11. Exemplo de aplicação em residências ............................................................. 33 Figura 12. Exemplo de aplicação em condomínios .......................................................... 34 Figura 13. Diagrama de blocos da arquitetura geral do sistema ....................................... 36 Figura 14. Perda de inserção de acordo com o número de saídas e valor do TAP ........... 37 Figura 15. Diagrama de blocos da arquitetura geral do conversor ................................... 38 Figura 16. O microcontrolador MC9S08QD4 .................................................................. 40 Figura 17. Diagrama de blocos do MC9S08QD4............................................................. 41 Figura 18. Fluxograma de operação do firmware de gerência.......................................... 42 Figura 19. Frame de gerência............................................................................................ 43 Figura 20. Funções de gerência do microcontrolador....................................................... 43 Figura 21. Caracteres pelo padrão ASCII ......................................................................... 45 Figura 22. Tabela de caracteres desenvolvida .................................................................. 46 Figura 23. Exemplo de um comando de gerência............................................................. 46 Figura 24. Diagrama de blocos do Switch Ethernet RTL8305SC .................................... 49 Figura 25. Indirect Access Data........................................................................................ 51 Figura 26. Freqüência de operação do HomePNA 3.0 em relação a outras tecnologias .. 54 Figura 27. Espectro de modulação FDQAM .................................................................... 55 Figura 28. Faixa de freqüência das três mascaras............................................................. 56 Figura 29. características elétricas do chipset CG3010. ................................................... 57 Figura 30. Expansão de memória no CG3010 .................................................................. 57 Figura 31: Diagrama de blocos do modem CG3011. ....................................................... 58 Figura 32. Configurações da interface via pinos MODE[4:0].......................................... 59 Figura 33. Descrição dos pinos da interface MII.............................................................. 60 Figura 34. Tabela de temporizarão da interface MII ........................................................ 60 Figura 35. Forma de onda da interface MII. ..................................................................... 61 Figura 36. Tela do software PEdit.exe.............................................................................. 63 Figura 37. Protótipo do conversor HomePNA/Ethernet. .................................................. 65 Figura 38. Rx Power x Taxa de Velocidade ..................................................................... 67 Figura 39. Tabela de Velocidade ...................................................................................... 68 Figura 40. Gerenciador de arquivos do Windows XP mostrando a taxa de utilização..... 72 Figura 41. Tela de configuração do VLC Vídeo Server. .................................................. 73 Figura 42. Tela de configuração do VLC Vídeo Server. .................................................. 74 vi Figura 43. Disposição dos equipamentos para a configuração 1 ...................................... 75 Figura 44. Disposição dos equipamentos para a configuração 2 ...................................... 76 vii RESUMO ANDRADE, Fernando Souza de. Desenvolvimento de um Conversor HomePNA/Ethernet. São José, 2008.1, 82p. Trabalho de Conclusão de Curso (Graduação em Engenharia da Computação) – Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, 2008. Com o aumento do número de computadores nas residências brasileiras das classes mais favorecidas, vem a necessidade de interconectar esses computadores, formando as redes domiciliares. Seja para compartilhar serviços de internet ou periféricos, esta interconexão de dispositivos pode ser realizada de diversas maneiras. A mais conhecida é a rede Ethernet, porém pouquíssimas residências estão preparadas com cabeamento estruturado. Então se faz necessário o uso de outra tecnologia para interconectá-los. Para evitar quebrar paredes e refazer a tubulação, opta-se pelo uso de tecnologia sem fio, conhecida como Wireless ou simplesmente WiFi. Porém nem sempre esta tecnologia resolve o problema, pois é muito comum o roteador Wireless não funcionar como se imagina. Isto porque na residência existem algumas paredes de alvenaria que atenuam significativamente o sinal de radio freqüência, limitando a área de cobertura deste equipamento. Este trabalho propôs o desenvolvimento de um conversor HomePNA/Ethernet que terá como função converter um sinal Ethernet (interface de rede do computador) para um sinal HomePNA que irá trafegar sob a rede coaxial (simultaneamente ao sinal de TV) da residência. Chegando a outro conversor num cômodo qualquer da residência via cabo coaxial. Então o conversor devolve o sinal HomePNA para Ethernet (chegando no outro computador). Desta forma cria-se uma rede domiciliar sem a necessidade de novos cabos. Palavras-chave: HomePNA. Redes domésticas. Sistemas Embarcados. viii ABSTRACT With the increase in the number of computers in Brazilian homes especially in affluent classes, it is necessary interconnect those computers, creating home networks. Whether to share Internet services or peripherals, the interconnection of devices can be building up using differents ways. The best known is the Ethernet network, but few homes are prepared with structured cabling. So in this case it is possible use other technology for to interconnect them. To avoid breaking walls and redo the tubing, chooses to the use of wireless technology, like the WiFi. But this technology doesn´t solve all problems, because it is very common that wireless router does not work as imagined. This occurs because residences masonry walls attenuate the signal of radio frequency, limiting the area of coverage of this equipment. This paper proposes the development of a HomePNA/Ethernet converter and it function that will convert a signal Ethernet (network interface of the computer) for a signal that HomePNA will travel under the coax network (while the signal of TV) of the residence. At any other converter in a room of the residence via coax cable. Then the converter returns the Ethernet signal to HomePNA (arriving in another computer). Thus there is a home network without the need for new cables. Keywords: HomePNA. Home Network. Embeded Systems. ix 1 INTRODUÇÃO 1.1 CONTEXTUALIZAÇÃO No Brasil, percebe-se um aumento significativo no número de residências com acesso a internet banda larga. Ano após ano as pesquisas divulgam números cada vez maiores. Além disso, os preços dos equipamentos de informática passaram a receber incentivos fiscais do governo federal, reduzindo expressivamente o custo dos microcomputadores e notebooks. Em conseqüência desses e outros fatores, inicia-se uma nova realidade onde os domicílios brasileiros passam a contar com mais de um microcomputador. Este novo momento ainda está restrito as classes média e alta. Apesar disso, as classes menos favorecidas já estão iniciando no mundo digital devido as grandes facilidades de pagamento na compra de produtos de informática. No caso dos domicílios que contam com mais de um microcomputador, nota-se a necessidade de interconexão entre estes dispositivos, surgindo à necessidade de compartilhamento. Geralmente a primeira necessidade é compartilhar o serviço de internet. Mas logo surgem outras necessidades, como por exemplo: o compartilhamento de arquivos, impressora, scanner, entre outros. Para que ocorra esta interação entre dispositivos é necessário montar uma rede de computadores. Esta pode ser uma tarefa fácil, mas isto depende da particularidade de cada situação. Muitas vezes um switch concentrando o sinal de internet (via modem ADSL (Asymmetric Digital Subscriber Line), Cable modem, Rádio, etc) e a ligação direta aos computadores via cabo de rede (interface de rede Ethernet) resolve o problema. Mas há situações onde se deseja ligar um ou mais computadores, que está num cômodo, a outro distante na residência. Em vários casos é necessário passar cabos pela tubulação da rede elétrica ou da TV à cabo ou de telefonia. Mas nem sempre estas tubulações suportam mais um cabo e então surge a necessidade de uma pequena reforma. Quebrar paredes e construir novas tubulações para acondicionar os novos cabos de rede. Com isso perde-se tempo, gasta-se dinheiro com a reforma, além da sujeira que implica uma pequena obra. Atualmente, a primeira solução que vem a cabeça das pessoas para resolver a situação descrita anteriormente é a utilização de equipamentos sem fio (tecnologia conhecida como WiFi ou wireless). Esta tecnologia se popularizou bastante nos últimos anos e resolve várias situações, mas deixa a desejar em alguns aspectos, pois possui problemas de segurança, já que o sinal de rádio fica vulnerável a intrusos. A taxa de transferência entre os computadores é praticamente a metade do que se fosse com cabos Ethernet. Por outro lado as residências brasileiras costumam ser de alvenaria, e no caso do dispositivo WiFi estar num cômodo e o computador em outro sendo que existem algumas paredes entre eles, pode ser o suficiente para que não seja possível o uso desta tecnologia, pois o sinal perde muita potência ao atravessar as paredes de alvenaria. Colocar vários pontos WiFi numa residência geralmente fica inviável devido ao custo dos equipamentos, além da complexidade da implementação que deverá ser feita por profissionais. Existem algumas soluções menos custosas para estas situações. Uma delas é uma tecnologia chamada HomePNA que tem a vantagem de utilizar o meio físico existente numa residência para interconectar dispositivos de rede. Isto quer dizer que é possível conectar microcomputadores numa residência via cabos telefônicos (par trançado ligado ao telefone) ou coaxiais (utilizados na TV à cabo ou antena coletiva). Aproveitando uma dessas redes (coaxial ou telefônica) torna-se fácil à instalação de diversos dispositivos que necessitam estar conectados em rede. A velocidade de conexão entre dois pontos pode chegar até 240Mbps. Tudo isto está especificado na norma ITU-T G.9954, também conhecido como HomePNA 3.0. Esta tecnologia de padrão aberto, nasceu com o propósito de solucionar problemas em redes domiciliares. A banda que esta tecnologia oferece, resolve problemas que em breve os provedores de internet encontrarão. Nos Estados Unidos, Europa e Ásia, é comum os serviços de IPTV entre outros. Os provedores de internet, TV à Cabo ou telefônico, passam a oferecer serviços de exibição de filmes e canais interativos de TV. Estes serviços consomem uma banda considerável da rede. Para se ter idéia, a transmissão de um filme necessita de 2Mbps à 30Mbps, dependendo da codificação utilizada. Então, no caso de dois ou três televisores na residência será necessária uma banda considerável se compararmos com nosso serviço de internet atual. Para ligar um televisor à rede, utiliza- 2 se um dispositivo chamado set-top-box, que basicamente converte dados para vídeo. 1.2 OBJETIVOS 1.2.1 Geral Desenvolver um protótipo de um conversor HomePNA/Ethernet para ser utilizado em redes domiciliares afim de facilitar a implantação da mesma. 1.2.2 Específicos Os objetivos específicos deste trabalho são: • Desenvolvimento de um protótipo capaz de interligar dois ou mais microcomputadores; • Realizar teste de performance no dispositivo a fim de comprovar seu funcionamento. 1.2.3 Escopo e Delimitação do Trabalho Este trabalho constituirá no desenvolvimento de um protótipo de equipamento capaz de converter o sinal Ethernet para HomePNA e vice-versa. Desta forma cria-se uma forma de comunicação híbrida, ou seja, uma ponte (bridge) entre dois meios de comunicação (do meio Ethernet para o meio HomePNA para o meio Ethernet). O sinal Ethernet será transportado fisicamente por cabo do tipo UTP CAT-5 (par 3 trançado não blindado, categoria 5). Já o sinal HomePNA, será transportado fisicamente por cabo coaxial do tipo RG11, os mesmos utilizados na distribuição de TV à cabo (em residências) ou antena coletiva (em condomínios). 1.4 JUSTIFICATIVA Este trabalho apresenta uma série de conceitos, que em sua essência envolvem duas áreas de conhecimento, a Engenharia e a Computação. Assim será possível aplicar os ensinamentos acumulados na graduação. Para concluir este trabalho foram necessários conhecimentos de eletrônica, desenvolvimento de software, projeto de hardware, redes de computadores, entre outros. Além disso, será possível demonstrar a capacidade de solucionar problemas, característico dos cursos de engenharia. Este trabalho também pode ser visto como divulgador da tecnologia HomePNA, já que esta é pouco conhecida a nível nacional, principalmente no meio acadêmico. São estes detalhes que motivam o desenvolvimento e conclusão deste trabalho. Outro fator relevante é que com isto foi mostrado uma solução prática na implantação de redes de computadores utilizando a fiação já existente, eliminando os transtornos causados por furações na estrutura da residência para fazer um novo cabeamento (geralmente UTP). Aproveitando o cabeamento de TV, geralmente previsto durante a construção de uma casa, é possível distribuir o sinal de comunicação entre os computadores utilizando este barramento compartilhado com o sinal de TV. O desenvolvimento do trabalho foi de acordo com os tópicos relacionados na fundamentação teórica, que será apresentada no próximo capítulo. 4 2 FUNDAMENTAÇÃO TEÓRICA O capítulo apresenta os conceitos envolvidos na realização deste Trabalho de Conclusão de Curso. Inicialmente será abordada uma visão geral de redes de computadores. Na seqüência o assunto será complementado com as redes domiciliares. Nesta fundamentação encontra-se informações sobre o protocolo HomePNA e Ethernet, fundamentais para o entendimento do funcionamento de um conversor HomePNA/Ethernet. O capítulo finaliza com o estudo dos microcontroladores, já que este será utilizado no desenvolvimento do conversor proposto. 2.1 REDES DE COMPUTADORES Redes de computadores, em geral, são dois ou mais microcomputadores interconectados, compartilhando dados e recursos. Como exemplo, pode-se citar a Internet, onde vários microcomputadores estão interconectados e compartilham informações. Outro exemplo que ilustra uma rede de computadores é o servidor de impressão que concentra a conexão com alguns microcomputadores (BARR, 1999). A Figura1 ilustra de forma geral uma rede de computadores. Figura 1. Rede de computadores Em geral, as redes de computadores são classificadas de três maneiras em relação a disposição e distância entre seus dispositivos de rede, são elas: Redes Locais, Redes Metropolitanas e Redes Geograficamente Distribuídas. As Redes Locais, ou Local Area Networks (LANs), são redes que se encontram em um único local, como num edifício, residência, condomínios verticais e escritórios. Podem ter até alguns quilômetros de extensão. Já as Redes Metropolitanas, ou Metropolitan Area Networks (MANs), são redes que se encontram dentro de uma cidade. Como exemplo, imagine um provedor de TV à cabo e seus clientes espalhados pela cidade, ou seja, neste modo percebe-se um aumento significativo na distância entre os dispositivos conectados. Já as Redes Geograficamente Distribuídas, ou Wide Area Networks (WANs), são encontradas em locais distribuídos em longas distâncias, como cidades, estados ou países. Como exemplo, uma empresa com sede em São Paulo e filial em Florianópolis, sendo que suas redes são conectadas (TANNEMBAUM, 2003). 6 2.1.1 Arquitetura de Redes Uma arquitetura de rede é formada basicamente por camadas, protocolos e interfaces. A camada tem por objetivo oferecer determinados serviços às camadas superiores, abstraindo os detalhes de implementação desses recursos. Pode-se afirmar que camada é uma espécie de máquina virtual, oferecendo determinados serviços à camada situada acima dela. Cada camada de um determinado dispositivo se comunica com a sua camada correspondente em outro dispositivo. Na Figura os blocos ilustram as camadas e as setas representam o sentido da transmissão de dados em uma arquitetura TCP/IP. Já um protocolo de comunicação é formado por um conjunto de regras que servem para que dois dispositivos possam estabelecer uma comunicação eficiente e sem erros. São as interfaces que definem quais e quantos serviços a camada inferior irá oferecer para a camada superior (TANNEMBAUM, 2003) Figura 2. Transmissão de dados em uma arquitetura TCP/IP Fonte: Adaptado de TANNEMBAUM (2003). 7 2.2 REDES DOMICILIARES Nos últimos anos o aumento do poder computacional dos microprocessadores somados à diminuição do custo dos microcomputadores pessoais e o acesso à internet banda larga, gerou uma nova realidade em relação ao número de microcomputadores nas residências. Apesar de existir uma enorme parcela de pessoas excluídas digitalmente, hoje em dia é comum uma residência de classe A ou B conter dois a três microcomputadores ou notebooks. Quando se aumenta o numero de máquinas nota-se a necessidade de interconexão entre as mesmas e também a outros periféricos. É muito comum observar dois microcomputadores instalados em cômodos diferentes da residência compartilhando a mesma impressora, scanner ou outro periférico que está instalado num local qualquer da residência. Outro fato muito comum é a necessidade do compartilhamento do serviço de internet entre os microcomputadores existentes na residência. Esta interconexão entre dispositivos de rede pode acontecer via cabos (par trançado, cobre, fibra óptica, entre outros) ou via rádio freqüência. Relacionando às redes domiciliares ao modo de interconexão entre dispositivos, pode-se dividir estas redes em três categorias: • com fio: há a necessidade de novo cabeamento; • sem fio: não utiliza fios; a propagação do sinal se dá por ondas eletromagnéticas; • sem novos fios: aproveita os fios já instalados para outro serviço. Cada uma dessas categorias será abordada nos tópicos seguintes. 2.2.1 Com Fio Nesta condição, a interconexão entre os dispositivos de rede acontece via cabos, conforme a tecnologia utilizada. Ainda hoje, a mais utilizada é a tecnologia Ethernet que, geralmente, necessita de cabos do tipo UTP (par trançado blindado, do inglês: Unshield Twisted Pair) categoria 5. Outra opção é o uso de fibra óptica no Ethernet (100Base-FX), 8 pouco utilizado em residências devido ao alto custo de implementação. Com novos fios, existe a necessidade de novo cabeamento na residência. Em alguns casos isto implica em uma pequena reforma na estrutura da casa para abrigar os novos cabos, pois inúmeras vezes a tubulação não suporta cabos extras. Como conseqüência temos o custo e o incômodo de uma pequena reforma. Atualmente, nos projetos arquitetônicos de residências ou condomínios de altíssimo padrão é possível verificar a presença de cabeamento estruturado, contando até mesmo com fibra óptica. Mas isto ainda está restrito a classe A. No tópico seguinte encontra-se uma visão geral do protocolo Ethernet. 2.2.1.1 Protocolo Ethernet O protocolo Ethernet, nasceu nos laboratórios da empresa norte americana XEROX e tornou-se o mais popular dos protocolos para redes locais. Com essa popularidade, o Institute of Eletrical and Eletronics Engineers (IEEE) optou padronizar o protocolo para que não houvesse mais variações, criando assim o padrão IEEE 802.3. Como inicialmente o meio físico (cabo), era do tipo coaxial, e compartilhados por todos os computadores em forma de barramento, foi criado um subprotocolo que organiza o compartilhamento do meio entre os microcomputadores da rede. O CSMA/CD (Carrier Sense Multiple Access with Collision Detection) foi adotado como protocolo de gerência para resolver problemas de compartilhamento do meio (VEGINI, 2006). O CSMA/CD dita basicamente as seguintes regras: • Se o canal estiver ocupado, então aguarda-se um período de tempo; • Se o canal estiver livre, então é possível transmitir. O protocolo Ethernet utiliza um método de endereçamento de 48 bits (6 bytes). Este endereço é chamado de MAC Address e cada dispositivo de rede deve possuir um endereço. Nos dispositivos comerciais, os fabricantes de placas de rede compram uma faixa de endereços MAC para serem utilizados nas placas de rede. A organização que controla e vende esses endereços é a IEEE. Desta forma evita o possível conflito de 9 endereços nos dispositivos de redes (VEGINI, 2006). A estrutura do cabeçalho Ethernet é mostrada na Figura 3. Figura 3. Cabeçalho Ethernet Fonte: Adaptado de COMER, 2000. A seguir será feita uma breve descrição sobre cada campo do protocolo Ethernet • Preâmbulo : não é considerado parte integrante do cabeçalho Ethernet, pois serve apenas como sincronismo para as interfaces de rede. Em cada frame Ethernet enviado à rede, um preâmbulo é enviado. Isto indica que os próximos pulsos serão o frame Ethernet propriamente dito; • Endereço Destino: é formado pelo endereço MAC do dispositivo de rede que deve receber o frame; • Endereço Fonte: contém o endereço do dispositivo de rede que enviou este frame; • Tipo do Frame: tem como função identificar que tipo de dados que o frame ethernet está transportando. • Dados: campo onde serão transportados dados encapsulados das camadas superiores a de enlace. O tamanho mínimo da região de dados de um frame Ethernet é de 46 bytes, totalizando um pacote de 64 bytes obtidos pela soma de dados mais o cabeçalho. Já o tamanho máximo de um frame Ethernet é 1518 bytes, ou seja 1500 bytes de dados e 18 bytes de cabeçalho. • CRC: significa Cyclic Redundancy Check, é um algoritmo matemático utilizado para a detecção de erros na transmissão de dados. 10 2.2.2 Sem Fio As redes sem fio estão em alta atualmente. Nestas redes o meio de interconexão entre os dispositivos de rede é o ar, via modulação por rádio freqüência (RF), dessa forma, trás a grande vantagem de não necessitar de cabos. Deixando assim, a instalação livre dos incômodos relacionados ao cabeamento. Mas a escolha desta tecnologia pode trazer alguns problemas relacionados à recepção do sinal. Isto porque as residências brasileiras costumam utilizar alvenaria na sua construção e normalmente possuem inúmeras paredes, atenuando o sinal RF, diferentemente do que ocorre em diversas residências norte americanas, onde é adotado outro material nas suas construções. As redes sem fio trazem inúmeras vantagens, mas em algumas ocasiões pode ser um grande problema para o usuário. Os equipamentos comercializados possuem custo elevado e alcance limitado. Algumas das tecnologias sem fios mais conhecidas: Bluetoth, 3G, WiFi, IrDA, etc. Atualmente a tecnologia sem fio mais utilizada é a conhecida como WiFi. 2.2.3 Sem Novos Fios Nos últimos anos esta opção tem sido muito utilizada nos Estados Unidos, Europa e Ásia. As tecnologias relacionadas a esta categoria não necessitam de um novo cabeamento na residência. Basta utilizar algum meio físico existente, como por exemplo: a rede elétrica, a rede telefônica ou o cabeamento de TV. Assim, elimina-se a necessidade de pequenas reformas, flexibilizando a disposição dos equipamentos na rede e o custo da implantação torna-se baixo. O uso do meio físico existente não é novidade deste século. Já na década de 30 era possível trafegar voz em redes de alta tensão. Nesta época não existiam sistemas digitais, porém podemos considerar como uma das primeiras técnicas de transmissão na rede elétrica apesar do sinal de dados ser diferente do sinal de voz. Nos anos 70, a escocesa 11 Pico Eletronics desenvolveu o protocolo X-10. Após uma joint venture com a BSR em 1978, os primeiros produtos baseados em X-10 começaram a circular alguns anos depois. A patente original expirou em 1997, e com isso possibilitou o investimento nessa tecnologia por outros fabricantes trazendo com isso sua evolução. Porém, o X-10 possui inúmeras limitações e basicamente tem como aplicação operar dispositivos autônomos na residência, como ligar e desligar equipamentos, portanto possui grande utilidade na automação residencial. Sistemas capazes de comunicar-se de forma bidirecional através da rede de distribuição surgiram mesmo na década de 90 (TEZA, 2002). Uma tecnologia muito conhecida é a PLC (Power line Communication), embora já começa a aparecer o termo BPL (Broadband Power Line). Estes podem alcançar taxas de até 200Mbps. Velocidade consideravelmente alta se compararmos a realidade de banda em serviço de internet atual no Brasil, onde se vende serviço de 200Kbps à 8Mbps. Mas algumas considerações sobre a comunicação utilizando a rede elétrica devem ser mencionadas. Em alguns locais a hostilidade deste ambiente pode ser tão grande a ponto de impossibilitar seu uso. Numa industria onde existem equipamentos que consomem muita energia elétrica os níveis de ruídos são enormes. Mas voltando ao foco (residências), os equipamentos comuns numa residência geram diferentes ruídos que podem ter diversas classificações não relevantes à este trabalho. São fontes de ruído: dimmers, computadores, monitores, carregadores, rádios, qualquer aparelho com motor elétrico (liquidificadores, aspiradores, barbeadores,etc), entre outros. Além destes existe outro tipo de ruído conhecido como impulso de alta freqüência, gerado pelo simples ato de ligar e desligar aparelhos eletro-eletrônicos. Isto acontece devido à um capacitor no qual é carregado e descarregado assim que o equipamento é ligado ou desligado. Dependendo do tamanho do capacitor este efeito causa grandes tensões transientes na rede elétrica (TEZA, 2002). Outro fator limitante é o descasamento de impedâncias que contribuí para a atenuação do sinal. Até mesmo as tomadas sem equipamentos conectados tornam-se problemáticas (pontos de rede sem terminação) no que se refere à reflexão de sinal (TEZA, 2002). Para suprir a necessidade de padronizações no acesso às redes domiciliares sob rede elétrica, surgiu o HomePlug Powerline Alliance (HomePlug) no ano 2000 e conta 12 com diversas empresas fabricantes de equipamentos voltados para esse tipo de aplicação. Até o momento esta aliança já especificou o HomePlug 1.0, HomePlug1.1 e o HomePlug 2.0, mais conhecido como HomePlug AV. Estas especificações atingem taxas máximas de 45Mbps à 200Mbps (HomePlug AV). Outra aliança formada por fabricantes de equipamentos voltados às soluções de redes domiciliares é a Home Phone Network Alliance, conhecido por HomePNA ou HPNA. Inicialmente surgiu para solucionar a comunicação de dados sob redes telefônicas. Então vieram as primeiras especificações, a HomePNA 1.0 que chegava até 1Mbps, e depois a HomePNA 2.0 que conseguia taxas de até 32Mbps. Mas por volta de 2004, foi anunciado o HomePNA 3.0, normalizado pela ITU (International Telecommunication Union). Esta norma pode chegar à 240Mbps em cabos telefônicos (par trançado). Logo em seguida, numa revisão da norma, foi determinado que esta especificação poderia ser aplicada aos cabos coaxiais. São pequenas alterações entre as especificações. Então surgiu o Home Coax Network Aliance (HomeCNA ou HCNA), porém utliza-se o termo HomePNA tanto para o meio telefônico quanto para o meio coaxial. O HomePNA é um padrão aceito mundialmente e tende a aumentar a banda passante a cada ano mantendo o mesmo meio físico de transmissão sem exigir cabeamento de alta qualidade. No momento a versão 3.1 conta com 320 Mbps. Já a versão HPNA 4.0 encontra-se em desenvolvimento no momento, mas promete bater a barreira dos 1000Mbps (COPPERSTREAM, 2008). O meio coaxial é uma boa escolha para prover serviços de vídeo. A Figura 4 mostra algumas das opções mais comuns para implementação de rede doméstica. O HomePNA, tanto no meio coaxial quanto no telefônico, possuem boas razões para serem considerados uma boa opção. 13 Figura 4. Comparação entre as principais tecnologias para rede domiciliar Fonte: Adaptado de READYLINKS (2005). No tópico seguinte será apresentado a tecnologia HomePNA 3.0 voltada para cabeamento coaxial (TV). 2.2.3.1 HomePNA 3.0 A abreviação HPNA ou HomePNA, conforme mencionado anteriormente, significa Home Phone Network Alliance que nada mais é que o protocolo ITU-T G.9954. O HomePNA é uma aliança industrial para promover o uso de redes domiciliares sob cabeamento telefônico presente na grande maioria das residências. Recentemente foi incluído o uso de cabos coaxiais, aumentando assim as possibilidades de utilização desta tecnologia que tem como maior compromisso a facilidade de instalação para prover a comunicação de dados com eficiência e qualidade. No momento conta com três padrões bem definidos, chamados de HomePNA 1.0, HomePNA 2.0 e HomePNA 3.0. Este último possui duas atualizações no padrão, conseguindo um aumento razoável na banda passante de 240Mbps na versão HomePNA 3.0 e 320 Mbps na HomePNA 3.1. 14 O HPNA 3.0 foi desenvolvido especificamente para prover serviços de dados e multimídia em redes domiciliares sob cabeamento telefônico e/ou coaxial. Permitindo assim, oferecer serviços triple-play (vídeo, voz e dados), necessitando assim de uma combinação dos seguintes benefícios: • Alta taxa de transmissão; • Utiliza o cabo existente, sendo este coaxial ou telefônico; • Pode haver divisores (splitters) na rede; • Frequência de operação fora da faixa de telefone, TV à cabo e TV coletiva; • Garantia de QoS (Quality of Service) para áudio, vídeo e VOIP; • Baseado num padrão aberto (ITU G.9954), permitindo a compatibilidade entre diferentes fabricantes; • Conexão ponto à ponto ou ponto à múltiplos pontos. O HomePNA 3.0 utiliza uma técnica de agregação de pacotes, que permite aumentar a eficiência do protocolo de acesso ao meio. Esta técnica consiste em agregar o campo de dados de vários quadros Ethernet em um único quadro HomePNA. Com isso, o campo de dados do HomePNA pode chegar a até 64.000 bytes, aumentando assim a eficiência do protocolo (ITU-T, 2005). O modo de acesso ao meio utiliza o método síncrono em um modo mestreescravo, e técnicas de controle de admissão e reserva de recursos, que permitem que a rede ofereça qualidade de serviço (QoS – Quality of Service). Neste modo, uma estação da rede é escolhida como estação mestre através de um protocolo específico. Assim, todas as estações devem transmitir de acordo com as instruções da estação mestre. Adotase o termo Master para os dispositivos que operam no modo mestre e o termo End-point para os dispositivos que operam no modo escravo (ALMODEI, 2005). De uma forma centralizada, o Master aloca intervalos de tempo específicos para as outras estações, sem disputa pelo meio, para atender aos requisitos de QoS da rede. Além disso, ele também aloca intervalos onde as estações podem disputar pelo meio (ALMODEI, 2005). Para alcançar taxas de até 128 Mbps, o HomePNA 3.0 utiliza uma banda passante maior em relação as versões anteriores. Enquanto que a segunda versão do padrão utiliza uma banda de apenas 6 MHz, o HomePNA 3.0 utiliza uma banda passante de 17 MHz, na 15 faixa de 4 MHz a 21 MHz, como mostra a máscara de densidade espectral de potência na Figura 5. Figura 5. Máscara de densidade espectral de potência do HomePNA 3.0. Fonte: ALMODEI, 2005. Para a extensão opcional de 240 Mbps utiliza-se uma banda passante ainda maior, que chega a 24 MHz, de 4 a 28 MHz, alcançando uma taxa de símbolos de 24 Mbaud. A nova máscara é mostrada na Figura 6. Além disso, também foram definidas duas novas constelações QAM, para 9 e 10 bits por símbolo. Utilizando a constelação de 10 bits por símbolos com a taxa de símbolos de 24 Mbaud chega-se à taxa de 240 Mbps (ALMODEI, 2005). 16 Figura 6. Máscara de densidade espectral de potência para 240Mbps Fonte: ALMODEI, 2005. No entanto, o HomePNA 3.0 mantém a taxa básica de transmissão de 4Mbps para os campos de cabeçalho e fim de quadro, o que diminui a eficiência da rede. A taxa básica faz com que a eficiência da rede diminua para taxas de transmissão maiores, devido ao tempo fixo de transmissão do cabeçalho (ITU-T, 2005). 2.3 SISTEMAS EMBARCADOS Esta seção detalha as principais características eletrônicas (físicas) de um sistema embarcado. Apresenta a evolução histórica dos componentes eletrônicos até chegar à criação dos sistemas embarcados. Descreve a arquitetura básica interna de funcionamento da unidade de processamento do sistema embarcado e os principais componentes e conceitos referentes a esse sistema. Pode-se afirmar que: um sistema embarcado é uma "caixa" com componentes eletrônicos cujo entendimento facilita muito o desenvolvimento das aplicações, uma vez que todos esses componentes devem ser corretamente configurados para o funcionamento apropriado do sistema embarcado (ANDRADE&OLIVEIRA, 17 2006). Alguns componentes presentes num sistema embarcado estão nos tópicos seguintes. 2.3.1 Transistor Considerado uma das maiores invenções do século passado, o transistor foi idealizado pelos pesquisadores da Bell Lab's em dezembro de 1947. Esse dispositivo tinha função, semelhante às válvulas de controlar o fluxo de corrente, sendo amplamente utilizado na telefonia e no rádio (ANDRADE&OLIVEIRA, 2006). Entre as vantagens, percebe-se o tamanho reduzido em relação às válvulas. Não são necessários grades, vácuo, nem invólucro de vidro. De ação instantânea, não gera ruídos nem atraso por aquecimento. Os transistores também funcionam como comutadores (chaves), sem atrasos como acontece com os relés (ANDRADE&OLIVEIRA, 2006). Esta invenção representou mais um salto tecnológico na história. Substituiu definitivamente as válvulas e com isso tornou possível reduzir consideravelmente o tamanho dos produtos eletrônicos. Dependendo da forma que um transistor é ligado, ele pode assumir várias funções, como por exemplo: comutador, amplificador tensão e amplificador de corrente (ANDRADE&OLIVEIRA, 2006). 2.3.2 Circuitos Integrados Após a invenção dos transistores, as implementações de circuitos digitais tornavam-se cada vez mais complexas. Pequenas calculadoras já utilizavam milhares de pequenos transistores. O número desse dispositivo empregado nos circuitos digitais aumentava rapidamente. Com isso veio a necessidade de reduzir a eletrônica envolvida, e desta forma surgiu outra invenção, o circuito integrado (CI), exibido na Figura 7. 18 Figura 7. Exemplo de circuito Integrado Fonte: Adptado de FREESCALE (2002). A cada novo CI lançado a complexidade das aplicações aumentava exponencialmente, possibilitando aplicações que antes eram quase impossíveis de implementar. Logo vieram os primeiros microprocessadores, capazes de executar milhões de instruções por segundo. Hoje em dia, nota-se a presença dos circuitos integrados na grande maioria dos equipamentos eletrônicos (ANDRADE&OLIVEIRA, 2006). Os circuitos integrados possuem diversos formatos na indústria eletrônica, denominados de encapsulamentos, devido aos diversos processos de fabricação. Às vezes eles são projetados para otimizar o espaço, para facilitar a montagem ou em razão dos custos. Assim, diversos formatos da pastilha de silício e dos terminais (pernas ou pinos) são utilizados. Dentre os mais comuns existe o formato PDIP (figura 7), muito utilizado para prototipagem rápida e até caseira (ANDRADE&OLIVEIRA, 2006). 2.3.3 Circuito Impresso Os circuitos impressos foram criados para unir de forma permanente e eficiente os circuitos integrados aos diversos outros componentes de um circuito eletrônico, minimizando e em muitos casos até substituindo a utilização de fios, realizando as devidas ligações do circuito. 19 O circuito impresso pode ser fabricado com placas de diversos materiais, e possui uma ou mais superfícies (faces) cobertas por uma fina película de metal em que são desenhadas as trilhas condutoras, que representam o circuito. Nas trilhas são fixados os componentes eletrônicos pelo processo de soldagem (ANDRADE&OLIVEIRA, 2006). Existem diversos softwares para a confecção de circuitos impressos. O processo é simples. O circuito é desenhado sem levar em consideração a placa e a disposição dos componentes. Esse tipo de circuito é denominado de esquemático (schematic), e a partir dele é gerado o circuito para a confecção do circuito impresso chamado de layout. Nessa etapa os softwares usam algoritmos de minimização de rotas sem cruzamento de linhas, mas em geral isso é feito manualmente (ANDRADE&OLIVEIRA, 2006). 2.3.4 Arquitetura Geral de um Sistema Embarcado Internamente a um sistema embarcado, o componente mais evidente é a memória, pois ele necessita de um local para armazenar o software embarcado. Não apenas para isso, pois existem memórias que são utilizadas para armazenar dados temporários vindos de processamentos. Também existe uma memória que armazena as instruções básicas do processador (ANDRADE&OLIVEIRA, 2006). Memórias eletrônicas têm como características: • Tempo de Acesso: é o tempo necessário para acessar a memória e realizar uma operação de leitura ou gravação; • Capacidade: quantidade efetiva de dados que podem ser armazenados no interior da memória; • Não-Volatilidade: capacidade de manter seus dados mesmo quando não existir energia elétrica; • Tempo de Latência: é o intervalo mínimo entre cada operação de leitura ou escrita na memória. Este deve ser respeitado, pois pode acarretar na utilização de espaços indevidos da memória, podendo causar a perda ou manipulação incorreta de dados; 20 Levando em consideração estas características, ainda existem várias tecnologias de fabricação de memórias. Algumas são conhecidas devido a seu uso em computadores pessoais. Dentre elas destacam-se as seguintes: • Memória RAM (Random Access Memory - Memória de Acesso Aleatório): é volátil (ou seja, não mantém seus dados sem energia elétrica). Sempre que alimentada, inicia com dados inconsistentes. A aleatoriedade consiste no fato de que, para acessar um determinado endereço, não é necessário percorrer todos os endereços anteriores desde o início, mas realizar um acesso direto ao endereço desejado (ANDRADE&OLIVEIRA, 2006); • Memória ROM (Read Only Memory- Memória exclusivamente de leitura): é um tipo que armazena dados de forma não-volátil. Ela é conhecida como apenas de leitura, pois não permite escrita e é programada pelo fabricante. Utilizada em computadores pessoais para armazenar o conjunto de rotinas básicas do sistema operacional, denominado popularmente de BIOS (Sistema Básico de Entrada e Saída). Também é muito usada em calculadoras e em impressoras para armazenar seus modelos de letras (ANDRADE&OLIVEIRA, 2006); • Memória PROM (Programmable Read Only Memory – Memória programável exclusivamente para leitura): é um tipo especial de memória ROM, que é fabricada em branco para ser programada pelo projetista da aplicação. É gravada uma única vez (ANDRADE&OLIVEIRA, 2006); • Memória EPROM (Electrically Programmable Read Only Memory - Memória programável apagável exclusivamente para leitura): é um tipo de memória PROM, cujo conteúdo pode ser apagado quando submetido a processos especiais, como luz ultravioleta. Pode ser regravada algumas vezes (ANDRADE&OLIVEIRA, 2006); • Memória EEPROM ou E2PROM (Electrically Erasable Programmable Read Only Memory - Memória programável apagável eletricamente exclusivamente para leitura): é do tipo ROM, que pode ser programada e também apagada por processos elétricos. Esse procedimento pode ser repetido várias vezes. As operações de escrita são realizadas de forma mais lenta se comparada à leitura (ANDRADE&OLIVEIRA, 2006). 21 • Memória FLASH: é programável e apagável eletricamente, sendo possível repetir esse processo rapidamente, só que com velocidades de leitura e escrita bem superiores à memória EEPROM. Conseqüentemente seu custo também é maior. No tópico seguinte será detalhado em que situações e funções são utilizadas essas memórias. 2.3.4.1 Memória de Programa A memória de programa é o local onde fica armazenado o firmware do sistema embarcado, geralmente uma memória Flash, que fornece ao programador a possibilidade de gravar muitas vezes o seu software embarcado. Em alguns casos especiais, o espaço livre dessa memória pode ser reutilizado como extensão da memória de dados, devido a uma característica especial desse tipo de hardware (ANDRADE&OLIVEIRA, 2006). Ela é uma memória não-volátil, ou seja, seus dados mantêm-se mesmo quando não existe alimentação. Devido a essa característica, um sistema embarcado pode manter sempre seu firmware internamente, sem a necessidade de uma gravação a cada execução. Assim, os fabricantes começaram a introduzir pequenas memórias EEPROM nas pastilhas do componente processador, as quais competem diretamente com o espaço físico de outros periféricos internos. Assim, componentes com menos periféricos internos costumam ter maiores memórias internas (ANDRADE&OLIVEIRA, 2006). A característica mais importante dessa memória é não perder o seu conteúdo quando a alimentação é desligada e permitir a gravação e leitura. Na prática, a memória EEPROM é usada para guardar dados importantes ou alguns parâmetros de processamento. Para conectar essas memórias aos demais componentes do sistema, existem os barramentos, que são canais de informação por onde passam os dados para gravação e leitura das memórias. Existem duas arquiteturas muito difundidas no meio da eletrônica digital: a arquitetura Harvard e a arquitetura de Von Neumann, as quais definem diferentes estruturas de barramentos (ANDRADE&OLIVEIRA, 2006). 22 2.3.4.2 Arquitetura Harvard x Von Neumann A arquitetura Harvard difere da arquitetura de Von Neumann, principalmente pelo método em que são processados os dados provenientes da memória de dados e da memória de programa. Na arquitetura de Von Neumann existe apenas um barramento por onde passam os dados da memória de programa e da memória de dados, enquanto na arquitetura de Harvard existem barramentos diferentes, proporcionando maior desempenho, pois permitem múltiplos acessos à memória, ou seja, acessos simultâneos à memória de dados e à memória de programa (ANDRADE&OLIVEIRA, 2006). Ainda nos parâmetros de projetos dos sistemas embarcados, existem as filosofias básicas de desenvolvimento do conjunto de instruções. É preciso ressaltar a maior flexibilidade de programação (maior quantidade de instruções disponíveis, promovendo maior quantidade de soluções) na utilização de um conjunto de instruções mais completo. Nos processadores RISC as instruções são muito simplificadas, com formato fixo, e devem levar apenas um ciclo de clock na execução. Este princípio significa que qualquer operação que não possa ser completada em um ciclo não pode ser incluída no conjunto de instruções. Assim, muitas máquinas RISC não possuem instruções para multiplicação ou divisão, que são implementadas, geralmente, por seqüências de somas ou subtração. Atingir literalmente o objetivo de uma instrução por ciclo de clock não é possível, pois as instruções de acesso à memória são um gargalo. Instruções que buscam seus operandos de registradores (espaço reservado de memória) e armazenam seus resultados em registradores podem ser manipuladas em um ciclo, mas instruções que carregam a partir da memória ou armazenam em memória levam mais tempo (ANDRADE&OLIVEIRA, 2006). Os tópicos seguintes apresentam o clock, os registradores e o contador de instruções. 23 2.3.4.3 Clock O clock fornece a sensibilidade de tempo para o processador, ou seja, ele fornece um sinal que é uma onda quadrada (Figura 8), por isso é freqüentemente chamado de oscilador. A cada nível alto dele, uma instrução no mínimo é executada, dependendo das características físicas do processador. Um ciclo de clock consiste na diferença de tempo entre dois níveis altos dessa onda do oscilador. Figura 8. Onda Quadrada. Então um clock define a velocidade de processamento. Quanto mais rápido o oscilador mais veloz será o processamento. Microcontroladores trabalham geralmente até 40MHz, enquanto existem DSP's que alcançam até 800 MHz (ANDRADE&OLIVEIRA, 2006). 2.3.4.4 Registradores Registradores são pequenas unidades de memória para alocação temporária de 24 dados. Ou seja, trabalham diretamente com o processador, armazenando os resultados de suas operações lógicas e aritméticas temporariamente até que esse dado seja reutilizado em outra instrução ou transferido para outra forma de memória (ANDRADE&OLIVEIRA, 2006). 2.3.4.5 Contador de Instrução É um registrador cuja função é armazenar o endereço da próxima instrução a ser executada. Quando essa instrução inicia a execução, o conteúdo desse registrador é logo atualizado para o endereço da próxima instrução a ser executada (ANDRADE&OLIVEIRA, 2006). São funções do processador: • Buscar uma instrução na memória; • Interpretar a operação à qual a instrução está se referindo; • Buscar os possíveis dados necessários para a execução da operação (em memórias ou registros); • Executar a operação com os dados e armazenar o resultado no lugar definido pela instrução; • E reiniciar o processo, buscando uma nova instrução. A seqüência de etapas denomina-se de ciclo de instrução que ocorre indefinidamente até que ocorra uma queda de energia, o sistema seja desligado, ocorra algum erro ou o programa termine sua execução. No que se refere ao hardware, uma instrução não passa de uma seqüência de bits (zero ou um) e um processador é simplesmente uma; unidade de processamento matemático (ALU – Aritmetical Logic Unit, que significa: Unidade Lógica e Aritmética, Figura 9) cuja função é realizar as operações lógicas e aritméticas. Então ele só conhece essas operações. Para isso existe um novo componente interno ao sistema embarcado, o decodificador e controlador de instruções (ANDRADE&OLIVEIRA, 2006). 25 Figura 9. ALU – Unidade Lógica e Aritmética Fonte: Adaptado de MICROCHIP (2004). A ALU ainda possui alguns sinalizadores (flags) de overflow (estouro da capacidade do registro de resposta) e de quando o resultado é zero com um (ANDRADE&OLIVEIRA, 2006). 2.3.5 Microcontroladores e Microprocessadores Um microcontrolador é um componente muito parecido microprocessador exceto pelo fato de que os microcontroladores são desenvolvidos com o uso específico para sistemas embarcados. Além da unidade de processamento, os microcontroladores possuem uma ou mais memórias e interfaces de entrada e saída (I/O) integradas. Utilizados em larga escala, nas mais variadas áreas da automação, os microcontroladores podem ser encontrados em eletrodomésticos, brinquedos eletrônicos e ate mesmo em sistemas de segurança (ANDRADE&OLIVEIRA, 2006). De uma forma geral, microprocessadores e microcontroladores são circuitos integrados disponíveis nos mais variados tipos de encapsulamentos e destinados ao tratamento de sinais digitais. Primeiro vieram os microprocessadores, substituindo 26 milhões de transistores nos computadores, que chegavam a ocupar um andar de um prédio e após essa invenção diminuíram consideravelmente de tamanho. São usados principalmente para processamentos complexos e possuem alto custo. Dentre algumas aplicações estão presentes nos microcomputadores pessoais, em aparelhos eletrônicos de uso doméstico e nos equipamentos médicos (ANDRADE&OLIVEIRA, 2006). Mas esse circuito integrado não consegue fazer nada sozinho, pois são necessários outros dispositivos externos para que ele se torne útil. É uma memória de programa, que deve conter o programa que será executado pelo microprocessador. Necessita inclusive de barramentos entre essa memória e o microprocessador, que são a ligação física entre a memória e o microprocessador (fios ou trilhas). No caso de um barramento de dados de 16 bits, haverá 16 fios ou trilhas comunicando os dois. Existe a necessidade também do barramento de endereços, o qual seleciona o endereço em que o dado será lido ou escrito na memória. Desta forma, em um microprocessador deve ser acoplado externamente todo componente necessário para o cumprimento da aplicação. Os microcontroladores, em geral, possuem todos os periféricos necessários num único chip. Seu tamanho também é muito pequeno, mesmo contendo vários periféricos como: memórias, barramentos, timer's, portas de comunicação, conversores de sinal analógico para digital, etc. Eles possuem desempenho menor que os microprocessadores, mas são ideais em aplicações que necessitam de menores dimensões, tempo e custos. Esse dispositivo é amplamente usado em automação industrial, residencial e predial, eletrodomésticos, brinquedos eletrônicos e em qualquer situação em que seja necessário o controle de um dispositivo de sinais eletrônicos. Por exemplo, num elevador, quando alguém aperta um botão para ir até um andar específico, o microcontrolador recebe essa informação como um dado de entrada, interpreta-o e aciona os motores do elevador até aquele andar, pára e abre as portas (ANDRADE&OLIVEIRA, 2006). 2.3.6 Firmware Firmware é o software de um sistema embarcado. Após detalhada algumas formas 27 de implantação do hardware de um sistema embarcado, é chegada a hora de tratar do software embarcado, denominado firmware. De nada adianta ter um hardware perfeitamente montado, sem ter um software adequado para controlá-lo. A essência de um sistema embarcado é conter um firmware que controlará a sua execução.O firmware não passa de um conjunto de regras que rege o funcionamento do sistema (ANDRADE&OLIVEIRA, 2006). O software de um sistema embarcado é semelhante ao de um computador pessoal, podendo ser escrito em diversas linguagens de programação, mas a forma de escrever essa lógica é denominada algoritmo. Um exemplo de um algoritmo básico que controlaria o funcionamento de um botão interfaceando com uma lâmpada é apresentado na Figura 10: Figura 10. Algoritmo exemplo Fonte: Adaptado de ANDRADE&OLIVEIRA (2006). Neste, o software realiza a leitura de um botão, caso ele esteja pressionado, uma luz é acesa; caso contrário, ela é apagada. Essa leitura é realizada indefinidamente enquanto o sistema estiver alimentado.). O algoritmo é uma das formas de representação de uma solução, que deve ser convertida em alguma linguagem de programação, de forma a ser entendida pelo processador. Existe uma grande diversidade de linguagens de programação, cada uma otimizada para um determinado tipo de aplicação. Elas estão constantemente sofrendo evoluções de forma a facilitar a implementação das soluções. As linguagens de programação podem ser divididas em linguagens de baixo nível e linguagens de alto nível (ANDRADE&OLIVEIRA, 2006). Uma linguagem de programação é dita de baixo nível quando está na camada 28 mais inferior do software. Ou seja, quando ela é a linguagem efetiva do hardware e não seja necessário convertê-la para o entendimento do processador. Essa é uma categorização não muito padronizada. Esse nível de programação fornece a flexibilidade de operar diretamente os registradores do processador, nível de manipulação difícil de se obter nas camadas superiores, pois nesses níveis o sistema operacional protege os bancos de memórias de alguma modificação inesperada (ANDRADE&OLIVEIRA, 2006). A forma de implementação mais baixa que se pode alcançar é a dita linguagem de máquina que é a utilização das instruções do processador. A linguagem de máquina é a forma de implementação real das instruções do processador. Que são uma seqüência de bits (composta apenas por zeros e uns), mas comumente representada por bytes (8 bits pelo sistema de numeração hexadecimal) de forma a facilitar o entendimento, pois uma grande seqüência de bits torna-se confusa. Como foi especificado anteriormente, todo computador possui um conjunto de instruções (armazenado em uma memória ROM), que é a única forma de implementação que ele compreende (ANDRADE&OLIVEIRA, 2006). Um exemplo de linguagem de baixo nível muito utilizada é o Assembly, que é uma forma de implementação do processador através de instruções e não números. Implementar diretamente na linguagem de máquina torna-se uma tarefa impraticável. O Assembly foi uma das primeiras linguagens de programação a ser criada. O seu desenvolvimento veio da necessidade de utilizar um comando em vez do código da linguagem de máquina. O compilador Assembly utiliza diretamente as instruções do processador, e portanto, necessita de uma versão específica para cada tipo de processador (ANDRADE&OLIVEIRA, 2006). Quando se fala de linguagem de alto nível, fala-se na utilização de uma forma de programação em que diversas estruturas de controle são abstraídas, ou seja, são implementadas automaticamente nas camadas inferiores (quando necessárias). A programação neste caso ainda é realizada com a linguagem de máquina, mas o compilador realiza a conversão. Apesar da praticidade na maioria das vezes, o código gerado pelo compilador fica significativamente maior que o código programado diretamente na linguagem de máquina. Fortran foi uma das primeiras linguagens a entrar para a categoria de linguagem 29 de alto nível. O nome Fortran vem da compressão do termo "Formula Translator". Ela é um pouco defasada das atuais linguagens de alto nível, principalmente pelo fato de que erros de apenas um caractere podem levar a erros na execução do programa, não sendo detectado como erro de compilação. As versões mais atuais da linguagem oferecem recursos que facilitam muito a manipulação de operações matemáticas entre matrizes, sem contar as operações de números complexos que era um diferencial da linguagem. Desta forma, a linguagem Fortran é muito utilizada para aplicações numéricas de alto desempenho (ANDRADE&OLIVEIRA, 2006). Pascal é uma linguagem de alto nível estruturada por regras bem rígidas, que podem torná-la de difícil uso. Foi muito utilizada antigamente, porém atualmente é utilizada como ferramenta de ensino de linguagens de programação. A linguagem Pascal foi substituída pela Object Pascal que é a sua derivação com a adição da técnica de programação orientada a objetos (ANDRADE&OLIVEIRA, 2006). C é uma linguagem de programação bastante utilizada atualmente, devido a sua característica de escrever softwares otimizados para o processador como o Assembly, mas também possui uma série de procedimentos prontos, como nas linguagens de alto nível. Essa flexibilidade fez com que essa linguagem de programação fosse utilizada para o desenvolvimento de uma série de sistemas operacionais modernos. Como essa linguagem é possível desenvolver aplicações para diversos sistemas operacionais, pois possui compiladores específicos para cada ambiente (ANDRADE&OLIVEIRA, 2006). Igualmente ao que aconteceu com a linguagem Pascal, a linguagem C também teve sua evolução de estruturada para orientada a objetos, a qual se denomina C++. De certa forma, manteve os recursos da linguagem C, mas agora com as facilidades da implementação através de Ambientes de Desenvolvimento Integrado (IDE), como o Visual C++ da Microsoft e o Builder C++ da Borland. 2.3.6.1 Tradução de um Software Hoje em dia é muito comum a utilização de linguagens de programação de alto 30 nível para a implementação de sistemas embarcados, devido à abstração que ela fornece. Por exemplo, para implementar uma comunicação serial em um microcontrolador, diversas configurações são necessárias para o envio de apenas um caractere. Quando se implementa através de uma linguagem de alto nível, isso tudo é abstraído e é implementado com apenas uma instrução envia(dado). Quando essa instrução é convertida, o compilador se encarrega de realizar todas as configurações necessárias. O software passa por uma seqüência de conversão desde a linguagem de alto nível até a linguagem de máquina. Os ambientes e desenvolvimento integrado (IDE) realizam todas essas tarefas automaticamente, e geralmente chama um programa para executar cada etapa dessa tradução (ANDRADE&OLIVEIRA, 2006). A primeira etapa da conversão de um software em linguagem de máquina é passar pelo compilador (compiler). A compilação é a tradução de um software para a linguagem de máquina. Na maior parte dos casos, uma instrução na linguagem de alto nível corresponde a várias instruções na linguagem de máquina. O processo de compilação realiza uma análise do código em relação a erros e caso não haja nenhum, gera o código de máquina. Alguns compiladores realizam três etapas em seu processo de compilação. Primeiro geram um código de máquina intermediário, após, este passa por um processo de otimização, para então gerar o código de máquina final. 2.3.6.2 Ligação O código Assembly gerado pelo compilador geralmente não é o definitivo, pois pode haver rotinas de bibliotecas do processador que ainda não foram incorporadas ao programa. Em toda chamada da biblioteca, o compilador inclui no código uma chamada para a rotina correspondente e o endereço dos dados que devem ser passados para a rotina (ANDRADE&OLIVEIRA, 2006). O ligador (linker) procura no código Assembly as chamadas da biblioteca e as substitui pelo devido código, fornecendo como saída um código Assembly completo e pronto para ser executado. 31 2.3.6.3 Montagem A montagem (assembler) é a etapa em que se realiza uma tradução efetiva do programa para linguagem de máquina. Isso feito, analisando instrução a instrução e verificando o código da instrução, caso seja um código válido, ele é substituído pelos códigos numéricos binários equivalentes. Caso tenha algum erro no código, o processo é interrompido e uma mensagem de erro é emitida. Em seguida os nomes simbólicos de referência à memória utilizados pelo programador são convertidos em endereços reais de memória (valores binários). Após isso, os valores constantes são convertidos em binário. Resultando na conversão completa do código em linguagem de máquina (ANDRADE&OLIVEIRA, 2006). 2.3.6.4 Carregamento Tendo o algoritmo convertido em linguagem de máquina, o próximo passo é gravá-lo na memória de programa do sistema embarcado. Esta é uma tarefa do carregador (em inglês, loader). Estes foram os componentes relacionados ao firmware. O conversor HPN contém um firmware e abordado numa seção do próximo capítulo. 32 3 CONVERSOR HPN Nos capítulos anteriores foram abordados os princípios fundamentais para o entendimento e execução deste projeto. Neste capítulo, serão abordados os componentes contidos no protótipo, dando assim uma visão da arquitetura deste. Ao final, uma seção descreverá os testes realizados com o conversor proposto, validando sua eficácia e performance. Alguns dados à nível de projeto não foram revelados por motivos comerciais. Isto porque este projeto foi desenvolvido junto a uma empresa de comunicação de dados, em seu setor de pesquisa e desenvolvimento, portanto a exposição de certos dados coloca em risco o pioneirismo da empresa caso seja exposto os códigos fontes e esquema elétrico de seu produto. Figura 11. Exemplo de aplicação em residências Fonte: READLINKS (2005). O conversor HPN (ou HomePNA) é destinado a aplicações de transmissão e recepção de dados através de redes baseadas no padrão Ethernet 100BASE-Tx e o padrão HomePNA 3.0 G.9954 sobre cabos coaxiais, criando redes privativas de alta velocidade. Este equipamento permite a criação de redes locais utilizando o cabeamento coaxial simultaneamente com o serviço de TV a cabo ou antena coletiva (em condomínios), conforme as Figuras 11 e 12, respectivamente. Nota-se na Figura 11 uma ponte passiva (coax bridge) permitindo assim integrar dois meios físicos distintos, o coaxial e o telefônico. Figura 12. Exemplo de aplicação em condomínios Fonte: Adaptado de CIANET (2007). 34 Para que esta integração de tecnologias seja possível, são necessários alguns componentes básicos no conversor: no mínimo uma interface de rede (Ethernet) e no mínimo uma interface HomePNA. Com isso trás a necessidade de um switch Ethernet (circuito integrado) e um modem HomePNA (circuito integrado). Também é necessário um regulador de tensão para alimentar estes componentes. Além disto outros componentes periféricos devem integrar ao sistema, como por exemplo: transformadores para a interface Ethernet, filtro passivo de terceira ou quarta ordem para a interface HomePNA, memória de armazenamento não volátil (FLASH ou EEPROM) e uma série de resistores, capacitores e indutores. Com a ligação correta destes componentes, teremos o conversor HomePNA/Ethernet. Além destes componentes, será incluído um microcontrolador para possibilitar o gerenciamento remoto do equipamento. Agregando algumas funcionalidades ao conversor, como por exemplo, desabilitar a interface Ethernet, criar VLAN’s, reiniciar o equipamento, entre outros. 3.1 ARQUITETURA GERAL Este item está divido em dois subitens com a intenção de mostrar em que sistema o conversor está inserido e a seguinte mostrar os blocos internos do conversor propriamente dito. Assim tem-se a visão da aplicação e dos componentes do protótipo. 3.1.1 Arquitetura Geral do Sistema Na Figura 13, pode-se verificar o diagrama de blocos da arquitetura geral do sistema, que nada mais é que a tradução das Figuras 11 e 12 convertidas em blocos. 35 Figura 13. Diagrama de blocos da arquitetura geral do sistema O sinal de internet chega através de um link de rádio ou xDSL e conecta-se ao conversor HomePNA (configurado no modo Master). Em seguida dois sinais chegam ao Diplex via cabo coaxial, o HomePNA e o de TV. Este equipamento tem como função misturar 2 faixas de freqüência, conforme é mostrado na Figura 13. A faixa entre 5 MHz e 42 MHz corresponde ao sinal HomePNA e a faixa entre 54 MHz e 750 MHz coresponde ao sinal de TV. Na saída do Diplex aparece os sinais misturados em um cabo coaxial, que pode percorrer alguns andares no caso de um prédio ou alguns metros numa residência. Então o sinal chega ao spliter, que é um simples divisor. Existem diversos tipos de divisores, com várias saídas (uma entrada para: dois, quatro, oito, etc). O seu uso dependerá das necessidades na aplicação. A Figura 14 apresenta a perda aproximada de acordo com o valor e o número de saídas do spliter (também chamado TAP). 36 Figura 14. Perda de inserção de acordo com o número de saídas e valor do TAP Fonte: Adaptado de CIANET (2007). O passo seguinte é quando o sinal chega a outro Diplex, que neste caso tem a função de separar os sinais misturados anteriormente. Assim segue um sinal HomePNA para o conversor e outro sinal, o de TV, para o aparelho de TV. Finalizando, o conversor (configurado no modo End-point) converte o sinal HomePNA para o padrão Ethernet e envia para a interface de rede do PC. O limite de alcance do sinal depende da atenuação sofrida no caminho percorrido. Para o conversor HomePNA 3.0, a atenuação máxima é de 46dB, caso passe deste valor não haverá comunicação. Se a atenuação ficar entre zero e trinta dB é possível trafegar à taxa máxima do conversor. Um cabo coaxial comum utilizado nas residências, chamado RG- 59, possui atenuação de 3,7 dB a cada cem metros. Porém as redes costumam ter outros componentes passivos como os spliter’s, que também atenuam o sinal. A Figura 14 mostra os valores em dB de alguns casos. Tudo isso significa que o alcance pode passar de um quilômetro, vai depender da atenuação total da rede coaxial em que o conversor se encontra. 3.1.2 Arquitetura Geral do Conversor Na Figura 15 pode-se verificar o diagrama de blocos da arquitetura geral do conversor proposto neste trabalho. 37 Figura 15. Diagrama de blocos da arquitetura geral do conversor Os principais blocos serão detalhados posteriormente. Abaixo segue uma breve descrição de cada bloco: • ETH: corresponde à interface Ethernet e é um conector RJ45 fêmea • SWITCH: é responsável por processar os pacotes Ethernet. Possui três tipos de interfaces no sistema. Uma conexão MII (Media Independent Interface), uma conexão SMI (Serial Managemment Interface) e outra conexão UTP (Unshield Twisted Pair). • MIC: é um microcontrolador responsável por gerenciar o switch Ethernet e o modem HPN, ambos via SMI. • MODEM HPN: processa os sinais HomePNA e repassa ao Switch via interface MII ou processa o pacote ethernet recebido pela interface MII e converte para a interface HomePNA. Também possui uma interface SMI. • FLASH: é a memória responsável por armazenar o firmware do modem HPN. • COAX: nada mais é que um conector F macho para a conexão do cabo coaxial. 3.2 ANÁLISE DE REQUISITOS Estes são os requisitos que se referem às funções que o sistema deve realizar e 38 deverá estar apto a desenvolver as seguintes tarefas: • R01 – Envio e recebimento de pacotes através da interface Ethernet; • R02 – Envio e recebimento de pacotes através da interface HPN; • R03 – Envio e recebimento de pacotes através das interfaces MII’s; • R04 – Envio e recebimento de comandos entre o microcontrolador e o modem HPN; • R05 – Leitura e escrita de dados nos registradores internos do modem HPN e Switch Ethernet através da interface SMI do microcontrolador; • R06 – Codificação de um protocolo de comunicação entre o microcontrolador e o software de gerência (PC); • R07 – Interpretação de comandos de gerência pelo microcontrolador; • R08 – O firmware de gerência deve ser implementado em linguagem C,C++ e/ou Assembler; • R09 – O conversor deve ser capaz de enviar e receber dados; • R10 – O conversor deve ser capaz de prover serviço de vídeo; 3.3 HARDWARE Nos tópicos seguintes encontram-se os detalhes dos principais blocos do hardware projetado. Ao final, como resultado o protótipo do conversor, que é composto basicamente por três itens: um switch Ethernet, um modem HomePNA e um microcontrolador. 3.3.1 Microcontrolador MC9S08QD4 Os microcontroladores da série MC9S08QD4 são integrantes da família HCS08 39 de baixo custo, alta performance e 8 bits (Freescale, 2006). Componente escolhido principalmente pelo seu custo comercial bastante atrativo. Este dispositivo fabricado pela Freescale Semiconductors têm as seguintes características: • Unidade central de processamento (CPU) de 16 MHz; • Suporta até 32 interrupções; • Memória Flash de 4096 bytes; • Memória RAM de 256 bytes; • Conversor Analógico-Digital (AD) ou Digital Analógico de 4 canais (10 bits); • 2 canais PWM (Pulse Width Modulation); • 2 temporizadores (Timmers); • Apenas 8 pinos, sendo quatro de propósito geral (entrada ou saída); • Depuração in-circuit single wire (no circuito com apenas um fio); • Encapsulamento SOIC ou PDIP; • Tensão de alimentação de 2.7Volts à 5.5Volts • Programável em Assembler, C e/ou C++. A Figura 16 mostra a como está disposto os pinos e seus respectivos nomes. Figura 16. O microcontrolador MC9S08QD4 Fonte: FREESCALE (2006). Para melhor entendimento da arquitetura e dos elementos que compões o chip, a Figura 17 expõem o diagrama de blocos deste microcontrolador. 40 Figura 17. Diagrama de blocos do MC9S08QD4 Fonte: FREESCALE (2006). Observando os blocos, podemos destacar os seguintes módulos relevantes ao sistema: • HCS08 CORE: Contém a unidade central de processamento (CPU); • HCS08 SYSTEM CONTROL: controla os modos de operação; • USER FLASH: local onde será armazenado o firmware do sistema embarcado; • USER RAM: local onde ficam as variáveis do sistema durante a operação; • INTERNAL CLOCK: gerador de clock interno de 16MHz. 41 3.3.1.1 Firmware de Gerência O firmware de gerência foi desenvolvido, compilado e gravado com a IDE, fornecida pela Freescale Semiconductors, chamada Code Warrior versão 5.1. A interface física para gravação (USB – Universal Serial Bus) foi o P&E Multlink para família de microcontroladores HCS08. A comunicação entre um software de gerência qualquer rodando no PC e o firmware de gerência rodando no microcontrolador acontece da seguinte forma: O PC envia um comando pré-determinado para o conversor via interface de rede Ethernet, ou seja, o software de gerência do PC escreve numa região da memória RAM do modem HPN (CG3010). O microcontrolador fica varrendo essa região de memória constantemente até que chegue um novo comando. A Figura 18 ilustra o fluxograma de operação do firmware de gerência. Figura 18. Fluxograma de operação do firmware de gerência 42 No caso de um comando válido, o microcontrolador interpreta este comando e devolve uma resposta na mesma região de memória. O software de gerência (PC) lê esta resposta. A Figura 19 ilustra o frame de gerência. Figura 19. Frame de gerência Com isso é possível implementar uma série de funcionalidades. Na Figura 20 estão algumas das funções implementadas no microcontrolador. Figura 20. Funções de gerência do microcontrolador Com este método também é possível enviar comandos de leitura ou escrita para os registradores internos do switch RTL8305SC e os registradores internos do próprio modem HPN CG3010, sempre através do microcontrolador. Para tanto basta enviar o comando especificando qual chip deseja-se acessar, esta informação está contida no campo ADDR do comando. Há a possibilidade de armazenar um texto de identificação do equipamento de até 20 caracteres. Esta funcionalidade é útil em redes que possuem diversos equipamentos. Ao invés de gerenciá-los identificando-os pelo endereço MAC, usa-se esta descrição. 43 Fornecendo assim uma solução alternativa de identificação, por exemplo: Num prédio onde existem 40 conversores configurados como End-point conectados a um conversor configurado como Master. Através do software de gerenciamento é possível atrelar o MAC dos equipamentos a uma string de identificação. A padronização fica por conta do usuário, exemplificando: “EP19-BL.A-APTO 1001” corresponde ao conversor número 19 que está localizado no bloco A, apartamento 1001, associado ao MAC 00-19-46-0234-56. Outro exemplo: “ASSINANTE N. 342”; “RUA EUCALIPTUS N. 12”. Além de tornar a identificação dos equipamentos mais flexível, é possível gerenciá-los de forma intuitiva, não sendo necessário uma tabela de controle para identificar os assinantes. Esta situação é comum em condomínios com grande número de clientes (assinantes do provedor de internet). Foi definido utilizar apenas 20 caracteres por motivo de economia de espaço na tabela de comandos interna (área na Flash do microcontrolador destinada aos comandos), já que esta é limitada em 128 comandos. Lembrando que para cada comando aproveita-se apenas dois bytes de dados, e que um comando tem quatro bytes. A Figura 18 ilustra o frame do comando. Existem inúmeras maneiras de representar um caractere. A mais comum é utilizar a tabela ASCII, conforme a Figura 21. 44 Figura 21. Caracteres pelo padrão ASCII Para aproveitar ainda mais o espaço na tabela de comandos, foi criada uma nova tabela a fim de otimizar ainda mais o espaço necessitando apenas de seis bits por caractere. A tabela de caracteres está ilustrada na Figura 22. 45 Figura 22. Tabela de caracteres desenvolvida Para tanto foi necessário desenvolver uma codificação para armazenar esses caracteres na tabela de comandos. Esta ocupa uma área de memória Flash do microcontrolador. Os comandos que guardam os caracteres na tabela de comandos estão organizados em seqüência e cada comando guarda quatro caracteres. Para tanto, todo o comando com bit 3 e bit 4 do PHY deve ser igual a 11 (binário). Assim os 8 bits do DATA_H somados aos 8 bits do DATA_L somados aos 5 bits do REG somados aos 3 bits que sobraram do PHY, totalizam 24 bits para serem utilizados como caracteres conforme a Figura 23, totalizando quatro caracteres por comando. Os bits disponíveis para a codificação de string estão sinalizados por “X”. Figura 23. Exemplo de um comando de gerência 46 3.3.2 Switch Realtek RTL8305SC O RTL8305SC é um switch controlador de cinco portas Fast Ethernet com memória integrada. Possui cinco MACs e cinco camadas físicas de transmissão para 10Base-T ou 100Base-TX em um único chip. Todas as portas suportam 100Base-FX (fibra óptica), compartilhando os pinos de TX+- e RX +- (UTP) e não necessitam dos pinos SD+/- (comuns nos dispositivos de fibra óptica), devido à tecnologia proprietária da Realtek (REALTEK, 2005). O microchip suporta auto-negociação ou pode-se forçar a negociação para 100Mbps em Half ou Full Duplex com ou sem controle de fluxo. O mesmo ocorre para o modo FX, diminuindo o tempo de negociação já que as fibras não operam à 10Mbps. As cinco portas são separadas em três grupos (grupo X, grupo Y e Porta 4) flexibilizando o uso do chip e facilitando a configuração que pode ser feita via hardware ou software (após o reset). Cada grupo pode ser configurado independentemente como UTP ou FX, além das funcionalidades de negociação. A configuração por hardware acontece via ajuste de pinos (pull-up ou pull-down). A configuração por software é através de uma memória EEPROM externa ou via interface SMI (MDC/MDIO) (REALTEK, 2005). A quinta porta suporta um MAC ou PHY externo. A interface MAC externa pode ser um PHY no modo MII, PHY no modo SNI ou MAC no modo MII. Assim é possível ligar o switch a um roteador, um transceiver HomePNA, um transceiver VDSL, uma CPU qualquer, entre outros. Este switch contém uma tabela de entrada de endereços MAC de mil posições e uma tabela CAM (Comparison Address Match) de dezesseis entradas minimizando os problemas de colisão na tabela (evento conhecido como Hash collisions) a fim de oferecer uma boa performance. A tabela de entrada (mil posições) permite leitura e escrita via interface SMI, sendo possível configurar ou forçar qualquer entrada (entrada estática do endereço MAC). Isto acontece quando há um gerenciamento externo e desejase manter um endereço fixo na tabela. O switch conta ainda com uma série de funcionalidades, como por exemplo: back-pressure half duplex com controle de fluxo; 47 filtro de tempestade broadcast; grupos de VLAN baseados em portas; grupos de VLAN com tag (802.1Q); filtros de entrada e saída de pacotes baseados nas VLAN's; qualidade de serviço (QoS); dois níveis de filas de prioridades; tamanho máximo de pacotes variável (1536 ou 1552); endereços multicast (IEEE 802.1D); LED's de diagnóstico (link, atividade, velocidade, duplex e colisão); detecção de loop; baixo consumo, entre outras funcionalidades (REALTEK, 2005). Cada canal da camada física deste switch consiste em um codificador 4B5B, um codificador Manchester, um scrambler/de-scrambler, um driver de transmissão, um filtro de ondas na saída, um equalizador digital adaptativo, um circuito PLL, e um detector automático de cabo crossover (auto MDI/MDIX) (REALTEK, 2005). O RTL8305SC é um chip integrado de baixo consumo ideal para configurações flexíveis SOHO (Small Oficce Home Office), Gateway residencial, roteador xDSL/Cable/HomePNA. Pode ser configurado das seguintes formas: • Cinco portas 10/100M UTP; • Quatro portas 10/100 UTP + 1 porta MII/SNI; • Quatro portas 10/100 UTP + 1 porta MAC MII/SNI + 1 porta PHY MII. 48 3.3.2.1 Arquitetura Geral do Switch Ethernet Com o diagrama de blocos é possível entender como funciona este switch Ethernet. A figura 24 ilustra o diagrama de blocos do switch Ethernet RTL8305SC. Figura 24. Diagrama de blocos do Switch Ethernet RTL8305SC Fonte: Adaptado de REALTEK (2005). Os principais blocos são: • 100Base-T PHYceiver: são as portas UTP; • MAC0 – MAC4: processador da porta 0 à 4; 49 • Lookup Table: tabela de endereçamento MAC; • Packet Buffer: acumulador de pacotes; • Global Function: controla clock de saída, o Reset, entre outros; • Led Control: controla os pinos que devem ser ligados aos LED’s; • PHY Interface: Modo PHY MII; • MAC Inteface: Modo MAC MII ou PHY MII/SNI. 3.3.2.2 Tabela de Endereçamento MAC A Lookup Table (Tabela de Endereçamento MAC) é uma tabela interna do switch e tem a função de associar um MAC Address a uma das cinco portas (porta 0 à 4) disponíveis no RTL8305SC. A tabela possui 1024 posições. Quando um pacote Ethernet é recebido, o switch utiliza os últimos 10 bits do MAC Destino para indexar a entrada na tabela. Ao mesmo tempo compara o MAC Destino com o conteúdo da tabela CAM (16 entradas). Se o índice de entrada é válido ou a comparação CAM combina, os pacotes recebidos serão repassados a porta destino correspondente. Caso contrário, o switch irá enviar o pacote para todas as portas (broadcast). Então o switch extrai os últimos 10 bits do MAC origem para indexar a entrada na tabela (lookup table). Se a entrada não estiver na tabela então será gravado o MAC origem. Se esta entrada estiver ocupada, será atualizada com o novo MAC, é o chamado Learning. Se a posição já estiver ocupada por um MAC diferente (hash collision), o novo MAC origem será gravado na tabela CAM. A tabela CAM reduz as Hash Collisions e melhora a performance. Os índices inseridos na tabela possuem um tempo de envelhecimento, processo conhecido como Address Aging. Este processo é utilizado para manter a consistência do conteúdo da tabela em uma topologia com rede dinâmica. Uma entrada na tabela será inválida enquanto o tempo de envelhecimento não acabar. O tempo de envelhecimento (em inglês, aging time) é entre 200 e 300 segundos. 50 É possível fixar um índice na tabela, assim não ocorre o aging time. Desta forma mantém um MAC Address associado a uma porta do switch. Para tanto, basta modificar um registrador interno de 16 bits do RTL8305SC chamado Indirect Data 0 (PHY 4, REG17) Verifique a Figura 25. Figura 25. Indirect Access Data Fonte: Adaptado de REALTEK (2005). Segue a descrição dos bit: • Bit[15:7]: reservado. • Bit[6]: se for zero indica que a entrada na tabela será aprendida dinamicamente, envelhecerá, será atualizada e apagada. Se for um, significa que a entrada é estática, ou seja, será entrada via registrador. • Bit[5:4]: contador de dois bits para envelhecimento interno. Pode assumir os valores: 10, 11, 01 ou 00 (todos em binário). • Bit[3:0]: são quatro bits para especificar a porta de origem do MAC Address aprendido. 3.3.2.3 Auto Negociação No modo UTP, através do mecanismo de auto-negociação, definido na especificação IEEE 802.3u, o switch obtêm o estado da velocidade, duplex e controle de fluxo para cada porta. Durante a auto-negociação, cada porta envia a informação a outra porta conectada (estado de link operattion) avisando que possui essa capacidade e 51 também recebe da outra porta informações contendo as configurações dela. Por padrão, o RTL8305SC envia todas as capacidades (100FULL, 100HALF, 10FULL, 10HALF) juntamente com o controle de fluxo (habilitado ou desabilitado). No modo Half Duplex o método de acesso CSMA/CD é o meio pelo qual duas ou mais estações compartilham o mesmo meio de transmissão. Para transmitir, uma estação espera por um período de silêncio no meio físico (a outra estação não está transmitindo) e então envia uma mensagem na forma de bits serial. Se a mensagem colide com a da outra estação, então cada estação transmite outra vez, por um período pré-definido, para garantir a propagação da colisão em todo o sistema. A estação permanece em silêncio por um período de tempo aleatório (backoff) antes de tentar transmitir novamente (REALTEK, 2002). 3.3.2.4 Controle de Fluxo Para o protocolo 802.3x (Ethernet com: Full Duplex Flow Control) com autonegociação (pinos GxANeg/GyANeg/P4ANeg com nível lógico um), a função PAUSE (registrador 4.10) ou controle de fluxo full duplex é habilitado pelos pinos GxEnFC/GyEnFC/P4EnFC no respectivo grupo ou por registradores internos via SMI após o RESET (REALTEK, 2002). Para UTP com autonegociação, o controle de fluxo IEE 802.3x é autonegociável entre o dispositivo remoto e o switch. Se o resultado da auto-negociação está habilitado (registrador 4.10 habilitado e registrador 5.10 habilitado), a função de controle de fluxo 802.3x full duplex é habilitada. Caso contrário o 802.3x é desabilitado. Na negociação forçada (Force Mode) em Full Duplex Flow Control, ou seja, autonegociação desabilitada (Gxaneg/GyANeg/P4ANeg com nível lógico zero) e 100BaseFX, o controle de fluxo forçado pode ser selecionado habilitando os pinos GxEnFC/GyEnFC/P4EnFC, no respectivo grupo ou no registrador 5.10 (via SMI). Por exemplo: Porta quatro será forçada em 100FULL UTP com controle de fluxo Full duplex, sendo que P4Mode[1:0]=10, P4Aneg=0, 52 P4Spd100=0, P4Full=1, P4EnFC=1, SetGroup=1, GxMode=0, GxFull=1, GXEnFC=1. Quando estiver no modo Half Duplex e o pino EnDefer estiver habilitado (BackPressure habilitado), o switch enviará um preâmbulo para outra estação. Caso o pino esteja desabilitado, o RTL forçará uma colisão com outra estação enquanto o buffer estiver cheio. Se o pino 48pass1 estiver desabilitado, sempre haverá colisão JAM (colisão contínua). Se o pino 48pass1 estiver habilitado, o switch tentará repassar o pacote após 48 colisões. No modo NWay com autonegociação, os pinos GxEnFC/GyEnFC/P4EnFC são efetivos somente em modo Full Duplex. Entretanto, para UTP em modo Half Duplex (half duplex back pressure flow control) é controlado pelo pino ENBKPRS. Para UTP sem autonegociação, ou no modo 100Base-FX, o modo de operação pode ser forçado para half duplex. O Half Duplex Back Pressure flow control pode ser forçado habilitando os pinos GxEnFC/GyEnFC/P4EnFC (REALTEK, 2002). 3.3.3 Modem HPN CG3010 O chip CG3011 é um modem digital para o padrão de comunicação de dados banda larga chamado ITU G.9954, também conhecido como HomePNA 3.0. Necessita de um conversor Analógico digital de 10 Bits e alta freqüência chamado AD9865 (Analog devices ou CG3012), que funciona como um modem analógico, conseguindo assim alcançar taxas de até 128Mbps (4Mbs à 128Mbps). Apesar da alta taxa alcançada, este pode limitar-se à 32Mbps, conforme a especificação HomePNA 2.0, pois existe a compatibilidade com o protocolo anterior. O uso dos microchips CG3011 e CG3012 formam o modem HPN CG3010. Neste modem encontra-se implementado a pilha do protocolo já mencionado, e é com o processador de pacotes interno que possibilita uma solução completa para QoS (Quality of Service - Qualidade de Serviço). É possível implementar em seu firmware uma série de controles aplicando simples máscaras aos pacotes. Isto o torna muito atraente para solucionar redes do tipo triple-play, garantindo banda para cada tipo de 53 serviço (COPPERSTREAM, 2008). O chipset atua nos meios coaxial e phoneline, conforme a especificação HomePNA 3.0, e sua freqüência de operação permite operar simultaneamente com o serviços telefônico, canais de TV e protocolos: ISDN, ADSL, V92, POTS, ADSl G.Lite e G.DMT. Note na Figura 26 o conflito de freqüência entre VDSL, HPNA 2.0 e HPNA 3.0. Figura 26. Freqüência de operação do HomePNA 3.0 em relação a outras tecnologias Fonte: ITU-T (2004). Este chipset pode-se aplicar em conversores Ethernet/HomePNA, USB/HomePNA, PCI NIC, Gateway residencial, Set-top-Box, Adaptadores VoHPNA POTS, entre outras soluções (COPPERSTREAM, 2008). Por padrão, necessita de uma memória Flash ou EEPROM externa para armazenar o firmware. É possível atualizar o firmware via interface de rede, gravando o novo firmware na memória Flash. Há a possibilidade de parte do firmware ser carregado para a memória interna (RAM) após o power up (inicialização). Assim é possível descarregar o restante do firmware remotamente na RAM, através de uma CPU via interface de rede. 54 Assim, elimina-se a necessidade de uma memória FLASH ou EEPROM externa. É na RAM onde também fica o buffer de transmissão de pacotes, que pode ser expandido através de uma memória externa (SRAM), aumentando a performance do dispositivo (COPPERSTREAM, 2008). O CG3010 possui um DSP interno que utiliza técnicas de modulação QAM (Quadrature Amplitude Modulation) e FDQAM (Frequency Diverse Quadrature amplitude Modulation) para alcançar taxas adaptativas de 128Mbps (ver figura 27). Estas taxas são negociadas entre transmissor e receptor (fluxo ponto a ponto), cada um transmitindo varias taxas enquanto comunicam-se com diferentes nós da rede. Esta taxa entre dois nós é determinada por cálculos constantes a fim de definir a melhor taxa para cada fluxo. Figura 27. Espectro de modulação FDQAM Fonte: ITU (2004). A freqüência de operação do CG3010 vai de 4MHz à 21MHz, com isto podemos associar três mascaras espectrais: Mask_1, Mask_2, Mask_3. A primeira corresponde à faixa de 4 – 10MHz e conta com 2 ou 4 MBaud. A segunda corresponde à faixa de 4 21MHz e conta com 2, 4, 8 ou 16 MBaud. Já a última máscara fica com a faixa de 4 – 55 28MHz e 2, 6, 12 e 24 MBaud, atingindo taxas de 240Mbps previstas pela ITU G.9954, mas não implementado no CG3010. Na Figura 28 pode-se verificar a representação gráfica das três mascaras (COPPERSTREAM, 2008). Figura 28. Faixa de freqüência das três mascaras Fonte: ITU (2004). O chipset conta ainda com seis pinos de propósito geral que podem ser configurados via firmware, aumentando a gama de interfaces disponíveis. A interface mais importante é chamada de Host Interface, que neste trabalho será a interface MII. Além destas, o chip conta com outras interfaces: • Interface serial para EEPROM • Interface paralela para memória Flash paralela • Interface para memória SRAM externa • Interface serial (UART) para depuração • Interface de teste JTAG IEEE 1149.1 • Suporte a VoHPNA, com interface CODEC/SLIC A Figura 29 apresenta as características elétricas do modem CG3010. 56 Figura 29. características elétricas do chipset CG3010. Fonte: Adaptado de COPPERSTREAM (2008). O tamanho da memória deve ter no mínimo 128KB, a fim de acomodar o firmware completo. A copper-gate recomenda as seguintes memórias Flash: AMIC A29010, AMD AM29LV001B, AMD AM29LV010B, Atmel AT49BV001A, Atmel AT49LV001A, ST M29W010B, PMC Pm39LV010. A Figura 30 mostra a disposição das memórias externas. Figura 30. Expansão de memória no CG3010 Fonte: Adaptado de COPPERSTREAM (2008). 57 3.3.3.1 Arquitetura Geral do Modem HPN O diagrama de blocos da arquitetura geral do modem HPN CG3010 é ilustrado pela Figura 31. Figura 31: Diagrama de blocos do modem CG3011. Fonte: COPPERSTREAM (2008). A configuração da interface de comunicação externa (chip Ethernet, por exemplo), se dá via quatro pinos de configuração, chamado MODE[4:0]. Por padrão o chip vem definido como USB, pois os pinos MODE[4] e MODE[3] são pull-down interno, enquanto que os demais são pull-up interno. Apenas a configuração MII é relevante para este trabalho e, portanto será detalhada a seguir. A figura 32 lista os modos configuráveis. 58 Figura 32. Configurações da interface via pinos MODE[4:0]. Fonte; Adaptado de COPPERSTREAM (2008). 3.3.3.2 Interface MII Esta configuração requer um cristal de 25MHz conectado aos pinos OSCI e OSCO do CG3010. A interface MII comunica-se em modo Half Duplex, utiliza pino de CRS ou COL para controle de fluxo e possui tolerância de cinco Volts. A figura 33 mostra a descrição dos pinos da interface MII. As figuras 34 e 35 se referem a temporização e forma de onda dos sinais. 59 Figura 33. Descrição dos pinos da interface MII Fonte: Adaptado de COPPERSTREAM (2008). Figura 34. Tabela de temporizarão da interface MII Fonte: Adaptado de COPPERSTREAM (2008). 60 Figura 35. Forma de onda da interface MII. Fonte: Adptado de COPPERSTREAM (2008). No modo MII SnP (MII Solder and Play) não é necessário um driver, como no modo USB. O carregamento do firmware é feito a partir da memória local (Flash ou EEPROM). O tamanho do firmware é de aproximadamente 100KByte. A copper-gate recomenda alguns switches Ethernet, são eles: • Marvel 88E6021 • Marvel 88E6063 • Admtek 6996F • Micrel-Kendin KS8993 • Micrel-Kendin KS8995M • Boadcom BCM5325E Apesar disto, foi escolhido o switch Realtek RTL8305SC, não homologado pelo 61 fabricante do CG3010. Mas devido ao conhecimento adquirido com este switch em outros projetos, o custo, a disponibilidade comercial, além de ser compatível pino-a-pino com o Realtek RTL8306, foram determinantes para a escolha. Este ultimo possui mais funções de gerenciamento e, portanto possui o custo mais elevado que o RTL8305SC, porém se utilizar o RTL8306 é possível implementar mais funções de gerencia no firmware do microcontrolador, e pode ser considerado para uma futura versão do conversor proposto neste trabalho. 3.3.3.3 Modo Seguro Este tópico descreve a segurança baseada no modem CG3010 com meio compartilhado (fiação coaxial ou telefônica). No início deste capítulo, na figura 17 (apartamentos) foi apresentado um sistema coaxial típico. Tinha o meio compartilhado, com um Master conectado a diversos apartamentos diferentes, cada um com seu Endpoint. Geralmente há quatro modalidades de segurança: não seguro, seguro, privado, seguro e privado. • Modo não seguro: nenhuma limitação na comunicação, todos os nós podem comunicar-se entre si. • Modo seguro: podem comunicar-se com o mestre, mas não há comunicação entre os end-points. • Modo privado: necessitam de uma chave de segurança para se comunicarem. Somente aqueles que possuem a chave apropriada têm acesso à rede. • Modo seguro e privado: os end-points não se comunicam entre si e necessitam da chave para obter acesso à rede. 62 3.4 SOFTWARE Devido à flexibilidade de atualização do firmware HPN via interface de rede, foi desenvolvido um software de interação entre o modem HPN e o microcontrolador. Este foi chamado de PEdit.exe, pois a idéia inicial era controlar a banda física da interface HomePNA. Isto porque o software pode editar o PE (Payload Encoder), necessitando de uma atualização no firmware toda vez que for modificado este valor. O PE serve para determinar a taxa que a interface HPN irá trabalhar. Na Figura 36 pode-se verificar a tela do software, que oferece uma interface simples de uso. Figura 36. Tela do software PEdit.exe Além do PE, localizado no campo “Taxa de Transferência”, o software pode modificar a função do equipamento, se irá operar no modo Master ou no modo End63 point. Também pode modificar o modo de operação (seguro ou não). Resumindo, a principal função do PEdit.exe é gravar o firmware nos conversores conforme a aplicação de cada um. Então, nele é possível escolher a versão de firmware HomePNA que o equipamento irá operar. Lembrando que a versão do firmware deve ser compatível entre os equipamentos que se encontram na sua rede HPN. O software funciona da seguinte maneira: • Digita-se o MAC Address do equipamento no campo “MAC do dispositivo” (equipamento a ser gravado); • Clica-se no botão conectar; • Caso o equipamento seja encontrado, então é liberado o botão de gravação e as caixas de edição de firmware. • Senão o software retorna uma mensagem avisando que o equipamento não está na rede ou o MAC Address foi digitado incorretamente. O PEdit.exe utiliza um firmware padrão pré-configurado para cada versão que disponibiliza. Atualmente as versões disponíveis são a 1.7.2, 1.7.5, 2.7.5 e 2.7.6. Já as gravações via interface de rede se dão através de uma API chamada CDLIB disponibilizada pelo fabricante do chip sob termos de contrato confidencial entre as partes (desenvolvedor e fornecedor). Portanto, o detalhamento deste foge ao escopo do trabalho. 3.5 TESTES Este capítulo aborda os testes realizados no conversor a fim de verificar e comprovar o seu desempenho. São testes de tráfego de dados e vídeo, utilizando ferramentas que serão discutidas nos tópicos seguintes. A Figura 37 mostra o protótipo em sua versão final, pronto para os testes. Como o projeto foi desenvolvido junto a uma empresa de comunicação de dados digitais, então foram produzidos alguns protótipos. Permitindo assim a realização dos testes, pois é necessário um conversor para cada computador a ser interconectado na rede. Os testes realizados neste capítulo utilizaram 64 dois conversores para conexão ponto-a-ponto e também quatro conversores e quatro computadores simulando uma rede domiciliar. Figura 37. Protótipo do conversor HomePNA/Ethernet. 3.5.1 Ferramentas Copper-gate O fabricante disponibiliza algumas ferramentas de diagnóstico. São executáveis por linha de comando sob o Prompt de comando do MS-DOS. Para os testes realizados é relevante citar dois destes programas: o DEVINF.EXE e o NETINF.EXE. O comando DEVINF.EXE permite que sejam verificados: • Os endereços MAC dos equipamentos na rede HPN v3; • Se todos os conversores possuem a mesma versão de firmware (campo “ver”); 65 • Se existe mais de um conversor configurado como Master na rede (campo “mas” - deve-se ter apenas 1 Master na rede); • Qual a velocidade configurada no conversor (através do campo “pin”); • Quantos conversores estão operando na rede (campo “total number of devices”); Ao ser executado exibe informações sobre os dispositivos HomePNA 3.0 na rede da seguinte forma: • Endereço MAC; • ver - versão de firmware; • hw - versão do chip; • pin - versão de firmware e velocidade configurada, onde: 1.0.0 - modo seguro desabilitado e 1.0.1 modo seguro habilitado; • mas - 1 = master / 0 = end-point; • lnk - estado do link, 1 significa link ativo / 0 significa link inativo; • syn - sincronismo entre os equipamentos HomePNA 3.0, onde: 1 significa sincronismo ativo / 0 significa sincronismo inativo; • Total number of devices - Número de dispositivos HomePNA 3.0 conectados à rede. Exemplo: C:\HPNv3>devinf 0) 00:19:46:00:00:f1: ver=1.7.2 hw=coax 12-28 #1.0 pin=1.0.0 mas=1 lnk=1 syn=1 1) 00:19:46:00:00:f2: ver=1.7.2 hw=coax 12-28 #1.0 pin=1.0.0 mas=0 lnk=1 syn=1 Total number of devices: 2 O comando NETINF.EXE permite verificar: • Se há perda de pacotes - campo ‘pkts’; • A velocidade em que os equipamentos estão operando - campo ‘rate’ (todos os end-points devem possuir a mesma velocidade configurada); • Qual a atenuação do sinal HomePNA - campo ‘Rx power’ (este valor serve de referência para estabelecer a velocidade dos end-points); 66 A Figura 38 permite orientar qual velocidade terá melhor desempenho baseandose no resultado do Netinf.exe (ver exemplo, campo Rx power). A partir deste resultado deve ser gravado o firmware de cada conversor da rede HPN v3. Figura 38. Rx Power x Taxa de Velocidade Fonte: Adaptado de COPPERSTREAM (2008). O resultado é exibido na tela na seguinte ordem: • Endereço MAC de origem e destino; • Pkts - número de pacotes enviados; • PER - Taxa de erro de pacotes (Packet error rate); • SNR - Taxa de sinal x ruído (Signal-noise-rate, em dB); • Rate - Taxa de transmissão (em Mbps); • RX power - Potência do sinal (em dBm). Exemplo: C:\HPNv3>netinf enabling CERT on devices.. please wait.... 00:c5:d9:00:00:bb-->00:c5:d9:00:00:aa: pkts: 1000/1000 per: 0.00e+000 snr 45.37db, rate: 128Mbps 16/8 Rx power: -10 dBm. 00:c5:d9:00:00:99-->00:c5:d9:00:00:bb: pkts: 1000/1000 per: 0.00e+000 snr 45.37db, rate: 128Mbps 16/8 Rx power: -39 dBm**. 00:c5:d9:00:00:88-->00:c5:d9:00:00:bb: pkts: 1000/1000 per: 0.00e+000 snr 45.11db, 67 rate: 128Mbps 16/8 Rx power: -15 dBm. Deve-se verificar qual conversor possui maior atenuação (Rx power). Caso seja maior que 30 dBm será necessário configurar todos os conversores à taxa correspondente utilizando o software Pedit.exe. No exemplo apresentado acima, o conversor com MAC Address 00:c5:d9:00:00:99 possui a maior taxa de atenuação (-39 dBm), portanto, deve-se configurar todos os demais conversores à taxa igual ou inferior a 64 Mbps. Antes de fixar a taxa dos conversores é possível executar o Netinf.exe simulando a velocidade desejada. Exemplo: netinf -p 58 "-p" -> teste com PE fixo. A Figura 39 mostra os PE´s com a taxa correspondente: Figura 39. Tabela de Velocidade Fonte: Adaptado de COPPERSTREAM (2008). Os End-points devem possuir a mesma velocidade daquele que apresentar maior 68 atenuação, porém o conversor Master não necessita possuir a mesma velocidade dos Endpoints, ou seja, pode-se definir taxas de upstream e downstream diferentes para o cliente. 3.5.2 Ferramenta de Geração de Tráfego de Dados Além destas duas ferramentas já apresentadas existe outra que simula tráfego de dados entre dois pontos (PC’S). É uma ferramenta gratuita chamada IPERF.EXE. Este software permite testar a largura de banda efetiva de uma conexão ponto-aponto qualquer. Para isto é necessário configurar corretamente os equipamentos na rede e possuir um computador em cada extremidade a ser testada. Exemplo: Em uma máquina conectada a outra através de um conversor configurado como Master é executado o comando: C: \HPNv3>iperf -s -f m -l 256k Esta máquina está configurada como servidor e simulará a transferência de pacotes com buffer de 256k e apresentará o resultado do teste em Mbps. Enquanto isto, em uma outra máquina conectada através de um conversor configurado como End-point é executado o comando: C:\HPNv3>iperf -c 192.168.0.65 -f m -l 256k -P 10 -w 64k -t 60 Esta máquina executará o teste simulando um servidor conectado ao conversor Master (no caso 192.168.0.65) e também apresentará o resultado em Mbps e fará a transferência de pacotes utilizando um buffer de 256k. Além disto o comando simulará 10 clientes operando simultaneamente (parâmetro -P 10), com janelamento de 64k durante 60 segundos. O computador configurado como servidor retornará a seguinte resposta: 69 Server listening on TCP port 5001 TCP window size: 0.01 MByte (default) [1632] local 192.168.0.65 port 5001 connected with 192.168.0.56 port 3755 [1836] local 192.168.0.65 port 5001 connected with 192.168.0.56 port 3756 [1748] local 192.168.0.65 port 5001 connected with 192.168.0.56 port 3757 [1736] local 192.168.0.65 port 5001 connected with 192.168.0.56 port 3758 [1760] local 192.168.0.65 port 5001 connected with 192.168.0.56 port 3759 [1720] local 192.168.0.65 port 5001 connected with 192.168.0.56 port 3760 [1644] local 192.168.0.65 port 5001 connected with 192.168.0.56 port 3761 [1788] local 192.168.0.65 port 5001 connected with 192.168.0.56 port 3762 [1688] local 192.168.0.65 port 5001 connected with 192.168.0.56 port 3763 [1680] local 192.168.0.65 port 5001 connected with 192.168.0.56 port 3764 [ ID] Interval Transfer Bandwidth [1644] 0.0-60.3 sec 46.3 MBytes 6.43 Mbits/sec [1632] 0.0-60.5 sec 52.0 MBytes 7.21 Mbits/sec [1788] 0.0-60.5 sec 53.8 MBytes 7.46 Mbits/sec [1748] 0.0-60.5 sec 55.8 MBytes 7.73 Mbits/sec [1680] 0.0-60.5 sec 57.8 MBytes 8.01 Mbits/sec [1760] 0.0-60.5 sec 56.5 MBytes 7.83 Mbits/sec [1720] 0.0-60.6 sec 65.5 MBytes 9.07 Mbits/sec [1688] 0.0-60.6 sec 58.5 MBytes 8.10 Mbits/sec [1736] 0.0-60.8 sec 56.5 MBytes 7.80 Mbits/sec [1836] 0.0-61.5 sec 54.5 MBytes 7.43 Mbits/sec [SUM] 0.0-61.5 sec 557 MBytes 76.0 Mbits/sec Enquanto no segundo computador retornará a seguinte resposta: Client connecting to 192.168.0.65, TCP port 5001 TCP window size: 0.06 MByte [1916] local 192.168.0.56 port 3755 connected with 192.168.0.65 port 5001 70 [1900] local 192.168.0.56 port 3756 connected with 192.168.0.65 port 5001 [1884] local 192.168.0.56 port 3757 connected with 192.168.0.65 port 5001 [1868] local 192.168.0.56 port 3758 connected with 192.168.0.65 port 5001 [1852] local 192.168.0.56 port 3759 connected with 192.168.0.65 port 5001 [1836] local 192.168.0.56 port 3760 connected with 192.168.0.65 port 5001 [1820] local 192.168.0.56 port 3761 connected with 192.168.0.65 port 5001 [1804] local 192.168.0.56 port 3762 connected with 192.168.0.65 port 5001 [1788] local 192.168.0.56 port 3763 connected with 192.168.0.65 port 5001 [1772] local 192.168.0.56 port 3764 connected with 192.168.0.65 port 5001 [ ID] Interval Transfer Bandwidth [1820] 0.0-60.3 sec 46.3 MBytes 6.43 Mbits/sec [1916] 0.0-60.4 sec 52.0 MBytes 7.22 Mbits/sec [1804] 0.0-60.4 sec 53.8 MBytes 7.46 Mbits/sec [1884] 0.0-60.5 sec 55.8 MBytes 7.73 Mbits/sec [1772] 0.0-60.5 sec 57.8 MBytes 8.01 Mbits/sec [1852] 0.0-60.5 sec 56.5 MBytes 7.83 Mbits/sec [1836] 0.0-60.6 sec 65.5 MBytes 9.07 Mbits/sec [1788] 0.0-60.5 sec 58.5 MBytes 8.11 Mbits/sec [1868] 0.0-60.8 sec 56.5 MBytes 7.80 Mbits/sec [1900] 0.0-61.5 sec 54.5 MBytes 7.44 Mbits/sec [SUM] 0.0-61.5 sec 557 MBytes 76.0 Mbits/sec Nos dois computadores pode-se observar que a velocidade de transmissão chegou a 76Mbps, apresentado na última linha - campo SUM, soma das velocidades de todas as 10 transmissões simultâneas. Durante a transmissão dos dados pode-se acompanhar a utilização da rede chegando a 84% , considerando aproximadamente 10Mbps de overhead em rede Ethernet 10/100Base TX como apresentado na Figura 40: 71 Figura 40. Gerenciador de arquivos do Windows XP mostrando a taxa de utilização da rede em 84Mbps Deve-se considerar também a limitação das interfaces Ethernet das duas máquinas, que operam a uma velocidade máxima de 100Mbps. Outro teste realizado foi especificando o tipo de tráfego. Para tráfego de dados TCP, com o tamanho padrão da janela o resultado ficou em 40Mbps. Para uma janela de tamanho 48, o resultado ficou em 75Mbps. Para tráfego UDP com tamanho da janela padrão, a taxa alcançada foi de 92Mbps. 72 3.5.3 Aplicações de Vídeo Os testes de vídeo serão descritos nos tópicos seguintes. Foram adotadas duas configurações diferentes em relação ao número de equipamentos. O software utilizado para prover o serviço de vídeo foi o VLC Vídeo Server, conforme Figuras 41 e 42. Figura 41. Tela de configuração do VLC Vídeo Server. As configurações estão descritas em dois tópicos e por ultimo, o detalhamento dos testes com os respectivos resultados. 73 Figura 42. Tela de configuração do VLC Vídeo Server. 3.5.3.1 Configuração 1 Esta configuração possui os seguintes equipamentos: • um PC rodando o VLC Video Server; • um conversor configurado como Master; • um conversor configurado como End-point; • um PC rodando o VLC Video Client; 74 Os equipamentos estão interligados da maneira como mostra a Figura 43. Figura 43. Disposição dos equipamentos para a configuração 1 3.5.3.2 Configuração 2 Esta configuração possui os seguintes equipamentos: • um PC rodando o VLC Video server; • um conversor configurado como Master; • um conversor configurado como End-point; • três PC´s rodando o VLC Vídeo Client; • um divisor coaxial 1x5 (-12dB); Os equipamentos estão interligados conforme a Figura 44. 75 Figura 44. Disposição dos equipamentos para a configuração 2 3.5.3.3 Testes Realizados No primeiro teste foi utilizada a versão de firmware 1.7.5. Aqui os conversores estavam configurados conforme a CONFIGURAÇÃO 1. O vídeo enviado pelo servidor estava em formato MPEG2 e o consumo de banda ficou em torno de 5 Mbps. Neste caso houve perda de pacotes (imagem pixelada) e a qualidade do vídeo ruim. Sendo que o mesmo ocorreu na CONFIGURAÇÃO 2 (firmware 1.7.5). No segundo teste foi utilizado a versão de firmware 1.7.2. Tanto na CONFIGURAÇÃO 1 quanto na CONFIGURAÇÃO 2, a taxa ficou em torno de 5Mbps por conexão (PC´s) para transmissão do tipo HTTP e 10Mbps por conexão para transmissão do tipo MULTICAST. Não houve perda de pacotes e a qualidade do vídeo ficou normal (sem pixelado). Lembrando que o teste foi realizado com atenuação de 12dB, conforme se pode comprovar pelos dados fornecidos pelo Netinf.exe. Para um Máster e dois End-points: 76 1) 00:19:46:02:00:7f-->00:19:46:02:04:6c: pkts: 1000/1000 per: 0.00e+000 snr 42.58db, rate: 128Mbps 16/8 Rx power: -12.52 dBm 2) 00:19:46:02:00:7f-->00:19:46:02:04:6d: pkts: 1000/1000 per: 0.00e+000 snr 42.61db, rate: 128Mbps 16/8 Rx power: -13.00 dBm 3) 00:19:46:02:04:6c-->00:19:46:02:00:7f: pkts: 1000/1000 per: 0.00e+000 snr 42.62db, rate: 128Mbps 16/8 Rx power: -11.35 dBm 4) 00:19:46:02:04:6d-->00:19:46:02:00:7f: pkts: 1000/1000 per: 0.00e+000 snr 42.94db, rate: 128Mbps 16/8 Rx power: -11.18 dBm Nos testes percebeu-se que a versão de firmware 1.7.5 não obteve um comportamento adequado para aplicações de vídeo. Já a versão 1.7.2 comportou-se de maneira correta, demonstrando sua eficiência para aplicações de vídeo. 77 4 CONCLUSÃO Devido a algumas dificuldades encontradas, foram necessários dois protótipos. Sendo que o último atingiu todos quesitos estabelecidos. Em ambos, na fase de depuração do hardware, após a montagem das placas, foi necessário o auxilio de ferramentas específicas, como o Analisador Lógico e Osciloscópio. No primeiro protótipo foi observado o super aquecimento do regulador de tensão TPS767D3 (circuito integrado da Texas Instruments). Ao efetuar o teste de performance com altas taxas de utilização de banda (em torno de 90% à 100%) agravava ainda mais o problema de aquecimento, chegando ao ponto de ocorrer o reset automático do chip e, consequentemente do equipamento. Então percebeu-se que o problema era proveniente da dissipação da potência acumulada no regulador de tensão, que era convertido em energia térmica. Isto porque a fonte externa era de 5 Volt à 1 Ampére, enquanto que as saídas no regulador eram de 3,3 Volts e 1.8 Volt, respectivamente. Essa diferença entre a entrada e a saída era de 1,7 Volt e 3,2 Volt que eram transformados em calor. Para resolver este problema foi adotado uma nova especificação de fonte externa, passando para 3,8 Volt à 1 Ampére. Desta forma houve uma drástica queda na temperatura deste componente, mantendo-se estável nos testes de stress. Ainda nesta versão de protótipo, os níveis de ruído Rx Power e SNR ficaram fora da faixa esperada, comprometendo o bom funcionamento do equipamento para grandes atenuações. Já na última versão, contava com desempenho na faixa recomendada pela Copper-gate Communications, ficando então abaixo de -1,5 dBm e acima de 43 dB (Rx Power e SNR respectivamente). No capítulo anterior foram relatados os testes realizados com as ferramentas de diagnóstico e desempenho (Netinf.exe e Iperf.exe). Foi comprovada o funcionamento do conversor, atingindo marcas de desempenho anunciadas pelo fabricante do chipset CG3010. Além disto foi efetuado testes de vídeo multicast e transmissão http com o VLC Vídeo Server e Client. Neste teste houve problemas com a versão de firmware 1.7.5, pois no vídeo assistido no cliente ocorria o chamado pixelado na tela, que nada mais é que perdas de pacotes de vídeo, faltando assim, partes da imagem a ser exibida. Então o player de vídeo do cliente não conseguia mostrar a imagem corretamente ocorrendo falhas no vídeo. Estas falhas não ocorreram na versão de firmware 1.7.2, comprovando a eficiência do chipset para as aplicações de vídeo. Considerando os resultados obtidos com o protótipo desenvolvido, há a possibilidade de futuros trabalhos relacionados a este. Pode-se fazer analises mais complexas em relação à performance deste conversor e da tecnologia HomePNA 3.0. Por exemplo, analisar a performance numa rede com 40 conversores no modo end-point ligados a um master. Descobrir as limitações desta pode ser um trabalho interessante, até porque esta tecnologia cresce a cada dia e em breve fará parte do cotidiano de muitas residências. Vale lembrar que já existe uma versão superior ao HomePNA 3.0, utilizado neste trabalho. O HomePNA 3.1 está implementado na terceira versão comercial do chipset Coppergate chamado CG3210 que oferece 320Mbps. O desenvolvimento de um conversor com este chipset, pode ser considerado um trabalho futuro. 79 REFERÊNCIAS BIBLIOGRÁFICAS ALMODEI, AURELIO. Um Novo Mecanismo de Acesso ao Meio para Redes Domiciliares através da Fiação Existente. Universidade Federal do Rio de Janeiro. Rio de Janeiro, 2005 ALMODEI, AURELIO; COSTA, LUÍS HENRIQUE; DUARTE, OTTO. Um Novo Mecanismo de Acesso ao Meio para o Padrão HomePNA. Universidade Federal do Rio de Janeiro, Grupo de Teleinformática e automação. Rio de Janeiro, 2005 ANDRADE, FERNANDO SOUZA DE; OLIVEIRA, ANDRÉ SCHNEIDER DE. Sistemas embarcados: Hardware e Firmware na Prática. São Paulo: Érica, 2006. ANALOG DEVICES INC. DataSheet: AD9866 – Broadband Modem Mixed-Signal Fron End. RevA. MA: Analog Devices Inc. Disponível em: <http://www.analog.com> , 2004. BARR, MICHAEL. Programming embedded systems in C and C++. New Yotk: O´Reilly Media, 1999. CIANET NETWORKING, Manual de Instalação e Operação – CTS3500. CIANET Networking. Disponível em: http://www.cianet.ind.br. Santa Catarina, 2007. COPPERSTREAM. CopperStream CDK MxU User Guide. Rev. 2.31. Tel Aviv: CopperGate Communication. Disponível sob NDA em <http://www.coppergate.com>, jan. 2008. 80 FERREIRA, MARCOS DE ALMEIDA. PLC – Power Line Communication. Universidade Federal Fluminense, Departamento de Telecomunicações. Rio de Janeiro, 2006. FRESSCALE SEMICONDUCTORS INC. MC9RS08QD4: Datasheet. Austin: Freescale. Disponível em: <http://www.freescale.com> . Acesso em: 15 set. 2006. IEEE STD 802.1Q. Local and Metropolitan Area Networks: Virtual bridged Local Area Networks. The Institute of Electrical and Electronics Engineers, Inc, maio 2003. IEEE STD 802.1w. Local and Metropolitan Area Networks: Part 3: Media Access Control (MAC) Bridges Amendment 2: Rapid Reconfiguration. The Institute of Electrical and Electronics Engineers, Inc, julho 2001. IEEE STD 802.1X. Local and Metropolitan Area Networks: Port Based Network Access Control. The Institute of Electrical and Electronics Engineers, Inc, out 2001. IEEE STD 802.3. Local and Metropolitan Area Networks: Part 3: Carrier Sense Multiple Access With Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications. The Institute of Electrical and Electronics Engineers, Inc, março 2002. ITU-T. Workshop on Home Network and Home Services. Phoneline and Coax Transport Technology for Multimedia Distribuition. International Telecommunication Union. Japão, jun. 2004. 81 ITU-T G.704. Recommendation G.704: Synchronous Frame Structures used at 1544, 6312, 2048,8448 and 44 736 kbit/s Hierarchical levels. International Telecommunication Union, out. 1998. ITU-T G.705. Recommendation G.705: Characteristics of Plesiochronous Digital Hierarchy (PDH) Equipament Functional Blocks. International Telecommunication Union, out. 2000. ITU-T G.706. Recommendation G.706: Frame Alignment and Cyclic Redundancy Check (CRC) Procedures Relating to Basic Frame Structures Defined in Recommendation G.704. International Telecommunication Union, out. 2000. ITU-T G.989.1. Recommedation G.989.1: Phoneline Network Transceivers Foundation. Telecommunication Standardization Sector of ITU. International Telecommunication Union, fev. 2001. ITU-T G.9954. Recommendation G.9954: Phoneline Network Transceivers – Enhanced Physical, Media Access, and Link Layer Specifications. International Telecommunication Union, fev. 2005. KENDO, PATRÍCIA. GONÇALVEZ, PAULO. Tecnologias de Comunicação para Redes Domiciliares. Universidade Federal de Pernambuco. Pernambuco, 2005. MICROCHIP INC.. dsPIC30F3014 Data Sheet. Microchip Technology Inc. Estados Unidos, 2004. 82 PEREIRA, FELIPE MASSIA. Protocolo TCP/IP para Sistemas Embarcados. Universidade Estadual de Campinas, Instituto de Computação. São Paulo, 2003. PMC FLASH INC. DataSheet: Pm39LV010 – 1 Mbit 3.0 Volt-Only CMOS Flash Memory. Rev1.5. Programable Microeletronics Co. Disponível em: <http://www.pmcflash.com> , mar. 2006. READLINKS INC. Brochure: Multimedia In-Home Networking Solution. MN: ReadyLinks Inc. Disponível em: <http://ready-links.com>, 2005. REALTEK CORP. DataSheet: RTL8305SC – Single Chip 5 Port 10/100Mbps Switch Controller With Dual MII Interfaces. Rev. 1.2. Taiwan: Realtek Semiconductor Corp. Disponível em: <http://www.realtek.com.tw> . mar. 2005. TANNEMBAUM, Andrew S. Redes de Computadores 4. ed. Rio de Janeiro: Campus, 2003. TEXAS INSTRUMENTS. DataSheet: TPS767D3 – Dual Output Low Dropout Voltage Regulators. Texas: Texas Instruments Inc. Disponível em: <http://www.ti.com> , jan. 2006. TEZA, Vanderlei Rabelo. Alguns Aspectos Sobre a Automação Residencial – Domótica. Universidade Federal de Santa Catarina, Programa de Pós-Graduação em Ciência da Computação. Santa Catarina, 2002. 83 VEGINI, Leonardo Martins. Sistema Embarcado para Monitoramento de Link WIRELESS. Universidade do vale do Itajaí. Santa Catarina, 2006. 84