Sistema Operacional YATOS para Redes de Sensores sem

Propaganda
Sistema Operacional YATOS para Redes de Sensores sem Fio
Vinı́cius C. de Almeida1 , Luiz F. M. Vieira1 , Breno A. D. Vitorino1 ,
Marcos A. M. Vieira1 , José A. Nacif1 , Antônio O. Fernandes1 ,
Diógenes C. da Silva2 , Claudionor N. Coelho Jr1
1
Departamento de Ciência da Computação – Universidade Federal de Minas Gerais
Av. Antônio Carlos, 6627 – 31270-010, Belo Horizonte/MG
2
Departamento de Engenharia Elétrica – Universidade Federal de Minas Gerais
Av. Antônio Carlos, 6627 – 31270-010, Belo Horizonte/MG
{makish, vitorino, lfvieira, mmvieira, jnacif, otavio, coelho}@dcc.ufmg.br
[email protected]
Abstract. This paper describes YATOS , an operating system developed for sensor nodes of wireless sensor networks (WSN). A sensor node is a computing
device with limited communication, sensing and processing capability. YATOS
maps events and tasks, it is event-driven and it provides an application programming interface (API). We present the related works in the area that helped
designing the new system, which is also described in this paper.
Resumo. Este artigo descreve o YATOS , um sistema operacional desenvolvido
especificamente para nós sensores de redes de sensores sem fio (RSSF). Um
nó sensor é um pequeno dispositivo computacional com capacidades limitadas
de comunicação, sensoriamento e processamento. O YATOS atende aos requisitos impostos pelas RSSFs, mapeia eventos em tarefas, é dirigido por eventos e
fornece uma interface de programação de aplicativos (API). Apresentamos os
trabalhos relacionados na área que ajudaram a projetar o novo sistema, o qual
também é descrito neste artigo.
1. Introdução
Redes de sensores [10] são formadas por milhares de pequenos dispositivos, aqui denominados nós, dotados de capacidade de armazenamento, processamento, comunicação
e sensoriamento. Esses nós têm fortes restrições quanto à memória, capacidade de
processamento e principalmente energia, sendo desejável que possuam mecanismos de
autoconfiguração e adaptação devido a problemas como falha de comunicação e perda de
nós. Nessa rede, cada nó pode ser equipado com diferentes sensores, dada a natureza dos
aplicativos executados nele, tais como: temperatura, pressão, etc.
Nós sensores podem ser usados para monitoração contı́nua, detecção de eventos,
localização e controle local de atuadores. As áreas de aplicação das RSSFs são proeminentes e se destacam a área militar, meio-ambiente, saúde, automação residencial,
monitoração de estruturas e aplicações comerciais.
RSSFs possuem recursos limitados, sendo energia o mais importante desses. Cada
nó sensor possui uma fonte de energia, que em geral é uma bateria com capacidade limitada. É praticamente inviável recarregar manualmente todas as baterias, uma vez que
RSSFs são compostas por milhares de nós sensores e, além disso, estes podem estar em
locais inacessı́veis. Dessa forma, o foco de projeto em RSSFs, do hardware aos protocolos
de redes, é o uso eficiente de energia.
Devido às caracterı́sticas dos nós e da própria rede de sensores, algumas questões
devem ser consideradas no projeto de um sistema operacional:
• dadas suas limitações de memória, os nós não podem armazenar todos os aplicativos em sua memória local, sendo desejável que possuam um mecanismo para que
novos aplicativos sejam transferidas de um nó para outro;
• deve-se fornecer também algum suporte à execução concorrente de aplicativos em
um nó;
• a quantidade de nós em uma dada rede de sensores pode ser muito grande, tornando difı́cil a configuração manual de cada nó individual;
Devido às limitações quanto ao consumo de energia e capacidade computacional
limitada dos nós, torna-se indispensável o uso eficiente de seus recursos. Dessa forma,
um sistema operacional projetado especificamente para atender a esses requisitos pode
oferecer maior tolerância a falhas, bem como economia de energia e facilidade de desenvolvimento de aplicações. Ele deve ser pequeno para caber na memória, consumir pouca
energia, executar sem bloqueio e ser voltado para sistemas distribuı́dos. Este trabalho
apresenta como contribuição o primeiro sistema operacional brasileiro voltado especificamente para RSSFs.
Este artigo está organizado da seguinte forma. A seção 2 descreve brevemente
rede de sensores sem fio. A seção 3 apresenta os trabalhos relacionados, a seção 4 mostra
as caracterı́sticas do YATOS e a seção 5 os trabalhos futuros e conclusão.
2. Redes de Sensores Sem Fio
Redes de Sensores Sem Fio são redes ad-hoc formadas por nós sensores e por pelo menos
um ponto de comunicação denominado estação-base. O objetivo destas redes é coletar
informação. Usualmente, não possuem infra-estrutura pré-estabelecida, como ocorre com
redes de celulares ou redes locais sem fio.
2.1. Aplicações
Redes de Sensores Sem Fio tem o potencial de serem aplicadas em várias áreas. RSSFs
permitem monitorar uma grande variedade de condições ambientais que incluem: temperatura, umidade, movimentos veiculares, condições de iluminação, pressão, nı́vel de
ruı́do, presença ou ausência de certos tipos de objetos, nı́vel de estresse mecânico em
objetos atachados, caracterı́sticas correntes como velocidade, direção e tamanho de um
objeto.
Nós sensores podem ser usados para monitoração contı́nua, detecção de eventos,
localização e controle local de atuadores. As áreas de aplicação das RSSFs são proeminentes e se destacam a área militar, meio-ambiente, saúde, automação residencial,
monitoração de estruturas e aplicações comerciais.
Podemos citar algumas aplicações de meio-ambiente de redes de sensores.
Elas incluem o rastreamento do movimento dos pássaros, pequenos animais, e insetos; monitoração de condições ambientais que afetam colheitas e plantio; irrigação;
detecção de componentes quı́micos ou biológicos; agricultura de precisão; monitoração
da água, solo e atmosfera; detecção de incêndio em florestas; pesquisa meteorológica ou
geofı́sica; detecção de inundação; mapeamento da bio-complexidade ambiental e estudo
da poluição.
3. Trabalhos relacionados
Para atender às necessidades de dispositivos com severas restrições quanto ao consumo de
energia, espaço em memória e poder computacional, já foram propostos e/ou desenvolvidos diferentes SOs, que utilizam diferentes abordagens ao problema. Sistemas baseados
em Linux, tal como µClinux, não se mostraram adequados para RSSFs, pois são voltados
para sistemas embutidos com maior capacidade computacional (i.e. memória, bateria,
processador). Os sistemas descritos a seguir atendem algumas das demandas especı́ficas
de RSSFs.
3.1. EYES-PEEROS
EYES [5] é um projeto desenvolvido na Universidade de Twente - Holanda. Seu funcionamento baseia-se nos seguintes princı́pios: operação dirigida por eventos, divisão da
execução em tarefas e separação de funcionalidades correlatas em unidades distintas.
Uma primeira iniciativa de implementar o SO do projeto EYES é o sistema PEEROS (Preemptive Eyes Real Time Operating System) [9]. Seus elementos principais são
descritos abaixo:
• Escalonamento de tarefas: sistema dirigido por eventos, com polı́tica de escalonamento preemptiva.
• Sistema de mensagens: comunicação entre os componentes do SO e entre os nós
sensores.
• Gerente de módulos: armazena módulos executáveis, não usados, na memória
externa (EEPROM) e os carrega no nó sensor sob demanda.
• “Shell” de comandos: conectado à interface serial do nó, permite a um usuário
digitar comandos e receber respostas do nó sensor (quando este estiver ligado à
porta serial de um computador pessoal).
3.2. SensorWare
Desenvolvido na Universidade da Califórnia, SensorWare [1] é um arcabouço para RSSFs.
Suas caracterı́sticas principais são: mobilidade de código através de scripts móveis e
separação de funcionalidades correlatas em unidades distintas.
Scripts móveis são entidades do SensorWare que podem se deslocar de um nó
para outro numa RSSF. Executam até um certo ponto num nó e, ao transferir-se para
outro, continuam a execução a partir de pontos de entrada bem definidos. A maioria dos
comandos e funções são agrupadas em APIs distintas. Elas possuem funcionalidades que
fornecem acesso a um recurso ou serviço do nó sensor.
3.3. Bertha
Bertha OS [8] é um sistema operacional para a arquitetura de hardware Pushpin [2](redes
de sensores com fio e com nós idênticos). Desenvolvido no MIT Media Lab, seu modelo
de programação é baseado em um sistema de agentes móveis [7] muito simples, com três
componentes: fragmentos de processos (PFrags), um sistema de quadro de boletins (BBS)
e um vigia de vizinhança (NW).
Fragmentos de processos, ou PFrags, são entidades de programação autônomas e
móveis, escritas em C, que podem interagir com seu ambiente local, podendo migrar de
um nó para outro. Para isso, eles possuem código executável e estado persistente e podem
se comunicar através do BBS do nó. Um sistema de quadro de boletins, ou BBS, está disponı́vel para os PFrags em cada nó da rede. Ele é usado para permitir a comunicação entre
PFrags, que postam mensagens nele. Sinopses do BBS dos nós vizinhos são espelhados
no vigia de vizinhança, ou NW, do nó local. Quando um PFrag posta alguma mensagem
em um BBS, aquele pode escolher que uma sinopse daquela postagem esteja disponı́vel
no NW de todos os nós vizinhos. Infelizmente, PFrags não são flexivéis, limitando o
tamanho de código dos programas.
3.4. TinyOS
Desenvolvido na UC Berkeley e ativamente utilizado por uma grande comunidade de
usuários, TinyOS [6] é um escalonador de eventos que provê execução concorrente para
redes de sensores embutidos, com recursos de hardware escassos usando a arquitetura
Motes [3]. As caracterı́sticas relevantes do TinyOS são sua arquitetura e seu modelo de
concorrência, os quais são brevemente descritos a seguir.
3.4.1. Arquitetura baseada em componentes
Todo aplicativo possui pelo menos um arquivo de configuração e um de implementação.
O primeiro especifica o conjunto de componentes do aplicativo e como eles se invocam.
No segundo estão listadas as interfaces fornecidas e as usadas por um componente.
Um aplicativo usa um ou mais componentes, sendo possı́vel reutilizar alguns componentes mais simples para criar outros mais elaborados. Isso cria uma hierarquia de
camadas, na qual componentes em nı́veis altos na hierarquia originam comandos para
componentes em nı́veis baixos. Estes, por sua vez, sinalizam eventos para aqueles.
3.4.2. Modelo de concorrência baseado em eventos
Concorrência é obtida através do uso de eventos e tarefas, usando escalonamento em dois
nı́veis. No nı́vel de mais baixa prioridade estão as tarefas e no de mais alta estão os
eventos.
Tarefas de um componente são atômicas entre si, executando até seu término, mas
podem ser preemptadas por eventos externos. Podem executar comandos de componentes
em nı́veis baixos na hierarquia, sinalizar eventos para componentes em nı́veis altos e
agendar a execução de outras tarefas em um componente. Eventos são generalizações de
tratadores de interrupção, propagando processamento para cima na hierarquia (através da
sinalização de outros eventos) ou para baixo (por meio da execução de comandos). São
executados quando sinalizados, preemptando a execução de uma tarefa ou outro evento.
4. Caracterı́sticas do YATOS
Esta seção descreve o sistema operacional desenvolvido, o hardware utilizado, bem como
suas principais estruturas e funcionalidades.
Na seção 3, pôde ser visto que existem diferentes sistemas operacionais que podem ser aplicáveis ao paradigma de RSSFs. No entanto, há algumas caracterı́sticas que
não são encontradas em nenhum deles ao mesmo tempo:
Ser dirigido por eventos: Um sistema dirigido por eventos, pode entrar no modo de menor consumo de energia sempre que possı́vel. Além disso, elimina a espera ocupada. A tarefa esperando por algum recurso, ao invés de realizar espera ocupada,
pode “dormir” e ser acordada por um evento que notifica a liberação do recurso.
Conforme [11], um sistema dirigido por eventos chega a economizar até 12 vezes
mais energia que um sistema tradicional e propósito geral.
Ocupar pouca memória de um nó sensor: O hardware de um nó sensor possui
memória limitada. Neste espaço, além do código do sistema operacional, tem
o código das aplicações e os dados coletados. Por isso, o espaço ocupado pelo
sistema operacional deve ser o menor possı́vel.
Consumir pouca energia: Energia é um recurso precioso em uma Rede de Sensores
Sem Fio e seu consumo deve ser eficiente. O sistema operacional deve, sempre
que possı́vel, minimizar o consumo de energia dos componentes. Por exemplo,
quando apenas uma computação estiver sendo realizada, o rádio pode ser colocado no modo de mais baixo consumo de energia de modo que não interfira na
computação sendo realizada. A eficiência de uma rede de sensores depende da
aplicação desta. O sistema operacional deve prover os mecanismos, como permitir o processador mudar de modo de operação de energia, para que a aplicação
possa gerenciar a rede eficientemente.
Oferecer multi-tarefa baseada em prioridade: Pode ser necessário que mais de uma
tarefa execute em um mesmo dado intervalo de tempo. Ainda mais, elas podem
ter prioridades diferentes e/ou terem que ser executadas em uma ordem especı́fica
(neste caso, a elas são atribuı́das prioridades que forcem a execução na ordem
definida).
O sistema operacional deve ser modular: Um sistema modular facilita a manutenção
e o desenvolvimento de novos componentes. Além disso, componentes não necessários podem ser excluı́dos.
O sistema operacional deve ser fácil de usar: A facilidade de uso é um requisito importante. De nada adianta um sistema operacional que ninguém consegue usar
ou integrar com a sua aplicação. Além disso, o tempo gasto para aprender a usálo não deve atrapalhar o tempo de desenvolvimento da aplicação. Nem mesmo o
tempo necessário para aprender uma nova linguagem de programação e paradigma
de programação. Por esta razão, YATOS foi desenvolvido em C, uma linguagem de
programação bem difundida entre programadores e desenvolvedores de sistemas
embutidos. Para os casos em que eficiência era requerida e o código não estaria
visı́vel externamente, o desenvolvimento foi feito em linguagem de máquina.
4.1. Hardware
A arquitetura de sistema de um nó sensor genérico é formada por 4 componentes principais: suprimento de energia, comunicação, unidade de processamento e sensores. O
bloco de suprimento de energia consiste, geralmente, de uma bateria, tendo como objetivo suprir o nó com a energia necessária. O bloco de comunicação é constituı́do de
canal de comunicação sem fio, comumente um rádio de curto alcance. A unidade de processamento é formada pelos componentes de memória e um processador. A memória é
usada para armazenar dados e aplicativos, enquanto o microcontrolador executa os aplicativos, além de usar ADCs para converter sinais analógicos para digitais, advindos do
bloco sensor. Um esquema dessa arquitetura pode ser visto na figura 1.
O YATOS foi inicialmente desenvolvido para o nó sensor BEAN, do projeto SensorNet [15, 14], mostrado na figura 2. Ele usará um rádio CC1000 [4] e um microcontrolador
TI MSP430F149 [12]. O rádio dispõe de freqüência programável (300 - 1000 MHz) com
granularidade de 250 Hz, baixo consumo de corrente (Rx: 7,4 mA) e baixa tensão (2,1 3,6 V).
O microcontrolador escolhido usa uma arquitetura RISC de 16 bits, dispondo de
2 KB de RAM para armazenar dados e 60 KB + 256 B de memória Flash para armazenar
código e constantes. Possui 6 modos de operação: 1 modo ativo (AM) e 5 modos de baixo
consumo de energia (LPM0, LPM1, LPM2, LPM3 e LPM4). Os modos de baixo consumo
Figura 1: Componentes de um nó
sensor.
Figura 2: Foto do BEAN.
desligam a unidade central de processamento (CPU) e certas partes do microcontrolador.
Através da escolha do modo de operação, pode-se configurar o microcontrolador para
consumir apenas a energia necessária para seu funcionamento. Por exemplo: quando
houver tarefas para executar no escalonador, o sistema se encontrará ativo; mas quando
não houver mais tarefas para executar num dado momento, o microcontrolador entra em
modo de economia de energia, apenas aguardando a ocorrência de algum evento. Como
pode ser observado na figura 3, o modo mais econômico é o LPM4, mas este não é usado
por desligar alguns periféricos utilizados pelo sistema. Para saber mais sobre os modos
de operação, vide [13].
Outras caracterı́sticas relevantes do microcontrolador:
• temporizadores programáveis;
• conversores ADC de 12 bits, que possibilitam converter sinais do ambiente para
sinais digitais;
• comparadores que podem comparar valores lidos com um certo limiar e avisar
quando este for ultrapassado.
Por fim, cada nó sensor possui um chip identificador, que armazena o número do nó na
rede de sensores.
4.2. Princı́pios de funcionamento
O YATOS utiliza o termo tarefa para descrever um trecho de código executável. Normalmente, haverá muitas tarefas para serem executadas, sendo necessário que haja um
escalonador de tarefas para decidir a ordem de execução. Foi escolhida a polı́tica de escalonamento cooperativa, na qual as tarefas, quando de posse do processador, decidem
quando liberá-lo para a execução de outras. No caso especı́fico do YATOS , isso ocorre
quando a tarefa encerra sua execução em resposta a um dado evento. O escalonamento
cooperativo foi escolhido devido às suas seguintes vantagens em relação ao modo preemptivo:
• uma tarefa nunca é interrompida inesperadamente;
Figura 3: Consumo de corrente nos diferentes modos de operação.
• implementação mais simples, pois não há salvamento de contexto, economizandose energia, memória e processamento.
O YATOS é dirigido por eventos. Isso significa que as tarefas criadas pelo programador vão executar em resposta a eventos do sistema e este estará em modo de operação
ativo. Quando o escalonador de tarefas estiver vazio, o sistema entrará no modo de economia de energia.
4.3. Eventos
Eventos são interrupções que, quando tratadas por um manipulador, colocarão as tarefas
que aguardam sua ocorrência no escalonador de tarefas, para serem executadas em ordem decrescente de prioridade. Os eventos válidos do YATOS são eventos que identificam
a recepção de dados via rádio, notificação de término de conversão da leitura do sensor ligado em ADC, notificação do sensor de ultrapassagem de limiar e temporizadores.
Cabe salientar que o YATOS é um SO de requisitos de tempo real fracos (soft real-time
requirements).
4.4. Perı́odos de eventos
Eventos no YATOS podem ser classificados, de acordo com a freqüência com que são
executados, em 3 tipos:
Aperiódicos: ocorrem sem o uso de temporizadores, através do disparo de interrupções
pelo hardware.
Periódicos: ocorrem em intervalos de tempo definidos, sendo necessário o uso de
temporização.
“Tiro único”: são eventos programados para ocorrer uma única vez, sendo posteriormente removidos da lista de eventos do sistema. Também necessitam de
temporização.
4.5. Lista de tarefas
A lista de tarefas é um tipo abstrato de dados (TAD) responsável por armazenar todas
as tarefas declaradas pelo programador. Através dela podem ser criadas novas tarefas,
efetuar buscas por uma tarefa, alterar seus dados, e por fim destruir tarefas.
4.6. Lista de eventos
A lista de eventos é um TAD que contém listas de tarefas para cada evento válido do
sistema. Quando são atribuı́dos eventos à uma tarefa, esta é copiada para a lista de tarefas do evento correspondente. Após ocorrer um certo evento, todos as tarefas na lista
correspondente são então copiadas para o escalonador de tarefas.
4.7. Escalonador de tarefas
O escalonador de tarefas é um TAD implementado com uma fila de prioridades. As
tarefas são executadas em ordem decrescente de prioridade, uma de cada vez, até seu fim
(escalonamento cooperativo), sendo então removidas do escalonador. Associado a cada
evento, existe um conjunto de tarefas que podem ser postas na fila do escalonador quando
o evento ocorre, confome mostra a figura 4.
4.8. Rotinas para o programador
Foram desenvolvidas diferentes APIs de serviços para uso do microcontrolador e seus
recursos, além de seus periféricos. A API Tarefas é responsável pela criação de tarefas,
sua postagem e atribuição de eventos a elas. Rádio permite o envio e a recepção de dados
Tarefas
T1
T2
T3
Lista de
Eventos
Ei
Ti
Ei
Evento
Interrupção
Hardware
Figura 4: Lista de tarefas associadas a eventos.
através do rádio, configurar seu alcance e modo de operação. A API Sensor permite a
obtenção de leituras dos sensores disponı́veis no nó. Memória possibilita o apagamento,
leitura e escrita da memória Flash. Por fim, a API Microcontrolador provê os seguintes
serviços:
•
•
•
•
•
iniciar componentes de hardware do nó e o sistema operacional;
configurar seu modo de operação;
iniciar e fechar seções crı́ticas (regiões onde as interrupções são desabilitadas);
configurar temporizadores;
informar o identificador de cada nó sensor.
4.9. Exemplo de uso
O código 1 exibe um exemplo de aplicação em C utilizando o YATOS . A inicialização do
hardware, declaração de eventos, declaração de tarefas, associação de eventos a tarefas
e inicialização do SO é feita utilizando a API desenvolvida. Nesse código exemplo são
criadas duas tarefas: a primeira executará apenas quando chamada pela segunda tarefa;
a segunda executará em resposta a recepção de mensagens via rádio ou a eventos de
temporização.
4.10. Estado atual de implementação
O YATOS foi implementado em C, linguagem difundida entre os desenvolvedores de sistemas embutidos. O espaço ocupado em memória da versão atual do YATOS é mostrado na
tabela 1, tendo sido calculado sem considerar otimizações que o compilador pode efetuar.
Memória de código
3.144 bytes
Memória de dados
1.984 bytes
Memória de constantes 530 bytes
Tabela 1: Tabela com consumo de memória do YATOS .
5. Conclusões
Este artigo apresenta como maior contribuição a especificação de requisitos e o desenvolvimento de um sistema operacional especifico para RSSF. Diferentes SOs voltados para
RSSFs foram analisados e é desenvolvido o YATOS , usando um escalonador de tarefas
com polı́tica de escalonamento cooperativa. No paradigma de RSSFs, os componentes
integrantes do nó e suas respectivas restrições computacionais foram responsáveis por
moldar as escolhas de implementação das diferentes funcionalidades.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "SO.h"
// APIs e rotinas do SO.
void rotina1(evento_t evento){
/* Código da rotina (nao mostrado) */
return;
}
void rotina2(evento_t evento){
/* Código da rotina (nao mostrado) */
switch(evento){
case evRADIO:
// dado recebido via rádio.
/* Código (nao mostrado) */
break;
case evTEMPORIZADOR0: // evento de temporização.
/* Código (nao mostrado) */
if(condicao)
Tarefa_Posta("RotinaA"); // Postagem de tarefa.
break;
}
return;
}
void main(){
/* Declaracao de variáveis.*/
id_t id1, id2;
// Inicia dispositivos de hardware.
Microcontrolador_IniciaHardware();
25
/* Declaracao de tarefas.*/
id1 = Tarefa_Declara(&rotina1, 28, "RotinaA");
id2 = Tarefa_Declara(&rotina2, 1, ""); // tarefa anônima.
26
27
28
29
/* Atribuicao de eventos.*/
// aperiodica.
Tarefa_AtribuiEventos(id2, evRADIO, tpdNULO, pdNULO);
// periodica: 200 ms.
Tarefa_AtribuiEventos(id2, evTEMPORIZADOR0, tpdPERIODICO, 200);
30
31
32
33
34
35
Microcontrolador_IniciaSO(); // Inicia o sistema operacional.
36
37
}
Código 1: Exemplo de aplicação usando o YATOS .
A área de pesquisa em RSSFs é uma área muito nova, sendo amplamente pesquisada por instituições de pesquisa no mundo todo. No caso desse projeto, muito trabalho
ainda pode ser feito para extendê-lo e melhorá-lo. Dentre essas melhorias, podem-se citar
as seguintes:
• Otimizar a alocação de memória no YATOS , minimizando o uso de alocação
dinâmica, a fim de usar mais memória Flash e menos memória RAM para armazenar estruturas do YATOS .
• Recurso shell: usando a interface JTAG do nó conectada a um computador pessoal, um programador poderia digitar comandos e receber respostas a esses comandos a partir do nó, tais como: tarefa em execução, nós reconhecidos em sua
vizinhança, etc.
• Mobilidade de código: possibilidade de envio/recepção de código para
reprogramação via rádio dos nós.
6. Agradecimentos
Este trabalho foi parcialmente apoiado pelo CNPq, processos 55.2111/2002-3,
18.0381/2003-2, 18.0380/2003-6 e 830107/2002-9.
Referências
[1] A. Boulis and M. B. Srivastava. A framework for efficient and programmable sensor
networks. In Proceedings of OPENARCH 2002, Junho 2002.
[2] M. Broxton, J. Lifton, D. Seetharam, and J. Paradiso. Pushpin computing system overview: a platform for distributed, embedded, ubiquitous sensor networks. In Pervasive Computing 2002, Agosto 2002.
[3] Alberto Cerpa, Jeremy Elson, Michael Hamilton, Jerry Zhao, Deborah Estrin, and Lewis
Girod. Habitat monitoring: application driver for wireless communications technology. In Workshop on Data communication in Latin America and the Caribbean,
pages 20–41. ACM Press, 2001.
[4] Chipcon.
Smartrf
cc1000
preliminary
datasheet
http://www.chipcon.com/files/CC1000 Data Sheet 2 1.pdf, 2002.
(rev.
2.1),
[5] S. Dulman and P. Havinga. Operating system fundamental for the eyes distributed sensor
network. In Progress 2002, Utrecht - Netherlands, Outubro 2002.
[6] Jason Hill, Robert Szewczyk, Alec Woo, Seth Hollar, David E. Culler, and Kristofer
S. J. Pister. System architecture directions for networked sensors. In Architectural
Support for Programming Languages and Operating Systems, pages 93–104, 2000.
[7] J. Kahn, R. Katz, and K. Pister. Next century challenges: Mobile networking for smart
dust. In ACM MobiCom’99, Agosto 1999.
[8] J. Lifton, D. Seetharam, M. Seltzer, and J. Paradiso. Bertha: The os for pushpin computers. Technical Report, Maio 2002.
[9] Job Mulder. Peeros - preemptive eyes real-time operating system. Technical report, University of Twente, Abril 2003.
[10] L. B. Ruiz, L. H. A. Correia, L. F. Vieira, D. F. Macedo, E. F. Nakamura, C. M. S.
Figueiredo, M. A. M. Vieira, E. H. Bechelane, D. Câmara, A. A. F. Loureiro, J. M. S.
Nogueira, L. B. Ruiz, D. C. da Silva Jr., and A. O. Fernandes. Arquitetura para
redes de sensores sem fio. In Minicursos do XXII Simpósio Brasileiro de Redes de
Computadores, Gramado/RS, Maio 2004.
[11] Roy Sutton Suet-Fei Li and Jan Rabaey. Low power operating system for heterogeneous
wireless communication systems. In Workshop on Compilers and Operating Systems
for Low Power 2001, Setembro 2001.
[12] Texas Instruments.
Mixed signal
s.ti.com/sc/ds/msp430f149.pdf, 2003.
microcontroller
Msp430x1xx family user’s
[13] Texas Instruments.
s.ti.com/sc/psheets/slau049d/slau049d.pdf, 2004.
(rev.
e),
guide,
http://wwwhttp://www-
[14] Luiz Filipe Menezes Vieira. YATOS e WISDOM: Plataforma de Software para Redes de
Sensores sem Fio. Master’s thesis, DCC-UFMG, Belo Horizonte-MG, Brasil, Abril
2004.
[15] Marcos Augusto Menezes Vieira. BEAN: Uma Plataforma Computacional para Redes de
Sensores sem Fio. Master’s thesis, DCC-UFMG, Belo Horizonte-MG, Brasil, Abril
2004.
Download