UNIVERSIDADE ESTADUAL PAULISTA "JÚLIO DE MESQUITA FILHO" PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA FEIS - UNESP

MARCOS ANTONIO ESTREMOTE

EXAME GERAL DE QUALIFICAÇÃO

Módulo Microcontrolador com Suporte ao Protocolo CAN

(Controller Area Network) e ao Padrão 802.15.4

"Zigbee"para comunicação de Redes de Sensores sem Fio.

MARCOS ANTONIO ESTREMOTE

Módulo Microcontrolador com Suporte ao Protocolo CAN

(Controller Area Network) e ao Padrão 802.15.4 "Zigbee"para comunicação de Redes de Sensores sem Fio.

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????.

Prof^{o}. Dr^{o}. Nobuo Oki Orientador

JAQUELINE BARBOSA DO NASCIMENTO

O ASSÉDIO MORAL NO AMBIENTE DE TRABALHO

Monografia apresentada à Faculdade União nacional das instituições ensino superior privadas - UNIESP como parte das exigências parciais para obtenção do título de Bacharel em Direito.

Data de Aprovação: 28/01/2015

Banca examinadora:

_____________________________________________ Professor: Prof^{o}

_____________________________________________ Professor: Prof^{o}

_____________________________________________ Professora:

Ilha Solteira, SP Aos meus pais Lauraci Barbosa Rodrigues e Jair Correia do Nascimento, e ao meu amor

Virgílio Fries Muller.

AGRADECIMENTOS

Agradeço a conclusão deste trabalho primeiramente a Deus, por me dar força e coragem para nunca desistir e superar todas as dificuldades. Pois sei que "tudo posso naquele que me fortalece".

Aos meus queridos pais que são o exemplos de minha vida, pelo amor, apoio incondicional, Lauraci B. Rodrigues e Jair C. Nascimento, por sempre me incentivar nas horas difíceis, de desânimo e me ajudarem em mais uma conquista.

Ao meu amor, Virgílio Fries Müller, que nos momentos de minha ausência dedicados ao estudo, sempre entendeu, pois o futuro é feito a partir de renúncias.

A Eliane Souza pelas horas de Estudo e incentivo, e ao amigo Marcos Antônio Estremote pelo apoio.

As minhas amigas de curso, Graça R. Barakat e Selma C. Nakamura, que sempre estiveram ao meu lado nos estudos, sempre lembrarei com carinho.

Aos mestres, Ana Carla S.L. Ferraz; Andressa Ferrari; Izolda Rezende; Leandro Costa; Anderson Paris; Ricardo Aroni, Carlos Eduardo Furlani, Paulo de Sordi; Juliano Gil, Marcos A. Dias, a todos que me passaram o conhecimento ao decorrer destes cinco anos, muito obrigada pelo aprendizado.

A Uniesp/Faciluz - União Nacional das Instituições de Ensino Superior Privadas por me conceder a oportunidade de graduação em Bacharelado em Direito.

A todos os funcionários da faculdade Uniesp/Faciluz, entre eles, Alessandra Martins, Sergio, Cleuza e diretora Clorinda Rull Menezes.

Enfim, a minha orientadora Andressa Ferrari, com imenso respeito agradeço, por me dar a oportunidade e apoio para que este trabalho seja concluído.

A todos que direta ou indiretamente fizeram parte da minha formação, o meu muito obrigado. Todos que acreditaram em mim e aqueles que não acreditaram, agradeço também, pois me fizeram querer e lutar cada vez mais, e é com muito prazer que estou aqui hoje.

Quando um sonho existe este sonho também pode ser realizado.

Autor desconhecido.

RESUMO

A utilização de redes de comunicação sem fio deixou de ser uma ferramenta opcional para tornar-se uma necessidade no monitoramento de residências, automóveis e controles de processos automatizados. Tratando-se de redes de transdutores cabeadas, as redes CAN (Controller Area Network) são utilizadas em automóveis modernos, instrumentação médica, em veículos táticos, na automação de processos, no transporte metropolitano e em sistemas de controle de fábricas. Este sistema é utilizado para realizar a conexão entre nós sensores com um baixo custo através de uma rede. A maioria, senão todas, as estruturas críticas de sistemas de controle fazem uso do CAN em algum ponto na rede, para conectar sensores remotos e controlar atuadores de um sistema, ou para conectar vários controladores que utilizam uma interface em comum. O padrão sem fio, IEEE 802.15.4, comercialmente conhecido como "ZigBee", foi projetado para operar em baixas taxas de dados, com segurança e baixo custo de configurações de rede. Esta rede é comumente conhecida como LR-WPAN (Low-Rate Wireless Personal Area Network), são utilizados em redes domésticas, instrumentação médica e outras aplicações que exigem sensores remotos de baixa potência, a fim de aumentar o tempo de vida da bateria e minimizar a manutenção do sensor. Dois elementos chaves do padrão IEEE 802.15.4 LR-WPAN podem ser destacados: operação com baixa potência e à implementação inerente da segurança. Este projeto de pesquisa tem como objetivo desenvolver um sistema heterogêneo utilizando o microcontrolador (ATMEGA1281) em que, o modelo do protocolo CAN e o padrão IEEE 802.15.4 estejam acoplados. Este módulo será capaz de gerenciar e monitorar sensores e atuadores utilizando CAN e, através do padrão sem fio 802.15.4, comunicar-se com os outros módulos da rede.

Palavras-chave: Protocolo CAN. IEEE 802.15.4. Redes de Sensores sem Fio. ATMEGA1281. AVR Studio. WinAvr.

SUMÁRIO

1  INTRODUÇÃO GERAL  10

1.1 Introdução 10 1.2 Objetivo da Tese 13 1.3 Justificativa 13 1.4 Organização do Texto 13

2  PROTOCOLO CAN - CONTROLLER AREA NETWORK  15

2.1 Introdução 15 2.2 Definição do Protocolo CAN (Controller Area Network) 16 2.3 Características Gerais do Barramento CAN 17 2.4 Quadros de uma Mensagem CAN 18 2.5 Definição do Quadro de Dados do Barramento CAN 18 2.6 Definição do Quadro Remoto do Barramento CAN 19 2.7 Definição do Quadro de Erro do Barramento CAN 19 2.8 Arbitração do Barramento CAN 20 2.9 Detecção e Sinalização de Erros 21 2.10 Filtragem de Mensagens 21 2.11 Interface com Microcontrolador 21 2.12 Camadas do Protocolo CAN 22 2.12.1 Camada Física do CAN 22 2.12.2 Camada de Controle de Acesso ao Meio - CAN 23 2.12.3 Camada de Controle Lógico - CAN 25

3  PADRÃO 802.15.4 ? ?ZIGBEE?  27

3.1 Introdução 27 3.2 Camadas do padrão IEEE 802.15.4 - LR-WPAN 27 3.2.1 Camada de Rede - LR-WPAN 27 3.2.2 Camada Física - LR-WPAN 28 3.2.3 Camada de Controle de Acesso ao Meio - LR-WPAN 28 3.2.3.1 Rede de inicialização e Dispositivo de Associação 29 3.2.3.2 Transferência de dados em Redes com sinal ativado 29 3.2.3.3 Transferência de dados em redes sem sinal 31 3.2.3.4 Organização do Frame 31 3.3 Mecanismos de Segurança - LR-WPAN 32 4 TECNOLOGIAS UTILIZADAS NO PROJETO E PROPOSTA DO TRA-

BALHO 34 4.1 Introdução 34 4.2 Kits utilizados para a Implementação e Programação do Módulo 34 4.2.1 Módulo STK500 34 4.2.2 Módulo de Expansão STK501 35 4.2.3 Antena de Comunicação RZ502 36 4.3 Conexão dos Módulos Utilizados 36 4.4 Linguagem de Programação ANSI C - WINAVR 37 4.5 Ambiente de Desenvolvimento AVR Studio 37 4.6 Módulo Proposto 37 5 CONSIDERAÇÕES FINAIS 40 5.1 TRABALHOS FUTUROS 40

REFERÊNCIAS 42

1 INTRODUÇÃO GERAL

1.1 Introdução

Desenvolvido por Robert Bosch, em 1991, a Rede de Controle de Área - Controller Area Network (CAN) [1] é utilizada em automóveis modernos, instrumentação médica, em veículos táticos, na automação de processos, no transporte metropolitano e em sistemas de controle de fábricas. O DeviceNet é um exemplo de uma rede comercial SCADA (Supervisory Control and Data Aquisition - Sistemas de Supervisão e Aquisição de Dados), que tem como base a especificação CAN.

Este sistema é utilizado para realizar a conexão entre nós sensores com um baixo custo através de uma rede. A maioria, senão todas, as estruturas críticas de sistemas de controle fazem uso do CAN, em algum ponto na rede, para conectar sensores remotos e controlar atuadores de um sistema, ou para conectar vários controladores que utilizam uma interface em comum. Em uma rede CAN, cada dispositivo pode enviar e receber mensagens, somente se o barramento de comunicação estiver livre. O aspecto mais importante do protocolo CAN é que a transmissão (codificação) das mensagens é realizada por conteúdo da mensagem e não por endereço, como na maioria dos protocolos. Cada nó CAN determina se a mensagem é significativa, em seguida, um filtro pré-determinado combina com os dados no campo do identificador do pacote recebido e determina se a mensagem é ou não de prioridade para tomar posse do barramento. Este mecanismo permite a comunicação por broadcast ou multicast de mensagens, em que um nó pode enviar a mesma mensagem para muitos nós, um aspecto potencialmente útil na arquitetura de processamento distribuído "mestre-escravo"[2]. O sincronismo dos bits, a taxa de dados, e o comprimento da mensagem são variáveis que são programadas com base na capacidade física da conexão de rede. Na figura 1 apresenta-se um modelo de rede baseado no barramento CAN.

