Upload
tikarko-nakama
View
43
Download
3
Embed Size (px)
Citation preview
PONTIFCIA UNIVERSIDADE CATLICA DO RIO GRANDE DO SULFACULDADE DE INFORMTICA
CURSO BACHARELADO EM INFORMTICA
SISTEMA INTEGRADO E MULTIPLATAFORMA PARACONTROLE REMOTO DE RESIDNCIAS
Prof. Fernando Gehm MoraesOrientador
Alexandre AmoryJuracy Petrini Jnior
Trabalho final da disciplina deTrabalho de Concluso II
Porto Alegre, 4 de setembro de 2001
SISTEMA INTEGRADO E MULTIPLATAFORMA PARACONTROLE REMOTO DE RESIDNCIAS
Alexandre AmoryJuracy Petrini Jnior
iii
Sumrio1.1 CONCEITOS BSICOS ......................................................................................................................... 11.2 REQUISITOS DE UM SISTEMA DE AUTOMAO DOMSTICA .......................................................... 31.3 BENEFCIOS DA DOMTICA............................................................................................................... 51.3.1 SEGURANA ................................................................................................................................. 51.3.2 CONFORTO.................................................................................................................................... 61.3.3 ENERGIA....................................................................................................................................... 61.3.4 COMUNICAO............................................................................................................................. 71.4 MOTIVAO ....................................................................................................................................... 73.1 FPGA................................................................................................................................................ 133.1.1 EVOLUO DOS DISPOSITIVOS PROGRAMVEIS........................................................................ 133.1.2 FPGA ......................................................................................................................................... 143.1.3 BLOCOS LGICOS....................................................................................................................... 143.1.4 ROTEAMENTO............................................................................................................................. 153.1.5 CLULAS DE I/O ......................................................................................................................... 163.1.6 APLICAES DE FPGAS ............................................................................................................. 163.2 VHDL ............................................................................................................................................... 173.2.1 DESCRIO ESTRUTURAL .......................................................................................................... 193.2.2 DESCRIO COMPORTAMENTAL................................................................................................ 193.2.3 EXEMPLO DE DESCRIO VHDL............................................................................................... 203.2.4 ESPECIFICAO DE VHDL......................................................................................................... 213.3 JAVA.................................................................................................................................................. 223.3.1 MQUINA VIRTUAL JAVA .......................................................................................................... 223.3.2 JAVA COMMUNICATIONS API (COMMAPI) ................................................................................ 223.3.3 JAVA SERVER PAGES JSP .......................................................................................................... 223.3.4 COMPILADOR JUST-IN-TIME - JIT ............................................................................................... 224.1 INTRODUO .................................................................................................................................... 234.2 CARACTERSTICAS E REQUISITOS DE PROTOCOLOS..................................................................... 254.3 PROTOCOLOS ANALISADOS............................................................................................................. 274.3.1 EUROPEAN HOME SYSTEMS - EHS............................................................................................... 274.3.2 BYTE DATA LINK CONTROLLER - BDLC ...................................................................................... 314.3.3 LOCAL OPERATING NETWORK - LON .......................................................................................... 364.3.4 EUROPEAN INSTALLATION BUS - EIB........................................................................................... 374.3.5 X-10 ........................................................................................................................................... 384.3.6 CONSUMER ELECTRONICS BUS - CEBUS ..................................................................................... 404.4 COMPARAO ENTRE OS PROTOCOLOS ESTUDADOS .................................................................... 415.1 APLICAES DE CAN ...................................................................................................................... 435.2 CONCEITOS BSICOS ....................................................................................................................... 445.3 ESPECIFICAO CAN...................................................................................................................... 455.3.1 FORMATO DOS PACOTES ............................................................................................................ 465.3.2 TCNICAS DE VERIFICAO E SINALIZAO DE FALHAS.......................................................... 505.3.3 ARBITRAO.............................................................................................................................. 535.3.4 BIT-TIMING ................................................................................................................................ 545.3.5 SINCRONISMO............................................................................................................................. 555.3.6 CAMADA FSICA ......................................................................................................................... 565.4 IMPLEMENTAO............................................................................................................................. 585.4.1 VARIAO QUANTO INTEGRAO ......................................................................................... 585.4.2 VARIAO QUANTO ARMAZENAMENTO DE MENSAGENS...................................................... 605.4.3 VARIAO QUANTO AO FILTRO DE ACEITAO ....................................................................... 615.5 ESTUDO DE ARQUITETURAS PARA PROTOCOLO CAN .................................................................. 626.1 ESCOLHA DO SISTEMA OPERACIONAL ........................................................................................... 676.2 ESCOLHA DA LINGUAGEM DE PROGRAMAO............................................................................. 686.2.1 JAVA........................................................................................................................................... 696.2.2 PERL ........................................................................................................................................... 706.2.3 C................................................................................................................................................. 71
iv
6.2.4 ACTIVE SERVER PAGES - ASP ................................................................................................... 726.2.5 PHP : HYPERTEXT PREPOCESSOR.............................................................................................. 736.2.6 COMPARAO ENTRE LINGUAGENS DE PROGRAMAO........................................................... 736.2.7 CONCLUSO ............................................................................................................................... 746.3 ARQUITETURA SERVIDOR/CAN...................................................................................................... 756.4 TIPO DE CONEXO ENTRE MQUINAS ............................................................................................ 766.5 ARQUITETURA CLIENTE/SERVIDOR ............................................................................................... 767.1 ARQUITETURA GERAL DO SOFTWARE ............................................................................................ 797.1.1 CLIENTE...................................................................................................................................... 797.1.2 SERVIDOR................................................................................................................................... 807.1.3 DEBUGGER (HARDWARE) ............................................................................................................ 817.2 ARQUITETURA DO SERVIDOR.......................................................................................................... 827.2.1 COMUNICAO COM O CLIENTE................................................................................................. 827.2.2 BANCO DE DADOS....................................................................................................................... 827.2.3 COMUNICAO COM O BANCO DE DADOS / CONTROLADOR MESTRE (COMUNICAO SERIAL) 877.3 ARQUITETURA DO CLIENTE............................................................................................................. 937.3.1 AUTENTICAO DE USURIOS NO SISTEMA ............................................................................... 937.3.2 ATUALIZAO DA INTERFACE WEB........................................................................................... 957.3.3 ATUALIZAO DO STATUS DA RESIDNCIA ............................................................................... 967.3.4 MANUTENO DOS USURIOS DO SISTEMA ............................................................................... 977.4 ARQUITETURA DO DEBUGGER......................................................................................................... 998.1 DESCRIO DOS MDULOS HURRICANE.................................................................................... 1038.1.1 DESCRIO GERAL DOS MDULOS.......................................................................................... 1038.1.2 MDULO CONTROLADOR......................................................................................................... 1078.1.3 MDULO DE INTERFACE........................................................................................................... 1088.1.4 MDULO CAN CORE ............................................................................................................... 1098.1.5 MDULO DE RECEBIMENTO ..................................................................................................... 1108.1.6 MDULO DE TRANSMISSO ..................................................................................................... 1118.1.7 MDULO DE CLCULO DE CRC............................................................................................... 1128.1.8 MDULO DE SINCRONISMO...................................................................................................... 1138.1.9 MDULO DE STUFFING............................................................................................................. 1148.1.10 MDULO DE CONTROLE DE ERROS.......................................................................................... 1158.1.11 MDULO DE CONTADORES DE ERROS ..................................................................................... 1168.1.12 RESUMO DE INFORMAES DO HURRICANE........................................................................... 1178.2 ARQUITETURA DOS NODOS ESCRAVOS ........................................................................................ 1178.2.1 NODO DE LMPADAS ............................................................................................................... 1198.2.2 RESUMO DE RELATRIO DE SNTESE ....................................................................................... 1208.2.3 FORMAS DE ONDA DO OSCILOSCPIO...................................................................................... 1218.2.4 FORMAS DE ONDA POR SIMULAO ........................................................................................ 1228.3 ARQUITETURA DO NODO MESTRE................................................................................................ 1238.3.1 RESUMO DE RELATRIO DE SNTESE ....................................................................................... 1258.3.2 FORMAS DE ONDA POR SIMULAO ........................................................................................ 1258.3.3 TESTBENCH............................................................................................................................... 1308.4 PACOTES DE DADOS X PACOTES DE CONTROLE.......................................................................... 1328.5 INTERFACE HARDWARE/SOFTWARE .............................................................................................. 1349.1 INTERFACE PCI.............................................................................................................................. 1379.2 PROTOCOLO PLUG AND PLAY ........................................................................................................ 1379.3 ALIVE?............................................................................................................................................. 1389.4 TESTABILIDADE REMOTA.............................................................................................................. 1389.5 RECONFIGURAO REMOTA ........................................................................................................ 1399.6 MECANISMO DE TTL TIME TO LIVE......................................................................................... 1399.7 CONTROLE DE ACESSO WEB POR MLTIPLAS PERMISSES........................................................ 140
vLista de FigurasFIGURA 1 TELEAO ........................................................................................................................................................2FIGURA 2 BENEFCIOS DE DOMTICA ...............................................................................................................................5FIGURA 3 APLICAES POSSVEIS DESTE PROJETO............................................................................................................8FIGURA 4 ARQUITETURA DO SISTEMA ..............................................................................................................................9FIGURA 5 ESTRUTURA COMPLETA DO SERVIDOR ............................................................................................................10FIGURA 6 ESTRUTURA DA APRESENTAO .....................................................................................................................11FIGURA 7 ESTRUTURA INTERNA DE UM FPGA................................................................................................................14FIGURA 8 ESTRUTURA DE UM BLOCO LGICO XILINX XC3000 ...................................................................................15FIGURA 9 ESQUEMA DE UMA SWITCH BOX ......................................................................................................................15FIGURA 10 ROTEAMENTO EM FPGA...............................................................................................................................16FIGURA 11 EXEMPLO EM DIAGRAMA DE UMA DESCRIO ESTRUTURAL EM VHDL .......................................................19FIGURA 12 ESTRUTURA DO COMPONENTE CONT2 ..........................................................................................................21FIGURA 13 MODELO BSICO DE MDULOS PARA AUTOMAO.......................................................................................23FIGURA 14 ESTRUTURA INTERNA DE UM MDULO DE AUTOMAO INTELIGENTE ..........................................................24FIGURA 15 ARQUITETURA DO PROTOCOLO EHS.............................................................................................................28FIGURA 16 ESTRUTURA DA REDE EHS ...........................................................................................................................30FIGURA 17 FORMATO DOS PACOTES EHS .......................................................................................................................30FIGURA 18 FORMATO DO PACOTE BDLC........................................................................................................................32FIGURA 19 TIPOS DE IN-FRAME RESPONSE .......................................................................................................................33FIGURA 20 INTERFACE COM CPU ...................................................................................................................................33FIGURA 21 GERENCIADOR DE PROTOCOLO .....................................................................................................................34FIGURA 22 INTERFACE MULTIPLEXADOR ........................................................................................................................35FIGURA 23 TOPOLOGIA LGICA EIB...............................................................................................................................37FIGURA 24 PACOTE EIB .................................................................................................................................................38FIGURA 25 PACOTE DO PROTOCOLO X-10 ......................................................................................................................39FIGURA 26 TABELA DE COMANDO DO PROTOCOLO X-10 ................................................................................................39FIGURA 27 MTODO DE DETECO DE ERROS DO PROTOCOLO X-10 ..............................................................................39FIGURA 28 FUNES DAS CAMADAS DE CAN.................................................................................................................45FIGURA 29 FORMATO DE UM PACOTE DE DADOS CAN....................................................................................................46FIGURA 30 CAMPO DE ARBITRAO ...............................................................................................................................46FIGURA 31 REQUISIO REMOTA DE DADOS...................................................................................................................48FIGURA 32 PACOTE DE REQUISIO DE DADOS CAN......................................................................................................49FIGURA 33 PACOTE DE ERRO CAN .................................................................................................................................49FIGURA 34 PROCESSO DE SINALIZAO DE ERROS..........................................................................................................50FIGURA 35 BIT STUFFING ................................................................................................................................................51FIGURA 36 ESTADOS DE ERRO ........................................................................................................................................53FIGURA 37 ARBITRAO CAN .......................................................................................................................................54FIGURA 38 BIT TIME CAN ...............................................................................................................................................55FIGURA 39 SINCRONIZAO COM TRANSMISSOR LENTO.................................................................................................56FIGURA 40 SINCRONIZAO COM TRANSMISSOR RPIDO ...............................................................................................56FIGURA 41 FORMA DA FIAO CAN...............................................................................................................................57FIGURA 42 TENSO NOMINAL.........................................................................................................................................57FIGURA 43 INTERFERNCIA ELETROMAGNTICA ............................................................................................................57FIGURA 44 TRANSCEIVER.................................................................................................................................................58FIGURA 45 MDULO CAN STAND-ALONE .......................................................................................................................59FIGURA 46 MDULO CAN INTEGRADO..........................................................................................................................59FIGURA 47 MDULO CAN SINGLE-CHIP ........................................................................................................................60FIGURA 48 BASICCAN.....................................................................................................................................................60FIGURA 49 FULLCAN......................................................................................................................................................61FIGURA 50 FILTRO SIMPLES ............................................................................................................................................61FIGURA 51 MLTIPLOS FILTROS .....................................................................................................................................62FIGURA 52 ARQUITETURA GERAL DO MDULO CAN......................................................................................................62FIGURA 53 ESTRUTURA DETALHADA DO MDULO CAN.................................................................................................64FIGURA 54 DETALHE DO BLOCO DE INTERFACE COM MEMRIA E APLICAO DO USURIO............................................65FIGURA 55 - ARQUITETURA DO SISTEMA...........................................................................................................................79FIGURA 56 TABELAS DO SISTEMA...................................................................................................................................83FIGURA 57 - TABELANODOS..............................................................................................................................................86FIGURA 58 MTODOS DE ACESSO A BASE DE DADOS E PORTA DE COMUNICAO RS-232 ..............................................88FIGURA 59 PROBLEMA DE SEQUENCIAMENTO DE PACOTES.............................................................................................89
vi
FIGURA 60 LISTA DE RECEBIMENTO DE PACOTES GRANDES............................................................................................90FIGURA 61 TELA DE AUTENTICAO..............................................................................................................................94FIGURA 62 - INTERFACE CLIENTE......................................................................................................................................97FIGURA 63 INTERFACE DE ADMINISTRAO...................................................................................................................98FIGURA 64 INSERINDO USURIOS ...................................................................................................................................98FIGURA 65 ALTERANDO USURIOS.................................................................................................................................99FIGURA 66 EXCLUINDO USURIOS..................................................................................................................................99FIGURA 67 DEBUGGER..................................................................................................................................................101FIGURA 68- DISPOSIO HIERRQUICA DOS MDULOS....................................................................................................104FIGURA 69 - INTERAO ENTRE OS BLOCO DO CAN CONTROLLER ..................................................................................105FIGURA 70 INTERAO ENTRE OS BLOCO DO CAN CORE .............................................................................................106FIGURA 71 PLATAFORMA NODO ESCRAVO (XS40) .......................................................................................................118FIGURA 72 ESQUEMA XS40..........................................................................................................................................119FIGURA 73 ARQUITETURA DO NODO DE LMPADAS......................................................................................................119FIGURA 74 MONITORAO PELO OSCILOSCPIO DE UM PACOTE CAN COMPLETO .......................................................121FIGURA 75 TRANSMISSOR X RECEPTOR CAN................................................................................................................121FIGURA 76 SIMULAO DE UM PACOTE CAN COMPLETO ............................................................................................122FIGURA 77 COMPARAO ENTRE BARRAMENTO, BITS DO TRANSMISSOR E DO RECEPTOR ............................................122FIGURA 78 PROCESSO DE ENVIO DE PACOTES ...............................................................................................................122FIGURA 79 PROCESSO DE RECEPO DE PACOTES.........................................................................................................123FIGURA 80 ARQUITETURA DO NODO MESTRE................................................................................................................124FIGURA 81 PLATAFORMA NODO MESTRE (VW300) ......................................................................................................125FIGURA 82 CONVERSO CAN PARA SERIAL.................................................................................................................126FIGURA 83 CONVERSO SERIAL PARA CAN.................................................................................................................127FIGURA 84 TRANSMISSO SERIAL DO MESTRE..............................................................................................................127FIGURA 85 RECEPO CAN NO MESTRE COM TRANSMISSO SERIAL ...........................................................................128FIGURA 86 ESCRITA E LEITURA NA FILA CAN ..............................................................................................................129FIGURA 87 ESCRITA E LEITURA DA FILA SERIAL............................................................................................................129FIGURA 88 ESTRUTURA DO TESTBENCH DO MESTRE......................................................................................................130FIGURA 89 BANCADA DE TESTE DO MESTRE .................................................................................................................132FIGURA 90 DETALHES DA BANCADA DE TESTE .............................................................................................................132FIGURA 91 FORMATO DE PACOTES DE DADOS...............................................................................................................133FIGURA 92 FORMATO DE PACOTES DE CONTROLE .........................................................................................................133FIGURA 93 INTERFACE HARDWARE/SOFTWARE..............................................................................................................134
vii
Lista de Tabelas
TABELA 1 TIPOS DE MEIOS FSICOS EHS.........................................................................................................................29TABELA 2 TABELA COMPARATIVA ENTRE PROTOCOLOS .................................................................................................41TABELA 3 LEGENDA DA TABELA COMPARATIVA DE PROTOCOLOS..................................................................................41TABELA 4 COMPARATIVO ENTRE CAN PADRO E ESTENDIDO .......................................................................................45TABELA 5 CODIFICAO DO CAMPO DLC ......................................................................................................................47TABELA 6 TAXA DE TRANSFERNCIA X COMPRIMENTO DO BARRAMENTO......................................................................58TABELA 7 COMPARAO ENTRE DIVERSAS LINGUAGENS DE PROGRAMAO.................................................................74TABELA 8 TABELA USUARIOS ........................................................................................................................................84TABELA 9 TABELA TABELANODOS ................................................................................................................................85TABELA 10 - TABELA TABELADADOS ...............................................................................................................................86TABELA 11 - DESCRIO DA PORT LIST DO CAN CONTROLLER........................................................................................107TABELA 12 DESCRIO DA PORT LIST DO CAN INTERFACE ..........................................................................................108TABELA 13 - DESCRIO DA PORT LIST DO CAN CORE ...................................................................................................109TABELA 14 - DESCRIO DA PORT LIST DO CAN RX .......................................................................................................110TABELA 15 - DESCRIO DA PORT LIST DO CAN TX .......................................................................................................112TABELA 16 - DESCRIO DA PORT LIST DO CRC CALC....................................................................................................112TABELA 17 - DESCRIO DA PORT LIST DO SYNC.............................................................................................................113TABELA 18 - DESCRIO DA PORT LIST DO STUFF HANDLER ............................................................................................114TABELA 19 - DESCRIO DA PORT LIST DO ERROR FRAME ...............................................................................................115TABELA 20 - DESCRIO DA PORT LIST DO ERROR COUNTER ...........................................................................................116TABELA 21 RESUMO DE DADOS DOS MDULOS HURRICANE .......................................................................................117TABELA 22 RESUMO DE RELATRIOS DE SNTESE DO MESTRE ......................................................................................125TABELA 23 RELATRIO DO TESTBENCH DO MESTRE (CAN PARA SERIAL) ....................................................................130TABELA 24 RELATRIO DO TESTBENCH DO MESTRE (SERIAL PARA CAN) .....................................................................131
viii
AGRADECIMENTOS
Durante o desenvolvimento deste trabalho tivemos ajudas essenciais que nos trouxeram
contribuies tanto tcnicas quanto emocionais. A essas pessoas, abaixo citadas, deixamos o nosso
mais sincero obrigado.
Ao professor Fernando Moraes, que nos orientou durante essa jornada, agradecemos
sinceramente conduo deste trabalho.
Ao professor Eduardo Bezerra, que mesmo afastado (em doutorado) teve uma contribuio
inestimvel neste do projeto.
Ao professor Ney Calazans, agradecemos por vrias dicas dadas no decorrer deste trabalho.
Ao professor Csar Marcon, devido ao seu conhecimento da linguagem de programao
Java.
A Letcia que nos ajudou muito na reviso de Portugus deste trabalho.
A todos membros do grupo Gaph, em especial Everton, Jos e Mesquita.
Ao grupo Sisc onde eu (Alexandre) trabalho como bolsista de IC, pois fiquei vrias noites
trabalhando nestes projeto usando recursos do grupo.
ix
Resumo
O objetivo deste trabalho a implementao de um sistema de controle para aplicaes
domsticas, visando a automao de lares (domtica). Este sistema acessado pela Internet, sendo
os dispositivos da casa interligados pelo protocolo de controle CAN.
Os usurios (moradores) podero controlar, monitorar e administrar seu lar a distncia
usando um navegador Web comum. Esta aplicao remota o programa cliente. Localmente, um
servidor traduz as instrues de/para o navegador Web e as distribui para as aplicaes domsticas.
O sistema proposto neste trabalho apresenta como diferencial dos sistemas existentes as
seguintes caractersticas: (i) atualizao automtica da interface do cliente; (ii) protocolo padro de
comunicao utilizado no hardware, o qual prov robustez e controle de erros; (iii) fcil insero de
novas aplicaes na base de dados; (iv) mecanismos de autenticao de usurios garantindo a
segurana do sistema; (v) interface de administrao dos usurios do sistema. Alm destas
caractersticas, este trabalho apresente um sistema que integra hardware e software, com utilizao
de dispositivos programveis do tipo FPGA.
xAbstract
The objective of this work is to implement a control system for domestic applications
domotics or smart houses. This application is controlled through the Internet, being the home
devices connected using the CAN control protocol.
The user remotely controls his house using a standard Web navigator. This remote
application is a client program. Locally, the server translates the instructions from/to the Web
navigator and distributes them to the domestic applications.
xi
11 Introduo
Este trabalho um estudo e implementao de um sistema que tem a finalidade de permitir
que pessoas possam administrar seus lares remotamente, de uma forma simples, com um custo
baixo (implantao e administrao), utilizando uma plataforma portvel e flexvel a avanos
tecnolgicos, facilitando a implementao de domtica em lares, escritrios e prdios.
Este captulo caracteriza automao domstica. A Seo 1.1 apresenta conceitos bsicos em
que esse trabalho est baseado. A Seo 1.2 mostra alguns requisitos de sistemas de domtica. A
Seo 1.3 lista benefcios em termos de segurana, conforto, facilidade de comunicao, e
economia de energia que o usurio de tal sistema de automao pode usufruir. Finalmente, a Seo
1.4 apresenta o que motiva o desenvolvimento deste projeto.
No Captulo 0, a arquitetura do sistema apresentada de forma genrica. Detalhes da
arquitetura sero apresentados no Captulo 6, onde apresentamos o sistema operacional, a
linguagem de programao e a comunicao cliente/servidor usados. No Captulo 3 apresentamos
os conceitos de FPGA, VHDL e linguagem Java necessrios para o acompanhamento da leitura
deste trabalho. No Captulo 4 apresentamos conceitos, requisitos e um estudo comparativo sobre
protocolos de controle. Detalhes sobre o protocolo de controle CAN so apresentados no Captulo
5. No Captulo 7 e 8 so apresentados detalhes de implementao do sistema de software e
hardware, respectivamente. Um conjunto de propostas para trabalhos futuros apresentado no
Captulo 9. Uma lista de links relacionados a esse trabalho e referncias bibliogrficas encerram
este relatrio.
1.1 Conceitos Bsicos
Domtica a integrao de tecnologias e servios, aplicadas a lares, escritrios e pequenos
prdios, com o propsito de automatizar e obter um aumento de segurana, conforto, comunicao e
economia de energia [8] [9] [11] link [22].
Por automao entende-se a capacidade de se executar comandos, obter medidas, regular
parmetros e controlar funes de uma casa automaticamente.
A palavra domtica (domotique) surgiu na Frana, onde houveram as primeiras
experincias relacionadas a domtica. Domtica a contrao da palavra domus do Latim
2(equivalente a lar ou casa) com a palavra telemtica. Outro sinnimo para domtica casa
inteligente (smart house), porm neste trabalho usaremos o termo domtica.
A domtica pode substituir o homem em diversas atividades rotineiras de forma a propiciar
uma otimizao nas condies de vida em uma casa. O prprio sistema zela pela satisfao dos
moradores, sem que seja necessrio a contnua interveno dos mesmos.
O grau de controle alcanado pode ser varivel, sendo uma funo de custo, desejo pessoal
dos moradores, estrutura do prdio e tecnologia usada. Casas que podem ter, por exemplo, ajuste
automtico de temperatura, escalonamento automtico de tarefas rotineiras como ligar a cafeteira,
acionamento automtico de servios de segurana e comunicao eficiente com o mundo externo
tm vrios benefcios que sero descritos na Seo 1.3.
Outro termo importante a se definir o conceito de teleao (teleaction) [1] [2]. Teleao a
capacidade de se controlar algum dispositivo remotamente. A Figura 1 ilustra esse conceito.
Unindo os dois conceitos acima descritos (domtica e teleao) surgiu a idia de interligar a
rede interna de uma casa (domtica) com a rede externa casa (Internet) de forma que os
moradores da casa possam controlar, monitorar e administrar seu lar a distncia, conforme pode ser
visualizado na Figura 1. Uniremos neste projeto uma realidade atual (Internet e micro computadores
domsticos) com uma tendncia para o futuro (domtica).
Figura 1 Teleao
Com o enorme crescimento de novas aplicaes que usam a Internet como meio de
comunicao, novos produtos para aplicaes de infotainment (informao + entretenimento) e
comrcio eletrnico esto surgindo. Com isso est havendo uma aproximao dos computadores
aos lares. Isso tem estimulado o mercado SoHo (Small office Home office) a oferecer cada vez mais
produtos para atender uma clientela cada vez mais exigente. Um outro efeito do aumento acelerado
do mercado SoHo ser a mudana dos lares de um simples ponto de acesso Internet para um
provedor de servios e aplicaes, como mostra a Figura 1.
3Nos dias de hoje, existem algumas poucas empresas no mundo que desenvolvem produtos
visando domtica [2]. Na Europa, principalmente, existem vrios grupos que esto trabalhando no
desenvolvimento de um protocolo domstico padro. Esses grupos, sem excees, esto ligados a
grandes fabricantes de eletrodomsticos e produtos de uso domstico em geral. No Brasil, no se
tem notcia de empresa que desenvolva produtos para domtica, mas existem revendedoras de
empresas estrangeiras. Ainda assim, so raras essas empresas, pelo fato de que produtos visando
domtica no serem acessveis financeiramente maioria da populao.
1.2 Requisitos de um Sistema de Automao Domstica
Para saber exatamente quais so as reais exigncias que um sistema de automao domstica
deve ter necessrio uma equipe multidisciplinar, engenheiros, arquitetos, socilogos, para
identificarem o cenrio domstico, conforme [2]. Tal estudo ter a funo de descrever a situao
da domtica no futuro e definir por quais caminhos esse estudo deve seguir para alcan-lo, no
ponto de vista europeu.
O resultado deste estudo foi dividido em trs partes: facilidades, vantagens e exigncias
tcnicas.
Por facilidades entende-se todas as funes que o usurio gostaria de ter integrada num
sistema, de modo a facilitar o seu cotidiano. Citamos as seguintes necessidades:
manuteno domstica;
conservao e preparo de comida, preparo de roupas;
comunicao e home office;
entretenimento (udio, vdeo, tv, rdio);
controle de energia, aquecimento, gua, iluminao, ou ventilao;
segurana em relao a invaso, fogo, inundao, ou mau tempo.
Por vantagens entende-se os benefcios1 que a domtica ter que propiciar para a satisfao
do usurio final.
Essas necessidades e vantagens devem ser consideradas como pr-requisitos em um sistema
de automao domstica.
1 benefcios sero detalhados na Seo1.3.
4Exigncias tcnicas so caractersticas que o desenvolvedor de sistema deve conhecer e
saber contorn-los para implementar um sistema competitivo e com aceitao no mercado. As
principais exigncias so:
baixo custo (sistema de fcil instalao e dispositivos baratos);
plug and play;
flexibilidade (sistema modular e extensvel);
integrao com todas aplicaes;
integrao com vrios fabricantes (padronizao);
compatibilidade com vrios meios (linha de energia, rdio-freqncia, par tranado,infra vermelho);
confiabilidade;
fcil utilizao.
Baixo custo para o usurio final significa, primeiramente, que a instalao da rede deve ser
fcil, de modo que necessite o mnimo possvel de uma pessoa especializada para isso. Por outro
lado, os dispositivos da rede devem ser baratos tambm. O usurio no vai pagar uma diferena de
preo muito grande por uma lavadora de roupa conectada a rede se existe uma similar mais barata,
mas que no pode ser conectada. Resumindo, o custo adicional para dispositivos de domtica
devem ser extremamente baixo.
Os dispositivos devem ser plug and play, pois o prprio usurio deve ser capaz de fazer
instalao da rede, de novos dispositivos e de reconfigurar a rede.
O ciclo de vida do sistema deve ser grande. O sistema instalado deve ser extensvel. Deve
ser possvel integrar novos dispositivos e novas aplicaes mesmo que esses ainda no existam. Isso
implica que o sistema deve ser flexvel a novas tecnologias.
Deve ser possvel integrar todas as aplicaes de um sistema de domtica. No uma boa
estratgia instalar um sistema para controle de ar condicionado, outro para segurana, e assim por
diante. As aplicaes estando integradas possibilitam o compartilhamento de recursos e
interoperabilidade.
Dispositivos de um fabricante devem ser conectados na mesma rede que dispositivos de um
outro fabricante qualquer. Esta caracterstica a base de um sistema de automao.
5O sistema deve ser confivel. Pelo fato do sistema integrar muitos dispositivos de diferentes
caractersticas e fabricantes, aumentando-se as chances de que esse sistema se torne potencialmente
sujeito a falhas. desejvel que o sistema inclua funes de monitoramento e teste, aumentando o
grau de disponibilidade do mesmo.
Outro ponto muito importante a facilidade de uso. A interface deve ser intuitiva e ter
formas similares de executar funes diferentes, para facilitar o aprendizado do mesmo. Levando
em conta que o sistema deve tornar algumas tarefas de casa independentes de sua interveno.
1.3 Benefcios da Domtica
Os benefcios de domtica concentram-se em quatro classes: segurana, conforto, economia
de energia e comunicao. Esses itens sero descritos abaixo e podem ser visualizados na Figura 2.
Figura 2 Benefcios de Domtica
1.3.1 Segurana
Trata de proteger pessoas e pertences em casos de eventualidades como invaso, vazamento
de gua, vazamento de gs, incndio, doenas, etc. Pode-se destacar como aplicaes:
alarmes tcnicos: inundao, gs, queda de energia;
fogo e fumaa: deteco rpida, alerta a moradores, chamada de bombeiros;
6 invaso e assalto: comunicao polcia, sistema de cmeras, foto das pessoas quepassaram pela frente da porta dianteira ou tocaram a campainha;
alarme mdico: monitoramento e diagnstico remoto de sinais vitais;
simulao de presena: ligar msica e luzes aleatoriamente.
1.3.2 Conforto
Abaixo exemplifica-se alguns controles relacionados a conforto:
luz automtica: acionamento por presena, som, hora ou luz ambiente;
persianas: controle automtico por presena de luz ambiente e chuvas, aberturaautomtica de persianas pelo acionamento do despertador;
centralizao: ligar/desligar o sistema com um nico boto;
controle de temperatura: temperatura interna mantm-se sempre a um nvel agradvel;
programao de eletrodomsticos: pode-se programar para que a cafeteira e oaquecimento da banheira liguem 10 minutos antes que o despertador seja acionado;
abertura de portes.
1.3.3 Energia
Controles inteligentes podem evitar desperdcio de energia.
iluminao: desliga luzes automaticamente quando no houver pessoas em determinadoambiente;
controle de temperatura: poder controlar aquecedores e ar condicionado de forma aminimizar o consumo de energia;
controle de eletrodomsticos: acionar eletrodomsticos como lavadoras de roupa emhorrios que as tarifas so menores ou fora de horrios de pico.
71.3.4 Comunicao
segurana: chamada automtica a bombeiros e polcia;
entretenimento: interligao de udio e vdeo, sinal de videofone na televiso;
mensagens: envio de mensagens texto para distribuio no destino (Broadcast);
chat: bate-papo entre o administrador remoto e pessoas no interior do lar, escritrio, etc;
conectividade: interligao entre casas, escritrios e prdios que utilizam a domtica(WAN).
1.4 Motivao
Tem-se por motivao deste trabalho o desejo de obter experincia no desenvolvimento de
hardware (protocolo de controle), software (comunicao Cliente/Servidor e RS-232C), integrao
harmnica entre o hardware e o software e o desenvolvimento da interface da aplicao (home page
da casa).
Outra grande motivao est no apelo comercial e futurstico da idia. Esse trabalho pode
dar continuidade a trabalhos futuros visando uma verso comercial. A longo prazo, poderamos
vislumbrar uma empresa que, baseado neste trabalho, implementasse desde a home-page (a
interface), at solues de conectividade e controle de casas. Atualmente, uma empresa que fornea
tal servio ainda no existe, a nosso conhecimento, no Brasil.
Para ilustrar o apelo futurstico desta aplicao mostramos na Figura 3 algumas situaes
possveis em uma casa com um sistema de domtica interligado Internet.
Digamos que Maria est saindo do seu trabalho (caso 1). Ela poderia usar o seu PDA
(personal digital assistant) sem fio com acesso a Internet para conectar-se a sua casa e, por
exemplo, ajustar o termostato geral e deixar a casa bem iluminada para quando ela chegar em casa.
No caso 2, o medidor de nvel de leo do sistema de aquecimento estava com nvel baixo.
Imediatamente o sistema manda uma mensagem para a distribuidora de leo para que seja feito o
reabastecimento.
8Figura 3 Aplicaes possveis deste projeto
J no caso 3, Joo est trabalhando quando de repente recebe uma mensagem urgente
comunicando uma invaso sua casa. Imediatamente ele se conecta casa e, atravs das cmeras de
segurana, consegue ver a imagem do invasor. Ao mesmo tempo que o sistema j havia enviado
uma mensagem polcia notificando a invaso.
O caso 4, digamos que Joo e Maria decidem sair para ir ao cinema. Ao sarem da casa o
sistema avisa ao PDA que esqueceram de ativar o sistema de alarme. Ento, pelo prprio PDA, Joo
aciona o sistema e verifica se todas as portas e janelas foram bem fechadas.
Os quatros exemplos citados acima podem parecer muito longe da realidade atual, porm
no esto. J existem PDAs com acesso a Internet (link [15] ) e, durante a execuo desse trabalho,
encontramos alguns sistemas de superviso comercial com objetivo similar ao objetivo desse
trabalho (links [16] [17] [18] [19] [20] [21] ). Isso vem provar que j existem tecnologias
convergindo para o objetivo deste projeto.
Visamos como meta do desenvolvimento deste projeto usar tecnologia de baixo custo ou de
livre distribuio de modo que uma possvel comercializao do produto venha a ser vivel.
Durante as Sees seguintes poder ser notado que detalhes como a linguagem de programao e o
sistema operacional foram escolhidos de forma e tornar uma verso comercial deste projeto vivel,
visto que esta uma motivao importante deste projeto.
Outra motivao ao desenvolvimento deste trabalho foi a criao de uma nova aplicao
para computadores e Internet. Pensamos que essa aplicao poder contribuir de forma a fazer com
que o uso de computadores faa cada vez mais parte do dia-a-dia do usurio comum.
92 Arquitetura do Sistema
O sistema desenvolvido baseia-se na comunicao entre dois computadores atravs do
protocolo de comunicao HTTP, um destes computadores denominado de Servidor e o(s)
outro(s) computador(es) denominado(s) Cliente(s). Internamente casa existir uma outra rede
utilizando o protocolo CAN2 responsvel em interligar os diversos perifricos da casa. Esta rede
interna, atravs de um Controlador Mestre, comunica-se com o computador Servidor atravs da
porta RS-232C. A Figura 4 ilustra a estrutura geral do sistema.
Figura 4 Arquitetura do Sistema
O computador Cliente responsvel por permitir que o usurio possa de maneira amigvel,
interagir com sua residncia. Para que isso seja possvel, no computador cliente, temos um software
responsvel pelo envio de sinais de controles que neste caso iremos denominar de pacotes de
controle. Estes pacotes sero recebidos pelo Servidor que se encarregar de trat-los de maneira
adequada. Devido ao crescimento e popularizao da Internet no mundo, o software utilizado no
lado Cliente ser um navegador Web.
Sendo assim, o navegador Web responsvel em enviar os pacotes de controle ao Servidor
atravs do protocolo HTTP, e ao mesmo tempo responsvel em manter a interface com o usurio
atualizada a medida que o Servidor envia atualizaes.
O Servidor responsvel por receber pacotes (Figura 5 - 1) de controle que sero enviados a
partir do navegador Web que estiver rodando na mquina Cliente. O Servidor por sua vez
2 Detalhes do protocolo CAN sero analisados no Captulo 5
10
interpretar estes pacotes de controle recebidos do Cliente e responsvel em atualizar uma base de
dados e repassar estes pacotes de controle atravs da porta RS-232C para o Controlador Mestre da
rede interna da casa.
Figura 5 Estrutura completa do servidor
Para viabilizar o desenvolvimento da tarefa atribuda ao computador Servidor, utilizaremos
um servidor Web Apache (link [33]), responsvel em disponibilizar a interface (a partir deste
momento comearemos a tratar esta interface como sendo a homepage da residncia) ao(s)
Cliente(s) (navegador Web). Juntamente com o servidor Web utilizada a linguagem de
programao PHP, link [28] (Figura 5 - 2) cuja responsabilidade receber os pacotes de controles
enviados pelo usurio atravs do navegador Web, atualizando uma base de dados (Figura 5-4)
contida no servidor. Esta base de dados tem como principal funo manter o estado atualizado sobre
cada aplicao domstica que est sendo controlada remotamente.
Enquadra-se como responsabilidade do Servidor a atualizao, de maneira transparente ao
usurio, da interface do navegador Web (Cliente). Em outras palavras, isso possibilita que o usurio
tenha sempre o ltimo estado (Figura 5 - 5) sobre sua residncia sem a necessidade de ficar
acionando um comando de atualizao da interface.
Ainda no contexto do Servidor, existe uma aplicao (Figura 5 - 3) escrita em Java,
responsvel pela comunicao com a porta serial RS-232C possibilitando o envio de pacotes de
11
controle ao Controlador Mestre e tambm do recebimento dos pacotes de controle provenientes do
Controlador Mestre.
Outro objetivo principal da aplicao Java garantir a consistncia das aplicaes
domsticas da residncia de acordo com o seu respectivo status no banco de dados, pois este ltimo
reflete diretamente os comandos de atualizao enviados pelo usurio a sua casa.
A autenticao de usurios e criptografia dos dados so mecanismos utilizados para garantir
a segurana do sistema, impedindo que pessoas desautorizadas tenham acesso ao sistema. Como
soluo para esta preocupao, utiliza-se o conceito de login e criptografia de dados garantindo
segurana do sistema.
O Controlador Mestre da rede residencial far a codificao dos dados recebidos pelo
Servidor para o protocolo CAN. Alm disso, tarefas como endereamento dos pacotes,
gerenciamento do barramento e decodificao dos dados recebidos dos perifricos para o servidor,
tambm sero tarefas do Controlador Mestre.
A proposta instalar na casa uma rede serial. Essa rede interligar todos os perifricos e nela
trafegaro os comandos e dados necessrios para se atingir o objetivo de automatizar a casa. Estes
perifricos sero controlados pelo Controlador Mestre que receber comandos do Servidor.
O protocolo CAN ser implementado utilizando um core disponvel [38], descrito em
VHDL [3], e implementado em placas de prototipao que emularo alguns perifricos de uma casa
real. A Figura 6 apresenta uma proposta para simular o controle de perifricos de uma casa.
Figura 6 Estrutura da apresentao
Apesar do projeto ser especificado com a flexibilidade necessria para que possa monitorar
e acionar grande parte dos perifricos comuns em uma casa, esse projeto se limitar a ter como
cargas LEDs e displays de sete segmentos que simbolizaro os perifricos reais da casa, conforme
12
Figura 6. O acionamento de cargas maiores como lmpadas, demandam um circuito que comporte
maior potncia. O conhecimento da montagem de tal circuito no faz parte do escopo do atual
trabalho. As placas de prototipao podero enviar dados ao servidor atravs de chaves e botes.
Para simular a fiao da casa usaremos o cabos seriais usados para comunicao de RS232C
13
3 Definies
O objetivo deste captulo abordar definies fundamentais que so a base deste projeto,
portanto a compreenso destes conceitos fundamental. A Seo 3.1 define o que FPGA. A Seo
3.2 define a linguagem VHDL. Na Seo 3.3 definem-se alguns conceitos relacionados linguagem
de programao Java.
3.1 FPGA
A tecnologia VLSI abriu as portas para a implementao de circuitos digitais poderosos e de
baixo custo. Porm o processo de manufatura desses circuitos perdura meses. Isso resulta em um
alto preo a no ser que haja produo em volumes muitos grandes.
Na indstria eletrnica vital que novos produtos alcancem o mercado o mais rpido
possvel, e para isso reduzir o tempo de desenvolvimento e produo essencial. Field
Programmable Gate Array (FPGA) surgiu como soluo para esse problema, porque prov
implementao imediata e com baixo custo de prototipao.
3.1.1 Evoluo dos Dispositivos Programveis
Dispositivos programveis so circuitos de propsito geral que podem ser configurados para
uma grande variedade de aplicaes.
Um dos primeiros tipos de dispositivo programvel foram as Programmable Read-Only
Memory (PROM). As PROMS consistem de uma matriz de clulas que pode ser programada
somente uma vez. Esse dispositivo usado para implementar tabelas verdade.
Outro dispositivo programvel, especfico para implementao de circuitos lgicos, o
Programmable Logic Device (PLD). Esse dispositivo baseado em uma matriz de portas E
conectada a uma matriz de portas OU. PLDs possibilitaram um grande avano na implementao de
circuitos lgicos, porm, devido a sua estrutura simples (limitao para lgica seqencial), s se
podia desenvolver pequenos circuitos lgicos.
O Mask Programmable Gate Arrays (MPGA) um outro tipo de dispositivo programvel
que pode interconectar elementos de acordo com especificaes do usurio. A maior vantagem dos
14
MPGAs sobre os PLDs que eles possuem uma estrutura mais genrica permitindo a
implementao de circuitos maiores.
3.1.2 FPGA
Assim como um MPGA, um FPGA (Field Programmable Gate Array) um circuito
programvel composto por um conjunto de clulas lgicas ou blocos lgicos alocados em forma de
uma matriz [6] [7]. Em geral, a funcionalidade destes blocos assim como o seu roteamento, so
configurveis por software. A Figura 7 ilustra a organizao interna de um FPGA com arquitetura
de roteamento baseada em canais horizontais e verticais (exemplo: Xilinx famlia XC4000).
Figura 7 Estrutura interna de um FPGA
3.1.3 Blocos Lgicos
As funes lgicas so implementadas no interior dos blocos lgicos. A arquitetura de um
bloco lgico pode ser desenvolvida de vrias formas e ter vrios recursos. Cada fabricante e famlia
de dispositivos pode ter uma arquitetura diferente. Porm, importante que essa escolha vise a
maior versatilidade possvel. A Figura 8 apresenta a arquitetura interna de um bloco lgico de um
FPGA XC 3000 fabricado pela Xilinx.
15
Em algumas arquiteturas os Blocos Lgicos possuem recursos seqenciais tais como flip-
flop ou registradores. No CLB da Figura 8, por exemplo, h dois flip-flops.
Figura 8 Estrutura de um bloco lgico Xilinx XC3000
3.1.4 Roteamento
Roteamento responsvel pela interconexo entre os blocos lgicos. A conexes fsicas
entre os fios so feitas ora com transistores de passagem controlados por bits de memria (PIP) ora
com chaves de interconexo (Switch Matrix).
Os recursos de roteamento da srie XC4000 da Xilinx possuem:
Conexes Globais: formam uma rede de interconexo em linhas e colunas de cinco fios,
que se ligam atravs de chaves de interconexo. Esta rede circunda os blocos lgicos (CLBs) e os
blocos de E/S (IOBs);
Matrizes de Conexo (Switch Matrix): so chaves de interconexo que permitem o
roteamento entre os canais de roteamento (Figura 9). Estas conexes so programveis na fase de
roteamento automtico, executada pelo software de projeto do fabricante do FPGA.
4
3
2
1
1 2 3 4
1 2 3 4
4
3
2
1
Figura 9 Esquema de uma Switch Box
16
Conexes Diretas: so conexes entre CLBs vizinhos e permitem conectar blocos com
menor atraso, pois no utilizam os recursos globais de roteamento.
Linhas Longas: so conexes que atravessam todo o circuito sem passar pelas switch
matrix e so utilizadas para conectar sinais longos e com restries de skew entre mltiplos destinos
(Figura 10)
Figura 10 Roteamento em FPGA
3.1.5 Clulas de I/O
As I/O Cells ou I/OBs (I/O Blocks)3 so blocos que se localizam na periferia do FPGA,
como mostra a Figura 7, e tm a funo de fazer a interface com o mundo externo. Os blocos de E/S
podem ter capacidade para usar buffers tristate e flip-flops para os sinais da sada.
3.1.6 Aplicaes de FPGAs
Implementao de Lgica Randmica - Lgica randmica era usualmentedesenvolvida em PLA4 , porm FPGAs atuais podem armazenar o equivalente a vrios
PLAs e com melhor desempenho eltrico;
3 Blocos de Entrada e Sada de Dados4 Programmable Logic Array (Matriz de Programao Lgica)
17
Integrao de Componentes - Pode-se diminuir a rea de uma placa de circuitoimpresso integrando para dentro de um FPGA vrios componentes simples da placa
(lgica de cola);
Prototipao - FPGAs foram idealmente desenvolvidos visando aplicaes deprototipao. O baixo custo e curto tempo de implementao de aplicaes traz
grandes vantagens sobre a tcnica tradicional. Assim, prototipao pode ser feita
rapidamente e sem custos adicionais em caso de mudanas no projeto;
Reconfigurao de Hardware - Devido a sua grande flexibilidade de interconexo,FPGAs so aplicados em sistemas onde o hardware pode ser reconfigurado durante
funcionamento. Existe a possibilidade de se fazer atualizao de hardware
remotamente, sem que seja necessrio trocar de placa.
3.2 VHDL
VHDL uma linguagem textual para descrever sistemas digitais. Pode-se, atravs de um
descrio VHDL, descrever o comportamento de um circuito ou componente digital [3] [5].
Uma HDL uma linguagem que descreve a funcionalidade de um dado circuito. Essa
descrio poder ser verificada em um simulador. A diferena que esse sistema descrito em HDL
poder ser implementado em hardware em um dispositivo programvel FPGA ou outro tipo de
ASIC.
Para manter o crescimento do desenvolvimento de dispositivos cada vez maiores e mais
complexos, os mtodos de desenvolvimento e ferramentas para projetos de sistemas digitais
tambm deveriam acompanhar esse crescimento. Para resolver esse problema foi reunido um grupo
de especialistas em sistema digitais, incluindo empresas, universidades e rgos militares. O foco
principal era aprimorar o processo de desenvolvimento, aumentar a produtividade do desenvolvedor
e diminuir o ciclo de desenvolvimento de sistemas digitais. Os dois maiores avanos resultantes
desse trabalho foi a criao das HDLs e de seus sistemas de sntese lgica.
Existem dezenas de outras linguagens de descrio de hardware (Verilog, Abel, Handel-C,
AHDL, etc.), porm VHDL foi adotada para esse projeto por ser uma linguagem padro. Com isso,
ela a mais largamente usada e com mais documentao disponvel. Alm disso, essa linguagem
a que os componentes do grupo mais dominam.
A complexidade de sistemas digitais modernos conduz cada vez mais ao uso de altos nveis
de abstrao durante o projeto. Linguagens de descrio de hardware, como VHDL, tm sido
18
crescentemente empregadas para descrever o comportamento desses sistemas digitais [3]. Essa
descrio pode ser puramente comportamental, usada somente para fins de documentao e
descrio funcional simulvel, ou pode ser sintetizvel.
Para se chegar a uma descrio sintetizvel so necessrias vrias etapas de refinamento da
descrio. Esses refinamentos visam alteraes na descrio de forma a alcanarem o subconjunto
de instrues HDL especficas que a ferramenta de sntese suporta.
Entre os aspectos que favorecem o desenvolvimento de hardware usando HDLs podemos
citar:
time-to-market Nos tempos atuais a evoluo de tecnologias est acontecendo cadavez mais rpido. Se h dez anos atrs um produto demorava 6 meses para ser
desenvolvido, mas permanecia no mercado por 2 anos, hoje um produto no
permanece mais de 18 meses, logo o seu desenvolvimento deve levar bem menos
tempo. Isso tem forado o estudo de novas tcnicas para diminuir o ciclo de
desenvolvimento de sistemas digitais. O processo de sntese lgica automatizada ataca
esse problema mecanizando etapas mais abstratas de desenvolvimento.
menor ciclo de desenvolvimento O ciclo de desenvolvimento pode ser reduzido como uso de VHDL, devido eliminao de gerao, manuteno de esquemticos e pela
diminuio de erros de desenvolvimento pelo uso de simulao nos ciclos iniciais do
projeto;
menor custo de desenvolvimento Diretamente ligado ao tpico anterior;
aumento de qualidade no desenvolvimento Essa vantagem alcanada pelo fato queVHDL facilita o rpido experimento com diferentes arquiteturas e tcnicas de
implementao, e pela capacidade das ferramentas de sntese otimizarem um projeto
tanto para rea mnima quanto para velocidade mxima;
evoluo da tecnologia Novos dispositivos surgem com mais capacidade e maisrecursos internos;
gerenciamento do projeto Projetos em VHDL so mais fceis de serem gerenciadosque os projetos baseados em esquemtico. Eles facilitam a estruturao de
componentes (top-down), facilitam a documentao e so necessrias menos pessoas
para desenvolver e verificar, sendo tambm mais simples modificar o projeto;
VHDL independente de tecnologia e fabricante, porm sabe-se que na prtica no independente de ferramenta de sntese e de simulao.
19
As desvantagens de se usar VHDL apontam, basicamente, para o aprendizado de uma
metodologia nova e complexa. Citamos desvantagens tais como:
Mudana de cultura;
Aprendizado e treinamento;
Escolha de uma ferramenta de desenvolvimento;
Circuito menos otimizado que esquemtico;
Ferramentas de sntese ineficientes.
3.2.1 Descrio Estrutural
Um sistema digital pode ser descrito como um mdulo com entradas e sadas, onde o valor
das sadas uma funo dos valores de entrada. A Figura 11 (a) ilustra esse conceito, onde o
mdulo F possui duas entradas A e B e uma sada Y. Em VHDL o mdulo F chamado de entidade
e as entradas e sadas so chamadas de portas.
Um modo de descrever a funo de um mdulo descrever a funo de seus sub-mdulos e
suas conexes. Cada sub-mdulo uma instncia de uma entidade, e as conexes que os conectam
so chamados de sinais. A Figura 11 (b) mostra como a entidade F pode ser formada por instncias
das entidades G, H e I. Este tipo de descrio chamada de descrio estrutural.
A
BYF
A
BYG
A
BYH
A
BYI
FA
B
Y
(a)
(b)
Figura 11 Exemplo em diagrama de uma descrio estrutural em VHDL
3.2.2 Descrio Comportamental
Em muitos casos no necessrio descrever a estrutura interna de um componente, uma
descrio que tenha o mesmo resultado funcional o suficiente. Esse tipo de descrio chamada
de descrio funcional ou comportamental.
Para ilustrar essa idia, suponha que a funo da entidade F seja um ou exclusivo. A
descrio comportamental de F poderia ser uma funo como Y = A . B + A . B .
20
3.2.3 Exemplo de Descrio VHDL
Nesta Seo, descreveremos um simples exemplo de um contador de dois bits.
Logo abaixo est a descrio da entidade. A entidade especifica a interface externa do
componente, incluindo os pinos de entrada e sada.entity cont2 is
port ( clock : in bit;q1, q0 : out bit);
end cont2;
Esse trecho de programa especifica uma entidade com uma entrada e duas sadas do tipo bit
que assume valores 0 ou 1.
A funo que um componente executa especificada na arquitetura do componente. O
trecho de programa abaixo especifica uma arquitetura comportamental para a entidade cont2.
architecture comportamental of cont2 isbegin
count_up: process (clock)variable count_value : natural := 0;
beginif clock = '1' and clockevent then
count_value := (count_value + 1) mod 4;q0
21
T_FLIPFLOP
CK Q
INVERTERA Y
T_FLIPFLOP
CK Q
CONT2
CLOCK Q0
Q1FF1
FF0
INV_FF0
BIT_0
BIT_1INV
Figura 12 Estrutura do componente Cont2
architecture estrutura of cont2 iscomponent t_flipflop
port (ck : in bit; q : out bit);end component;component inverter
port (a : in bit; y : out bit);end component;signal ff0, ff1, inv_ff0 : bit;
beginbit_0 : t_flipflop port map (ck => clock, q => ff0);inv : inverter port map (a => ff0, y => inv_ff0);bit_1 : t_flipflop port map (ck => inv_ff0, q => ff1);q0
22
3.3 Java
Java ([17], [25] e link [14]) uma linguagem de programao utilizada principalmente para
o desenvolvimento de aplicaes que rodem em ambientes distribudos, como por exemplo a
Internet, apesar de possibilitar aos programadores o desenvolvimento de aplicaes que rodem em
computadores isolados.
3.3.1 Mquina Virtual Java
Mquina hipottica (software) responsvel em interpretar e executar o bytecode gerado pelo
compilador da linguagem Java.
A Mquina Virtual Java [17] [25] dependente da plataforma, devido necessidade de
interpretar o bytecode e gerar instrues para a mquina real executar.
3.3.2 Java Communications API (CommAPI)
Pacote de comunicao em Java desenvolvido pela Sun MicroSystems (link [32]) que
permite o desenvolvimento de aplicaes com suporte a porta de comunicao serial RS-232C e
portas paralelas padro IEEE 1284.
3.3.3 Java Server Pages JSP
Tecnologia desenvolvida com o objetivo de facilitar o desenvolvimento de aplicaes Web
dinmicas, escritas em Java.
Java Server Pages (link [36]) consiste basicamente na construo de pginas Web utilizando
HTML para a definio da interface, e juntamente com o HTML existe a incluso de linhas de
cdigo Java, responsveis em definir a parte dinmica da aplicao. O cdigo Java identificado
atravs de indicadores especiais de bloco.
3.3.4 Compilador Just-in-time - JIT
A mquina virtual Java vem acompanhada opcionalmente de um compilador especial
denominado just-in-time compiler [17] [25] responsvel pela compilao dinmica dos bytecodes
em cdigos executveis. Utilizado como alternativa para trechos de programas onde o interpretador
Java deve executar muitas vezes, pois sabe-se que a execuo de um cdigo executvel binrio
muito mais rpida do que a sua execuo atravs da interpretao. Exemplo: bloco de cdigo dentro
de um lao.
23
4 Protocolos de Controle
A crescente demanda de comunicao, conectividade e fluxo de informaes impulsionou a
criao de vrios protocolos de comunicao. De acordo com as reas de aplicao para as quais os
protocolos so designados, eles podem ser diferenciados. O propsito dessa Seo mostrar as
mtricas usadas para escolher o protocolo a ser implementado neste trabalho.
A Seo 4.1 introduz o leitor ao conceito de protocolo de controle. A Seo 4.2 apresenta
caractersticas, parmetros e requisitos de protocolos em geral. A Seo 4.3 apresenta um resumo
com caractersticas principais de alguns dos protocolos estudados. A Seo 4.4 faz um resumo
comparativo entre todos os protocolos estudados.
4.1 Introduo
Protocolo a especificao de um conjunto de regras em que diversos equipamentos
respeitam para trocar informaes. Mais especificamente, protocolos de controle so empregados,
principalmente na indstria, como linguagem de comunicao entre os mdulos processadores
responsveis pelo controle de atuadores e monitorao de sensores. A Figura 13 ilustra esse
conceito. Dentro de cada mdulo processador que est ligado no meio de comunicao deve existir
um sub-mdulo (P de protocolo) que contm o algoritmo da linguagem que os processadores
entendem. Esse algoritmo chamado de protocolo de comunicao.
Figura 13 Modelo bsico de mdulos para automao
24
A rea de protocolos de controle tem ganho grande importncia devido ao crescimento do
mercado de automao (industrial, predial, domstica, de escritrio, entre outros). Outro fator
importante a taxa de crescimento da tecnologia dos dispositivos, que tem oferecido a cada ano
mais funcionalidade com menores preos. Devido a isso, o desenvolvimento de sensores e
atuadores inteligentes5 (Figura 14) tem sido impulsionado, exigindo a definio de padres para os
protocolos de comunicao. De um ponto de vista mais genrico, o mercado tem exigido solues
mais competitivas, que so caracterizadas por sistemas de controle altamente flexveis s
necessidades do consumidor. A chave para atingir essa meta a padronizao das interfaces de
comunicao.
Figura 14 Estrutura interna de um mdulo de automao inteligente
Quando vamos fazer uma pesquisa de protocolos de comunicao para ser implementado em
algum projeto, deve-se conhecer, a priori, a aplicao alvo. Hoje em dia existem em grande nmero
de protocolos disponveis. Cada um destes possui caractersticas que o protocolo do concorrente
no tem ou simplesmente para fins de proteger seu sistema e restringir o consumidor aos produtos
de um nico fabricante. Devido ao fato de termos muitos protocolos disponveis, os fechados6,
proprietrios e no padronizados tem perdido espao para os protocolos abertos, certificados e
padronizados.
Contudo, conhecer somente a aplicao do protocolo que ser desenvolvido no basta, pois
para uma aplicao especfica, ainda existiro dezenas de possibilidades. Algumas caractersticas
5 Com a alta taxa de integrao que, hoje em dia, dispositivos eletrnicos possuem, vivel a construo de sensores e atuadores inteligentes que incorporam dentro de um
nico chip elementos de memria, de protocolo e de processamento para verificar limites de sensores, fazer linearizao de sinais, etc.
6 sem especificao tcnica do protocolo.
25
tcnicas devem ser investigadas para se escolher corretamente o protocolo. A prxima Seo trata
justamente disso, explicando caractersticas tcnicas que devem ser estudadas.
4.2 Caractersticas e Requisitos de Protocolos
O estudo das caractersticas de protocolos depende muito da aplicao destes. Por exemplo,
se procurarmos por um protocolo para ser usado em uma grande indstria metalrgica esse
protocolo deve ter longo alcance para poder se estender por toda empresa, poder ligar vrios nodos,
ter grande imunidade a rudos usando tcnicas de deteco e correo de erros, ter alta
disponibilidade e tolerncia a falhas, uma vez que grandes valores e vidas humanas podem estar em
jogo. J um protocolo para aplicao de entretenimento, basicamente s usado dentro do ambiente
domstico, no necessita ter alta disponibilidade, precisa ter grande taxa de transferencia para
transportar vdeo e som, um alcance curto j ser o suficiente, compatibilidade entre vrios
fabricantes, entre outras caractersticas.
Esses dois exemplos citados acima, bem ortogonais, nos do idia que as caractersticas e
requisitos de um protocolo podem variar muito, dependendo exclusivamente de sua aplicao.
Porm, como dito na Seo anterior, conhecendo-se apenas a aplicao no se faz uma escolha
adequada de protocolo. A seguir descrevemos mais algumas caractersticas tcnicas que devem ser
avaliadas:
custo/benefcio da tcnica de cabeamento. A tcnica de cabeamento e conexo umdos itens que mais influenciam no custo total de instalao de uma rede;
custo de manuteno e facilidade de diagnosticar problemas;
confiabilidade as tcnicas de deteco e correo de erros so adequadas a suaaplicao? O ambiente onde a rede ser instalada possui muito rudo? Confiabilidade
pode ser aplicada aos dados, com tcnicas como CRC, e no meio de comunicao;
disponibilidade existem aplicaes onde paradas de sistema no so tolerveis. Umexemplo seria uma rede de processadores de um avio, onde a segurana de centenas
de pessoas est em jogo. Nesse tipo de aplicao, o protocolo deve conter tcnicas de
tolerncia a falhas visando minimizar a probabilidade de falhas do sistema;
flexibilidade capacidade de modificao do layout do sistema;
compatibilidade importante que vrios fabricantes suportem o protocolo escolhidopara que voc no fique dependendo de um s fabricante, tendo maior liberdade de
escolha de equipamentos e de suporte tcnico;
26
parametrizao um requisito diretamente relacionado com flexibilidade.Corresponde facilidade de insero de novos nodos na rede;
variabilidade de aplicaes o mesmo protocolo pode ser empregado em aplicaesdiferenciadas?
protocolos de alto nvel existem camadas de alto nvel (aplicao) para o protocolo?
metodologias, ferramentas para teste e diagnstico;
interface com PC;
drivers de hardware e software;
taxa de comunicao a taxa mxima de comunicao do protocolo compatvel como tempo de resposta do seu sistema?
tempo de latncia atende as suas necessidades?
tcnica de endereamento suporta broadcasting e multicasting?
metodologia de amostragem - amostragem baseada em polling ou baseada emeventos?
a rede ser multi-mestre ou com um nico mestre? Uma rede que suporta mltiplosmestres tem uma maior disponibilidade. Em uma rede com um nico mestre corre-se o
risco de, se o mestre falhar, todo o sistema entrar em colapso;
topologia barramento, anel, estrela, hierrquico, entre outros. Topologia estrelacionada com o nmero mximo de nodos da rede e com o comprimento mximo;
resposta em tempo real seu sistema exige resposta em tempo real?
tcnica de acesso ao meio redes com mltiplos mestres devem ter um algoritmo deacesso ao meio que evite colises e que, preferencialmente, tenha suporte a prioridade;
requisio remota um nodo pode pedir um dado para outro nodo na rede. Essacaracterstica til para se verificar se um nodo est em funcionamento;
confirmao de recebimento de pacotes por parte do destinatrio - reconhecimento(acknowledge);
sincronizao inter-processador deve-se manter sincronismo em uma rede ondedispositivos possuem velocidades diferentes;
27
nmero de mensagens nmero mximo de mensagens que o sistema suporta;
comprimento fsico da rede;
nmero de bytes de dados nmero mximo de bytes que um pacote pode transmitir;
facilidade de integrao um item relacionado ao custo total do sistema;
maior aceitao no mercado mais fcil encontrar suporte e pessoal tcnico;
potencial de proliferao;
padronizao verificar se o protocolo estudado certificado e padronizado;
Plug and Play maior facilidade de instalao.
4.3 Protocolos Analisados
Esta Seo tem por objetivo explicar resumidamente as caractersticas dos principais
protocolos analisados para a implementao deste trabalho. Muitos desses protocolos no possuam
documentao disponvel e gratuita, por isso no conseguimos detalh-los suficientemente. Porm
acreditamos que estes deveriam constar neste trabalho para que pudssemos fazer comparaes e
aprender mais sobre as caractersticas dos protocolos de controle. Essa Seo tambm
especialmente interessante para pessoas que estejam fazendo pesquisa de protocolos, pois neste
documento o leitor encontrar uma fonte com referncias resumidas de vrios protocolos,
facilitando seu trabalho de pesquisa.
Os protocolos analisados foram: EHS, BDLC, LON, EIB, X-10, CeBus e CAN. CAN
porm, ser explicado em detalhes no Captulo 5.
4.3.1 European Home Systems - EHS
O protocolo EHS foi criado em 1992 por uma comisso de grandes empresas europias do
ramo de eletrodomsticos [1] [2]. Esse esforo garantiu a criao de um protocolo aberto e com
uma vasta gama de aplicaes, permitindo que equipamentos de diferentes fabricantes
comuniquem-se de forma que possam compartilhar recursos.
Hoje em dia o protocolo j chegou a maturidade. J existem produtos em hardware e
software. As maiores empresas europias do ramo eletrodomstico j incluram EHS em seus
produtos.
28
A especificao completa deste protocolo chama-se EHS specification R1.2 e pode ser
encontrada nos links [23] [24] [25].
4.3.1.1 Arquitetura
O modelo de comunicao EHS semelhante a estrutura do modelo OSI. EHS especifica a
camada fsica, de enlace, de rede e de aplicao, conforme Figura 15.
Figura 15 Arquitetura do protocolo EHS
A camada de aplicao traduz a linguagem da aplicao em pacotes de dados capazes de
circular na rede.
A camada de rede est relacionada ao roteamento e endereamento dos pacotes.
A camada de enlace, dividida em MAC e LLC, gerencia a converso de bits, regras de
acesso a rede, recebimento e envio de pacotes e mecanismos de repetio.
Vrias camadas fsicas esto definidas devido ao grande nmero de aplicaes que o
protocolo abrange. Rede eltrica, infra-vermelho e rdio podem ser usados como canal de
comunicao de baixa velocidade sem a necessidade de cabeamento extra. Um exemplo seria
gerenciamento de aquecedores, ar condicionados e acionamentos remotos em geral. Par tranado e
cabo coaxial podem ser usados quando se requer alta velocidade, por exemplo, aplicaes de vdeo,
udio e segurana. As caractersticas de cada meio fsico suportado pelo protocolo so mostradas na
Tabela 1.
4.3.1.2 Caractersticas do Protocolo
Plug and Play;
29
Interoperabilidade;
Expansionabilidade e configurao automtica.
4.3.1.3 Meios Fsicos
Uma parte importante de um sistema de automao domstica o meio de comunicao. A
especificao EHS, verso 1.2, cobre seis meios para transportar informaes sendo que outros
meios ainda podero vir a ser acrescentados.
MeioFsico
ParTranado
tipo1TP1
ParTranado
tipo1TP2
CaboCoaxial
CX
Linha deEnergia
PL
RdioRF
Infra-Vermelho
IR
Aplicao Propsitogeral,
controle
telefonia,ISDN,dados,
controle
udio,Vdeo, TV,
dados,controle
controle telefonesem fio,controle
controleremoto
Taxa detransmisso
9.6 Kbps 64 Kbps 9.6 Kbps 2.4 Kbps 1.2 Kbps 1.1 Kbps
Acesso CSMA/CA CSMA/CD CSMA/CA CSMA/ack CT2 -Alimentao 35 V 35 V 15 V 230 Vac - -Codificao - TDM FDM - FDM -Topologia Livre barramento barramento livre livre livreUnidades 128 40 128 256 256 256Alcance 500 m 300 m 150/50 m casa 50/200 m sala
Tabela 1 Tipos de meios fsicos EHS
Os meios mais importantes para o protocolo so o linha de energia e par tranado (TP1). Em
um sistema onde o custo prioridade o uso de linha de energia tem uma grande vantagem em
relao a outros meios. No necessrio cabeamento extra, pois todas as casas possuem um
cabeamento da rede eltrica.
Vale comentar que o meio por linha de fora usa uma tcnica de deteco e correo de
erros chamada FEC (Forward Error Correction) que adiciona 6 bits de codificao para cada 8 bits
de dados. Tal redundncia necessria devido ao elevado nvel de rudo que esse meio possui. Os
outros meios possuem outro mtodo de deteco de falhas chamado CRC (Cycle Redundancy
Check).
4.3.1.4 Estrutura da Rede
EHS prov vrias implementaes de camadas fsicas. Com isso a estrutura da rede pode ser
formada por vrias sub-redes, sendo cada uma baseada em uma camada fsica. Para interligar todas
30
as sub-redes usam-se roteadores, formando um nico sistema de controle, como mostra Figura 16.
Gateways so usados para interligar a rede EHS em uma rede no EHS.
Figura 16 Estrutura da rede EHS
4.3.1.5 Formato dos Pacotes
No conseguimos um material que detalhasse a funo de cada campo, porm podemos
destacar o endereo de origem e destino do pacote, FCS como tcnica de deteco de falhas e a
prioridade da mensagem, como campos auto explicativos. A Figura 17 ilustra o formato do pacote
EHS.
Figura 17 Formato dos pacotes EHS
4.3.1.6 Funes do Gerenciamento de Rede
EHS prov e integra vrias funes de gerenciamento de rede. So explicados abaixo
algumas dessas funes.
Registro
Quando uma nova unidade instalada no sistema, a sua primeira funo executar o
processo de registro. O registro um processo automtico responsvel por carregar um novo
endereo fsico unidade.
Inscrio
31
Depois do processo de registro, o processo de inscrio ser iniciado. Durante essa etapa a
unidade recm instalada informa a todas outras unidades instaladas quais so suas funes. Essa
etapa necessria para que todo o sistema tenha conhecimento dos recursos disponveis de forma
que possa ser compartilhado.
Esses dois processos no necessitam de interveno do usurio, sendo uma das tcnicas do
protocolo para atender ao requisito plug and play.
4.3.1.7 Concluses
EHS um protocolo criado baseado nos requisitos e restries que automao domstica
exige. Porm, percebemos que se trata de um protocolo muito amplo e com vrias camadas de
implementao (aplicao, rede, enlace e fsico), por esse motivo no ser o protocolo selecionado
para este trabalho.
4.3.2 Byte Data Link Controller - BDLC
O mdulo Byte Data Link Controller (BDLC) um mdulo de comunicao serial que
permite ao usurio mandar e receber mensagens por uma rede Society of Automotive Engineers
(SAE) J1850.
Este protocolo foi desenvolvido especificamente para aplicaes automotivas, porm foi
estudado por possuir fcil acesso a documentao completa e gratuita, atravs do link [26], e ser
simples de implementar.
4.3.2.1 Caractersticas
Como caractersticas bsica podemos citar:
compatvel com SAE J1850, que um protocolo automotivo;
modulao Variable Pulse Width (VPW) de 10,4 Kbps;
filtro de rudo digital;
deteco de coliso;
gerao e verificao de Cyclic Redundancy Check (CRC);
dois modos de conservao de energia com wake-up automtico;
recebe e transmite blocos;
32
recebimento em quatro vezes a velocidade normal (41,6 Kbps).
4.3.2.2 Formato do Pacote
A funo dos blocos do pacote BDLC mostrada na Figura 18 e citada logo abaixo.
Figura 18 Formato do pacote BDLC
SOF incio do pacote (start of frame);
DATA bloco de dados. Este bloco deve conter pelo menos um byte de dados;
CRC - bits usados em controle de erros. O polinmio gerador x^8 + x^4 + x^3 +x^2 +1;
EOD fim dos dados (end of data) ;
IFR in-frame response. Explicado na Seo 4.3.2.3;
EOF fim do pacote (end of frame);
IFS separador entre pacotes (inter-frames separator).
4.3.2.3 In-Frame Response
In-Frame response especifica formas de troca de informaes entre transmissor e receptor.
BDLC suporta 4 modos diferentes que podem ser visualizados na Figura 19.
Abaixo segue uma descrio dos tipos de respostas de requisio de dados e mtodos de
reconhecimento (acknowledgement) existentes no protocolo SAE J1850:
Tipo 0 Dado enviado mas no requisitado resposta;
Tipo 1- Usado em broadcast. necessrio que um dos destinos responda para se validaro pacote enviado;
Tipo 2- Usado em broadcast. necessrio que todos os destinos respondam para sevalidar o pacote enviado;
Tipo 3 Usado em requisio de dados. Receptor retorna dados para o transmissor dopacote de requisio.
33
Figura 19 Tipos de in-frame response
4.3.2.4 Diagrama de Blocos
Os prximos itens desta Seo tratam da diviso interna do protocolo: Interface com CPU,
Gerenciador de protocolo, Interface MUX.
Interface com CPU
Esse bloco tem a funo bsica de fazer a interface do mdulo BDLC com a CPU. Ele
composto de cinco registradores que podem ser visualizados na Figura 20.
Figura 20 Interface com CPU
BCR1 (Control Register 1) configura e controla o BDLC. Suas funes incluem seleodo clock, habilitao de interrupes e indicao de mensagens que devem ser ignoradas.
BSVR (State Vector Register) indica o estado atual de operao do BDLC.
BCR2 (Control Register 2) controla parmetros de transmisso. Quando a CPU envia ourecebe um dado, esse dado passado byte a byte para essa interface sendo armazenado
temporariamente no registrador BDR (Data Register). Bytes que sero transmitidos pela
CPU devem ser primeiramente escritos no BDR para chegarem ao barramento. Bytes
recebidos do barramento sero lidos pela CPU tambm por esse registrador.
34
BARD (Analog Roundtrip Delay Register) Configura o BDLC para os diferentes tipos detransceivers.
Gerenciador de Protocolo
A Figura 21 ilustra a estrutura interna do gerenciador de protocolo.
Figura 21 Gerenciador de pr