Você está na página 1de 77

Faculdade de Engenharia da Universidade do Porto

Gateway ZigBee - Modbus/TCP

Pedro Miguel Carvalho Pereira

Dissertao realizado no mbito do Mestrado Integrado em Engenharia Electrotcnica e de Computadores Major Automao Orientador: Paulo Jos Lopes Machado Portugal

Junho de 2009
i

Pedro Pereira, 2009

Resumo

Actualmente as redes de sensores sem fios apresentam uma expanso significativa devido a terem sido superadas algumas das dificuldades iniciais no momento do seu aparecimento. Dificuldades como a fiabilidade na transmisso das mensagens, aumento da longevidade da bateria e custo elevado foram resolvidas abrindo portas para mercados com maiores exigncias como a indstria ou aplicaes mdicas. Este trabalho apresenta uma soluo tecnolgica para integrar as redes sem fios com as redes de campo j existentes, tendo como propsito criar uma estrutura capaz de fazer a ligao entre o protocolo ZigBee e o Modbus. Esta estrutura capaz de pertencer adequadamente aos dois protocolos expandindo uma rede Modbus e tornando possvel o acesso aos dispositivos sem fios atravs da rede cablada. A implementao de uma gateway entre as duas redes possibilita a conectividade pretendida mantendo a estrutura sem necessidade de alteraes em nenhuma das redes. Este ponto essencial pois s assim possvel uma interactividade completa respeitando a integridade de ambos os protocolos, indispensvel para obter uma utilizao fivel em aplicaes industriais, onde por vezes existem mais do que um tipo de dispositivos a funcionar cooperativamente. Para alm da descrio dos aspectos tcnicos ligados implementao feita uma exposio sobre a arquitectura que a gateway deve ter para permitir o bom funcionamento da rede. Toda a estrutura desta dissertao e consequente implementao teve como objectivo a gateway pertencer a uma rede com um nico cliente de Modbus, podendo existir ou no mais servidores de Modbus. Esta gateway tem de ser capaz de, para alm de gerir a rede ZigBee, de responder aos pedidos do clientes Modbus.

iii

Abstract

Nowadays, the wireless sensor networks are growing significantly mainly because the initial difficulties were all ready overcome, like the transmissions reliance of the messages, the low capacity of the battery and the high cost of the wireless technology itself. These facts allowed the entrance of the wireless technology in hard markets, like industry and medical markets. This work presents a technologic solution to integrate a wireless sensor network with previous implanted field networks and the aim of this work is to create a framework that is able to establish a connection between the ZigBee and the Modbus protocols. This framework is also able to belong correctly to the two networks and therefore to expand the Modbus network, making possible the access to the ZigBee nodes through the wired network. The gateways implementation provides the desired connection keeping the framework of the two protocols. This point is one of the most important because only that way, it is possible to ensure the integrity of the protocol and the full connection with all networks which is indispensable in an industrial environment. Beside the technical issues of the implementation, a general overview of the architecture of the gateway is presented in order to guarantee the correct operation of the entire network. The framework and the consequent implementation had the single propose that gateway would belong in a network with only a Modbus client.

Agradecimentos

Ao meu orientador, professor Paulo Portugal, pela pacincia teve comigo, pelas suas palavras motivadoras e pelos seus esforos feitos no decorrer desta dissertao. Aos meus pais por todos os momentos em que me ajudaram. Aos meus amigos por todas as noites passadas em conjunto. Cristina pelos incontveis dias adiados sempre com um toque pacincia e pronta para me ajudar.

vii

ndice

Resumo ............................................................................................ iii Abstract ............................................................................................. v Agradecimentos .................................................................................. vii ndice............................................................................................... ix Lista de figuras ................................................................................... xi Lista de tabelas ................................................................................. xiii Abreviaturas e Smbolos ........................................................................ xv Captulo 1 .......................................................................................... 1
Introduo ......................................................................................................... 1 1.1 - Enquadramento ........................................................................................ 1 1.2 - Objectivos ............................................................................................... 2 1.3 - Metodologia ............................................................................................. 2 1.4 - Estrutura da dissertao .............................................................................. 3

Captulo 2 .......................................................................................... 5
Tecnologias e Conceitos Associados .......................................................................... 5 2.1 - Redes de sensores sem fios .......................................................................... 5 2.2 - A importncia de uma gateway ..................................................................... 6 2.3 - Modbus ................................................................................................... 6 2.3.1. Estrutura das mensagens ................................................................. 7 2.3.2. Excepes ................................................................................. 10 2.4 - ZigBee .................................................................................................. 11 2.4.1. Dispositivos presentes numa rede ZigBee ........................................... 11 2.4.2. Topologia da rede ....................................................................... 12 2.4.3. Formato das frames ..................................................................... 13 2.4.4. Arquitectura do ZigBee ................................................................. 14 2.4.5. Primitivas ................................................................................. 16 2.4.6. Binding.................................................................................. 17 2.4.7. Exemplos de aplicaes ZigBee ....................................................... 18

Captulo 3 .........................................................................................19
Arquitectura .................................................................................................... 19

ix

3.1 3.2 3.3 3.4 -

Descrio .............................................................................................. 19 A arquitectura da gateway ......................................................................... 21 Mapeamento de funes ............................................................................ 30 Hardware .............................................................................................. 31

Captulo 4 ......................................................................................... 33
Implementao ................................................................................................. 33 4.1 - Hardware utilizado .................................................................................. 33 4.2 - Picdem Z .............................................................................................. 34 4.3 - Xport ................................................................................................... 35 4.4 - Software utilizado ................................................................................... 37 4.4.1. A stack da Microchip ................................................................. 38 4.4.2. Zena ....................................................................................... 38 4.5 - Trabalho desenvolvido .............................................................................. 40 4.5.1. Mquina de estados de ZigBee ........................................................ 42 4.5.2. Mquina de estados de Modbus ....................................................... 44 4.5.3. Interaco entre os dois protocolos.................................................. 45 4.5.4. Configuraes ............................................................................ 46 4.5.5. Integrao com o programa da Microchip ........................................... 51 4.5.6. Dificuldades encontradas .............................................................. 53

Captulo 5 ......................................................................................... 55
Concluses e Trabalho Futuro ............................................................................... 55 5.1 - Concluses ............................................................................................ 55 5.2 - Trabalho futuro ...................................................................................... 56

Referncias ....................................................................................... 59

Lista de figuras

Figura 1 - Estrutura tpica de uma mensagem de Modbus TCP ........................................7 Figura 2 - Gama de "function codes" do protocolo .......................................................8 Figura 3 - Envio de mensagem sem erro de recepo adaptado de [5]. .............................8 Figura 4 - Envio de mensagem com erro de recepo adaptado de [5]. .............................9 Figura 5 - Esquema de uma transio do lado do servidor adaptado de [5]. ...................... 10 Figura 6 - Rede ZigBee em estrela ........................................................................ 13 Figura 7 - Rede ZigBee em "cluster" ...................................................................... 13 Figura 8 - Rede ZigBee emalhada ......................................................................... 13 Figura 9 - Frame de dados do protocolo ZigBee ........................................................ 14 Figura 10 - Esquema da stack de ZigBee .............................................................. 15 Figura 11 - interaco entre camadas [9]. .............................................................. 16 Figura 12 - Exemplo de "binding" adaptado de [10]. .................................................. 17 Figura 13 - Exemplo de aplicaes ZigBee no campo da domtica adaptado de [12]. .......... 18 Figura 14 - Estrutura da rede. ............................................................................. 20 Figura 15 - Estrutura da gateway (vista global). ....................................................... 22 Figura 16 - Pormenor da gateway. ........................................................................ 23 Figura 17 - Juno de um n rede. ..................................................................... 25 Figura 18 - Esquema de uma recepo de mensagem de leitura desde o cliente at gateway. ................................................................................................ 26 Figura 19 - Esquema de recepo de uma mensagem de escrita e subsquente envio para o n respectivo ........................................................................................... 27 Figura 20 - Esquema de consulta peridica aos ns ZigBee. ......................................... 29

xi

Figura 21 -Estrutura bsica da gateway adaptado de [17] ........................................... 31 Figura 22 - N de desenvolvimento do Picdem Z....................................................... 34 Figura 23 Xport ............................................................................................. 35 Figura 24 - Arquitectura interna do Xport. .............................................................. 36 Figura 25 - Pgina de configuraes da porta srie do XPort ........................................ 37 Figura 26 - Painel de configuraes do software Zena. ............................................... 39 Figura 27 - Modo de visualizao das mensagens ZigBee. ............................................ 39 Figura 28 - Estrutura de leitura de um registo do tipo holding adaptado de [5]. ................ 41 Figura 29 - Estrutura de funcionamento da gateway. ................................................. 42 Figura 30 - Estrutura da mquina estados ZigBee...................................................... 43 Figura 31 - Estrutura de um servidor de Modbus adaptado de [5]. ................................. 44 Figura 32 - Menu de configuraes com opo genrica.............................................. 47 Figura 33 - Estrutura da opo para acrescentar um n. ............................................. 48 Figura 34 - Estrutura da opo para alterar as configuraes de cada n......................... 49 Figura 35 - Estrutura da opo para eliminar um n da gateway. .................................. 50 Figura 36 - Estrutura da opo para listar os ns. ..................................................... 50 Figura 37 - Incluso do programa principal no cdigo do coordenador ZigBee ................... 51 Figura 38 - inserir um n na tabela de endereamento............................................... 51 Figura 39 - Recepo de uma mensagem via Modbus. ................................................ 52 Figura 40 - Actualizao da tabela de endereamentos. ............................................. 52 Figura 41 - Actualizao automtica das entradas dos ns. ......................................... 52 Figura 42 - Escrita num registo na tabela de endereamentos. ..................................... 53

Lista de tabelas

Tabela 1 - Exemplo das funes mais comuns do protocolo Modbus .................................7 Tabela 2 - Tabela de endereamento conceitual. ..................................................... 24 Tabela 3 - Recepo de uma trama com um "function code" no implementado. ............... 25 Tabela 4 - Envio de uma trama de resposta a um "function code" no implementado. ......... 26 Tabela 5 - Trama de leitura de um registo enviada pela cliente Modbus.......................... 26 Tabela 6 - Envio da resposta trama de leitura de um registo enviada pela cliente Modbus. ................................................................................................. 27 Tabela 7 - Envio, pelo cliente Modbus, de um pedido de escrita num registo.................... 27 Tabela 8 - Envio da trama ZigBee para escrever na sada correspondente. ....................... 28 Tabela 9 - Confirmao que a mensagem foi enviada com sucesso. ............................... 28 Tabela 10 - Envio, para o cliente Modbus, da confirmao da escrita no registo pedido....... 28 Tabela 11 Envio de uma trama para o cliente Modbus, caso no exista confirmao de envio. .................................................................................................... 28 Tabela 12 - Envio de trama ZigBee de forma a ler todas as entradas e sadas presentes no n ZigBee. .............................................................................................. 29 Tabela 13 - Envio da resposta por parte do n ZigBee. ............................................... 29 Tabela 14 - Tabela de endereamentos. ................................................................ 46 Tabela 15 - Campos enviados pelo n ZigBee ao se activar uma sada............................. 53

xiii

Abreviaturas e Smbolos

Lista de abreviaturas APL APO APS


APSDE FFD

