Você está na página 1de 107

SISTEMAS EMBUTIDOS

BCC 425

Prof: Gabriel Garcia

Baseado nos materiais de Aline Fidêncio e Eduardo Luz


Introdução
a
Sistemas Embutidos
Introdução
Introdução

Conceitos:
A região externa ao sistema é chamada de entorno.

Tudo que passa do entorno do sistema para o sistema, e é


possı́vel agir sobre, é chamado de entrada.

Tudo que passa do sistema para o entorno é chamado de


saı́da do sistema.

A tarefa é definida como uma ação capaz de transformar


uma ou mais entradas em uma saı́da do sistema.

O conjunto de tarefas que o sistema deve desempenhar é


chamado de requisitos funcionais.

Os requisitos funcionais de um sistema são definidos


durante a especificação de requisitos
Sistema de Informação

Informação: dados que foram transformados


(processados) em uma forma inteligı́vel e que transmitem
um valor (utilidade) para quem os recebe.
Sistema de Informação

Informação: dados que foram transformados


(processados) em uma forma inteligı́vel e que transmitem
um valor (utilidade) para quem os recebe.

Sistema de Informação: é um conjunto de componentes


inter-relacionados que coleta, processa, armazena e
distribui informações.
Sistema de Computação

Um Sistema de Computação pode ser visto como um


subsistema dos Sistemas de Informação.
Sistema de Computação

Um Sistema de Computação pode ser visto como um


subsistema dos Sistemas de Informação.

Definição: Conjunto de partes integradas que coordenam


os dispositivos de E/S e memória para realização do
processamento de dados.
Sistema de Computação

Um Sistema de Computação pode ser visto como um


subsistema dos Sistemas de Informação.

Definição: Conjunto de partes integradas que coordenam


os dispositivos de E/S e memória para realização do
processamento de dados.

Sistema de Computação: HARDWARE + SOFTWARE


Sistemas Embutidos

O que são Sistemas Embutidos?


Sistemas Embutidos

O que são Sistemas Embutidos?

“An Embedded System is an applied computer system”. (T.


Noergards - Embedded systems architecture)
Sistemas Embutidos

O que são Sistemas Embutidos?

“An Embedded System is an applied computer system”. (T.


Noergards - Embedded systems architecture)

“Um sistema embarcado, ou sistema embutido, é qualquer


sistema que inclua um computador, mas que não seja de
uso geral”.
Sistemas Embutidos

O que são Sistemas Embutidos?

“An Embedded System is an applied computer system”. (T.


Noergards - Embedded systems architecture)

“Um sistema embarcado, ou sistema embutido, é qualquer


sistema que inclua um computador, mas que não seja de
uso geral”.

“Um sistema embarcado (ou embutido) é um sistema


microprocessado no qual o computador é completamente
encapsulado ou dedicado ao dispositivo ou sistema que
controla”.
Sistemas Embutidos

Exemplos:

Impressora
Sistemas Embutidos

Exemplos:

Impressora

Roteador
Sistemas Embutidos

Exemplos:

Impressora

Roteador

Automóveis (contém vários SE)


Sistemas Embutidos

Exemplos:

Impressora

Roteador

Automóveis (contém vários SE)

Micro-ondas
Sistemas Embutidos

Exemplos:

Impressora

Roteador

Automóveis (contém vários SE)

Micro-ondas

Televisão
Sistemas Embutidos

Exemplos:

Impressora

Roteador

Automóveis (contém vários SE)

Micro-ondas

Televisão

etc
Sistemas Embutidos
Exemplos:

Apollo Guidance Computer (AGC)

Foi o primeiro sistema embarcado da história, desenvolvido


pelo MIT no inı́cio dos anos 60 para equipar as naves do
Projeto Apollo.
Sistemas Embutidos

Exemplos:

Um Smartphone é um Sistema Embarcado?


Sistemas Embutidos
Exemplos:
Sistemas Embutidos

