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
Download

universidade do vale do itajaí centro de ciências