Application layer Application object Application support sub-layer Application support sub-layer data entity Full function device Internet Protocol Medium access control Network layer Open Systems Interconnection Physical layer Service access point Reduced function device Redes de sensores sem fios ZigBee end device ZigBee device object

IP MAC NWK OSI PHY SAP


RFD

RSSF ZED ZDO

xv

Captulo 1

Introduo

Este captulo faz uma pequena introduo temtica na qual se insere o trabalho. So ainda referidos os objectivos bem como a metodologia utilizada na abordagem do mesmo. No final, so enumerados os assuntos abordados em cada captulo.

1.1 - Enquadramento
O desenvolvimento actual das redes sem fios permite a produo de ns de sensores cada vez mais pequenos, fiveis e autnomos facilitando a sua integrao em campos onde a sua utilizao no era permitida anteriormente. Estes pequenos dispositivos tm vindo a abranger reas como a vigilncia e a domtica onde se tm revelado extremamente capazes devido flexibilidade e capacidade de se organizarem de forma a reencaminhar mensagens para os vrios destinos apesar do seu curto alcance. O boom desta tecnologia originou o aparecimento de redes como o ZigBee, que alia a flexibilidade ao baixo consumo dos seus dispositivos tornando-a assim uma tecnologia interessante quando se tratam de redes com muitos ns e uma taxa de transferncia baixa. Existem j um sem nmero de aplicaes deste gnero apesar da sua curta existncia. Com o crescimento desta tecnologia e com o aumento da sua segurana e fiabilidade, as redes de sensores sem fios comearam a surgir em reas que at ento no eram sequer consideradas. A indstria, nas suas variadas vertentes, uma dessas reas, existindo hoje em dia j bastantes aplicaes. No entanto existe a dificuldade de integrar dois sistemas to distintos como as redes de campo que surgiram antes da dcada de 80 e as redes sem fios mais actuais. neste campo que se insere o projecto tentando facilitar a integrao das

Introduo

redes sem fios de curto alcance em ambientes de natureza industrial de forma a diminuir os custos de implementao destas bem como acrescentar outras vantagens de operabilidade com novas redes de sensores.

1.2 - Objectivos
A necessidade de uma interface que concilie uma rede sem fios e uma rede de campo uma mais-valia considervel principalmente no domnio das redes sem fios facilitando a sua integrao em reas industriais. Se nesta integrao for utilizada uma rede de campo com grande aceitao no mercado quer a gateway, o trabalho aqui apresentado, quer a rede sem fios em questo saem beneficiadas. Este trabalho prope-se desenvolver uma gateway que permita interligar uma rede ZigBee a uma rede que suporte o protocolo Modbus/TCP respeitando os dois protocolos e criando um meio no qual os dois possam trocar informao. A gateway tem tambm de condicionar o acesso dos ns ZigBee rede, impedindo assim ligaes de ns que no tenham significado no contexto da rede Modbus/TCP. Este trabalho tem tambm por objectivo permitir o acesso de um dispositivo Modbus/TCP s entradas e sadas desses mesmos ns presentes na rede ZigBee.

1.3 - Metodologia
A metodologia deste trabalho consistiu em:

Conhecer os protocolos necessrios para a realizao deste trabalho bem como o tipo de perfis que cada um implementa de forma a ser possvel estruturar uma gateway onde os dois protocolos podem interagir entre si.

Efectuar um levantamento das escolhas possveis para o hardware necessrio para a implementao e desenvolvimento da gateway.

Implementar a gateway garantindo um fluxo organizado de informao do cliente Modbus para os ns ZigBee criando uma rede com uma topologia do tipo cliente/servidor atravs de TCP/IP.

Disponibilizar a informao dos ns ZigBee na gateway para que esta possa ser acedida pelo cliente Modbus/TCP.

Estrutura da dissertao

Criar uma estrutura flexvel de modo a que seja possvel adicionar ou remover um n ZigBee garantindo, no caso de um n no estar presente na rede que o cliente Modbus informado dessa situao.

1.4 - Estrutura da dissertao


Esta dissertao encontra-se dividida em 5 captulos. O primeiro captulo apresenta o problema e os objectivos deste trabalho bem como a metodologia utilizada para o resolver e por fim efectuada uma viso sobre a estrutura de todo o documento. O segundo captulo dedicado aos conceitos tericos associados a este trabalho comeando com uma introduo sobre redes sem fios, tambm denominadas por redes de sensores sem fios. De seguida existe uma interpretao sobre a gateway, o seu papel na rede e a sua importncia no contexto do problema. Para finalizar apresentam-se os protocolos usados durante a implementao do trabalho e alguns dos seus pormenores mais importantes. O terceiro captulo todo ele dedicado arquitectura da gateway definida neste trabalho descrevendo como a gateway se deve organizar para obter uma interaco correcta entre os dois protocolos mapeando os diferentes dispositivos de cada um deles, disponibilizando um intercmbio de servios para a unidade responsvel por gerir a rede Modbus. O quarto captulo comea com uma apresentao dos aspectos mais relevantes do hardware e do software utilizado, terminando com a exposio do trabalho implementado e as principais dificuldades encontradas durante o seu desenvolvimento. A apresentao do trabalho maioritariamente composta por diagramas representativos da estrutura do cdigo desenvolvido facilitando a sua compreenso. O quinto captulo est reservado para as concluses do trabalho fazendo-se uma retrospectiva deste e apontando sugestes para o trabalho futuro que possa melhorar a gateway.

Introduo

Captulo 2

Tecnologias e Conceitos Associados

Neste captulo so apresentados os conceitos relevantes no desenvolvimento deste trabalho. Nesse sentido feita uma breve referncia s redes de sensores sem fios de forma a enquadrar o projecto e posteriormente, ao conceito de gateway, e qual o seu papel numa rede de comunicaes. No final so apresentados os protocolos de Modbus e ZigBee.

2.1 - Redes de sensores sem fios


As redes de sensores sem fios (ou rssf) tm vindo a assumir uma importncia crescente no nosso mundo, envolvendo cada vez mais reas de aplicao. O seu baixo custo, flexibilidade e baixo consumo de cada elemento da rede tornam-na ideal para as necessidades do mundo actual. Assim, em contra partida com as redes tradicionais, por fios, as redes de sensores sem fios no necessitam de um planeamento to exigente para a sua disposio fsica apresentando ainda a vantagem da substituio, em caso de avaria, de um elemento da rede estar simplificada devido ausncia de fios. Estas redes tm vindo a suscitar interesse em ramos como a indstria automvel, a txtil, a ferroviria [1] existindo inclusivamente aplicaes mdicas utilizando este tipo de redes. A nvel das aplicaes no industriais a domtica destaca-se, existindo um vasto nmero de aplicaes com este tipo de redes [2]. O crescente nmero de aplicaes deve-se ao facto de nos dias de hoje existir uma maior necessidade de interactividade com meio exterior. Numa habitao em que tenham sido implementadas funes de domtica, esta aplicao pode interagir com os seus habitantes facilitando-lhes as tarefas do quotidiano. No entanto

Tecnologias e Conceitos Associados

esta tambm pode interagir de formas mais complexas com o intuito de salvar vidas em situaes que o utilizador esteja em perigo. A utilizao de redes sem fios nesse campo apresenta vantagens como a flexibilidade da rede, o baixo custo e facilidade de implementao da mesma [3]. Estas vantagens so mais evidentes quando a habitao no foi projectada inicialmente para a domtica, pois devido ausncia de fios toda a remodelao necessria reduzida ao mnimo.

2.2 - A importncia de uma gateway

As redes sem fios deparam-se com o desafio da interoperabilidade com as redes campo actualmente existentes. Uma rede sem fios apresenta vantagens inerentes sua natureza, apesar de muitas serem intrnsecas ao protocolo implementado. Contudo, existem vantagens comuns s redes sem fios tais como a facilidade e baixo custo de implementao, a fcil reconfigurao entre outras. De igual forma existem desvantagens como a sensibilidade a rudo electromagntico, velocidade de transmisso reduzida quando comparada com as redes com fios e a segurana, sendo esta ltima uma questo fundamental em redes industriais [4]. Contudo, as redes sem fios so uma opo vivel para um futuro cada vez mais prximo em que substituiro grande parte das redes de campo actuais. Este trabalho insere-se nesta rea interligando uma rede bastante conhecida e de domnio industrial como o Modbus (na sua vertente TCP/IP) com uma rede mais recente e sem fios como a rede ZigBee, tendo como objectivo a criao de um dispositivo de interconectividade entre estas duas redes convertendo a informao de um protocolo para o outro.

2.3 - Modbus
O Modbus foi pela primeira implementado para aplicaes de redes de autmatos programveis em 1979 sendo, na altura, um protocolo proprietrio da Modicon. Actualmente o protocolo mantido pela Modicon-IDA e um protocolo aberto e vastamente utilizado no domnio das redes de autmatos. Em 1999 esta mesma entidade acrescentou norma o Modbus/TCP adicionando assim uma funcionalidade ao protocolo original e adaptando-o s necessidades actuais.

Modbus

2.3.1.

Estrutura das mensagens

O Modbus define uma arquitectura cliente/servidor em que o cliente responsvel pela organizao da rede, pelo fluxo das mensagens e tambm pelo envio de mensagens aos servidores. Um servidor numa rede Modbus , usualmente, um mdulo de entradas e sadas. A estrutura bsica de uma mensagem de Modbus apresenta trs campos distintos: o endereo de destino, o function code pretendido, uma gama de informao adicional que est intrinsecamente ligado com o function code da mensagem.

Figura 1 - Estrutura tpica de uma mensagem de Modbus TCP

O function code mais do que um cdigo de dois bytes que identifica uma funo que o destinatrio dever reconhecer.

Tabela 1 - Exemplo das funes mais comuns do protocolo Modbus Descrio Ler entrada discreta Ler sada Escrever sada simples Escrever sadas mltiplas Ler registo de entrada Ler registo holding Escrever registo simples Escrever registos mltiplos Ler/escrever registos mltiplos Function code (em hexadecimal) 0x02 0x01 0x05 0x0F 0x04 0x03 0x06 0x10 0x17

Os function codes podem ser de trs tipos: Funes publicas - So funes bem definidas pela norma, em que necessrio que estas cumpram a estrutura presente na norma. Funes definidas pelo utilizador - So funes que, como o prprio nome indica, so implementadas pelo prprio utilizador, sem que se garanta a compatibilidade entre outras podendo mesmo existir funes diferentes com o mesmo cdigo.

Tecnologias e Conceitos Associados

Function codes reservados - Funes actualmente utilizadas por algumas empresas e que detm o direito exclusivo do seu uso. Como tal, no podem ser utilizadas pelo pblico em geral.

Figura 2 - Gama de "function codes" do protocolo

importante referir que para alm destas 127 funes, representadas na figura, existem ainda outras 127 que correspondem a diferentes incoerncias presentes na mensagem recebida. Estas so denominadas por excepes onde o function code dessas mensagens igual ao function code original, sem erro, mas com o bit mais significativo a 1. Isto significa que uma funo como a 0x01 enviada pelo cliente, em caso de erro na recepo no lado do servidor teria como resposta 0x81. Estas excepes podem ter de diferentes origens. Assim, enquanto umas resultam do facto da mensagem original tentar aceder a registos no existentes, outras devido ao facto da funo pretendida no ser suportada pelo cliente em questo.

Figura 3 - Envio de mensagem sem erro de recepo adaptado de [5].

