Escolar Documentos
Profissional Documentos
Cultura Documentos
Electrónica e de Computadores
1º Ano – 1º Semestre – Ano Letivo 2013/2014
Sistemas Embebidos
e de Tempo-Real
Prof. Nuno Peixoto
(npeixoto@ipca.pt)
Introdução
S. E. Tempo-Real
Sumário
Em casa
No escritório
Pacemaker
Processador MSP430F1611 (Texas Instruments)
• Arquitetura RISC 16 bits, A/D e duplo D/A (12 bits)
Processador embebido
Armazenamento e atualização do software
Modelo de desenvolvimento
Processo de criação e execução de aplicações
embebidas
Operação em Tempo-Real
Multitarefa e Concorrência
Processador embebido
É dedicado para determinadas classes de
aplicações
As suas características estão diretamente
relacionadas com os requisitos da aplicação
Tem um conjunto limitado de funcionalidades e é
otimizado tendo em conta diferentes requisitos
• Custo
• Tamanho
• Consumo de energia
• Desempenho
MEEC Prof. Nuno Peixoto 30
S. E. Tempo-Real
Características dos Sistemas Embebidos
OMAP4470
Desenvolvimento Cross-Platform
O software para um sistema embebido é
desenvolvido numa plataforma e executado em
outra
O desenvolvimento do software embebido é
efetuado num computador de uso geral (host)
• Este compila o software tendo em conta a
arquitetura do sistema embebido, compilação
cruzada, recorrendo a um (cross compiler)
O software vai ser executado no sistema alvo
(target)
Compilador
Executável
Loader
Assembler
Linker
RAM
Biblioteca Run-Time
Locator
Inicialização do programa
Assembler Linker
Biblioteca Reentrante
Operação em Tempo-Real
Processa eventos que ocorrem nas entradas
externas e provocam outros eventos nas saídas
externas
O tempo decorrido entre o aparecimento do
evento na entrada e o resultado é limitado
• Não cumprir o tempo máximo admissível para a
obtenção da saída/resultado provoca uma falha
no sistema
– A ocorrência de falhas pode ser tolerada em certos
sistemas, mas em outros leva a resultados catastróficos
Multitarefa e Concorrência
Os sistemas embebidos têm que responder a
múltiplos eventos externos independentes e
proporcionar diferentes saídas
• A decomposição em múltiplas tarefas simplifica a
programação mas requer comutação na execução
entre as várias tarefas
– O código associado a uma tarefa designa-se de Thread
– Com um único CPU só há possibilidade para uma thread
executar, contudo, a comutação entre threads dá a ideia
de multitarefa
– A multitarefa leva ao conceito de concorrência, ou seja,
as threads concorrem pela utilização do CPU
MEEC Prof. Nuno Peixoto 47
S. E. Tempo-Real
Características dos Sistemas Embebidos
Multitarefa e Concorrência
Exemplo de um termóstato
/* Monitorização da temperatura */ /* Monitorização da hora */
temp_monitor() time_monitor()
{ {
while(1) while(1)
{ {
measure temp; measure time;
if (temp < setting) if (6:00am)
start furnace; setting = 180ºC;
else if (temp > setting + delta) else if (11:00pm)
stop furnace; setting = 100ºC;
} }
} }
Multitarefa e Concorrência
Exemplo de um termóstato
/* Monitorização do teclado */
keypad_monitor()
{
while(1)
{
check keypad;
if (raise temp)
setting++;
else if (lower temp)
setting--;
}
}
Custo
Na maioria dos sistemas embebidos deve ser
baixo
Escolher um microcontrolador ou SoC com todas
as funcionalidades requeridas pelo sistema
permite baixar o custo
Escolher um microcontrolador com I/Os e
memória suficientes permite reduzir o custo
A falta de recursos I/O ou memória implica a
necessidade de utilizar circuitos integrados
adicionais e um software mais extenso
MEEC Prof. Nuno Peixoto 50
S. E. Tempo-Real
Desafios no desenvolvimento
Consumo de energia
Em sistemas de alto desempenho o consumo de
energia tende a ser muito elevado
• Torna-se necessário aplicar mecanismos de
dissipação do calor gerado
As aplicações de baixo consumo são
alimentadas por uma bateria
• O tempo de vida da bateria, que é determinado
pelo consumo de energia, torna-se um fator chave
Microcontroladores com reduzidas
funcionalidades têm um menor consumo de
energia
MEEC Prof. Nuno Peixoto 51
S. E. Tempo-Real
Desafios no desenvolvimento
Memória On-Chip
A dimensão e o tipo de memória apresentam
implicações significativas
• A RAM tem implicações durante a execução da
aplicação e permite guardar dados durante o
processamento
• A memória ROM permite armazenar o programa
– Para grandes volumes de produção a escolha mais
económica é memória ROM programada de forma
permanente no instante do fabrico
» Torna o sistema pouco flexível a atualizações
– Maior flexibilidade é oferecida pelas memórias EEPROM
e Flash
MEEC Prof. Nuno Peixoto 52
S. E. Tempo-Real
Desafios no desenvolvimento
Software
Linguagens de alto nível facilitam o processo de
desenvolvimento do programa e a manutenção
futura
No entanto, por vezes torna-se necessário
recorrer à linguagem assembly para tirar partido
da compactação do código ou do desempenho
• Um código bem escrito em assembly pode ser, em
média, 10 a 20% mais compacto do que o código
gerado pelo compilador
• O tamanho da memória também implica restrições
à dimensão do código
MEEC Prof. Nuno Peixoto 53
S. E. Tempo-Real
Desafios no desenvolvimento
Conjunto de Instruções
A escolha do processador tem impacto na
dimensão do código
• Arquiteturas CISC permitem código mais
compacto do que arquiteturas RISC
• Contudo, numa arquitetura CISC o
microprocessador é mais complexo pois possui
mais circuitos e acaba por consumir mais energia
e ter também um custo mais elevado
Ferramentas de desenvolvimento
Dependem do processador escolhido e
assumem um papel fundamental no
desenvolvimento
• Ambiente de desenvolvimento integrado (IDE)
• Compiladores
• Assemblers
• Simuladores
• Sistemas operativos de tempo-real (RTOS)
• Bibliotecas de software proporcionadas
Único Saída
Síncronas Síncronas
evento única
Sistema
Múltiplos Tempo- Múltiplas
eventos Assíncronas Real Assíncronas saídas
Evento
Qualquer ocorrência que causa o contador de
programa (Program Counter – PC) mudar de
forma não sequencial o que causa uma mudança
no fluxo de execução do código
• Instruções condicionais ou de salto incondicional
• Chamada de funções em C ou a instanciação de
objetos em linguagens orientadas aos objetos
Interrupções externas também são
caracterizadas como eventos
Evento síncrono
São eventos que ocorrem em momentos bem
definidos e que mudam o fluxo de execução do
código
• Um salto condicional ou incondicional, ou até a
chamada de uma função
Evento assíncrono
São eventos normalmente causados por fontes
externas e por isso imprevisíveis
• Um sinal de relógio com uma frequência bem
definida é assíncrono!
Determinismo
Um sistema é determinístico se, para cada
estado possível e conjunto de entradas, um
único conjunto de saídas bem como o próximo
estado podem ser determinados
• É possível saber como o sistema se vai comportar
em todas as circunstâncias possíveis
Determinismo temporal
Quando o tempo de resposta para cada conjunto
de saídas é conhecido
Determinismo é essencial no controlo
MEEC Prof. Nuno Peixoto 63
S. E. Tempo-Real
Sistemas Tempo-Real
Controlo
Estruturas Linguagens
de dados de
Programação
Engenharia
de Software Algoritmos
Sistemas
Operativos
MEEC Prof. Nuno Peixoto 64
S. E. Tempo-Real
Ideias Erradas associadas ao Tempo-Real
Tempo-real é rapidez
Os avanços tecnológicos que culminam com o
aumento da velocidade dos processadores vai
resolver os problemas do tempo-real
Programação tempo-real é assembly
Nunca é necessário construir um RTOS porque
já existem muitos produtos comercialmente
disponíveis
O estudo de sistemas tempo-real é
predominantemente baseado na teoria de
escalonamento
MEEC Prof. Nuno Peixoto 65
S. E. Tempo-Real
Referências Bibliográficas