300 likes | 487 Views
TinyOS. Guilherme Frederico Rohde Leonel Pablo Tedesco Sistemas operacionais embarcados. Roteiro. Motivação Características de redes de sensores Arquitetura de um sensor TinyOS Referências. Motivação. Sensores Detecção de luz, movimento, propriedades químicas, ruídos, pressão...
E N D
TinyOS GuilhermeFrederico Rohde Leonel Pablo Tedesco Sistemas operacionais embarcados
Roteiro • Motivação • Características de redes de sensores • Arquitetura de um sensor • TinyOS • Referências
Motivação • Sensores • Detecção de luz, movimento, propriedades químicas, ruídos, pressão... • Tempo de vida • Requisito essencial: Confiabilidade • Redes de sensores
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
Arquitetura de um sensor • MCU • LED´s • Sensor de temperatura • Sensor de Luz • Rádio • Porta serial • Co-processador
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
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
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)
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
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
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
TinyOS • Sistema operacional projetado especificamente para redes de sensores • Modelo de programação baseado em componentes, oferecido pela linguagem nesC, um dialeto de C
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
TinyOS • Sistema operacional basicamente consiste de: • um pequeno escalonador • grafo de componentes
TinyOS • Componentes • tratadores de comandos • tratadores de eventos • frames de tamanho fixo • Tasks (tarefas)
TinyOS • Frames • Estrutura de variáveis acessadas pelo componente ao qual ele pertence
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
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
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
TinyOS • componentes são divididos em três categorias: • abstrações de hardware • hardware sintético • componentes de software em alto nível
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)
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
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
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.