Figura 1 - Típica configuração do barramento CAN

A especificação CAN, publicada pela Bosch, normalmente realiza os serviços associados à camada de ligação de dados do modelo OSI . Várias pilhas de protocolos comerciais disponíveis fornecem serviços de nível superior, mas esses produtos normalmente requerem um investimento substancial do hardware proprietário. A rede CAN opera com baixas taxas de dados, geralmente, ao longo de um simples par trançado, mas muitos mecanismos de conexão são válidos de acordo com o padrão da camada física, que é especificado na norma ISO 11898.

Ao contrário dos diferentes esquemas de endereços (origem/destino) encontrados em protocolos como o IP (Internet Protocol), uma característica única no protocolo CAN é a utilização de identificadores de filtros de mensagem. Embora este mecanismo esteja bem adaptado para transmitir mensagens, pode trazer uma substancial complexidade no projeto e também pode representar sérios problemas de segurança nos filtros de recebimento que não são devidamente inicializados. A maior área de utilização do protocolo CAN continua sendo nos modernos sistemas eletrônicos, sendo que, vários automóveis utilizam os modelos do CAN que estão atualmente disponíveis. Nos automóveis, o sistema CAN é aplicado em redes IntraVeiculares (IVN - IntraVehicle Network) e, também, em outras áreas, como no controle de motores e distribuição de áudio estéreo. Outras aplicações automotivas incluem aquecimento, controle de iluminação e sistemas de informação e entretenimento. Além do padrão para automóveis, a rede CAN é utilizada em caminhões, comunicação de caminhões reboque; em trens, para controle de portas, controle de freio e validação de dispositivos através de cartões; na eletrônica marítima, controle de bombas e válvulas, nos aviões, para sensores de vôo e sistemas de navegação; em equipamentos médicos, para gestão de equipamentos em salas de operação, em sistemas de automação de fábricas, além de processos de controle e aquisição de dados remotos. Importantes implementações da rede CAN tem sido em produtos com tecnologia sem fio (wireless). Esses dispositivos são desejáveis nas situações em que uma conexão física pode ser de alto custo, perigosa ou para controle de veículos autônomos [3]. Uma recente pesquisa localizada na Internet através de sites confiáveis, somente duas empresas fornecem produtos comerciais que favorecem a comunicação sem fio aos dispositivos CAN. Algumas investigações para os produtos foram identificadas, onde nenhuma considera as questões de segurança, exceto para propor redundância [4, 5]. Assim, o sistema pode ser vulnerável a ataques ou invasões. O bloqueio de um sinal sem fio da rede CAN pode impedir a transmissão de dados em tempo real, proporcionando resultados catastróficos. Além disso, se o CAN RF é acessível, hackers podem causar uma falha do sistema enviando "vermes"[6] na rede quando o estado do barramento estiver recessivo. Na presente pesquisa, a rede não oferecerá nenhum mecanismo para impedir ouvintes desautorizados, possivelmente concorrentes de adquirir dados da rede em questão. O padrão sem fio, IEEE 802.15.4, foi finalizado no final de 2003. Comercialmente conhecido como "Zig-Bee", este sistema é projetado para operar em baixas taxas de dados, com segurança e baixo custo de configurações de rede. Esta rede é comumente conhecida LR-WPAN (Low-Rate Wireless Personal Area Network). LR-WPANs são utilizados em redes domésticas, instrumentação médica e outras aplicações que exigem sensores remotos de baixa potência, a fim de aumentar o tempo de vida da bateria e minimizar a manutenção do sensor. Dois elementos chaves do padrão IEEE 802.15.4 LR-WPAN podem ser destacados: operação com baixa potência e à implementação inerente da segurança. O padrão IEEE 802.15.4 especifica as pilhas de protocolo de Camada de Acesso ao Meio (Medium Access Control - MAC) e a Camada Física (PHY). Simplesmente, o RF na camada física é análogo entre dois nós na comunicação. A camada física do LR-WPAN usa o espectro de propagação da sequência direta (Direct Sequence Spread Spectrum - DSSS), que oferece resistência inerente de bloqueio. A subcamada MAC define a estrutura do empacotamento da mensagem e o estabelecimento de uma conexão. No padrão IEEE 802.15.4 o mecanismo utilizado para controle do barramento é o CSMA-CA (Carrier Sense Multiple Access - Collision Avoidance). Os recursos de segurança também são executados e incluem a capacidade de manter uma lista de Controle de Acesso (Access Control List - ACL) e a capacidade de executar criptografia simétrica [7]. Uma conexão sem fio para o acesso CAN é utilizada em redes IVN e SCADA, principalmente para o acesso às partes rotativas (sensor de pressão e incêndio), aplicações de sensoriamento remoto e Veículos Autônomos Guiados (Autonomous Guided Vehicles - AGV). Poucas soluções de interfaces comerciais sem fio CAN estão disponíveis e há pouca congruência entre estes projetos proprietários. As implementações atuais são baseadas no padrão IEEE 802.11 ou Bluetooth, ambas são aceitáveis, mas, a partir da perspectiva CAN, são ineficientes em termos de consumo de energia e taxa de dados. Este trabalho propõe uma arquitetura única (microcontrolador) para acoplar o protocolo CAN com o padrão IEEE 802.15.4 LR-WPAN, proporcionando assim, um baixo custo, baixa potência, eficiência, segurança e a capacidade desta rede sem fio compatível com muitas outras interfaces de redes e infraestruturas existentes, além de inúmeras outras instalações que incorporem o CAN. Os problemas envolvidos na criação deste módulo exigem um grande esforço por parte do projetista, pois estas redes são heterogêneas em vários aspectos [8], como ilustrado na Tabela 1.

Tabela 1 - Comparação da rede CAN com o IEEE 802.15.4 Rede de Controle de Área CAN IEEE 802.15.4 Camada Física Barramento com terminadores Spread spectrum RF Camada MAC/LLC Filtros de mensagens Endereço de origem e destino Camada MAC Detecção de Colisão Anticolisão Camada de Rede/Topologia Nós em paralelo, patrão-trabalhador Ad-hoc, dispositivos de função completa, dispositivos de função reduzida Segurança Nenhuma Listas de Controle de Acesso, Criptografia Simétrica.

Nas próximas seções deste trabalho, as limitações envolvidas na implementação e programação do módulo microcontrolador serão analisadas. A implantação deste sistema é mais provável de ocorrer em sistemas de controle e automação e, também, investigar sistemas críticos que necessitam de respostas em tempo real. Por isso, várias características essenciais, que afetam as respostas em tempo real, são investigadas. Estes incluem atraso de mensagem, tempo de antena e máximo caudal.

1.2 Objetivo da Tese

O objetivo deste trabalho é desenvolver um módulo microcontrolador que dê suporte na concatenação dos protocolos CAN (Controller Area Network) e o padrão 802.15.4 ?Zigbee? para comunicação de redes de sensores sem fio (RSSF). Este módulo controlador terá a capacidade de agregar vários sensores em uma área pré-determinada utilizando para controle dos nós o protocolo CAN e a comunicação entre nós sensores localizados e ambientes distantes através do padrão sem fio 802.15.4. Para o desenvolvimento do trabalho, utilizar-se-ão os seguintes módulos de desenvolvimento da ATMEL:

• Módulo STK 500.

• Módulo de expansão STK 501.

• Rádio de comunicação da ATMEL RZ502.

• Microcontrolador da família ATMEGA1281.

Para a implementação dos algoritmos para gravação do microcontrolador, será utilizada a linguagem de programação ANSI C. Além da IDE de desenvolvimento da ATMEL (AVR Studio 4.0), outras ferramentas de testes e depuração serão oferecidas pela mesma empresa.

1.3 Justificativa

A ausência de um padrão internacional de interfaceamento entre protocolos heterogêneos para comunicação sem fio fez com que engenheiros utilizassem diferentes tipos de interfaces e protocolos em diferentes ambientes de acordo com a sua necessidade, dificultando, assim, a interoperabilidade e futuras manutenções e comunicação do sistema. Muitos desses sistemas utilizam um nó de rede centralizado realizando a conversão dos protocolos e modificando a interface de comunicação.

1.4 Organização do Texto

Incluída a introdução geral no Capítulo 1, que contém a contextualização do projeto, um breve histórico do protocolo CAN, do padrão IEEE 802.15.4 e os trabalhos mais relevantes na área, o texto foi organizado em 7 Capítulos. No Capítulo 2, são introduzidos os principais conceitos do protocolo das Redes Controle de Área e a descrição dos protocolos, métodos de transferência de mensagens no barramento, as tecnologias de transmissão de dados utilizadas e as diretrizes para o desenvolvimento dos módulos para redes de sensores sem fio (RSSF). No Capítulo 3, são apresentadas as características do padrão IEEE 802.15.4, como formato de pacotes, abrangência de comunicação, tipos de erros, paradigmas da sua utilização na comunicação sem fio, contextos que se adéquam à elaboração do projeto. No Capítulo 4, são apresentadas as ferramentas que serão utilizadas para os testes e implementação do módulo, suas características, análise de desempenho e onde se enquadram dentro do contexto do projeto. No Capítulo 5, é apresentado o modelo proposto a ser confeccionado. Além disso, apresenta alguns testes que foram realizados para comunicação serial que validam a funcionalidade do sistema. No Capítulo 6, são apresentadas as considerações finais deste trabalho. Além disso, os trabalhos futuros a serem desenvolvidos e, no Capítulo 7, as referências utilizadas.

