Você está na página 1de 39

SISTEMAS EMBUTIDOS

BCC 425

Prof: Gabriel Garcia

Baseado nos materiais de Aline Fidêncio e Eduardo Luz


Arquitetura de

Microcontroladores
Hardware Embarcado

Em Sistemas Embutidos, o hardware tem a função de


processar certa entrada e produzir uma saı́da.

O hardware básico é construı́do para atender as


especificações do sistema de processamento de
informações da aplicação embarcada.

Sistema de processamento de informação


Sistemas Microprocessados

CPU para computadores.

Nenhuma RAM, ROM, I/O no chip da CPU.


Sistemas Microcontrolados
Microcontrolador

Dispositivo que integra certo número de componentes de


um sistema microprocessado em um único chip.

Componentes:

CPU core

Memória (RAM e ROM)

Portas digitais de I/O e outras

Diagrama de Blocos
Arquitetura de Microcontroladores

Timer: permite que o microcontrolador execute tarefas por


certos perı́odos de tempo.

Serial I/O: permite o fluxo de dados entre o


microcontrolador e outros dispositivos tais como o PC ou
outro microcontrolador.

ADC: permitem converter entradas que venham na forma


analógica na forma digital para posterior processamento
pelo microcontrolador. Também podemos ter DAC para ter
saı́das digitais para o ambiente externo.
Microcontrolador

Diagrama de Blocos
Microcontrolador

Por quê?

Microprocessadores - são usados em computadores de


uso geral.

Microcontroladores - são usados em muitos casos em


aplicações especiais em Sistemas Embutidos.
Microcontrolador

Por quê?

Baixo custo, encapsulamento pequeno.


Uma vez que os SE são utilizados para a realização de tarefas especificas, não precisamos de
certas facilidades dos computadores de uso geral em um microcontrolador para sistemas
embutidos. Assim, podemos ter vários periféricos integrados em um único chip, o que o faz mais
barato.

Baixo consumo de energia.

Capacidade de múltiplos I/Os.


para interfaceamento com dispositivos externos, tais como: sensores, atuadores, etc.
Integração facilitada com outro componentes/circuitos.

Propósito único
menos sofisticação no hardware do processador
Arquitetura de Computadores
Estrutura da CPU
Estrutura da CPU
É a parte de um sistema computacional que realiza as
instruções de um programa para realizar a aritmética
básica, lógica e a entrada e saı́da de dados.

Composta basicamente por:

ULA (ALU) = Unidade Lógica Aritmética: parte do


processador responsável por realizar operações
matemáticas e comparações lógicas.

UC = Unidade de Controle: responsável por gerenciar


toda a entrada e saı́da de dados do processador, além de
definir a ordem e o tempo das instruções. Decodifica
instruções, busca operandos, controla o ponto de execução
e desvios.

Registradores: usados para armazenar dados para o


processamento.
Arquitetura de Computadores

Arquitetura VonNeuman
Arquitetura de Computadores

Arquitetura VonNeuman

Somente um barramento entre CPU e Memória.

Nenhuma diferença entre dados e instruções.

Como o bus é o mesmo, os tamanhos da instrução e dos


dados devem ser o mesmo.

Gargalo: acesso à instruções interfere no acesso aos


dados. Dessa forma, é preciso ter ciclos bem definidos
para acessar as instruções e os dados.
Arquitetura de Computadores

Arquitetura Harvard
Arquitetura de Computadores

Arquitetura Harvard

Instruções e dados estão em espaços diferentes.

Tamanho da instrução pode ser diferente do tamanho da


unidade de dados.

Pipeline facilitado.
Arquitetura de Computadores

Arquitetura Harvard

A arquitetura Harvard é um conceito mais recente que a de


Von Neumann. Ela adveio da necessidade de se obter uma
arquitetura que pudesse trabalhar mais rapidamente.

Na arquitetura Von Neumann, a CPU pode tanto ler uma


instrução ou ler/escrever um dado da/para a memória.
Ambos não podem ocorrer ao mesmo tempo, pois a
instrução e o dado utilizam o mesmo sistema de
barramento.

Na arquitetura Harvard, a CPU pode ler uma instrução e


executar um acesso de dado na memória ao mesmo
tempo.
Arquitetura de Computadores

Arquitetura Harvard

Esse tipo de arquitetura consegue processar um número


maior de instruções por ciclo de clock.

Além disso, pode ser mais rápido para um dado circuito


complexo porque as buscas de instruções e acesso a
dados não são sustentados por uma única via de memória.
Estrutura da CPU

Fonte: Livro do Almeida


Estrutura da CPU

Os registradores de operação possuem diferentes


funções.

Existem pelo menos 4 tipos distintos de registradores:

Contador de Programa (PC)

Acumuladores (AC)

Registro de sinalização (RS)

Ponteiro de Pilha (PP)


Barramentos

O computador tem três barramentos que conduzem todas


as informações e sinais necessários à operação do
sistema.

Estes barramentos conectam a CPU a cada um dos


elementos de memória e de I/O, de modo que dados e
informações possam ser trocados entre a CPU e qualquer
um destes elementos.

Em outras palavras, a CPU está envolvida continuamente


no envio e na recepção de informação com uma posição
de memória, um dispositivo de entrada ou um dispositivo
de saı́da.
Barramentos

Os barramentos envolvidos em todas as transferências de


dados são:

1 Barramento de Endereço:

Barramento unidirecional, uma vez que a informação flui


apenas da CPU para a memória ou para os dispositivos de
I/O.

Quando a CPU quer se comunicar com (ler ou escrever)


uma certa posição de memória ou dispositivo de I/O, ela
coloca um código de endereço de n bits no barramento de
endereço.

Estes bits são decodificados para selecionar a posição de


