Sistemas de tempo real

Propaganda
Sistemas de Tempo Real
Curso: Engenharia de Controle e Automação
Disciplina: Informática Aplicada II
Prof. MSc. Christien Lana Rachid
Sistemas cujas características dependem
do cumprimento de requisitos temporais e
lógicos.
 As consequências do não cumprimento
desses mesmos requisitos podem causar
prejuízos nefastos.

O que são Sistemas de Tempo
Real?

Aplicações e exemplos de sistemas de tempo real
são
onipresentes
e
estão
proliferando,
aparecendo como parte de nossas infra
estruturas comerciais, governamentais, militares,
médicas, educacionais e culturas. Nesses, estão
incluídos:
 Sistemas de controle de veículos para automóveis,
metrôs, aeronaves, ferrovias e navios;
 Controle de tráfego para auto-estradas, espaço aéreo,
Trilhos de ferrovias e corredores de navegação marítima;
 Controle de processo para usinas de energia,
Indústrias químicas e para produtos de consumo, como
refrigerantes e cervejas.
Sistemas de tempo real
Sistemas médicos para radioterapia,
monitoramento de pacientes e desfibrilamento;
 Uso militares como controle de tiros,
rastreamento e sistemas de comando e controle;
 Sistemas de manufaturas com robôs;
 Telefone, rádio e comunicações por satélites;
 Jogos por computador;
 Sistemas de multimídia que provêm interfaces
textuais, gráficas, de áudio e de vídeo;
 Sistemas domésticos para monitoramento e
controle de eletrodomésticos;

Sistemas de tempo real

Um sistema de computação de tempo real
também pode ser um componente de um
sistema maior no qual está embutido;
com razão, tal componente é chamado de
sistema embarcado.
Sistemas de tempo real
Um Sistema Embarcado (ou embutido) é a
combinação de componentes de hardware e
software, que usa interfaces de entrada e saída
específicas e dedicadas, e diferentemente de
computadores pessoais ele é dedicado a realizar
uma tarefa específica.
Sistema
usa
microprocessadores
ou
microcontroladores.
Atualmente uma pessoa entra em contato
diariamente com pelo menos 20 processadores, e
estimativas apontam para 350 até o final desta
década.
Conceito de sistema embarcado
Alguns exemplos de onde são
usados sistemas embarcados
Alguns exemplos de onde são
usados sistemas embarcados
Alguns exemplos de onde são
usados sistemas embarcados

Sistemas embarcados são desenvolvidos para
uma tarefa específica. Alguns, inclusive, por
questões
como
segurança
e
usabilidade,
possuem restrições para computação em tempo
real.
O
software
escrito
para
sistemas
embarcados é muitas vezes chamado firmware, e
armazenado em uma memória ROM ou memória
flash ao invés de um disco rígido.
Características:

Por vezes o sistema também é executado com
recursos computacionais limitados: sem teclado,
sem tela e com pouca memória. Uma grande
vantagem dos sistemas embarcados é que
podem trabalhar continuamente por anos sem
erros, e que possam por vezes recuperarem-se
sozinhos após erros, o que é fundamental para o
mundo
globalizado
que
busca
evolução
tecnológica e menor dependência da manutenção
humana.
Características:

Ao contrário de programas desenvolvidos para
computadores de uso geral, o software embutido
não pode ser usado em outro sistema embutido
sem
que antes sejam
feitas
mudanças
significativas. Isso porque cada hardware é
projetado sob medida para uma dada aplicação.
Características:

Os primeiros computadores digitais na década de
40 em geral se dedicavam a uma única tarefa.
Eram muito grandes para serem considerados
embarcados.
O
conceito
de
controlador
programável foi desenvolvido algum tempo
depois.
O
primeiro
sistema
embarcado
reconhecido foi o Apollo Guidance Computer,
desenvolvido por Charles Stark Draper no MIT.
Era um computador de guia, que operava em
tempo real, sendo considerado o item mais
arriscado do projeto Apollo.
História