2 PROTOCOLO CAN - CONTROLLER AREA NETWORK

2.1 Introdução

Para supervisionar o controle e a aquisição de dados (SCADA) são utilizadas as redes Foundation Fieldbus [9], a Profibus [10] e a CAN. O protocolo CAN apresenta-se como uma alternativa viável para o desenvolvimento de sistemas de automação industrial. A utilização de objetos distribuídos em conjunto com os outros barramentos industriais traz algumas dificuldades relacionadas como no modelo de controle geralmente utilizado por eles. O barramento Fundation Fieldbus, por exemplo, apesar de permitir o uso de modelos cliente/servidor e "publisher/subscriber", utiliza-se do conceito de blocos funcionais padronizados que dificulta a utilização de orientação a objetos no mesmo. Já com relação ao Profibus, tem-se que a utilização de mestres e escravos com comunicação ponto a ponto restringe o uso de objetos distribuídos, já que a autonomia dos mesmos é uma das características que se deseja preservar.

Diferentemente da comunicação ponto a ponto geralmente utilizada pelos outros barramentos, o CAN possui a característica de broadcast que pode ser convenientemente explorada pelos sistemas de automação industrial. Além disso, a priorização de mensagens utilizada no barramento CAN oferece algumas propriedades de tempo-real que podem ser convenientemente aproveitadas. O barramento CAN oferece ainda a possibilidade de se definir um protocolo de alto nível para as aplicações, de acordo com as necessidades do usuário, já que o seu padrão básico cobre somente as duas primeiras camadas do padrão ISO/OSI [11].

Assim, quanto à utilização de objetos distribuídos, tem-se que o barramento CAN apresentase como uma alternativa bastante adequada, já que este oferece muita liberdade ao projetista, para a utilização de qualquer modelo de controle e padrão de comunicação desejado. Por último, seu custo é suficientemente baixo para ser utilizado em micro-controladores, o que favorece o desenvolvimento de sistemas de automação com controle distribuído.

A rede CAN teve amplo sucesso e popularidade em muitas e variadas indústrias. Inicialmente desenvolvida para ser utilizada em barramentos de instrumentação de automóveis, a sua utilização tem evoluído ao longo da última década, para incluir aplicações tão variadas como construção e automação HVAC (Heating, Ventilation and Air Conditioning), sistemas de controle de fábricas e dispositivos médicos. Para criar uma fundamentação teórica, este capítulo fornece uma visão geral do protocolo CAN e apresenta um breve estudo do formato dos pacotes e protocolos que este protocolo utiliza.

2.2 Definição do Protocolo CAN (Controller Area Network)

O barramento CAN é um protocolo de comunicação serial desenvolvido inicialmente para aplicações automotivas que, recentemente, vem sendo utilizado em sistemas de automação industrial. O protocolo CAN é baseado na técnica de CSMA/CR (Carrier Sense Multiple Access/Collision Resolution), às vezes, também chamado de CSMA/CD+AMP (Carrier Sense Multiple Access/Collision Detection and Arbitration on Message Priority), de acesso ao meio de transmissão. Isto significa que sempre que ocorrer uma colisão entre duas ou mais mensagens, a de mais alta prioridade terá o acesso ao meio físico assegurado e prosseguirá a transmissão.

As características básicas dos pacotes que trafegam pelo barramento CAN são: 8 bytes de dados, velocidade de até 1 Mbit/s, priorização das mensagens, recepção multicast com sincronização, detecção de erros e sinalização e retransmissão automática de mensagens corrompidas. Todas estas características propiciam simplicidade, alta confiabilidade e segurança, além de baixo custo. A primeira versão do protocolo CAN 2.0A [1] especificava somente mensagens do tipo padrão com identificadores de 11 bits enquanto que o CAN 2.0B [1] admite também mensagens estendidas com identificadores de 29 bits. O protocolo CAN foi adotado em 1993 com o padrão mundial ISO11898, pela International Standardization Organization.

O protocolo é usualmente implementado em um controlador na forma de um circuito integrado, mas também podem ser encontrados no mercado microcontroladores de 8, 16 e 32 bits com controladores CAN integrados. Os controladores CAN e os microcontroladores com controladores CAN integrados são fabricados por um grande número de indústrias tais como Intel, Motorola, Philips, Siemens e Texas Instruments, resultando em torno de 50 circuitos integrados de 15 fabricantes diferentes. A utilização do protocolo CAN, na indústria automobilística, resultou numa produção em grande escala de controladores CAN, atualmente na casa dos milhões ao ano [11].

A afirmação e o crescimento do protocolo CAN está fortemente baseado na organização dos fabricantes em torno de associações tais como a CiA (CAN in Automation) assim como na existência de uma série de ferramentas de software para o desenvolvimento, simulação, configuração e monitoração de aplicações bem como na disponibilidade de hardware na forma de placas de controle, placas ISA, PCI e outros [11].

2.3 Características Gerais do Barramento CAN

De acordo com o modelo OSI/ISO, o padrão CAN 2.0B, apresentado na Tabela 2, é constituído somente de duas camadas: a Camada de Dados (Data Link Layer) e a Camada Física (Physical Layer). As características do barramento CAN podem ser resumidas por [11]:

• Baseado no conceito de broadcast;

• Um esquema de arbitragem não destrutiva (bitwise arbitration) descentralizada, baseada na adoção dos níveis "dominante"e "recessivo", é usado para controlar o acesso ao barramento;

• As mensagens de dados são pequenas (no máximo oito bytes de dados) e são conferidas por checksum;

• Não há endereço explícito nas mensagens. Em vez disso, cada mensagem carrega um identificador que controla sua prioridade no barramento e que pode servir como uma identificação do conteúdo da mesma;

• Utiliza um elaborado esquema de tratamento de erros que resulta na retransmissão das mensagens que não são apropriadamente recebidas;

• Fornece meios efetivos para isolar falhas e remover nós com problemas do barramento;

• Oferece meios para filtragem das mensagens;

• O meio físico de transmissão pode ser escolhido de acordo com as necessidades. O mais comum é o par trançado, mas também podem ser utilizados outros meios de transmissão tais como fibra ótica e rádio frequência.

Tabela 2 - Camadas do padrão CAN 2.0B Camadas - OSI Função Especificação 7 Aplicação Especificado pelo projetista. 6 Apresentação Vazio 5 Sessão Vazio 4 Transporte Vazio 3 Rede Vazio 2 Link de Dados Coberto pelo CAN e padrão ISO. 1 Física Coberto pela ISO e parcialmente pelo CAN.

Uma das propriedades mais importantes do barramento é o esquema de arbitração binária (bitwise arbitration) que fornece uma maneira de resolver colisão de mensagens. Sempre que dois nós começarem a transmitir mensagens ao mesmo tempo, o mecanismo de arbitragem garante que a mensagem de mais alta prioridade será enviada. Isto é conseguido através da definição de dois níveis de barramento chamados "recessivo"e "dominante". Um nível "dominante"sempre sobrescreve um nível "recessivo". Assim, enquanto um nó está enviando uma mensagem, ele compara o nível do bit transmitido com o nível monitorado no barramento. Se um nó tenta enviar um nível "recessivo"e detecta um "dominante", ele perde a arbitragem e interrompe o processo de transmissão.

A taxa de transmissão, por sua vez, é limitada pelo comprimento do barramento utilizado. No caso do uso de par trançado, por exemplo, temos uma determinada relação entre a taxa de transmissão e o comprimento máximo do barramento, como mostra a Tabela 3. Essa limitação decorre da necessidade de sincronização entre as estações componentes do barramento a qual dá suporte ao esquema de arbitração binária.

Tabela 3 - Taxa de transmissão e comprimento do barramento Taxa (Kbit/s) Distância Máxima (m). 1000 40 500 130 250 270 125 530 100 620 50 1300 20 3300 10 6700 5 10000

2.4 Quadros de uma Mensagem CAN

O barramento CAN na sua versão 2.0B é formado por quatro tipos de quadros (frames) para controlar a transferência de mensagens [1, 11]:

• Quadro de Dados (DataFrame);

• Quadro Remoto (RemoteFrame);

• Quadro de Erro (ErrorFrame);

• Quadro de Sobrecarga (Overload Frame).

2.5 Definição do Quadro de Dados do Barramento CAN

O Quadro de Dados leva dados do transmissor para os receptores e é composto de sete campos diferentes mostrados na Figura 2 [1, 11, 12]:

Figura 2 - Quadro de dados

• Início do quadro (SOF): marca o início do quadro com um bit ?dominante? simples;

• Campo de arbitragem: no formato padrão (Figura 3), consiste de um identificador de 11 bits e do bit RTR, o qual indica se é um Quadro de Dados (RTR - "dominante") ou Quadro Remoto (RTR - "recessivo"). No formato estendido (Figura 4), é formado por um identificador de 29 bits, do bit SRR ("recessivo", substitui o bit RTR do formato padrão), bit IDE (identifica se o quadro é padrão, IDE - "dominante", ou estendido, IDE - "recessivo") e pelo bit RTR. - Campo de controle: no formato padrão é constituído do DLC (Data Length Code), que indica o número de bytes no campo de dados, e dos bits IDE e r0 (reservado). No formato estendido, é formado pelo DLC e pelos bits reservados r1e r0.