Modbus

Figura 4 - Envio de mensagem com erro de recepo adaptado de [5].

Na Figura 3 e na Figura 4 pode-se observar o esquema de troca de mensagens entre um cliente e um servidor Modbus, bem como a diferena entre os dois esquemas, que se deve a um erro recepo da mensagem proveniente do cliente. Uma mensagem de Modbus, em traos gerais, composta por dois campos. O primeiro, o function code responsvel por chamar uma funo especfica do lado do servidor, existindo mais de vinte funes prdefinidas pela norma. Por exemplo, o cdigo 0x01 especifica a funo para ler o estado de uma sada do servidor e o cdigo 0x05 serve para escrever nessa mesma varivel. O segundo campo reservado a dados adicionais relativos respectiva funo. Este campo pode ser utilizado para enviar dados especficos a cada funo ou para reportar erros de leitura na mensagem recebida por parte do servidor. Na Figura 5 apresentado o esquema de uma transaco com as verificaes necessrias, que o servidor tem que percorrer, de modo a ser garantida a integridade da mensagem recebida e posteriormente o envio de uma resposta vlida.

10

Tecnologias e Conceitos Associados

Figura 5 - Esquema de uma transio do lado do servidor adaptado de [5].

2.3.2.

Excepes

A norma de Modbus define dez cdigos de excepo estando na Figura 5 representados seis deles. A seguir apresenta-se uma breve descrio de cada um deles: Excepo 1 - Retornado numa mensagem quando o servidor no suporta a mensagem enviada pelo cliente. Excepo 2 - Corresponde tentativa de acesso a um registo que inexiste. Excepo 3 - Existe quando o valor presente no campo dos dados no permitido para o servidor em questo. Excepo 4 - Ocorreu um erro no servidor enquanto este tentava responder ao pedido em questo. Excepo 5 - Significa que o servidor esta numa operao que envolve algum processamento e consequentemente algum tempo, logo esta mensagem enviada de forma a impedir um erro de time out no cliente. Excepo 6 - Significa que o servidor esta numa operao demorada e como tal o cliente deve retransmitir a mensagem mais tarde. Excepo 8 - Excepo usada nas funes de leitura e escrita de um ficheiro, significando que o servidor tentou ler um ficheiro mas detectou um erro de paridade.

ZigBee

11

Excepo 0A - Esta excepo apenas usada em redes em que existam gateways e significa que a gateway no consegue reencaminhar a mensagem para o destino pretendido, significando, normalmente, que esta est mal configurada ou em sobrecarga. Excepo 0B - Tal como a anterior excepo, estas tambm so usadas em redes onde existam gateways sendo que neste caso a gateway no obtm resposta do destino pretendido, significando, habitualmente que o dispositivo no est presente na rede.

2.4 - ZigBee

O ZigBee uma tecnologia relativamente recente na rea das redes de sensores sem fios, apresentada em Junho de 2005. Esta tem vindo a despertar um interesse crescente em diversas reas, desde as industriais at domtica. O ZigBee apresenta grandes potencialidades para a sua utilizao em redes que tenham como requisitos o baixo custo, o baixo consumo ou baixa taxa de transmisso. Assim sendo a rede ZigBee apresenta as seguintes caractersticas [6]: Baixo consumo energtico - tornando possvel a utilizao de pequenas unidades remotas, tornando-as autnomas durante longos perodos de tempo sem que seja preciso manuteno. Baixo custo por n - devido baixa exigncia do protocolo possvel implementa-lo em unidades com reduzida memria e processamento. Roteamento - o protocolo ZigBee permite que as mensagens, quando no exista uma rota directa para o destino, sejam reencaminhadas para o mesmo por outras unidades da rede. Encriptao das mensagens - utilizando um algoritmo poderoso como o AES de 128bit.

2.4.1.

Dispositivos presentes numa rede ZigBee

Os elementos da rede de ZigBee podem ser divididos em dois grupos, os full function devices ou FFD e os reduced function devices ou RFD. Os FFD, como o prprio nome indica so dispositivos que implementam toda a pilha protocolar sendo assim elementos mais complexos da rede. No entanto, so os dispositivos mais versteis podendo funcionar como coordenador, router ou mesmo RFD. O segundo grupo de elementos so os RFD, que ao implementarem apenas parte da norma apresentam menores exigncias por parte do hardware e como tal baixam significativamente os custos do conjunto da rede, visto que estes dispositivos so os mais numerosos.

12

Tecnologias e Conceitos Associados

Coordenador - o dispositivo que cria e gere a rede mantendo a tabela de roteamento das mensagens. Em cada rede existe apenas um dispositivo desta natureza podendo comunicar, directa ou indirectamente com todos os restantes tipos de dispositivos. Como j foi referido este dispositivo um FFD. Router - o dispositivo que se apresenta, normalmente, entre o coordenador e os RFD's tendo como objectivo o encaminhamento de mensagens entre os mesmos. Para tal, cada router pode comunicar com o coordenador, outros routers e com os RFD's a ele associados. Isso conseguido implementando toda a stack ZigBee nestes dispositivos, sendo estes dispositivos FFD's tal como o coordenador. RFD - o dispositivo mais bsico da rede tendo como funo o de fornecer o estado das variveis a monitorizar, podendo apenas comunicar com o FFD ao qual est directamente ligado.

2.4.2.

Topologia da rede

Uma das grandes vantagens da rede ZigBee a versatilidade e como tal existem trs topologias possveis para estrutur-la. O formato de ligao em estrela apresentado na Figura 6. Neste tipo de configurao toda a rede dispe de uma conexo directa com o n coordenador dispensando-se assim os elementos de reencaminhamento na rede. Esta configurao bastante utilizada em redes com poucos elementos devido sua simplicidade e ao facto de os algoritmos necessrios para a criarem serem de igual forma simples o que leva a uma menor sobrecarga no elemento coordenador. A topologia emalhada, Figura 8, uma das topologias mais vantajosas visto permitir ultrapassar a questo do curto alcance da rede e mesmo de obstculos que estejam a enfraquecer o sinal. A perda de conectividade com um router origina duas situaes distintas. Em primeiro lugar necessrio reconfigurar as rotas de acesso a toda a rede, de seguida, e se existirem dispositivos RFD que tenham perdido ligao com a restante rede, necessrio recuperar essa conectividade. No entanto essa aco s possvel se existirem routers nas imediaes do router perdido que possam aceitar esses RFD's na sua rede interna. A topologia por clusters representada na Figura 7 difere da anterior visto nesta os routers apresentarem uma funo organizativa da rede conferindo-lhe nveis de hierarquizao. Em qualquer das topologias o n coordenador responsvel pela criao e manuteno da rede. No entanto na topologia emalhada e na topologia por clusters os routers podem adicionar novos elementos rede.

ZigBee

13

2.4.3.

Formato das frames

As frames, ou mensagens, enviadas no protocolo ZigBee podem dividir-se em quatro grupos [7]: Frames de dados usada para transmitir informao; Frames de acknowledge - usada para confirmar a recepo de uma mensagem se o utilizador assim o pretender; Frames de beacon utilizadas pelo coordenador para ajudar no sincronismo da rede diminuindo drasticamente o consumo de energia por parte dos ns; Frame de MAC command mecanismo de controlo remoto e configurao dos ns.

14

Tecnologias e Conceitos Associados

Figura 6 - Frame de dados do protocolo ZigBee

Tipicamente uma frame de ZigBee tem o aspecto da Figura 6 com dois campos principais. O APS header, cabealho da mensagem, contm informao sobre o endereamento e sobre o controlo da frame. O APS payload um campo destinado informao e pode no existir em alguns tipos de frames como por exemplo numa frame do tipo acknowledge.

2.4.4.

Arquitectura do ZigBee

A ZigBee Alliance a instituio que define todo o protocolo, sendo responsvel pela camada de rede (NWK) e de aplicaes (APS). Estas duas camadas esto implementadas em cima da camada fsica (PHY) e a camada de acesso ao meio (MAC) definida pela norma IEEE802.15.4 como se observa na Figura 7. Sendo a norma IEEE 802.15.4 responsvel pela definio a camada PHY e a camada MAC para redes de sensores de curto alcance com baixa taxa de transmisso conhecidas por LRWPAN [8]. A camada fsica suporta trs gamas de frequncia distintas tornando-a assim mais flexvel e dando oportunidade ao implementador de utilizar a banda com a menor interferncia possvel. A banda mais comum para as aplicaes utiliza a banda destinada a aplicaes industriais, cientficas e mdicas conhecida por ISM e disponibilizando 16 canais diferentes para a sua utilizao. de sublinhar que esta banda utiliza a mesma frequncia que a rede Wi-Fi, podendo originar em ambientes com redes muito sobrecarregadas alguns problemas de conectividade. As restantes gamas de frequncia so a 868MHz e 915MHz estas so gamas regionais utilizadas, a primeira, em toda a Europa e a segunda nos Estados Unidos.

ZigBee

15

Figura 7 - Esquema da stack de ZigBee