O primeiro sistema embarcado de produção em massa
foi o computador guia do míssil nuclear LGM-30 Míssil
Minuteman, lançado em 1961. Ele possuía um disco
rígido para a memória principal. Quando a segunda
versão do míssil entrou em produção em 1966, o
computador guia foi substituído por um novo, que
constituiu o primeiro uso em grande volume de circuitos
integrados. A tecnologia desse projeto reduziu o preço
de circuitos integrados permitindo seu uso em sistemas
comerciais. Desde suas primeiras aplicações na década
de 60, os sistemas embarcados vêm reduzindo seu
preço. Também tem havido um aumento no poder de
processamento e funcionalidade.
História
•
SIMPLES: CPUs de 8 bits (8085, Z-80 e 6.800). Existem também
sistemas baseados em CPUs de 4 bits, mas são pouco conhecidas.
Também empregam as CPUs de 16 bits (8086, 8088, 80186, 80188,
80286, 68000, 68010). Eles são empregados em controles
pequenos como sinais de trânsito, alguns instrumentos médicos,
controle de temperatura, etc..
•
COMPLEXIDADE MÉDIA: CPUs compatíveis com a família 386 e
486. Sua arquitetura é muito semelhante ou até idêntica à de um PC
AT. Ex: pontos de venda, instrumentos médicos, computadores de
bordo, etc..
•
SOFISTICADOS: CPUs compatíveis com a família Pentium e
lembram um moderno computador, sem monitor, teclado e disco.
Ex: sistemas dedicados multimídia, na automação de centrais
telefônicas, no controle de grandes plantas fabris, etc..
CPUs para sistemas embutidos
•Processamento;
•Periféricos;
•Disponibilidade.
Interfaces do Utilizador
Sistemas simples: utilizam botões,
LEDs ou telas bastante limitadas,
geralmente
mostrando
somente
números ou uma fila pequena de
caracteres.
 Sistemas mais complexos: utilizam
uma tela gráfica completa, usando
tecnologias
como
ecrã
táctil
e
joystics.

Interfaces do Utilizador
Ecrã tãctil
Joystics
Interfaces do Utilizador

-
-
Os sistemas embarcados comunicam-se com o meio
externo através de periféricos, tais como:
Interface serial;
Universal serial bus (USB);
TCP/IP;
Phase-locked loop: é um sistema de realimentação em que
o sinal é usado para sincronizar a frequência instantânea
do sinal de saída com a frequência instantânea do sinal de
entrada.
GPIO (General Purpose Input/Output): são basicamente
portas programáveis de entrada e saída de dados. São
utilizadas para prover uma interface entre os periféricos e
os microcontroladores/microprocessadores.
Interfaces do Utilizador

Sistemas embarcados geralmente residem em
máquinas que, espera-se, possam trabalhar
continuamente por anos sem erros, e que
possam por vezes recuperarem-se sozinhas após
erros. Portanto, o software é geralmente
desenvolvido e testado mais cuidadosamente de
que em computadores pessoais. A recuperação
de erros pode ser atingida com técnicas como o
watchdog timer, que reinicia o sistema a menos
que o software notifique periodicamente um
identificador.
Interfaces do Utilizador

Os STDrE são aqueles que possuem fortes
requisitos no atendimento de
compromissos temporais, tais como
tempo máximo de execução, jitter e
deadline, além de robustez e segurança.
- Hard real-time
- Soft real-time
Sistemas em Tempo-Real
Embarcados Distribuídos

Os sistemas de tempo-real desempenham um
papel
crucial
nas
sociedades
modernas,
suportando áreas aplicacionais tais como controle
de centrais nucleares, controle de indústrias
químicas, sistemas aviónicos, sistemas de controle
de tração, motor e travagem em automóveis,
controle de tráfego aéreo, marítimo, ferroviário e
rodoviário,
sistemas
de
telecomunicações,
automação industrial, robótica, sistemas de defesa
militar, missões espaciais, etc..
Sistemas em Tempo-Real
Embarcados Distribuídos