Exemplos:
Sistemas Embutidos

Exemplos:
Sistemas Embutidos

Exemplos:
Sistemas Embutidos

Exemplos:
Caracterı́sticas dos Sistemas Embutidos

Funcionalidades Sofisticadas e Especı́ficas.


Caracterı́sticas dos Sistemas Embutidos

Funcionalidades Sofisticadas e Especı́ficas.

Interfaceamento com partes mecânicas/sensores.


Caracterı́sticas dos Sistemas Embutidos

Funcionalidades Sofisticadas e Especı́ficas.

Interfaceamento com partes mecânicas/sensores.

Restrições de projeto rı́gidas.


Caracterı́sticas dos Sistemas Embutidos

Funcionalidades Sofisticadas e Especı́ficas.

Interfaceamento com partes mecânicas/sensores.

Restrições de projeto rı́gidas.

Baixo custo de fabricação.


Caracterı́sticas dos Sistemas Embutidos

Funcionalidades Sofisticadas e Especı́ficas.

Interfaceamento com partes mecânicas/sensores.

Restrições de projeto rı́gidas.

Baixo custo de fabricação.

Memória restrita.
Caracterı́sticas dos Sistemas Embutidos

Funcionalidades Sofisticadas e Especı́ficas.

Interfaceamento com partes mecânicas/sensores.

Restrições de projeto rı́gidas.

Baixo custo de fabricação.

Memória restrita.

Baixo consumo de energia


Caracterı́sticas dos Sistemas Embutidos

Funcionalidades Sofisticadas e Especı́ficas.

Interfaceamento com partes mecânicas/sensores.

Restrições de projeto rı́gidas.

Baixo custo de fabricação.

Memória restrita.

Baixo consumo de energia


Consumo de energia é crı́tico em dispositivos que usam
bateria.
Caracterı́sticas dos Sistemas Embutidos

Funcionalidades Sofisticadas e Especı́ficas.

Interfaceamento com partes mecânicas/sensores.

Restrições de projeto rı́gidas.

Baixo custo de fabricação.

Memória restrita.

Baixo consumo de energia


Consumo de energia é crı́tico em dispositivos que usam
bateria.

Quando não usa bateria, dissipação de calor se torna outro


problema.
Requisitos de Tempo Real

Sistema tem que ser determinı́stico.

Hard Real Time: não atender a um deadline causa falhas


graves.

Soft Real Time: não atender a um deadline causa


problemas que não levam a falhas graves.

Estudo mais detalhado na disciplina BCC 722.


Requisitos Especı́ficos

Requisitos especiais dependentes da aplicação

Fault-tolerant
Sistemas funcionam independentemente de falhas de
hardware ou software. (Ex.: aviões, sistemas médicos)

Safe
Sistema para evitar danos fı́sicos ou econômicos.
Outros Recursos

Sistemas Dedicados

Funcionalidade pré-definida: de acordo com o design do


hardware e do software.

Programabilidade raramente utilizada em seu ciclo de vida.


Arquitetura de um sistema embutido

Abstração do sistema, ou seja, uma generalização pouco


detalhada com informações sobre hardware e software.
Arquitetura de um sistema embutido

Abstração do sistema, ou seja, uma generalização pouco


detalhada com informações sobre hardware e software.

Inclui: elementos do sistema, elementos que interagem


com o sistema, propriedades de cada elemento, e
relações de interação entre estes.
Arquitetura de um sistema embutido

Abstração do sistema, ou seja, uma generalização pouco


detalhada com informações sobre hardware e software.

Inclui: elementos do sistema, elementos que interagem


com o sistema, propriedades de cada elemento, e
relações de interação entre estes.
É o primeiro passo para um projeto de um sistema
embutido.
Arquitetura de um sistema embutido

Abstração do sistema, ou seja, uma generalização pouco


detalhada com informações sobre hardware e software.