• Campo de dados: consiste dos dados a serem transmitidos pelo Quadro de Dados.

• Campo CRC: contém a sequência de CRC (Cyclic Redundancy Code) de 15 bits seguida por um delimitador (1bit).

• Campo ACK: é composto pelo ACK Slot (1 bit) e Delimitador de ACK (1 bit). É utilizado pelos nós receptores, para indicar o correto recebimento de uma mensagem.

• Fim do quadro: É formado por uma sequência de sete bits "recessivos"e serve para delimitar o quadro.

Figura 3 - Quadro de Dados Padrão

Figura 4 - Quadro de Dados Estendido

2.6 Definição do Quadro Remoto do Barramento CAN

O Quadro Remoto, mostrado na Figura 5 é utilizado para requisitar dados. É formado pelos campos: Início do Quadro, Campo de Arbitragem, Campo de Controle, Campo de CRC, Campo de ACK e Fim do Quadro. No Quadro Remoto o bit RTR é "recessivo"e não há campo de dados. Este tipo de quadro é utilizado quando um nó deseja solicitar dados a outro nó. O nó que possuía informação responde, então, através de um Quadro de Dados com o mesmo identificador da solicitação [1, 11, 12].

Figura 5 - Quadro Remoto

2.7 Definição do Quadro de Erro do Barramento CAN

Um Quadro de Erro é transmitido por um nó sempre que for detectado algum tipo de erro no barramento. Se um nó detectar um problema comum Quadro de Dados, por exemplo, isto será imediatamente indicado por um Quadro de Erro. O Quadro de Erro, como mostra a figura 6, é composto por dois campos [12]:

• Flags de Erro: é formado pela superposição de Flags de Erro provenientes de diferentes nós. O comprimento total pode variar de seis a doze bits. Existem dois tipos de Flags de Erro: Flags de Erro Ativos, que consistem de seis bits "dominantes"consecutivos, e Flags de Erro Passivos, constituídos por seis bits "recessivos"consecutivos.

• Delimitador de Erro: consiste de oito bits "recessivos".

Figura 6 - Quadro de Erro

2.8. Quadro de Sobrecarga (Overload Frame) do CAN

Existem duas condições que levam à transmissão de um Quadro de Sobrecarga: ? As condições internas de um receptor, o que requer um atraso até o próximo Quadro de Dados ou Quadro Remoto. ? Detecção de um bit ?dominante? no espaço entre dois quadros. No máximo, dois Quadros de Sobrecarga podem ser gerados para atrasar o próximo Quadro de Dados ou Quadro Remoto. O Quadro de Sobrecarga, mostrado na figura 7, é formado pelos campos: ? Flag de Sobrecarga: consiste de seis bits ?dominantes?. ? Delimitador de Sobrecarga: consiste de oito bits ?recessivos?.

Figura 7 - Quadro de Sobrecarga

2.8 Arbitração do Barramento CAN

O processo de arbitragem ocorre sempre que dois ou mais nós iniciam uma transmissão exatamente ao mesmo tempo, após verificar que o barramento está desocupado. Um exemplo deste processo, onde se tem três estações N1, N2 e N3 concectadas a um barramento, pode ser visto na figura 8. Neste exemplo, vê-se que nada acontece até o bit cinco, onde os nós N1 e N3 transmitem bits "dominantes"("0") e o nó N2 tenta transmitir um bit "recessivo". Por ter escrito um bit "recessivo"e lido um bit "dominante"no barramento, o nó N2 perde a arbitragem e passa somente a ler o barramento, emitindo bits "recessivos". Finalmente, no bit dois, o nó N1 perde a arbitragem para o nó N3, que possui um identificador com valor menor e, por isso, com maior prioridade do que os nós N1 e N2 [11, 12].

Figura 8 - Processo de arbitragem no barramento CAN

O resultado deste processo de arbitragem é que a mensagem com a prioridade mais alta em pré consegue ser transmitida em atraso. Os nós N1 e N2, cujas mensagens perderam o processo de arbitragem, terão suas mensagens transmitidas depois que o nó três finalizar a sua transmissão.

2.9 Detecção e Sinalização de Erros

São utilizados dois mecanismos de detecção de erros no nível de bits: monitoração e inserção de bits (bit stuffinng). Já no nível de mensagens, são usados o Cyclic Redundancy Check (CRC) e checagem dos quadros (Frame check). A sinalização de qualquer erro detectado é feita através de um Quadro de Erro.

A monitoração simultânea, por todos os nós, das mensagens que circulam no barramento permite a detecção de mensagens corrompidas. Desta maneira, os campos das mensagens são constantemente verificados de acordo com o tipo da mensagem, assim como o seu CRC. Caso algum nó detecte problemas com uma mensagem, ele indicará isso através de um Quadro de Erro. Tão logo seja possível, a mensagem será retransmitida garantindo, assim, que todas as mensagens serão corretamente recebidas por todos os nós.

Há também mecanismos de proteção contra nós com algum tipo de falha. Dessa maneira, se um dos nós estiver constantemente indicando o recebimento de mensagens corrompidas, ele estará perturbando o barramento com sucessivas retransmissões de mensagens. Assim, um contador interno de erros existente em cada controlador CAN, força o nó a se desconectar quando um certo número de erros é atingido.

2.10 Filtragem de Mensagens

Como dito anteriormente, o protocolo CAN é usualmente implementado na forma de um controlador que, usualmente, também se comunica com um microcontrolador. Assim, a maioria dos controladores de protocolo oferece um serviço de filtragem de mensagens que faz com que somente as mensagens como padrão de identificação pré-programado sejam armazenadas e sinalizadas no microcontrolador. Isso possibilita uma economia de tempo de leitura e processamento das mensagens recebidas, liberando o microprocessador para tarefas mais importantes, contanto que a filtragem seja corretamente configurada. Essa operação normalmente envolve a configuração de duas máscaras para o identificador das mensagens, de forma a selecionar as mensagens ou grupo de mensagens desejadas e descartar as não desejadas.

2.11 Interface com Microcontrolador

Um nó é geralmente conectado a um barramento constituído de dois fios terminados em ambas as pontas por dois resistores. O controlador CAN pode estar diretamente conectado ao microcontrolador ou, como dito anteriormente, o microcontrolador pode possuir um controlador CAN internamente. A ligação do nó com o meio físico normalmente, se dá através de um transceiver, o qual se comunica serialmente com o controlador através do pino de saída TX e do pino de entrada RX. A função do transceiver, no caso do uso de par trançado, é transformar os bits que entram e saem do controlador em tensão diferencial a ser aplicada ao barramento.

O modo de transmissão diferencial é utilizado para proporcionar imunidade a interferências eletromagnéticas ao barramento. A alimentação do transceiver é feita com cinco volts e o nível "recessivo"corresponde a uma diferença de tensão menor do que 0,5V entre CAN_H e CAN_L, com a tensão em CAN_H sendo normalmente maior do que CAN_L. Já o nível "dominante"é detectado quando a diferença de tensão for de no mínimo 0,9V sendo que a tensão nominal neste estado é de 3,5V para CAN_H e 1,5V para CAN_L. Convém lembrar que os sinais dos pinos TX e RX possuem direções definidas enquanto que os sinais CAN_H e CAN_L não. O esquema deste tipo de conexão é mostrado na figura 9.

Figura 9 - Esquema para a interface do microcontrolador com o barramento CAN

2.12 Camadas do Protocolo CAN

Embora a especificação original refere-se às Camadas de Objeto e a de Transferência (TCP), as mais recentes implementações rompem os protocolos para a Camada Física (PHY) e para a Camada de Dados, com a Camada de Dados dividida para as camadas de Controle Lógico (LLC - Logical Link Control) e (MAC - Medium Access Control) Controle de Acesso ao Meio [13]. A tabela 4 mostra a organização e estrutura das camadas do CAN e as responsabilidades das camadas associadas.

Tabela 4 - Camadas CAN e respectivas tarefas Camada Todos os Nós Nós Supervisores Aplicação (APP) Programas de Usuário Controle de Link Lógico (LLC) Filtro de identificação, notificação de sobrecarga, gestão de recuperação. Falha Controle de Acesso ao Meio (MAC) Estrutura de codificação e formatação, detecção e sinalização de erro, confirmação. Falha Física (PHY) Tempo de bit, sincronização de codificação e decodificação de bits. Gestão de falha no barramento

2.12.1 Camada Física do CAN

A camada física trata de sincronização, codificação, bem como a ligação física entre dois nós de rede [14]. A camada física do protocolo CAN não foi especificada no modelo 2.0, mas, mais tarde, foi incorporada na especificação ISO 11898 [15]. Embora outros métodos de conexão são utilizados, o meio físico predominante para a comunicação é um simples par trançado, encerrado em cada extremidade com um resistor 124 Ohm. A especificação descreve o estado lógico do barramento como dominante e recessivo, em que o estado é o dominante com valor lógico "zero", que leva o barramento para o seu estado zero, independente de quantos lógicos "1"estão no barramento. Este mecanismo é utilizado para fornecer prioridade ao barramento mestre sobre nós subordinados e para a arbitragem entre os nós de igual valor. Se o barramento estiver livre, qualquer nó pode começar a transmitir uma nova mensagem. Se forem tentadas transmissões simultâneas, o conflito no barramento é resolvido usando os bits do campo identificador da mensagem. Todas as mensagens são recebidas no barramento (mas não são necessariamente transformados) por todos os nodos conectados a ele. Cada nó reconhece mensagens consistentes (correto) e mensagens inconsistentes. Isso garante a confiabilidade da ligação, fornecendo uma confirmação para o remetente. Em muitos dos casos, as camadas inferiores do CAN são implementadas em hardware com interrupções lógicas integradas que permitem a um modo de "sleep"e com "wakeup"automático, quando a atividade no barramento recomeça.