VEÍCULOS INTELIGENTES
A automação veicular, além de propiciar ao motorista maior
segurança em condições críticas adversas, também pode
auxiliá-lo na condução do veículo, onde uma ou mais
tarefas podem ser automatizadas, tais como: seguir a
pista, mantendo a faixa correta, manter uma distância
segura entre veículos, regular automaticamente a
velocidade do veículo conforme as condições de trânsito e
características da rodovia, fazer ultrapassagens seguras e
evitar obstáculos, achar o caminho mais curto e seguro
para o destino bem como mover o veículo e estacioná-lo
em ambiente urbano.
Exemplos Práticos de
Sistemas Embarcados
- Sistema de injeção de combustível;
- Sistema de freio;
- Sistema de posicionamento angular da barra de direção.
A tecnologia drive-by-wire

Um bom exemplo de sistema embarcado é este MP4 player.
Ele utiliza apenas três chips, sendo um o controlador
principal, outro um chip de memória flash (usado para
armazenamento) e o terceiro um sintonizador de rádio
AM/FM, que poderia muito bem ser retirado do projeto sem
prejuízo para as demais funções do aparelho.
MP4

Sistemas como PDAs são geralmente
considerados sistemas embarcados pela
natureza de seu hardware, apesar de ser
muito mais flexíveis em termos de
software.
Possuem
uma
interface
completa.
PDA

As urnas eletrônicas brasileiras foram criadas
com base no Windows CE embarcado utilizando
essa tecnologia.
Urnas Eletrônicas
A Microsoft Corporation anunciou em 2001 a disponibilidade do
Windows XP Embarcado, versão do sistema operacional Windows
XP para terminais eletrônicos, que permite o rápido
desenvolvimento de dispositivos conectados de forma mais
segura e completa.
 Baseado nos mesmos recursos do Windows XP Professional, o
Windows XP Embarcado permite que os desenvolvedores de
sistemas embarcados usem configurações pré-construídas ou
selecionem entre mais de 10 mil componentes de acordo com as
necessidades de seus clientes. A ferramenta de configuração do
XP Embarcado, é um grande facilitador do processo, trazendo
grande produtividade e segurança aos fabricantes. Muitas
empresas que já usavam o alguma versão do Windows
convergiram para o XP embarcado, tais como automação
comercial, industrial e bancária.

Mais sobre o Windows embarcado...

O que é o Linux?
Sistema Operacional de código aberto, baseado
em Unix. “ O sistema do pinguim”, como é
conhecido.

Por que usar Linux num projeto embarcado?
- o código-fonte disponível e de boa qualidade;
- muitas aplicações disponíveis;
- portável e escalável;
- redução de custos.
Linux e Sistemas Embarcados...

Exemplos de uso do Linux em sistemas
embarcados: Linksys WRT54G (roteador),
Sharp Zaurus(palmtop), Motorola A1200
(celular), GP2X ( videogame portátil) e outros...
Linux e Sistemas Embarcados...
Dispositivos Móveis

Exemplos de sistemas operacionais embarcados:
eCos, Windows CE, VxWorks, Free RTOS,
VirtuOS(nacional), HardHat Linux, Zeroshell
Linux, Angstrom Linux, Palm OS, Symbian e
outros...
Windows embarcado
Diferenças entre Linux tradicional
e Linux embarcado:

Android é uma plataforma aberta voltada
para dispositivos móveis;

Desenvolvida pela Google e atualmente é
mantida pela Open Handset Alliance
(OHA).

Todas as aplicações desenvolvidas para
essa plataforma utilizam à linguagem
Java.
Android


A plataforma Android é a primeira plataforma
móvel completa, aberta e livre.
Um dos SmartPhones que ofereceu suporte a
esse sistema operacional foi o G1 da empresa
T-Mobile.
Android








Application framework proporciona a reutilização e
substituição de componentes;
Gráficos Otimizados possui uma biblioteca 2D; e 3D baseada
na especificação OpenGL ES 1.0 (aceleração de hardware é
opcional);
SQLite para guardar dados estruturados;
Suporte multimídia para áudio, vídeo e formatos de imagem
(MPEG4,
H.264, MP3, AAC, AMR, JPG, PNG, GIF)
Telefonia GSM (dependente de hardware)
Bluetooth, EDGE, 3G, e WiFi (dependente de hardware)
Câmera, GPS, compasso, e acelerômetro (dependente de
hardware)
Rico ambiente de desenvolvimento , incluindo um emulador
de dispositivo, ferramentas de depuração, memória,
performance e um plugin para o Eclipse (ADT)
A estrutura geral da plataforma Android
A arquitetura do Android
Junto com o Android vem um conjunto de
aplicações fundamentais. São elas:
 um cliente de e-mail;
 programa de SMS;
 agenda;
 mapas;
 navegador;
 contatos entre outros.