A camada de acesso ao meio define os dois tipos de dispositivos, FFD e RFD, j referidos anteriormente. As diferenas de funcionalidades entre estes dois elementos so bem visveis nesta camada, isto porque enquanto um FFD apresenta todas as funes possveis da mesma um RFD apenas apresenta as funes necessrias que o permitem ligar rede e enviar mensagens sem que consiga coordenar mensagens. Enquanto a camada de ligao rede identifica apenas dois tipos de dispositivos, a camada de rede cria mais uma subdiviso entre os FFD, definindo assim o conceito de coordenador e o de router anteriormente apresentado. A camada de rede tambm responsvel pela formao da rede, endereamentos dos ns, gesto e descoberta de novas rotas. A camada de aplicao composta por trs sub-camadas, a Framework Application, a ZigBee Device Object (ZDO) e a Application Sub Layer (APS). A Framework Application apresenta um conjunto de Application Objects (APO's) capazes de mapearem os ns vizinhos e assim facilitar a interaco entre eles. O ZDO outro dos servios fornecidos pela camada de aplicao que tem como objectivo a descoberta de novos elementos na rede e os servios por eles implementados. A APS a uma sub-camada, como o prprio nome indica, responsvel pelo encaminhamento de informao dos APO's e do ZDO para a camada inferior e vice-versa [8].

16

Tecnologias e Conceitos Associados

2.4.5.

Primitivas

De forma a permitir a interaco entre as duas camadas adjacentes presentes na Figura 7, quer o protocolo ZigBee quer o IEEE802.15.4 utilizam o conceito de primitivas possibilitando s camadas superiores acederem aos servios disponibilizados pelas camadas inferiores. Desta forma a camada imediatamente inferior (N) pode fornecer um servio que a camada imediatamente superior pode utilizar (N+1).

Figura 8 - interaco entre camadas [9].

A passagem de informao entre essas duas camadas passa-se atravs da invocao de funes ou troca mensagens sendo denominada por primitivas em que os pontos de conexo entre camadas esto representados na Figura 7 pelos service access point (SAP). Apesar de cada SAP apresentar funcionalidades e respostas diferentes todos eles apresentam quatro formas genricas de comunicao entre camadas, sendo estas: request, quando a camada superior (N+1) faz uma requisio de um servio uma camada inferior (N); indication, gerada pela camada inferior quando existe um evento necessrio para a camada superior; response, resposta enviada pela camada superior a uma primitiva do tipo indication da camada N; confirm, enviado pela camada N para indicar que um request proveniente da camada N+1 terminou. Este mtodo facilita a troca de informao entre camadas mantendo a coerncia e a funcionalidade transparente. entre as mesmas. Permitindo tambm a utilizao dos servios disponibilizados por cada camada para uma aplicao de utilizador de uma forma mais

ZigBee

17

2.4.6.

Binding

O protocolo ZigBee implementa o conceito de binding para facilitar a troca de mensagens entre os elementos da rede. Esta funcionalidade permite ligar um n a outro ou mais ns da rede utilizando para tal uma tabela, a tabela de binding, na qual so guardadas informaes como o endpoint ao qual os ns se esto a ligar, o endereo de destino do n ou do grupo em questo e o identificador do n de destino na rede. A vantagem em usar estes dois identificadores destaca-se quando o n de destino muda de identificador e possvel actualizar o identificador do n sem perder a sua entrada na tabela de binding. O binding de dois ou mais ns facilita em muito a quantidade de mensagens a enviar quando existem vrios ns que esto ligados ao mesmo endpoint, pois assim o cdigo necessrio para o envio das mensagens diminui significativamente deixando a APS responsvel pelo envio das mesmas.

Figura 9 - Exemplo de "binding" adaptado de [10].

Como se pode ver na Figura 9 possvel associar um n a outros atravs do binding. No caso do interruptor superior, a associao estabelecida por um conjunto de ns representando os dispositivos de iluminao que por sua vez esto associados a um n que contm um interruptor que envia comandos de forma a ligar ou desligar as luzes. Para tal ser possvel necessrio que os ns responsveis pelos dispositivos de iluminao estejam na tabela de binding do interruptor. Comparativamente com o conjunto de trs interruptores, o binding dos dispositivos de iluminao apenas apresenta a desvantagem de no puderem ser utilizadas as trs lmpadas de forma independente.

18

Tecnologias e Conceitos Associados

2.4.7.

Exemplos de aplicaes ZigBee

Hoje em dia j existe um sem nmero de aplicaes ZigBee as quais cobrem os mais vastos campos de aplicao. Desde aplicaes mdicas como o caso presente em [11] em que prevendo-se a necessidade de uma monitorizao permanente de uma populao com uma esperana de vida cada vez maior, decidiu-se implementar um sensor integrado na roupa facilitando assim a sua utilizao. Os pontos fortes para a aplicao da rede ZigBee neste projecto so o facto de ser uma rede sem fios com a capacidade de recolher informao de mltiplos sensores permitindo uma mobilidade elevada do utilizador do sensor. Factores como o reduzido tamanho da plataforma e elevada autonomia desta foram tidos em conta para este projecto com o intuito de criar uma plataforma de tamanho reduzido e capaz de ser utilizada numa base diria sem causar incmodo para o utilizador.

Figura 10 - Exemplo de aplicaes ZigBee no campo da domtica adaptado de [12].

Uma das reas de aplicao mais famosa da rede ZigBee sua utilizao em domtica de forma a ajudar criao de edifcios inteligentes. Nesta rea o ZigBee apresenta-se como um protocolo de comunicaes que rene a capacidade de integrar todo o tipo de aplicaes tais como o controlo de iluminao, sistemas de aquecimento e ventilao, monitorizao, segurana, udio e vdeo [13]. Estes tipos de aplicaes so as mais usadas em domtica e o onde o ZigBee apresenta como principal mais-valia a relao custo/eficincia do mesmo [7].

Captulo 3 Arquitectura

Este captulo apresenta o conceito da gateway implementada. Numa primeira parte introduzida a arquitectura desenvolvida seguindo-se de uma descrio detalhada da estrutura que esta deve seguir. tambm descrita a interaco entre os dois protocolos e para finalizar apresenta-se o hardware necessrio para desenvolver a gateway.

3.1 - Descrio
Parte do trabalho realizado envolveu o desenvolvimento da arquitectura que a gateway teria de seguir. Para este problema, no existe uma soluo nica e pelo facto de se tratar de dois tipos protocolos distintos apresentam-se dificuldades acrescidas. A primeira que se apresenta o facto de a gateway ter de pertencer s duas redes de comunicao distintas, nas quais tem de, simultaneamente e de uma forma transparente comunicar com os diferentes dispositivos. Este ponto foi ultrapassado implementando na gateway dois papis diferentes de funcionamento presentes nos dois protocolos, tornando-a assim um membro de cada uma das redes simultaneamente e desempenhando um papel diferente do ponto de vista de cada rede. Assim do ponto de vista da rede Modbus, a gateway comporta-se como um servidor de Modbus disponibilizando a informao a um cliente Modbus em forma de registos. E do lado da rede ZigBee a gateway comporta-se como um n coordenador ZigBee com as funcionalidades de criar a rede, gerir o acesso mesma e de actualizar os dados presentes nos ns da rede. A gateway foi desenvolvida com o propsito de integrao numa rede com um cliente de Modbus apenas, a partir de uma ligao por ethernet. No outro ponto de acesso gateway, ligam-se os ns sensores/actuadores por ZigBee. Assim cria-se um acesso aos dados presentes

19

20

Arquitectura

nos ns por parte do cliente de Modbus. Na Figura 11 apresenta-se a estrutura da rede para a qual a gateway foi pensada e com base neste ponto que toda a estrutura da mesma foi projectada.

Figura 11 - Estrutura da rede.

A estrutura da gateway escolhida teve em conta as consideraes de integrao das redes de sensores sem fios nas redes actuais, presentes no captulo 2. A prpria integrao numa rede j existente influencia o facto de a gateway ser um servidor Modbus visto que assim a integrao necessria de todo simplificada e apenas necessrio actualizar o cliente Modbus que vai ler os registos nela presentes na gateway. A gateway tambm poderia apresentar-se como um cliente Modbus, no entanto este facto implicaria que a integrao numa rede j existente seria limitada e no traria uma mais-valia to significativa ao local onde esta seria aplicada. Pois seria uma rede parte que apenas utilizava da rede Modbus para, possivelmente, os seus dados estarem disponveis num SCADA ou noutro tipo de aplicao de monitorizao da rede. Tendo definido a funo da gateway na rede Modbus necessrio fazer o mesmo para a rede ZigBee, tendo-se concludo que a opo mais vivel seria implementar na gateway as funcionalidades de um n coordenador da rede ZigBee. Esta definio do papel da gateway deve-se ao facto de ser necessrio um n coordenador que vai gerir o acesso aos restantes ns da rede bem como o fluxo de informao deles provenientes, tal no aconteceria se a gateway se apresentasse como um ZED ou mesmo um router.

A arquitectura da gateway

21

3.2 - A arquitectura da gateway


A arquitectura da gateway a parte fundamental deste projecto definindo-se toda a organizao deste e o modo como a gateway deve interagir em qualquer situao. Assim sendo e tendo o local da gateway definido na rede, em conformidade com a Figura 14, necessrio definir os procedimentos que esta deve ter ao inserir/remover um n na rede, ao receber e ao enviar mensagens para o cliente Modbus bem como para os ns presentes na rede ZigBee. Uma comunicao entre estas duas tecnologias poderia ser estabelecida de duas formas bastante distintas obtendo-se solues muito diferentes no trabalho final. A primeira soluo seria uma soluo baseada em modems ZigBee os quais se ligariam a clientes e servidores Modbus usando a rede ZigBee apenas para o transporte de mensagens e organizao da mesma, mantendo as capacidades de reorganizao da rede bem conhecidas do protocolo ZigBee. Esta soluo como uma soluo final de um projecto a implementar em ambientes industriais seria a economicamente menos rentvel visto, neste caso serem necessrios dois tipos diferentes de aparelhos, o modem ZigBee e o servidor Modbus. No entanto apresenta a vantagem de poder reutilizar servidores Modbus j existentes. Uma segunda soluo, e a soluo implementada neste projecto, a utilizao de uma gateway que vai comunicar com ns originalmente desenvolvidos para a sua utilizao com o protocolo ZigBee. A diferena desta soluo para a soluo anterior consiste em adaptar os ns ZigBee, usando os servios implementados pela stack ZigBee e no usar esta apenas para transmisso de mensagens. Ambas as solues foram previamente descritas e estudadas como pode ser observado em [14], [15] e [16] reafirmando-se o contributo que o protocolo ZigBee acrescenta a este tipo de redes. Na Figura 12 observam-se as trs entidades envolvidas neste projecto, o cliente Modbus, a gateway e um n ZigBee. Para alm de se poder observar a diferena entre as camadas fsicas pelas quais comunicam entre si, tambm possvel verificar que a gateway faz a interaco entre a mensagem recebida do cliente Modbus atravs de uma tabela de endereamento. Esta tabela ao receber uma mensagem do cliente Modbus faz a correspondncia do nmero do registo pretendido para o nmero do n ZigBee em questo.

22

Arquitectura

Cliente Modbus

Gatway Ethernet ZigBee

N ZigBee

Tabela de endereamentos
registo | nmero ZigBee

Figura 12 - Estrutura da gateway (vista global).

Esta a funcionalidade da gateway de um modo geral, no entanto para a sua definio estar completa necessrio mapear os servios se a usar em cada um dos protocolos. Para tal e para ajudar neste ponto apresenta-se a Figura 13 que mostra as camadas que uma mensagem recebida pela gateway vinda do cliente Modbus tem de percorrer at poder ser enviada para um n ZigBee. Esta mensagem vai sendo encaminhada pela camada fsica (PHY), de ligao de dados (MAC) e seguidamente pela camada rede, do lado Modbus, at chegar camada de aplicao que partilhada pelos dois protocolos. A camada de aplicao esta dividida em trs grandes aplicaes que funcionam cooperativamente umas com as outras mantendo, no entanto, a sua independncia ao mximo. Depois da mensagem Modbus ser processada vai ser reencaminhada pelas camadas inferiores do protocolo ZigBee. Uma mensagem proveniente do protocolo ZigBee far o caminho inverso desde as camadas inferiores do protocolo ZigBee at camada de aplicao e de seguida pelas camadas inferiores do protocolo Modbus para desta forma ser enviada para o cliente Modbus. O desenvolvimento da gateway e de um projecto desta natureza ocorre nica e exclusivamente na camada de aplicao do modelo OSI sendo por isso esta a mais focada na descrio aqui presente, visto j ter sido feita uma descrio das capacidades de cada parte do protocolo no captulo 2. Assim sendo, das camadas inferiores so utilizados os servios que permitem fazer a conexo entre as diferentes redes e no caso da rede ZigBee a gateway tem de ser responsvel tambm por uma gesto adequada da mesma.

A arquitectura da gateway

23

Figura 13 - Pormenor da gateway.

A estrutura idealizada para a gateway est presente na Figura 12 e corresponde camada de aplicao da estrutura da Figura 1. Neste captulo apresentam-se os servios a usar durante uma aplicao deste gnero e para demonstrar a interaco entre esses mesmos servios so apresentados diagramas dos conjuntos mais relevantes. Para organizar este fluxo de informao necessrio implementar uma tabela que faa a correspondncia entre os registos Modbus e os ns ZigBee, tal como est representado na Figura 13. A essa tabela foi dada o nome de tabela de endereamento e permite mapear cada entrada/sada disponvel num n ZigBee nos diferentes registos disponveis. Com uma correspondncia inequvoca de uma entrada de um n a um registo do tipo holding e uma sada do mesmo n a um registo simples possvel garantir que no existe a possibilidade de escrever numa entrada provocando um curto-circuito no n. A tabela de endereamento deve ter como campos o nmero do registo e o tipo do mesmo de forma a garantir a correspondncia do lado Modbus e do lado ZigBee necessrio que a tabela de endereos tenha campos como nmero do n, a sua Mac e o valor lgico existente na entrada ou sada correspondente tal como se apresenta na Tabela 2.

24

Arquitectura

Tabela 2 - Tabela de endereamento conceitual. Modbus Registo 1 2 3 Tipo Holding Simples Simples Numero ZigBee 0x0288 0x0288 0x0288 ZigBee MAC 0x0004A30000000054 0x0004A30000000054 0x0004A30000000054 Valor 0 1 0

Na Tabela 2 ilustra-se um conjunto de entradas da tabela de endereamento em que um mesmo n apresenta trs registos sendo o registo 1 correspondente a uma entrada do n ZigBee e o registo 2 e 3 deles correspondentes a duas sadas diferentes do mesmo n. No caso de existirem mais ns na rede vo existir mais registos presentes na tabela de endereamentos, que sero colocados nas posies imediatamente seguintes ltima presente na tabela de endereamento. Neste caso e para mapear um novo n com duas entradas/sadas estas iriam ocupar o registo 4 e 5 na tabela de endereamento. A gateway, ao iniciar as suas funes, deve ser responsvel pela utilizao cooperativa dos protocolos Modbus e ZigBee. Para tal, e aps se proceder s inicializaes, so necessrios certos procedimentos, que devem seguir a ordem indicada:

Criar as entradas predefinidas da tabela de endereamento neste ponto atribudo um conjunto de registos a cada um dos ns para posteriormente poderem ser consultados atravs do cliente Modbus;

Criar e configurar a rede ZigBee necessrio que a gateway crie uma rede e permita que os ns se juntem mesma. necessrio tambm que esta controle o acesso rede dos mesmos atravs do seu endereo MAC procurando a sua entrada na tabela de endereamentos;

A partir deste instante a gateway est disponvel para receber e enviar dados quer para a rede Modbus quer para a rede ZigBee. Para alm disso a gateway vai fazer uma consulta cclica de forma a manter o valor dos registos actualizados.

A arquitectura da gateway

25

Juno de um n

Figura 14 - Juno de um n rede.

Na Figura 14 pode-se ver o procedimento que a gateway tem ao ser acrescentado um novo n rede logo aps validao do n na tabela de endereamentos. Para validar um n na rede, a gateway deve verificar a existncia do seu endereo de MAC na tabela de endereamentos. Caso no exista nenhum registo para o n em questo este n deve ser removido. Troca de mensagens Para receber e enviar dados atravs das duas redes a gateway deve, ao receber uma mensagem de Modbus, ler o seu function code e determinar se este suportado pela gateway.

Tabela 3 - Recepo de uma trama com um "function code" no implementado. Pedido Function Code (Byte 0) Endereo (Byte 1-2) Valor (Byte 3-4) 04 00 00 12 34

26

Arquitectura

Como o function code 0x04 correspondente leitura de um registo de entrada no suportado pela gateway esta deve retornar uma mensagem de excepo com o seguinte formato:

Tabela 4 - Envio de uma trama de resposta a um "function code" no implementado. Excepo Function Code (Byte 0) Excepo (Byte 1-2) 84 00 01

Caso a funo seja suportada e de leitura de um registo holding a gateway deve consultar o registo em questo e enviar a resposta com o valor do registo adequado (Figura 15).

Figura 15 - Esquema de uma recepo de mensagem de leitura desde o cliente at gateway.

O valor a consultar proveniente directamente da tabela de endereamentos sem que haja consulta directa do n no momento em que existe o pedido do cliente Modbus.

Tabela 5 - Trama de leitura de um registo enviada pela cliente Modbus. Pedido Function Code (Byte 0) Registo de referncia (Byte 1-2) Nmero de registos a ler (Byte 3-4) 03 00 01 00 01

A arquitectura da gateway

27

Tabela 6 - Envio da resposta trama de leitura de um registo enviada pela cliente Modbus. Resposta Function Code (Byte 0) Nmero de Bytes da resposta (Byte 1-2) Valores dos registos (Byte 3-4) 03 02 00 01

de referir que quando a leitura de registos superior a um, o campo dos valores dos registos vai variar em comprimento apresentando dois bytes por cada registo lido. Se for uma mensagem de escrita num registo (function code = 0x06) a gateway deve identificar o n em questo e enviar para este uma frame ZigBee para que o mesmo active a sada correspondente. Neste tipo de mensagem necessrio o envio de uma mensagem igual recebida por parte da gateway aps o registo ter sido escrito. Dessa forma enviada uma mensagem ZigBee onde se espera por uma mensagem de acknowledge do n destinatrio.

Figura 16 - Esquema de recepo de uma mensagem de escrita e subsquente envio para o n respectivo

Tabela 7 - Envio, pelo cliente Modbus, de um pedido de escrita num registo. Pedido Function Code (Byte 0) Endereo (Byte 1-2) Valor (Byte 3-4) 06 00 01 00 01

28

Arquitectura

A mensagem enviada via ZigBee tem o seguinte formato:

Tabela 8 - Envio da trama ZigBee para escrever na sada correspondente. DstAddress ADSU TxOptions 79 6F 01 01 04

E a respectiva resposta, em caso de sucesso:

Tabela 9 - Confirmao que a mensagem foi enviada com sucesso. DstAddress Status 79 6F SUCCESS

Gera-se a partir da uma actualizao na tabela de endereamentos e o envio da seguinte mensagem Modbus:

Tabela 10 - Envio, para o cliente Modbus, da confirmao da escrita no registo pedido. Resposta Function Code (Byte 0) Endereo (Byte 1-2) Valores dos registos (Byte 3-4) 06 00 01 00 01

Se a mensagem no for recebida com sucesso, ou seja, o status for diferente de SUCCESS necessrio enviar uma resposta para o cliente Modbus de um modo diferente reportando uma excepo.

Tabela 11 Envio de uma trama para o cliente Modbus, caso no exista confirmao de envio. Resposta Function Code (Byte 0) Excepo (Byte 1) 86 01

de referir que o primeiro byte do ADSU da mensagem enviada relativo ao endereo da mensagem Modbus e o segundo byte relativo ao valor a escrever nesse endereo. Se o pretendido fosse escrever 00 no endereo 01 o ADSU em questo teria o valor de 01 00. A gateway possibilidade a da consulta peridica dos ns com o intuito de actualizar a tabela de endereamentos para que o cliente Modbus possa sempre ler o valor correcto dos registos. Essa actualizao processa-se n a n e de uma forma sequencial.

A arquitectura da gateway

29

Figura 17 - Esquema de consulta peridica aos ns ZigBee.

Para tal actualizao ocorrer, necessrio enviar uma mensagem que neste caso gera uma resposta por parte do n em questo. Uma mensagem enviada com o seguinte formato enviada para cada um dos ns:

Tabela 12 - Envio de trama ZigBee de forma a ler todas as entradas e sadas presentes no n ZigBee. DstAddress ADSU 79 6F FF

Gerando uma resposta:

Tabela 13 - Envio da resposta por parte do n ZigBee. DstAddress ADSU 02 6F 00 00 01 00

Neste caso pode-se observar que o n em questo apresenta quatro variveis a monitorizar via Modbus em que apenas a terceira se encontra activa. A gateway depois de receber esta resposta vai actualizar a tabela de endereamentos e seguidamente enviar uma mensagem ZigBee para o prximo n presente na tabela de endereamentos com o ADSU a 0xFF at ter percorrido todos os ns da rede.

30

Arquitectura

3.3 - Mapeamento de funes


Para permitir a funcionalidade entre os dois protocolos necessrio definir que funcionalidades vo ser usadas em cada um dos protocolos j que estes apresentarem naturezas bastante distintas. Enquanto o protocolo Modbus est concentrado na leitura e escrita de registos tal no acontece no protocolo ZigBee. Como tal, indispensvel criar uma correspondncia entre as funes a usar em cada um deles. Para tal e como o objectivo do trabalho comunicar com ns ZigBee que esto a controlar um conjunto de entradas/sadas, foi escolhida a funo de leitura de um registo do tipo holding e a funo de escrita num registo. Estas funes foram escolhidas visto serem as que mais se adequam transmisso e recepo de dados do lado dos ns ZigBee. Assim, possvel um mapeamento completo na gateway dos registos presentes em cada um dos ns garantindo-se que no forada nenhuma das entradas neles presentes. Para a sua utilizao em conformidade com o protocolo ZigBee necessrio que as funes de Modbus gerem uma mensagem via ZigBee que o n conhea e aja em conformidade com a mesma. Para tal a gateway ao receber uma mensagem retira desta dois parmetros fundamentais, a funo de Modbus pretendida e o registo pretendido. Depois de obter o registo em questo, a gateway, a partir da tabela de endereamentos, identifica o n ZigBee e a sua respectiva varivel a ser alterada. A partir deste ponto, na perspectiva da gateway a mensagem que anteriormente tinha uma vertente Modbus, apresenta todos os parmetros necessrios para a sua converso para ZigBee. A mensagem, ao ser construda vai utilizar inmeros servios da Application Support Sub-Layer (APS) nomeadamente aqueles que so utilizados para o encaminhamento das mensagens para os ns, sendo necessrio efectuar pedidos APSE-DATA dos seguintes parmetros:

DstAddrMode modo como o endereo de destino vai ser apresentado; DstAddress endereo de destino segundo o parmetro especificado no DstAddrMode; DstEndpoint utilizado apenas para endereamentos maiores ou iguais a 16bit; ProfileId perfil da frame a enviar; ClusterId identificao do Application Object destinatrio; TxOptions opes da transmisso; RadiusCounter quantidade de retransmisses que a mensagem pode sofrer por parte dos outros elementos da rede.

De seguida a mensagem dirigida para o seu destino atravs das APO's presentes na camada de aplicaes da rede ZigBee e por fim transmitida para o seu destino. De uma forma geral, a informao de uma mensagem Modbus retirado o registo e a funo a utilizar sendo estes parmetros utilizados para construir uma mensagem nova com o

Hardware

31

formato correspondente ao protocolo ZigBee onde os parmetros de destino do APS Header (ver Figura 6) so dados pela tabela de endereamentos.

3.4 - Hardware
Para implementar o conceito definido nos pontos anteriores deste captulo necessrio alguns requisitos mnimos, que tipicamente esto presentes na maior parte dos microcontroladores de baixo custo actuais. Para alm da unidade de processamento tambm necessrio uma interface TCP/IP e uma interface ZigBee para ligar as diferentes redes gateway. Estes trs elementos so os componentes mnimos necessrios para o desenvolvimento gateway e a sua interligao efectuada, por norma, como demonstra a Figura 18.

Figura 18 -Estrutura bsica da gateway adaptado de [17]

Para desenvolver um projecto deste gnero necessrio ter em ateno alguns requisitos mnimos. O ponto central, a nvel de hardware, para desenvolver a gateway necessrio um micro-controlador de 8-bits ou superior e uma memria superior a 64kB pois estes possuem, capacidade de implementar a gateway. de referir que, apesar de nem o protocolo ZigBee nem o Modbus requererem muito do processamento do micro-controlador, exigem, por outro lado, uma maior capacidade de memria, onde a stack de ZigBee o componente que mais a utiliza. Para alm das questes de capacidade de processamento, o micro-controlador deve ter conexo s interfaces externas, sendo mais aconselhvel que se utilize, tal como neste trabalho, uma estrutura que j esteja embebida com uma das opes de interface. Apesar de esta no ser uma opo de todo condicionante uma mais-valia facilitando a implementao do projecto.

32

Arquitectura

Como foi referido, neste projecto, existia a possibilidade de se optar por um sistema que viesse integrado com uma interface TPC/IP ou por uma interface ZigBee. A opo seleccionada reverteu para a interface ZigBee visto esta ser a mais recente e que poderia apresentar mais dificuldade na implementao.

Captulo 4 Implementao

Antes de se aprofundar o que foi implementado na gateway necessrio ter uma viso geral dos elementos que fazem parte da gateway bem como as ferramentas utilizadas para a criao da mesma. Assim, o presente captulo descreve o trabalho implementado, iniciandose a descrio, por uma anlise do hardware e do software utilizado seguindo-se os servios utilizados de cada stack. Para finalizar, apresenta-se detalhadamente a gateway, desde o processo de inicializao at ao funcionamento como servidor da rede Modbus.

4.1 - Hardware utilizado


O facto de o hardware ter como base o kit de desenvolvimento da Microchip (PICDEM Z) originou uma subdiviso do hardware em duas partes distintas. Visto o PICDEM Z ser um kit de desenvolvimento de redes ZigBee este apresenta-se numa pequena placa com conexo com a antena ZigBee, porta srie e uma pequena parte em que o utilizador pode personalizar a tabela de registos permitindo um melhor desenvolvimento da mesma. A segunda parte do hardware o dispositivo da Lantronix, o XPort, que responsvel pela ligao via TCP da gateway. O XPort tem como objectivo receber uma trama da porta srie da gateway e convert-la para pacotes TPC/IP e vice-versa.

33

34

Implementao

4.2 - Picdem Z
O kit de desenvolvimento incorpora vrios componentes que facilitam o desenvolvimento de uma aplicao utilizando o protocolo ZigBee. Assim, o PICDEM Z composto por dois ns ZigBee completamente funcionais, para desenvolver a aplicao desejada, um sniffer para permitir visualizar o trfego na rede proporcionando a correco de alguns erros e ainda um conjunto de cd's com software de compilao, programao e documentos tcnicos, que fornecem estes alguma informao sobre o hardware. A unidade de processamento que acompanha o PICDEM Z um micro-controlador PIC18F4620 da Microchip que apresenta as seguintes caractersticas principais:

Velocidade de processamento at 40MHz; 64kB de memria flash; Baixo consumo energtico; Trs modos distintos de funcionamento, modo normal (CPU e perifricos ligados), em suspenso (CPU desligado mas com os perifricos ligados) e em hibernao (CPU e perifricos desligados);

36 portas de entrada/sada e 4 temporizadores; Ligao via porta srie.

Figura 19 - N de desenvolvimento do Picdem Z.

A Figura 19 contm: 1- Unidade de processamento (PIC18F4620); 2- Antena ZigBee; 3- rea de desenvolvimento.

Xport

35

Estas caractersticas tornam-no tornam num elemento emento bastante verstil e competente em aplicaes como esta. O PICDEM Z incorpora ainda uma antena ZigBee (Figura Figura 19 - 2) podendo ser substitudo quando ando necessrio. necessrio O kit de desenvolvimento inclui ainda uma rea em que o utilizador pode montar mais alguns dispositivos que pretenda (Figura 19 - 3). As dimenses do cada n no kit de desenvolvimento so tpicas de plataformas de desenvolvimento desenvo sendo possvel diminu-las facilmente com uma verso do micro-controlador m controlador mais compacta do mesmo retirando a rea de desenvolvimento.

4.3 - Xport
Este dispositivo foi utilizado para a interface TCP/IP dado ser um sistema embebido capaz de converter as tramas vindas da porta srie da gateway em pacotes TCP/IP, TCP/IP reencaminhando-os os para a rede de ethernet de uma forma transparente para o utilizador e sem exigir grandes configuraes por parte deste. Apesar de este ste dispositivo ser capaz de muitas mais funcionalidades do que aquelas em que utilizado neste projecto, a sua utilizao revelou-se de grande importncia, importncia visto ter permitido uma implementao rpida e eficaz da vertente TCP proporcionando mais tempo para outros aspectos deste trabalho. Na Figura 21 apresenta-se apresenta alguns pormenores da arquitectura tectura interna do XPort bem como algumas das suas potencialidades. potencialidades

Figura 20 Xport

36

Implementao

Figura 21 - Arquitectura interna do Xport.

O acesso s configuraes do XPort pode ser efectuado de duas formas distintas. A forma mais apelativa ao utilizador a configurao via browser, sendo possvel navegar no menu de opes facilmente. Este menu apresenta uma vasta gama de configuraes disponveis ao utilizador desde o protocolo da camada de transferncia, nmero de bits, e outras presentes na Figura 22. Existem ainda opes que permitem associar eventos as trs portas de entrada/sada presentes no XPort de forma aos utilizadores da rede ethernet receberem e-mails de avisos com seu estado.

Software utilizado

37

Figura 22 - Pgina de configuraes da porta srie do XPort

4.4 - Software utilizado


Para a implementao deste trabalho foram utilizados diversos softwares diferentes como o MPLAB para escrever o cdigo, o PICkit para escrever na memria do micro-controlador e o ZENA para monitorizar o trfego da rede. Estes programas so todos suportados pela Microchip fazendo parte do kit de desenvolvimento. Apesar de no ser obrigatrio optou-se pela utilizao destes programas para garantir, desta forma, a operabilidade de todo o conjunto tendo ainda a vantagem de, por exemplo, no MPLAB existirem algumas proteces orientadas ao micro-controlador especificado de modo a avisar e proteger zonas de memria, impedindo que o utilizador grave dados acidentalmente em cima das mesmas.

38

Implementao

4.4.1.

A stack da Microchip

A parte de software mais importante utilizada foi a stack de ZigBee suportada pela Microchip, que actualmente est na sua verso 2.0-2.6. Apesar desta verso da stack j segue a verso r13 de 2006 do protocolo, ainda apresenta algumas limitaes tais como:

O endereamento de um dispositivo quando este se volta a ligar rede no readquirido, isto , o n ao ligar-se a um coordenador, tem uma chave identificao nica, no entanto, esse identificador perdido se o n perder a conectividade.

A possibilidade de mudana de n coordenador, com a rede em funcionamento, ainda no suportada, limitando assim as possibilidades de utilizao da stack em redes emalhadas.

Apesar de esta ser a stack mais recente da Microchip foi utilizada a v1.0-3.8 pois esta encontrava-se bem documentada nos cd's de apoio do kit de desenvolvimento contendo um exemplo completamente funcional para a mesma verso da stack, evitando-se assim qualquer problema de compatibilidade que pudesse ser da originado. Esta stack apresenta tambm algumas limitaes, no to crticas para o projecto para alm das anteriormente referidas como o no endereamento correcto de um dispositivo aps a quebra de conectividade que nenhuma stack da Microchip suporta at ao momento. A nvel de informaes disponveis, a prpria Microchip fornece documentos descritivos da sua stack juntamente com os kit's de desenvolvimento. Estes apresentam, maioritariamente, as diferenas com as verses anteriores sendo, por isso, necessrio consultar a informao disponvel das stack's anteriores nas primeiras utilizaes do produto. A Microchip possui tambm um frum no seu site no qual os vrios utilizadores dos seus produtos podem expor os seus problemas obtendo assim alguma assistncia.

4.4.2.

Zena

O software Zena um analisador, em tempo real, de redes wireless existindo a possibilidade de monitorizar pacotes provenientes da rede ZigBee num ambiente com capacidade grficas atractivas. Atravs desta ferramenta tambm possvel configurar a stack da Microchip de uma forma intuitiva. Para monitorizar a rede necessrio primeiro passar por uma janela de configuraes na qual necessrio seleccionar o canal de comunicaes a visualizar.

Software utilizado

39

Figura 23 - Painel de configuraes do software Zena.

Como se pode observar, o canal seleccionado para a visualizao, o canal 12 visto ser este o canal pelo qual a gateway vai enviar mensagens de dados para os ns.

Figura 24 - Modo de visualizao das mensagens ZigBee.

Este modo muito vantajoso, pois os pacotes enviados e a sua sequncia podem ser visualizados, ajudando assim na fase de debug.

40

Implementao

4.5 - Trabalho desenvolvido


O trabalho desenvolvido levou em considerao as estruturas apresentadas no captulo 3 e tendo por base os exemplos desenvolvidos pela Microchip implementou-se, numa primeira fase, a mquina de estados geral em que todas as comunicaes eram reencaminhadas pela porta srie separando-se assim a parte de Modbus da coordenao da rede ZigBee e respectiva recepo e envio de mensagens. A segunda parte da implementao foi dedicada s comunicaes Modbus. Esta parte em especial foi desenvolvida o mais independentemente possvel do restante programa facilitando assim a sua expanso se desejvel. Como o propsito da gateway no inclui uma interface grfica o debug desta foi realizado a partir do hyperterminal, dado este ser o mtodo que se concluiu como o mais prtico. Apesar da base de desenvolvimento da gateway ter sido um kit de desenvolvimento de ZigBee na sua soluo final, a gateway comporta-se de uma forma mais semelhante a um servidor da rede Modbus em que os pedidos do cliente da rede Modbus so reencaminhados para o n correcto, utilizando-se apenas a stack ZigBee como meio de comunicao para o envio dessas mesmas ordens. Durante todo o desenvolvimento do projecto existiu um esforo para o manter o mais fiel possvel ao que tinha sido previamente estruturado. de referir que a linguagem de programao utilizada foi a linguagem C para a qual toda a stack da Microchip estava desenvolvida.

Trabalho desenvolvido

41

Figura 25 - Estrutura de leitura de um registo do tipo holding adaptado de [5].

Para testar o conceito foram implementadas duas funes de Modbus, leitura de um registo do tipo holding (function code =0x03) e a escrita num registo (function code =0x06). Estas duas funes apresentam uma mquina de estados semelhante sendo por isso aqui apresentado apenas o exemplo da mquina de estados da primeira funo. A arquitectura do software deste trabalho um dos pontos mais importantes do mesmo visto ter sido orientada de forma independente do hardware e da stack de ZigBee utilizada. No entanto uma portabilidade completa sem alteraes para outro hardware ou mesmo stack poder no possvel. A topologia do sistema segue os parmetros do protocolo Modbus de forma a enquadrar-se em redes existentes. Optou-se por implementar a gateway como um servidor da rede Modbus visto que o objectivo era que esta se pudesse ligar rede e funcionasse cooperativamente com ela, no utilizando apenas o seu meio fsico. Assim, o programa foi desenvolvido de forma a existirem dois modos de utilizao distintos, o modo de utilizao como um servidor na rede Modbus, e o modo de configuraes onde possvel alterar alguns parmetros da gateway, tais como adicionar um n rede ou modificar alguns dos seus atributos. Este ponto previne alguns conflitos na rede, como por

42

Implementa Implementao

exemplo, o servidor r identificar um n com um conjunto de registos diferentes dos que realmente esto presentes, visto estes terem sido recentemente alterados. Para facilitar a organizao do software este foi dividido em duas partes distintas mapeando os dois modos de funcionamento. funcionamento. Estes dois modos de funcionamento no podem ser executados ao mesmo tempo nem existirem antes de a gateway ter efectuado todas as inicializaes.

Figura 26 - Estrutura de funcionamento da gateway.

O acesso entre os modos de utilizao configurado a partir de um comutador garantindo-se assim, a integridade do destino das mensagens recebidas. Esta restrio via hardware, permite uma distino absoluta entre os modos de utilizao podendo-se podendo assim implementar o protocolo Modbus sem qualquer modificao da verso presente na norma. Aps a deciso tomada, o dispositivo apenas funciona no modo seleccionado at se completar a corrente tarefa. Ao terminar a gateway volta ao ciclo de espera at receber uma nova mensagem, completando-se se assim o ciclo de funcionamento.

4.5.1.

Mquina de estados de ZigBee

Para permitir a conectividade dos ns necessrio que a gateway implemente um conjunto junto de funes presentes no protocolo ZigBee, , funes como a criao da rede, juno de um n e envio e recepo de mensagens entre os ns e o coordenador so o mnimo necessrio. Estas funes so suportadas pela stack da Microchip e esto implementadas implementad nos exemplos fornecidos em conjunto com o kit de desenvolvimento o que facilitou bastante a familiarizao com o protocolo, a stack e o ambiente de programao. De uma forma geral, e relatando apenas as funcionalidades de ZigBee, ZigBee a gateway necessita de percorrer os seguintes passos:

Trabalho desenvolvido

43

O primeiro passo a inicializao da stack ZigBee, , sem a qual no possvel chamar mais nenhum dos processos pertencentes ao protocolo ZigBee, sendo de seguida criada a rede para os outros dispositivos se puderem ligar a ela.

A partir deste instante o sistema entra num compasso de espera at ocorrer alguma ligao a um n ou existe alguma mensagem a enviar. Esta etapa tambm considera a possibilidade de recepo de uma mensagem via rede sem fios no entanto at existir a ligao a pelo menos um n tal no acontece.

Tendo terminada qualquer uma das tarefas anteriores, anteriores existe um retorno para o modo de espera completando-se completando se assim o ciclo de processamento da parte referente ZigBee. ZigBee

Figura 27 - Estrutura da mquina estados ZigBee.

Exceptuando o caso da juno de um n rede ZigBee a mquina de estados funciona como uma consequncia directa de um pedido da mquina de estados de Modbus. de referir que a permisso para juntar um n rede s est disponvel durante os instantes em que a gateway no est a processar nenhum pedido do cliente Modbus evitando-se evitando algum tipo de problema na tabela de endereamento.

44

Implementao

4.5.2.

Mquina de estados de Modbus

Para implementar o servidor Modbus na presente gateway utilizou-se o esquema presente na Figura 28 sendo que este adaptado directamente da norma [5].

Figura 28 - Estrutura de um servidor de Modbus adaptado de [5].

Esta estrutura o modo mais habitual de funcionamento da gateway seguindo o mais possvel o protocolo Modbus diminuindo assim as probabilidades de incompatibilidades com o cliente da rede. de notar que os estados representados na figura como Idle e Wait so correspondentes aos estados Inicializaes e Espera da Figura 26. Resumidamente a estrutura do servidor Modbus tem os seguintes passos: Aps um perodo de inicializaes da mquina, esta fica em espera pela recepo de uma mensagem. Na recepo de uma mensagem esta verificada com o intuito de confirmar se esta pertence ao protocolo Modbus. So verificados alguns parmetros da mensagem nomeadamente o seu function code de modo a determinar se esta suportada ou no.

Trabalho desenvolvido

45

Conforme o resultado da verificao do ponto anterior efectuado todo o processamento necessrio e construda a resposta ou criada uma excepo para consequente envio da mesma para o cliente da rede.

Quando o envio termina fechada a transaco Modbus e o servidor volta ao estado de espera por nova mensagem.

4.5.3.

Interaco entre os dois protocolos

Depois de implementadas as infra-estruturas responsveis pelo Modbus e pelo ZigBee necessrio garantir a sua interaco. Este ponto foi obtido distinguindo cada um dos ns ZigBee e criando-lhe um mapeamento virtual com os respectivos registos de leitura/escrita de Modbus ao qual o cliente da rede ir aceder. Este mapeamento efectuado na gateway de modo a permitir adicionar ns ZigBee de diferentes fabricantes evitando assim programao extra nos mesmos visto que por vezes esse acesso no permitido pelo fabricante. Para garantir a compatibilidade entre estes dois protocolos to distintos necessrio, acima de tudo, garantir o endereamento nico de cada dispositivo wireless. Para tal criou-se uma tabela, tabela de endereamento (Tabela 14), que agrupa todas as informaes de cada dispositivo ZigBee, esta tabela contm campos pertencentes aos dois protocolos sendo para tal utilizada para fazer a correspondncia entre eles. Esta tabela foi construda semelhana da Tabela 2 tendo sido acrescentado o campo da actividade de maneira a existir um controlo sobre o estado de cada n enviando-se uma mensagem de excepo do tipo 0x02 tal como est presente na Figura 25. Como tal um n ao ligar-se gateway vai iniciar uma procura na tabela de endereamento e seguidamente, se o encontrar, vai associar a sua identificao na rede ao conjunto de registos virtuais a ele correspondentes e activando-os no campo correspondentes. Se por ventura o n no pertencer ao conjunto de registos pr-definidos criada uma instncia nova na tabela onde os registos da rede Modbus so, por defeito, nulos impedindo o acesso da rede Modbus ao n em questo. O n mais tarde pode ser configurado de modo a pretender rede Modbus utilizando o modo de configuraes sem grande esforo por parte do utilizador e sem necessidade de mover a gateway. Caso o utilizador pretenda usar a primitiva NWK_LEAVE.request deve acrescentar a funo nos_conhecidos() de forma a apenas os ns que j apresentam entradas na tabela de endereamento se possam adicionar rede. O endereamento nico garantido atravs do endereo MAC de cada n, o que em situaes de kit's de desenvolvimento pode no ser a melhor soluo j que todos os ns do tipo RFD apresentam o mesmo cdigo fonte e consequente MAC Address por ele definido. No entanto quando se trata de uma aplicao final esta a que se apresenta como mais robusta e imune a erros.

46

Implementao

Tabela 14 - Tabela de endereamentos. Registo Modbus 1 2 3 4 Nmero ZigBee 0x065C 0x065C 0x796F 0x796F MAC 0004A30000000054 0004A30000000054 0004A30000000065 0004A30000000065 Valor 0 1 1 0 Actividade On On On On

De forma a mapear cada n com base no seu registo correspondente e visto que cada n pode ter mais do que um registo foi copiada a MAC e o nmero de rede deste de forma a poder existir uma entrada nica na tabela de endereamentos para cada n. Na Tabela 14 o primeiro campo corresponde ao registo Modbus a ser consultado, o segundo ao nmero do n correspondente, o seguinte MAC Address do n. O quarto e o quinto so respeitantes ao valor do registo e estado de actividade desse n. Ainda nesta na tabela apresentam-se dois ns distintos sendo que o primeiro deles corresponde gateway onde todos os parmetros so na realidade definidos pelo utilizador durante a gerao do cdigo. A linha seguinte trata-se de um n RFD ligado gateway em que existem quatro parmetros fundamentais configurados pelo utilizador consistindo estes no nmero da rede Modbus, permitindo a identificao do n por parte do cliente Modbus. Os outros parmetros so o nmero de registos de leitura e de escrita, identificando-se assim as entradas/sadas de cada n. O ltimo parmetro configurvel pelo utilizador a MAC Address, a possibilidade de configurar este parmetro no s permite a identificao de cada elemento da rede sem fios como permite tambm a rpida mudana do mesmo sendo para isso apenas necessrio a actualizao da MAC do n em questo na tabela de endereamento. Adicionalmente a gateway faz, ciclicamente, uma actualizao do valor dos registos de modo a garantir que estes apresentam o valor correcto quando vo ser consultados pelo cliente Modbus.

4.5.4.

Configuraes

O modo de configuraes apresenta-se como necessrio em ocasies de avaria de um n anterior ou mesmo quando se acrescenta um n novo rede dotando a gateway de alguma flexibilidade. Este modo consiste num conjunto de funes capazes de alterar a tabela que contm as propriedades de cada n conferindo-lhe mudanas como, por exemplo, o nmero de registos de leitura ou escrita. Para tal ao iniciar o modo de configuraes, isto o comutador estar activado e a gateway receber pelo XPort a trama config, o utilizador ir receber via TCP um menu que lhe permite acrescentar ou eliminar um n rede ZigBee, listar todos os ns mapeados na gateway, mudar a quantidade de registos de leitura ou escrita associados ao n especificado. Este modo de modificar os parmetros da gateway

Trabalho desenvolvido

47

pode ser acedido utilizando o Hyperterminal, para utilizadores de ambientes Windows ou o CKermit para utilizadores de Linux no tendo por isso uma interface grfica muito elaborada e estando orientado a um utilizador da rede que tenha um conhecimento profundo da mesma. Na figura seguinte pode-se observar o menu com as opes seguindo-se da estrutura do mesmo bem como o de todas as outras opes.

Figura 29 - Menu de configuraes com opo genrica.

Na Figura 29 apresenta-se a configurao base presente na estrutura do menu de configuraes. Ao entrar neste menu listado um conjunto de opes das quais o utilizador necessita de as seleccionar e para tal basta premir a opo entre parntesis, por exemplo se o utilizador deseja-se escolher listar todos os ns bastaria premir '4' e de seguida era chamada a opo listar ns representada na Figura 33. Para sair deste menu de configuraes necessrio escolher a opo '5' e o comutar j no estar activo evitando-se assim situaes em que existe uma sada acidental do modo de configuraes. De seguida so apresentados a estrutura das opes possveis implementadas.

48

Implementao

Figura 30 - Estrutura da opo para acrescentar um n.

Possivelmente uma das opes mais importantes na gateway a possibilidade de acrescentar ns rede com relativa facilidade sem necessidade de remover todo equipamento de stio. Entre parntesis est presente o tipo de dados que cada parmetro correspondente a cada um dos campos da tabela de endereamento.

Trabalho desenvolvido

49

Figura 31 - Estrutura da opo para alterar as configuraes de cada n.

Igualmente importante ao facto de puder juntar um n pod-lo pod lo alterar quando este j se encontra ontra ligado na rede. Isto facilita a mudana de ns entre o mesmo perfil s sendo necessrio mudar a MAC Address de um n por exemplo.

50

Implementao

Figura 32 - Estrutura da opo para eliminar um n da gateway.

De forma gateway operar com o mnimo de recursos necessrios foi criada esta funo para eliminar um n pr-existente, abrindo vaga para um novo (Figura 32). 32

Figura 33 - Estrutura da opo para listar os ns.

Para finalizar a lista de opes apresenta-se apresenta se a lista de ns bastante til para descobrir alguns erros nos parmetros de cada n como endereos de rede que no correspondem MAC correcta (Figura 33).

Trabalho desenvolvido

51

4.5.5.

Integrao com o programa da Microchip

Como j foi referido anteriormente, existiu uma grande preocupao em manter o sistema mais modular possvel, para tal acontecer todo o desenvolvimento feito teve como base a criao de uma biblioteca de funes que chamada pelo programa do coordenador sem que este tenha de conhecer obrigatoriamente todas as funes que ajudam ao bom funcionamento da gateway. Para tal ao reunir os dois programas necessrio acrescentar ao directrio do programa do coordenador os ficheiros gateway.h, modbus.h e nos.h. Para aceder a todas as funcionalidades da gateway o utilizador apenas tem de adicionar no cdigo do coordenador o ficheiro gateway.h visto os restantes serem chamados por este.

Figura 34 - Incluso do programa principal no cdigo do coordenador ZigBee

A partir deste momento o utilizador apenas necessita de chamar as funes para adicionar um n rede (adicionar_no) na primitiva responsvel pela juno de um n rede, neste caso NLME_JOIN_indication.

Figura 35 - inserir um n na tabela de endereamento.

52

Implementao

Figura 36 - Recepo de uma mensagem via Modbus.

Figura 37 - Actualizao da tabela de endereamentos.

No mesmo local onde chamada a rotina para a leitura das mensagens recebidas tambm chamada a rotina para actualizar a tabela de endereamentos. Durante a fase de implementao a soluo de actualizar todos os registos de todos os ns ao mesmo tempo verificou-se que no seria a melhor visto esta ser uma rede de baixa velocidade e como tal quando o nmero de ns fosse bastante elevado seria necessrio um perodo de tempo demasiado grande em que a gateway estaria indisponvel. Para colmatar essa falha foi criada uma actualizao automtica por parte dos ns que sempre que uma sada muda de estado o n responsvel por enviar uma mensagem gateway notificando-a dessa mudana como est presente na Figura 38.

Figura 38 - Actualizao automtica das entradas dos ns.

Trabalho desenvolvido

53

Os campos enviados pelo n ZigBee em questo devem ser os seguintes:

Tabela 15 - Campos enviados pelo n ZigBee ao se activar uma sada. DstAddress ADSU 02 6F 03 01

Neste caso especfico, esta mensagem correspondente escrita no terceiro registo deste n o que para actualizar a tabela de endereamento seria necessrio colocar na primitiva APSDE_DATA_indication.DstEndpoint a seguinte funo:

Figura 39 - Escrita num registo na tabela de endereamentos.

4.5.6.

Dificuldades encontradas

Durante o desenvolvimento da gateway foram sentidas algumas dificuldades originadas maioritariamente pelo facto de a informao disponvel estar relativamente dispersa pelas vrias notas que acompanhavam a stack da Microchip e no existir uma nica que fizesse uma descrio detalhada das funes que a integram. No entanto essa dificuldade relativamente superada com o conjunto de cdigo-fonte disponibilizado pela Microchip. Relativamente implementao do projecto em si deve-se dizer que o facto de um n ao se voltar a conectar no manter a identificao original na rede ZigBee no um ponto positivo na stack no entanto esse problema pode ter duas solues distintas. A primeira seria conseguida alterando a programao de todos os ns RFD de modo a estes enviarem uma identificao para a gateway, esta identificao funcionaria da mesma forma que a MAC Address funciona na tabela de endereamento. Esta no foi a soluo adoptada visto que um dos objectivos do trabalho ser no alterar a programao dos ns RFD. A segunda soluo para este problema consiste em utilizar um parmetro fixo, a MAC Address do n, para superar essa falha. Esta foi a soluo implementada tendo revelado o seu maior potencial em redes em que os ns no variam constantemente visto assim diminuir-se a necessidade de configuraes na gateway. Outra das dificuldades encontrada foi a coexistncia com as redes Wi-Fi nomeadamente as que utilizavam a norma IEEE 802.11n. Os dispositivos que cumprem esta norma utilizam todos os canais disponveis para a difuso do sinal originando alguma dificuldade ao n coordenador durante os instantes de criao da rede no entanto passado essa fase, por norma, os problemas no persistiam.

54

Implementao

Captulo 5 Concluses e Trabalho Futuro

Este captulo faz uma apreciao global do projecto focando-se nos objectivos alcanados e nas principais diferenas entre a implementao dos dois protocolos. Para terminar so apresentadas trabalho. algumas sugestes para desenvolvimentos futuros que trazem valor acrescentado ao projecto quer no trabalho desenvolvido quer em novas vertentes do

5.1 - Concluses
O trabalho apresentado nesta dissertao teve como objectivo implementar uma gateway capaz de permitir a utilizao de ns sem fios que pudessem ser acedidos atravs de uma rede de Modbus. Este objectivo foi conseguido usando a estrutura definida no captulo 3 obtendo-se uma gateway com a flexibilidade pretendida e com a capacidade de estabelecer uma ligao entre os dois protocolos. Esta ligao foi obtida atravs da utilizao de uma tabela de endereamentos capaz de fazer a correspondncia entre parmetros da rede Modbus como o nmero de rede e os registos para parmetros da rede ZigBee como o nmero do n e as entradas e sadas correspondentes. Com a possibilidade do acesso aos ns ZigBee, via TCP/IP, existem inmeras possibilidades permitindo a sua utilizao atravs de redes pr-existentes. No entanto, esta transposio dos ns ZigBee para o protocolo Modbus sempre um encapsulamento virtual pois a prpria estrutura do n em si no alterada. Este ponto conduz vantagem previamente enunciada de no ser necessrio alterar os dispositivos ZigBee, originando contudo algumas questes no lado da gateway nomeadamente a capacidade desta de ler e escrever nas diferentes portas de entrada e de sada dos ns ZigBee, este ponto relevante

55

56

Concluses e Trabalho Futuro

visto o protocolo ZigBee no estar focado na escrita e leitura de registo tal como o acontece no Modbus. Apesar do trabalho desenvolvido apresentar uma soluo para tal, atravs dos perfis apresentados, seria necessrio cada vez que se acrescentasse um novo tipo de dispositivo na rede ZigBee acrescentar tambm um perfil na prpria gateway, o que implicaria alterar o cdigo fonte da gateway. Uma alterao desse gnero teria tambm como consequncia a indisponibilidade dos servios fornecidos pela gateway. A implementao do protocolo Modbus e do protocolo ZigBee apresentou diferenas significativas maioritariamente devido informao disponvel de cada um. Enquanto o protocolo Modbus apresenta-se bem definido e as aplicaes que o usam esto, por norma bem documentadas. O protocolo ZigBee, como um protocolo relativamente recente, a informao existente em grande parte derivada da norma em si no existindo a variedade de casos de estudo existentes para as aplicaes Modbus. Tal o caso da plataforma utilizada, o PICDEM Z, que a informao encontra-se dispersa e deriva principalmente dos exemplos apresentados pela prpria Microchip. Como experincia pessoal este trabalho permitiu-me aprofundar os conhecimentos existentes em microcontroladores explorando o campo dos sensores sem fios, situao que no tinha sido proporcionada ao longo do curso. Foi tambm possvel compreender dois protocolos com alguma profundidade existindo como motivao a criao de uma aplicao interessante e til no meio das redes sem fios.

5.2 - Trabalho futuro


Devido a restries temporais o trabalho na gateway pode continuar a ser expandido futuramente existindo funcionalidades interessantes a acrescentar, bem como, outras actualizaes capazes de melhorar a performance da mesma. Uma possibilidade de trabalho interessante seria, aproveitando o mesmo conceito da gateway, implementar outro protocolo de comunicaes para alm do Modbus. Para tal e mantendo a estrutura concebida da gateway seria necessrio optar por um protocolo que apresenta-se a mesma estrutura do Modbus, limitando-se assim as escolhas possveis. Ainda relativamente interface TCP existe a possibilidade de implementar um maior nmero de funes Modbus no entanto este aumento de funes apenas justificvel ao integrar a gateway num contexto especfico. Com o intuito de criar uma gateway com maior nvel de fiabilidade apresentando assim um campo maior de aplicaes seria de todo interessante uma migrao de todo o sistema operativo da gateway para algo que cumpra os requisitos de tempo real podendo para isso se utilizar um sistema operativo como o TinyOS ou outros semelhantes. Esta opo vivel no entanto muito dispendiosa temporalmente pelo que no tempo disponvel para a tese era impensvel de o fazer com o kit de desenvolvimento disponvel partida.

Trabalho futuro

57

A nvel da interface sem fios da gateway existem algumas possibilidades de melhoramento sem que a mais relevante relativa a actualizar a stack de ZigBee mal esta consiga manter a identificao de um n mesmo depois de este se desconectar a primeira vez. Este ponto melhora a eficincia da gateway melhorando o cdigo e a memria gasta podendo esta ser utilizada para o desenvolvimento de outras funcionalidades. Uma ltima funcionalidade que pode ser bastante interessante acrescentar uma interface grfica que permita a configurao da gateway de uma forma mais funcional e mais agradvel para o utilizador tal que no seja necessrio configur-la atravs do Hyperterminal e de forma to primitiva. Neste campo sugere-se um programa proprietrio ou a configurao pelo meio de um browser sendo fundamental manter a operabilidade, desse mesmo mtodo de configurao, entre os diferentes sistemas operativos.

58

Concluses e Trabalho Futuro

Referncias

1. 2. 3. 4. 5. 6. 7. 8.

Ilyas, M. and I. Mahgoub, Handbook of sensor networks: compact wireless and wired sensing systems. 2005: CRC press Boca Raton, USA. Shunyang, Z., et al. Realization of Home Remote Control Network Based on ZigBee. 2007. Lee, W.S. and S.H. Hong. KNXZigBee gateway for home automation. 2008. Malm, T., et al., Validation of Safety-related Wireless Machine Control Systems. Modbus, I.D.A., Modbus application protocol specification v1. 1a. North Grafton, Massachusetts (www. modbus. org/specs. php), 2004. Cutler, T., Implementing Zigbee wireless mesh networking. RF DESIGN, 2005. 28(7): p. 18. http://www.embedded.com/columns/technicalinsights/18902431. Acedido em Junho de 2009. Baronti, P., et al., Wireless sensor networks: A survey on the state of the art and the 802.15. 4 and ZigBee standards. Computer Communications, 2007. 30(7): p. 16551695. Farahani, S., ZigBee Wireless Networks and Transceivers: The Complete Guide for Rf/Wireless Engineers. 2008: Newnes. Gislason, D., Zigbee Wireless Networking. 2008: Newnes. Lee, Y.D. and W.Y. Chung, Wireless sensor network based wearable smart shirt for ubiquitous health and activity monitoring. Sensors & Actuators: B. Chemical, 2009. Alliance, Z., ZigBee: Home Automation Public Application Profile. 2008. http://www.zigbee.org/imwp/idms/popups/pop_download.asp?contentID=12128. Acedido em Junho de 2009. Culter, T., Deploying ZigBee in existing industrial automation networks. Industrial Embedded System Resource Guide, Networking: Technology, 2005: p. 34-36.

9. 10. 11. 12. 13. 14.

59

60

15. 16. 17.

Wang, R.C., R.S. Chang, and H.C. Chao, Internetworking Between ZigBee/802.15. 4 and IPv6/802.3 Network. Sveda, M. and R. Trchalik. ZigBee-to-Internet interconnection architectures. 2007. Flowers, D., K. Otten, and N. Rajbharti, Microchip Stack for the ZigBee Protocol.

Você também pode gostar