sistemas microcontrolados - páginas pessoais -...

23
Sistemas Sistemas Microcontrolados Microcontrolados Aula 2: Arquitetura de Sistemas uC Marco Jose da Silva [email protected] Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 2 Sistemas Embarcados: Definição Sistemas embarcados = Sistemas de processamento de informações embarcados em um produto maior Peter Marwedel (TU Dortmund) Dois tipos de computação Desktop – produção milhões/ano Embarcado – bilhões/ano Sistemas não embarcados PCs, servidores, e notebooks

Upload: phamminh

Post on 28-Sep-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Sistemas MicrocontroladosMicrocontrolados

Aula 2: Arquitetura de Sistemas uC

Marco Jose da [email protected]

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 2

Sistemas Embarcados: Definição

• Sistemas embarcados =– Sistemas de processamento de informações

embarcados em um produto maior

– Peter Marwedel (TU Dortmund)

• Dois tipos de computação– Desktop – produção milhões/ano

– Embarcado – bilhões/ano

• Sistemas não embarcados– PCs, servidores, e notebooks

Page 2: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 3

• Controle automotivo:– motor, freios …

• Aviões– motor, controles de vôo …

• Forno de microondas• Câmera digital• Telefone celular• Smart phones• Sensores inteligentes• ...

Exemplos sistemas embarcados

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 4

Diagrama em Bloco de uma Câmera Digital

Um Exemplo de Sistema Embarcado

Page 3: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 5

Analógico Digital Analógico

Memória

Coprocessadores

Controladores

Conversores

Processador

Interface

Software(Aplicação)

ASIC

Componentes de um Sistema Embarcado

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 6

• Componentes Analógicos– Sensores, atuadores, …

• Componentes Digitais– Processadores, coprocessadores, memórias, barramentos

– Controladores, hardware de aplicação específica

• Conversores– Conversor Analógico-Digital (ADC), DAC …

• Software– Sistema Operacional

– Aplicações (ex. interface com usuário)

– Firmware (programação em baixo nivel)

Componentes de um Sistema Embarcado

Page 4: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 7

• Aplicação Específica– Aplicações são conhecidas a priori

– Otimização para custo, área, potência, e desempenho

• Processamento Digital de Sinais– Sinais são representados digitalmente

• Sistemas Reativos– Reage a mudanças no ambiente do sistema

• Tempo Real– Tarefas devem ser computadas antes de um deadline

• Distribuído, em Rede, …

Características dos Sistemas Embarcados

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 8

• Sistema embarcado: sistema que possui um processador mas não é um computador de propósito geral

Outra definição

Page 5: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 9

Histórico e Evolução

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 10

Histórico

Transistor(1947)

Circuito integrado(1958)

4004 e TMS1000

(1971)

1o. uC e uP4 bits

Microeletrônica: grande motor desenvolvimento

Page 6: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 11

Lei de Moore (Gordon Moore – cofundador da Intel)

Número de transistores em um chip dobrará a cada ano.

Desde 1970, isso diminuiu um pouco.

Número de transistores dobra a cada 18 meses.

Custo de um chip permaneceu quase inalterado.

Maior densidade de empacotamento significa caminhos elétricos maiscurtos, gerando maior desempenho.

Menor tamanho dos chips --> computadores menores --> maiorflexibilidade.

Redução nos requisitos de consumo e resfriamento.

Menos interconexões aumenta a confiabilidade.

Evolução de computadores

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 12

Lei de Moore

Page 7: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 13

Todo sistema eletrônico complexo, incluindo o computador, possui uma hierarquia.

Constituído de um conjunto de subsistemas inter-relacionados, cada qual também podendo ser hierárquico.

Projetista lida com um nível particular do sistema.

Estrutura é o modo como os componentes são inter-relacionados.

Função é a operação individual de cada componentecomo parte da estrutura.

Estrutura e função

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 14

Processamento, armazenamento e transferência(movimentação) de dados.

Controle destas 3 funções.

*** Figuras retiradas do livro Arquitetura e Organização de Computadores - William Stallings.

Função de um computador

Page 8: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 15

a) Movimentação de Dados:

ex: teclado para Display

b) Armazenagem:

ex: internet para disco

c) Processamento de/paramemória:

ex: atualizar dados bancários

d) Processamento da memóriapara E/S:

ex: imprimir dados bancários

Funções - operações

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 16

Estrutura

Page 9: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 17

Primeira geração 1945 - 1957

Válvulas eletrônicas.

Sem SO.

Programadores submetiam seus programas em linguagem de máquinas, 1 bit por vez.

ENIAC (Electronic Numerical Integrator Computer) - 1946

30 toneladas e área de 140 m2.

18 mil válvulas e consumo de 140KW.

Máquina decimal e não binária.

5 mil adições ou 360 multiplicações por segundo.

Programado manualmente por chaves.

Evolução dos computadores

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 18

Segunda geração - 1958 - 1964Transistores no lugar de válvulas (menor, mais barato e dissipa menoscalor).

Primeiros sistemas em lotes (Assembly)Programa inteiro era carregado na memória.

Dias para execução completa de um programa.

Evolução de computadores

Page 10: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 19

Terceira geração - 1965 -1971

HardwareCircuitos Integrados.

Portas lógicas e/oucélulas de memória.

Sistemas OperacionaisMultiprogramação.

Uso do processadormaximizado.

Evolução de computadores

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 20

A partir da 3a geração, menor consenso sobre a definição das gerações restante.

Evolução de computadores

Page 11: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 21

Evolução de computadores

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 22

Processadores de propósito geral

• Um sistema construído com um microprocessadorrequer memória, entradas e saídas externas