A taxa de dados do CAN é condicionada por vários fatores: comprimento do barramento, frequência do oscilador e tolerância, velocidade do circuito condutor. Neste projeto, a taxa de dados exigidos pelo CAN cai bem abaixo do máximo de 1 Mbps, devido à taxa máxima do padrão IEEE 802.15.4 (250 kbps). No entanto, ainda é benéfica para fornecer a transmissão dos parâmetros adequados [13].

A taxa máxima de bits permitida pelo protocolo CAN é de 1 Mbps e diminui conforme o aumento do cabo. Em geral, para ambientes com baixo nível de ruído e taxa de dados, os critérios de amostragem podem ser relaxados e a tolerância do oscilador aumentada. Conforme o aumento da taxa de dados ou o aumento dos níveis de ruído, a amostragem é exigida normalmente e a tolerância do oscilador deve ser observada.

2.12.2 Camada de Controle de Acesso ao Meio - CAN

A camada MAC é responsável pela codificação, formatação dos quadros de dados, detecção e sinalização de erros, e reconhecimentos. Cada nó ativo no barramento realiza acompanhamento, controle de redundância cíclica (CRC), "bit-stuffing"e o controle dos quadros das mensagens. Erros globais e locais podem ser detectados por todos nós. Quando erros forem detectados, a mensagem é automaticamente anulada e retransmitida até que a operação tenha sucesso.

Os quadros CAN são divididos em quatro categorias diferentes: quadro de dados, quadro remoto, quadro de erro e de sobrecarga. Um quadro de dados contém informações da mensagem. Um quadro remoto ocorre quando um nó solicita a outros nós a transmissão do quadro de dados com seu identificador. Quadros de erros é gerado quando um nó detecta algum erro. Os de sobrecarga são gerados quando ocorrem atrasos sucessivos no fornecimento de mais dados ou quadros remotos. Os sete campos da estrutura do quadro dados é mostrado na figura 10. O campo início (START) consiste de um único bit dominante e sua borda é utilizada como um gatilho para a sincronização dos restantes bits na armação.

Figura 10 - Estrutura do Frame de dados CAN

O campo de arbitragem (ARB) varia dependendo se o quadro possui formato padrão ou formato estendido, como mostrado na figura 11.

Figura 11 - Campo de arbitração padrão e estendido

O padrão do campo de arbitragem é utilizar identificador de 11 bits que constitui a base para a priorização das mensagens, o menor número ganha e pode transmitir. O quadro estendido utiliza um total de 29 bits para o identificador, mas apenas os primeiros 11 bits são utilizados para decisões de prioridade. O estado do bit RTR (transmissão remota do pedido) é determinado por um tipo de quadro. É dominante em quadro de dados e recessivo em quadro remoto. Devido ao bit SRR (pedido remoto substituto) poder ocupar a mesma posição que um RTR em um frame padrão, colisões podem ocorrer nos 11 bits de identificação entre um quadro com formato padrão e um quadro com formato estendido. Neste caso, o quadro padrão tem a prioridade. A função do bit IDE (identificador extensão) varia com o formato do quadro. Em frames com formato estendido, ela é usada no campo de arbitragem. No formato padrão, é usada como parte do campo de controle, que inclui alguns bits reservados, bem como 4 bits que correspondem ao código do comprimento dos dados. O código de comprimento de dados especifica o comprimento da mensagem em bytes, usando uma simples contagem binária, a partir de 0000(2) (0 bytes de dados) para 1000(2) (8 bytes de dados), em que "0"é um bit dominante e um "1"é um bit recessivo. O campo de dados no padrão pode conter dados de quadros estendidos, onde podem conter de zero a oito bytes de informação. O campo CRC contém a sequência CRC e o bit recessivo delimitador CRC. A sequência CRC é gerada utilizando todas as sequências de bits de quadros anteriores.

A estrutura de um quadro remoto assemelha-se a um quadro de dados sem o campo de dados. É utilizado para solicitar uma transmissão de envio de dados para um receptor. Um quadro de erro contém um flag de erro e oito bits delimitadores de erros recessivos. O campo de flag de erro é a superposição de todos os flags de erro que serão transmitidos. Um erro ativo é indicado por seis consecutivos bits dominantes; um flag de erro passivo é indicado por seis consecutivos bits recessivos, ao menos que esses bits sejam substituídos por bits dominantes de outros nós, transmissão para flags de erros ativos. Quadros de sobrecarga funcionam de forma semelhante ao quadros de erro; eles têm um campo de flag de sobrecarga que é a sobreposição de todos os flags de nós seguido por um delimitador de oito bits recessivos. Além dos quatro tipos de quadros, quadro de dados e quadros remotos são separados por um espaço interframe.

2.12.3 Camada de Controle Lógico - CAN

As tarefas desempenhadas pela camada de Controle Lógico (LLC - Logical Link Control) incluem identificadores de filtros, notificação de sobrecarga, recuperação e gerenciamento. Quando comparado com os protocolos de redes típicas, a característica típica da rede CAN é como os nós são endereçados.

Ao invés de uma fonte específica do endereço de destino, os identificadores estão incluídos no pacote da mensagem. Este campo identificador é processado e encaminhado por todos os nós da rede. Os receptores utilizam filtros pré-configurados para decidir se pretende ou não agir, de acordo com uma mensagem. O filtro lógico realiza uma verificação (comparação) bit a bit do identificador de entrada no seu próprio banco de filtros. Se ocorrer uma correspondência, a mensagem é processada, caso contrário, a mensagem é ignorada. Se essa situação não é justificada, o sistema permite bits sem importância em um registrador de máscara para ser configurado, o que permite a fiscalização dos nós para recolher as mensagens a partir de muitos identificadores (subordinados), enquanto, ao mesmo tempo, impedem que subordinados se comuniquem uns com os outros. Esse mecanismo é conhecido como o modelo de processamento distribuído "patrão-trabalhador"[2], que são empregados em diversas áreas como: em automóveis ou ambientes industriais; onde muitos sensores distribuídos se comunicam com um controlador central. O campo de filtros possui um comprimento de 32 bits e pode ser configurado com dois, quatro ou oito filtros de aceitação. A escolha da configuração do filtro padrão é baseada na definição de qual formato será utilizado (padrão ou estendido) sobre a organização da rede pretendida.

A configuração de filtros adicionais permite acertos múltiplos, com uma possível configuração de filtros para cada banco. Este recurso é útil para implementar um grupo de hierarquias de comunicação dentro da rede. Devido a diversas possibilidades de configuração, uma terceira parte da aplicação [16] é frequentemente utilizada para definir um conjunto de filtro de parâmetros.

Outra função fundamental da LLC é o bit-stuffing. A fim de manter um número suficiente de transições (para a recuperação do clock e para prevenir DC), não mais que cinco bits idênticos consecutivos são permitidos. O LLC do transmissor insere automaticamente um bit complementar no domínio após detectar cinco bits idênticos consecutivos. Essa ação ocorre apenas nos campos START, ARB, CTRL, DATA e Sequência CRC. O Bit-stuffing não ocorre no delimitador CRC, ACK, ou no campo EOF.

A falta de esquemas de gerenciamento de contenção e recuperação são baseados em contadores de erros individuais e o estado de erros de cada nó. Existem cinco tipos de erros que podem ocorrer durante uma transmissão: um bit error ocorre quando um transmissor detecta um bit no barramento, que é diferente do bit que foi enviado; um stuff error ocorre quando seis bits consecutivos idênticos são detectados em um campo; um CRC error ocorre quando o cálculo do CRC recebido não corresponde à sequência do CRC transmitido; um form error ocorre quando um campo contém mais bits do que o esperado e um acknowledgement error ocorre quando um transmissor não detectar um ACK (resposta) depois de enviar uma mensagem. A validade de uma mensagem é interpretada de maneira diferente para transmissores e receptores. Um transmissor considera uma mensagem livre de erros, se não houver erros até o fim da transmissão do quadro. Para todos os erros que ocorrem, a mensagem é retransmitida automaticamente, com base em regras de prioridade. Um receptor considera uma mensagem livre de erros, se todos, exceto o último bit do frame, não estiverem corrompidos.

Cada nó no barramento mantém dois contadores de erro - um receptor e um transmissor de erros. Além disso, para cada nó é atribuído um erro de três estados: ativo, passivo, ou barramento desativado. O estado ativo é o estado normal em que um nó ativo envia flags de erro (dominante) após a detecção. Nós, no estado passivo, só podem enviar flags passivos (recessivo). Um nó em um barramento inativo não pode enviar qualquer flags de erro. Os contadores de erro são incrementados e decrementados tomando como base o tipo de erro detectado e o estado de cada nó. O estado de erro de cada nó é determinado pelo valor dos contadores de erro. Geralmente, nós com contadores de erro elevados são colocados no estado passivo ou excluídos do barramento. Se os contadores de erros dos nós são reduzidos para um nível aceitável, eles são autorizados a retornar ao barramento, assumindo o estado ativo.

3 PADRÃO 802.15.4 ? ?ZIGBEE?

3.1 Introdução

