desenvolvimento de sistemas embarcados

54
Mestrado em Ciência da computação DESENVOLVIMENTO DE SISTEMAS EMBARCADOS Discentes: Alexandre Augusto Giron Paulo Roberto de Oliveira

Upload: alexandre-augusto-giron

Post on 29-Jun-2015

2.325 views

Category:

Documents


1 download

DESCRIPTION

Uma introdução ao desenvolvimento de sistemas embarcados, mostrando (e comparando) metodologias e ferramentas disponíveis para uso.

TRANSCRIPT

Mestrado em

Ciência da

computação

DESENVOLVIMENTO DE

SISTEMAS

EMBARCADOS

Discentes: Alexandre Augusto Giron

Paulo Roberto de Oliveira

Introdução

Requisitos do desenvolvimento de Sistemas Embarcados

Metodologias de desenvolvimento

Baseada no ciclo de vida

Baseada em níveis de abstração

Projeto baseado em plataformas

Comparativo/Observações sobre as metodologias

Ferramentas de apoio ao desenvolvimento

Conclusões

Referências

AGENDA

2

O que são sistemas embarcados?

“Sistemas computacionais que processam informação e são

incorporados em um produto maior” (MARVEDEL, 2006)

Vários exemplos no cotidiano

INTRODUÇÃO

3

Várias são as aplicações dos sistemas embarcados

Entretanto, o desenvolvimento desses sistemas possui

diversos requisitos

Metodologias e ferramentas de apoio ao desenvolvimento

podem ser utilizadas

INTRODUÇÃO

4

Sistemas embarcados possuem particularidades que os

diferem do desenvolvimento de software

Não é uma tarefa simples

Alguns requisitos são normalmente necessários para o

desenvolvimento de sistemas embarcados

REQUISITOS DO DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS

5

Aspecto de grande importância

Fonte de energia

Baterias móveis

Precisam ser recarregadas

Consumo x Realimentação

Menor consumo

Menor frequência de realimentação

Exemplos

Telefones celulares

VANT (Veículo Aéreo Não Tripulado)

6

REQUISITOS DO DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS - DISSIPAÇÃO E

CONSUMO DE POTÊNCIA

Tempo de execução das instruções

Aspecto importante na maioria dos sistemas

Sistemas embarcados

Fator ainda mais importante

Memória

Processamento

Cada vez mais necessitam de maior quantidade de recursos

Câmera fotográfica digital

Smartphone

7

REQUISITOS DO DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS - DESEMPENHO

Muitos processos são executados a todo instante

Dados de entrada via teclado

Sinais de áudio e vídeo

Atualização da tela

Prazo de término

Produção de resultados

Também conhecido como requisito de tempo real

Soft real time

Habilidade do sistema de respeitar prazos

Otimizar algumas aplicações

Utilizado em sistemas onde o tempo de resposta não é crítico

Hard real time

Garantir que os prazos serão atendidos

Utilizado em sistemas críticos

Usina nuclear

8

REQUISITOS DO DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – PRAZO PARA

PROCESSOS

Interação do usuário com o sistema

Entrada de dados

Teclado

Voz

Outras

Usabilidade

Design

Aceitação comercial

9

REQUISITOS DO DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS - INTERFACES DE

USUÁRIO

Espaço físico necessário

Design

Exemplo: Tendência do tamanho dos celulares

Quantidade de memória RAM (kB) e flash (MB ou GB)

Tamanho do software

Exemplo: Arduíno

Número de milhões de portas lógicas

Maior o número de portas lógicas

Maior o custo do produto final

10

REQUISITOS DO DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS - TAMANHO

Etapas de desenvolvimento do sistema

Debugging

Testes

Estes gastos não são recorrentes

11

REQUISITOS DO DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS - CUSTO DE

ENGENHARIA

Gasto obtido em cada unidade do sistema embarcado

Visão de um gestor da empresa

12

REQUISITOS DO DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS - CUSTO DE

PRODUÇÃO

Aspectos que não aumentam o custo de engenharia

Versão original do produto

Alteração de características

Objetivo principal do sistema não se altera

Funcionalidades adicionais

Exemplo: Micro-ondas

13

REQUISITOS DO DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS - FLEXIBILIDADE

Tempo de desenvolvimento gasto até a criação do protótipo

Hábil para a realização de testes de suas funcionalidades

Pode ser medida em:

Dias

Meses

14

REQUISITOS DO DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS - PROTOTIPAÇÃO

Consumo de tempo

Processo de engenharia

Construção do protótipo

15

REQUISITOS DO DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS - TEMPO DE