Page 12: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 23

Arquitetura

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 24

CPUCPU

Baseia a estrutura de quase todos os computadores, desde o smartphone até o mainframe.

Barramento

MemMemóóriariaUCUC

ULAULA

I/OI/O

Arquitetura de Von Neumann

Page 13: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 25

A UC, ULA e memória comunicam-se usando o barramento.

A memória é dividida em endereços que representambytes.

Endereços de memória possuem instruções ou dados.Exemplo: "leia o byte que está na posição 2 da memória, some com aquele que está na posição 3 e guarde na posição 4".

Operações lógicas e aritméticas são feitas na ULA.

E quem comanda esse processo de transferir dados entre a memória e a ULA é a UC.

A UC possui um ciclo infinito de buscar a instrução namemória, decodificá-la e executá-la.

Arquitetura de Von Neumann

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 26

Arquitetura de Von Neumann

Page 14: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 27

Execução repetida de um ciclo de instruções (fetch, decode e execute).

Ciclo de instruções

Buscar instrução

Decodificarinstrução

Executaração

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 28

Sistema Embarcados (possível organização)

Page 15: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 29

O que é um microcontrolador ?Microprocessador + Memória de programa + Memória de dados + Periféricos

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 30

http://www.mikroe.com/eng/products/view/11/book-pic-microcontrollers/

Estrutura básica de um uC

Page 16: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 31

Arquitetura interna de um uCArquitetura von-Neumann Arquitetura Harvard

Microprocessadores DSP, Microcontroladores

Único barramento para memórias e Entrada-Saída

Barramentos separados (possibilidade execução de

atividade em paralelo)

CPUCPUMemMemóóriaria

UCUC

ULAULA

I/OI/O

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 32

Memórias

Endereço = posição de mem.Conteúdo = informação no end.

Tipos:

• Leitura/escrita. (Volátil)

Ex: RAM (Random Access Memory)

• Somente leitura. (Não-volátil)

Ex: ROM (Read-Only Memory)

UV-ROM

• Leitura/escrita. (Não-volátil)

Ex: EEPROM, FLASH

Page 17: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 33

CPU - Central Processor Unit

Unidade central de processamento (UCP)

• Acumulador: registrador especial, sempre um dos operandos da ULA

• Decodificador de instruções: interpreta as instruções (microcódigo)

• Unidade lógica e aritmética (ULA): executa funções AND, OR, +, *, ...

• Status Register (PSW): registrador especial com flags

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 34

Instruções

Instrução de MáquinaUm comando codificado como uma sequência de bits compreensível

para a unidade de controle.

• Linguagem de Máquina– Conjunto das instruções reconhecidas pela unidade de controle

• Tipos de Instruções:– Transferência: copia dados de uma localização para outra

– Aritmética/Lógica: Comanda operações na ULA

– Controle: direciona a execução do programa

Page 18: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 35

Conjunto de instruções – Instruction Set

Divisão de valores armazenados na memória (x=y÷z)

1. Carrega y em R1

2. Carrega z em R2

3. Se R2 = 0, PULE para instrução 6

4. Comande a ULA para dividir R1 e R2 e armazenar o resultado em R3

5. Armazena R3 em x

6. PARE

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 3636

RISC (Reduced Instruction Set Computing)Poucas instruções.

Simples e rápidas.

Ex: PowerPC, SPARC.

• CISC (Complex Instruction Set Computing)– Muitas instruções.

– Mais complexas e convenientes

– Ex: Intel, AMD.

RISC vs. CISC

Page 19: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 37

RegistradoresPosição de memória – p.ex. variável de um programa

SFR - Special Function Register(Registrador de Função Especial)

Tem alguma função no uC: Flags, controlar periférico, etc.

Portas(SFR)

Mapeiam Dados para pinos do uC

TTL/CMOS 5V1 = 5V, 0 = 0V

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 38

PIC 16F887

Page 20: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 39

Alguns exemplos básicos

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 40

Exemplo: Microcontrolador PIC 16F628Ahttp://sourceforge.net/projects/picsim/

Page 21: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 41

Program written in C

Compiled Program (Assembly)HEX (PIC Executable)

Etapas de gravação no uC

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 42

PIC

PO

RT

B

VLED 2V

VHIGH = 5V

HIGH LEDV V

RI

I = 20mA

R = 150Ω

Exemplo: LED

Page 22: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 43

void main() INTCON=0;OPTION_REG=0;TRISB=0;PORTB=0;while(1)

delay_ms(500);PORTB=~PORTB;

Programa em C – Pisca LED

http://www.mikroe.com/mikroc/pic/

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 44

void main() INTCON=0;OPTION_REG=0;TRISB=0;PORTB=1;while(1)delay_ms(500);PORTB=PORTB<<1;if(PORTB==0) PORTB=1;

Programa em C – Sequencial LED

Page 23: Sistemas Microcontrolados - Páginas Pessoais - UTFPRpaginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC... · Sistemas Embarcados Marco Jose Da Silva mdasilva@utfpr.edu.br

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 45

void main() INTCON=0;OPTION_REG=0;TRISB=0;PORTB=1;while(1)for(i=0;i<10;i++)

PORTB=mask(i);delay_ms(200);

char mask(char num)switch (num)case 0 : return 0xEE;case 1 : return 0x28;case 2 : return 0xCD;case 3 : return 0x6D;case 4 : return 0x2B;case 5 : return 0x67;case 6 : return 0xE7;case 7 : return 0x2C;case 8 : return 0xEF;case 9 : return 0x6F;

Programa em C – Display 7 Segmentos

Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 46

Obrigado!!!