O que é um sistema embarcado?

Se olharmos em volta, estaremos rodeados de sistemas de computação. Todos os anos, milhões de sistemas de computação são construídos destinados a computadores desktop
Figura 1: Uma imagem representacional do sistema embarcado
(computadores pessoais, estações de trabalho, mainframes e servidores), mas surpreendentemente, bilhões de sistemas de computação são construídos todos os anos incorporados em dispositivos eletrônicos maiores e ainda passam despercebidos. Qualquer dispositivo movido a energia elétrica já possui sistema de computação ou em breve terá sistema de computação incorporado.

Hoje, sistemas embarcados são encontrados em telefones celulares, câmeras digitais, filmadoras, videogames portáteis, calculadoras e assistentes pessoais digitais, fornos de micro-ondas, secretárias eletrônicas, sistemas de segurança residencial, máquinas de lavar, sistemas de iluminação, aparelhos de fax, copiadoras, impressorase scanners, caixas registradoras, sistemas de alarme, caixas eletrônicos, controle de transmissão, controle de cruzeiro, injeção de combustível, freios antibloqueio, suspensão ativa e muitos outros dispositivos/aparelhos.
O que é sistema embarcado?
Um preciso definição de sistemas embarcados não é fácil. Simplificando, todos os sistemas de computação, exceto computadores de uso geral (com monitor, teclado, etc.) são sistemas embarcados.
Sistema é uma forma de trabalhar, organizar ou executar uma ou mais tarefas de acordo com um conjunto fixo de regras, programa ou plano. Em outras palavras, um arranjo no qual todas as unidades se reúnem e trabalham juntas de acordo com um programa ou plano. Um sistema embarcado é um sistema que possui software embutido no hardware, o que torna um sistema dedicado para uma (s) aplicação (ões) ou parte específica de uma aplicação ou produto ou parte de um sistema maior. Ele processa um conjunto fixo de instruções pré-programadas para controlar equipamentos eletromecânicos que podem fazer parte de um sistema ainda maior (não um computador com teclado, display, etc.).
Uma definição geral de sistemas embarcados é que eles são dispositivos usados ​​para controlar, monitorar ou auxiliar a operação de equipamentos, máquinas ou instalações. “Incorporados” reflete o fato de serem parte integrante do sistema. Em muitos casos, a sua “integração” pode ser tal que a sua presença está longe de ser óbvia para o observador casual. Diagrama de blocos de um sistema embarcado típico é mostrado na fig.
Um diagrama de blocos mostrando um sistema embarcado típico
Fig. 2: Um diagrama de blocos mostrando um sistema embarcado típico

Um sistema embarcado é um artefato de engenharia que envolve computação que está sujeito a restrições físicas (restrições de reação e restrições de execução) decorrentes de interações de processos computacionais com o mundo físico. As restrições de reação se originam dos requisitos comportamentais e especificam prazos, rendimento e jitter, enquanto as restrições de execução se originam dos requisitos de implementação e impõem limites às velocidades de processador disponíveis, potência, memória e taxas de falha de hardware. A chave para o projeto de sistemas embarcados é obter a funcionalidade desejada sob ambos os tipos de restrições.

CARACTERÍSTICAS
a) Os sistemas embarcados são específicos da aplicação e têm função única; aplicação é conhecida a priori, os programas são executados repetidamente.
b) A eficiência é de suma importância para sistemas embarcados. Eles são otimizados para energia, tamanho do código, tempo de execução, peso e dimensões e custo.
c) Os sistemas embarcados são normalmente projetados para atender às restrições de tempo real; um sistema em tempo real reage aos estímulos do objeto/operador controlado dentro do intervalo de tempo ditado pelo ambiente. Para sistemas em tempo real, as respostas certas que chegam tarde demais (ou mesmo cedo demais) são erradas.
e) Os sistemas embarcados frequentemente interagem (sentem, manipulam e comunicam) com o mundo externo através de sensores e atuadores e, portanto, são sistemas tipicamente reativos; um sistema reativo está em interação contínua com o ambiente e executa em um ritmo determinado por esse ambiente.
e) Eles geralmente têm interface de usuário mínima ou nenhuma.

