Universidade de Pernambuco
Escola Politécnica de Pernambuco
Departamento de Sistemas e Computação
Programa de Pós-Graduaçã...
UNIVERSIDADE DE PERNAMBUCO
DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO

FR...
CIP – CATALOGAÇÃO NA PUBLICAÇÃO
Frederico Cox Cavalcanti Lins Junior,
Análise Nodal de Consumo de Energia para Redes de Se...
“Se A é o sucesso, então A é igual a X mais Y mais Z.
O trabalho é X; Y é o lazer; e Z é manter a boca fechada.”
— A LBERT...
Agradecimentos
Aos meus pais, Frederico Cox e Maria José Diniz. Por todo apoio, suporte e compreensão nesse projeto.
À min...
Sumário
GLOSSÁRIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

vii

ACRÔNIMOS . . . . . . . ...
3 ESTADO DA ARTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1
Introdução . . . . . . . . . . . . . . ...
5.6
5.7

Experimento - Protocolo Tymo . . . . . . . . . . . . . . . . . . . . . . . .
Conclusão . . . . . . . . . . . . . ...
Glossário
base-station nó responsável por concentrar os dados provenientes da Rede de Sensores
sem Fio (RSSF) - uma rota fi...
sampling rate Número de amostras do sinal por segundo.. 53
tensão de offset Tensão presente na saída de um amplificador mes...
Acrônimos
ADC Analog to Digital Converter. 8, 10, 14, 19, 34, 54–56
AES Advanced Encryption Standard. 11
AODV Ad hoc On-De...
LED Light Emitting Diode. 8, 14, 41, 44
LiPo Lithium Polymer Battery. 40, 41, 44, 45
LQI Link Quality Indicator. 11
MAC Me...
Símbolos
Bit Menor unidade de informação que pode ser armazenada ou transmitida.. xi
Byte 8 (oito) Bits.. 12
dBm A relação...
Lista de Figuras
1.1
1.2
1.3

Exemplo típico de uma RSSF. . . . . . . . . . . . . . . . . . . . . .
Arquitetura do Projeto...
3.10
3.11
3.12
3.13
3.14
3.15
4.1
4.2
4.3
4.4
4.5
4.6
4.7

4.8
4.9
4.10
4.11
4.12
4.13
4.14
4.15
4.16
4.17
4.18
4.19
4.20
...
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14

Protocolo Collection Dados do Nó 1 . . . . . . . . . . . . . . . . . .
Protocolo Col...
Lista de Tabelas
1.1

Características de RSSF. . . . . . . . . . . . . . . . . . . . . . . . .

2.1
2.2
2.3
2.4
2.5
2.6

C...
Resumo
A limitação de energia disponível em nodos de redes de sensores sem fio é um fator
crítico. Na maioria ou quase em s...
Abstract
The limitation of energy available in the nodes of wireless sensors networks is a critical factor. The sensors ar...
Capítulo 1
Introdução
Redes de Sensores sem Fio - RSSF é uma tecnologia que possibilita o monitoramento
e controle do mund...
2

Medicina: Monitoramento de órgãos vitais de organismos vivos.
Uma WSN pode ser definida portanto como uma infraestrutura...
3

1.1

Características de Redes de Sensores sem Fio

A Figura 1.1 é um cenário típico de uma RSSF. Observa-se uma árvore ...
4

1.2
1.2.1

Motivação
Volcano Monitoring

O “Volcano Monitoring” é um projeto do “Harvard Sensor Networks Lab” que consi...
5

Figura 1.3: Gold Gate Bridge.
o desempenho das mesmas, o foco deixou de ser voltado apenas para o aumento da sua
capaci...
6

1.4

Organização dessa Dissertação

O Capítulo 2 mostra a arquitetura do nodo utilizado nos experimentos práticos e os
...
Capítulo 2
Conceitos Básicos
2.1

Introdução

“Wireless Sensor Networks” (WSN) são constituídas de um sistema de “motes”1 ...
8

Figura 2.1: Arquitetura e foto do MICAz.
A Tabela 2.1 sumariza os principais componentes do MICAz com base na Figura 2....
9

Cada componente está conectado através de barramentos de comunicações. O rádio se
comunica com o microcontrolador atrav...
10

2.2.3

Microcontrolador - ATMEGA128L

O microcontrolador ATMEGA128L[24] é uma arquitetura de 8 bits Havard2 modificada;...
11

Figura 2.3: Circuito de Alimentação DC do MICAz.

2.2.5

2.4 GHz IEEE 802.15.4 / ZigBee-ready RF Transceiver - CC2420
...
12

Figura 2.4: Valores típicos para RSSI x potência de entrada.

2.2.6

Memória Flash (Data Logger) - AT45DB041

O AT45DB...
13

Tabela 2.3: Função de cada pino da memória AT45DB041.
Pino
CS
SCK
SI
SO
WP
RESET
VCC
GND

2.2.7

Função
Chip Select. U...
14

Figura 2.7: Vista superior da MIB520.
A chave SW1, quando pressionada, reinicializa o sistema embarcado que está insta...
15

Figura 2.9: Matriz MDA100CB.

2.3
2.3.1

TinyOS
Introdução

TinyOS é um Sistema Operacional (SO) Open Source desenvolv...
16

de Consumo. Grande parte dela será baseada no livro TinyOS Programming[40] de autoria
de Philip Levis e David Gay, amp...
17

8
9
10
11
12
13
14
15
16
17