Inclui: elementos do sistema, elementos que interagem


com o sistema, propriedades de cada elemento, e
relações de interação entre estes.
É o primeiro passo para um projeto de um sistema
embutido.
Desafios: definir o design do sistema, limitações de custo,
confiabilidade e robustez.
Arquitetura Conceitual
Arquitetura Conceitual
Hardware Layer
Arquitetura Conceitual
Hardware Layer

Processador Embarcado
Arquitetura Conceitual
Hardware Layer

Processador Embarcado

Memórias (ROM, RAM, etc.)


Arquitetura Conceitual
Hardware Layer

Processador Embarcado

Memórias (ROM, RAM, etc.)

Dispositivos de I/O:
Arquitetura Conceitual
Hardware Layer

Processador Embarcado

Memórias (ROM, RAM, etc.)

Dispositivos de I/O:
Rede e comunicação
Arquitetura Conceitual
Hardware Layer

Processador Embarcado

Memórias (ROM, RAM, etc.)

Dispositivos de I/O:
Rede e comunicação

Input (teclado, mouse, controle remoto, etc.)


Arquitetura Conceitual
Hardware Layer

Processador Embarcado

Memórias (ROM, RAM, etc.)

Dispositivos de I/O:
Rede e comunicação

Input (teclado, mouse, controle remoto, etc.)

Output (touch screen, LEDs, impressoras, etc.)


Arquitetura Conceitual
Hardware Layer

Processador Embarcado

Memórias (ROM, RAM, etc.)

Dispositivos de I/O:
Rede e comunicação

Input (teclado, mouse, controle remoto, etc.)

Output (touch screen, LEDs, impressoras, etc.)

Armazenamento (discos, CD, DVD, etc.)


Arquitetura Conceitual
Hardware Layer

Processador Embarcado

Memórias (ROM, RAM, etc.)

Dispositivos de I/O:
Rede e comunicação

Input (teclado, mouse, controle remoto, etc.)

Output (touch screen, LEDs, impressoras, etc.)

Armazenamento (discos, CD, DVD, etc.)

Depuração (BDM, JTAG, porta serial)


Arquitetura Conceitual
Hardware Layer

Processador Embarcado

Memórias (ROM, RAM, etc.)

Dispositivos de I/O:
Rede e comunicação

Input (teclado, mouse, controle remoto, etc.)

Output (touch screen, LEDs, impressoras, etc.)

Armazenamento (discos, CD, DVD, etc.)

Depuração (BDM, JTAG, porta serial)

Barramentos (PCI, IDE, USB, etc.)


Arquitetura Conceitual

Hardware Layer

Fonte de Alimentação
Resistores
Capacitores
Indutores
Transistores
Diodos
Chaves
Relés
Sensores
Arquitetura Conceitual

System Software Layer


Arquitetura Conceitual
O SO é um conjunto de bibliotecas de software com dois
propósitos principais em um Sistema Embarcado:
Prover maior nı́vel de abstração.
Gerenciar os vários recursos de software e hardware do
sistema, através de um kernel (gerenciamento de
processos, memória e I/O).
Arquitetura Conceitual

Embedded SOs
Arquitetura Conceitual

Application Software Layer


Projeto de Sistemas Embutidos

Multi-objetivo Multi-disciplinar
Custo Eletrônica
Segurança Computação
Requisitos de Tempo Mecânica
Técnicas de Controle

Ciclo de Vida
Requisitos
Projeto
Implementação
Manufatura
Logı́stica
Desafios no Projeto de Sistemas Embutidos

Quais as caracterı́sticas de Hardware necessárias?


Desafios no Projeto de Sistemas Embutidos

Quais as caracterı́sticas de Hardware necessárias?


Será necessário um Hardware poderoso?
Desafios no Projeto de Sistemas Embutidos

Quais as caracterı́sticas de Hardware necessárias?


Será necessário um Hardware poderoso?