Métricas e Arquitetura de Design

MÉTRICAS DE PROJETO PARA SISTEMAS INCORPORADOS
Além de atender à funcionalidade desejada de um sistema embarcado, o projetista de sistemas embarcados deve otimizar as seguintes métricas de projeto
· Nsobre Rocorrendo ECusto de engenharia (NRE): Dinheiro investido em P&D e no desenvolvimento do primeiro protótipo funcional e testado.
· Custo Unitário: Custo de produção de uma unidade
· Energia elétrica
· Desempenho – Taxa de transferência do sistema, poder computacional, tempo de resposta
· Correção Funcional
· Confiabilidade; Tolerância a falhas, confiabilidade, capacidade de manutenção, disponibilidade
· Tamanho físico e peso
· Hora de prototipar
· Hora de chegar ao mercado
· Segurança: Não deve causar danos a terceiros.
· Manutenção, facilidade de uso
Estas métricas competem entre si; aumentar um pode afetar outros. Conseqüentemente, a otimização dessas métricas é um desafio para um projetista de sistemas embarcados.

ELEMENTOS DE SISTEMAS EMBUTIDOS
. Hardware
O elemento central de um sistema embarcado é o processador ou uma unidade computacional. Os processadores podem atuar como cérebro do sistema. Eles podem ser programados para executar uma tarefa. Isso pode ser projetado usando uma variedade de opções.
· Microprocessadores de uso geral
Microprocessadores de uso geral são dispositivos semicondutores de chip único que são um computador em chip, mas não um computador completo. Sua CPU contém uma Unidade Aritmética e Lógica (ALU), um Contador de Programa (PC), um Stack Pointer (SP), registradores, um clock e circuito de interrupções em um único chip. Para fazer um microcomputador completo, é necessário adicionar memória geralmente ROM e RAM, decodificador de memória, um oscilador, várias portas seriais e paralelas
Um diagrama que ilustra a estrutura de um microprocessador de uso geral
Fig. 3: Um diagrama que ilustra a estrutura de um microprocessador de uso geral

Um processador de uso geral é projetado para atender a uma grande quantidade de aplicações e, portanto, é produzido em massa. Usá-lo em um sistema embarcado oferece vários benefícios. O tempo de design é baixo, pois apenas o software deve ser desenvolvido, sem nenhum design digital envolvido. As características típicas de processadores de uso geral são custo relativamente alto, altas velocidades, maior consumo de energia, arquitetura grande, grande tamanho de memória, flash e cache integrados, uma interface de barramento externo para maior uso de memória.
Exemplos: 680×0 da Motorola, x86 da Intel
· Microcontroladores/processadores embarcados
A microcontrolador é um sistema de computador funcional em um chip. Ele contém um processador integrado, memória (uma pequena quantidade de RAM, memória de programa ou ambos), vários dispositivos periféricos, como temporizadores, conversores analógico-digitais e dispositivos de comunicação serial tudo em um chip resultando em implementações compactas e de baixo consumo de energia.É euNão é expansível porque não possui interface de barramento externo. Exemplos são FOTOde DSPIC33 / PIC24, 6811 da Motorola, Intel 8051
As características típicas de um microcontrolador são: Baixo custo, Baixa velocidade, Baixo consumo de energia, Arquitetura pequena, Tamanho de memória pequeno, Flash integrado, E/S limitada.

Uma imagem representacional do sistema embarcado

Fig. 4: Uma figura mostrando diferentes elementos de um microprocessador/processador incorporado