O atributo fundamental das LR-WPAN é o seu custo mínimo. Os principais fatores que contribuem para o custo mínimo incluem: baixa taxa de dados, o processo de construção da rede e tempo de vida útil da bateria. Na última década, poucas LR-WPANs tiveram sucesso comercial, provavelmente devido a fatores como: custo de fabricação e falta de sensores sem fio baratos. Recentes avanços na fabricação de dispositivos pequenos, tecnologia no desenvolvimento de baterias, e a utilização espectro RF, juntamente com preocupações em termos de segurança têm contribuído para um maior interesse no desenvolvimento e na comercialização destas redes de sensores sem fios. Esta seção apresenta um panorama da mais recente norma IEEE LR-WPAN e fornece um levantamento de algumas aplicações comerciais [8].

3.2 Camadas do padrão IEEE 802.15.4 - LR-WPAN

Criado recentemente, o padrão IEEE 802.15.4 [7] estabelece as bases para as redes sem fio desta investigação e, portanto, é também a base para a discussão seguinte. A especificação diz respeito apenas às camadas Física (PHY) e Controle de Acesso ao Meio (MAC).

3.2.1 Camada de Rede - LR-WPAN

A especificação IEEE 802.15.4 não abrange a Camada de Rede (NWK). As especificações da camada de rede estão atualmente em desenvolvimento pela Zigbee Alliance (www.zigbee.org) e, no momento, estão disponíveis apenas para os membros dessa organização. Assim, as discussões sobre o NWK camada são limitadas a esta breve panorâmica. A topologia de rede permite a qualquer rede estrela ou ponto a ponto formações, que operam sob a supervisão de um nó coordenador de uma rede de área pessoal (PAN). Conforme mostrado na figura 12, existem dois tipos de nós que podem se comunicar sobre o LR - WPAN - todas as funções de um dispositivo (FFD) e reduzir as funções de um dispositivo (RFD). Um FFD pode funcionar como um coordenador PAN ou como um dispositivo, e comunicar com outros RFDs e FFDs. Um RFD só pode falar com um FFD e se destina a ser utilizado em um ponto terminal, tal como com um simples sensor ou atuador. O dispositivo adaptável permite a construção de softwares pequenos e menos complexos, resultando em menor consumo de energia e de custos reduzidos nas variantes [8].

Figura 12 - Topologias da Rede LR-WPAN

3.2.2 Camada Física - LR-WPAN

O sistema opera em relativamente baixas taxas de dados, entre 20kbps e 250kbps, em várias bandas. Há 16 canais atribuídos em 2450 MHz, 10 canais na banda de 900 MHz e 1 canal em 868 MHz. Os canais são numerados de 0 a 26, com canais de 11 a 26 ocupam a banda de 2450 MHz. O tamanho máximo de pacote é limitado a 127 bytes. Um espectro de modulação está empregado, o qual prevê uma resistência mínima de 30 dB [8].

3.2.3 Camada de Controle de Acesso ao Meio - LR-WPAN

O sistema utiliza o canal de acesso CSMA-CA e prevê reconhecer plenamente transferência de mensagem para assegurar a confiabilidade. A confiabilidade é uma preocupação crítica na fabricação automatizada e em tempo real para o controle de aplicações. A figura 13 [17] ilustra a segmentação da pilha de protocolos do padrão IEEE 802 em relação ao modelo OSI. Um montante considerável da especificação LR-WPAN respeita a Camada Física RF, bem como o estabelecimento de redes ad-hoc.

Figura 13 - Modelos OSI e IEEE 802

Em termos de funcionalidade da interface, existem problemas na camada de dados que afetam diretamente o projeto do mecanismo de extensão, de forma que estes elementos são abordados.

A subcamada MAC fornece os seguintes serviços:

• Beacon Gestão.

• Canal de Acesso.

• Guaranteed Time Slot (GTS) Management - Gestão de Garantia do tempo de Abertura.

• Frame de Validação.

• Confirmação de entrega dos Frames.

• Rede de associação e dissociação.

3.2.3.1 Rede de inicialização e Dispositivo de Associação

Antes de qualquer coisa acontecer, a rede deve primeiro ser configurada pelo Coordenador PAN e os dispositivos devem associar-se com o PAN. Existem vários parâmetros importantes que são inicializados e armazenados no coordenador do PAN. Alguns são definidos em: comprimento do endereço (curto ou longo), capacidade de segurança e tipo de rede. Uma vez concluído o processo de inicialização, o coordenador PAN entra em modo de espera para receber pedidos de associação.

Em uma rede sem semáforos, um dispositivo que pretenda se associar, primeiro realiza uma busca de detecção de energia no canal. Se o canal estiver ocioso, o dispositivo emite um sinal de solicitação que, simplesmente, verificar se existe um PAN em ação. O coordenador, em seguida, responde com um aviso que incluem muitos parâmetros. Se os parâmetros são compatíveis, o dispositivo envia uma solicitação de associação, que reconhece o coordenador. O dispositivo, em seguida, envia uma solicitação de dados, que é também checada pelo Coordenador. Se o Coordenador aprova, transmite uma associação de resposta, que é reconhecida pelo aparelho. Para um "token"de rede ativado, tudo no parágrafo anterior, é aplicado, com exceção do aviso de pedido, que não é necessário porque o coordenador já está enviando avisos periódicos. Uma vez que a associação é confirmada pela resposta do MAC, o dispositivo e o coordenador podem iniciar transferências de dados [8].

3.2.3.2 Transferência de dados em Redes com sinal ativado

Um dado PAN pode ser configurado como um sinal de rede ativado ou como não-ativado. Em um sinal de rede ativado, molduras são utilizadas para sincronizar dispositivos, identificar o coordenador PAN e estabelecer a necessária superestrutura dentro de uma rede. Uma panorâmica da superestrutura é mostrada na figura 14. Esta estrutura ilustra a comunicação do arranjo global de muitos nós da rede, com o tempo de conclusão de cada mensagem (e os avisos opcionais associados). Uma vez que o superquadro está dividido em sinais, mais 15 faixas, no máximo, 15 dispositivos podem se comunicar durante um único período de superframe.

O coordenador PAN determina se o GTS está ativado e, em caso afirmativo, o período livre de contenção é estabelecido, perto do final do envio dos quadros. Se o GTS não estiver habilitado, o período de acesso de contenção (PAC) torna-se as 15 faixas restantes de tempo após o sinal (Beacon) do slot. Qualquer dispositivo que deseja se comunicar deve fazê-lo utilizando o método CSMA-CA durante o período de acesso, e as operações devem ser concluídas antes da chegada do próximo quadro. GTS é um mecanismo específico, para garantir baixa largura de banda e baixa latência nas transferências dos pacotes de dados. Quando ativado, o coordenador PAN dedica até sete faixas de tempo para dispositivos com GTS ativado. Um único GTS pode ser alocado tanto para receber quanto para transmitir, mas apenas um slot pode transmitir e um único slot pode receber informações por dispositivo. Tecnicamente falando, para um único dispositivo não são permitidas faixas múltiplas de GTS, mas as faixas de tempo com maior duração podem ser solicitadas. Por exemplo, um dispositivo pode simplesmente solicitar a transmissão de um único slot GTS com comprimento de 7 slots regulares, mas isso seria impraticável, pois alocaria toda a largura de banda exclusivamente para o GTS. O coordenador determina se aceita ou rejeita os pedidos GTS, sendo estas informações tratadas pela camada MAC. Se ainda reatarem slots, o pedido é aceito, caso contrário, o pedido é rejeitado. Além disso, pedidos GTS pedidos não ocupam o canal eternamente, eles expiram automaticamente após 4 superquadros de não-utilização.

Figura 14 - Estrutura do SuperFrame WPAN

Existem três tipos de transferência de dados suportados:

• A partir de um coordenador para um dispositivo PAN.

• A partir de um dispositivo para um coordenador PAN.

• A partir de um dispositivo para outro dispositivo ponto a ponto.

Em uma rede com topologia estrela, apenas os dois primeiros tipos de transferência são utilizados. Estas transações ocorrem de maneira diferente para redes com sinal ativo (Beacon-Enabled) e para redes com sinal desativado (Non-Beacon-Enabled), apesar de sinais de frames sempre serem necessários para a associação.

Um sinal de rede ativo é mais útil para situações em que duração da vida útil da bateria e dados periódicos são necessários. Quando o coordenador for configurado como uma rede se sinal ativado, o coordenador FFD envia sinais de transmissão em intervalos regulares. Os dispositivos (presume-bateria alimentada RFDs) podem, então, introduzir um baixa potência (sleep) depois de um sinal, e acordar um pouco antes do próximo sinal ocorrer, assim, conservar o tempo de vida da bateria. A figura 15 mostra as transações que ocorrem durante uma comunicação entre um coordenador e um dispositivo com sinal de rede ativado.

Figura 15 - Sequência de Transferência de dados com Sinal Ativado

Como mostrado na figura 15(a), um coordenador indica com um sinal que uma mensagem está pendente. O dispositivo de escuta detecta o sinal e responde com um pedido de dados.

O coordenador opcionalmente reconhece o pedido e, em seguida, envia os quadros de dados. Finalmente, o dispositivo reconhece o recebimento da mensagem. A comunicação com um coordenador é mais rápida, como mostra a figura 15(b). Aqui, o dispositivo simplesmente escuta o sinal e responde com os dados. Após a recepção dos dados, o coordenador dá um aviso que é opcional.

3.2.3.3 Transferência de dados em redes sem sinal