Qual tamanho da palavra do CPU?


Desafios no Projeto de Sistemas Embutidos

Quais as caracterı́sticas de Hardware necessárias?


Será necessário um Hardware poderoso?

Qual tamanho da palavra do CPU?

Qual o tamanho da memória?


Desafios no Projeto de Sistemas Embutidos

Quais as caracterı́sticas de Hardware necessárias?


Será necessário um Hardware poderoso?

Qual tamanho da palavra do CPU?

Qual o tamanho da memória?

Quais os deadlines e como atendê-los?


Desafios no Projeto de Sistemas Embutidos

Quais as caracterı́sticas de Hardware necessárias?


Será necessário um Hardware poderoso?

Qual tamanho da palavra do CPU?

Qual o tamanho da memória?

Quais os deadlines e como atendê-los?


Hardware ou Software mais eficiente?
Desafios no Projeto de Sistemas Embutidos

Quais as caracterı́sticas de Hardware necessárias?


Será necessário um Hardware poderoso?

Qual tamanho da palavra do CPU?

Qual o tamanho da memória?

Quais os deadlines e como atendê-los?


Hardware ou Software mais eficiente?

Quão crı́tico é o consumo de energia?


Desafios no Projeto de Sistemas Embutidos

Quais as caracterı́sticas de Hardware necessárias?


Será necessário um Hardware poderoso?

Qual tamanho da palavra do CPU?

Qual o tamanho da memória?

Quais os deadlines e como atendê-los?


Hardware ou Software mais eficiente?

Quão crı́tico é o consumo de energia?


Como minimizar o custo de energia?
Desafios no Projeto de Sistemas Embutidos

Quais as caracterı́sticas de Hardware necessárias?


Será necessário um Hardware poderoso?

Qual tamanho da palavra do CPU?

Qual o tamanho da memória?

Quais os deadlines e como atendê-los?


Hardware ou Software mais eficiente?

Quão crı́tico é o consumo de energia?


Como minimizar o custo de energia?

Usar bateria ou não?


Processo de Desenvolvimento de um Produto
Análise de Requisitos

Compreensão do domı́nio: os analistas de requisitos


devem conhecer a fundo o domı́nio da aplicação.
Análise de Requisitos

Compreensão do domı́nio: os analistas de requisitos


devem conhecer a fundo o domı́nio da aplicação.

Coleta de requisitos: processo de interação com o


usuário da aplicação para descobrir os requisitos
necessários.
Análise de Requisitos

Compreensão do domı́nio: os analistas de requisitos


devem conhecer a fundo o domı́nio da aplicação.

Coleta de requisitos: processo de interação com o


usuário da aplicação para descobrir os requisitos
necessários.

Classificação de requisitos: organização dos requisitos


em grupos coerentes.
Análise de Requisitos

Compreensão do domı́nio: os analistas de requisitos


devem conhecer a fundo o domı́nio da aplicação.

Coleta de requisitos: processo de interação com o


usuário da aplicação para descobrir os requisitos
necessários.

Classificação de requisitos: organização dos requisitos


em grupos coerentes.

Verificação de requisitos: os requisitos devem ser


constantemente verificados para descobrir se estão
completos.
Projeto

A fase de projeto envolve todo o esforço de concepção e


modelagem da aplicação.
Projeto

A fase de projeto envolve todo o esforço de concepção e


modelagem da aplicação.
Projeto do Hardware
Projeto

A fase de projeto envolve todo o esforço de concepção e


modelagem da aplicação.
Projeto do Hardware
Qual será utilizado?
Projeto

A fase de projeto envolve todo o esforço de concepção e


modelagem da aplicação.
Projeto do Hardware
Qual será utilizado?
Qual processador?
Projeto

A fase de projeto envolve todo o esforço de concepção e


modelagem da aplicação.
Projeto do Hardware
Qual será utilizado?
Qual processador?
Qual memória?
Projeto