Aplicações






System C library – uma implementação derivada da
biblioteca C padrão sistema (libc) do BSD sintonizada
para dispositivos rodando Linux.
Media Libraries – baseado no PacketVideo’s
OpenCORE; as bibliotecas suportam os mais populares
formatos de áudio e vídeo, bem como imagens estáticas.
Surface Manager – gere o acesso ao subsistema de
exibição bem como as múltiplas camadas de aplicações
2D e 3D;
LibWebCore – um web browser engine utilizado
tanto no Android Browser quanto para exibições web.
FreeType – renderização de fontes bitmap e vector
SQLite – um poderoso e leve engine de banco de
dados relacional disponível para todas as aplicações
Bibliotecas
Inclui um grupo de bibliotecas que fornece
a maioria das funcionalidades disponíveis
nas principais bibliotecas da linguagem
Java.
 Roda em seu próprio processo, com sua
própria instância da máquina virtual Dalvik.
 O Dalvik foi escrito de forma a executar
várias VMs eficientemente.
 Ele executa arquivos .dex, que é otimizado
para consumo mínimo de memória.

Android Runtime

Utiliza a versão 2,6 do kernel do Linux
para os serviços centrais do sistema, tais
como segurança, gestão de memória,
gestão de processos, etc. O kernel
também atua como uma camada de
abstração entre o hardware e o resto do
software.
Linux Kernel










VINÍCIUS, Ícaro; XAVIER, Wallace; COSTA, Davi da; MENDES, Leandro. Sistemas Embarcados.
Disponível em: <http://knol.google.com/k/caro-vincius/sistemas-embarcados/3epfj4wxfx6qf/5#> Acesso
em: mai. 2009.
CARRO, Luigi; WAGNER, Flávio Rech. Sistemas Computacionais Embarcados. In: Juan Manuel Adan
Coello; Sandra Fabbri. (Org.). XXII Jornadas de Atualização em Informática. Campinas: UNICAMP / SBC,
2003, v. 1, p. 45-94.
JUNG, Cláudio Rosito; OSÓRIO, Fernando Santos; KELBER, Christian Roberto; HEINEN, Farlei José.
Computação Embarcada: Projeto e Implementação de Veículos Autônomos Inteligentes. XXV Congresso
da Sociedade Brasileira de Computação. UNISINOS –São Leopoldo/RS, 2005.
HALL, Mike.“Eu nunca vou usar Windows XP Embedded!” Disponível em:
<http://www.microsoft.com/brasil/msdn/WindowsEmbedded/artigos/mitos2.mspx> 8 de outubro de 2008.
Acesso em: mai. 2009.
Sistema embarcado. Disponível em: <http://pt.wikipedia.org/wiki/Sistema_embarcado> Acesso
em: mai. 2009.
Disponível em: <http://pt.wikipedia.org/wiki/Windows_CE> Acesso em: mai. 2009.
Microsoft lança o Windows XP Embedded, 2001. Disponível em:
<http://www.novomilenio.inf.br/ano01/0112a004.htm > Acesso em: mai. 2009.
ALEMIDA, Luis; PEDREIRAS Paulo. Sistemas de Tempo-Real: uma abordagem prática. Revista do Detua,
vol.4, no 2, janeiro 2004.
ZELENOVSKY , Ricardo; MENDONÇA, Alexandre. Introdução aos Sistemas Embutidos. 5 de maio de
2008 Disponível em: <http://www2.eletronica.org/artigos/eletronica-digital/introducao-aos-sistemasembutidos/> Acesso em: mai. 2009.
FREITAS, Edilson Pignaton de. Metodologia orientada a aspectos para a especificação de Sistemas
Tempo-Real Embarcados Distribuídos –Dissertação (mestrado) Universidade Federal do Rio Grande do
Sul. Porto Alegre: programa de pós-graduação em Computação, 2007.
Referências Bibliográficas
Download