Redes PANs sem sinal (Beacon) funcionam como a maioria das outras redes sem fio. O canal de energia é verificado e, se estiver ocioso, um dispositivo pode transmitir. Se o canal encontra-se ocupado, o dispositivo é desligado e tenta a retransmissão mais tarde. Quando um dispositivo se associa a uma rede, a transferência de dados pode começar como mostra a figura 16.

Figura 16 - Sequência de Transferência de Dados Sem Sinal

Uma característica incomum do padrão IEEE 802.15.4 WPAN é que esta rede opera de forma parecida com uma rede cliente-servidor. O Coordenador (servidor) não envia todos os dados para um dispositivo (cliente), a menos que esse dispositivo faça esta solicitação. A principal razão para este regime é consumo de energia - para o coordenador enviar dados diretamente para dispositivos, que deverão estar continuamente ligados à espera de comandos e desperdiçando a vida útil da bateria.

Figura 16: ilustra duas opções de transmissão de dados - direto e indireto. Com a transferência direta (dispositivo para o Coordenador), o dispositivo simplesmente envia uma mensagem de dados (assumindo que o canal foi inativo), que é recebido, processado e, opcionalmente, reconhecido. Com a transferência indireta (Coordenador de dispositivo), o primeiro dispositivo é responsável pelas sondagens no barramento. Se todos os dados estão prontos para os dispositivos, o coordenador os envia aos destinos.

3.2.3.4 Organização do Frame

Dentro de cada transmissão, existem quatro diferentes tipos de estruturas de frames possíveis, algumas das quais já foram mencionadas. Sinais de frames são utilizadas pelos coordenadores para a sincronização e para a associação da rede. Frames de dados levam as informações da mensagem. Os de aviso confirmam o êxito da recepção de uma mensagem. Quadros de comandos MAC manipulam entidades de controle de transferências.

A estrutura geral de um frame é mostrada na figura 17. No mais alto nível, o protocolo de dados da unidade física (PPDU) incorpora todo o quadro. O PPDU pode ser discriminado em um segmento PHY e um segmento MAC, também conhecido como o protocolo MAC de dados da unidade (MPDU).

Figura 17 - Formato do Frame WPAN

O segmento PHY inclui o campo preâmbulo (4 bytes), delimitador de início (1 byte), e comprimento do frame indicador (1 byte). Este segmento é comum a todos os quatro tipos de quadros. O MPDU contém o cabeçalho MAC (MHR), o serviço de dados MAC unidade (MSDU) e do MAC rodapé (MFR). Uma expansão do MPDU é mostrada na figura 18, onde ilustra uma parte de um farol de moldura MAC. A parte de um quadro de dados MAC e um quadro de comando são mostrados na figura 19. A única diferença na organização desses quadros é o campo de carga. No entanto, os campos de dados de carga útil são originados em altas camadas e sua transmissão para as subcamadas MAC, enquanto que o campo de comando da carga é gerado dentro do MAC.

Figura 18 - Campos MAC do Frame Beacon

Figura 19 - Campos MAC, Frames de Dados e Comando

Os comandos MAC são utilizados pelas entidades de rede para a maioria das atividades, incluindo a associação e dissociação, sinais de notificação, sincronização, horário de gerenciamento, e os pedidos de dados.

Um frame de aviso é consideravelmente menor do que o anteriormente mencionado, três quadros, contendo apenas 5 bytes no seu MPDU, como mostrado na figura 20. Estes quadros são utilizados para confirmar a recepção e validação de um quadro de comandos de dados MAC. Frames de aviso são opcionais; se for ativado, o transmissor irá reenviar uma mensagem, se o aviso não for recebido dentro do tempo limite. O remetente pode também decidir encerrar a mensagem depois de várias tentativas sem sucesso.

Figura 20 - Campos MAC, Frames de Confirmação

3.3 Mecanismos de Segurança - LR-WPAN

A norma LR-WPAN especifica algumas medidas básicas de segurança na subcamada MAC incluindo a capacidade de manter uma lista controle de acesso [7] e prevê criptografia simétrica. A aplicação efetiva das funções de segurança, tais como a gestão das chaves e autenticação é deixada para as camadas superiores.

A norma permite quatro serviços de segurança: controle de acesso, criptografia de dados, integridade de quadros e mensagens sequenciais. Sob o controle de acesso, cada dispositivo mantém uma lista de dispositivos com os quais a comunicação é desejada. Quadros de dispositivos indesejados são rejeitados. Criptografia simétrica implica a utilização de uma chave única em ambos os extremos da comunicação. Esta chave pode ser compartilhada por um grupo de dispositivos ou por dois pares que se comunicam dentro de suas respectivas ACLs. Uma mensagem de integridade de código (CMI) é utilizada para garantir a integridade do frame. A modificação deste código requer o uso da chave criptográfica. O mecanismo é aplicável a frames sequenciais ordenados em sequência numérica de que foram transmitidos. O receptor é capaz de determinar se um frame é novo ou se teve que ser reenviado, caso os frames foram reenviados, estes podem ser rejeitados [8].

4 TECNOLOGIAS UTILIZADAS NO PROJETO E PROPOSTA DO TRABALHO

4.1 Introdução

Neste capítulo, será apresentada parte da implementação do módulo de integração entre o protocolo CAN e o padrão IEEE 802.15.4 - PAN, onde os nós da rede serão capazes de receber dados (pacote IP) através de tecnologia sem fio (IEEE 802.15.4) e capturar informações dos sensores através da Rede de Controle de Área (CAN).

O tópico 4.2 trata de como será realizada a implementação do módulo de rede com diferentes tipos de sensores para monitoramento e a comunicação de uma Rede Pessoal de Área. Em seguida serão apresentados os módulos para a realização do trabalho e suas respectivas características de hardware.

4.2 Kits utilizados para a Implementação e Programação do Módulo

Para o desenvolvimento da rede de transdutores inteligentes serão utilizados os seguintes módulos:

• Módulo STK500.

• Módulo de Expansão STK501.

• Antena de Comunicação RZ502.

Nos tópicos 4.3.1, 4.3.2 e 4.3.3, serão apresentadas as características de cada um destes módulos.

4.2.1 Módulo STK500

O STK500 é um kit utilizado para desenvolver sistemas para microcontroladores AVR Flash da Atmel Corporation. Ele foi elaborado para projetar e desenvolver códigos no AVR além de permitir testes nos novos projetos.

O STK500 é compatível com o ambiente de desenvolvimento AVR Studio, possui interface RS-232 com o microcomputador para a programação e controle de aplicações, fonte de tensão de alimentação entre 10V a 15V DC, sockets de 8, 20, 28 e 40 pinos para dispositivos AVR, alto nível de tensão para programação paralela e serial de dispositivos AVR, programação serial no sistema (ISP), reprogramação de dispositivos AVR. Possui 8 push button, 8 LEDS acoplados para utilizações diversas, todas as portas de E/S são facilmente acessíveis através dos pinos conectores, uma porta RS-232 adicional e conectores de expansão para módulos auxiliares e área de prototipagem.

Na figura 21 apresenta-se o STK500 que através do AVR Studio pode ser configurado, programado e simulado.

Figura 21 - Placa do módulo STK500

O software do AVR atualmente suporta os seguintes dispositivos em todos os graus de velocidade, como é apresentado na tabela 5.

Tabela 5 - Família e Componentes AVR FAMÍLIA COMPONENTE ATTINY11 AT90S4433 AT90S4434 ATtiny12 ATtiny15 AT90S8515 ATtiny22 AT90S8535 ATmega8 ATtiny28 AT90S1200 ATmega16 AT90S2313 ATmega161 AT90S2323 ATmega163 AT90S2333 ATMEGA323 AT90S2343 ATMEGA103 (L) AT90S4414 ATmega128(L)

Suporte para novos dispositivos AVR podem ser acrescentados de novas versões do AVR Studio. Versões mais recentes do AVR podem ser encontradas em www.atmel.com.

Os requisitos mínimos de hardware e software para a instalação do kit no microcomputador são: processador 486 MHz, 16 MB de RAM, 12 MB de espaço livre no disco rígido para a instalação do AVR Studio, Windows (95/98/2000/ME/XP) ou superior, porta RS-232 (COM) e fonte de alimentação de 15V DC.

Na figura 22 é apresentada a conexão entre o kit STK500 e o microcomputador.

Figura 22 - Conexão entre o STK500 e um Microcomputador

4.2.2 Módulo de Expansão STK501

A placa de expansão STK501 é um módulo elaborado para adicionar os microcontroladores ATMEGA103 (L) e ATmega128 (L) à placa de desenvolvimento STK500 da Atmel. Com este kit, o STK500 suporta todos os dispositivos AVR em um único ambiente de desenvolvimento. O STK501 inclui conectores, jumpers e hardwares que permitem a plena utilização das novas funcionalidades do ATmega128 (L), enquanto o soquete ZIF (Zero Insertion Force) permite a fácil utilização de pacotes TQFP para prototipagem. Além de adicionar suporte para novos dispositivos, o STK501 também fornece suporte para os periféricos anteriormente não suportados pelo STK500. Uma entrada adicional RS-232 e uma interface SRAM externa.

Na figura 23 é apresentado o módulo de expansão STK501 da ATMEL.

Figura 23 - Módulo de Expansão STK501