A fase de projeto envolve todo o esforço de concepção e


modelagem da aplicação.
Projeto do Hardware
Qual será utilizado?
Qual processador?
Qual memória?
Projeto do Software
Projeto

A fase de projeto envolve todo o esforço de concepção e


modelagem da aplicação.
Projeto do Hardware
Qual será utilizado?
Qual processador?
Qual memória?
Projeto do Software
Qual linguagem de programação?
Projeto

A fase de projeto envolve todo o esforço de concepção e


modelagem da aplicação.
Projeto do Hardware
Qual será utilizado?
Qual processador?
Qual memória?
Projeto do Software
Qual linguagem de programação?
Tem interface com o usuário?
Projeto

A fase de projeto envolve todo o esforço de concepção e


modelagem da aplicação.
Projeto do Hardware
Qual será utilizado?
Qual processador?
Qual memória?
Projeto do Software
Qual linguagem de programação?
Tem interface com o usuário?
Como o Software será implementado? POO?
Projeto

A fase de projeto envolve todo o esforço de concepção e


modelagem da aplicação.
Projeto do Hardware
Qual será utilizado?
Qual processador?
Qual memória?
Projeto do Software
Qual linguagem de programação?
Tem interface com o usuário?
Como o Software será implementado? POO?
Abordagem de Projeto
Projeto

A fase de projeto envolve todo o esforço de concepção e


modelagem da aplicação.
Projeto do Hardware
Qual será utilizado?
Qual processador?
Qual memória?
Projeto do Software
Qual linguagem de programação?
Tem interface com o usuário?
Como o Software será implementado? POO?
Abordagem de Projeto
Top-down: inicia com uma descrição abstrata e vai até a
descrição mais detalhada.
Projeto

A fase de projeto envolve todo o esforço de concepção e


modelagem da aplicação.
Projeto do Hardware
Qual será utilizado?
Qual processador?
Qual memória?
Projeto do Software
Qual linguagem de programação?
Tem interface com o usuário?
Como o Software será implementado? POO?
Abordagem de Projeto
Top-down: inicia com uma descrição abstrata e vai até a
descrição mais detalhada.
Bottom-up: inicia dos componentes menores e vai até o
todo (sistema final)
Implementação

Hardware
Ferramentas CAD.

Kits de prototipação
Dispositivos programáveis (FPGA).

Elementos de hardware (USB, Ethernet, PCI, LEDs, botões,


LCD, display de 7 segmentos).

Software
Utilização de IDEs.

Execução integrada com o kit de prototipação.


Verificação & Validação
Mostrar que o sistema está de acordo com a especificação
e que ele atende às expectativas de clientes e usuários.
Verificação & Validação
Mostrar que o sistema está de acordo com a especificação
e que ele atende às expectativas de clientes e usuários.

A verificação visa assegurar que o programa está correto,


isto é, não possui erros de execução.
Verificação & Validação
Mostrar que o sistema está de acordo com a especificação
e que ele atende às expectativas de clientes e usuários.

A verificação visa assegurar que o programa está correto,


isto é, não possui erros de execução.

A validação visa assegurar que o programa está fazendo


aquilo que foi definido na sua especificação.
Verificação & Validação
Mostrar que o sistema está de acordo com a especificação
e que ele atende às expectativas de clientes e usuários.

A verificação visa assegurar que o programa está correto,


isto é, não possui erros de execução.

A validação visa assegurar que o programa está fazendo


aquilo que foi definido na sua especificação.

Formas de V&V:
Verificação & Validação
Mostrar que o sistema está de acordo com a especificação
e que ele atende às expectativas de clientes e usuários.

A verificação visa assegurar que o programa está correto,


isto é, não possui erros de execução.

A validação visa assegurar que o programa está fazendo


aquilo que foi definido na sua especificação.