implementation {
e v e n t v o i d Boot . b o o t e d ( ) {
c a l l T e m p o r i z a d o...
18

Figura 2.11: Fluxograma da aplicação BlinkLedAppC.

2.3.3

Assinatura de Componentes

Um programa escrito em nesC é um...
19

2.3.4

Componente Essenciais para Uso na Plataforma de Medição

2.3.4.1

Componente MicaBusC

Para trabalhar com porta...
20

Código 2.6: ioportAppC.nc
1
2
3
4
5
6
7
8
9

co nf ig ura ti on ioportAppC {
}
implementation {
components MainC , Mic...
21

O componente Atm128I2CMasterC, que implementa as duas interfaces ilustradas na
Figura 2.12, é destinado a desempenhar ...
22

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

i n t e r f a c e Resource ;
}
}
implementation {
uint8_t...
23

• gerenciamento de memória.
2.3.5.1

Protocolo Collection

O protocolo Collection[20] é um serviço que soma esforços p...
24

7
interface I n t e r c e p t [ c o l l e c t i o n _ i d _ t id ] ;
8
9
interface Packet ;
10
interface CollectionPac...
25

na Tabela 2.5, corresponde a um papel diferente ou participação na RSSF.
Tabela 2.5: Tipos de Perfis no protocolo Colle...
26

O código fonte referente à aplicação prática dessa seção está disponível no Apêndice
V desse documento.
2.3.5.2

Proto...
27

do pacote. Esta mensagem percorre toda a rede até o destino conforme a Figura 2.16[19,
58, 7].

Figura 2.16: Requisiçã...
28

Figura 2.18: O nó G deslocou-se para outra posição e o nó F não tem mais rota para
alcançar G e H. B e C não encaminha...
29

subrotinas de acesso ao barramento I2C. Tarefas complexas demandam tempo e quando
se tem componentes que implementam e...
Capítulo 3
Estado da Arte
3.1

Introdução

Nesta seção serão mencionados alguns trabalhos relacionados com estratégias de ...
31

A Figura 3.1 mostra o comportamento do consumo, durante 4 segundos, de uma típica
aplicação para RSSF.

Figura 3.1: Co...
32

Figura 3.3: O “Scalable Power Observation Tool -SPOT”, consiste de um resistor shunt,
amplificador, conversor de voltag...
33

critério de Nyquist.
O dispositivo de monitoramento de energia não deve influenciar no consumo do mote
e isto implica q...
34

Amplificadores diferenciais produzem tensões de “offset”. Isto é uma característica
comum em amplificadores e a causa se...
35

de tempo t0 e t representam o consumo de energia durante o tempo t − t0. Para evitar
“overflow”4 do contador o mote pos...
36

A Figura 3.7 é o gráfico da corrente em função do tempo. Nota-se que a resolução é
um pouco baixa. Isto se deve ao temp...
37

A plataforma SPOT detalhada em [32] alcança boa precisão mas considera a tensão da
fonte de energia constante. Isto nã...
38

Para viabilizar as medições com o TinyOS[40, 4] foi implementada uma interface
em camadas. A primeira camada basicamen...
39

do mote para temporização das medidas. Isto impõe uma carga extra no mote mas a
energia adicional pode ser negligencia...
40

3.3.4

Conclusão

A precisão e a faixa dinâmica do SPOT e o “runtime energy-measurement setup” são
equivalentes. Isto ...
41

poucas curvas de demonstração da descarga e, na maioria das vezes, são correntes com
níveis múltiplos da capacidade. A...
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio
Upcoming SlideShare
Loading in …5
×

Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio

502
-1

Published on

A limitação de energia disponível em nodos de redes de sensores sem fio é um fator crítico. Na maioria ou quase em sua totalidade, os sensores são colocados em áreas remotas que não permitem facilmente o acesso a esses elementos para troca de baterias. Nodos são alimentados a baterias e o desenvolvimento das baterias ainda é lento quando comparado ao rápido crescimento tecnológico dos componentes eletrônicos. O tempo de vida útil de um sensor depende da quantidade de energia disponível. Protocolos de roteamento e algoritmos devem ser escolhidos considerando a eficiência na descoberta e manutenção das rotas e a otimização na quantidade de energia consumida. A escolha correta destes fatores impactam diretamente no funcionamento da rede. Uma solução viável para minimizar tal problema, consiste na aferição prática do consumo tanto destes dispositivos
individualmente quanto dos protocolos de roteamento funcionando conjuntamente numa rede densamente distribuída. Este documento aborda o planejamento, implementação e montagem de um protótipo de dispositivo para aferir o consumo de nós de uma rede de
sensores sem fio (Placa de Medição). Uma análise considerando diferentes protocolos de roteamento visando avaliar o consumo de energia de cada um deles foi implementada.

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
502
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
14
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio

  1. 1. Universidade de Pernambuco Escola Politécnica de Pernambuco Departamento de Sistemas e Computação Programa de Pós-Graduação em Engenharia da Computação Frederico Cox Cavalcanti Lins Junior Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio Dissertação de Mestrado Recife, fevereiro de 2010
  2. 2. UNIVERSIDADE DE PERNAMBUCO DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO FREDERICO COX CAVALCANTI LINS JUNIOR Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio Dissertação apresentada como requisito parcial para a obtenção do grau de Mestre em Engenharia da Computação Prof. Dr. Abel Guilhermino da Silva Filho Orientador Prof. Dr. Renato Mariz de Moraes Co-orientador Recife, fevereiro de 2010
  3. 3. CIP – CATALOGAÇÃO NA PUBLICAÇÃO Frederico Cox Cavalcanti Lins Junior, Análise Nodal de Consumo de Energia para Redes de Sensores sem Fio / Frederico Cox Cavalcanti Lins Junior. – Recife: PPGEC da UPE, 2010. 134 f.: il. Dissertação (mestrado) – Universidade de Pernambuco. Programa de Pós-Graduação em Engenharia da Computação, Recife, BR–PE, 2010. Orientador: Abel Guilhermino da Silva Filho; Coorientador: Renato Mariz de Moraes. 1. Redes de sensores sem fio. 2. TinyOS. 3. Zygbee. 4. Microcontroladores. I. da Silva Filho, Abel Guilhermino. II. de Moraes, Renato Mariz. III. Título.
  4. 4. “Se A é o sucesso, então A é igual a X mais Y mais Z. O trabalho é X; Y é o lazer; e Z é manter a boca fechada.” — A LBERT E INSTEIN
  5. 5. Agradecimentos Aos meus pais, Frederico Cox e Maria José Diniz. Por todo apoio, suporte e compreensão nesse projeto. À minha irmã, Simone Cox, que sempre me motivou com os seus conselhos. À minha sobrinha, Ana Helena Cox, que despertou uma criança que havia dentro de mim. Ao Prof. Dr. Abel Guilhermino da Silva Filho, meu orientador. Pela colaboração, paciência e, principalmente, os seus conhecimentos que foram indispensáveis e passados cuidadosamente durante todo o desenvolvimento desse trabalho. Ao Prof. Dr. Renato Mariz de Moraes, meu co-orientador. Pelo modo como apoiou esse trabalho. Sua disponibilidade e empatia foram estímulos que permitiram-me ultrapassar os desafios. A Aldo Oliveira, um orientador da vida. Pela ajuda nos bons e difíceis momentos. Agradeço também a todos os colaboradores da Universidade de Pernambuco que, direta ou indiretamente, contribuíram para a realização e reflexão desse processo.
  6. 6. Sumário GLOSSÁRIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii ACRÔNIMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix SíMBOLOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi LISTA DE FIGURAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii LISTA DE TABELAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv RESUMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii 1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . 1.1 Características de Redes de Sensores sem Fio . . 1.2 Motivação . . . . . . . . . . . . . . . . . . . . . 1.2.1 Volcano Monitoring . . . . . . . . . . . . . . . . 1.2.2 Monitoramento Estrutural da Golden Gate Bridge 1.3 Objetivo . . . . . . . . . . . . . . . . . . . . . . 1.4 Organização dessa Dissertação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 4 4 4 5 6 2 CONCEITOS BÁSICOS . . . . . . . . . . . . . . . . . . . . . . 2.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 MICAz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Visão geral da Arquitetura . . . . . . . . . . . . . . . . . . . . . 2.2.2 Características . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.3 Microcontrolador - ATMEGA128L . . . . . . . . . . . . . . . . 2.2.4 Alimentação DC . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.5 2.4 GHz IEEE 802.15.4 / ZigBee-ready RF Transceiver - CC2420 2.2.6 Memória Flash (Data Logger) - AT45DB041 . . . . . . . . . . . 2.2.7 Conversor DC-DC - MAX1678 . . . . . . . . . . . . . . . . . . 2.2.8 Mote Interface Board - MIB520 . . . . . . . . . . . . . . . . . . 2.2.9 Placa de Aquisição de dados - MDA100CB . . . . . . . . . . . . 2.3 TinyOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2 Estrutura de Programação - nesC . . . . . . . . . . . . . . . . . 2.3.3 Assinatura de Componentes . . . . . . . . . . . . . . . . . . . . 2.3.4 Componente Essenciais para Uso na Plataforma de Medição . . . 2.3.5 Protocolos de Roteamento . . . . . . . . . . . . . . . . . . . . . 2.4 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 7 7 9 10 10 11 12 13 13 14 15 15 16 18 19 22 28
  7. 7. 3 ESTADO DA ARTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Micro Power Meter for Energy Monitoring of Wireless Sensor Networks at Scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Visão Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Formulação do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 Arquitetura Utilizada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.4 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.5 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 A Runtime Energy Monitoring System for Wireless Sensor Networks . . . . 3.3.1 Visão Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Arquitetura Utilizada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.3 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.4 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Energy Measurements for MicaZ Node . . . . . . . . . . . . . . . . . . . . 3.4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.2 Medições de uma bateria de polímero de lítio (LiPo) . . . . . . . . . . . . . 3.4.3 Medições em um MICAz . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.4 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 30 4 ARQUITETURA PROPOSTA . . . . . . . . . . 4.1 Introdução . . . . . . . . . . . . . . . . . . . . 4.2 Fluxograma de Projeto . . . . . . . . . . . . . . 4.3 Visão Geral da Arquitetura . . . . . . . . . . . 4.4 Módulo de Amplificação de Corrente . . . . . . 4.4.1 Alternativas para medição de corrente . . . . . . 4.4.2 Amplificador de Corrente Escolhido . . . . . . 4.5 Conversor de Voltagem para Frequência . . . . 4.6 Microcontrolador . . . . . . . . . . . . . . . . 4.7 Fonte de Alimentação DC e Circuitos Utilizados 4.8 Circuito de Corrente . . . . . . . . . . . . . . . 4.9 Interface MICAz x Placa de Medição . . . . . . 4.10 Captura de Frequência . . . . . . . . . . . . . . 4.11 Máquinas de Estados . . . . . . . . . . . . . . 4.12 Validação da Arquitetura . . . . . . . . . . . . 4.12.1 Validação da Tensão . . . . . . . . . . . . . . . 4.12.2 Validação da Corrente . . . . . . . . . . . . . . 4.13 Esquemático da Placa de Medição . . . . . . . 4.14 Placa de Circuito Impresso . . . . . . . . . . . 4.15 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 46 46 48 49 49 50 52 55 56 58 59 60 61 64 64 66 68 69 70 5 RESULTADOS . . . . . . . . . . . 5.1 Introdução . . . . . . . . . . . . . 5.2 Cenário Experimental . . . . . . . 5.3 TinyOS Terminal . . . . . . . . . 5.4 Experimento - Nó Individual . . . 5.5 Experimento - Protocolo Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 71 72 74 74 75 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 30 32 33 35 36 36 36 37 39 40 40 40 40 41 44 44
  8. 8. 5.6 5.7 Experimento - Protocolo Tymo . . . . . . . . . . . . . . . . . . . . . . . . Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 78 6 CONSIDERAÇÕES FINAIS . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 79 80 REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 7 I. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 8 II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 9 III . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 10 IV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 11 V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 12 VI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
  9. 9. Glossário base-station nó responsável por concentrar os dados provenientes da Rede de Sensores sem Fio (RSSF) - uma rota final. vii, 2, 6, 8, 23, 32, 71, 72, 79 buffer Região de memória temporária utilizada para escrita e leitura de dados.. 12 CCD Charge-Coupled Device ou Dispositivo de Carga Acoplada.. 28 Collection Protocolo de Roteamento multi-hop. 23, 24 data logger Dispositivo utilizado para armazenar em massa de dados de um sistema.. 8 duty cycle ciclo de trabalho. 30, 31, 40, 52 firmware software embarcado. 11–14, 32, 58 flash memória de computador do tipo Electrically-Erasable Programmable Read-Only Memory (EEPROM). 10, 53 gateway O mesmo que base-station - uma rota final. 2, 23, 25, 72 I2C (Inter-Intergrated Circuit) é um barramento serial barramento multi-mestre desenvolvido pela Philips que é usado para conectar periféricos de baixa velocidade. 8, 14, 20, 21, 29, 32, 33, 37, 38, 40, 46, 56, 61–63 in situ expressão latina que significa no lugar. 30, 31, 46 MICAz É um nó de RSSF.. 56, 58, 59 mote Nodo individual de uma RSSF.. 33 multi-hop Arquitetura flexível para mover dados eficientemente entre dispositivos.. vii, 23–27 node-sink O mesmo que base-station - uma rota final. 23, 72 Open Source Código aberto, ou open source em inglês, foi criado pela OSI (Open Source Initiative) e refere-se a software também conhecido por software livre.. 15 PP3 É uma bateria em formato de prisma retangular com uma tensão nominal de 9V.. 56 RS232 Padrão para troca de dados binários comumente usado nas portas seriais dos PCs.. 14
  10. 10. sampling rate Número de amostras do sinal por segundo.. 53 tensão de offset Tensão presente na saída de um amplificador mesmo que as entradas sejam 0 Volts. 55 TinyOS 2.x Sistema operacional open-source projetado para redes de sensores sem fio.. viii, 26 TYMO Implementação do DYnamic Manet On-demand routing protocol (DYMO) em TinyOS 2.x. 26
  11. 11. Acrônimos ADC Analog to Digital Converter. 8, 10, 14, 19, 34, 54–56 AES Advanced Encryption Standard. 11 AODV Ad hoc On-Demand Distance Vector Routing. 26 API Application Programming Interfaces. 15, 28 CCP Capture/Compare/PWM. 56, 60–62, 79 CMOS Complementary metal-oxide-semiconductor. 8, 10 CRC Cyclic redundancy check. 74 DIP Dual In Line Package. 56 DSP Digital Signal Processor. 34 DSSS Direct Sequence Spread Spectrum. 8, 11 DYMO DYnamic Manet On-demand routing protocol. viii, 26 EEPROM Electrically-Erasable Programmable Read-Only Memory. vii, 10, 53, 56 IA Instrumentation Amplifier. 50 IC Integrated Circuit. 56 ICSP In-Circuit Serial Programming. 58 IEEE Institute for Electrical and Electronics Engineers. 8, 10, 11 IETF The Internet Engineering Task Force. 26 IO Input/Output. 10, 14 ISM Industrial Scientific and Medical bands. 11 ISP In System Programming. 14 JTAG Joint Test Action Group. 10 LDO Low-Dropout Output. 57
  12. 12. LED Light Emitting Diode. 8, 14, 41, 44 LiPo Lithium Polymer Battery. 40, 41, 44, 45 LQI Link Quality Indicator. 11 MAC Media Access Control. 11 MANET Mobile Ad-hoc Networks. 26 MEMS Micro-Electro-Mechanical Systems. 1 MIB Mote Interface Board. 23, 73 MSSP Master Synchronous Serial Port. 55 PCB Printed Circuit Board. 20, 48, 56 PDA Personal Digital Assistants. 36, 79 PWM Pulse Width Modulation. 10, 60 RAM Random Access Memory. 9, 10, 12, 15, 52 RERR Route Error. 27 RISC Reduced Instruction Set Computer. 8 RREP Reply Route. 27 RREQ Route Request. 26, 27 RSSF Rede de Sensores sem Fio. vii, 1–7, 15, 16, 22, 23, 25, 26, 28–33, 36, 37, 39, 40, 44, 46, 52, 70–72, 74, 78, 79 RSSI Received Signal Strength Indication. 11 RTOS Real Time Operating System. 55 SMD Surface Mounted Devices. 48, 56 SO Sistema Operacional. 15 SOIC Small-Outline Integrated Circuit. 56 SPI Serial Programming Interface. 9–12, 28 SPOT Scalable Power Observation Tool. 32–37, 40, 44 TEP TinyOS Enhancement Proposals. 16, 78 USART Universal Synchronous Asynchronous Receiver Transmitter. 8, 10, 14 USB Universal Serial Bus. 13, 14 V/F Voltage-to-Frequency. 33–35, 53–55, 65, 70, 79 WSN Wireless Sensor Network. 1, 2, 4–7, 11, 15, 23, 29, 30, 32, 36, 40, 44, 53, 79, 80
  13. 13. Símbolos Bit Menor unidade de informação que pode ser armazenada ou transmitida.. xi Byte 8 (oito) Bits.. 12 dBm A relação da potência de um dado dispositivo em relação a 1 mW é expressa em decibeis. 73, 78 Ghz Unidade de frequência (Hz) multiplicada pelo fator 1.000.000.000. 8, 11 Hz Unidade derivada do SI para frequência. xi kb 1024 bytes. 9, 10 Kbps 1000 bits por segundo.. 11, 20, 21 Khz Unidade de frequência (Hz) multiplicada pelo fator 1000. 4, 31, 32, 79 mA unidade de corrente elétrica por fator 1000. 9, 11, 12, 25, 33, 34, 37, 41, 43, 44, 52, 54, 73 Mhz Unidade de frequência (Hz) multiplicada pelo fator 1.000.000.000. 9, 12, 31 mV unidade de Tensão elétrica por fator 1000. 33, 52, 54, 55 V unidade de Tensão elétrica. 10–13, 39, 41, 42, 52
  14. 14. Lista de Figuras 1.1 1.2 1.3 Exemplo típico de uma RSSF. . . . . . . . . . . . . . . . . . . . . . Arquitetura do Projeto “Volcano Monitoring”. . . . . . . . . . . . . . Gold Gate Bridge. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 5 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 Arquitetura e foto do MICAz. . . . . . . . . . . . . . . . . . . . . . Arquitetura detalhada do MICAz. . . . . . . . . . . . . . . . . . . . Circuito de Alimentação DC do MICAz. . . . . . . . . . . . . . . . Valores típicos para RSSI x potência de entrada. . . . . . . . . . . . Pinagem da memória AT45DB041. . . . . . . . . . . . . . . . . . . Circuito típico de utilização do MAX1678. . . . . . . . . . . . . . . Vista superior da MIB520. . . . . . . . . . . . . . . . . . . . . . . . Foto da placa de aquisição de dados - MDA100CB. . . . . . . . . . . Matriz MDA100CB. . . . . . . . . . . . . . . . . . . . . . . . . . . Grafo da Aplicação BlinkLed. . . . . . . . . . . . . . . . . . . . . . Fluxograma da aplicação BlinkLedAppC. . . . . . . . . . . . . . . . Conexões do módulo Atm128I2CMasterC. Fonte: [4] . . . . . . . . . Cenário Típico com 7 sensores . . . . . . . . . . . . . . . . . . . . . Aplicação Prática: Proposta de Cenário . . . . . . . . . . . . . . . . Exemplo: A envia um pacote para H. . . . . . . . . . . . . . . . . . Requisição de rota entre A e H. . . . . . . . . . . . . . . . . . . . . RREP é enviada pela rota mais curta entre A e H. . . . . . . . . . . O nó G deslocou-se para outra posição e o nó F não tem mais rota para alcançar G e H. B e C não encaminha RERR porquê C conhece o caminho para D. . . . . . . . . . . . . . . . . . . . . . . . . . . . Aplicação Prática: Proposta de Cenário . . . . . . . . . . . . . . . . 8 9 11 12 12 13 14 14 15 17 18 21 23 25 26 27 27 Comportamento do consumo em função do tempo durante 4 segundos. Comportamento do consumo em função do tempo durante curto período. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O “Scalable Power Observation Tool -SPOT”, consiste de um resistor shunt, amplificador, conversor de voltagem para frequência e dois contadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SPOT - Arquitetura. . . . . . . . . . . . . . . . . . . . . . . . . . . Comparação das medidas obtidas pelo SPOT e um amperímetro. . . . Energia (mJ) em Função do Tempo (S). . . . . . . . . . . . . . . . . Corrente (mA) em função do Tempo (S). . . . . . . . . . . . . . . . Arquitetura do “Runtime Energy Monitoring System for Wireless Sensor Networks”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Foto da placa de medição. . . . . . . . . . . . . . . . . . . . . . . . 31 2.19 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 28 28 31 32 33 35 35 36 37 38
  15. 15. 3.10 3.11 3.12 3.13 3.14 3.15 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 4.22 4.23 4.24 4.25 4.26 4.27 4.28 4.29 5.1 5.2 5.3 5.4 5.5 5.6 Curva de Erro do “Runtime Energy Monitoring System for Wireless Sensor Networks”. . . . . . . . . . . . . . . . . . . . . . . . . . . . Descarga de uma bateria de LiPO a 37.8mA. . . . . . . . . . . . . . Modos de economia de energia do ATMega128L. a: Busy (mul), b:Busy (jmp), c:NOP, d:Idle, e:ADC, f:Ext. Standby, g: Save. . . . . . Média do Consumo de Energia. . . . . . . . . . . . . . . . . . . . . Benefício de diminuir a frequência do ATMEGA128L. . . . . . . . . Consumo do CC2420. . . . . . . . . . . . . . . . . . . . . . . . . . 39 41 42 43 43 43 Fluxograma de Projeto da Placa de Medição . . . . . . . . . . . . . . Visal Geral da Arquitetura da Placa de Medição. . . . . . . . . . . . Voltímetro aferindo a queda de tensão no resistor “shunt”. . . . . . . Low-side current sensing . . . . . . . . . . . . . . . . . . . . . . . . High-side current sensing . . . . . . . . . . . . . . . . . . . . . . . Diagrama Funcional - MAX4372. . . . . . . . . . . . . . . . . . . . Um típico comportamento nodal de consumo consistindo de longos períodos de baixa corrente pontuado por curtos períodos de atividade com alta corrente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagrama funcional do AD654. . . . . . . . . . . . . . . . . . . . . Configuração simples V/F do AD654. . . . . . . . . . . . . . . . . . Configuração do conversor de voltagem para frequência utilizada na placa de medição. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pinagem do PIC18F2620. . . . . . . . . . . . . . . . . . . . . . . . Panasonic PP3 (9 volt) battery. . . . . . . . . . . . . . . . . . . . . . Pinagem do LE33AB. . . . . . . . . . . . . . . . . . . . . . . . . . Circuito de Captura de Corrente. . . . . . . . . . . . . . . . . . . . . Fotos do Esquema de Captura de Corrente. . . . . . . . . . . . . . . Sensor Board MDA100CB e Matriz de Prototipação. . . . . . . . . . Barra de Pinos para Interconexão Mote x Placa de Medição. . . . . . Diagrama de Blocos do Modo de Captura. . . . . . . . . . . . . . . . Máquina de Estados do PIC18F2620. . . . . . . . . . . . . . . . . . Máquina de Estados do CCP. . . . . . . . . . . . . . . . . . . . . . . Máquina de Estados do MICAz. . . . . . . . . . . . . . . . . . . . . Diagrama de Blocos do Modo de Captura. . . . . . . . . . . . . . . . Tabela de Variação de tensão em função de Multímetro e Osciloscópio. Relação entre a tensão no multímetro e a tensão capturada. . . . . . . Relação entre a corrente no multímetro e a corrente capturada. . . . . Relação entre a corrente no multímetro e a corrente capturada. . . . . Diagrama Esquemático da Placa de Medição. . . . . . . . . . . . . . Placa de Circuito Impressso - PCB. . . . . . . . . . . . . . . . . . . Foto da Placa de Medição. . . . . . . . . . . . . . . . . . . . . . . . 47 48 49 50 50 51 Fluxograma de obtenção de medidas de consumo. . . . . . . . . . . . Cenário Experimental com detalhes para o raio de alcance de cada nó e rotas de comunicação. . . . . . . . . . . . . . . . . . . . . . . . . Cenário Experimental para Teste dos Protocolos de Roteamento . . . Software TinyOS Terminal . . . . . . . . . . . . . . . . . . . . . . . Dados de apenas um nó Individual . . . . . . . . . . . . . . . . . . . Nó Individual - Gráfico. Relação entre a Corrente e o tempo . . . . . 71 52 53 54 54 56 57 57 58 59 59 61 61 61 62 62 64 65 66 66 67 68 69 70 72 72 74 75 75
  16. 16. 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 Protocolo Collection Dados do Nó 1 . . . . . . . . . . . . . . . . . . Protocolo Collection Dados do Nó 2 . . . . . . . . . . . . . . . . . . Protocolo Collection Dados do Nó 3 . . . . . . . . . . . . . . . . . . Protocolo Collection Gráfico. Relação entre a potência e o tempo dos 3 nós . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Protocolo Tymo Dados do Nó 1 . . . . . . . . . . . . . . . . . . . . Protocolo Tymo Dados do Nó 2 . . . . . . . . . . . . . . . . . . . . Protocolo Tymo Dados do Nó 3 . . . . . . . . . . . . . . . . . . . . Protocolo Tymo Gráfico. Relação entre a potência e o tempo dos 3 nós 75 76 76 76 77 77 77 77
  17. 17. Lista de Tabelas 1.1 Características de RSSF. . . . . . . . . . . . . . . . . . . . . . . . . 2.1 2.2 2.3 2.4 2.5 2.6 Componentes da Arquitetura do MICAz . . . . . Características - MICAz. . . . . . . . . . . . . . Função de cada pino da memória AT45DB041. . Principais Interfaces do componente CollectionC Tipos de Perfis no protocolo Collection . . . . . Camadas do protocolo TYMO. . . . . . . . . . . 4.1 4.2 4.3 Fases de Projeto da Placa de Medição . . . . . Etapas da Arquitetura da Placa de Medição. . . Relações entre Corrente, Tensão diferencial de Saída. . . . . . . . . . . . . . . . . . . . . . . Características principais do PIC18F2620. . . . Características principais do LE33AB. . . . . . Conector ICSP - Pinagem. . . . . . . . . . . . Conector MOTE - Pinagem. . . . . . . . . . . Modos do CCP. . . . . . . . . . . . . . . . . . 4.4 4.5 4.6 4.7 4.8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 . . . . . . 8 9 13 24 25 26 . . . . . . . . . . . . . . . . . . . . . . . . entrada e Tensão de . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 48 52 56 58 58 59 60
  18. 18. Resumo A limitação de energia disponível em nodos de redes de sensores sem fio é um fator crítico. Na maioria ou quase em sua totalidade, os sensores são colocados em áreas remotas que não permitem facilmente o acesso a esses elementos para troca de baterias. Nodos são alimentados a baterias e o desenvolvimento das baterias ainda é lento quando comparado ao rápido crescimento tecnológico dos componentes eletrônicos. O tempo de vida útil de um sensor depende da quantidade de energia disponível. Protocolos de roteamento e algoritmos devem ser escolhidos considerando a eficiência na descoberta e manutenção das rotas e a otimização na quantidade de energia consumida. A escolha correta destes fatores impactam diretamente no funcionamento da rede. Uma solução viável para minimizar tal problema, consiste na aferição prática do consumo tanto destes dispositivos individualmente quanto dos protocolos de roteamento funcionando conjuntamente numa rede densamente distribuída. Este documento aborda o planejamento, implementação e montagem de um protótipo de dispositivo para aferir o consumo de nós de uma rede de sensores sem fio (Placa de Medição). Uma análise considerando diferentes protocolos de roteamento visando avaliar o consumo de energia de cada um deles foi implementada. Palavras-chave: Redes de sensores sem fio, TinyOS, Zygbee, microcontroladores.
  19. 19. Abstract The limitation of energy available in the nodes of wireless sensors networks is a critical factor. The sensors are placed in remote areas that do not easily allow access to these elements for changing batteries. Nodes are powered by batteries and the development of batteries is still slow compared to the rapid technological growth of electronic components. The lifetime of a sensor depends on the amount of energy available. Routing protocols and algorithms must be chosen considering the efficiency in finding and maintaining routes and optimizing the amount of energy consumed. The correct choice of these factors directly impact the functioning of the network. A feasible solution to minimize this problem is the practice of measuring consumption of both of these devices individually and the routing protocols running together in a densely distributed network. This document discusses the planning, implementation and installation of a prototype device to measure the consumption of nodes in a network of wireless sensors - Measuring Board. This includes an analysis considering different routing protocols to evaluate energy consumption. Keywords: MICAz, routing protocols, wireless sensors networks, energy consumption.
  20. 20. Capítulo 1 Introdução Redes de Sensores sem Fio - RSSF é uma tecnologia que possibilita o monitoramento e controle do mundo físico[42]. Consistem de uma árvore de dispositivos - denominados sensores, nodos ou nós - densamente distribuídos em uma área na qual deseja-se investigar ou controlar um fenômeno físico. Nodos em RSSF podem ser equipados com sensores de infra-vermelho, acústicos, temperatura, humidade, sísmicos, etc... O desenvolvimento da indústria eletrônica, a miniaturização dos circuitos integrados, a popularização dos Micro-Electro-Mechanical Systems (MEMS)1 e a necessidade de uma arquitetura de rede auto-organizável de baixo custo e consumo, resultou no surgimento das redes de sensores sem fio - RSSF também conhecidas por Wireless Sensor Network (WSN). Em telecomunicações, redes ad hoc são um tipo de rede que não possui um nó ou terminal especial - geralmente designado como ponto de acesso - para o qual todas as comunicações convergem e que as encaminha para os respectivos destinos. Assim, uma rede de computadores ad hoc é aquela na qual todos os terminais funcionam como roteadores, encaminhando de forma comunitária as comunicações advindas dos terminais vizinhos. Ligeiramente diferente das redes ad hoc, as RSSF´s são uma sub-categoria das redes ad hoc que possuem um ou mais nós, também chamados de “base-station” ou estações base, cujo objetivo é a coleta de dados provenientes dos sensores da rede. A importância das Redes de Sensores sem Fio se deve à viabilização de uma infraestrutura de comunicações de baixo custo que possibilita a coleta, disseminação e monitoramento de uma variedade de fenômenos físicos. Redes de sensores têm grande aplicação em locais de difícil acesso ou áreas perigosas (reservas ambientais, oceanos, vulcões, rios, florestas, etc.)[41][51][52]. Algumas aplicações de RSSF´s são: Militar: funções de monitoramento, rastreamento, segurança, controle e manutenção; Industrial: funções de monitoramento, em processos químicos e biológicos; Aviação: substituindo as redes com fio, como já são usadas hoje; Ambiente: monitorando variáveis ambientais em prédios, florestas, oceanos, etc; Tráfego: monitoramento de vias, estacionamentos, etc; 1 Integração de elementos mecânicos, sensores, atuadores e eletrônica no mesmo substrato comum da tecnologia de microfabricação.
  21. 21. 2 Medicina: Monitoramento de órgãos vitais de organismos vivos. Uma WSN pode ser definida portanto como uma infraestrutura compreendendo sensores, elementos computacionais (microcontroladores) e elementos de comunicação que possiblite ao administrador investigar os fenômenos do ambiente. O administrador pode ser um grupo de pesquisa, uma entidade governamental, industrial ou comercial. O ambiente pode ser o mundo físico, um sistema biológico, um grupo de pacientes sendo monitorados, entre outras aplicações[55]. Os principais componentes de um nó Sensor são o transceptor de comunicação sem fio[31], a fonte de energia[10] e o microcontrolador[24]. Neste trabalho será utilizado o sensor MICAz, produzido pela Crossbow Technology[57, 25, 17] para validar a metodologia de controle de consumo de energia. O escopo de desenvolvimento desse texto se limitará apenas a redes cujos nós são constituídos de sensores produzidos pela Crossbow, especificamente o MICAz. Esta limitação se deve principalmente à plataforma que temos disponível para desenvolvimento desta dissertação de mestrado. No entanto, tais aspectos não empobrecem o trabalho, tendo em vista que esta é uma solução do estado da arte com características que serão levantadas posteriormente. RSSFs diferem de redes de computadores tradicionais em vários aspectos[43, 52, 41]: • Geralmente possuem um grande número de sensores distribuídos que operam sem a intervenção humana. • Severas restrições de energia. • Possuem mecanismos de auto-gerenciamento, auto-organização, auto-manutenção e auto-proteção. • Todos os sensores operam de modo colaborativo. Assim, as RSSF´s desempenham uma tarefa importante através de um esforço colaborativo dos sensores que enviam os dados provenientes da rede até atingir a estação-base (base-station ou gateway). A base-station encarrega-se de entregar estes dados a um ou mais computadores que elaboram cálculos de maior complexidade tornando a informação visível aos observadores.
  22. 22. 3 1.1 Características de Redes de Sensores sem Fio A Figura 1.1 é um cenário típico de uma RSSF. Observa-se uma árvore de sensores distribuídos e denominados “Wireless Sensor Network”. Uma rota cuja origem é o nodo Fonte foi estabelecida. O ponto denominado sorvedouro agrega as informações provenientes da rede. Este agregador pode ser uma estação conectada à internet ou diretamente a um PC. O usuário visualiza as informações provenientes da rede através de seu PC. Figura 1.1: Exemplo típico de uma RSSF. A Tabela 1.1 exibe algumas características de uma RSSF. Tabela 1.1: Características de RSSF. Endereçamento dos nós: Agregacão dos dados: Móvel ou Estacionária: Densidade: Limitação da energia disponível: Baixa capacidade de Processamento: Auto-organização da rede: Baixo duty cicle: Cada nó da rede possui um endereço distinto de 16 bits. Um ou mais nós, também chamados de “basestation” ou estação base que coletam os dados provenientes dos sensores. Os sensores podem ser estáticos ou móveis. Quantidade de sensores que foram distribuídos ao longo da cobertura da RSSF. Há uma limitação de energia porque os nós são alimentados com baterias. O processamento de um nó da rede é desempenhado por um microcontrolador com limitações de memória. O MICAz possui apenas 128Kbytes de memória Flash. Uma RSSF se auto-organiza no caso de sensores que apresentem problemas deixando de fazer parte da rede. Na maior parte do tempo os sensores estão no modo sleep. A taxa típica de duty cicle é de 1%.
  23. 23. 4 1.2 1.2.1 Motivação Volcano Monitoring O “Volcano Monitoring” é um projeto do “Harvard Sensor Networks Lab” que consiste no monitoramento de erupções de vulcões ativos e perigosos através de RSSF´s. O baixo custo, tamanho e requisitos de energia das redes de sensores sem fio são algumas das vantagens existentes na instrumentação utilizada no estudo de atividades vulcânicas e tectonismo[37, 39, 63, 62]. Uma árvore de sensores foi distribuídas no vulcão “El Reventador” situado no Equador entre julho e agosto de 2005. A distribuição consistiu de 16 nós, equipados com sensores sísmicos com resolução de 24 bits por canal, numa faixa de 3 km a partir do cume até a base. A Figura 1.2 ilustra a organização e topologia usada nesta pesquisa[37, 39, 63, 62]. Figura 1.2: Arquitetura do Projeto “Volcano Monitoring”. 1.2.2 Monitoramento Estrutural da Golden Gate Bridge Em 7 de Novembro de 1940, a ponte Tacoma Narrows de 1.600 metros, cai após alguns meses de sua inauguração. Este fato se deu devido a um colapso gerado por fortes ventos naquela região. A Ponte de Tacoma sempre balançava, mas neste dia os ventos a uma velocidade de aproximadamente 65 km por hora gerou movimentos torsionais colocando a estrutura em ressonância provocando o seu desmoronamento.[64]. Para monitoração de fenômenos deste tipo, WSN´s têm sido utilizadas em estruturas críticas e vulneráveis a ações de fenômenos ambientais[35]. A Golden Gate Bridge (GGB), Figura 1.3, é analisada por uma RSSF constituída de 64 nós equipados com acelerômetros e distribuídos de forma a coletar vibrações a uma taxa de sample de 1Khz[34, 35]. Entre as duas colunas da ponte foram adicionados 51 nodos sensores cobrindo uma extensão de 4200ft. Em cada coluna foram colocados 8 nós ao longo de 500ft de altura. A limitação de energia disponivel nos nós das RSSF´s é um fator crítico. Na maioria ou quase em sua totalidade, os sensores são colocados em áreas remotas que não permitem facilmente o acesso a esses elementos para troca de baterias. Nodos de RSSF´s são alimentados a baterias e, segundo GINATTO, o desenvolvimento das baterias ainda é lento quando comparado ao rápido crescimento tecnológico dos componentes eletrônicos. Ainda segundo [21], além do aumento nas pesquisas sobre
  24. 24. 5 Figura 1.3: Gold Gate Bridge. o desempenho das mesmas, o foco deixou de ser voltado apenas para o aumento da sua capacidade e passou a ser visto de forma unificada durante um projeto eletrônico. Segundo LOUREIRO et al., o tempo de vida de vida de um sensor depende da quantidade de energia disponível. Protocolos de roteamento e algoritmos para RSSF´s devem ser escolhidos considerando a eficiência na descoberta e manutenção das rotas e a otimização na quantidade de energia consumida. A escolha correta destes fatores implica diretamente na vida útil dos sensores e funcionamento da WSN como um todo. Uma solução viável para minimizar tal problema consiste na aferição prática do consumo tanto destes dispositivos individualmente quanto dos protocolos de roteamento funcionando conjuntamente numa rede densamente distribuída. 1.3 Objetivo Este documento aborda o planejamento, implementação e montagem de um protótipo de um dispositivo para aferir o consumo de nós de uma RSSF (Placa de Medição). Uma análise inédita considerando diferentes protocolos de roteamento visando avaliar o consumo de energia de RSSF´s é apresentada. Novos protocolos de roteamento podem ser avaliados quanto à eficiência energética através de avaliações nodais. O hardware de medição desenvolvido neste trabalho pode ser utilizado para aperfeiçoar modelos de energia de simuladores, tornando assim os resultados das simulações o mais próximo possível de um sistema real.
  25. 25. 6 1.4 Organização dessa Dissertação O Capítulo 2 mostra a arquitetura do nodo utilizado nos experimentos práticos e os conceitos básicos sobre o desenvolvimento para RSSF. O Capítulo 3 ilustra as pesquisas do “estado da arte”, destacando o que há de mais recente no campo de aferição prática no consumo de nodos de RSSF´s. O Capítulo 4 ilustra o planejamento, organização, projeto, implementação e montagem do protótipo da placa de medição de consumo para nós em WSN. Adicionalmente são abordadas as alternativas e técnicas que foram utilizadas e o princípio de funcionamento de cada dispositivo empregado na montagem da Placa de Medição. O Capítulo 5 compreende os resultados obtidos através de três experimentos. Sendo 2 em função dos protocolos de roteamento Collection[20] e Tymo[7, 19, 58] e 1 consistindo de uma rede com apenas um nó enviando informações de consumo diretamente (1 salto) para uma base-station. Os protocolos utilizados[20, 7, 19, 58] são oficialmente incluídos na distribuição do TinyOS 2.1[4, 40]. As conclusões e sugestões de futuros trabalhos são apresentadas no Capítulo 6.
  26. 26. Capítulo 2 Conceitos Básicos 2.1 Introdução “Wireless Sensor Networks” (WSN) são constituídas de um sistema de “motes”1 densamente distribuídos que operam de forma colaborativa. Cada dispositivo é dotado de capacidade computacional (microcontrolador), sensores, transceptor de rádio e fonte de energia. Estes sistemas conectam o ambiente físico combinando o gerenciamento de informações para monitoramento, automação e controle de diversas aplicações. O sensor utilizado nesta dissertação é o MICAz[57, 25], fabricado pela Crossbow que possui um vasto portifólio de produtos, kits e ambientes de desenvolvimento além de ser lider no mercado de soluções para WSN´s. O principal motivo por ter adotado o MICAz, plataforma oficial deste trabalho, se deve ao fato da disponibilidade de alguns kits de desenvolvimento cedidos gentilmente pelo co-orientador deste trabalho, Prof. Dr. Renato Mariz de Moraes. Este capítulo aborda cada um dos componentes da arquitetura do MICAz[57, 25] e o sistema operacional utilizado pelo MICAz. 2.2 2.2.1 MICAz Visão geral da Arquitetura A Figura 2.1 ilustra à esquerda a arquitetura do MICAZ, tecnicamente chamado de MPR2400[25], e à direita uma foto do sensor. 1 Sensores de pequenas dimensões projetados projetados para RSSF.
  27. 27. 8 Figura 2.1: Arquitetura e foto do MICAz. A Tabela 2.1 sumariza os principais componentes do MICAz com base na Figura 2.1. Tabela 2.1: Componentes da Arquitetura do MICAz Item Antena Memória flash Light Emitting Diode (LED)´s CC2420 ATMEGA128L Conector de Expansão Descrição Comunicação ( 1 de onda) 4 “data logger” dos dados coletados. É utilizada para armazenamento de parâmetros do software embarcado e para guardar uma sequência de dados que será posteriormente enviada à basestation. Dispositivo de uso geral que pode ser utilizado para sinalização ou alerta pela aplicação embarcada. Um rádio transceptor Direct Sequence Spread Spectrum (DSSS) que trabalha na faixa de 2.4 Ghz/ZigBee-ready, padrão Institute for Electrical and Electronics Engineers (IEEE) 802.15.4 e fabricado pela Texas Instruments[31]. Microcontrolador Complementary metal-oxidesemiconductor (CMOS) de 8 bits, baixo consumo, baseado na avançada tecnologia AVR Reduced Instruction Set Computer (RISC) fabricado pela ATMEL Corporation[24]. Conector de 51 pinos para interconexão e expansão produzido pela Hirose Electric Group[22] O conector de expansão possibilita a interceptação de qualquer pino do microcontrolador, tais como: Universal Synchronous Asynchronous Receiver Transmitter (USART)´s, Analog to Digital Converter (ADC)´s, pinos de uso geral, barramento I2C, LED´s, interrupções externas e fonte de energia.
  28. 28. 9 Cada componente está conectado através de barramentos de comunicações. O rádio se comunica com o microcontrolador através de 12 pinos do barramento Serial Programming Interface (SPI) e a memória flash utiliza barramento SPI. O MICAz possui entrada para conexão externa de alimentação DC permitindo assim, que uma fonte de energia de maior capacidade seja também utilizada. A Figura 2.2 ilustra uma organização mais detalhada da arquitetura do MICAz. Figura 2.2: Arquitetura detalhada do MICAz. 2.2.2 Características A Tabela 2.2 expõe as principais características do MICAz: Tabela 2.2: Características - MICAz. Modelo Microcontrolador Transceptor de Rádio Memória flash Fonte de Energia Padrão MPR2400[25] Chip ATMEGA128L, frequência de clock 7.37Mhz, palavra de 8 bits, 128kb de memória de programa e 8kb de memória Random Access Memory (RAM). CC2420[31]. Chip AT45DB041 com capacidade de 512kb 2 baterias alcalinas do tipo AA[10] com capacidade de 2000 mA-h.
  29. 29. 10 2.2.3 Microcontrolador - ATMEGA128L O microcontrolador ATMEGA128L[24] é uma arquitetura de 8 bits Havard2 modificada; baseado na avançada tecnologia AVR-RISC desenvolvida pela Atmel Corporation[47, 3]. O ATmega128 é “low-power”, tecnologia CMOS e executa uma instrução a cada ciclo de clock. Algumas características mais notáveis neste microcontrolador são: Memória flash 128kb; Memória EEPROM 4kb; Memória RAM estática 4kb; Joint Test Action Group (JTAG) Interface compatível com o padrão IEEE 1149.1; Timers 2 timers de 8 bits e 2 de 16 bits; Pulse Width Modulation (PWM) 6 canais com resolução programável de 2 a 16 Bits; ADC 8 canais com resolução de 10 Bits; USART 2 programáveis e independentes; SPI Interface serial “master” e “slave”; Modos de economia de energia 6 modos; “Idle”, “ADC Noise Reduction”, “Powersave”, “Power-down”, “Standby” e “Extended Standby”; Input/Output (IO)´s 51 pinos programáveis; Tensão de Operação 2.7 a 5.5 V. 2.2.4 Alimentação DC A MPR2400 foi projetada para operar com baterias alcalinas do tipo AA. Podendo utilizar qualquer combinação de baterias, desde que a tensão de alimentação esteja entre os limites de 2.7V a 3.6V DC. Possui um conector do tipo Molex[9] destinado à alimentação externa, desde que o nível de tensão não ultrapasse os 3.6V. A Figura 2.3 ilustra o circuito de alimentação da MPR2400. Quando a chave SW2 está na posição 1, o circuito é alimentado ou pelas baterias ou pela fonte de energia externa. Na posição 2 o circuito está desligado. Os capacitores eletrolíticos C1 e C2, mostrados na figura 2.3, têm a finalidade de filtrar espúrios de tensão provenientes de uma fonte de energia ruidosa. 2É uma arquitetura de computador que se distingue das outras por possuir duas memórias diferentes e independentes em termos de barramento e ligação ao processador.
  30. 30. 11 Figura 2.3: Circuito de Alimentação DC do MICAz. 2.2.5 2.4 GHz IEEE 802.15.4 / ZigBee-ready RF Transceiver - CC2420 O CC22420[31] é um transceptor de 2.4Ghz compatível com o padrão IEEE 802.15.4 para aplicações de baixo consumo (“low-power”). O transceptor inclui um DSSS provendo uma taxa efetiva de comunicação de 250Kbps. Uma solução integrada e robusta para WSN´s na faixa de rádio frequência - “Industrial Scientific and Medical bands (ISM)”. A interface de comunicação do CC2420 é acessada via barramento SPI. As principais características do CC2420 são[31]: • Frequência de operação de 2.4Ghz; • Baixo consumo: (Recepção: 18.8mA, Transmissão:17.4 mA); • Tensão de alimentação entre 2.1V a 3.6V com regulador de tensão integrado; • Potência de Transmissão programável; • Poucos componentes são necessário para o funcionamento; • Suporte a Received Signal Strength Indication (RSSI) e Link Quality Indicator (LQI); • Criptografia Advanced Encryption Standard (AES) de 128 Bits; • Ferramentas de desenvolvimento disponíveis: SmartRF Studio[29] e SmartRF Protocol Packet Sniffer[30]. O valor do RSSI pode ser lido através de um registrador interno de 8 bits do CC2420 denominado RSSI.RSSI_VAL. A Figura 2.4 ilustra valores típicos para RSSI.RSSI_VAL em função da potência de entrada[31]. O LQI está relacionado quanto à caracterização da qualidade e potência do pacote recebido. O RSSI, descrito no parágrafo anterior, é utilizado pelo firmware da camada Media Access Control (MAC) para produzir o LQI.
  31. 31. 12 Figura 2.4: Valores típicos para RSSI x potência de entrada. 2.2.6 Memória Flash (Data Logger) - AT45DB041 O AT45DB041D é uma memória flash com interface serial desenvolvida idealmente para uma variedade de aplicações, tais como: digitalização de voz e imagem, armazenamento de firmware´s e dados. Suporta a interface serial SPI com frequências acima de 66Mhz. Possui 4.325.376 bits de memória organizados em 2.048 páginas de 256/264 bytes cada. Adicionalmente possui buffers de RAM estática com 256/264 Bytes cada. Os buffers aumentam a velocidade de acesso porque possibilitam a recepção de dados enquanto a memória está sendo reprogramada[15]. As principais características desse dispositivo são: • Tensão de alimentação entre 2.5V a 3.6V; • Interface serial com 66 Mhz de clock; • Tamanho da página programável: 256/264 Bytes por página; • Opções flexíveis de apagar os dados; • Baixo consumo “low-power”: 7 mA (leitura), 25 µA (Standby); A Figura 2.5 expõe a configuração dos pinos da memória flash AT45DB041 e a Tabela 2.3 ilustra a função de cada pino respectivamente[15]. Figura 2.5: Pinagem da memória AT45DB041.
  32. 32. 13 Tabela 2.3: Função de cada pino da memória AT45DB041. Pino CS SCK SI SO WP RESET VCC GND 2.2.7 Função Chip Select. Um nível baixo nesse pino põe o dispositivo em operação. Serial clock. Entrada de relógio. Serial input. Entrada de dados. Serial output. Saída de dados. Proteção contra escrita. Um nível baixo nesse pino desabilita a escrita de dados na memória. Um nível baixo nesse pino põe o dispositivo em estado “idle”. Alimentação DC. Terra em relação a VCC. Conversor DC-DC - MAX1678 O MAX1678 é um conversor DC-DC “buck” desenvolvido para dispositivos alimentados por baterias alcalinas, NiMH - Níquel Metal Hidreto e NiCd - Níquel-Cádmio ou células de lítio. A tensão de saída vem pré-configurada para 3.3V ou poderá ser ajustada entre 2.0V a 5.5V utilizando somente 2 resistores. O dispositivo alcança eficiência acima de 90% e possui um modo de “shutdown” com apenas 2µA de consumo[45]. A Figura 2.6 mostra um circuito típico de operação do conversor DC-DC MAX1678. Figura 2.6: Circuito típico de utilização do MAX1678. 2.2.8 Mote Interface Board - MIB520 A MIB520 é a placa utilizada para conectividade entre o MICAz e o PC. A Mote Interface Board (MIB520), apresentada na figura 2.7, através da porta UNIVERSAL SERIAL BUS (USB) do PC este dispositivo possibilita conectividade tanto para programação do firmware quanto para comunicação com o sensor[25].
  33. 33. 14 Figura 2.7: Vista superior da MIB520. A chave SW1, quando pressionada, reinicializa o sistema embarcado que está instalado no Mote. O conector Hirose[22] é a interface de conexão entre a MIB520 e a MPR2400. Os LEDs são apenas sinalizadores visuais da placa. A placa de interface com o PC é equipada com um chip FT2232C, fabricado pela Future Technology Devices International Ltd.[44]. Quando conectado ao PC, esse chip cria duas portas de comunicação seriais independentes. A primeira porta é utilizada exclusivamente para gravação In System Programming (ISP) enquanto que a segunda, pode ou não ser utilizada para comunicação serial com o MICAz através de protocolo RS232. Por exemplo: considere a situação na qual a primeira porta criada foi a COM5 e a segunda foi a COM6, então as funções das portas serão as seguintes: COM5: ISP - Gravação do firmware; COM6: Comunicação serial com o MICAz. O FT2232C é a terceira geração da família dos populares chips USB/USART da FTDI[44]. 2.2.9 Placa de Aquisição de dados - MDA100CB A MDA100CB (Figura 2.8)[17] é uma placa de extensão para o MICAz que possui um sensor de luz (fotoresistor), um sensor de temperatura de precisão (termistor 3 ) e uma área de prototipação que fornece acesso as duas portas seriais, barramento I2C, portas de IO, todos os oito canais ADC além de 45 ilhas desconectadas para uso geral. Figura 2.8: Foto da placa de aquisição de dados - MDA100CB. A Figura 2.9 ilustra a disposição da matriz de acesso da placa de aquisição de dados e prototipação MDA100CB. 3 Condutor sensível à temperatura.
  34. 34. 15 Figura 2.9: Matriz MDA100CB. 2.3 2.3.1 TinyOS Introdução TinyOS é um Sistema Operacional (SO) Open Source desenvolvido inicialmente pela Universidade de Berkeley para aplicações de baixo consumo, WSNs, redes de sensores atuadores e robótica[18, 4]. Segundo BORGES; CARVALHO; CRUZ, os SO´s atuais que estão sendo desenvolvidos pela comunidade científica são, o TinyOs da Universidade de Berkeley[4], Contiki[12] do Instituto de Ciências de computação da Suécia, MantisOs[8] da Universidade do Colorado, SOS da Universidade de Califórnia, Yatos da Universidade de Minas Gerais, EYES da Universidade de Twente e o Nano-QPLUS da Divisão de Informática, CNU, Daejeon, Coréia do Sul. Ainda segundo BORGES; CARVALHO; CRUZ, o TinyOS tornou-se mais confiável para aplicações finais, mais portável e já é compatível com as plataformas eyesIFXv2, intelmote2, mica2, micaZ, telosb em seu novo versionamento. O TinyOs proporciona a escrita rápida de aplicações para RSSF através de: • Um modelo de programação orientado a componentes reutilizáveis com alto nível de abstração; • Modelo de execução concorrente que define como os componentes interagem entre si; • Uma vasta Application Programming Interfaces (API) consistindo de uma biblioteca para escrita de novas aplicações e serviços. O modelo de execução preemptivo com gerenciamento de tarefas executadas ao mesmo tempo enquanto o sistema dispõe de pouca memória RAM. As tarefas são escalonadas e divididas em fases. Esta seção tem a finalidade de prover uma breve noção do sistema operacional TinyOS bem como a utilização dos componentes necessários para utilização na Placa de Medição
  35. 35. 16 de Consumo. Grande parte dela será baseada no livro TinyOS Programming[40] de autoria de Philip Levis e David Gay, amplamente utilizado pela comunidade acadêmica como o melhor ponto de referência para a iniciação da programação para RSSF, e o restante nas TinyOS Enhancement Proposalss (TEPs) e tutoriais disponíveis no site do TinyOS[4]. 2.3.2 Estrutura de Programação - nesC Programas que utilizam o sistema operacional TinyOS são escritos na linguagem nesC[6] e são construídos a partir de componentes interconectados wireds. Para ilustrar a diferença; considere um programa, que pisca alternadamente um LED durante um período de 500 milisegundos, escrito em C e o código equivalente escrito em nesC. O Código 2.1, corresponde hipoteticamente ao programa escrito em linguagem C. Código 2.1: BlinkLed.c 1 2 3 4 5 6 7 8 # i n c l u d e " mote . h " i n t main ( ) { mote_init () ; while ( 1 ) { led0_toggle () ; delay_ms (500) ; } } O programa equivalente em nesC possui dois componentes, configuração e módulo. Configurações em nesC realizam a interconexão wired da aplicação e instanciam outros componentes de alto nível disponíveis na árvore do TinyOS. Módulos possuem implementações de código e interfaces. Os Códigos 2.2 e 2.3 ilustram a configuração e o módulo da aplicação respectivamente[40]. Código 2.2: BlinkLedAppC.nc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 c o n f i g u r a t i o n BlinkLedAppC {} implementation { /∗ ∗ Componentes u t i l i z a d o s p e l a a p l i c a ç ã o ∗/ components MainC , LedsC , BlinkLedC ; components new T i m e r M i l l i C ( ) a s T e m p o r i z a d o r ; /∗ ∗ Wired i n t e r c o n e x ã o d a s i n t e r f a c e s ∗/ BlinkLedC . Boot −>MainC ; BlinkLedC . Leds −>LedsC ; BlinkLedC . T e m p o r i z a d o r −>T e m p o r i z a d o r ; } Código 2.3: BlinkLedC.nc 1 2 3 4 5 6 7 module BlinkLedC { uses { i n t e r f a c e Boot ; / / Contém o e v e n t o de i n i c i a l i z a ç ã o do s i s t e m a i n t e r f a c e Leds ; / / I n t e r f a c e que i m p l e m e n t a o s t r ê s LEDs i n t e r f a c e Timer < T M i l l i > a s T e m p o r i z a d o r ; } }
  36. 36. 17 8 9 10 11 12 13 14 15 16 17 implementation { e v e n t v o i d Boot . b o o t e d ( ) { c a l l T e m p o r i z a d o r . s t a r t P e r i o d i c ( 5 0 0 ) ; / / T i m e r d i s p a r a a cada 500 ms } event void Temporizador . f i r e d ( ) { c a l l Leds . l e d 0 T o g g l e ( ) ; / / Muda o e s t a d o do Led } } A rotina BlinkLedAppC utiliza diversos componentes e realiza a conexão entre eles conforme podemos observar na Figura 2.10 que ilustra o grafo da aplicação para piscar o Led0 do MICAz. Figura 2.10: Grafo da Aplicação BlinkLed. Os Códigos [2.1],[2.2] e [2.3], mostram a diferença entre nesC e C. Programas escritos em C são compostos de funções e programas escritos em nesC, são desenvolvidos a partir de um conjunto de componentes que implementam serviços particulares. Funções em C tipicamente interagem diretamente, enquanto que componentes nesC são especificados por interfaces. O módulo que utiliza a interface necessariamente precisa implementar os eventos e fazer chamadas call dos comandos quando necessário. Interfaces em nesC são semelhantes às interfaces da linguagem Java: um “contrato” para o desenvolvimento de uma classe. A Figura 2.11 mostra o fluxograma da aplicação BlinkLedAppC.
  37. 37. 18 Figura 2.11: Fluxograma da aplicação BlinkLedAppC. 2.3.3 Assinatura de Componentes Um programa escrito em nesC é uma coleção de componentes. Todo componente tem o seu respectivo código fonte. Por exemplo, LedsC.nc contém o código nesC para o componente LedsC, enquanto que o código fonte para o componente BlinkLedC pode ser encontrado no arquivo BlinkLedC.nc(Código 2.3). Há dois tipos de componentes: Módulos (Module) e Configurações (Configuration), os quais são utilizados para interconectar uma combinação de serviços ou abstrações. Os dois tipos de componentes diferem na sua implementação conforme podemos observar através das respectivas assinaturas em 2.4 e 2.5. Código 2.4: configAppC.nc 1 2 3 4 5 6 c o n f i g u r a t i o n configAppC { } implementation { } Código 2.5: configC.nc 1 2 3 4 5 6 module BlinkLedC { } implementation { } A Implementação de módulos em nesC, consiste de um código fonte que aparenta um programa em linguagem C. Configurações consiste de código de interconexão entre componentes[40].
  38. 38. 19 2.3.4 Componente Essenciais para Uso na Plataforma de Medição 2.3.4.1 Componente MicaBusC Para trabalhar com portas de entrada e saída, conversores ADC e as interrupções externas do MICAz devemos utilizar o componente MicaBusC que provê acesso aos pinos através das seguintes interfaces: Adc0 interface MicaBusAdc as Adc0 Adc1 interface MicaBusAdc as Adc1 Adc2 interface MicaBusAdc as Adc2 Adc3 interface MicaBusAdc as Adc3 Adc4 interface MicaBusAdc as Adc4 Adc5 interface MicaBusAdc as Adc5 Adc6 interface MicaBusAdc as Adc6 Adc7 interface MicaBusAdc as Adc7 Int0 interface GeneralIO as Int0 Int1 interface GeneralIO as Int1 Int2 interface GeneralIO as Int2 Int3 interface GeneralIO as Int3 PW0 interface GeneralIO as PW0 PW1 interface GeneralIO as PW1 PW2 interface GeneralIO as PW2 PW3 interface GeneralIO as PW3 PW4 interface GeneralIO as PW4 PW5 interface GeneralIO as PW5 PW6 interface GeneralIO as PW6 PW7 interface GeneralIO as PW7 Os Códigos 2.6 e 2.7 mostram um exemplo de utilização da interface GeneralIO (acesso a porta digital de entrada e saída). Deve-se observar que somente na implementação do componente configuração (configuration) é que se atribui o endereço físico do pino (PW2) do microcontrolador. A programação no módulo é desempenhada considerando uma interface GeneralIO em alto nível de abstração.
  39. 39. 20 Código 2.6: ioportAppC.nc 1 2 3 4 5 6 7 8 9 co nf ig ura ti on ioportAppC { } implementation { components MainC , MicaBusC , i o p o r t C ; components new T i m e r M i l l i C ( ) a s T e m p o r i z a d o r ; I 2 C T e s t i n g C . Boot −>MainC . Boot ; I 2 C T e s t i n g C . wakeUpPIC−>MicaBusC . PW2 ; i o p o r t C . T e m p o r i z a d o r −>T e m p o r i z a d o r ; } Código 2.7: ioportC.nc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 module i o p o r t C { uses { i n t e r f a c e Boot ; i n t e r f a c e Timer < T M i l l i > a s T e m p o r i z a d o r ; i n t e r f a c e GeneralIO as portaIO ; } } implementation { e v e n t v o i d Boot . b o o t e d ( ) { c a l l p o r t a I O . makeOutput ( ) ; / / C o n f i g u r a o p i n o como s a í d a c a l l p o r t a I O . c l r ( ) ; / / Põe o p i n o em n í v e l b a i x o c a l l T e m p o r i z a d o r . s t a r t P e r i o d i c ( 5 0 0 0 ) ; / / T e m p o r i z a d o r a cada 5 segundos } event void Temporizador . f i r e d ( ) { c a l l p o r t a I O . t o g g l e ( ) ; / / A l t e r n a o n í v e l da p o r t a } } 2.3.4.2 Componente Atm128I2CMasterC O barramento I2C foi desenvolvido pela Philips em meados dos anos 80 para possibilitar fácil comunicação entre componentes localizados na mesma Printed Circuit Board (PCB). A Philips Semiconductors migrou para NXP em 2006[53]. O barramento I2C apresenta três modalidades com diferente taxas de comunicação[53]: Standard 100Kbps; Fast mode 400Kbps; Fast mode plus 3.4Mbps. Algumas características significativas neste tipo de barramento são: • Somente duas linhas de comunicação são requisitos; • Relação master/slave entre todos os dispositivos que fazem parte do barramento; • Cada dispositivo conectado possui um único endereço; • Detecta colisão.
  40. 40. 21 O componente Atm128I2CMasterC, que implementa as duas interfaces ilustradas na Figura 2.12, é destinado a desempenhar comunicação I2C entre MICAz e outros dispositivos. É importante ressaltar que o projeto desse componente foi realizado de modo que o MICAz seja sempre e unicamente master enquanto que o restante dos dispositivos conectados ao barramento devem ser estritamente slaves. Este componente admite somente a modalidade Standard (100Kbps de taxa de comunicação)[4]. Figura 2.12: Conexões do módulo Atm128I2CMasterC. Fonte: [4] Os Códigos 2.8 e 2.9 demonstram a utilização do componente Atm128I2CMasterC. O programa escreve e ler no barramento I2C a cada 3 segundos. Código 2.8: I2CBusAppC.nc 1 2 3 4 5 6 7 8 9 10 11 12 13 c o n f i g u r a t i o n I2CBusAppC { } implementation { components MainC , I2CBusC ; components new T i m e r M i l l i C ( ) a s T e m p o r i z a d o r ; components new Atm128I2CMasterC ( ) ; I2CBusC . Boot −>MainC . Boot ; I2CBusC . T e m p o r i z a d o r −>T e m p o r i z a d o r ; /∗ ∗ I2C W i r i n g ∗/ I2CBusC . R e s o u r c e −>Atm128I2CMasterC ; I2CBusC . I 2 C P a c k e t −>Atm128I2CMasterC ; } Código 2.9: I2CBusC.nc 1 2 3 4 5 6 7 8 9 10 11 module I2CBusC { uses { i n t e r f a c e Boot ; /∗ ∗ Timers ∗/ i n t e r f a c e Timer < T M i l l i > a s T e m p o r i z a d o r ; /∗ ∗ P r o t o c o l o I2C ∗/ i n t e r f a c e I 2 C P a c k e t < TI2CBasicAddr > ;
  41. 41. 22 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 i n t e r f a c e Resource ; } } implementation { uint8_t txData [ 8 ] ; u i n t 8 _ t rxData [ 8 ] ; enum { SLAVE_ADDR = 0 x60 / / E n d e r e ç o do d i s p o s i t i v o s l a v e no b a r r a m e n t o I2C }; event call } event call } / / 3 segundos void Temporizador . f i r e d ( ) { Resource . r e q u e s t ( ) ; event void Resource . g r a n t e d ( ) { memcpy ( t x D a t a , " t e s t e " , s t r l e n ( " t e s t e " ) ) ; c a l l I 2 C P a c k e t . w r i t e ( I2C_START | I2C_STOP , SLAVE_ADDR, s i z e o f ( r x D a t a ) , &t x D a t a [ 0 ] ) ; } 32 33 34 async e v e n t void I2CPacket . readDone ( e r r o r _ t e r r o r , u i n t 1 6 _ t addr , uint8_t length , uint8_t ∗ data ) { c a l l Resource . r e l e a s e ( ) ; } 35 36 37 38 async e v e n t void I2CPacket . writeDone ( e r r o r _ t e r r o r , u i n t 1 6 _ t addr , uint8_t length , uint8_t ∗ data ) { i f ( e r r o r ==SUCCESS ) { c a l l I 2 C P a c k e t . r e a d ( I2C_START | I2C_STOP , SLAVE_ADDR, s i z e o f ( r x D a t a ) , &r x D a t a [ 0 ] ) ; } } 39 40 41 42 43 v o i d Boot . b o o t e d ( ) { Temporizador . s t a r t P e r i o d i c (3000) ; } 2.3.5 Protocolos de Roteamento Roteamento é o processo de encontrar um caminho de uma origem até um destino. Redes de Sensores sem Fio (RSSF) são constituídas de uma árvore de nós densamente distribuídos que operam de forma colaborativa. Cada dispositivo é dotado de capacidade computacional (microcontrolador), sensores, transceptor de rádio e fonte de energia. O protocolo de roteamento é um algorítmo responsável pela busca, descoberta e manutenção das rotas entre um nó de origem e o nó de destino. O projeto de um algorítmo de roteamento além de ser complexo, deve considerar a rota mais curta entre a origem e o destino. O protocolo de roteamento pode ser desenvolvido em função dos seguintes fatores: • complexidade da rede; • modelo de mobilidade; • eficiência energética;
  42. 42. 23 • gerenciamento de memória. 2.3.5.1 Protocolo Collection O protocolo Collection[20] é um serviço que soma esforços para entregar pacotes multi-hop em uma RSSF[20]. CollectionC é o componente responsável pelo funcionamento do protocolo Collection. O perfil do nó na RSSF é determinado pelo uso seletivo das interfaces disponíveis neste componente. O Algoritmo 2.10 ilustra a implementação e as interfaces disponíveis nesse protocolo. As informações na rota final são exibidas para os observadores da RSSF. Considere a Figura 2.13 que é um caso típico de uma WSN e as observações listadas abaixo: 1. Os nós A,B,C,D,E e F são responsáveis pelo sensoriamento da RSSF; 2. O nó G é a base-station, gateway ou node-sink; 3. Os círculos são apenas ilustrações do alcance do rádio dos respectivo nó central; 4. O nó G está conectado a uma placa de interface denominada MPR2400CB[25, 57] ou Mote Interface Board (MIB); 5. A rota mais curta para que um pacote cuja origem é o nó A e o destino o nó G é: A⇒B⇒D⇒E ⇒F ⇒G Figura 2.13: Cenário Típico com 7 sensores CollectionC é o componente responsável pelo funcionamento do protocolo Collection. O perfil do nó na RSSF é determinado pelo uso seletivo das interfaces disponíveis por este componente. O Algoritmo 2.10 ilustra a implementação e as interfaces disponíveis do protocolo. Código 2.10: Componente CollectionC 1 configuration 2 provides { 3 interface 4 interface 5 interface 6 interface CollectionC { StdControl ; Send [ u i n t 8 _ t c l i e n t ] ; Receive [ c o l l e c t i o n _ i d _ t id ] ; R e c e i v e a s Snoop [ c o l l e c t i o n _ i d _ t ] ;
  43. 43. 24 7 interface I n t e r c e p t [ c o l l e c t i o n _ i d _ t id ] ; 8 9 interface Packet ; 10 interface CollectionPacket ; 11 interface CtpPacket ; 12 13 interface CtpInfo ; 14 interface CtpCongestion ; 15 interface RootControl ; 16 } 17 18 uses { 19 interface CollectionId [ uint8_t client ]; 20 interface CollectionDebug ; 21 } 22 } 23 24 i m p l e m e n t a t i o n { 25 components CtpP ; 26 27 S t d C o n t r o l = CtpP ; 28 Send = CtpP ; 29 R e c e i v e = CtpP . R e c e i v e ; 30 Snoop = CtpP . Snoop ; 31 I n t e r c e p t = CtpP ; 32 33 P a c k e t = CtpP ; 34 C o l l e c t i o n P a c k e t = CtpP ; 35 C t p P a c k e t = CtpP ; 36 37 C t p I n f o = CtpP ; 38 C t p C o n g e s t i o n = CtpP ; 39 R o o t C o n t r o l = CtpP ; 40 41 C o l l e c t i o n I d = CtpP ; 42 C o l l e c t i o n D e b u g = CtpP ; 43 } A Tabela 2.4 relaciona as principais interfaces do serviço Collection e as respectivas funções. Tabela 2.4: Principais Interfaces do componente CollectionC Interface StdControl Send Receive Snoop Intercept RootControl Função Inicialização e parada do serviço Collection. Obrigatória para todos os nós que façam parte da coleção. Envio de pacotes pelos producers. Recepção de pacotes pelos consumers. Escuta dos pacotes sem interferir na coleção. Responsável pelo encaminhamento multi-hop dos pacotes. Implementa comandos que definem se o nó é ou não uma rota final da coleção. Obrigatório para os consumers. Os nós no protocolo Collection desempenham tarefas específicas. Cada perfil, listado
  44. 44. 25 na Tabela 2.5, corresponde a um papel diferente ou participação na RSSF. Tabela 2.5: Tipos de Perfis no protocolo Collection Perfil producer interface Send snooper in-network processor Snoop Intercept consumer Receive Descrição Coletam dados dos sensores e enviam para a rota final da rede. Escutam o tráfego de dados na rede. Interceptam os pacotes em trânsito na rede e os encaminham para o próximo salto (forward). O processo de interceptação e encaminhamento também permite a modificação do pacote. (update) Recebem os dados produzidos pela coleção de sensores distribuídos na rede. Nesta seção desenvolveremos uma aplicação prática (veja Figura 2.14) com os seguintes requisitos: 1. Para fins experimentais todos os nós tiveram a potência do rádio reduzidas para PdBm = −25dBm. A potência de -25dBm é equivalente a PW = 3.162 × 10−6W ou 3.16µW . O consumo do rádio reduz-se para 8.5mA e isto facilita a observação do comportamento do protocolo em pequenas distâncias; 2. Quatro nós híbridos, numerados de 1 a 4, serão distribuídos: (producers+in-network processor). A finalidade desses nós consiste na leitura dos sensores (temperatura e de luminosidade), envio dos dados para o consumer e encaminhamento multi-hop de pacotes - (forward); 3. O nó 5 desempenhará o papel de consumer; 4. A Figura 2.14 ilustra o cenário dessa experiência prática; 5. Dois sistemas embarcados diferentes são necessários; um para a árvore da rede (nós de 1 a 4) e outro para o nó 5 (gateway). Figura 2.14: Aplicação Prática: Proposta de Cenário
  45. 45. 26 O código fonte referente à aplicação prática dessa seção está disponível no Apêndice V desse documento. 2.3.5.2 Protocolo de Roteamento - Tymo DYMO[7, 58] é um protocolo de roteamento reativo4 e multi-hop desenvolvido para Mobile Ad-hoc Networks (MANET) e baseado no mecanismo de funcionamento do Ad hoc On-Demand Distance Vector Routing (AODV)[48][7]. A especificação do DYMO pelo The Internet Engineering Task Force (IETF) ainda está em fase de desenvolvimento. Ilustraremos, nessa seção, os princípios básicos da operação do protocolo TYMO[58]. A Figura 2.15 ilustra a representação de uma RSSF onde o nó A deseja enviar um pacote para o nó H. As linhas representam conexões dos nós com os seus vizinhos. Figura 2.15: Exemplo: A envia um pacote para H. Conforme THOUVENIN, a fim de evitar contradições e incoerências verbais, dividiremos o processo de comunicação do protocolo em duas camadas segundo a Tabela 2.6. Tabela 2.6: Camadas do protocolo TYMO. Camada Link Layer Network Layer Descrição Os pacotes são trocados entre os emissores e receptores (vizinhos). Os pacotes são enviados do emissor para o receptor. O TYMO[58] é a implementação do DYMO em TinyOS 2.x. Este protocolo é abordado detalhadamente no documento de dissertação de mestrado de THOUVENIN. Um protocolo reativo não armazena informações da topologia da rede. Os nós processam informações sobre as rotas somente quando necessário. O resultado disso é um menor overhead na troca de informações de rotas entre os nós vizinhos e redução do tráfego economizando banda e energia. As características principais do DYMO são a descoberta e manutenção de rotas. Estas atividades são desempenhadas através da troca de mensagens: RREQ, RREP e RERR. O DYMO também possui mecanismos para evitar a utilização de informações de roteamento antigas e a formação de loops. A operação básica consiste no envio de mensagens de requisição de rota Route Request (RREQ); que é enviada quando um nó necessita obter o caminho entre a origem e o destino 4 Adaptativo quanto à mudanças na topologia da rede e descoberta de rotas sob demanda.
  46. 46. 27 do pacote. Esta mensagem percorre toda a rede até o destino conforme a Figura 2.16[19, 58, 7]. Figura 2.16: Requisição de rota entre A e H. Cada nó que recebe uma RREQ, guarda a rota para a origem e reencaminha o pacote de controle para o destino. O destino responde com uma mensagem de resposta de rota - Reply Route (RREP) quando o pacote da origem encontra o nó de destino, conforme Figura 2.17. Figura 2.17: RREP é enviada pela rota mais curta entre A e H. Uma mensagem RREQ é bastante similar às mensagens RREP. A diferença reside no fato das mensagens RREP serem unicasts enquanto que RREQ são broadcasts. Quando um nó recebe uma RREQ ou RREP, as informações sobre a rota estão numa tabela (cache) que poderá ser utilizada posteriormente para fins de comunicação entre a origem e o destino sem a necessidade de envios de mensagens RREQ. As rotas são eliminadas quando não estão sendo utilizados por um período de tempo. Uma mensagem Route Error (RERR) é disseminada se um nó tentar encaminhar um pacote através de uma rota que foi perdida. A Figura 2.18 ilustra o processo da mensagem RERR. Nesta seção desenvolveremos uma aplicação prática (veja Figura 2.19) com os seguintes requisitos: 1. Para fins experimentais todos os nós tiveram a potência do rádio reduzidas para PdBm = −25dBm. A potência de -25dBm é equivalente a PW = 3.162 × 10−6W ou 3.16µW . O consumo do rádio reduz de 17,4mA para 8.5mA e, com isso, facilita a observação do comportamento do protocolo em pequenas distâncias; 2. Quatro nós (1,2,3 e 4) serão distribuídos com a finalidade desses de leitura dos sensores (temperatura e de luminosidade), envio dos dados para a base-station e encaminhamento multi-hop de pacotes - (forward);
  47. 47. 28 Figura 2.18: O nó G deslocou-se para outra posição e o nó F não tem mais rota para alcançar G e H. B e C não encaminha RERR porquê C conhece o caminho para D. 3. O nó 36 desempenhará o papel de base-station; 4. A Figura 2.19 ilustra o cenário dessa experiência prática. 5. O código fonte do exemplo prático está disponível no Apêndice VI deste documento. Figura 2.19: Aplicação Prática: Proposta de Cenário O código fonte referente à aplicação prática dessa seção está disponível no Apêndice 8 desse documento. 2.4 Conclusão Foram abordados cada um dos componentes do MICAz, através de uma visão arquitetural detalhada de cada um de seus componentes e suas características. Em geral, desenvolvedores de sistemas embarcados utilizam a linguagem C. O TinyOS pode se mostrar, no início, um pouco difícil e diferente devido às difereças do C procedural e o nesC orientado a componentes. Todavia, com o passar o tempo, o projetista de sistemas embarcados para RSSF se acostuma com o paradigma da programação orientada a componentes e passa inclusive a admirar o vantajoso conjunto de APIs, níveis de abstrações e a vasta quantidade de componentes reutilizáveis que executam tarefas complexas. O desenvolvimento de subrotinas para sistemas embarcados onde o tempo é crítico é uma tarefa complexa. Sabe disso quem desenvolveu por exemplo: uma API para controle e acesso SPI de uma câmera CCD ou até mesmo quem precisou desenvolver um conjunto de
  48. 48. 29 subrotinas de acesso ao barramento I2C. Tarefas complexas demandam tempo e quando se tem componentes que implementam estas tarefas com nível de abstração alto o tempo de desenvolvimento reduz-se significativamente. TinyOS é o Sistema Operacional para RSSF mais utilizado na comunidade acadêmica. Apresenta confiabilidade e o seu projeto foi desempenhado visando dispositivos com pouca memória, severas restrições de energia, baixo consumo e WSNs. Dois protocolos de roteamento, Collection e Tymo foram explicados resumidamente através de experimentos práticos com os seus respectivos códigos fonte.
  49. 49. Capítulo 3 Estado da Arte 3.1 Introdução Nesta seção serão mencionados alguns trabalhos relacionados com estratégias de medição de consumo de energia em RSSF. Vários trabalhos serão referenciados neste texto, mas três destes serão discutidos em detalhes pois são fortemente relacionados ao tema desta dissertação de mestrado - Técnicas de Medições de Consumo de Energia em RSSF. O primeiro trabalho[32], demonstra o desenvolvimento de uma placa de medição de consumo denominada “Scalable Power Observation Tool - SPOT”, desenvolvido em 2007 por uma equipe do Departamento de Ciências da Computação da Universidade da Califórnia, Berkeley. O segundo trabalho[61], compreende o desenvolvimento da ferramenta de monitoramento de consumo “A Runtime Energy Monitoring System for Wireless Sensor Networks”, elaborado em 2008 pelo Instituto Tecnológico de Graz, Áustria. O terceiro trabalho[36], denominado de “Energy Measurements for MicaZ Node”, ilustra uma série de medições realizadas na MPR2400[25] obtidas a partir de instrumentação eletrônica e elaborados em 2006 por um grupo da Universidade de Kaiserslautern, Alemanha. 3.2 3.2.1 Micro Power Meter for Energy Monitoring of Wireless Sensor Networks at Scale Visão Geral Eficiência energética é um problema a ser solucionado nas pesquisas em WSN´s. A lacuna principal para avaliar eficientemente o consumo de energia de um nodo de uma RSSF é um método que viabilize a observação prática da realidade. Segundo JIANG et al., aproximações de simuladores baseadas no uso da energia nodal, derivada de estimativas a partir do duty cycle e taxas de comunicação não são capazes de capturar precisamente o comportamento do consumo em função do tempo (power profile). Os simuladores atuais extrapolam valores, generalizam características importantes e produzem dados incoerentes. O trabalho de JIANG et al. sugere a obtenção de medidas in situ a fim de corrigir modelos de simuladores caracterizando variâncias e validando generalizações.
  50. 50. 31 A Figura 3.1 mostra o comportamento do consumo, durante 4 segundos, de uma típica aplicação para RSSF. Figura 3.1: Comportamento do consumo em função do tempo durante 4 segundos. Observando a Figura 3.1, nota-se longos períodos de baixo consumo pontuados por pulsos discretos de alta corrente. Isto acontece porque na maior parte do tempo o dispositivo encontra-se no estado sleep, só entrando em atividade (estado ativo) quando é necessário efetuar alguma tarefa de sensoriamento. RSSF´s trabalham com um duty cycle típico de 0.1% a 1%. Um sistema de medição de consumo deve ter uma faixa dinâmica que exceda três ordens de magnitude para capturar suficientemente a corrente no sleep mode com precisão. A Figura 3.2 mostra o detalhe de uma transição do modo sleep para o modo ativo com uma duração de 20 milisegundos. Observa-se que o nodo não drena uma corrente constante durante este período. Há dois transitórios nos últimos 10 microsegundos e quatro diferentes níveis e oscilações. O consumo de energia total é a soma dos consumos de cada um dos componentes que fazem parte do nodo. Esta abordagem sugere que taxas de amostragem da ordem de Khz ou Mhz podem ser necessárias para viabilizar a captura dessas características transitórias. Figura 3.2: Comportamento do consumo em função do tempo durante curto período. O sistema de medição deve ser minimamente invasivo, ou seja, deve-se evitar o máximo possível a influir no sistema que está se realizando as aferições. Finalmente, medições in situ têm como requisitos dispositivos de pequeno tamanho e baixo custo. A solução desenvolvida é mostrada na Figura 3.3.
  51. 51. 32 Figura 3.3: O “Scalable Power Observation Tool -SPOT”, consiste de um resistor shunt, amplificador, conversor de voltagem para frequência e dois contadores. Este sistema possibilita a medição da potência e energial nodal com uma faixa dinâmica excedendo 10000:1 e uma resolução temporal da ordem de microsegundos. O Scalable Power Observation Tool (SPOT) acumula as medições de corrente, possui um mecanismo de calibração e utiliza a interface I2C para comunicação com o nodo da RSSF. 3.2.2 Formulação do Problema Esta seção apresenta os requisitos básicos do SPOT com ênfase na faixa dinâmica, taxa de amostragem, pertubação externa e sua fácil integração. Uma RSSF pode exibir uma variedade de diferentes “profiles”1 que dependem da finalidade e da aplicação firmware. Por exemplo: uma simples aplicação de sensoriamento e armazenamento poderá ter o comportamento exibido na Figura 3.1. Em outro cenário, uma outra aplicação poderá coletar e gravar dados a cada 5 minutos e executar um “upload”2 apenas uma vez por dia. O “profile” - comportamento do consumo em função do tempo - dessa aplicação é diferente do mostrado na Figura 3.1. O SPOT é utilizado como um dispositivo de medição independente do perfil de consumo da aplicação. Isto implica que o sistema necessida cobrir toda a densidade espectral do consumo. Sensores de WSN são aplicações pulsantes. A largura desses pulsos ou ciclo de trabalho ativo devem ser considerados para definir a taxa de amostragem do dispositivo de medição. Se a duração de um pulso for mais curta que o período de amostragem “sample”, os dados serão perdidos e a cobertura espectral estará comprometida. O dispositivo de medição deve atender o critério de Nyquist. Na Figura 3.2 temos uma janela de aproximadamente 20 milisegundos. A densidade espectral de potência exibe a energia através de todo espectro. É necessário limitar o sinal com um filtro passa baixa e a frequência de corte desse filtro deve ser a mais alta frequência presente na amostra de pulso ativo da Figura 3.2. A frequência de corte do exemplo é por volta de 20Khz e isto implica numa taxa mínima de amostragem “sample rate” de 20Khz × 2 = 40Khz, desta forma atendendo o 1 Perfil do consumo da aplicação. para a “base-station”. 2 Enviá-los
  52. 52. 33 critério de Nyquist. O dispositivo de monitoramento de energia não deve influenciar no consumo do mote e isto implica que o mecanismo de medição deve ser alimentado por uma fonte de energia externa (separada do mote). Uma das características principais do projeto SPOT é que cada nodo numa RSSF pode ser equipado com um medidor de consumo. Isto sugere que o dispositivo necessita ser de fácil integração e também deve ter um custo irrisório comparado ao preço de um mote. 3.2.3 Arquitetura Utilizada Nesta seção é apresentada a arquitetura do SPOT e algumas características. A arquitetura consiste de quatro estágios: sensoriamento, condicionamento de sinal, digitalização e saída de energia (Figura 3.4). Figura 3.4: SPOT - Arquitetura. O estágio de sensoriamento compreende um resistor “shunt” colocado em série com o mote, convertendo corrente para tensão. Esta voltagem é proporcional ao consumo de potência do mote. No estágio de condicionamento, um amplificador diferencial e um filtro passa baixa é utilizado para amplificar e limitar a banda do sinal respectivamente. O estágio de digitalização compreende um conversor Voltage-to-Frequency (V/F), que produz na saída uma onda quadrada proporcional à tensão de entrada. No estágio de saída de energia, os pulsos de procedência do conversor V/F são somados (integrados) em um contador com a finalidade de obter a medição de energia. Um outro contador também é utilizado para armazenar a base de tempo da onda quadrada. Os valores dos contadores são obtidos pelo mote através do barramento I2C. O sensoriamento é o primeiro estágio assim como na maioria dos sistemas de captura e conversão de sinais. Particularmente no SPOT, a grandeza obtida é a potência que é o produto da tensão e corrente. A tensão foi considerada fixa no projeto do SPOT. Um resistor “shunt”3 foi colocado em série entre o mote e a fonte de energia. A queda de tensão através desse resistor é proporcional a corrente a ser medida. No projeto do SPOT o valor dessa resistência foi de 1Ω. Assumindo que a máxima corrente no mote é de 40mA então a máxima queda de tensão no “shunt” é de 40mV. 3 Resistência de muito pequeno valor.
  53. 53. 34 Amplificadores diferenciais produzem tensões de “offset”. Isto é uma característica comum em amplificadores e a causa se deve ao desbalanceamento dos componentes internos. Supondo que a diferença entre as entradas do amplificador seja zero, mesmo assim haverá uma tensão residual presente na saída do amplificador; esta tensão é denominada “offset”. Para compensar este problema foi incluído no SPOT um mecanismo de calibração. Os valores são armazenados no mote e utilizados na curva de calibração a fim de compensar o “offset”. A amplificação de pequenos sinais é crítica porque qualquer ruído é significante na amostra do sinal. Foram colocados múltiplos estágios RC para diferentes frequências. Também foi descoberto que o oscilador, presente no estágio digital, introduzia um ruído no amplificador. Este problema foi solucionado isolando a parte analógica da digital através de anéis de terra distintos. Isto pode ser observado através da Figura 3.3. A corrente drenada por um mote situa-se na faixa de 20µA a 40mA. Utilizando um resistor de 1Ω, a mínima voltagem para capturar é 20µA × 1 = 20µV . Isto é um valor muito baixo para processamento de sinais. Por isso que esse sinal é amplificado através de um amplificador diferencial ilustrado na Figura 3.4. O ganho do amplificador utilizado no SPOT foi de 82.5; A digitalização é o estágio que converte o sinal analógico para o domínio digital viabilizando processamento digital de sinais para interconexões em sistemas digitais (microcontroladores). Conversores ADC são comumente utilizados como dispositivos de digitalização de sinais analógicos. ADC´s capturam uma tensão de entrada e produzem na saída um valor digital com uma especificada resolução. A faixa dinâmica do SPOT tem requisito de no mínimo 14 bits de resolução. Foram analisados quatro diferentes tipos de implementações: ADC Interno de Microcontroladores: Considerado inadequado porque são usualmente de 10 a 12 bits de resolução e também implicam em um aumento considerável no consumo do microcontrolador; 16 bits ADC´s: Significativamente mais caros e implicam na utilização de Digital Signal Processor (DSP)´s. Utilizar um DSP no projeto aumentaria a complexidade, custo e o consumo; Conversores V/F: São dispositivos analógicos de baixo custo cuja saída é um trem de pulsos digitais; Circuito Integrados de Medição de Consumo: Não foi encontrado nenhum que atenda os requisitos do SPOT. O último estágio é a acumulação de energia e a saída digital. Para viabilizar isto é necessário integrar a potência em função do tempo (Equação 3.1). t E(t) = P(t)dt (3.1) t0 O SPOT utiliza contadores para somar o trem de pulsos. Cada borda de subida do trem de pulsos incrementa o contador. Quando o consumo é alto verifica-se pulsos com maior frequência e menor intervalo de tempo. A diferença no contador entre os intervalos
  54. 54. 35 de tempo t0 e t representam o consumo de energia durante o tempo t − t0. Para evitar “overflow”4 do contador o mote possui uma linha para zerar esses contadores. Adicionalmente foi utilizado como base de tempo um outro contador que mede precisamente o tempo decorrido da medida. Este contador é disparado pelo próprio oscilador do conversor V/F. 3.2.4 Resultados As Leituras dos contadores são obtidas do SPOT, calibradas e comparadas com uma curva de referência obtida de um equipamento de instrumentação eletrônica profissional (Figura 3.5). Figura 3.5: Comparação das medidas obtidas pelo SPOT e um amperímetro. Na Figura 3.5, o mote em observação está drenando 9µA. Após 6 minutos o erro é menor que 0.1mJ ou 3%. A Figura 3.6 ilustra a energia monitorada pelo SPOT comparativamente a de um osciloscópio. As porções mais longas da curva são representadas pelo consumo de energia durante modo “sleep” enquanto que os crescimentos repentinos entre os degraus da escada correspondem ao consumo durante o ciclo ativo. Figura 3.6: Energia (mJ) em Função do Tempo (S). 4 Quando o valor do buffer de contagem ultrapassa sua capacidade máxima.
  55. 55. 36 A Figura 3.7 é o gráfico da corrente em função do tempo. Nota-se que a resolução é um pouco baixa. Isto se deve ao tempo de espera do mote para ativar uma medição. Figura 3.7: Corrente (mA) em função do Tempo (S). 3.2.5 Conclusão O trabalho abrange os requisitos, arquitetura, projeto e resultados do SPOT. Foi esclarecido que o dispositivo está habilitado a efetuar medições e ultrapassou os desafios. O SPOT emprega uma arquitetura que, através do domínio analógico, viabiliza uma larga faixa dinâmica. Os dois contadores: acumulador de energia e resolução temporal, possibilitam a realização das medições com boa precisão. O SPOT, devido às similaridades dos “profiles” das aplicações para WSN pode ser extendido para efetuar aferições em Personal Digital Assistants (PDA), telefones celulares e novas classes de sensores para WSN´s. 3.3 3.3.1 A Runtime Energy Monitoring System for Wireless Sensor Networks Visão Geral Eficiência energética é um dos tópicos mais importantes no desenvolvimento de RSSF. Há uma grande demanda de artigos sobre o problema do consumo de energia com foco em protocolos e aplicações. Observa-se que há uma lacuna quando se trata da obtenção de medidas reais. Segundo TRATHNIGG; WEISS, simuladores como o PowerTOSSIM[54] e AEON[38] têm grande valor, mas o modelo de energia é limitado. Medidas precisas do consumo de energia de cada nó em uma WSN é desejável por inúmeras razões. Primeira, o modelo de energia de simuladores são incoerentes. Segunda, o número de plataformas para RSSF está crescendo significativamente. Isto implica em um alto número de plataformas não suportadas por simuladores existentes. Terceira, a informação detalhada do consumo de um nodo viabiliza a investigação em todas as camadas da plataforma. Por exemplo, a técnica “dynamic power management” pode ser utilizada para adaptar a qualidade do serviço em função da energia remanescente. A informação de energia pode ser utilizada para a descoberta e manutenções das rotas.
  56. 56. 37 A plataforma SPOT detalhada em [32] alcança boa precisão mas considera a tensão da fonte de energia constante. Isto não é nada realista no cenário de dispositivos alimentados à bateria porque a tensão da fonte de alimentação diminui com o passar do tempo. Foram identificadas algumas questões importantes em sistemas de medições de energia, são elas: Precisão: Deve ser melhor do que os resultados obtidos pelos simuladores; Faixa Dinâmica: A corrente drenada por um mica2 situa-se em torno de 35mA quando no estado ativo. No modo “sleep” a corrente baixa para cerca de 30µA; Custo e Tamanho: Cada nodo de uma RSSF deve ser monitorado simultaneamente e o sistema de monitoramento deve ser de pequenas dimensões e viabilidade econômica; Não invasivo: O sistema de medição deve influenciar o mínimo possível no consumo de energia do nó que está sendo aferido; Simplicidade: Fácil integração, instalação e utilização. 3.3.2 Arquitetura Utilizada O consumo de energia do nodo de uma RSSF depende da tensão aplicada. Por isso a arquitetura utilizada efetua medições tanto da tensão quanto da corrente simultaneamente. A Figura 3.8 mostra a arquitetura utilizada no projeto em [61]. Figura 3.8: Arquitetura do “Runtime Energy Monitoring System for Wireless Sensor Networks”. O esquema de medição apresentado no diagrama de blocos da Figura 3.8 é marginalmente invasivo. O mote, por si só, efetua a leitura do consumo através do barramento I2C[53]. A energia utilizada pelo mote é denotada por: T u(t) × i(t)dt E= (3.2) t=0 Como os valores são discretos, teremos então: N E= ∑ u[n] × i[n] × t[n] n=0 (3.3)
  57. 57. 38 Para viabilizar as medições com o TinyOS[40, 4] foi implementada uma interface em camadas. A primeira camada basicamente implementa todas as funções da interface I2C. A segunda, simples mas suficientemente eficiente para medições de energia, é uma interface com nível de abstração mais alto do que a primeira. A aplicação inicializa o processo de medição por um período de tempo. Quando o processo termina, a energia é obtida da aplicação através de um evento. O Código 8 .5 ilustra a simplicidade e o nível de abstração da interface de medição projetada. Código 3.1: Interface de Medição 1 2 3 4 i n t e r f a c e EnergyMeasurement { command r e s u l t _ t s t a r t E n e r g y M e a s u r e m e n t ( u i n t 3 2 _ t s e c o n d s e v e n t void energyMeasurementDone ( double j o u l e ) ; } Um fator de calibração teve de ser determinado. O cálculo do fator de calibração K foi viabilizado utilizando um resistor de valor conhecido ao invés do mote, aplicando uma tensão estável e obtendo a energia consumida pelo resistor durante um período de tempo. A Equação 3.4 ilustra como o fator K foi calculado. N E = K × ∑ u[n] (3.4) n=0 Para calibração do “offset” utilizou-se a Equação 3.4 subtraindo o erro de “offset” do amplificador operacional (Equação 3.5). N E = K × ∑ u[n] − EO f f set (3.5) n=0 A disposição do medidor de energia foi implementada numa placa do tamanho de um mica2. O dispositivo de medição foi acoplado ao mote através do conector de extensão. Como não é possível interceptar a fonte de alimentação do mote através deste conector foi necessário substituir a fonte de alimentação do mote. A Figura 3.9 mostra a placa conectada ao mote. Figura 3.9: Foto da placa de medição. As diferenças de “clock” entre o mote e o microcontrolador ATtiny45 iria gerar erro nas medidas e na correção do “offset”. Por isso foi escolhido a utilização de um “timer”
  58. 58. 39 do mote para temporização das medidas. Isto impõe uma carga extra no mote mas a energia adicional pode ser negligenciada. Como a medida de pequenos sinais são sensíveis a ruídos, foram utilizados capacitores “bypass”5 , anéis e planos de terra de forma a manter o ruído o mais baixo possível. 3.3.3 Resultados Para validar a precisão das medidas foi realizado um procedimento prático experimental com a finalidade de avaliar a energia consumida em função de várias cargas. Uma fonte de alimentação bem estável foi usada para manter a tensão estabilizada dentro da faixa de 2.7V a 3.3V. Vários resistores de valores fixos foram utilizados no lugar do mote e um multímetro digital modelo 34401A da Agilent foi utilizado para efetuar as medidas. Como a tensão e a resistência são conhecidas, a corrente pôde facilmente ser calculada. As medidas efetuadas pelo instrumento foram comparadas com as do protótipo. O gráfico ilustrado na Figura 3.10 mostra a curva de erro para várias cargas alimentadas por uma tensão fixa de 3.15V. O erro obtido foi de 2%. As medições da energia consumida pelo mica2 apresentaram excelente precisão. Figura 3.10: Curva de Erro do “Runtime Energy Monitoring System for Wireless Sensor Networks”. Para experimentos reais, mica2 conectado ao protótipo, a correção de “offset” sofre variações com a temperatura e o tempo. Esta avaliação não foi concluída e ainda está em fase de desenvolvimento. O ponto chave do “runtime energy-measurement setup” é a capacidade de efetuar medidas em cenários com muitos nodos distribuídos. O dispositivo pode ser utilizado para melhorar a eficiência de protocolos e aumentar o tempo de vida útil da RSSF. O instrumento se mostrou suficientemente hábil para efetuar aferições do consumo em nodos individuais de RSSF´s. 5 Arranjo de capacitores que filtram determinadas frequências.
  59. 59. 40 3.3.4 Conclusão A precisão e a faixa dinâmica do SPOT e o “runtime energy-measurement setup” são equivalentes. Isto se deve principalmente às similaridades das abordagens para medições de corrente. Um importante avanço do “runtime energy-measurement setup” comparado com outras abordagens é a capacidade de monitorar a tensão continuamente. Isto é de grande importância porque a tensão da bateria decresce com o tempo. Custo, tamanho e fácil integração são semelhantes ao SPOT. O SPOT utiliza contadores baseados no protocolo I2C. Nesta abordagem, para evitar “overflow”, o mote deve periodicamente efetuar leitura desses contadores e zerá-los. Isto impõe um consumo extra de energia que, no caso de aplicações de muito baixo duty cycle, pode ser negligenciado. Conforme foi apresentado o “runtime energy-measurement setup” interfere o mínimo possível no consumo de energia do mote. O protótipo pode ser montado com baixo custo, pequenas dimensões, proporcionando boa precisão dentro de toda a faixa dinâmica típica dos motes. Este é a primeira abordagem de medição de energia de WSN que considera a tensão de alimentação variável. A montagem pode ser facilmente adaptada para outras plataformas de RSSF e futuros trabalhos serão focados na redução do consumo do protótipo e a integração das informações de consumo para utilização em protocolos e aplicações de RSSF. 3.4 3.4.1 Energy Measurements for MicaZ Node Introdução Dispositivos móveis são geralmente alimentados a baterias. Fabricantes de baterias recarregáveis especificam a capacidade da célula que é avaliada utilizando medições com uma carga fixa. Para baterias de polímeros de lítio esta carga é relativamente alta comparada com o consumo de um dispositivo “low-power”. A capacidade da bateria depende principalmente da tensão mínima operacional necessária para o funcionamento do dispositivo, a corrente e a temperatura. Para determinar o perfil do consumo de um dispositivo alimentado a bateria deve-se considerar dois itens importantes: a capacidade real e o consumo de energia do dispositivo móvel. O microcontrolador que faz parte do dispositivo pode operar no modo “idle”, “sleep” ou algum outro modo de economia de energia. Isto implica em variações no perfil do consumo de energia do equipamento. O consumo de energia é alto se o dispositivo não faz uso do modos de economia de energia. O microcontrolador do MICAz dispõe de seis modos diferentes de economia de energia. A transição dos modos ocasionam alguns efeitos importantes como por exemplo: desligar o oscilador principal da CPU, desabilitar “timers” ou interrupções externas. 3.4.2 Medições de uma bateria de polímero de lítio (LiPo) Para muitas aplicações é necessário saber quando a capacidade da bateria está abaixo de um certo nível. Se a bateria estiver no limite de sua carga, uma mensagem de alerta pode ser sinalizada ou o dispositivo poderá desligar-se automaticamente. A escolha da Lithium Polymer Battery (LiPo) foi idealizada porque os dispositivos móveis devem possuir fontes de energia de baixo peso e alta densidade energética. Para baterias de LiPo há
  60. 60. 41 poucas curvas de demonstração da descarga e, na maioria das vezes, são correntes com níveis múltiplos da capacidade. A razão disso é que estes modelos de bateria são muito utilizados em aeronaves onde há um alto consumo de corrente. Para o experimento foi utilizada uma bateria recarregável de LiPo fabricada pela Kokam[1] com uma capacidade nominal de 1.5Ah e uma tensão de 3.7V. A bateria foi descarregada por uma corrente constante de 37.8mA circulando através de um conversor DC-DC e um resistor. Os valores foram obtidos através de um osciloscópio. O resultado do experimento é mostrado através da Figura 3.11. O eixo X compreende do tempo em unidade de 30 segundos e o eixo Y expõe a tensão da bateria e a saída do conversor DC-DC. A primeira seção da curva, com 250 unidades de tempo, decresce mais rapidamente que a seção do meio. Nas duas primeiras seções, a relação entre a tensão e o tempo são praticamente lineares. Somente na última seção, cerca de 3250 unidades de tempo, a tensão diminui abruptamente em um curto período de tempo até o ponto de total descarga t=3816. Figura 3.11: Descarga de uma bateria de LiPO a 37.8mA. A capacidade utilizável da bateria pode ser calculada através da seguinte Equação 3.6. 3816.30s s × 37.8mA = 1202mAh 3600 h (3.6) Um dos resultados importantes neste experimento é que a tensão varia com a descarga da bateria. 3.4.3 Medições em um MICAz 3.4.3.1 Microcontrolador ATMEGA128L A avaliação do tempo de operação de um nodo MICAz tem como requisito a obtenção de medidas exatas do consumo de energia do dispositivo. O MICAz consiste de um microcontrolador[24], um transceptor de rádio[31], três LED´s e alguns poucos componentes que não são relevantes citar nesta seção. Todos os componentes citados podem ser ligados e desligados ou migrar para algum mecanismo de economia de energia. O consumo de energia está presente nos “datasheets” da maioria desses componentes eletrônicos. A soma do consumo, especificado nos “datasheets”, pode diferir de um valor

×