O módulo de expansão STK501 é compatível com o STK500. Pode ser gravado e implementado utilizando a AVR Studio, tem suporte para os microcontroladores ATMEGA103(L) e ATMEGA128(L), possui socket de inserção de força zero para pacotes TQFP, suporta todas as características adicionadas no ATmega128 (L), possui conector JTAG para depuração utilizando JTAG ICE (ATMEGA128 (L)), portas RS-232C adicionais, SRAM externo, tendo como suporte a placa STK500 e placa com crystal de 32 kHz.

4.2.3 Antena de Comunicação RZ502

A antena RZ502 é projetada para a avaliação do rádio transceptor (2,4 GHz) AT86RF230 da Atmel. Este rádio é totalmente compatível com o padrão IEEE 802.15.4 e pode ser utilizado em tecnologias sem fio de baixa potência, na construção de aplicações residenciais e automação industrial.

Na figura 24, é ilustrado o rádio transceptor RZ502 que pode ser acoplado no kit de expansão STK 501 da Atmel.

Figura 24 - Rádio Transceptor RZ502

O kit é composto por 2 placas com antenas de rádio SMA e 2 microcintroladores AVR ATMEGA1281. Para a sua utilização é necessário o módulo STK 500, a placa de expansão STK 501 e cabos para a conexão nos pinos de E/S.

4.3 Conexão dos Módulos Utilizados

Para a implementação do módulo proposto, estão sendo utilizados os 3 kits citados nos itens 4.1, 4.2 e 4.3. A conexão dos módulos pode ser visualizada na figura 25.

A placa de expansão STK501 utilizará um microcontrolador ATMEGA1281 (AT90S4414) para a implementação dos algoritmos para controle de monitoramento e envio de informações para todos os nós da rede.

Figura 25 - Conexão do STK500 com o Módulo de expansão e a antena do kit do RZ502 4.4 Linguagem de Programação ANSI C - WINAVR

O programa utilizado neste trabalho foi o WinAVR, um pacote de programas em código aberto para desenvolvimento com microcontroladores da família AVR da Atmel no ambiente Windows, que inclui um editor de texto, debugger, bibliotecas em C, entre outros. O WinAVR é um pacote de vários softwares utilitários para desenvolvimento com a família AVR. O site da distribuição é http://winavr.sourceforge.net/.

A figura 26 mostra a utilização da suíte de aplicações AVR Studio para programação de códigos utilizando a linguagem C/C++ (WinAvr).

Figura 26 - Exemplo de um algoritmo em C utilizando a IDE AVR Studio

4.5 Ambiente de Desenvolvimento AVR Studio

O AVR Studio 4 é um sistema com ambiente de desenvolvimento integrado Ambiente para a depuração de softwares AVR. O AVR Studio permite chip de simulação e emulação de circuito para a família de microcintroladores AVR. A interface com o usuário foi especialmente criada para ser fácil de usar e sintetizar informações completas. O AVR usa a mesma interface de usuário visualizada na figura 4.x para simulação e emulação, proporcionando assim, uma rápida curva de aprendizagem.

Na figura 27 evidencia-se a janela de abertura de projetos da IDE da Atmel, o AVR Studio 4.

Figura 27 - Janela de Abertura de Projetos da IDE AVR Studio

4.6 Módulo Proposto

No caso de uma rede de sensores sem fio o nó é um ponto da rede com a capacidade de gerenciar os dados relacionados com uma aplicação envolvendo sensores e atuadores. O modelo tem a capacidade de gerenciar os sensores/atuadores através de um barramento e, enviar as informações coletadas utilizando a porta serial (RS-232) para uma estação base remota. Vale ressaltar que para atingir a estação base da rede de sensores sem fio, as informações podem saltar por vários pontos até atingir o destino final.

Na figura 28 apresenta-se um esquemático do trabalho de doutorado referente a este projeto de pesquisa para o interfaceamento e comunicação da rede de sensores sem fio.

Figura 28 - Módulo Microcontrolador com Suporte ao Protocolo CAN (Controller Area Network) e ao Padrão 802.15.4 ?Zigbee? para comunicação de Redes de Sensores sem Fio.

No quadro 1 da figura 29 é ilustrado o barramento CAN em que se pode acoplar uma malha de sensores e atuadores; a rede CAN terá interfaceamento com o microcontrolador proposto. A rede trabalha em alta taxa de dados de até 1Mbps de forma confiável e, devido o CAN não trabalhar com comunicação por endereçamento o microcontrolador terá que realizar uma conversão no formato dos pacotes para o formato do padrão IEEE 802.15.4 assim, podendo ser enviados para outras malhas de sensores e atuadores da rede sem fio.

Para que a energia das baterias dos sensores seja otimizada é utilizado o padrão IEEE 802.15.4 para o interfaceamento sem fio com os outros módulos da rede. A conversão feita pelo microcontrolador evidenciada no quadro 1 da figura 29 também é realizada entre o padrão ZigBee para a rede CAN ilustrado no quadro 2 figura 29. Uma característica que deve ser ressaltada é que o Zigbee opera com taxas de transferência de mensagens de até 250 Kbps, no qual será necessário para uma comunicação bidirecional, que os pacotes do padrão IEEE 802.15.4 também sejam transformados no formato do protocolo CAN para que sejam reconhecidos pelos sensores e atuadores. A comunicação entre os dois módulos trabalham de forma confiável havendo uma confirmação de recepção por parte do módulo cliente, uma característica denominada de Handshacke. Para a comunicação entre os módulos esta sendo utilizado o kit RZ502 (rádio transceptor) com suporte ao padrão "Zigbee".

No quadro 3 da figura 29 apresenta-se o módulo do microcontrolador para o interfaceamento entre o padrão 802.15.4 e a rede CAN da rede de sensores sem fio. Este módulo é a concatenação das características do quadro 1 com o quadro 2 da figura 29. Para a implementação estão sendo utilizados as ferramentas e kits detalhados nos tópicos 4.1 à 4.5 desta mesma seção e para a fase de testes serão implmentados sensores para a leitura de temperatura e umidade, além de acionamento de dispositivos como: motores, lâmpadas, aquecedores etc.

Em pesquisas realizadas em laboratório a comunicação serial foi implementada obtendo êxito na captura e reconhecimento das mensagens. Também, foi estudada a comunicação por troca de mensagens utilizando o padrão IEEE 802.15.4 "Zigbee"entre dois nós de uma rede ponto a ponto. Outra análise realizada em laboratório foi a comunicação entre um microcomputador e o módulo de comunicação RZ502 utilizando a interface serial padrão RS-232, nos quais os dados foram transferidos com sucesso. O software de teste para esta comunicação foi elaborado utilizando a linguagem Java. Java possui a biblioteca JAVAX.COMM que favorece na implementação de sistemas com este objetivo. Por ser uma comunicação assicrona foi realizada a seguinte configuração em ambos dispositivos (microcomputador/RZ502): 9600 bits/segundo,

4.6 Módulo Proposto 39

8 bits de dados, paridade N (NONE) e 1 stop bit.

Figura 29 - Detalhamento do Módulo Proposto

5 CONSIDERAÇÕES FINAIS

No presente trabalho, foi apresentado o andamento do desenvolvimento de um nó de rede capaz de integrar dois protocolos diferentes (CAN e IEEE 802.15.4) para a comunicação e gerenciamento de uma rede de sensores sem fio (RSSF), utilizando microntroladores AVR da ATMEL. O nó terá características de ser totalmente embarcado e autônomo, realizando o roteamento de cada pacote para sua determinada interface. Para isto, cada interface será identificada por um endereçamento semelhante ao endereçamento MAC utilizado nas redes de computadores.

Através de estudos efetuados, a ausência de dispositivos que possibilitem o monitoramento de diversos sensores em áreas de abrangência relativamente grandes fica impossibilitada pela complexidade em interligar todos os nós. É com esse objetivo que a criação de um nó interligando a rede CAN ao padrão sem fio 802.15.4 é proposta. É utilizada a confiabilidade da rede CAN para o monitoramento dos sensores e para envio dos dados para os outros nós da rede e também o padrão ?Zigbee?, que é confiável na transmissão dos dados e, possui níveis aceitáveis de imunidade contra interferências em ambientes industriais, pode alcançar distâncias elevadas, além de conseguir gerenciar o tempo de vida útil das baterias dos sensores.

No desenvolvimento da parte lógica do hardware, utilizam-se os módulos da ATMEL (STK 500, STK 501 e a antena RZ502) e a ferramenta AVR Studio também da mesma empresa. Ao final do projeto, pretende-se deixar uma estrutura implementada que possa ser utilizada para vários fins como: monitoramento de residências (casas inteligentes), rastreamento de automóveis, verificação de temperatura e condições climáticas em plantios de culturas diversas etc.

Também, será proposto um software de gerenciamento dos nós através da linguagem de programação JAVA, pois esta é gratuita e pode ser utilizada em aplicações Web, desktop, celulares etc.

5.1 TRABALHOS FUTUROS

O presente projeto encontra-se em fase de desenvolvimento e possui alguns tópicos a serem avaliados e desenvolvidos, como:

• Desenvolvimento do módulo de integração entre o protocolo da rede CAN e o padrão

802.15.4.

• Análise de comunicação de dados entre os dois protocolos, devido à taxa de transferência entre os dois ser muito diferente.

• Análise da taxa de transferência de pacotes transferidos na rede, confiabilidade e segurança.

• Verificação da possibilidade de implantar um buffer para a sincronização dos pacotes CAN com pacotes Zigbee.

• Desenvolver uma aplicação que possa controlar e monitorar os sensores e atuadores da rede de nós.

42

REFERÊNCIAS