DESENVOLVIMENTO

Consumo de tempo

Inicia-se após após a criação do protótipo

Até que o produto esteja disponível no mercado

16

REQUISITOS DO DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS - TEMPO DE

COMÉRCIO

Deve ser realizada uma análise

Desde uma falha do sistema ou queda acidental

Até questões relacionadas a sua utilização

Exemplo

Capacidade de bloqueio de um telefone celular na ocorrência de um

roubo

Correto funcionamento do sistema de freios de um carro

Grande importância quando se trata de sistemas embarcados

críticos

17

REQUISITOS DO DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS - SISTEMA DE

SEGURANÇA DO USUÁRIO

Aspecto importante, onde se refere a:

Instabilidade

Extensões do sistema

Três tipos de manutenção em sistemas embarcados

Software

Ajuste de uma funcionalidade para atender melhor as expectativas do

cliente

Dados

Download de vídeos, papéis de parede e músicas em um smartphone

Hardware

Extensões

Cartão de memória adicional

Manutenção

Ocorrência de falhas no dispositivo

18

REQUISITOS DO DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS - MANUTENÇÃO

Ciclo de vida de sistemas embarcados

Níveis de abstração

Projeto baseado em plataformas

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS

19

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – CICLO DE VIDA DE

SISTEMAS EMBARCADOS

20

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – CICLO DE VIDA DE

SISTEMAS EMBARCADOS

21

Especificação do produto

Levar em consideração aspectos de outras áreas além da ciência da

computação

Gestão e marketing

Desenvolver um produto que atenda as expectativas do usuário

Necessário um time de pesquisa de clientes

Análise de requisitos

Pesquisar um preço aceitável para o produto

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – CICLO DE VIDA DE

SISTEMAS EMBARCADOS

22

Partição entre hardware e software

Problema de decidibilidade

Hardware

Software

Exemplo

Primeiros processadores x86 (80286, 80386)

Unidade de cálculo de ponto flutuante

Características conflitantes na partição

Preço do produto

Alto desempenho

Padronização

Mercado competitivo

Patente

Escolha do processador pode ser um fator de impacto no projeto

Alterar as ferramentas que serão utilizadas

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – CICLO DE VIDA DE

SISTEMAS EMBARCADOS

23

Iteração e implementação

Divergências entre hardware e software que devem ser solucionadas

Quebra de blocos maiores em blocos menores

Visualizar melhor limitações que possam existir

Modelagem de desempenho (Processador e memória)

Ferramentas baseadas em simulação

Benchmarks

Computadores single-board

Microprocessador utilizado no projeto real

Ambiente de desenvolvimento, testes e debugging até o término do

modelo real

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – CICLO DE VIDA DE

SISTEMAS EMBARCADOS

24

Projeto detalhado de hardware e software

Também conhecido como co-verificação

Hardware pode ser representador por linguagens de descrição

Verilog

VHDL

Plataforma de hardware virtual

Desenvolvimento de código

Tempo gasto é o mínimo possível

Software do projeto real

Testes de interface entre hardware e software são realizados apenas

no projeto real de hardware completamente desenvolvido

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – CICLO DE VIDA DE

SISTEMAS EMBARCADOS

25

Integração entre hardware e software

Ponto importante

Gerência de complexidade

Entendimento do time de software fornecida pelo time de hardware

Debugging não é uma tarefa complexa

Conexão com um computador através de uma interface de comunicação

Outros casos pode se tornar quase impossível (Velocidade)

Em alguns casos é possível integrar um S.O ao hardware

Bugs podem continuar existindo

Sistema executado em velocidade máxima de processamento

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – CICLO DE VIDA DE

SISTEMAS EMBARCADOS

26

Testes do produto e atualizações

Processo importante

Scanner

Gerador de energia nuclear

Mais do que garantir que um sistema não falhará em um momento

crítico

Verificar se o sistema está próximo de suas condições ideais

Grandes empresas possuem um time apenas para testes

Consumo de tempo para se resolver um problema em cada

fase do projeto

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – CICLO DE VIDA DE

SISTEMAS EMBARCADOS

27

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – CICLO DE VIDA DE

SISTEMAS EMBARCADOS

28

Manutenção e aperfeiçoamento de produtos existentes

Na maioria das empresas, são mantidos e atualizados sistemas

embarcados

Problema

Grande parte do time não está no projeto desde o início

Necessitam de experiência, habilidades e conhecimentos prévios

Ferramentas específicas são utilizadas

Muitas vezes, estas são muito poderosas

Até demais