Os microcontroladores fornecem acesso por pinos que permite aos programas monitorar facilmente sensores, definir atuadores e transferir dados com outros dispositivos. Fornecer instruções especializadas melhora o desempenho de aplicações de sistemas embarcados; portanto, os microcontroladores podem ser considerados ASIPs até certo ponto.
Microcontroladores especiais são frequentemente chamados de processadores embarcados. A diferença entre um microcontrolador e um processador embarcado não é clara, mas processadores com grandes arquiteturas com processamento rápido, troca rápida de contexto e operações atômicas de ALU são comercializados por muitos fornecedores como processadores embarcados. Exemplos de processadores embarcados são BRAÇO 7, Intel i960, AMD 29050
· ASIP/DSP
Um processador de conjunto de instruções específico de aplicação (ou ASIP) é projetado para uma classe específica de aplicações com características comuns, como processamento de sinais digitais, telecomunicações, controle embarcado, etc. flexibilidade enquanto ainda alcança bom desempenho, potência e tamanho. No entanto, tais processadores podem exigir grandes Nsobre-Rocorrendo Ecusto de engenharia (NRE) (para construir o processador, compilador, se eles não existirem). Ddigital-Ssinalizar Pprocessadores (DSPs) são uma classe comum de ASIP. DSP é um único chip VLSI unidade; um processador projetado especialmente para suportar tarefas de alto desempenho, repetitivas e numericamente intensivas, incluindo operações como multiplicação e adição ou mudança e adição.
Os recursos típicos dos processadores DSP são
1. Arquitetura de Harvard
2. Unidade MAC para suporte Multimamente-ACacumular operações em um único ciclo.
3. Capacidade de completar vários acessos à memória em um único ciclo de instrução.
4. Uma ou mais unidades dedicadas de geração de endereços para acelerar o processamento aritmético.
Exemplos de DSP são: TMS320Cxx, SHARC e Motorola 5600xx.
· ASIC
ICs são basicamente “chips”, ou seja, wafers de silício com transistores, resistores, capacitores fabricados para atuar como microprocessadores, amplificadores, memória, etc.Aaplicação Sespecífico EUintegrado Ccircuitos) são projetados para uma aplicação especial. Conversor digital para áudio, receptor DSSS e decodificador Mpeg2 são exemplos de ASICs.
Os ASICs oferecem desempenho muito alto, mas o custo do NRE é muito alto. Com ASICs, o fechamento do tempo é um problema, especialmente com geometrias submicrométricas profundas. A reconfigurabilidade é altamente limitada.

· FPGA/CPLD
Fcampo Pprogramável Gcomeu Araio(FPGA) é uma alternativa totalmente programável a um chip personalizado. Eles também são chamados de Unidade de Processamento Reconfigurável.
É uma matriz bidimensional de blocos lógicos e flip-flops com um meio para o usuário configurar a interconexão entre os blocos lógicos e a função de cada bloco. A tecnologia FPGA permite incorporar um processador, ROM, RAM, DSP e qualquer outro bloco em um único chip. Isso está substituindo muitos chips de circuito integrado de aplicação específica. FPGA oferece vantagem de desempenho de hardware paralelo com a flexibilidade do software. Isto tem grandes vantagens em termos de custo, confiabilidade, capacidade de reutilização da propriedade intelectual e tempo de colocação no mercado.
Baseados em interconexões entre células, são de dois tipos de FPGAs
¨ Reprogramável (baseado em SRAM) – Xilinx, LatticeXP2, Altera, Atmel
¨ Programável uma vez – Actel, Quicklogic
Ccomplexo Pprogramável eumágico Devices (CPLD) são ligeiramente diferentes dos FPGAs; A diferença reside principalmente na arquitetura. Um CPLD consiste em uma ou mais matrizes lógicas de soma de produtos programáveis ​​que alimentam um número relativamente pequeno de registradores sincronizados. Como resultado, eles são menos flexíveis e, portanto, oferecem a vantagem de atrasos de temporização mais previsíveis e uma relação lógica-interconexão mais alta. Por outro lado, as arquiteturas FPGA são dominadas pela interconexão. Isso os torna muito mais flexíveis, mas também muito mais complexos de serem projetados. Além disso, os FPGAs são geralmente muito maiores em termos de recursos do que os CPLDs. Outra distinção comum é que os CPLDs contêm flash incorporado para armazenar sua configuração, enquanto os FPGAs geralmente, mas nem sempre, exigem um flash externo.
· SoCs reconfiguráveis
A evolução tecnológica, particularmente a redução das geometrias de fabricação de silício, está permitindo a integração de plataformas complexas em um único Ssistema-ón-Cquadril (SoC). Além de subsistemas de hardware específicos, um SoC moderno também pode incluir um ou vários subsistemas de CPU para executar software e interconexões sofisticadas. Plataformas multimídia como Nomadik e Nexperia são exemplos de SoCs multiprocessadores que usam processadores de sinais digitais, microcontroladores e outros tipos de processadores programáveis. FPSLIC da Atmel (AVR+FPGA), OMAP da TI (ARM Cortex + GPU personalizada+TI DSP) são outros exemplos.