memória ou o dispositivo de I/O desejado.
Barramentos

Os barramentos envolvidos em todas as transferências de


dados são:

2 Barramento de Dados:

Barramento bidirecional, uma vez que os dados podem ir ou


vir da CPU.

Os pinos de dados podem ser tanto entradas quando


saı́das, dependendo se a CPU está realizando uma
operação de leitura ou de escrita.
Barramentos

Os barramentos envolvidos em todas as transferências de


dados são:

3 Barramento de Controle:

Este conjunto de sinais é usado para sincronizar as


atividades dos elementos da CPU.
Memórias

Constitui de um conjunto de circuitos capazes de


armazenar os dados e os programas a serem executados
pela máquina.

Temos as seguintes categorias de memória:

Voláteis: dados

Não voláteis: programa


Memórias
A quantidade de memória disponı́vel que o uControlador
pode acessar depende do tamanho do barramento de
endereços.

Esse tamanho indica quantas posições de memória o


processador consegue endereçar.

Por exemplo, um processador com uma palavra de 8 bits


consegue endereçar 256 bytes.

Para a maioria das memórias, cada posição armazena 8


bits de dados, mesmo para arquiteturas de 16, 32 ou 64
bits.

Logo, a quantidade máxima de memória para um


barramento de N bits é 2N
Estrutura da CPU - Conjunto de Instruções
A CPU é a unidade responsável pela execução das
operações.

Sendo assim, cada processador é projetado de forma a


executar um conjunto próprio de instruções.

Instruções: linguagem de máquina.

Cada instrução de máquina é um conjunto de bits que


indica ao processador uma operação a realizar.

Todo processador é projetado para ser capaz de realizar


um conjunto de operações bem simples que são
chamadas operações primitivas.

Cada uma dessas operações está associada a uma


Estrutura da CPU - Conjunto de Instruções

Funcionalmente, um processador é capaz de executar os


seguintes tipos de operações:

matemáticas (aritméticas, lógicas, decomplemento, de


deslocamento).

movimentação de dados (memória ←→ registrador).

entrada-saı́da (leitura e escrita em dispositivos externos -


dispositivos de Entrada / Saı́da).

controle (desvio da sequência de execução, parar, etc.)


Estrutura da CPU - Conjunto de Instruções

O termo conjunto de instruções se refere a todas as


possı́veis instruções que podem ser interpretadas e
executadas por um processador.

Formato:

Código de Operação ou OPCODE: é o campo da


instrução cujo valor binário identifica a operação a ser
realizada.

Operando(s): é o campo da instrução cujo valor binário


sinaliza a localização do dado (ou é o próprio dado) que
será manipulado pela instrução durante a operação.
Tipos de Instruções

Cada CPU tem uma arquitetura e essa arquitetura pode


ser representada pelo seu conjunto de instruções.

CISC (Complex Instruction Set Computer)

RISC (Reduced Instruction Set Computer)


Tipos de Instruções

CISC (Complex Instruction Set Computer)

Grande número de instruções.

Instruções para operações complexas.

Instruções de formato e tamanho diferentes.

Requer múltiplos ciclos de clock de execução.

Certo número possı́vel de modos de endereçamento.


Tipos de Instruções

RISC (Reduced Instruction Set Computer)

Menos instruções.

Instruções apenas para operações simples.

Instruções que podem ser executadas em um único ciclo


de clock.

Instruções de tamanho fixo (pipeline facilitado).

Muitos registradores de uso geral. (que podem conter


dados ou endereços).

Load-store Architecture: operações envolvem registradores


e não memória.
Tipos de Instruções
CISC (Complex Instruction Set Computer)
Prós
Facilita a vida do programador assembly.
Reduz o uso da memória de programa.
Não faz uso de compiladores muito eficientes.
Contras
Processadores incrivelmente complexos e difı́ceis de se
produzir.
Consome mais potência e gera mais calor.
Decodificação da instrução e execução lenta e complicada.
RISC (Reduced Instruction Set Computer)
Prós
Processador simples e mais rápido.
Poucos ciclos necessários para decodificar e executar cada
instrução.
Complexidade foi do processador para o compilador.
Contras
Maior conjunto de registradores.
Mais instruções requeridas para se executar uma tarefa.
Código ocupa mais espaço na memória.
Portas de I/O
Durante a execução de um programa, a CPU está
constantemente lendo ou escrevendo na memória.

O programa também pode fazer com que a CPU leia um


dos dispositivos de entrada ou escreva em um dos
dispositivos de saı́da.

Podem existir um número qualquer destes dispositivos


conectados ao sistema de barramentos do
microcontrolador por meio de algum tipo de circuito de
interface.

A função deste circuito de interface é fazer o computador e


os dispositivos compatı́veis, de modo que dados possam
ser facilmente trocados entre eles.
Portas de I/O

Embora dispositivos de I/O sejam tratados como posições


de memória, eles são bastante diferentes de uma memória
em certos aspectos.

Uma grande diferença é que dispositivos de I/O tem a


capacidade de interromper a CPU enquanto ela está
executando um programa.

Isso significa que um dispositivo de I/O pode enviar um


sinal para a entrada de interrupção da CPU para indicar
que ele deseja se comunicar com a CPU.

A CPU então irá suspender a execução do programa que


está sendo executado e irá realizar a operação esperada
como o dispositivo de I/O que o está interrompendo.
ATMega328p

Datasheet
Exercı́cios

Qual a diferença entre sistemas Microprocessados e


sistemas Microcontrolados?
Qual os principais componentes de um sistema
Microcontrolado?
Cite vantagens e desvantagens entre RISC e CISC.
Qual a diferença entre arquitetura de VonNeuman e
arquitetura Harvard.
Aponte as principais caracterı́sticas do ATMega328p.
FIM

Você também pode gostar