Questões de tempo

Fase bastante importante para os clientes

Metodologia baseada em Níveis de Abstração

Foi proposta por Wolf (WOLF, 2001)

Guia o desenvolvimento através de etapas de diferentes níveis

de abstração

29

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – NÍVEIS DE

ABSTRAÇÃO

Etapa de Requisitos

Visa a realizar o levantamento de requisitos

Etapa inicial no desenvolvimento

Fornece um modelo para captura de requisitos de forma

textual

Documento contendo: nome, objetivo, entradas e saídas, funções,

Performance/desempenho, custo de fabricação, consumo de

potência, tamanho físico e peso

Auxilia no entendimento do sistema

Outros modelos podem ser usados

30

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – NÍVEIS DE

ABSTRAÇÃO

Etapa de Especificação

Segunda etapa

Enfoque nos requisitos (de forma mais precisa que a etapa

anterior)

Objetivos:

Deve garantir que os requisitos sejam bem especificados para guiar

o desenvolvimento do sistema

UML pode ser utilizada neste processo

SysML frequentemente utilizada no contexto dos sistemas

embarcados

31

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – NÍVEIS DE

ABSTRAÇÃO

Etapa de Arquitetura

Define como será construído o sistema

Etapa que realiza o projeto da arquitetura em termos de

hardware e software

Diagrama de blocos pode ser utilizado nesta etapa

Durante essa etapa deve-se levar em consideração os

requisitos funcionais e não funcionais

32

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – NÍVEIS DE

ABSTRAÇÃO

Etapa de constituição por Componentes

Estruturar o sistema em componentes de hardware e software

Objetivos

Fornecer a conformidade com o projeto da arquitetura e com os

requisitos

Desenvolver componentes com atenção na integração dos mesmos e

na integração do sistema como um todo

Favorecer o reuso dos componentes desenvolvidos (“Desenvolver

para o reuso”) e então diminuir tempo de projeto

Processo de desenvolvimento de componentes estruturado

em:

IP Component Provider

IP Component Consumer

33

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – NÍVEIS DE

ABSTRAÇÃO

Processo de desenvolvimento de componentes estruturado

em:

IP Component Provider: Criação, classificação para o reuso

IP Component Consumer: Validar e integrar componentes

34

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – NÍVEIS DE

ABSTRAÇÃO

Etapa de Integração do Sistema

Última etapa no desenvolvimento

Normalmente é complexa

Necessita de integração otimizada para evitar desperdício de

recursos

Testes de integração devem ser realizados

Etapa também define o lançamento do produto

35

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – NÍVEIS DE

ABSTRAÇÃO

Metodologia de Projeto baseado em Plataformas

Define o fluxo do desenvolvimento do sistema sobre uma

plataforma base (genérica)

Escolha da plataforma: considerar requisitos e projetos anteriores

Desenvolvimento do sistema sobre a plataforma escolhida

Testes para adaptação e lançamento do produto

36

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – PROJETO BASEADO

EM PLATAFORMAS

Metodologia de Projeto baseado em Plataformas

Tende a agilizar o desenvolvimento

Projetos anteriores

Adaptação de produtos lançados de acordo com as necessidades do

domínio específico

Considera custos de engenharia e de produção

Não começar um desenvolvimento “do zero”

37

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – PROJETO BASEADO

EM PLATAFORMAS

Metodologia baseada no ciclo de vida de sistemas

embarcados

X

Metodologia baseada em níveis de abstração

38

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – COMPARATIVO

ENTRE METODOLOGIAS

Metodologia do ciclo de vida divide explicitamente o

desenvolvimento hardware/software ; enquanto que a baseada

em níveis dá ênfase na montagem de componentes

M. do Ciclo de vida define fases para o desenvolvimento; de

forma análoga, a M. em Níveis define etapas através dos

níveis de abstração;

Ambas possuem enfoque à integração do sistema

(hardware/software) definindo etapas explícitas.

Ciclo de Vida: fase 5 Níveis de Abstração: último

nível

39

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – COMPARATIVO

ENTRE METODOLOGIAS

Especificação de Requisitos: M. baseada em níveis

Fornece um modelo de formulário de requisitos

Define duas etapas para levantamento e especificação dos

requisitos: Forte atenção aos requisitos do sistema

Dessa forma, a metodologia considera que somente com um

entendimento claro dos requisitos se torna possível o

desenvolvimento do sistema

40

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – COMPARATIVO

ENTRE METODOLOGIAS

A metodologia baseada no ciclo de vida define uma fase

específica aos testes e outra à manutenção do sistema.

