gaph gaph tinyos guilherme frederico rohde leonel pablo tedesco sistemas operacionais embarcados
TRANSCRIPT
GAPH www.inf.pucrs.br/~gaph
TinyOS
Guilherme Frederico RohdeLeonel Pablo Tedesco
Sistemas operacionais embarcados
GAPH www.inf.pucrs.br/~gaph
Roteiro
• Motivação • Características de redes de sensores• Arquitetura de um sensor• TinyOS• Referências
GAPH www.inf.pucrs.br/~gaph
Motivação
• Sensores– Detecção de luz, movimento, propriedades
químicas, ruídos, pressão...– Tempo de vida– Requisito essencial: Confiabilidade
• Redes de sensores
GAPH www.inf.pucrs.br/~gaph
Rede de sensores
GAPH www.inf.pucrs.br/~gaph
Características de um sensor
• Pequeno tamanho físico e baixo consumo de potência
• Operações com alto grau de concorrência• Paralelismo físico limitado e controle de hierarquia• Diversidade de projeto e uso• Robustez
GAPH www.inf.pucrs.br/~gaph
Arquitetura de um sensor
• MCU• LED´s• Sensor de temperatura• Sensor de Luz• Rádio• Porta serial• Co-processador
GAPH www.inf.pucrs.br/~gaph
Arquitetura de um sensor
GAPH www.inf.pucrs.br/~gaph
Arquitetura de um sensor
• MCU (ATMEL AT90LS8535)– barramento de 8-bits – endereçamento de 16-bits– 32 registradores de propósito geral de 8-bits – 4 MHz e 3.0V– 8 KB de memória flash para memória de programa – 512 bytes para memória de dados
GAPH www.inf.pucrs.br/~gaph
Arquitetura de um sensor
• LED´s– Representam saídas conectadas através de portas
de input/output– Podem ser usados para mostrar valores de status
GAPH www.inf.pucrs.br/~gaph
Arquitetura de um sensor
• Rádio (RF Monolithics 916.50 MHz TR1000)– dispositivo de input/ouput assíncrono com restrições
hard real-time– consiste de transceptor, antena e componentes para
configuração de potência de sinal e sensibilidade– sinais de controle para configurar o modo de
operação (transmissão, recepção, ou desligado)
GAPH www.inf.pucrs.br/~gaph
Arquitetura de um sensor
• Sensor de temperatura (Analog Devices AD7418)– Conversores A/D– Utilização do barramento I2C– Até oito dispositivos podem ser conectados ao
barramento serial, cada um com um único ID
GAPH www.inf.pucrs.br/~gaph
Arquitetura de um sensor
• Porta serial – Processa dados em nível de bit em modo assíncrono– utiliza pinos de input/output conectados a um
controlador UART
GAPH www.inf.pucrs.br/~gaph
Arquitetura de um sensor
• Co-processador (AT90LS2343) – Tem a função de reprogramar o microcontrolador
principal a partir de dados oriundos da rede – Pode ser usado pelo processador principal como
dispositivo extra de armazenamento– Conectado a um controlador SPI (canal de dados
serial síncrono)– Processa dados em nível de bit em modo assíncrono– 2 KB de memória de instrução flash, 128 bytes de
SRAM e EEPROM
GAPH www.inf.pucrs.br/~gaph
TinyOS
• Sistema operacional projetado especificamente para redes de sensores
• Modelo de programação baseado em componentes, oferecido pela linguagem nesC, um dialeto de C
GAPH www.inf.pucrs.br/~gaph
TinyOS
• Objetivos– Atender a requisitos de redes de sensores que
utilizam a plataformas similares a descrita anteriormente
– Gerenciar a capacidade do hardware de maneira eficiente
– Oferecer suporte a operações com alto grau de concorrência
– Modularidade– Robustez
GAPH www.inf.pucrs.br/~gaph
TinyOS
• Sistema operacional basicamente consiste de:– um pequeno escalonador – grafo de componentes
GAPH www.inf.pucrs.br/~gaph
TinyOS
• Componentes– tratadores de comandos – tratadores de eventos– frames de tamanho fixo– Tasks (tarefas)
GAPH www.inf.pucrs.br/~gaph
TinyOS
• Frames– Estrutura de variáveis acessadas pelo componente
ao qual ele pertence
GAPH www.inf.pucrs.br/~gaph
TinyOS
• Comandos– requisições para componentes em nível mais baixo– os parâmetros de comando são armazenados no
frame do componente que realizou a requisição e é criada uma tarefa pra a execução do comando
– deve haver um retorno da chamada ao comando indicando o sucesso ou não da operação
GAPH www.inf.pucrs.br/~gaph
TinyOS
• Eventos– interrupções provocadas por componentes de nível
de abstração inferior– sinalização do término do serviço solicitado através
de um comando e retorno do resultado da operação
GAPH www.inf.pucrs.br/~gaph
TinyOS
• Tasks– operações que, uma vez iniciadas, precisam ser completadas
(run-to-completion)– possuem tamanho atômico (por poderem ser preemptados por
eventos)– enviam comandos para componentes de nível mais baixo– sinalizam eventos para componentes de nível mais alto– Podem chamar outras tarefas dentro de um componente– tasks são enfileiradas e executadas segundo o algoritmo FIFO
GAPH www.inf.pucrs.br/~gaph
TinyOS
GAPH www.inf.pucrs.br/~gaph
TinyOS
• componentes são divididos em três categorias:– abstrações de hardware– hardware sintético– componentes de software em alto nível
GAPH www.inf.pucrs.br/~gaph
TinyOS
• Abstrações de hardware – modelam hardware físico em um modelo de
componentes – RFM: exporta comandos para manipular pinos de input/output individuais conectados ao transceptor RFM e envia eventos informando outros componentes sobre a transmissão e recepção de bits
– seu componente possui um frame informando seu estado corrente (que pode ser o modo de operação, transmissão ou recepção, taxa de envio de bits, etc)
GAPH www.inf.pucrs.br/~gaph
TinyOS
• Hardware sintético • Radio Byte
– envia ou recebe dados do modulo RFM e sinaliza quando o byte inteiro foi completo
– tarefas internas simplesmente codificam ou decodificam os dados
– possui interface e funcionalidade similares aos do UART (interface entre a serial e o barramento do microprocessador): oferece os mesmos comandos e sinaliza os mesmos eventos, lidam com dados de mesma granularidade e realizam internamente tarefas semelhantes
GAPH www.inf.pucrs.br/~gaph
TinyOS
• software de alto nível – realizam controle, roteamento e transformações
de dados – exemplo modulo de mensagem: realiza a função
de preencher buffers para transmissão de pacotes e despacha mensagens recebidas para seu lugar apropriado
– exemplo: módulos de calculo de dados ou gravação de dados
GAPH www.inf.pucrs.br/~gaph
TinyOS
GAPH www.inf.pucrs.br/~gaph
TinyOS
GAPH www.inf.pucrs.br/~gaph
PERGUNTAS ???
GAPH www.inf.pucrs.br/~gaph
Bibliografia
• J. Hill, R. Szewczyk, A. Woo, S. Hollar, D. E. Culler, and K. S. J. Pister. “System Architecture Directions for Networked Sensors”. ACM,In Architectural Support for Programming Languages and Operating Systems, pages 93–104, 2000.
• S. Coleri, M. Ergen, T. John Koo.“Lifetime Analysus of Sensor Networks with Hybrid Automata Modelling” ACM, WSNA´02, september 28,pages 98-104, 2002.
• D. Gay, M. Welsh, P. Levis, E. Brewer, R. von Behren, D. Culler.“The nesC Language: A Hostlistic Approach to Networked Embedded Systems”. ACM, PLDI´03, june 9-11,pages 1-11 2003.
• P. Levis, N. Lee, M. Welsh, D. Culler.”TOSSIM: Accurate and Scalable Simulation of Entire TinyOS Applications”. ACM, SenSys´03, november 5-7, pages 126-137, 2003.
• TinyOS is available at http://webs.cs.berkeley.edu.