Arquitetura II

2. Programas
Se o hardware formar o corpo do sistemas embarcados, o software é a alma dos sistemas embarcados. O software empresta a funcionalidade a um sistema embarcado.
Uma variedade de linguagens surgiu à medida que as tarefas a serem executadas pelos sistemas embarcados são de natureza bastante diversa. Uma linguagem pode ser boa para aplicações dominadas por controle, mas pode não ser tão boa para aplicações de processamento de sinais.
a) Linguagens de hardware
Verilog e Vcircuitos integrados de alta velocidade Hhardware Ddescrição eulinguagem (VHDL) são as linguagens mais populares nesta categoria. Ambos descrevem sistemas com hierarquia estrutural, sistemas modelo com semântica de eventos discretos; permitir que processos simultâneos sejam descritos processualmente. Verilog é destinado à simulação de circuitos integrados digitais, enquanto o VHDL é muito maior e detalhado e pode lidar com uma classe mais ampla de tarefas de modelagem e simulação.
b) Linguagens de software
As linguagens de software usam instruções para descrever sequências a serem executadas. As linguagens de software são de dois tipos: linguagens assembly e linguagens de alto nível. Um programa em linguagem assembly contém instruções escritas em forma simbólica e é definido por opcodes, modos de endereçamento, registradores e memórias. Linguagens de alto nível incluem C, C++, RT-Java, ADA, etc. Elas usam várias construções como funções, loops, arrays, variáveis, estruturas etc.
c) Linguagens de fluxo de dados
As linguagens Datafow descrevem sistemas de processos processuais que são executados simultaneamente e se comunicam por meio de filas. Um modelo de fluxo de dados é composto por nós, que transformam dados, e arcos, que representam a passagem de dados entre esses nós. Eles não são convenientes para aplicações gerais, mas muito bons para aplicações de processamento de sinais. As redes de processos Kahn são uma das aplicações. LUSTER é um exemplo de linguagem de fluxo de dados síncrono.
e) Linguagens híbridas
Esta categoria de línguas combina ideias de outras línguas.
Esterel (destinado para sistemas reativos dominados por controle) combina semântica abstrata de hardware (simultaneidade e sincronismo de circuitos digitais) com diferentes tipos de construções de linguagem de software típica.
SDL é uma linguagem gráfica desenvolvida para descrever protocolos de telecomunicações (usa máquinas de estados finitos)
SistemaC oferece modelos de simulação de eventos discretos semelhantes a VHDL, mas permite a introdução de execução assíncrona e mecanismos de interação de software (C++).
CocêntricoMT O System Studio combina fluxo de dados do tipo Kahn com semântica FSM do tipo Esterel para simular e sintetizar aplicativos de fluxo de dados que também exigem controle.

Arquitetura III

3. Interface para o mundo físico
Os sistemas embarcados fazem interface com o mundo físico por meio de sensores e atuadores. Sensores atuam como “sentidos” para um sistema embarcado, enquanto os atuadores atuam como “membros”. Variedades de sensores que trabalham com vários princípios de detecção são usados ​​em sistemas embarcados. Luz, temperatura, aceleração, velocidade, massa, distância, etc. são parâmetros físicos comuns que são detectados. Os motores são um dos atuadores usados ​​em muitos sistemas.
Esses transdutores fazem interface com o processador por meio de diversas interfaces:
. Interfaces de comunicação serial (SCI): RS-232, RS-422, RS-485 etc.
. Interface de comunicação serial síncrona: I2C, SPI
. Barramento Serial Universal (USB)
. Redes: Ethernet, Controller Area Network (CAN), etc.
. E/S discreta: entrada/saída de uso geral (GPIO)
. Conversor analógico para digital/digital para analógico (ADC/DAC).