Por outro lado, a M. baseada em níveis não define uma etapa

específica,

mas engloba os testes e manutenção no nível de integração do

sistema

41

METODOLOGIA DE DESENVOLVIMENTO DE

SISTEMAS EMBARCADOS – COMPARATIVO

ENTRE METODOLOGIAS

Metodologia de projeto baseado em plataformas permite:

Agilidade na entrega/desenvolvimento: desenvolvimento sobre

plataforma base (genérica)

Evita o “desenvolvimento from the scratch” (ou “do zero”)

Redução de custos: reutilizar projetos anteriores, apenas adaptando-

os às novas necessidades

42

OBSERVAÇÕES SOBRE O PROJETO BASEADO

EM PLATAFORMAS

Hardware

Software

Linguagens

FERRAMENTAS DE APOIO

43

Hardware

Placas de desenvolvimento para desenvolvimento de

protótipos

Conectores de acesso serial, USB, rede

Medição de consumo de potência

FERRAMENTAS DE APOIO

44

Hardware

FERRAMENTAS DE APOIO

45

Software

Recursos:

Explorador de

Projetos

Debugging

Análise de

desempenho

....

FERRAMENTAS DE APOIO

46

Linguagens

De descrição de Hardware

De Modelagem

SysML: linguagem gráfica de modelagem

Classificada como um perfil da UML

Suporta análise, especificação, projeto, verificação e validação

Voltada a modelagem de sistemas complexos (compostos de

hardware, software, dados, pessoal, procedimentos, instalações,

sistemas naturais...)

FERRAMENTAS DE APOIO

47

SysML

FERRAMENTAS DE APOIO

48

Linguagens de descrição de hardware

Verilog

VHDL

FERRAMENTAS DE APOIO

49

O desenvolvimento de Sistemas Embarcados é complexo

Metodologias específicas podem auxiliar no desenvolvimento

Mas independentemente de metodologia utilizada, o

desenvolvimento de sistemas embarcados requer

Atenção aos requisitos: consumo de potência, desempenho, custo...

Integração otimizada hardware/software

Utilização de ferramentas de apoio

CONCLUSÕES

50

Obrigado pela atenção

DÚVIDAS?

51

P. MARVEDEL. Embedded System Design. Netherland:

Springer, 2006. ISBN 978-0-387-29237-3.

J. ENGBLOM. Embedded Systems Computer Architecture.

Uppsala University. Extended Abstract, ESSES, 2003.

VHDL (2002). “IEEE Standard VHDL Language Reference

Manual. IEEE Standard No. 1076-2002”. IEEE, 2002.

Verilog (1995). “IEEE Standard Hardware Description

Language Based on Verilog Hardware Description Language.

IEEE Standard No. 1364-1995”. IEEE, 1995.

A . S. BERGER, “Embedded System Design: An Introduction to

Processes, Tools , and Techniques”. CMP Books, 2002 .

REFERÊNCIAS

52

F. WAGNER and L. CARRO, “Sistemas Computacionais

Embarcados”. XXII Jornadas de Atualização em Informática.

Campinas: UNICAMP, 2003, v. 1 , p. 45-94.

K. KEUTZER, et al. System Level Design: Orthogonalization of

Concerns and Platform-Based Design. IEEE Transactions on

Computer-Aided Design of Circuits and Systems, New York, v.

19, n. 12, p. 1523-1543, Dec. 2000.

W. WOLF. Computers as Components - Principles of Embedded

Computing System Design. Morgan Kaufmann Publishers, San

Francisco, 1 edition, 2001.

REFERÊNCIAS

53

T. SIMUNIC, L. BENINI, A. ACQUAVIVA, P. GLYNN and G. DE MICHELI , “Dynamic Voltage Scaling and Power Management for Portable Systems”. In: Annual ACM IEEE Design Automation Conference. June, 2001, Las Vegas.

BeagleBoard.org. BeagleBoard-xM Rev C System Reference Manual. Richardson, TX,2010.

Texas Instruments, Inc. Code Composer Studio (CCStudio) Integrated Development Environment (IDE) v5. Dallas, TX, 2009.

FRIEDENTHAL, S.; MOORE, A.; STEINER, R. A. Practical Guide to SysML: Systems Model. Morgan Kaufmann OMG Press, 2008. 560p.

R. F. da SILVA, ”SymPLES: uma abordagem de desenvolvimento de l inha de produto para sistemas embarcados baseada em SysML”, Dissertação de Mestrado - Universidade Estadual de Maringá (UEM), 2012.

REFERÊNCIAS

54