Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Real Time, Teses (TCC) de Informática

TCC de pós graduação em engenharia de sistemas

Tipologia: Teses (TCC)

2016

Compartilhado em 30/03/2016

Luiz_Antonio_Vargas_Pinto
Luiz_Antonio_Vargas_Pinto 🇧🇷

1 documento

1 / 41

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
ESCOLA SUPERIOR ABERTA DO BRASIL - ESAB
CURSO DE PÓS-GRADUAÇÃO LATO SENSU EM
ENGENHARIA DE SISTEMAS
LUIZ ANTONIO VARGAS PINTO
SISTEMA DE TEMPO REAL EM AMBIENTE DE
MICROCONTROLADORES
VILA VELHA (ES)
2013
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29

Pré-visualização parcial do texto

Baixe Real Time e outras Teses (TCC) em PDF para Informática, somente na Docsity!

ESCOLA SUPERIOR ABERTA DO BRASIL - ESAB

CURSO DE PÓS-GRADUAÇÃO LATO SENSU EM

ENGENHARIA DE SISTEMAS

LUIZ ANTONIO VARGAS PINTO

SISTEMA DE TEMPO REAL EM AMBIENTE DE

MICROCONTROLADORES

VILA VELHA (ES)

LUIZ ANTONIO VARGAS PINTO

SISTEMA DE TEMPO REAL EM AMBIENTE DE

MICROCONTROLADORES

Monografia apresentada ao Curso de Pós-Graduação em Engenharia de Sistemas da Escola Superior Aberta do Brasil como requisito para obtenção do título de Especialista em Engenharia de Sistemas, sob orientação da Profª. Janaina Costa Binda

DEDICATÓRIA

A minha esposa pela paciência em todos os momentos que me abstive de meus deveres para com a família durante os estudos e àqueles que direta ou indiretamente contribuíram para a realização deste trabalho.

AGRADECIMENTO

A Deus em primeiro lugar, a minha família pela paciência e a todos os professores da ESAB que me apoiaram e esclareceram dúvidas com paciência. Também agradeço aqueles heróis anônimos que liberam o uso de software a todos aqueles que queiram aprender. Um agradecimento ao Prof. Caribe Zampirolli de Souza e a profª Janaina Costa Binda pela paciência, apoio e o voto de confiança.

RESUMO

O presente trabalho visa desenvolver um sistema RTC - Real Timer Clock em equipamentos de controle de processos com microcontroladores da família ATMEL (AT89S8253). E para isto pretende-se estudar um processo industrial para compreender como um sistema de tempo real deve se adequar a essa realidade; Estudar um tempo de latência seguro, uma vez que o sistema operacional deve comportar com margem segura os tempos das grandezas envolvidas; Desenvolver o protótipo de um Sistema Operacional de Tempo Real para atender o processo e o controle local do dispositivo e avaliar seu desempenho. Como resultado deste processo, espera-se melhorar o uso dos recursos do microcontrolador e a forma como programadores interagem com a realidade de processos.

Palavras-chave: microcontrolador. sistema operacional. tempo-real

SUMÁRIO

    1. INTRODUÇÃO
  • 2 HISTÓRICO
    1. MICROCONTROLADORES
    1. O PROCESSO INDUSTRIAL
    1. SISTEMAS DE TEMPO REAL
    1. ESTRUTURA DO SISTEMA DE TEMPO REAL
    • 6.1. BLOCO DE CONTEXTO DAS TAREFAS
      • DE TEMPO REAL 6.2. FUNCIONAMENTO DINÂMICO DO SISTEMA
    • 6.3. O NÚCLEO DO SISTEMA DE TEMPO REAL – NTR
    • 6.4 ESTRUTURA DE SOFTWARE DO NTR.....................................
    1. CONSIDERAÇÕES FINAIS
    1. REFERÊNCIAS
    1. APÊNDICES

9

Além disso, os processos industriais solicitam atendimento em tempo real o que gera uma ampla necessidade de comunicação serial para distribuir microcontroladores em todo o processo com atuação localizada.

Os estudos demonstram que tarefas sequenciais típicas dos sistemas operacionais em time sharing – introduzidas pela Control Data Corporation (SCOPE OS) nos anos 60, para processamento em batch e que posteriormente desenvolveu o MACE OS para time sharing – não são adequadas em processos que se comportam de forma aleatória em suas solicitações de atendimento.

O objetivo deste trabalho é desenvolver um estudo e um protótipo de Sistema Operacional em tempo Real para ser utilizado em equipamentos gerenciados por microcontroladores tornando-o apto a atender mais de um único processo ou ao menos, pelo fato de gerenciar recursos, desenvolver uma nova forma de programar que possibilite aos programadores uma forma mais rígida e organizada de processamento.

Para tal será feito um estudo sobre as partes que envolvem o processo tais como o históricos de microprocessadores, microcontroladores, sistemas operacionais em tempo real, controle e respostas de processos e estudo dos tempos e seus efeitos sobre o comportamento do núcleo de tempo real.

2. TEORIA

2.1. HISTÓRICO

