DOMOITECH – Domótica com Protocolo EIB 2006 / 2007 Departamento de Engenharia Electrotécnica e de Computadores Mestrado Integrado em Engenharia Electrotécnica e de Computadores Faculdade de Engenharia da Universidade do Porto Trabalho realizado por: Diana Sobreiro da Costa Palma – ee05241 Duarte Gonçalves Pinto – ee01163 http://domoitech.pt.vu Faculdade de Engenharia da Universidade do Porto DOMOITECH – Domótica com Protocolo EIB 2006 / 2007 Departamento de Engenharia Electrotécnica e de Computadores Julho de 2007 Projecto realizado sob a supervisão de Prof. Dr. Mário de Sousa, do Departamento de Engenharia Electrotécnica e de Computadores da Faculdade de Engenharia da Universidade do Porto Trabalho realizado por: Diana Sobreiro da Costa Palma – ee05241 Duarte Gonçalves Pinto – ee01163 Resumo Este projecto assenta na ideia de criar um sistema Domótico de baixo custo, em relação às soluções existentes no mercado, e que seja compatível com essas mesmas soluções. Neste relatório, será descrito como inicialmente pensamos em várias soluções e tentamos achar a que para nós é a mais económica e compatível com soluções existentes no mercado. Esta solução difere das existentes, porque ao invés de um cliente comprar o seu sistema Domótico por partes, a solução que apresentamos é para automatizar no mínimo uma divisão da casa. Domoitech – Domótica com protocolo EIB – 2007 XIII Prefácio Os sistemas Domóticos existentes no mercado têm um custo elevado, como por exemplo, um simples interruptor de parede que funciona em X-10, tem um custo superior a 50€. A motivação para a realização deste projecto surgiu na ideia de criar um sistema Domótico de baixo custo e compatível com outros equipamentos que existam em mercado. Numa fase inicial, realizamos um estudo de soluções existentes no mercado e escolhemos a tecnologia e a arquitectura do sistema, tentando sempre minimizar os custos. Em primeiro lugar gostaríamos de agradecer às nossas famílias, especialmente aos pais e irmãos, por terem estado sempre presentes e nos terem apoiado ao longo deste percurso escolar. Ao nosso orientador, professor Mário de Sousa agradecemos a sua disponibilidade e orientação ao longo deste projecto. Aos nossos amigos e colegas que nos apoiaram neste percurso universitário e que partilharam connosco as vivências mais importantes e estiveram sempre ao nosso lado. Domoitech – Domótica com protocolo EIB – 2007 XIII Índice 1 Introdução ...........................................................................................................13 1.1 Protocolos utilizados em Domótica .............................................................15 1.1.1 Protocolo Lonworks.............................................................................17 1.1.2 Protocolo X-10.....................................................................................19 1.1.3 Protocolo EHS .....................................................................................21 1.1.4 Protocolo BatiBUS...............................................................................23 1.1.5 Protocolo EIB ......................................................................................25 1.1.6 Protocolo KNX.....................................................................................27 1.2 Objectivos ....................................................................................................29 1.3 Escolha do Protocolo.........................................................................................30 1.4 Escolha do Meio Físico .....................................................................................32 2 Descrição detalhada do Protocolo EIB ..............................................................33 2.1 Camada de Aplicação ..................................................................................35 2.1.1 Serviços EIB.........................................................................................36 2.1.1.1 Serviço GroupValue_Read...............................................................38 2.1.1.2 Serviço GroupValue_Res .................................................................38 2.1.1.3 Serviço GroupValue_Write..............................................................39 2.1.2 Objectos EIB ........................................................................................39 2.1.2.1 EIS 1 - Switching..............................................................................40 2.1.2.2 EIS 7 – Drive Control ......................................................................40 2.2 Camada de Transporte ................................................................................43 2.3 Camada de Rede ..........................................................................................43 2.4 Camada de Ligação Lógica .........................................................................45 Domoitech – Domótica com protocolo EIB – 2007 XIII 2.5 3 4 5 Camada Física .............................................................................................45 Recursos de Hardware ........................................................................................46 3.1 Microcontrolador PIC18F452.....................................................................46 3.2 XPORT .........................................................................................................48 Desenvolvimento Hardware................................................................................51 4.1 Estrutura do hardware.................................................................................51 4.2 Placa Principal ............................................................................................53 4.3 Placa Saída a Relés .....................................................................................55 4.4 Placa Saída a Triac’s...................................................................................56 4.5 Comando Infravermelhos.............................................................................57 4.6 Programador................................................................................................58 Desenvolvimento Software..................................................................................59 5.1 Estrutura do Software ..................................................................................59 5.1.1 Divisão da Stack por camadas.............................................................61 5.1.2 Descrição dos processos camada física. .............................................63 5.1.2.1 Protocolo RC5 .................................................................................64 5.1.2.2 Mecanismo Recepção de tramas......................................................67 5.1.3 5.2 Descrição dos processos camada ligação de dados............................69 Camada Aplicação.......................................................................................70 5.2.1 Serviços EIB implementados................................................................71 5.2.2 EIS implementados...............................................................................72 5.3 Estruturação de ficheiros.............................................................................73 6 Integração do Sistema.........................................................................................75 7 Conclusão ............................................................................................................82 7.1 Custo do Projecto ........................................................................................83 Domoitech – Domótica com protocolo EIB – 2007 XIII 7.2 Futuros Melhoramentos...............................................................................87 Referências ..................................................................................................................88 Anexo A: Descrição Protocolo X-10 ..........................................................................89 Anexo B: Esquema Eléctrico Placa Central..............................................................92 Anexo C: Esquema Eléctrico Placa Saída em Relés .................................................93 Anexo D: Esquema Eléctrico Placa Saída em Triac’s ..............................................94 Anexo E: Esquema Eléctrico Programador ..............................................................95 Domoitech – Domótica com protocolo EIB – 2007 XIII Índice de Figuras Ilustração 1 – Esquema de disposição do sistema pela casa .................................................................14 Ilustração 2 - Trama Batibus..................................................................................................................24 Ilustração 3 – Modelo do Sistema KNX .................................................................................................31 Ilustração 4 – Modelo Camadas OSI vs Modelo Camadas EIB.............................................................34 Ilustração 5 - Formato Trama EIB.........................................................................................................35 Ilustração 6 - Formato de aplicação ......................................................................................................36 Ilustração 7 – Códigos dos serviços EIB................................................................................................37 Ilustração 8 – Exemplo Trama GroupValue_Read ................................................................................38 Ilustração 9 - Exemplo Trama GroupValue_Res ...................................................................................39 Ilustração 10 – Exemplo Trama GroupValue_Write..............................................................................39 Ilustração 11 – EIS Switching ................................................................................................................40 Ilustração 12 – EIS Drive Control - Move .............................................................................................41 Ilustração 13 – EIS Drive Control – Step...............................................................................................41 Ilustração 14 – Máquina de estados do Drive Control ..........................................................................42 Ilustração 15 – Interface com a camada de transporte entre os dispositivos EIB .................................43 Ilustração 16 – Interface com a camada de rede entre os dispositivos EIB...........................................44 Ilustração 17 – Formato da trama NPDU .............................................................................................44 Ilustração 18 – Interface com a camada de ligação lógica entre os dispositivos EIB ...........................45 Ilustração 19 – Diagrama de pinos do PIC18F452 ...............................................................................47 Ilustração 20 – Dimensões Xport ...........................................................................................................48 Ilustração 21 – Atribuição endereço IP da XPORT ...............................................................................49 Ilustração 22 – Configuração Porta Série e Ethernet ............................................................................50 Ilustração 23 - Diagrama de blocos da estrutura de hardware .............................................................52 Ilustração 24 – Placa Principal .............................................................................................................53 Ilustração 25 – Placa Saída Relés..........................................................................................................55 Ilustração 26 – Placa Saída a Triac’s....................................................................................................56 Domoitech – Domótica com protocolo EIB – 2007 XIII Ilustração 27 – Placa Programador.......................................................................................................58 Ilustração 28 – Estrutura do software....................................................................................................60 Ilustração 29 – Diagrama de blocos das camadas.................................................................................62 Ilustração 30 – Codificação de um bit RC5 ...........................................................................................65 Ilustração 31 –Trama RC5 .....................................................................................................................65 Ilustração 32 – Sequência de duas tramas RC5 .....................................................................................65 Ilustração 33 – Modelação de um bit .....................................................................................................66 Ilustração 34 – Diagrama de descodificação das tramas RC5 ..............................................................66 Ilustração 35 – Passagem de vector linear a circular............................................................................67 Ilustração 36 – Incremento do apontador ApPrimeiro ..........................................................................68 Ilustração 37 – Salto do apontador para a posição inicial ....................................................................68 Ilustração 38 – Diagrama de blocos da aplicação.................................................................................70 Ilustração 39 – Estrutura de ficheiros do programa ..............................................................................73 Ilustração 40 – Exemplo de uma instalação do Domoitech ...................................................................75 Ilustração 41 – Expositor do projecto ....................................................................................................76 Ilustração 42- Imagem da parte traseira do expositor...........................................................................77 Ilustração 43 - Esquema servidor web ...................................................................................................78 Ilustração 44 –Página web de autenticação...........................................................................................78 Ilustração 45 – Página web de navegação.............................................................................................79 Ilustração 46 – Página web de uma divisão...........................................................................................79 Ilustração 47 – Aplicação feita em Lazarus ...........................................................................................80 Ilustração 48 - Exemplo de uma trama de endereço X-10 .....................................................................91 Ilustração 49 - Exemplo de uma trama de comando X-10 .....................................................................91 Domoitech – Domótica com protocolo EIB – 2007 XIII Índice de Tabelas Tabela 1 – Protocolos de Rede utilizados na Domótica.........................................................................16 Tabela 2 – Custo da placa principal ......................................................................................................83 Tabela 3- Custo placa relés....................................................................................................................84 Tabela 4- Custo placa triac’s .................................................................................................................84 Tabela 5- Orçamento para uma casa utilizando Domoitech..................................................................85 Tabela 6 – Orçamento para uma casa utilizando a solução da Siemens ...............................................86 Tabela 7 – Códigos de casa....................................................................................................................89 Tabela 8 - Códigos de unidades e funções .............................................................................................90 Domoitech – Domótica com protocolo EIB – 2007 XIII Notação e Glossário Esta secção apresenta os conceitos (glossário de termos) ordenados alfabeticamente e acrónimos utilizados no corpo do texto do relatório. EIB - European Installation Bus Association LON - Local Operating Network node - Localização de um dispositivo na rede LonWorks. Pode ter acima de 255 variáveis de rede definidas bps - Bits por segundo octetos - Oito bits, equivalente a um byte multicast - Comunicação de muitos para muitos broadcast - Comunicação de todos para todos HVAC - Heating, Ventilation, Air-conditioning and Cooling BIM - Bus Interface Modules BCU - Bus coupling units TP - Sigla de Twisted pair , Par entrançado E/S - Entradas e Saídas ms - Milissegundos EIS - EIB Interworking Standards Dispositivo - Refere-se a uma saída que pode ser ligada a uma lâmpada ou estore Router - É um equipamento usado para fazer a comutação de tramas entre redes provendo a comunicação entre computadores. Switch - É um equipamento usado para fazer o encaminhamento de tramas entre computadores distantes entre si. Fat Client - É uma aplicação cliente numa arquitectura do tipo cliente-servidor e que tipicamente realiza funções e não precisa de um servidor central. CC - Corrente/Tensão Contínua CA - Corrente/Tensão Alternada Domoitech – Domótica com protocolo EIB – 2007 XIII 1 Introdução A Domótica é uma tecnologia recente que permite a gestão de todos os recursos habitacionais. O termo “Domótica” resulta da junção da palavra “Domus” (casa) com “Telemática” (electrónica + informática). São estes dois últimos elementos que, quando utilizados em conjunto, rentabilizam o sistema, simplificando a vida diária das pessoas satisfazendo as suas necessidades de comunicação, de conforto e segurança. Quando a Domótica surgiu (com o primeiros edifícios, nos anos 80) pretendia-se controlar a iluminação, condições climáticas, a segurança e a interligação entre os 3 elementos. Nos nossos dias, a ideia base é a mesma, a diferença é o contexto para o qual o sistema está pensado: já não um contexto militar ou industrial mas doméstico. Apesar de ainda ser pouco conhecida e divulgada, mas pelo conforto e comodidade que pode proporcionar, a Domótica promete ter muitos adeptos. A Domótica utiliza vários elementos, que normalmente são independentes, de uma forma sistémica. Vai aliar as vantagens dos meios electrónicos aos informáticos, de forma a obter uma utilização e uma gestão integrada dos diversos equipamentos de uma casa. A Domótica vem tornar a vida mais confortável, mais segura e até mais divertida! Vem permitir que as tarefas mais rotineiras e aborrecidas sejam executadas automaticamente. No manuseamento do sistema poderá faze-lo de acordo com as suas próprias necessidades. Poderá optar por um manuseamento mais ou menos automático. Nos sistemas passivos o elemento reage só quando lhe é transmitida uma ordem, dada directamente pelo utilizador (interruptor) ou p Nos sistemas mais avançados, com mais inteligência, não só interpreta parâmetros, como reage ás circunstâncias (informação que é transmitida pelos sensores), por exemplo detectar que uma janela está aberta e avisa o utilizador, ou que a temperatura está a diminuir e ligar o aquecimento. O controlo remoto de casas de habitação deixa de ser uma utopia. A Domótica permite o acesso às funções vitais da casa, como aquecimento, electrodomésticos, alarme, fechaduras das portas, quer seja através de um comando remoto, da Internet ou do seu telemóvel. [1] Domoitech – Domótica com protocolo EIB - 2007 13 Existem algumas soluções no mercado, mas os produtos são ainda muito caros. O principal objectivo deste projecto é criar um sistema de controlo de dispositivos existentes na casa apresentando uma solução mais económica. Analisando várias opções e arquitecturas, optamos por uma solução descentralizada, composta por uma placa com os sensores e actuadores que será colocada em cada divisão da casa e que estarão ligadas num bus que contém todas as placas e poderá ter um computador central que funciona como servidor web, permitindo assim o acesso pelo exterior de forma a controlar remotamente os equipamentos. Esta arquitectura é melhor que uma arquitectura centralizada na medida em que não é necessário utilizar um servidor central para gerir todas as placas e assim não se tinha o problema do servidor falhar, toda a rede deixava de funcionar. Isto para não falar de que um computador central para gerir a rede era mais um custo acrescido. A figura seguinte ilustra a disposição das várias placas pelas divisões e a sua ligação em rede a um computador servidor que poderá ou não ser utilizado: Ilustração 1 – Esquema de disposição do sistema pela casa Domoitech – Domótica com protocolo EIB - 2007 14 1.1 Protocolos utilizados em Domótica A gestão da rede que será utilizada para interligar as placas e um Computador servidor, é uma questão complexa; requer, em particular, a realização de um grande número de funções bem diferenciadas e com diversos graus de dificuldade. A escolha das regras de comunicação (protocolo) entre os dispositivos da rede, terá de ser adequada para o sistema em causa. É grande a variedade de protocolos standards direccionados para a Domótica. É necessário diferenciar quais os que são proprietários e os de alianças ou grupos de trabalho e ainda quais são livres e abertos. Cada protocolo pode utilizar um ou vários meios físicos e como tal, numa fase inicial não é muito importante a escolha do meio físico. O nível inferior físico é a junção das camadas de rede, ligação de dados e física do modelo OSI, e diz respeito a que meio físico iremos utilizar e que pode ser independente das camadas superiores. Possíveis meios físicos a utilizar é o bluetooth, wifi, modbus, rádio-frequência, par-entrançado, infravermelhos, corrente eléctrica, RS232, RS485, ethernet, S.N.A.P.... A camada de aplicação é onde se situa o protocolo de comunicação. A escolha do protocolo terá de ser bem analisada. Os protocolos mais utilizados actualmente na Domótica são o X-10 e o EIB/KNX. A tabela seguinte apresenta uma breve descrição de alguns Protocolos standards utilizados na Domótica [3] : Protocolos de Rede - Alianças e Grupos de Trabalhos Standard Meio Físico Descrição BatiBUS Par Entrançado Sensores de união e actuadores para construir sistemas que controlem HVAC (Ar Condicionado), sistemas de segurança e acesso. Em convergência com EIB e EHS para KNX. CEBus (Consumer Electronics Bus) Todos O Standard CEBus (EIA-600) é um protocolo criado pela Associação de Industrias Electrónicas (EIA) para ser possível a interligação e comunicação entre dispositivos electrónicos da casa. Domoitech – Domótica com protocolo EIB - 2007 15 EIB (European Installation Bus) Par Entrançado Sensores e actuadores para construir sistemas que controlem HVAC (Ar Condicionado), sistemas de segurança e acesso. Em convergência com EHS e BatiBus para KNX. EHS (European Home System) Todos Uma colaboração entre industrias e governos Europeus sobre Domótica. Entre alguma das suas missões a EHSA tem o objectivo de ser um standard na Europa de um BUS comum (EHS). Em convergência com EIB e BatiBus para KNX. HomeRF (Home Radio Frequency Working Group) RF A missão do grupo de trabalho HomeRF é tornar possível uma vasta gama de produtos electrónicos de consumo que operem entre si, estabelecendo uma especificação aberta para comunicações digitais de RF (sem licença), para PC,s e produtos electrónicos de consumo em qualquer sitio e arredores da casa. LonMark Interoperability Association Todos A associação LonMark tem a missão de integrar facilmente dispositivos baseados em redes LonWorks, fazendo uso de ferramentas e componentes standards. ZIGBEE RF Pensa-se que este pode ser um dos standards que irá ser bastante utilizados no mundo da domótica. É uma versão melhorada do HomeRF e destinada a ambientes industriais. Protocolos de Rede - Proprietários Lonworks Echelon Corp. Todos Redes de controlo comerciais e para a casa. Uma rede LonWorks é grupo de dispositivos trabalhando juntos para sensorizar, monitorizar, comunicar, e de algumas maneiras controlar. É muito parecido com uma LAN de PC,s. X-10 Corrente eléctrica/RF O protocolo mais utilizado na domótica, utiliza a rede eléctrica e facilita o controlo de dispositivos domóticos sem instalação de qualquer fio em casa, por utilizar a instalação de rede eléctrica já existente. Tabela 1 – Protocolos de Rede utilizados na Domótica Desta vasta lista de protocolos, apenas estudamos os mais encontrados em sistemas existentes no mercado que são: Lonworks, X10, EHS, BatiBUS, EIB e KNX. Domoitech – Domótica com protocolo EIB - 2007 16 1.1.1 Protocolo Lonworks LonWorks é uma plataforma de trabalho em rede criada especificamente para dirigir-se ao desempenho, à confiabilidade, à instalação, e às necessidades originais da manutenção de aplicações de controlo. A plataforma é construída num protocolo de largura de banda baixo criado por Echelon Corporation para dispositivos de trabalho em rede utilizando meios físicos como o twisted pair, os powerlines, o sistema de fibra-óptica, e o RF. É bastante utilizado para a automatização de várias funções dentro dos edifícios, tais como a iluminação e os sistemas HVAC. [1] O protocolo de comunicação (LonTalk) implementa vários serviços que fornecem robustez e eficiência de comunicação. As principais vantagens deste protocolo são: • O projectista de produtos compatíveis com LONWORKS não precisa conhecer detalhadamente a informação que circula numa rede. • Fornece aos instaladores de redes LONWORKS, uma enorme flexibilidade em seleccionar e configurar os nós de uma rede • Assegura a previsibilidade do comportamento de uma rede, sob todas as circunstâncias. O êxito que o LonWorks tem tido em aplicações profissionais nas quais importa muito mais a fiabilidade e a robustez que o preço em si, deve-se a que desde a origem oferecem uma solução com arquitectura descentralizada, ponto-a-ponto, que permite distribuir a inteligência entre os sensores e os actuadores instalados e que cobre desde o nível físico até ao nível de aplicação a maioria dos projectos de redes de controlo. Qualquer dispositivo LonWorks, ou nodo, está baseado num microcontrolador especial chamado Neuron Chip. Tanto este circuito integrado como o firmware que implementa o protocolo LonTalk foram desenvolvidos pela Echelon no ano de 1990. Em relação ao Neuron Chip podemos salientar: • Tem um identificador único, o Neuron ID, que permite direccionar qualquer nodo de forma unívoca dentro de uma rede de controlo LonWorks. Este Domoitech – Domótica com protocolo EIB - 2007 17 identificador, com 48 bits, é gravado na memória EEPROM durante o fabrico do circuito. • Tem um modelo de comunicação que é independente do meio físico sobre o qual funciona, isto é, os dados podem transmitir-se sobre cabos de pares do tipo telefónico, correntes portadoras, fibra óptica, radiofrequência, infravermelhos e cabo coaxial, entre outros. • O firmware que implementa o protocolo LonTalk, proporciona serviços de transporte e routing ponto-a-ponto. Estes circuitos comunicam entre si enviando telegramas que contêm a direcção do destinatário, informação para o routing, dados de controlo assim como os dados da aplicação do utilizador e um checklist como código detector de erros. Todas as comunicações de dados são iniciadas num Neuron Chip. Um telegrama pode ter até 229 octetos de informação para aplicação distribuída. Os dados podem existir sob duas formas: As mensagens explícitas são a forma mais simples de enviar e receber dados entre duas aplicações residentes em dois Neuron Chip do mesmo segmento LonWorks. As variáveis de rede proporcionam um modelo estruturado para a troca automática de dados distribuídos num segmento LonWorks. São menos flexíveis que as mensagens explícitas mas evitam que o programador da aplicação distribuída esteja dependente dos detalhes das comunicações. Meio Físico O Neuron Chip proporciona uma porta específica de cinco pinos que pode ser configurada para actuar como interface de diversos transmissores-receptores de linha e funcionar a diferentes velocidades binárias. O LonWorks pode funcionar sobre RS-485 com isolamento óptico, acoplado a um cabo coaxial ou de pares entrançados, sobre correntes portadoras, fibra óptica e inclusivamente radiofrequência ou infravermelhos. O transmissor-receptor é encarregado de adaptar os sinais do Neuron Chip aos níveis de que necessita cada meio físico. [4] Domoitech – Domótica com protocolo EIB - 2007 18 1.1.2 Protocolo X-10 O X-10 é o protocolo mais antigo usado nas aplicações domóticas. Foi desenvolvido entre 1976 e 1978 com o objectivo de transmitir dados por linhas de baixa tensão (110V nos EUA e 230V na Europa) a muito baixa velocidade (60 bps no EUA e 50 bps na Europa) e com custos muito baixos. Ao usar as linhas eléctricas da habitação, não se torna necessário ter novos cabos para ligar os dispositivos. Graças ao seu amadurecimento (mais de 20 anos no mercado) e à tecnologia implementada, os produtos X-10 têm um preço muito competitivo sendo líderes no mercado residencial Norte-Americano com as instalações a serem realizadas por electricistas sem conhecimentos de automação ou informática ou até pelos próprios utilizadores. O X-10 é de momento a tecnologia mais acessível para a realização de uma instalação domótica não muito complexa. Contudo, tem a desvantagem de ser um protocolo pouco robusto. Meio Físico O protocolo X-10 usa uma modulação muito simples quando comparado com as que são usadas noutros protocolos de controlo por correntes portadoras. O Transmissor/Receptor do X-10 está dependente do ciclo da onda sinusoidal de 50hz para introduzir um instante depois desta passar pelo zero um sinal muito curto numa frequência fixa. Pode introduzir-se este sinal nos ciclos positivo ou negativo da onda sinusoidal. A codificação de um bit 1 ou de um bit 0, depende de como este sinal é emitido nos semiciclos. O 1 binário é representado por um impulso de 120 kHz durante 1 milissegundo e o 0 binário é representado pela ausência desse impulso de 120 kHz. Num sistema trifásico o impulso de 1 milissegundo é transmitido três vezes para que coincida com a passagem pelo zero das três fases. Como tal, o tempo de 1 bit coincide com os 20msg que dura o ciclo do sinal, de forma a que a velocidade binária de 50 bps é imposta pela frequência da rede eléctrica que temos na Europa. A transmissão completa de um telegrama X-10 necessita de onze ciclos de corrente. A trama divide-se em três campos de informação: - Dois ciclos representam o Código de Início Domoitech – Domótica com protocolo EIB - 2007 19 - Quatro ciclos representam o Código de Casa (letras de A-Z) - Cinco ciclos representam o Código Numérico (1-16) ou o Código de Função (acender a luz, apagar a luz, variar a luz, etc...). Para aumentar a fiabilidade do sistema, esta trama, (Código de Inicio, Código de Casa e Código de função ou numérico) transmite sempre duas vezes, separadas por três ciclos completos de corrente. Há uma excepção, nas funções de variação de intensidade é transmitido de forma contínua (pelo menos duas vezes) sem separação entre tramas. Protocolo Existem três tipos de dispositivos X-10: os que só podem transmitir ordens, os que só as podem receber e os que as podem receber e enviar. Os transmissores podem direccionar até 256 receptores. Os receptores vêm dotados de dois pequenos comutadores giratórios, um com 16 letras e o outro com 16 números, que permitem identificar uma direcção das 256 possíveis. Numa mesma instalação pode haver vários receptores configurados com a mesma direcção, todos realizam a função pré-designada, desde que um transmissor envie um telegrama com esta direcção. Evidentemente qualquer receptor pode receber ordens de diferentes transmissores. Os dispositivos bidireccionais, têm a capacidade de responder e confirmar a realização correcta de uma ordem (feedback), a qual pode ser muito útil quando o sistema X-10 estiver ligado a um programa de visualização que mostre os estados em que se encontra a instalação. [4] No Anexo A encontra-se uma descrição pormenorizada do tipo de tramas do protocolo e as tabelas contendo os códigos. Domoitech – Domótica com protocolo EIB - 2007 20 1.1.3 Protocolo EHS O protocolo EHS (European Home System) foi uma das invenções que a indústria europeia no ano de 1984, apoiada pela Comissão Europeia para criar uma tecnologia que permitia a implantação da domótica no mercado residencial do forma massiva. O resultado foi a especificação do EHS no ano de 1992. Esta baseada numa topologia de camadas OSI em quais se especificam os níveis: físico, ligação de dados, rede e de aplicação. Desde o início estiveram envolvidos: os fabricantes europeus de electrodomésticos mais importantes, empresas de electricidade, operadoras e telecomunicações e os fabricantes de equipamento eléctrico. A ideia era criar um protocolo aberto que permitiria cobrir as necessidades de interligação dos produtos de todos os fabricantes e provedores de serviços. Tal como foi pensado, o objectivo da EHS é cobrir as necessidades de automatização da maioria das vivendas europeias cujos proprietários que não se podem dar ao luxo de utilizar sistemas mais potentes e mais caros devido à mão de obra especializada que exigem essas instalações. O EHS vem a cobrir, por prestações e objectivos, a parcela que têm no CEbus norte-americano e o HBS japonês Nivel Físico Durante os anos de 1992 a 1995 a EHSA suportou o desenvolvimento de componentes electrónicos que implementaram a primeira especificação. Como resultado nasceu um circuito integrado da ST-Microelectronics (ST7537HS1) que permitia transmitir dados por um canal série assíncrono através das linhas de baixa tensão das vivendas (ondas portadoras ou "powerline communications"). Esta tecnologia, baseada na modulação FSK, consegue velocidades superiores a 2400 bps e também podem utilizar cabos de pares entrançados como suporte de o sinal. Actualmente, estão a ser utilizados os seguintes meios físicos: - PL-2400: Ondas Portadoras a 2400 bps. - TP0: Par Entrançado a 4800 bps (idêntico ao nível físico do BatiBUS). Domoitech – Domótica com protocolo EIB - 2007 21 - TP1: Par Entrançado/Coaxial a 9600 bps. - TP2: Par Entrançado a 64 Kbps. - IR-1200: Infravermelhos a 1200 bps. - RF-1100: Radiofrequência a 1100 bps. Protocolo Este protocolo está totalmente aberto, isto é, qualquer fabricante associado à EHSA pode desenvolver os seus próprios produtos e dispositivos que implemente o EHS. Com uma Plug&Play, é pretendido contribuir para as seguintes vantagens aos utilizadores finais: - Compatibilidade total entre dispositivos EHS. - Configuração automática dos dispositivos, mobilidade dos mesmos e ampliação fácil das instalações. - Compartilhar o mesmo meio físico entre diferentes aplicações sem interferir entre elas. Cada dispositivo EHS tem associada uma subdirecção única dentro do mesmo segmento de rede que para além de identificar univocamente a um nodo também leva associada informação para receptor dos telegramas por diferentes segmentos de rede EHS. Depois da aparição de diversos produtos e soluções baseadas em EHS, esta tecnologia está a convergir juntamente com o EIB e o BatiBUS para um standard europeu chamado KNX. [5] Domoitech – Domótica com protocolo EIB - 2007 22 1.1.4 Protocolo BatiBUS Inicialmente projectado para interligar sensores inteligentes, actuadores e unidades terminais de controlo, num edifício, o sistema BatiBUS foi criado em 1988, em França, por Merlin Gerin, AIRELEC, EDF e LANDIS & GYR. Foi também o primeiro bus de campo a aparecer no mercado. Em 1989, as referidas companhias decidiram criar o BCI (BatiBUS Club International) com o intuito de desenvolver produtos que comunicassem sobre BatiBUS. Dotaram-no também de um conjunto completo de ferramentas de apoio. Hoje em dia, o BCI já tem mais de 80 parceiros em muitos países, contando com seis delegações nacionais (Espanha, França, Grã-Bretanha, Itália, Holanda e "outros países"). O BCI escolheu o LCIE (Laboratoire Central des Industries Electriques) para a certificação dos produtos, a qual permite garantir a conformidade à norma de referência do protocolo BatiBUS e a inter operacionalidade de produtos diferentes sobre BatiBUS. Trata-se de um bus único que permite a intercomunicação entre todos os módulos (CPUs, sensores e actuadores) do sistema de controlo de aquecimento, ar condicionado, iluminação, etc. O suporte físico do BatiBUS é um simples par entrançado, isolado ou não, dependendo do tipo de ambiente electromagnético, que alimenta os sensores que lhe estão acoplados. Um único cabo BatiBUS é suficiente para controlar todas as operações no mesmo edifício e permite alimentar dispositivos que não consumam mais de 3 mA. O BatiBUS pode usar qualquer topologia de rede: bus, estrela, token-ring, combinações destas, etc. A sua arquitectura flexível torna o sistema fácil de aumentar. O BatiBUS usa um protocolo aberto, baseado em CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance), descrito nas normas francesas NFC 46620 e secções seguintes, nas normas europeias (CENELEC) e mundiais (ISO/IEC JTC 1 SC25), operando de uma forma distribuída sem um ponto de controlo central. Todos os módulos podem comunicar desde que a linha se encontre disponível. São identificados por endereços BatiBUS, os quais são definidos na altura da instalação, Domoitech – Domótica com protocolo EIB - 2007 23 com a ajuda de selectores rotativos, interruptores ou teclados com displays. Para sistemas mais complexos, o controlo pode ser programado a partir de um módulo de comando central. Sempre que se torne necessário modificar o posicionamento dos módulos ou das funções usadas, basta mudar o endereço ou ligar um componente adicional ao bus. Os dispositivos comunicam entre si a uma taxa de transmissão de 4800 bps. A informação transmitida no bus é descrita em termos de tramas como a da figura seguinte: Ilustração 2 - Trama Batibus O campo tipo da mensagem descreve o conteúdo da trama, indicando se ela contém, por exemplo, uma medida de temperatura, o estado de entrada binária, o comando de uma saída binária, etc; o segundo campo indica quais os tipos de dispositivos que transmitem/recebem a trama (sensor de temperatura, interruptores, etc); o terceiro campo indica os endereços físicos dos dispositivos que transmitem/recebem a trama; o campo de dados contém os dados da trama (permite a transmissão de um máximo de 25 bytes por trama). Finalmente o campo check permite evitar os erros de comunicação. [6] Domoitech – Domótica com protocolo EIB - 2007 24 1.1.5 Protocolo EIB O EIB é um protocolo de comunicação desenvolvido por um conjunto de empresas líderes no Mercado Europeu do material eléctrico com o objectivo declarado de criar um sistema que constitua uma barreira às importações de produtos e sistemas semelhantes que estavam e estão sendo produzidos nos mercados Japonês e dos Estados Unidos da América onde estas tecnologias possuem, melhor dizendo possuíam, um grau de maturidade superior ao produzido na Europa. O objectivo era criar um standard Europeu que permita a comunicação entre todos os dispositivos de uma instalação, esteja ela numa casa ou num edifício de escritórios. O EIB possui uma arquitectura descentralizada. Ele define uma relação elemento – a – elemento entre os dispositivos, o que permite distribuir a inteligência entre os sensores e actuadores instalados. A EIBA é uma associação actualmente com 114 membros, empresas lideres no Mercado do material eléctrico, que se iniciou em 1990, com 15 membros apenas, para implantar o uso o sistema de instalação inteligente EIB. A EIBA tem sede em Bruxelas e os seus membros cobrem cerca de 90% do negócio do material eléctrico na Europa. As principais áreas de actuação desta associação são: • Estabelece as directrizes técnicas para o sistema e produtos EIB, assim como estabelecer os procedimentos de ensaio e certificação de qualidade e mandar realizar esses mesmos ensaios • Divulga o conhecimento e experiências das empresas que trabalham com o EIB, assim como dos novos produtos e/ou inovações. • Única entidade a poder atribuir a marca registada EIB aos produtos e aos fabricantes seus associados. • Colabora activamente com outros organismos europeus e internacionais em todas as fases de normalização e adaptação do EIB ás normas internacionais. • Participa na iniciativa de "convergência" KONNEX, juntamente com o BCI (Batibus) e a EHSA (EHS). [4] Domoitech – Domótica com protocolo EIB - 2007 25 Meio Físico Apesar de no inicio se usar unicamente um cabo do tipo telefónico, designado por y(st)y 2x2x0,8, com de 2 pares de fios (só se usa um desses pares) como suporte físico das comunicações, pretendeu-se que no nível MAC (Médium Access Control) do OSI o EIB pudesse funcionar sobre os seguintes meios físicos: • EIB.TP: Sobre o par de condutores a 9600 bps. Igualmente por estes dois fios é fornecida a alimentação a 24 Vdc para os participantes. Usa o protocolo de comunicação CSMA-CA onde são evitadas as colisões, maximizando a largura de banda disponível. Foi o primeiro meio de comunicação a ser disponibilizado e é o único a ter expressão. Todos os outros pouco mais conseguiram que algumas instalações ou aplicações de referência. • EIB.PL: Transmite o sinal por correntes Portadoras comunicando a 1200/2400 bps sobre os 230V/50Hz. Usa a modulação SFSK (Spread Frequency Shift Keying), semelhante á FSK mas com maior separação entre as portadoras. A distância máxima sem repetidor é de 600 metros. • EIB.net: Utiliza a rede Ethernet a 10 Mbps (IEC 802-2). É usado como linha principal entre linhas e/ou áreas do EIB, permitindo a transferência de telegramas EIB através do protocolo IP entre instalações muito afastadas. Antes este problema era resolvido utilizando modems EIB e a rede telefónica comutada. • EIB.RF: Transmite o sinal por radiofrequência, conseguindo-se distâncias até 300 metros em campo aberto. Para maiores distâncias podem ser usados repetidores. Também para ser usado no interior das casas ou dos edifícios. • EIB.IR: Transmite o sinal por infravermelho, até uma distância máxima de aproximadamente 12 metros. Ideal para o uso com comandos à distância em salas ou salões onde se pretende controlar os dispositivos EIB instalados e o número destes ou as distâncias a cobrir estão dentro do limite indicado. Domoitech – Domótica com protocolo EIB - 2007 26 1.1.6 Protocolo KNX O Konnex é uma iniciativa promovida por três associações Europeias 1. EIBA (European Installation Bus Association) 2. BCI (Batibus Club International) 3. EHSA (European Home Systems Association) com o objectivo de criar um único standard Europeu para a automação das casas e edifícios. Os objectivos desta iniciativa, com o nome de "Convergência", são: • Criar um único standard para a domótica e automação de edifícios que cubra todas as necessidades e requisitos das instalações profissionais e residenciais no âmbito europeu; • Melhorar as prestações dos diversos meios físicos de comunicação sobretudo na tecnologia de radiofrequência, fundamental para a efectiva consolidação da domótica; • Introduzir novos modos de funcionamento que permitam aplicar uma filosofia Plug&Play a muitos dispositivos típicos de uma casa; • Envolver as empresas fornecedoras de serviços como as de telecomunicações e de electricidade, com o objectivo de desenvolver a telegestão nas casas; Resumindo, partindo dos sistemas EIB, EHS e Batibus, trata-se de criar um único standard europeu que seja capaz de competir em qualidade, prestações e preços, com outros sistemas norte-americanos como o Lonworks ou CEBus. Actualmente a associação Konnex está a terminar as especificações do novo standard (versão 1.0) o qual será compatível com os produtos EIB instalados. Pode afirmar-se que o novo standard terá o melhor do EIB, do EHS e do Batibus e que aumentará consideravelmente a oferta de produtos para o mercado residencial. A versão 1.0 contempla três modos de funcionamento: 1. S-mode (System mode): a configuração do modo sistema usa a mesma filosofia que o EIB actual, isto é, os diversos dispositivos ou modos da nova Domoitech – Domótica com protocolo EIB - 2007 27 instalação, são instalados e configurados por profissionais com ajuda de um software (ETS) especialmente concebido para este propósito. 2. E-mode (Easy mode): na configuração do modo simples os dispositivos são programados em fábrica para realizar uma função concreta. Mesmo assim devem ser configurados alguns detalhes no local da instalação mediante o uso de um controlador (como uma porta residencial ou uma set-top-box) ou mediante micro-interruptores alojados nos dispositivos (semelhante ao X-10 ou outros dispositivos proprietários que há no mercado). 3. A-mode (Automatic mode): na configuração do modo automático, com uma filosofia Plug&Play, nem o instalador nem o utilizador final têm de configurar o dispositivo. Este modo será especialmente indicado para ser usado em electrodomésticos e equipamentos de entretenimento (consolas, set-top boxes, áudio e vídeo). Respeitante ao meio físico o novo standard poderá funcionar sobre: • Par de condutores (TP1): aproveitando a norma EIB equivalente. • Par de condutores (TP0): aproveitando a norma Batibus equivalente. • Correntes portadoras (PL100): aproveitando a norma EIB equivalente. • Correntes portadoras (PL132): aproveitando a norma EHS equivalente. • Ethernet: aproveitando a norma EIB.net. • Radiofrequência: aproveitando a norma EIB.RF [4] Domoitech – Domótica com protocolo EIB - 2007 28 1.2 Objectivos Como foi descrito desde o início, os principais objectivos é criar uma solução de domótica de baixo custo e compatível com soluções existentes no mercado. Para uma fácil integração numa casa, outro objectivo principal é criar um sistema domótico que pudesse utilizar as instalações de redes dessa mesma casa e fosse de fácil instalação. Ao logo do projecto, outros objectivos pessoais foram acrescentados partindo sempre da satisfação dos principais requisitos. Domoitech – Domótica com protocolo EIB - 2007 29 1.3 Escolha do Protocolo No mercado, os sistemas mais usuais utilizam o protocolo X-10. Por essa razão, a nossa escolha inicial recai na utilização do X-10, que descartamos logo de seguida pela sua fraca robustez e ser muito rudimentar. O segundo protocolo mais utilizado em sistemas domóticos existentes no mercado, é o EIB/KNX. Este protocolo oferece muita robustez e flexibilidade contudo, os produtos são de elevado custo. Para ter uma noção, um interruptor de pressão quadruplo da Siemens, custa aproximadamente 70,91€. [2] Como os outros protocolos vistos anteriormente, não são muito usuais no mercado, foram colocados de parte porque tendo em conta um dos nossos objectivos, não iria existir muitas soluções no mercado compatíveis. O principal requisito de escolha do protocolo é a importância da solução a criar ser compatível com outros produtos de outros fabricantes. Assim podemos ter esta solução de domótica com EIB e por exemplo acrescentar um touch panel EIB da Siemens e uns interruptores EIB da Jung e o sistema funcionar correctamente. O sistema EIB tem sido desenvolvido dentro do contexto da União Europeia, com o fim de fazer frente aos produtos domóticos já existentes na América e Japão. O protocolo EIB permite a utilização de vários meios físicos, mas o mais utilizado é o par entrançado onde todos os dispositivos estão ligados a um Bus. Mas com esta solução de par entrançado (TP), era necessária uma fonte de alimentação para o barramento que normalmente tem um custo elevado, na ordem dos 160€. Uma das principais vantagens do EIB é a economização de energia porque existe uma maior gestão dos dispositivos eléctricos de um edifício. Por exemplo, se saímos de casa para o trabalho e alguma luz ficou ligada, é possível desligar a mesma quando chegamos ao trabalho sem ter a necessidade de alguém se deslocar a casa. O EIB é um protocolo aberto e por esta razão, existem no mercado alguns fabricantes que têm os seus produtos a utilizarem EIB. Qualquer pessoa, pode desenvolver produtos EIB bastando para isso adquirir um livro denominado por EIB Handbook com nove volumes cujo valor comercial é de aproximadamente 1000€. Com este livro de milhares de páginas, têm-se toda a documentação necessária desde a parte de desenvolvimento à certificação do produto EIB. Domoitech – Domótica com protocolo EIB - 2007 30 Em 14 de Abril de 1999, as associações responsáveis pelos protocolos: EIB, EHS e o BatiBUS, decidiram juntar-se e criar uma só associação denominada Konnex, com o protocolo mais conhecido pelas suas siglas: KNX. O KNX veio acrescentar ao EIB outras funcionalidades tais como: permite a utilização de mais meios físicos e o controlo de mais sistemas, como é o exemplo de sistemas HVAC. A imagem seguinte [7] ilustra que o sistema de base do KNX é o EIB e que utiliza o software ETS para configurar os dispositivos EIB. Ilustração 3 – Modelo do Sistema KNX Para desenvolver um produto KNX/EIB como acontece com o EIB, é necessário adquirir o KNX/EIB Handbook cujo valor comercial é também aproximadamente 1000€. Como tivemos apenas à nossa disposição o handbook do EIB, não nos foi possível realizar o projecto com KNX. Contudo, é de notar que numa rede domótica um sistema EIB pode estar ligado a um sistema KNX, porque são totalmente compatíveis. Domoitech – Domótica com protocolo EIB - 2007 31 1.4 Escolha do Meio Físico Foi feita uma análise de vários meios físicos que são compatíveis com EIB assim como o protocolo de rede a utilizar. Inicialmente a nossa escolha recaiu pela utilização do Twisted Pair. Era uma solução bastante utilizada noutros sistemas domóticos e uma óptima solução para o nosso sistema. Contudo, para nos diferenciarmos das soluções existentes do mercado e como a tendência é evoluir para redes mais complexas e tendo em conta que seria necessário adquirir uma dispositivo que não era de baixo custo, optamos por não utilizar esta solução. O interessante era utilizar uma rede sem fios para utilizar em casas já terminadas onde inserir uma rede com cabos significava partir paredes já prontas. Para isso, pensamos na opção de utilizar Rádio-Frequência. Era uma boa solução e os dispositivos de interface à rede RF eram mais baratos, mas surgiu a desvantagem de existirem algumas interferências provocadas por aparelhos como campainhas sem fios ou o sistema de alarme de uma casa onde os sensores de ultra-sons interferem com os demais dispositivos sem fios. Decidimos fazer um sistema para qualquer tipo de habitação e aproveitar a instalação de rede ethernet que algumas habitações possam ter. Pensamos então em ter o nosso sistema a funcionar em conjunto com uma rede ethernet normal, ou seja, ambas as redes utilizavam a mesma cablagem onde passariam tanto as tramas da rede ethernet como as tramas da rede EIB. Escolhido então o protocolo TCP/IP e o meio físico ethernet para transportar as tramas EIB, surgiu uma dificuldade, não existem microcontroladores simples que corram o protocolo IP. Fazendo um estudo dos microcontroladores e de dispositivos de conversão de um protocolo de rede para o outro, verificamos que existiam bastantes conversores de RS232 para um outro protocolo e raros eram os microcontroladores que não tinham uma porta USART (Universal Synchronous Asynchronous Receiver Transmitter). Escolhemos então um conversor RS232 para ethernet denominado por XPORT da empresa LANTRONIX. O RS232 passa a ser a interface entre o microcontrolador e a XPORT. O facto de utilizarmos o RS232 para interface com um meio físico, permite mais tarde, substituir a XPORT por outro conversor e utilizar outros meios físicos. Domoitech – Domótica com protocolo EIB - 2007 32 2 Descrição detalhada do Protocolo EIB Depois de escolhido o protocolo e o meio físico, seguem-se as outras questões: Quais são os objectos de comunicação a utilizar?, qual o seu formato de dados?, quais são os requisitos de hardware?, já existem componentes standard EIB?, vai ter algum modo de configuração?, que funções implementar?. Estas são algumas das questões que criadores de dispositivos EIB se colocam numa fase inicial de projecto. Uma forma de ajuda a responder a essas questões é efectuar uma pesquisa no mercado e verificar o que as soluções existentes implementam. Encontram-se soluções variadas, mas em todas elas que utilizam como meio físico o par entrançado, utilizam um dispositivo físico que pode ter várias denominações dependendo das camadas EIB que ele implementa. Um dos dispositivos mais conhecidos é o BCU (Bus coupling units), este é um dispositivo que inclui o circuito de interface à rede TP EIB. É composto por um microprocessador que implementa quase todas as camadas EIB exceptuando as de nível de aplicação. O colaborador apenas precisa de desenvolver a aplicação num microcontrolador à parte e utilizar o BCU como interface ao bus. O outro dispositivo muito conhecido é o BIM (Bus Interface Modules), em que basicamente são BCU mas com portas adicionais de entradas e saídas. Os BIM’s são vendidos como módulos que podem ser soldados directamente na placa de circuito do projecto. Existem algumas versões disponíveis: com 8Kbyte e 48Kbyte de memória flash para o software de aplicação. Assim, não é necessário uma microcontrolador à parte, visto que se utiliza o micro do BIM. Estes módulos têm um valor comercial superior a 40€. [8] Estes BIM’s são necessários para cada componente de uma casa, uma lâmpada, um interruptor, um estore, …. No sistema Domoitech que desenvolvemos o objectivo principal era a redução de custos e se utilizarmos estes BIM’s no nosso projecto, o custo fica bastante elevado. Optamos por criar os nossos próprios BIM’s e assim temos um microcontrolador com poder de processamento e memória razoáveis onde irá ser implementado todas as camadas do protocolo EIB, exceptuando a camada de Domoitech – Domótica com protocolo EIB - 2007 33 protocolo de rede IP que será a XPORT a implementar. Poderemos comparar a XPORT ao BCU porque a sua função é semelhante excepto o acesso ao meio físico, em que um é para rede Ethernet e outro é para rede TP EIB. Futuramente, se for pretendido a utilização do meio físico TP, basta acrescentar uma camada que implementa o protocolo FT1.2 e em vez da XPORT utilizar um BCU que faz a interface ao barramento TP do EIB. O EIB funciona em quase todas as camadas do modelo OSI e ainda acrescenta uma superior à de aplicação, a camada de utilizador. As únicas camadas que não implementa é a de sessão e de apresentação. De todas as camadas, apenas nos interessa a de aplicação, visto que as restantes camadas, algumas vão ser preenchidas pela interface de rede Ethernet que já implementa o protocolo TCP/IP. Para uma melhor compreensão das camadas de rede do EIB, o diagrama seguinte ilustra as camadas do modelo OSI e as camadas do EIB: Ilustração 4 – Modelo Camadas OSI vs Modelo Camadas EIB Domoitech – Domótica com protocolo EIB - 2007 34 Uma trama EIB tem o seguinte formato: Ilustração 5 - Formato Trama EIB A trama EIB é composta por vários cabeçalhos de quatro camadas do protocolo. Na parte inferior da trama encontra-se uma barra de cores que facilita a visualização das camadas de rede. Até ao octeto 4, mais 5 bits do octeto 5 e último octecto, pertencem à camada de ligação lógica. Neste cabeçalho, estão indicados os endereços de destino e origem, um caractere inicial de controlo e no final um octecto com um NOT XOR de todos os octetos anteriores. A este octeto terminal, chamamos de check octet e serve para detecção de erros na trama. Os 3 bits do octeto 5 pertencem à camada de rede e indicam se os endereços que vêm são do tipo endereços de grupo ou físicos. O octeto 6 contém o cabeçalho da trama de transporte que será fixo porque todas as tramas que iremos enviar são do tipo data packet. Os restantes octetos a partir o 7 excepto o último, pertencem à camada de aplicação. O tamanho máximo de uma trama EIB é de 23 octectos. 2.1 Camada de Aplicação A camada de aplicação corresponde, à camada 7 que contém os serviços da parte do cliente e do servidor. Os serviços são respectivos a quatro modos de comunicações, o modo multicast, broadcast, um-para-um sem conexão e um-paratodos orientada à conexão que a camada 4 implementa. Domoitech – Domótica com protocolo EIB - 2007 35 Formato da trama de aplicação: Ilustração 6 - Formato de aplicação Uma trama EIB pode ter até um máximo de 23 bytes. A aplicação utiliza dois bits do octeto 6 e o octeto 7. Os restantes octetos são para dados. A trama de aplicação é denominada por APDU e vai encapsulada na trama de transporte. É nesta camada que estão definidos os serviços e o EIS que serão explicados a seguir. 2.1.1 Serviços EIB Restam as questões de software em que terá de ser decidido quais as funções e os objectos de comunicação a implementar e como pode ser configurado o nosso sistema. Devido ao curto espaço de tempo que temos para o desenvolvimento do projecto, só foi possível escolher algumas das funções mais simples e não foi possível criar as funções que permitiam configurar o nosso sistema quando a rede tivesse montada. Assim é necessário, o sistema ir já configurado antes da sua instalação e se for preciso efectuar alguma alteração, todas as placas terão de ser reprogramadas com um programador especial e não via rede. Estes serviços estão definidos no volume 3, parte 3 e capítulo 7 do EIB Handbook. Os serviços do modo de comunicação broadcast, servem para configurar a rede EIB. Como foi explicado anteriormente, devido à falta de tempo, estes serviços não vão ser implementados. Os serviços do modo um-para-um orientada à conexão Domoitech – Domótica com protocolo EIB - 2007 36 servem para aceder à memória do microcontrolador que implementa o protocolo e esses serviços não serão necessários utilizar. Quanto ao modo um-para-um sem conexão, apenas foi criado o serviço PropertyValue_Write, mas não está a ser utilizado. Este tipo de serviço é utilizado para alterar a propriedade de um objecto e no nosso projecto não irá ser utilizado, embora essa função e a respectiva tabela de objectos esteja implementada. O modo de comunicações que iremos utilizar é o multicast e todas as suas funções: GroupValue_Read, GroupValue_Write e GroupValue_Response. Estes serviços alteram ou lêem estados de dispositivos de um certo endereço de grupo. O código correspondente ao serviço pode ter até 10 bits e em alguns dos casos só são necessários 4 bits. Nos serviços que iremos implementar, só serão necessários 4 bits para os identificar. Assim sendo, os dados poderão preenchidos a partir do bit 6 do octeto 7. É de notar que nos dados, para o caso dos nossos serviços, vão os estados dos dispositivos E/S. Os códigos para os serviços são os seguintes: Ilustração 7 – Códigos dos serviços EIB É de notar que para estes serviços o cabeçalho da trama de rede terá de indicar que pelo menos o endereço de destino é um endereço de grupo. Por esta razão, o código do serviço só é validado em conjunto com o cabeçalho de rede. Domoitech – Domótica com protocolo EIB - 2007 37 2.1.1.1 Serviço GroupValue_Read Este serviço serve para enviar tramas com pedidos de leitura de estados de variáveis ou E/S. O código deste serviço tem o valor decimal 0 se retirarmos os bits 8, 7, 2 e 1 do octeto 6 e o octeto 7. Para realizar essa validação do código, aplicamos uma máscara de bits com o valor hexadecimal 0xC3FF aos octetos 6 e 7. O receptor da trama requerente deste serviço, deverá enviar uma resposta com os estados pedidos, utilizando o serviço GroupValue_Res. Um exemplo de uma trama EIB com este serviço a efectuar um pedido da placa com o código físico 1 para o endereço de grupo 23 é a seguinte: Ilustração 8 – Exemplo Trama GroupValue_Read 2.1.1.2 Serviço GroupValue_Res Este serviço serve para enviar tramas de resposta aos pedidos de leitura de estados de variáveis ou E/S. O código deste serviço tem o valor decimal 1 se retirarmos os bits 8, 7, 2 e 1 do octeto 6 e os bits 8 e 7 do octeto 7. Para realizar essa validação do código, aplicamos uma máscara de bits com o valor hexadecimal 0xC3C0 aos octetos 6 e 7. Os estados das variáveis vão guardados nos dados, ou seja, são colocado a partir do octeto 7. Se um dos estados é um valor binário então é possível colocar no octeto 7 porque sobram 6 bits para dados. Um exemplo de uma trama de resposta à anterior da ilustração 13, em que só existe um dispositivo binário com estado 0 e com aquele endereço de grupo, é a seguinte: Domoitech – Domótica com protocolo EIB - 2007 38 Ilustração 9 - Exemplo Trama GroupValue_Res 2.1.1.3 Serviço GroupValue_Write Este serviço serve para enviar tramas de escrita em que mudam o estado das varáveis ou E/S que estejam no grupo do endereço de destino. O valor do estado vai no octeto 7 para o caso de ser binário ou vai no octeto seguinte para o caso de ser um valor decimal de 8 bits. O código deste serviço tem o valor decimal 2 se retirarmos os bits 8, 7, 2 e 1 do octeto 6 e os bits 8 e 7 do octeto 7. Para realizar essa validação do código, aplicamos uma máscara de bits com o valor hexadecimal 0xC3C0 aos octetos 6 e 7. Um exemplo de uma trama EIB com este serviço que envia um pedido para modificar um estado para o valor binário 1 e para o grupo 23, é: Ilustração 10 – Exemplo Trama GroupValue_Write 2.1.2 Objectos EIB Os objectos de comunicação, são os chamados EIS (EIB Interworking Standards), decidimos utilizar apenas dois, o objecto do tipo SWITCHING e o do tipo DRIVE CONTROL. Os EIS são explicados no volume 3, parte 7 e capítulo 1 do EIB Handbook e explica todos os objectos do standard EIB. Ao todo são 15 os EIS, mas como foi explicado, só vamos utilizar dois. No standard é especificado que a leitura de E/S deverá ser feita com um tempo de refrescamento inferior a 200ms. É garantido no nosso sistema um tempo bastante inferior a esse, ronda os 10ms. Domoitech – Domótica com protocolo EIB - 2007 39 É utilizado também um mecanismo de definir prioridades aos objectos. Por exemplo, podemos definir que o interruptor da sala, tem prioridade sobre o interruptor da cozinha para ligarem uma mesma lâmpada. No nosso sistema, não é utilizado o mecanismo de prioridades, deixando por defeito, como refere a norma, a prioridade baixa. 2.1.2.1 EIS 1 - Switching Este objecto, implementa uma função com 1bit, logo dois estados e com ela é possível actuar numa carga do tipo ON/OFF ligada ao actuador. Utilizamos esta função para as lâmpadas. Mas as saídas das lâmpadas podem ser utilizadas para qualquer carga do mesmo tipo, como por exemplo: tv, portas eléctricas, etc. Tem o valor de 1 bit e o código dele é 10 e que pode ter os seguintes estados: (on / off), (enable / disable), (alarm / no alarm) e (true / false). Ilustração 11 – EIS Switching 2.1.2.2 EIS 7 – Drive Control Este objecto consiste em duas subfunções denominadas por “move” e “step”. Com a subfunção “move” é possível colocar o drive em movimento para um sentido ou para o outro. O tempo de movimento é escolhido pelo utilizador e é facilmente configurável. Com a subfunção “step” é possível realizar movimentos graduais em ambos os sentidos. Este tempo de movimento gradual é também facilmente configurável. Este objecto é utilizado para controlar os estores. Domoitech – Domótica com protocolo EIB - 2007 40 A saída do actuador é também binária, de 1 bit, mas neste caso temos duas subfunções: uma coloca a saída num determinado estado a um determinado tempo e a outra subfunção, também tem os dois estados, mas o tempo é bastante inferior em relação ao outro. A subfunção Move é utilizada para fechar ou abrir totalmente o estore e pode ter dois estados possíveis: mover para baixo ou mover para cima. A imagem seguinte ilustra os dois estados possíveis: Ilustração 12 – EIS Drive Control - Move A subfunção Step é utilizada para fechar ou abrir gradualmente o estore e pode ter dois estados possíveis: mover para baixo ou mover para cima. A imagem seguinte ilustra os dois estados possíveis: Ilustração 13 – EIS Drive Control – Step Para este EIS será necessário uma máquina de estado mais complexa em que precisamos de quatro estados possíveis: em movimento, parado, gradualmente para cima e gradualmente para baixo. A norma EIB também especifica a máquina de estados como podemos ver na figura seguinte: Domoitech – Domótica com protocolo EIB - 2007 41 Ilustração 14 – Máquina de estados do Drive Control Domoitech – Domótica com protocolo EIB - 2007 42 2.2 Camada de Transporte A camada de transporte corresponde à camada 4 que implementa os vários modos de comunicação: o modo multicast, broadcast, um-para-um sem conexão e um-para-todos orientada à conexão. Os modos de comunicação são identificados por um código (cr_id) que tem de ser único. A camada de transporte converte o cr_id num endereço de destino e vice-versa. Ilustração 15 – Interface com a camada de transporte entre os dispositivos EIB A trama de transporte, TPDU corresponde à trama NPDU mas reduzida, pois não tem o cabeçalho de controlo de rede. O campo de controlo da camada de transporte é codificado e descodificado pela camada 4 e contém os códigos dos serviços da camada 4. 2.3 Camada de Rede A camada de rede, denominada por camada 3, faz a interligação entre a camada de ligação lógica e a camada de rede do utilizador. Esta camada, utiliza o serviço L_Data da camada de ligação lógica e disponibiliza os serviços: N_Data, N_GroupData e N_Broadcast para a camada de rede do utilizador como podemos ver na figura seguinte. Domoitech – Domótica com protocolo EIB - 2007 43 Ilustração 16 – Interface com a camada de rede entre os dispositivos EIB O formato da trama de rede: Ilustração 17 – Formato da trama NPDU A trama de rede, denominada por NPDU, corresponde a uma trama que tem encapsulada a trama de transporte TPDU e corresponde a uma trama LPDU, mas sem o cabeçalho de ligação lógica (endereço destino, origem, flag endereço de destino e a informação do comprimento. A NPDU é mostrada na figura anterior onde é perceptível que o cabeçalho da NPDU é de apenas 3 bits situados no octeto 5. Domoitech – Domótica com protocolo EIB - 2007 44 2.4 Camada de Ligação Lógica A camada de ligação lógica, denominada por camada 2, faz a interface entre o nível físico e a camada de ligação lógica do utilizador. Esta camada utiliza serviços da camada física e fornece alguns serviços como estão representados na figura 18. O cabeçalho de controlo do nível da ligação lógica examina o formato da trama, endereço de destino e decide se essa trama é para ser recebida. Esta camada, detecta erros de transmissão e efectua repetições de tramas. Os bytes da camada física com o serviço Ph_Data.ind, são colocados juntamente com um serviço de ligação (LSDU). LSDU`s que são transmitidas para um destino, são entregues à camada física com o pedido Ph_Data.req. Ilustração 18 – Interface com a camada de ligação lógica entre os dispositivos EIB 2.5 Camada Física Esta camada situa-se no nível mais baixo e é aí onde se insere no caso do EIB, todos os meios físicos compatíveis que são: o TP, Ethernet, rede eléctrica, rádio frequência e infravermelhos. Domoitech – Domótica com protocolo EIB - 2007 45 3 Recursos de Hardware Tendo em conta os requisitos do sistema, fizemos uma pesquisa de hardware que podemos utilizar. Numa fase inicial, foi decidido utilizar um microcontrolador da Microchip [11] devido à vasta gama de produtos que apresenta. Efectuando uma pesquisa de microcontroladores PIC, optamos pelo PIC16F877, que numa fase intermédia do projecto, teve de ser substituído por um PIC18F452 que tem maior capacidade de processamento, tem tecnologia mais recente e a diferença de custo é pequena. Foi escolhido este microcontrolador porque correspondia com todos os requisitos e permite futuros upgrades. Como já foi referido, utilizamos uma XPORT para interface entre o microcontrolador e o meio físico Ethernet. A XPORT é um servidor web embebido que implementa o protocolo RS232 e insere tramas deste protocolo em tramas ethernet. É proprietário da Lantronix [10] que fabrica uma grande variedade de conversores de rede. 3.1 Microcontrolador PIC18F452 O PIC18F452 é um microcontrolador composto por uma unidade de processamento, memória e portas de entrada/saída (I/O). A maioria das pessoas limita o conceito de sistema computacional ao computador que temos em casa, o vulgar PC (Personal Computer). No entanto todo sistema que a partir de dados de entrada, executa algum processamento mediante um programa armazenado em uma memória gerando uma saída é chamado de sistema computacional. Podemos definir um microcontrolador como sendo um sistema computacional integrado, pois ele possui unidade de processamento, memória e entradas e saídas integrados em um único chip. Características técnicas do PIC - Arquitectura RISC; - 32K de memória FLASH; - 1536 bytes de memória RAM; - 256 bytes de memória EEPROM; Domoitech – Domótica com protocolo EIB - 2007 46 - 16384 instruções suportadas pela memória de programa; - 18 fontes de interrupção; - Operação de 4.2V até 5.5V; - Universal Synchronous Asynchronous Receiver Transmitter (USART/SCI) com o 9 bit; - 4 Temporizadores; - 5 portas de 8bits; - 8 canais de entradas/saídas analógicas; - Relógio máximo de entrada de 40MHz. A figura seguinte ilustra a disposição e descrição dos pinos do microcontrolador: Ilustração 19 – Diagrama de pinos do PIC18F452 Domoitech – Domótica com protocolo EIB - 2007 47 3.2 XPORT A XPORT é um componente que efectua uma conversão bidireccional entre o protocolo RS232 e Ethernet. É a solução integrada mais compacta para permitir uma interface web a qualquer componente com uma interface série. A XPORT incorpora todas as características essenciais de rede, incluindo uma ligação Ethernet de 10Base-T/ 100Base-TX, provado de um sistema operativo, um servidor web, alertas de e-mail, a pilha TCP/IP completa e uma encriptação de 256-bit AES. A XPORT tem a seguinte apresentação: Ilustração 20 – Dimensões Xport Características técnicas da XPORT - Serial Interface Interface: CMOS (Assíncrono, com 5V tolerância) Taxa Transmissão de dados: 300 bps to 921,600 bps Tamanho do caractere: 7 ou 8 bits de dados Paridade: ímpar, par e nenhuma Stop Bits: 1 ou 2 Sinais de controlo: RTS/DCD, CTS,RTS Controlo de fluxo: XON/XOFF,RTS/CTS - Interface de Ethernet Interface: Ethernet 10Base-T ou 100Base-TX (Auto-Sensing) Conector: RJ45 Protocolos: TCP/IP, UDP/IP,ARP, ICMP,SNMP,TFTP,Telnet, Domoitech – Domótica com protocolo EIB - 2007 48 DHCP, BOOTP, HTTP e AutoIP - Capacidade de Armazenamento: 384 Kbytes para páginas web - Arquitectura CPU: 16-bit, 48MHz ou 88MHz, x86 arquitectura Memoria: 256 Kbytes SRAM e 512 Kbytes de flash Firmware: actualizável via TFTP e porta série - Tensão de alimentação: 3.3 V CC É possível configurar todos os parâmetros da XPORT via web browser, telnet ou utilizando um software fornecido com a mesma. Utilizamos o web browser para configurar as definições da porta série e da Ethernet. Mas antes de poder aceder à página de configuração é necessário a atribuir um endereço IP à XPORT. Para isso, utilizamos o software Xport Installer fornecido pelo fabricante e utilizamos a ferramenta Assign IP para atribuir o endereço IP. Ilustração 21 – Atribuição endereço IP da XPORT A figura anterior ilustra a janela de atribuição de IP, onde é necessário inserir o endereço MAC da XPORT e o IP que queremos atribuir. Após a atribuição do endereço IP, configuramos os parâmetros da XPORT recorrendo ao browser e acedendo à página web do servidor. Seleccionando no menu da esquerda port properties obtemos a seguinte interface: Domoitech – Domótica com protocolo EIB - 2007 49 Ilustração 22 – Configuração Porta Série e Ethernet A partir desta interface configuramos a velocidade da porta série a 9600 bps, o tamanho do caractere 8bits, a paridade nula, 1 stop bit e sem controlo de fluxo. Configuramos ainda o protocolo de Ethernet no modo UDP, com o datagrama type 01 e configuramos os dados de ligação com o endereço IP remoto 192.168.105.255 (Endereço de broadcast da rede), porta remota e porta local com o mesmo número: 10001. Em cada vez que se altera uma definição, é necessário reiniciar a XPORT. Domoitech – Domótica com protocolo EIB - 2007 50 4 Desenvolvimento Hardware Um dos principais requisitos deste projecto é desenvolver um sistema eficiente sem que isso se traduza num elevado preço do produto final. Dado que o preço final do produto é em grande parte influenciado pelo custo dos componentes usados na parte do hardware, é essencial no momento de desenvolvimento ter em conta a utilização de componentes standards e de fácil obtenção no mercado uma vez que estes se podem adquirir a preços mais competitivos. Só assim poderemos competir com o nosso produto no mercado, podendo assegurar qualidade e preços baixos. Tivemos também em conta que uma das aplicações possíveis para este sistema seria a sua utilização em instalações que não tenham sido projectadas para a aplicação de sistemas de domótica, por isso tentamos minimizar o máximo possível as dimensões do hardware, para que possa ser instalado nas caixas de derivação já existentes na instalação, com possibilidade de utilização das aparelhagens de comando já existentes. 4.1 Estrutura do hardware Após várias fases de testes de hardware, em que numa primeira fase, montamos um microcontrolador numa placa perfurada com led’s para simular saídas, pulsores para simular entradas e um receptor de infravermelhos sendo este protótipo apenas para nos familiarizarmos com a programação da PIC. Numa segunda fase desenvolvemos quatro protótipos de placas baseadas num barramento principal que fazia a interface entre elas, chegamos a conclusão que não seria a melhor alternativa a seguir devido ao elevado espaço necessário para acondicionar todo este hardware. Decidimos então optar por uma terceira versão baseada na seguinte arquitectura de hardware: Domoitech – Domótica com protocolo EIB - 2007 51 Ilustração 23 - Diagrama de blocos da estrutura de hardware Nesta arquitectura existe uma placa principal, a qual contem todo o processamento necessário e os vários módulos de interface com os sistemas exteriores, existem ainda dois tipos de placas secundarias, saídas em relés e saídas em triac’s, para fazerem de interface com os equipamentos que pretendemos controlar. Domoitech – Domótica com protocolo EIB - 2007 52 4.2 Placa Principal A figura seguinte é uma foto da placa principal, que contém todo o processamento e foi projectada com dimensões reduzidas para que seja possível instalar sem qualquer dificuldade numa instalação que não tenha sido projectada para este tipo de sistemas. Receptor Conector de Botão de Infravermelho Programação Reset Micro controlador 18f452 Alimentação 12v DC Conectores RJ11 Para XPort- Interface de as placas de controlo rede Ethernet Ilustração 24 – Placa Principal Características técnicas: • Alimentação 8~12 Vcc • Corrente Max consumida 400 mA • Corrente nominal 200 mA • Saída de alimentação nos conectores RJ11 5Vcc • Velocidade de processamento 20Mhz Domoitech – Domótica com protocolo EIB - 2007 53 • Reconhecimento de comandos infravermelhos RC5 • 7 Conectores para dispositivos de controlo externos • Conector de programação por RS232 • Conector de programação por JDM • Botão de reset • Connector ethernet RJ45 10-base T, 100-base TX • Configuração via web server • Arquitectura baseada num micro controlador pic18f452 com 512 Kbytes RAM e 1024Kbytes Flash • Dimensões 73x73x20mm • Led indicador de alimentação Esta placa permite-nos ligar no máximo 14 dispositivos podendo ser do tipo sensores ou actuadores, na sua configuração normal estão previstos 7 sensores e 7 actuadores, podendo esta ser alterada bastando para isso reconfigurar o software. Dispõe de uma Xport que faz a interface entre o meio físico, barramento (Ethernet) e o micro controlador. A comunicação entre esta interface e o micro controlador é feita através do protocolo RS232 permitindo assim alterar para outro meio físico suportado pelo protocolo EIB bastando para isso trocar de interface desde que esta suporte comunicação RS232. Inclui ainda um receptor de infravermelhos que nos permite controlar os dispositivos através de um comando que implemente o protocolo RC5. Este receptor é alimentado a 5Vcc e contem no seu interior um circuito de filtragem que faz com que o sinal na sua saída seja uma onda quadrada sem a componente de modulação usada em comunicações de infravermelhos. Domoitech – Domótica com protocolo EIB - 2007 54 4.3 Placa Saída a Relés Para controlar os dispositivos de potência desenvolveu-se uma pequena placa de controlo que faz a interface entre estes e a placa principal. Neste caso a actuação é feita através de relés capazes de comutar correntes até 2 Amperes, o que é suficiente no caso dos dispositivos não ultrapassarem os 400W. Esta placa conta com duas entradas para dois sensores (interruptores) e duas saídas para dois actuadores. Neste caso não necessitamos de colocar isolamento óptico pois o próprio relé já faz o isolamento entre a parte de potência e a parte de controlo. A placa tem o seguinte aspecto: Conector RJ11 para ligar a Entradas para dois placa principal Interruptores Saídas para controlar dois equipamentos Ilustração 25 – Placa Saída Relés Características técnicas: • Alimentação 5Vdc • 1 Conector e RJ11 • Corrente nominal 50mA • Duas saídas em relés (Imax=4 A Vnom=230V) • Duas entradas Domoitech – Domótica com protocolo EIB - 2007 55 4.4 Placa Saída a Triac’s Tal como a placa anterior esta permite controlar dois dispositivos e possui também duas entradas. Neste caso a comutação é feita com o recurso a triac’s uma vez que estes são mais baratos e ocupam menos espaço. Foi necessário usar isolamento óptico para proteger a parte de controlo de possíveis anomalias na parte de potência. A placa tem o seguinte aspecto: Saídas para controlar dois Entradas para dois equipamentos Interruptores Conector RJ11 para ligar a placa principal Ilustração 26 – Placa Saída a Triac’s Características técnicas: • Alimentação 5Vdc • 1 Conector e RJ11 • Corrente nominal 20mA • Duas saídas triac’s (Imax=2 A Vmax=600V) • Duas entradas Domoitech – Domótica com protocolo EIB - 2007 56 Comando Infravermelhos Uma das funcionalidades do sistema é permitir controlar os equipamentos através de um controlo remoto de infravermelhos. Como a maioria dos comandos usados em nossas casas implementam o protocolo RC5, configuramos a placa principal para que possa responder a este tipo de comandos. Assim basta usarmos um simples comando de tv ou um comando universal para controlar todos os dispositivos. Mais uma vez ao optarmos por esta solução estamos a reduzir os custos finais, pois é possível adquirir um comando destes por um preço insignificante ou se for o caso usarmos um que já exista em nossa casa. Domoitech – Domótica com protocolo EIB - 2007 57 4.5 Programador Através deste programador é possível descarregar de forma rápida o ficheiro hex a partir de um computador, sem que para isso seja necessário retirar o micro controlador da placa principal. A sua programação é feita através da porta UART. É de notar que para que este método de programação funcionar foi necessário programar o micro controlador com um código (bootloader para pic18f452) fornecido pelo fabricante. Este código deve ser programado no microcontrolador através de um programador de PIC’s (JDM programer). A placa do programador tem o seguinte aspecto: Conector de Conector Rs232 para programação ligar ao PC Ilustração 27 – Placa Programador Características técnicas: • Alimentação 5Vdc • 1 Conector rs232 • Saídas Rx,Tx 0-5V • Led indicador de alimentação Domoitech – Domótica com protocolo EIB - 2007 58 5 Desenvolvimento Software O software foi desenvolvido utilizando o programa PCWH Compiler versão 4.0. Criamos um projecto ao qual lhe demos o nome de eib2.pjt. Com este programa é possível compilar código c e gerar um ficheiro hex para posteriormente programar na memória do microcontrolador através do ICprog, que é um software livre e permite programar PIC’s e memórias. 5.1 Estrutura do Software No diagrama seguinte está ilustrado de uma forma simplificada, a estrutura usada para o software. Trata-se de uma estrutura baseada no principio de funcionamento de um sistema operativo, onde existem dois níveis de abstracção sendo um deles o núcleo, o qual é responsável por fazer a configuração do micro no inicio da execução do programa, faz ainda a gestão dos processos determinando qual o que deve ser executado e qual a ordem de execução. O segundo nível de abstracção designa-se por nível de utilizador que é onde a aplicação vai ser executada. Dentro deste nível estão todos os processos, sendo a ordem execução controlada pelo núcleo. Domoitech – Domótica com protocolo EIB - 2007 59 Ilustração 28 – Estrutura do software Para que estes dois níveis possam comunicar entre si criamos uma estrutura que define o nome de cada processo, o estado, activo ou desactivo, bem como a sua prioridade, esta estrutura pode ser acedida de três formas distintas: Proc_SetReady(Nome_processo) - Permite que um processo active outro, é necessário indicar qual o nome do processo a ser activado. Proc_ClrReady(Nome_processo) - Idêntico ao anterior mas neste caso serve para desactivar um processo, normalmente é usado no núcleo para desactivar um processo que já tenha sido dada a ordem de execução. Proc_GetReady(Nome_processo) - Usado no núcleo do sistema operativo para verificar o estado da flag que determina se um processo deve ser executado ou não. Domoitech – Domótica com protocolo EIB - 2007 60 Como já foi referido neste sistema a ordem de execução dos processos é definida no núcleo, os processos são executados dependendo do nível de prioridade que lhe esta associado, aqueles que necessitam de ser executados o mais rápido possível são os de maior nível de prioridade, na atribuição de prioridades tivemos ainda em conta o sentido do fluxo de dados, se um determinado processo necessita de informação fornecida por outro então este deve ter um nível de prioridade inferior. Este sistema é ainda preemptivo pois alguns dos processos, com nível de prioridade inferior tem capacidade para interromper um processo em execução que tenha um nível de prioridade superior. 5.1.1 Divisão da Stack por camadas Para tornar a aplicação mais robusta e de fácil compreensão foi dividida em quatro camadas, que correspondem as camadas definidas pelo protocolo EIB com exclusão da camada de rede pois trata-se de uma camada pequena e foi integrada juntamente com a de transporte. A primeira camada, Physical Layer, faz a comunicação entre o software e o hardware, controla a recepção e envio de tramas EIB, faz a leitura das entradas digitais e implementa a descodificação do protocolo RC5. Na segunda camada, Transport Layer, é feita a descodificação e a codificação das tramas EIB, faz-se o tratamento dos endereços físicos e endereços de grupo, do check octeto e do control field. A camada seguinte do software trata dos dados que dizem respeito ao campo de transporte da trama EIB. Por último temos a camada da aplicação que trata os serviços EIB e os EIS’s. Esta camada será tratada com maior detalhe mais a frente devido à sua complexidade. Domoitech – Domótica com protocolo EIB - 2007 61 Ilustração 29 – Diagrama de blocos das camadas As setas representadas indicam o sentido do fluxo de informação entre processos e módulos ou entre processos e o nível de hardware. Neste sistema os processos, que estão na camada física, acedem directamente ao hardware sem que para isso seja necessário passar informação pelo núcleo, isto deve-se ao facto de se tratar de um acesso simples sendo para isso desprezável a criação de uma estrutura ao nível do núcleo para fazer a interface entre este e a aplicação. A comunicação entre os vários processos é feita recorrendo a variáveis globais ou a chamada de funções que trocam informação através da passagem de Domoitech – Domótica com protocolo EIB - 2007 62 parâmetros. Mais à frente, na descrição pormenorizada dos processos, é possível ver com maior detalhe que tipo de variáveis são usadas para estas operações e quais os processos que as usam. 5.1.2 Descrição dos processos camada física. • EIB_ReadRxByte- Sempre que recebe um byte pela porta série este processo é chamado para o guardar no vector circular, a partir do 8 byte recebido que significa que já recebeu o numero de byte’s mínimos para que possa ser do tipo trama EIB, activa o processo EIB_FindFrame. A comunicação entre estes dois processos é feita através do vector Rxbufer[ ]. • EIB_FindFrame- Faz a pesquisa de tramas válidas no vector Rxbufer[ ], o qual é uma variável global que faz a comunicação entre este processo e o processo EIB_ReadRxByte, esta pesquisa é feita pelo método de vector circular. Sempre que é encontrada uma trama válida activa o processo EIB_DecodeFrame. • EIB_SendFrame - Envia a trama EIB guardada numa variável global TxBuf[ ], é esta variável que serve para fazer a comunicação entre este processo e todos aqueles que necessitam de enviar uma trama EIB pela porta série. • IR_ReadBit- sempre que ocorra uma interrupção na porta B, mudança de flanco do pino RB4 o que significa que esta a receber um comando IV, este processo é activo. Descodifica qual o bit recebido e guarda-o na variável RC5_FrameBuf. Se recebeu 14 bits e se ocorreu interrupção do timer0 então activa o processo IR_Decode. • IR_Decode- Descodifica qual o comando RC5 recebido e activa o processo IRHandleInstruction. Estes dois processos comunicam através da variável RC5_Instruction. • IRHandleInstruction- Este processo chama o serviço GroupValueW_REQ para procurar qual o endereço de grupo correspondente ao comando RC5 Domoitech – Domótica com protocolo EIB - 2007 63 recebido e constrói a trama para que possa ser enviada pelo processo (Proc_EIB_SendFrame), activando ainda o processo EIB_SendFrame. • Timer2_Over- Sempre que ocorrer uma interrupção do timer2 este processo é activo, e é incrementado a variável de contagem contido no módulo clock. • Clock- trata-se de um módulo de código que implementa dois contadores para activar dois processos com períodos de execução diferentes. • ReadInputs- Verifica o estado das entradas, caso haja alguma entrada activa, testa o intervalo de tempo durante o qual esta foi activa para detectar impulsos de pequena e longa duração. Este método é usado para implementar dois interruptores lógicos existindo apenas um único interruptor físico. Caso haja mudança de estado no interruptor lógico, chama o serviço GroupValueW_REQ o qual procura o endereço de grupo correspondente, na tabela de associação, e constrói a trama para que possa ser enviada pelo processo EIB_SendFrame. Activa ainda o processo EIB_SendFrame. Tratase também de um processo activado ciclicamente com um tempo de refrescamento de 20ms. 5.1.2.1 Protocolo RC5 O protocolo RC5 permite gerar 2080 comandos diferentes. Estes comandos estão organizados em 32 grupos cada um contendo 64 comandos e cada grupo está normalmente associado a um determinado tipo de aparelho. Uma trama com o formato RC5 é composta por 14 bits organizados da seguinte forma : • 2 bits para indicar o início da trama • 1 bit de transição que indica se a tecla está a ser pressionada durante muito tempo • 5 bits de endereçamento que indicam qual o endereço do aparelho que pretendemos controlar 2^5=32 grupos de endereçamento Domoitech – Domótica com protocolo EIB - 2007 64 • 6 bits de comando que indicam qual a instrução a executar 2^6=64 instruções . Os bits do código RC5 são codificados pelo método de Manchester em que cada bit é constituído por dois semi-bits alternados: uma transição positiva corresponde a 1 e uma transição negativa corresponde a 0. Na figura seguinte está representado a codificação de um bit. Ilustração 30 – Codificação de um bit RC5 Cada bit tem um tempo de duração de 1.778ms que se multiplicarmos por 14 bits obtemos o tempo correspondente a uma trama completa que é de 24.889ms. Ilustração 31 –Trama RC5 As tramas RC5 são enviadas com um período de 113.778ms que corresponde ao tempo que demoraria a enviar 64 bits. Ilustração 32 – Sequência de duas tramas RC5 A modulação de comandos infravermelhos é feita aplicando uma onda quadrada com uma frequência de 36Khz ao emissor, sempre que se quer enviar o nível lógico 1 para enviar o nível lógico 0 não é aplicado qualquer sinal ao emissor. A onda resultante esta representada na figura seguinte . Domoitech – Domótica com protocolo EIB - 2007 65 Ilustração 33 – Modelação de um bit A figura seguinte ilustra a máquina de estados de descodificação de uma trama RC5. Ilustração 34 – Diagrama de descodificação das tramas RC5 Domoitech – Domótica com protocolo EIB - 2007 66 5.1.2.2 Mecanismo Recepção de tramas Para tornar a recepção de tramas pela porta UART o mais robusta possível, criamos um vector circular no qual são colocados todos os bytes recebidos pela porta série de uma forma sequencial pelo processo EIB_ReadRxByte e posteriormente é executado o processo EIB_FindFrame para encontrar uma trama 9 2 8 Ap A ct ua l válida. O vector tem a seguinte estrutura: 13 19 …. 12 Ilustração 35 – Passagem de vector linear a circular Para implementar este vector circular criamos uma estrutura que permite executar operações sobre o mesmo como que se tratasse de um vector linear de tamanho infinito. As operações permitidas são: IncPtr(NumInc,Ptr) - Incrementa N vezes o apontador especificado por Ptr em que N=NumInc. TamanhoDados(Tamanho) - Calcula o tamanho dos dados entre o apontador ApPrimeiro e o ApActual. EscreveByte(Byte) - Escreve na posição apontada pelo apontador ApActual o Byte recebido pela porta série. Domoitech – Domótica com protocolo EIB - 2007 67 LeByte(Posicao, Byte) - Retorna o Byte apontado pelo apontador especificado pela variável Posicao. Se for uma trama válida iguala o ApPrimeiro ao ApPrimeiro+ tamanho da trama válida al tu Ac p A Pr Ap im ro ei Se tamanho >=MinTamTramaEIB verifica se se trata de uma trama EIB válida 5 6 4 3 2 8 7 eiro ApPrim 19 13 14 18 15 16 17 Ilustração 36 – Incremento do apontador ApPrimeiro 7 3 14 18 Ilustração 37 – Salto do apontador para a posição inicial Domoitech – Domótica com protocolo EIB - 2007 68 5.1.3 Descrição dos processos camada ligação de dados. • EIB_DecodeFrame- Descodifica a trama EIB, procurando qual o serviço associado a esta, através de uma pesquisa na tabela de descodificação de serviços, caso seja um serviço válido chama a função que o vai tratar, actualiza directamente as saídas. Este processo comunica com o processo EIB_FindFrame através de uma variável global TramaEIB[ ]. • EIB_EncodeFrame- Acrescenta os endereços de grupo e/ou físicos nas tramas EIB que são para enviar pela porta série bem como o check octeto e o campo de controlo. • CalculaCO() – Esta função serve apenas para calcular o check octeto fazendo o NOT XOR a todos os octetos da trama EIB excluindo o último que é o check octeto. Recebe como parâmetros a trama EIB e o tamanho da mesma. Domoitech – Domótica com protocolo EIB - 2007 69 5.2 Camada Aplicação Nesta secção será feita uma descrição pormenorizada da camada aplicação do software. No diagrama seguinte é possível ver o fluxo de dados entre os vários módulos e processos desta camada e das camadas inferiores. Optamos por dividir esta camada em duas sub camadas em que uma trata os serviços EIB e a outra implementa os EIS. Ilustração 38 – Diagrama de blocos da aplicação Domoitech – Domótica com protocolo EIB - 2007 70 5.2.1 Serviços EIB implementados • GroupValueWrite – Este módulo implementa o serviço responsável por alterar o estado de uma variável ou saída. Se for recebida uma trama EIB deste serviço, esta função é executada e verifica na tabela de associação quais os dispositivos associados ao código de grupo recebido. Se encontrar algum dispositivo, verifica numa outra tabela de EIS, o tipo de objecto a que pertencem esses dispositivos. Se existirem, é chamada a função que implementa esse tipo de EIS. No capítulo 2, esta função EIB é descrita com mais pormenor. • GroupValueREAD_REQ – Este módulo implementa o serviço Group Value Read Request pertencente ao modo de comunicação multicast. Este serviço encontra-se descrito no capítulo 2. Tem a função de pesquisar na tabela de associação que contém uma relação entre os códigos de grupo e os códigos dos dispositivos, quais os dispositivos que correspondem ao endereço de grupo destino recebido na trama EIB. Se existirem dispositivos são guardados numa lista e passa-se por parâmetro à função que envia implementa a função de resposta a esta serviço. • GroupValueREAD_RES – Este módulo é chamado pelo anterior e envia uma resposta com o estado dos dispositivos que recebeu por parâmetro. Recebe também a quantidade de dispositivos que tem de enviar para calcular o tamanho da trama EIB a enviar. Constrói a trama EIB colocando como endereço de origem, o endereço físico da placa remetente e como endereço destino, o da placa que efectuou o pedido de leitura. Ou seja, o endereço de destino é o mesmo endereço de origem da trama recebida anteriormente. Este serviço está descrito com mais pormenor no capítulo 2. • GroupValueW_REQ – Este módulo implementa o serviço EIB de alteração no estado dos dispositivos tal como o modulo GroupValueW(), mas esta só tem a funcionalidade de enviar uma trama de pedido de muda de estado às outras placas. É que para além de receber pedidos de trocar estados, estas placas também podem efectuar pedidos a outras. Assim pode-se utilizar os interruptores ligados a uma placa para ligarem Domoitech – Domótica com protocolo EIB - 2007 71 dispositivos de outras placas. Esta função faz o inverso da GroupValueW(), em que recebe o código de dispositivo e, o estado e a subfunção para o caso do Drive Control e procura na tabela de associação, para esse dispositivo, qual o código de grupo a enviar. Verificado o código de grupo, chama-se a função que constrói a trama deste serviço e envia-a. 5.2.2 EIS implementados • EIS_SWITCHING() – Esta função implementa um objecto do tipo comutação ON/OFF em que muda o estado de uma variável ou saída binária. Recebe como parâmetros o valor do estado e o código do dispositivo de saída. No capítulo 2 é descrito como funciona este objecto e para que serve. • EIS_DRIVECONTROL() – Esta função é semelhante à anterior, mas neste caso implementa um objecto do tipo drive control. Recebe como parâmetros o estado, o código do dispositivo que se deseja mudar o estado e a subfunção que indica se é uma acção do tipo STEP ou MOVE. No capítulo 2 é descrito com mais pormenor este objecto. • Troca_Estados() – Esta função recebe como parâmetro o código do dispositivo e muda o estado das saídas mediante o pretendido. É aqui que se actua directamente nas saídas. • TimeEstoreMoving – Sempre que um dispositivo do tipo estore é activo, inicia um contador para determinar o tempo durante o qual este está activo, compara este tempo com o tempo definido nas variáveis Time_max_step ou Time_max_mouving, dependendo do tipo de movimento pedido, e quando for igual desactiva a saída associada a este dispositivo. Este processo é activado ciclicamente com um tempo de refrescamento de 10ms. Domoitech – Domótica com protocolo EIB - 2007 72 5.3 Estruturação de ficheiros O software do micro controlador foi optimizado ao máximo e estruturado de forma a funcionar como um sistema operativo. Desta forma cada processo tem um nível de prioridade associado. Dentro do projecto existem 5 subgrupos: o main, sched, decodeeib, readinput e o ir. A imagem seguinte ilustra como está organizado os ficheiros do código do PIC. Ilustração 39 – Estrutura de ficheiros do programa Para facilitar a compreensão, os subgrupos foram estruturados de acordo com o tipo de dados a tratar: Main- Executa as inicializações do hardware e faz a gestão da execução dos processos, esta associado ao nível do núcleo. Sched- Contém a estrutura que define os processos bem como os mecanismos de manipulação sobre estes. Decodeeib- Contém toda a stack correspondente ao protocolo eib. Domoitech – Domótica com protocolo EIB - 2007 73 Ir- Implementa todas as funções necessárias ao funcionamento do comando de infravermelhos, a descodificação do protocolo RC5 e a execução das instruções correspondentes ao comando recebido. Readinput- Verifica se ouve alteração no estado das entradas, e implementa entradas lógicas. Domoitech – Domótica com protocolo EIB - 2007 74 6 Integração do Sistema A construção do hardware e do software foi realizada de forma paralela e à medida que se evoluiu no software foi existindo a necessidade de evoluir no hardware de forma a torná-lo mais robusto e de pequenas dimensões. O que não era possível realizar por hardware, fazia-se por software e assim criou-se um sistema mais robusto e respeitando todos os objectivos propostos. Uma possível instalação deste sistema numa casa é ilustrada na figura seguinte: R P P P Ilustração 40 – Exemplo de uma instalação do Domoitech Neste exemplo, foram necessárias 3 placas principais fazendo um total de 21 saídas e 21 entradas. A linha desenhada com um tracejado a verde representa o barramento Ethernet que interliga todas as placas através de um router ou switch representado por um quadrado verde. As linhas com um tracejado a azul Domoitech – Domótica com protocolo EIB - 2007 75 representam a rede entre sensores e actuadores. É o que faz a interligação entre a placa principal e as placas de saídas a relés e triac’s, que também têm duas entradas respectivamente. Os pontos azuis representam as placas de saídas a relés porque servem para ligar luzes ou outros dispositivos de accionamento do tipo ON/OFF. Os pontos de cor violeta representam as placas de saída a triac’s para accionamento de estores. Junto a essas placas é possível ter interruptores ligados às mesmas, pois cada placa possui duas entradas para interruptores. Para podermos exemplificar o funcionamento do sistema, fizemos um expositor com duas placas principais, uma para cada divisão da casa, à qual dividimos em um quarto e uma sala. Cada divisão tem duas lâmpadas, quatro interruptores de pressão e um estore, simulado por duas lâmpadas indicando o sentido de movimento do estore. O aspecto final do expositor é o seguinte: Ilustração 41 – Expositor do projecto As placas principais, localizam-se na parte superior do expositor e ficaram inseridas dentro da caixa de derivação. Foram desenhadas com as medidas ideais para caber dentro de caixas como estas. As outras placas, encontram-se dentro das caixas dos interruptores, aproveitando o espaço que sobra entre o mecanismo do interruptor e o fundo da caixa. Utilizamos um comando de uma televisão da Philips Domoitech – Domótica com protocolo EIB - 2007 76 porque utiliza o protocolo RC5, e com ele comandamos também as lâmpadas e estores. Na parte traseira do expositor, encontra-se a cablagem com a rede Ethernet e a rede de sensores e actuadores. A cablagem que transporta os 230V CA da rede para alimentar interruptores e lâmpadas, encontra-se completamente isolada da cablagem que transporta os 8-12V CC da alimentação das placas principais. Ilustração 42- Imagem da parte traseira do expositor Para testar ainda o funcionamento de um computador servidor de web na rede, desenvolvemos uma pequena aplicação feita em Lazarus, para comunicar com o barramento de Ethernet enviando tramas EIB pela rede. Esta mesma aplicação, efectua uma ligação a uma base de dados que pode ser interna ou externa e que guarda os estados dos dispositivos. Para poder aceder a essa base de dados e comandar remotamente dispositivos pela rede, criamos também uma aplicação web feita em PHP. Domoitech – Domótica com protocolo EIB - 2007 77 O esquema de comunicação deste servidor é o seguinte: Ilustração 43 - Esquema servidor web Na parte superior encontram-se os clientes web que utilizam um browser e com um acesso à Internet podem saber o estado ou actuar num dispositivo da casa. Para segurança, o acesso à página só é possível com autenticação. Quando se pede ao servidor web para mostrar a página web surge a seguinte janela: Ilustração 44 –Página web de autenticação Domoitech – Domótica com protocolo EIB - 2007 78 Para aceder à página da habitação é necessário ter uma conta de acesso e efectuar a validação através desta interface web. Depois de autenticado, surge outra janela onde é possível efectuar a navegação pela habitação. Ilustração 45 – Página web de navegação Nesta interface web é possível seleccionar a divisão da casa que se deseja saber o estado da mesma. Se for seleccionado a divisão sala, surge uma nova janela como ilustrada na imagem seguinte, com a informação do estado das lâmpadas e estores na sala e é possível actuar no estado das mesmas. Ilustração 46 – Página web de uma divisão Esta divisão contém das lâmpadas e um estore. É notório que as lâmpadas encontram-se acesas pois estão sinalizadas com uma cor verde. O estore encontra- Domoitech – Domótica com protocolo EIB - 2007 79 se parado porque os sinalizadores de movimento para cima ou para baixo, estão desligados e representados pela cor vermelha. Como já foi explicado o servidor web comunica com uma base de dados para alterar ou ler o valor de estados de dispositivos. Mas quem é responsável por ler esses valores e actuar directamente na rede Domoitech, é a aplicação Fat Client feita em Lazarus. Esta aplicação tem a seguinte interface: Ilustração 47 – Aplicação feita em Lazarus Com esta aplicação também é possível actuar directamente nos dispositivos sem utilizar a página web. Assim, temos quatro maneiras possíveis de actuar por exemplo numa lâmpada. Pode ser feita por um comando de IV, um interruptor, pela página web ou pela aplicação feita em Lazarus. Para se poder utilizar a página web, esta aplicação tem de estar ligada à rede Domoitech e à base de dados para poder actualizar todos os estados. Esta aplicação está continuamente a verificar o estado dos dispositivos da rede, enviando comandos EIB que perguntem o estado dos mesmos e actualiza a Base de Dados com os estados. Verifica também se ocorreu na Base de Dados alguma alteração de forma a identificar se algum cliente web enviou alguma ordem. Se ocorrer alguma alteração, o dispositivo correspondente, é actualizado. É de notar que o protocolo de transporte ethernet utilizado é o UDP. Assim não é necessário efectuar uma conexão e a transferência de tramas é feita Domoitech – Domótica com protocolo EIB - 2007 80 rapidamente. A aplicação feita em Lazarus está configurada para ser um servidor e as placas principais são os clientes. Nesta configuração, necessitamos apenas de definir o número da porta a utilizar e configurar nas placas principais a porta remota com o mesmo número. É de notar que como a XPORT não permite a utilização de multicast, todas as tramas EIB que circulam na rede, são em broadcast. Por essa razão, é necessário configurar na XPORT como endereço remoto, o endereço de broadcast da rede. Como a aplicação feita em Lazarus é um servidor, não é necessário colocar um endereço IP remoto e apenas a porta pela qual comunica. Domoitech – Domótica com protocolo EIB - 2007 81 7 Conclusão Os objectivos iniciais foram atingidos, e outros objectivos pessoais, tais como o rigor na estruturação do software e a apresentação do hardware, foram tidos em conta até o final do projecto e foram conseguidos. Num tempo de projecto de aproximadamente 13 semanas com um tempo de trabalho semanal médio de 48 horas, as primeiras 4 semanas foram para pesquisas de soluções (protocolos, meios físicos e arquitectura). Para um bom projecto, a análise de requisitos é uma parte muito importante e foi a de maior duração. Nas últimas 7 semanas do projecto implementamos o software e do hardware e montamos expositor. Realizamos 4 versões de placas principais e de software foram realizadas 17 versões. Em cada versão de software, era criada uma nova função e testada, se funcionasse correctamente incrementava-mos a versão de forma a poder salvaguardar o trabalho funcional. O software foi estruturado de forma que caso fosse necessário acrescentar alguma função ou alguma alteração, poderia ser feito sem que isso altera-se o que já tinha sido desenvolvido. Foi necessário rever alguns conhecimentos de redes e de sistemas operativos para nos auxiliar na implementação do código. Uma das principais dificuldades encontradas ao longo do projecto, foi a adaptação ao microcontrolador desconhecido até à data e encontrar ferramentas de trabalho gratuitas e com muitas potencialidades. Ao nível do hardware, foi necessário rever conhecimentos de electrónica e sentimos dificuldades na criação dos desenhos das placas de circuito impresso. Para criação do software de um servidor de web foram necessários conhecimentos em programação PHP e Pascal utilizada na aplicação Lazarus. As ferramentas de criação do servidor são gratuitas, assim como a Base de Dados utilizada (Postgresql) e que permitem diminuir ainda mais o custo do projecto. Ao longo do projecto tivemos contacto com outros sistemas semelhantes a este, inclusive efectuamos um estudo de mercado junto de empresas concorrentes. Não foi possível realizar a experiência de interligar este sistema com outros, devido a questões de tempo. Domoitech – Domótica com protocolo EIB - 2007 82 O sub capítulo seguinte contém o custo final do projecto e apresenta para um caso igual, uma solução de um sistema concorrente. 7.1 Custo do Projecto Placa principal: Quantidade Descrição Preço Valor (€) unitário (€) 1 Gc-Xport 37.10 37.10 1 Pic18f452 plcc 12.15 12.15 7 Socket vertical 6/6 pcb 0.70 4.90 7 Conector modular 6/6 0.49 3.43 1 Socket plcc 44 pinos 0.40 0.40 1 Cristal de 20Mhz 0.43 0.43 1 Pulsor 0.50 0.50 1 Lm7805 regulador de 5v 0.40 0.40 1 Ld1117av33 regulador 3.3v 0.92 0.92 - Resistências 0.20 0.20 1 Placa PCB 7x7mm TOTAL 60.43 € Tabela 2 – Custo da placa principal Domoitech – Domótica com protocolo EIB - 2007 83 Placa de relés: Quantidade Descrição Preço Valor (€) unitário (€) 1 Socket vertical 6/6 pcb 0.70 0.70 1 Conector modular 6/6 0.49 0.49 2 Relé 5v CC 5A 2.50 5.00 2 Optoacoplador 0.60 1.20 2 Conector de 5mm 4 pinos 0.84 1.68 1 Placa PCB 4x4mm TOTAL 9.07 € Tabela 3- Custo placa relés Placa de triac’s: Quantidade Descrição Preço Valor (€) unitário (€) 1 Socket vertical 6/6 pcb 0.70 0.70 1 Conector modular 6/6 0.49 0.49 2 Bt137 Triac de 600Vac 2 A 0.79 1.58 2 Optoacoplador 0.60 1.20 2 Optotriac 0.68 1.36 2 Conector de 5mm 4 pinos 0.84 1.68 1 Placa PCB 4x4mm TOTAL 7.01€ Tabela 4- Custo placa triac’s Domoitech – Domótica com protocolo EIB - 2007 84 Orçamento para uma casa com dois quartos, uma cozinha, uma sala, uma casa de banho, um corredor e duas varandas: Quantidade Descrição Preço Valor (€) unitário (€) 3 Placa principal 60.43 181.29 6 Placa de reles 9.07 54.42 14 Placa de triac’s 7.01 119.17 1 Switch D-link DES-1005D 5 18.60 18.60 Portas TOTAL 373.48 Tabela 5- Orçamento para uma casa utilizando Domoitech É de notar que estes preços foram consultados na empresa Farnell [9], tendo em conta a compra de apenas uma unidade e por isso, torna o preço dos componentes, mais elevado. É possível portanto reduzir o custo do projecto se comprado em bastantes unidades. Existem outros valores que não foram tidos em conta, como os portes e o custo das placas de circuito impresso, mas que não alteram muito o valor final do projecto. Para ter uma comparação com outros sistemas existentes no mercado, investigamos o preço de uma solução igual a esta mas utilizando o sistema KNX/EIB da Siemens [8]. Então, um orçamento para uma casa média com três quartos, uma cozinha, uma sala, duas casas de banho e um corredor fica por: Domoitech – Domótica com protocolo EIB - 2007 85 Quantidade Descrição Preço Valor (€) unitário (€) 1 Fonte de Alimentação N121 160.44 160.44 1 Filtro Indutivo N120 48.90 48.90 1 Interface RS232 N148 55,44 55,44 5 Entradas Binárias 4 p/botões 93.81 469.05 de pressão – UP220 4 Saída Binária 4 – N561 216.25 865 3 Saída de estores 2 – N521 207.60 622.8 3 Receptor de Infravermelhos 56.26 168.78 1 Comando IV – AP25 78.11 78.11 1 Descodificador de IV – N450 163.26 163.26 5 Botões de Pressão 4 Delta 70.91 354.55 Style –UP287 TOTAL 2986.33 Tabela 6 – Orçamento para uma casa utilizando a solução da Siemens Esta solução é para um sistema com uma rede Twisted Pair e por isso necessita de uma fonte de alimentação e um filtro para alimentar o barramento. É notório a diferença de quase 8 vezes mais o custo entre a solução da Siemens e a solução utilizando este projecto. Domoitech – Domótica com protocolo EIB - 2007 86 7.2 Futuros Melhoramentos Um projecto nunca está terminado, existe sempre algo a melhorar. Neste projecto, os principais pontos a melhorar são: - Desenvolver mais funções e objectos EIB - Convergir para KNX - Compatibilidade com o software ETS para configuração das placas - Realizar testes de compatibilidade com outros sistemas - Criar umas caixas blindadas para colocação das placas obtendo uma melhor apresentação para venda no mercado - Certificação do sistema Domoitech – Domótica com protocolo EIB - 2007 87 Referências • [1] WIKIPÉDIA, http:// en.wikipedia.org, Junho 2007 • [2] MONTEIRO, José, Montagem de um sistema didáctico utilizando a tecnologia Instabus/EIB da Siemens, José Monteiro, Dezembro 2004 . • [3] DOMODESK, http://www.domodesk.com/, Junho 2007 • [4] CASAINTELI, http://acasainteligente.blog.com/,Março 2007 • [5] CASADOMO, http://www.casadomo.com/,Março 2007 • [6] UA, http://portal.ua.pt/bibliotecad/default1.asp?Obra=28&H1=2&H2=0, Junho 2007 • [7] KNX, http://www.knx.org/, Março 2007 • [8] OPTERNUS, www.opternus.com, Março 2007 • [9] FARNELL, ww.farnell.com, Março 2007 • [10] LANTRONIX, www.Xport-RJ45.com, Março 2007 • [11] MICROCHIP, www.microchip.com, Março 2007 Domoitech – Domótica com protocolo EIB - 2007 88 Anexo A: Descrição Protocolo X-10 O X-10 é um protocolo de comunicação, desenhado para enviar sinais pela rede eléctrica. É um protocolo bastante utilizado na Domótica porque utiliza a instalação prévia da rede eléctrica de uma casa, mas em contrapartida, é um pouco lento a actuar. As transmissões em X-10 são sincronizadas com detectores de passagem por zero na rede eléctrica AC. Monitorizando os detectores de passagem por zero, os dispositivos X-10, sabem quando por transmitir ou receber informação. Um dígito binário '1' é representado por a subida da onda para 220V com a duração de 1ms e perto do valor onde a onda passou por zero. Uma trama X-10 é composta por um código que indica o início da mensagem representado por '1110', seguido do código da casa e do código que pode ser de uma função ou de endereço de uma unidade. As tabelas seguintes, indicam os possíveis códigos para a casa, unidades e funções. Tabela 7 – Códigos de casa Domoitech – Domótica com protocolo EIB - 2007 89 Tabela 8 - Códigos de unidades e funções Quando os códigos das tabelas são transmitidos, cada bit é complementar de um par de bits, por exemplo, um '0' é representado por '01' e um '1' é representado por '10'. Utilizando o exemplo do código de casa '0110', este é transmitido com os seus bits complementares '01101001'. O código de unidades e função é representado por 5 bits, logo enviado com 10 bits. O último bit é '0' no caso de ser um código de unidade e '1' no caso de ser um código de função. Domoitech – Domótica com protocolo EIB - 2007 90 Uma trama X-10 completa, é constituída por um código de início, código da casa, código de unidade ou função e um sufixo. Cada trama é enviada duas vezes com 3 ciclos da rede eléctrica, ou seis passagens por zero, entre um par de tramas. Por exemplo, para ligar um módulo X-10 com o código de casa A e unidade 2, envia- se a seguinte trama de endereço duas vezes: Ilustração 48 - Exemplo de uma trama de endereço X-10 Depois espera-se três ciclos (seis passagens por zero) e envia-se a seguinte trama de comando duas vezes: Ilustração 49 - Exemplo de uma trama de comando X-10 Existem excepções neste formato, no caso de um comando de iluminação e diming, não é necessário esperar os três ciclos entre os comandos. Domoitech – Domótica com protocolo EIB - 2007 91 VIN D19 VOUT 8 7 6 5 4 3 2 1 LED GND Xport R27 470R 3 2 C5 IRreceptor 10uF D20 LED 10uF C7 J14 PROG 1 2 3 4 5 6 J12 RJ11 R28 R29 R30 36 37 38 39 41 42 43 44 C2 22Pf 14 15 C1 Y3 20Mhz 2 1 35 12 J15 R2 10k 2 1 SW1 13 22pf C6 10uF 16 18 19 20 25 26 27 29 RJ11 J17 6 5 4 3 2 1 21 22 23 24 30 31 32 33 GND RJ11 J13 12V J16 9 10 11 40 28 17 LD1117cd3.3V RC5 VOUT 10k 10k 10k GND RJ11 RA0/AN0 RC0/T1OSO/T1CKI RA1/AN1 RC1/T1OSI/CCP2 RA2/AN2 RC2/CCP1 RA3/AN3/VREF RC3/SCK/SCL RA4/TOCKI RC4/SDI/SDA RA5/AN4/SS RC5/SDO RC6/TX/CK RBO/INT RC7/RX/DT RB1 RB2 RD0/PSP0 RB3 RD1/PSP1 RB4 RD2/PSP2 RB5 RD3/PSP3 RB6 RD4/PSP4 RB7 RD5/PSP5 RD6/PSP6 OSC1/CLKIN RD7/PSP7 OSC2/CLKOUT RE0/RD/AN5 MCLR/VPP RE1/WR/AN6 NC RE2/CS/AN7 VDD NC VDD NC NC 2 GND 2 6 5 4 3 2 1 34 1 2 3 4 5 6 J11 U3 3 4 5 6 7 8 GND RJ11 J18 6 5 4 3 2 1 VIN 1 2 3 4 5 6 J10 LM7905 RC5 3 2 4 6 VOUT 1 3 5 VIN BZX84C3V3/SOT 1 RJ11 R25 100R 3 J9 D17 1 1 2 3 4 5 6 1 2 470R R26 RJ11 PIC16F877A CON2 RESET Title Placa principal Size A Date: Document Number 1 Tuesday , June 19, 2007 Rev 1.1 Sheet 1 of 1 92 Anexo B: Esquema Eléctrico Placa J4 RC5 1 Central Domoitech – Domótica com protocolo EIB - 2007 VCC LS1 Q1 BC547 5 3 4 1k D1 DIODE J2 6 5 4 3 2 1 1 2 J1 Saida1 1 2 3 4 5 6 VCC R2 Q2 BC547 RJ11 LS2 1k Output 5 3 J3 4 4 3 2 1 D2 DIODE 1 2 Saida2 1 R4 1k 3 U3A 2 8 R3 1k 4050 1 Input 5 U3B 4 8 4050 Title Saida em relés Size A Date: Document Number 2 Saturday , May 05, 2007 Rev 1.1 Sheet 1 of 1 93 Anexo C: Esquema Eléctrico Placa VCC Saída em Relés Domoitech – Domótica com protocolo EIB - 2007 VCC R1 4 R15 1 R14 180R 4 3 2 1 R 6 J4 Q2 TRIAC J2 U13 MOC3011 2 4 OUTPUT 1 R 6 R17 1 2 3 4 5 6 R16 VCC RJ11 R J3 4 3 2 1 R4 1k 1 INPUT 3 U3A 2 8 4050 1 R3 1k 5 U3B 4 8 4050 Title Saidas em triac's Size A 94 Date: Document Number 3 Saturday , May 05, 2007 Rev 1.1 Sheet 1 of 1 Anexo D: Esquema Eléctrico Placa U12 MOC3011 2 Saída em Triac’s Domoitech – Domótica com protocolo EIB - 2007 Q1 TRIAC C1 10uF C2 10uF C4 10uF 16 C1+ C1C2+ C2V+ V- C3 10uF R1OUT R2OUT T1OUT T2OUT 12 9 J1 14 7 4 3 2 1 4 HEADER GND 1 3 4 5 2 6 T1IN T2IN 15 11 10 R1IN R2IN R 470R MAX232A D1 LED Title Programador Size A Date: Document Number 4 Sunday , May 06, 2007 Rev 1.1 Sheet 1 of 1 Anexo E: Esquema Eléctrico CONNECTOR DB9 1 6 2 7 3 8 4 9 5 13 8 VCC U1 P1 Programador Domoitech – Domótica com protocolo EIB - 2007 VCC 95