Formas de V&V:
Inspeção analı́tica e revisão de modelos.
Verificação & Validação
Mostrar que o sistema está de acordo com a especificação
e que ele atende às expectativas de clientes e usuários.

A verificação visa assegurar que o programa está correto,


isto é, não possui erros de execução.

A validação visa assegurar que o programa está fazendo


aquilo que foi definido na sua especificação.

Formas de V&V:
Inspeção analı́tica e revisão de modelos.
Inspeção de documentos e código fonte.
Verificação & Validação
Mostrar que o sistema está de acordo com a especificação
e que ele atende às expectativas de clientes e usuários.

A verificação visa assegurar que o programa está correto,


isto é, não possui erros de execução.

A validação visa assegurar que o programa está fazendo


aquilo que foi definido na sua especificação.

Formas de V&V:
Inspeção analı́tica e revisão de modelos.
Inspeção de documentos e código fonte.
Análise de desempenho.
Verificação & Validação
Mostrar que o sistema está de acordo com a especificação
e que ele atende às expectativas de clientes e usuários.

A verificação visa assegurar que o programa está correto,


isto é, não possui erros de execução.

A validação visa assegurar que o programa está fazendo


aquilo que foi definido na sua especificação.

Formas de V&V:
Inspeção analı́tica e revisão de modelos.
Inspeção de documentos e código fonte.
Análise de desempenho.
Análise de confiabilidade.
Verificação & Validação
Mostrar que o sistema está de acordo com a especificação
e que ele atende às expectativas de clientes e usuários.

A verificação visa assegurar que o programa está correto,


isto é, não possui erros de execução.

A validação visa assegurar que o programa está fazendo


aquilo que foi definido na sua especificação.

Formas de V&V:
Inspeção analı́tica e revisão de modelos.
Inspeção de documentos e código fonte.
Análise de desempenho.
Análise de confiabilidade.
Análise de robustez.
Verificação & Validação
Mostrar que o sistema está de acordo com a especificação
e que ele atende às expectativas de clientes e usuários.

A verificação visa assegurar que o programa está correto,


isto é, não possui erros de execução.

A validação visa assegurar que o programa está fazendo


aquilo que foi definido na sua especificação.

Formas de V&V:
Inspeção analı́tica e revisão de modelos.
Inspeção de documentos e código fonte.
Análise de desempenho.
Análise de confiabilidade.
Análise de robustez.
Análise de usabilidade.
Manutenção

Dura para sempre.


Futuro dos Sistemas Embutidos

A cada dia mais presentes no nosso dia-a-dia.


Futuro dos Sistemas Embutidos

A cada dia mais presentes no nosso dia-a-dia.

A cada dia ganhando mais espaço na academia e na


indústria.
Futuro dos Sistemas Embutidos

A cada dia mais presentes no nosso dia-a-dia.

A cada dia ganhando mais espaço na academia e na


indústria.

Adquirem cada vez mais importância.


Futuro dos Sistemas Embutidos

A cada dia mais presentes no nosso dia-a-dia.

A cada dia ganhando mais espaço na academia e na


indústria.

Adquirem cada vez mais importância.

O mercado de embarcados é maior que o de desktops e


deve continuar crescendo exponencialmente.
Futuro dos Sistemas Embutidos

Embutidos vs não Embutidos


Futuro dos Sistemas Embutidos
Futuro dos Sistemas Embutidos

<http://www.telecomengine.com/article/future-iot-embedded-systems-and-real-time-operating-systems-rtos-0>
Futuro dos Sistemas Embutidos

<https://www.gminsights.com/industry-analysis/embedded-system-market>
Futuro dos Sistemas Embutidos

Sistemas autônomos (vı́deo).


Exercı́cios:

O que é um sistema embarcado, quais suas principais


caracterı́sticas?
Descreva as três camadas da arquitetura de um sistema
embutido e qual a sua importância.
Descreva o processo de desenvolvimento de um sistema
embutido.
FIM

Você também pode gostar