Desde a invenção do computador nos anos 40 pela equipe do Dr. John Von Neumman, o ENIAC^1 , muito se discute sobre como e qual a melhor maneira de programa-lo (VALLE). Ou melhor ainda, sobre como este terá controle sobre os seus periféricos.

(^1) O ENIAC Electronic Numerical Integrator And Computer implementou a primeira versão de programa armazenado oposto àquele configurado externamente com fios

10

Rapidamente se percebeu que o núcleo do computador era extremamente mais rápido do que se considerava, em particular quando o assunto era comparar com os seres humanos em suas tarefas cotidianas.

Muito embora programa-lo fosse uma tarefa muito demorada, ou seja, sua programação e ainda que esta fosse extremamente complexa, os resultados surpreendiam. E o que mais chamou a atenção era que, além da dificuldade de programação, só era possível executar um único programa de cada vez, de forma e que o tempo ocioso do próprio processo de utilização tornava-o caro e de pouco proveito.

Entre 1955 e 1965 foi apresentado o processamento em lote (BATCH) que nada mais era além de uma sequencia de programas a serem executados, ou seja, um de cada vez, de início ao fim. Mas ainda havia lacunas de tempo sem utilização.

Em 1961 o MIT – Massachussets Institute of Technology apresentou o sistema "Compatible Time-Sharing System (CTSS)" que consistia em um computador que era acessado por múltiplos usuários por meio de vários terminais. Isto dividia o tempo em pacotes (quotas) iguais para todos os processos que eram executados nos computadores da época, o que de certa forma permitia executar mais de um programa "ao mesmo tempo" reduzindo a ociosidade do computador (MCCARTHY).

Nesta mesma época, em meados de 1958, estudos revelaram que o método de interrupção poderia evoluir muito, tanto a ponto de influir em novas gerações de computadores. Considerando que o microprocessador 4004 da Intel©^ lançado em 1971 não trazia embutido nenhuma proposta de tratamento de interrupção pode-se considerar que tais processos eram muito mais complexos em datas anteriores a 1971(INTEL CORPORATION).

Em Abril de 1974 o microprocessador 8080 da Intel©foi lançado rodando a 2 MHz e incorporava tratamento de interrupção. Isto sugere pelo menos, que computadores construídos após esta data e que incorporaram tratamento de interrupção foram alavancados tornando sistemas operacionais muito mais eficientes e compactos

12

2.2. MICROCONTROLADORES

Lançado em 1977, o 8051 da Intel©é um chip denominado "computador em um só chip". Enquanto o mercado de computadores seguia seu rumo ao que temos nos dias atuais, tornou-se imprescindível definir a diferença entre microprocessadores e microcontroladores.

Microprocessadores seguem um estrutura básica conhecida como "Von Neumann" e por essa razão tem alta capacidade de processamento. São pequenos, velozes, processam grande quantidade de informação (áudio e vídeo) entre outras, razão pela qual se prestam a computadores. Por suas características construtivas, toda a memória e periféricos são externos a CPU, sendo esta basicamente uma ULA – Unidade Lógica e Aritmética.

Microcontroladores por sua vez seguem a estrutura "Harvard". Por esta razão são pequenos, não tão velozes – e nem há porque, conforme será exposto adiante – e processam quantidades limitadas de informação. E por sua característica construtiva, toda a memória e periféricos são internos ao chip, o lhe atribuiu o título "computador em um só chip". Por exemplo, ele tem RAM, FlashROM, Timer/Counter, tratamento de Interrupção, comunicação serial (UART) entre outros recursos. E em razão destas diferenças a estrutura do microcontrolador é tratada como MPU diferentemente aos microprocessadores denominados CPU, e por isso mesmo, daqui em diante as referências aos microcontroladores será assinaladas como MCU – Microcontroller Central Unit.

Existem inúmeras aplicações que não necessitam de tanto processamento e/ou velocidade, e que requerem o menor espaço possível. Para estes, em muitas aplicações foram empregados microprocessadores 8085 da Intel©^ e o Z-80 da Zilog©. Entretanto, dadas as características apresentadas, os microcontroladores se prestam melhor a estas aplicações - basicamente pelo espaço físico e recursos pelo fato destes estarem dentro do chip. E desde então tem crescido sem parar a taxa de utilização de microcontroladores, haja vista que os mesmos já estão presentes em eletrodomésticos, veículos, aeronaves e equipamentos de controle industrial como CLPs – Controladores Lógicos Programáveis.

13

3. O PROCESSO INDUSTRIAL

Define-se um processo industrial, como uma série de implementações físicas que envolvem, armazenamento, acionamento, interconexão entre dispositivos sólidos como tanques e silos cuja finalidade reside em obter algum produto final na atuação controlada destes elementos. Por exemplo, pode-se citar controle de pressão e temperatura em tubulação de combustível (DORF).

Sob a ação de controle e perturbações, um processo responde em escala de tempo da forma apresentada na figura 1:

Figura 1: Resposta de processo no tempo Fonte: www.mspc.eng.br