CONCEITOS IMPORTANTES RELEVANTES
1. Arquitetura de Computadores
Duas arquiteturas de processador predominantes comuns são Neumann Vs Harvard. As arquiteturas Von Neumann possuem o mesmo espaço de memória de programa e dados; ambos compartilham barramento de endereço e barramento de dados. A arquitetura Harvard possui diferentes espaços de memória para programas e dados. Para cada um deles, são fornecidos barramentos de dados e barramentos de endereços separados. Um diagrama que representa a comparação da arquitetura Neumann e Harvard
Fig. 5: Um diagrama que representa a comparação da arquitetura Neumann e Harvard

2. EUinstrução Set Aarquitetura (ISA)
ISA serve como uma camada de abstração entre o software e o hardware. Reducado EUinstrução Set Ccomputador (RISC) eCcomplexo EUinstrução Set COmputer (CISC) representa duas filosofias concorrentes diferentes no projeto de arquitetura de computadores modernos.
RISC possui instruções primitivas simples e modos de endereçamento. As instruções têm comprimento uniforme, são executadas em um ciclo de clock e suportam pipeline. Os chips CISC possuem uma grande quantidade de comprimento variável, instruções diferentes e complexas e demoram mais que um ciclo de clock para serem executados.
Os chips CISC são relativamente lentos por instrução em comparação com os chips RISC, mas usam menos instruções que o RISC. Assim, os sistemas RISC encurtam o tempo de execução reduzindo os ciclos de clock por instrução, enquanto CISC encurtam o tempo de execução reduzindo MIPS R2000 é um produto típico de RISC puro e Intel 80386 é um tipo típico de chip CISC puro.

Projetando um sistema embarcado

PROJETANDO UM SISTEMA INTEGRADO
Um projeto de sistema embarcado envolve vários estágios listados abaixo
· Análise de requisitos
· Definindo as especificações do sistema
ó Modelação do sistema a projetar – Experimentação de diferentes algoritmos e sua avaliação preliminar. Fatorar a tarefa em subtarefas menores e modelar sua interação
ó Particionamento HW-SW (alocando as tarefas em H/W, S/W) ou Co-design (o design H/W e S/W prossegue em paralelo com interações e feedback entre os dois processos. A otimização conjunta otimiza as métricas de projeto)
· Seleção de tecnologia
· Análise de Recursos – Custo, Tempo e Mão de Obra
· Identificação de componentes e ferramentas de desenvolvimento
· Projeto de circuito/captura esquemática, projeto e fabricação de layout de PCB
· Desenvolvimento de firmware – depuração e teste
· Integração de Sistemas
· Teste – funcional, ambiental
· Certificações, se necessário.
· Documentação
Existem diferentes metodologias de ciclos de projeto utilizadas para projetar sistemas embarcados.
· Modelo cascata

Waterfall é um modelo de desenvolvimento no qual o desenvolvimento flui de forma constante através das fases de Análise de Requisitos, Design, Implementação, Teste, Integração e Manutenção. Permite um bom acompanhamento do progresso devido a marcos claros, mas a sua inflexibilidade (para responder às mudanças nos requisitos) é o seu demérito.

· De cima para baixo versus de baixo para cima

No Modelo Top-Down, a funcionalidade geral de um sistema é considerada inicialmente, sem entrar em aspectos mais sutis dos requisitos. Análises futuras serão cada vez mais profundas e com maiores detalhes.
O modelo Bottom-Up segue uma abordagem inversa. Primeiro, ele define detalhadamente as partes individuais do sistema. Os subsistemas individuais são então integrados para formar sistemas maiores, levando ao sistema completo.
· Modelo Espiral

O modelo espiral é aquele comumente usado nas práticas de design modernas. Ele usa uma abordagem de cima para baixo e de baixo para cima. Os objetivos, alternativas e restrições são primeiro definidos. Em seguida, são iniciadas iterações para eliminar os principais riscos. Detalhes mais sutis de cada subsistema são então elaborados.

· Gráficos de gantt

O gráfico GANTT/PERT mostra as relações de diversas atividades programadas e ajuda a monitorar o andamento do projeto.

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.