A letra grega ζ expressa o fator de amortecimento de um dado sistema. As curvas exibidas na figura 1 nos mostra como um processo se comporta dependendo do tipo de amortecimento.

Como não é do escopo desta monografia, o estudo de sistemas ditos de 1º e 2º grau não serão tratados de forma sucinta, porém com a ressalva quanto a observação dos efeitos do tempo de ação do processo e da reação diante de eventos externos ao mesmo.

15

com as seguintes considerações (FIGINI):

( Td ) tempo de atraso : tempo necessário para a resposta alcançar pela primeira vez 50% do valor final;

( Ts ) tempo de subida : tempo necessário para a resposta passar de 10 a 90% do seu valor final;

( Tp ) instante do pico : tempo necessário para a resposta alcançar pela primeira vez o pico de sobre- sinal; ( SS ) sobre-sinal : é o máximo percentual que a resposta alcança em relação ao sinal final;

( Ta ) tempo de acomodação : tempo necessário para o sinal de resposta acomodar-se no seu valor final.

( eRP ) Erro de regime permanente : é o resíduo que permanece entre o valor desejado e o valor obtido;

16

4. SISTEMAS DE TEMPO REAL

Como ponto de partida deve-se estudar algumas definições dos significados de Tempo Real. Tecnicamente são estabelecidas duas classes de Tempo Real: Classe A e Classe B (MAGALHÃES).

Classe A: Refere-se a processos on-line, casos que interagem geralmente pessoas a um sistema computadorizado. É típico em compra de passagens em terminais (MAGALHÃES). Classe B: Aparecem em processos industriais. Aqui os procedimentos devem atender eventos externos ao sistema computadorizado e devem respeitar prioridade e tem tempo definido para resposta, não aceitando a quebra destes critérios sob pena de graves desastres e/ou acidentes (MAGALHÃES).

Nos sistema classe A, o tempo pode ser tratado de forma variada posto que o mesmo é tolerante a este fato, o que normalmente não é aceitável nos sistemas de classe B; e é justamente aqui que se pretende construir o sistema.

Muito embora algumas literaturas ainda divirjam um pouco quanto a definição de Tempo Real para a classe A, este é um fato que não é escopo deste trabalho. Para Magalhães (1986, p.1), "[...] o objetivo final é um processo... traduzida pelo gerenciamento de interrupções, e associado ao gerenciamento dessas interrupções, existe prioridade, significando que a tarefa mais importante necessita ser servida dentro da restrição de tempo associada" (MAGALHÃES, 1986, p.1).

Para sua completa funcionalidade, ao invés de simplesmente ter os códigos de um programa, tem-se os programas alocados em memória de programa (flashrom) dentro de uma cápsula de códigos conhecida como Tarefa a qual está melhor apresentada na figura 3.

Um núcleo gerencia as tarefas que utilizarão a MPU alternando o endereço de sua alocação e alterando o conteúdo dos registros em uso fazendo com que a MPU

18

ID – Trata-se do identificador da tarefa. E é necessário apenas um byte que identifica cada tarefa em uso – cada qual tem a sua ID.

Código – É de tamanho variado e corresponde verdadeiramente ao código de um micro-programa que utilizará a MPU.

Dados – São os bytes em RAM interna pertencentes a Tarefa em questão. O número de bytes também é de tamanho variável dependendo da Tarefa.

Bloco de Contexto – É de tamanho fixo e trata-se de uma cópia dos registros que a Tarefa estaria usando no momento em que a mesma foi suspensa para que possa retornar exatamente ao que estava procedendo no instante da paralização

O conjunto destes elementos denomina-se de Bloco de Contexto da Tarefa e cada tarefa possui seu BCT distribuídos conforme exemplo exposto na figura 4. Esta seria uma visão geral da distribuição das tarefas (Task), que evidentemente serão o menor possível. Cada uma delas é um programa com todas as suas partes.

Figura 4: Distribuição das tarefas em memória Fonte: Elaboração própria (2013)

19

Uma vez que o corpo de cada Tarefa está delineado, agora pode-se expor uma visão geral do processo como um todo de acordo com a figura 5

Figura 5: Visão geral do Processo Fonte: Elaboração própria (2013)

5.2. FUNCIONAMENTO DINÂMICO DO SISTEMA DE TEMPO REAL

Um RTC – Real Timer Clock, envia um pulso de clock ao sistema de interrupção do microcontrolador fixando desta forma o tempo para tratar as tarefas. Pode-se ainda observar que entre um sinal de clock e o próximo, existe o tempo para decidir quem vai atuar no uso da MPU.

Durante todo o tempo, o RTC envia um sinal que gera uma interrupção no microcontrolador. A cada ciclo T ocorre uma interrupção e, uma tarefa especial ativada a cada ciclo T, agora denominada de NTR – Núcleo de Tempo Real, determina qual tarefa deve utilizar o microcontrolador e por quanto tempo (quantos ciclos T) para otimizar o processo de escala das tarefas.

Na figura 6 pode-se observar que a Tarefa 2 ocupou a MPU por dois ciclos consecutivos.