3b5d17 748a8b99e224a1bf91f42123e5388634

22
29/10/2012 1 Programação de Sistemas Embarcados Prof. Murilo Plínio [email protected] UNIFACS –Universidade Salvador Engenharia da Computação Aula 2 –Introdução a Sistemas Embarcados e a Microcontroladores Perguntas: 1. O que é um Microcontrolador? Qual a diferença entre Microcontrolador e Microprocessador? 2. O que é um Sistema Embarcado (SE)? Onde encontramos SEs? 3. Por quê utilizar microcontroladores? 4. Como desenvolver um projeto de um SE? Que dispositivo escolher? Que linguagem? Ferramentas?

description

sstt

Transcript of 3b5d17 748a8b99e224a1bf91f42123e5388634

Page 1: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

1

Programação de Sistemas EmbarcadosProf. Murilo Plí[email protected]

UNIFACS – Universidade Salvador

Engenharia da Computação

Aula 2 – Introdução a Sistemas Embarcados e a Microcontroladores

Perguntas:

1. O que é um Microcontrolador?

– Qual a diferença entre Microcontrolador e Microprocessador?

2. O que é um Sistema Embarcado (SE)?

– Onde encontramos SEs?

3. Por quê utilizar microcontroladores?

4. Como desenvolver um projeto de um SE?

– Que dispositivo escolher? Que linguagem? Ferramentas?

Page 2: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

2

Sistemas Processados

µ_processor

On-chip

RAM

On-chip

ROM for

program

code

4 I/O Ports

Timer 0

Serial

PortOSC

Interrupt

Control

External interrupts

Timer 1

Timer/Counter

Bus

Control

TxD RxDP0 P1 P2 P3

Address/Data

Counter

Inputs

1. O que é um Microprocessador?

• É um dispositivo capaz de processarinformações. É constituído de uma unidadelógica aritmética, uma unidade de controlepara manipulação interna e externa dos dadose registradores.

• Ex.: Zilog: Z80 (PC XT); Motorola/Frescale: 6502; Intel/AMD: 8086, 80286, 80386, 80486 (PC AT), Pentium, Atlhon

Page 3: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

3

1. O que é um Microcontrolador?

• É um dispositivo capaz de processar informações seguindo um software nele programado.Ex.:

• Microchip: PIC16F84, PIC16F877, PIC18F452...

• Texas Instruments: MSP430F149, MSP430F123, MSP430F122, MSC1211...

• Freescale: 68HC908AP16,

68HC08GP32A, MM908E621...

• Atmel: AT89C51, AT89C2051,AT89C51SND2C...

Microprocessador vs Microcontrolador

Page 4: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

4

Microcontrolador vs Microprocessador?

• Microcontroladores são “computadores” em um único chip!

– Possuem internamente unidade lógica e aritmética, memória de programa, memória de dados, portas de entrada e saída serial e paralela, timers, contadores, PWM, conversores analógicos e digitais etc.

• Microprocessadores são processadores de uso genérico.

Microprocessador

CPU

General-

Purpose

Micro-

processor

RAM ROM I/O

PortTimer

Serial

COM

Port

Data Bus

Address Bus

Many chips on mother’s board

O clock pode alcançar até 3.33Ghz. Em

overclocking, com cooler de ar, até 4.0Ghz, e com

cooler de refrigeração baseada em água até 5Ghz.

Com refrigeração a nitrogênio líquido ( somente em

experimentos ) já foram alcançados 6.00Ghz.

Page 5: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

5

Microcontrolador

O clock pode alcançar 48 MHz (12 MIPS).

Microprocessor

• CPU is stand-alone, RAM,

ROM, I/O, timer are separate

• designer can decide on the

amount of ROM, RAM and

I/O ports.

• expansive

• versatility

• general-purpose

Microcontroller

• CPU, RAM, ROM, I/O and

timer are all on a single

chip

• fix amount of on-chip ROM,

RAM, I/O ports

• for applications in which

cost, power and space are

critical

• single-purpose

Microprocessor vs. Microcontroller

Page 6: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

6

Evolução para microcontroladores?

• Com o barateamento dos CIs e o surgimento de

microprocessadores (CPUs) mais poderosos,

começou-se a usar as CPUs mais simples para

implementar tarefas dedicadas: controle de

impressora, plotter, reguladores de

velocidade, acionadores de motores de passo,

controladores de elevadores, etc.

• Contudo, qualquer controle implicará uma

circuitaria muito grande, que muitas vezes

encarece o custo do controlador.

Por quê microcontroladores?

•Estas aplicações tinham o custo dependente do

preço da CPU e dos periféricos (ROM, RAM,

Portas, A/D, D/A, etc) e também da quantidade de

conexões e do tamanho da placa.

• Para reduzir o custo, começou a surgir a idéia de

colocar todos estes periféricos dentro do chip da

CPU.

• Isso baratearia e diminuiria o tamanho do circuito

impresso além de aumentar a confiabilidade.

Page 7: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

7

Por quê microcontroladores?

• Por outro lado, uma CPU dedicada a um determinado

controle não precisa ser muito rápida nem tampouco ter

um conjunto de instruções extenso e poderoso.

• Não são necessárias instruções para trabalhar com ponto

flutuante, com strings ou vetores e também os

mecanismos de endereçamento

• Devem ser simples.

• Ou seja, pode-se simplificar a CPU.

• Assim surgem os microcontroladores, que são simples,

baratos e eficientes.

Por quê microcontroladores?

•Os microcontroladores são específicos para controle, não

tem grande capacidade de processamento e por isso

nunca haverá um computador pessoal cuja CPU seja um

microcontrolador.

• Eles podem estar presentes em um PC, mas apenas para

controlar periféricos.

• Embora existam vários microcontroladores que têm

aplicações específicas, como por exemplo o controlador de

teclado 80C51SL-BG e o controlador de comunicações

universal 82C152.

•Os microcontroladores estão aplicados em sistemas

embarcados

Page 8: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

8

O que é um Sistema Embarcado (SE)?

15

“Um sistema embarcado é um computador especial com

propósito específico que é usado dentro de um dispositivo.

Exemplo: Um aparelho de microondas possui um sistema

embarcado que aceita entradas do painel, controla o display e

liga e desliga os elementos para aquecimento.”

“Um S.E. é qualquer dispositivo controlado por instruções

armazenadas em um chip. Estes dispositivos são normalmente

controlado por um microprocessador que executa instruções

armazenadas num chip ROM.”

16

Definição

Page 9: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

9

“An embedded system employs a combination of hardware &

software (a “computational engine”) to perform a specific

function; is part of a larger system that may not be a

“computer”; works in a reactive and time-constrained

environment”. (Gupta UCI).

A designação de Sistema Embarcado cabe a quaisquer

sistemas digitais que estejam incorporados a outros

sistemas, com o fim de acrescer ou otimizar funcionalidades.

(Meuse Oliveira Jr, Cin/UFPE)

17

Definição

18

S.E. são...

•Incorporado a outros sistemas;

•São microprocessados;

•Têm severas restrições (temporais, energia, ...);

•Funcionalidade específica;

•São “invisíveis”;

S.E. podem não ser tão visíveis como os PCs e laptops, mas consomem

98% dos processadores vendidos no mundo todo ano (computerword, maio 2011)

Page 10: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

10

19

Por que esse avanço na área de S.E.?

• Avanço tecnológico na área de micro-processadores

• Preços reduzidos

• Novos métodos, técnicas e ferramentas tiveram que ser desenvolvidos

• Redução de custo de desenvolvimento

• Sistemas em rede, seguro, reconfigurável, restrições temporais rígidas, ...

• Técnicas de verificação e validação

• Geradores de código, APIs, middleware, ...

• Os sistemas são bastante interessantes e com maiores desafios

implementacionais...

20

Apresentar Slides 16 – 50(ISE-02-introdução.pdf)

Page 11: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

11

21

4 - Como desenvolver um projeto de um SE?

• Especificar e delimitar o projeto

• Listar recursos necessarios

•* Atentar para acessibilidade

I. Definir o microcontrolador

II. Definir a linguagem de programação

III. Definir ferramentas de suporte ao desenvolvimento

Simulação do circuito, programação, gravação, etc

22

I. Definir o Microcontrolador

Família de microcontroladores:

•PIC – Microchip

•8051 - Vários

•ARM – Vários

Qual utilizar?

Page 12: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

12

1. meeting the computing needs of the task efficiently and cost

effectively

• speed, the amount of ROM and RAM, the number of I/O ports

and timers, size, packaging, power consumption

• easy to upgrade

• cost per unit

2. availability of software development tools

• assemblers, debuggers, C compilers, emulator, simulator,

technical support

3. wide availability and reliable sources of the microcontrollers.

Three criteria in Choosing a Microcontroller

24

II. Definir a Linguagem de Programação

•Linguagem de alto nível – C

•Linguagem de baixo nível - Assembly

Qual utilizar?

Page 13: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

13

Assembly ou C ?

Linguagem Vantagens Desvantagens

Assembly

•Código Rápido;

•Total controle do hardware;

•Mehor controle dos tempos de

execução das rotinas;

•Código de máquina gerado menor

(economia de memória)

•Estrutura simples e intuitiva

•Dificuldades para trabalho com

variáveis e expressões

matemáticas;

•Necessidade de muitas linhas de

programa;

•Deficiência em estrutura de

controle e repetição;

•Dificuldade de migração do

programa (baixa portabilidade)

C

•Criação de programas que utilizam

menos linhas;

•Utilização de estruturas de controle

de repetição (if, for, while...)

•Facilidade para trabalhar com

variáveis e expressões aritméticas;

•Portabilidade do código;

•Perda do controle do tempo de

execução de cada rotina;

•Código de máquina maior e mais

lento;

Page 14: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

14

27

III. Definir Ferramentas•Circutito – Proteus

•Programação e Compilação – CCS, PICc, Mplab, Keil,

MicroC...

•Gravação- WinPIC800

Qual utilizar?

Sistemas Processados

Fundamentos de computação: (cont.)

• Programa (Software): conjunto de instruções arranjadas de forma organizada que apresenta função específica (Ex: Programas Básicos, Aplicativos, Utilitários, etc.);

• Firmware: Programa que está armazenado em memória não volátil (ROM);

• Hardware: partes eletrônicas de um microcomputador;

• Microcontrolador: microcomputador integrado num único chip (microprocessador + periféricos);

Page 15: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

15

Sistemas Processados

• Periféricos

– Circuitos acessórios ao computador que realizam tarefas específicas;

– Exemplos:

• Timers;

• CCP (Comparação, Captura e PWM);

• Conversores Analógico-Digital e Digital-Analógico;

• Portas de comunicação (USART, I2C, SPI, USB, CAN,...).

Arquiteturas

• von Neumann

“Instruções e dados compartilham a mesma unidade física de memória”

Hamacher – Computer Organization

Page 16: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

16

Arquiteturas - von Neumann

A

AX

BX

CX

DX

tempA tempB

IR=MOV AX,0

MA = 0

MD=MOV AX,0

BUS

Entrada B

Saída Z

Entrada A Entrada B

Saída Z

Entrada A MOV AX,0

MOV BX,1

ADD AX,BX

JMP 2

0

1

2

3

MOV AX,0

MOV BX,1

ADD AX,BX

JMP 2

0

1

2

3

...4 .4

Memória

IP = 0

uP

tempA = 0tempA

...4 O5

...4 L6

...4 A7

Inst.

Dados

Arquiteturas

• Harvard

“Instruções e dados são armazenados em memórias diferentes”

Heuring – Computer Systems Disignd and Architecture

Vantagem: Instruções e dados podem ser acessados

simultaneamente, aumentando o desempenho!

O PIC segue esta arquitetura! Um barramento de

dados de 8 bits e outro para instruções (12, 14 ou 16

bits)

Page 17: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

17

Arquiteturas• Harvard

AX

BX

CX

DX

tempA tempB

IR=MOV AX,0

MA = 0

MD=MOV AX,0

BUS

Entrada B

Saída Z

Entrada A Entrada B

Saída Z

Entrada A

MOV AX,0

MOV BX,1

ADD AX,BX

JMP 2

0

1

2

3

MOV AX,0

MOV BX,1

ADD AX,BX

JMP 2

0

1

2

3

...4 .0

Memória de

Programa

IP = 0

uP

tempA = 0tempA

...4 O1

...4 L2

...4 A3

Inst.

Dados

Memória de

Dados

IP CTRL

Instruction Set

• Definição: Conjunto de instruções que um processador compreende;

• Cada processador possui seu próprio conjunto de instruções, inviabilizando, na maioria dos casos, a portabilidade.

Page 18: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

18

Instruction Set

• CISC – Complex Instruction Set Computing

– Computação onde o número de instruções é muito grande;

– O 8051 pertence a este grupo. (120 inst.)

• RISC

– Computação onde um número reduzido de instruções estão disponíveis.

– O PIC possui um número reduzidos de Instruction

Set (RISC) (35 inst.)

Instruction Set

• Considerações sobre RISC e CISC– Uma única instrução CISC pode equivaler a várias

instruções RISC;

– Uma instrução CISC precisa realizar passos semelhantes aos realizados pelas RISC equivalentes (não há ganho de desempenho);

– CISC minimiza o número de acessos a memória de programa;

– RISC simplifica a decodificação de instruções, deixando esta etapa mais rápida.

Page 19: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

19

Instruction Set

• Vantagens CISC:

– Apesar do conjunto de instruções ser muito grande, oferece um número maior de instruções (“ferramentas”) ao programador Assembly;

– Menor quantidade de instruções são necessárias para desenvolver um programa (programas ocupam menos memória).

Instruction Set

• Vantagens RISC:

– Etapa de decodificação tão simples que pode, em alguns casos, ser eliminada;

– Com um número menor de instruções, os parâmetros destas podem ser agregados no opcode (código de máquina de uma instrução), simplificando inclusive o FETCH.

– Simplificação dos circuitos eletrônicos.

Page 20: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

20

PIC• O PIC, da Microchip, é o microcontrolador mais

acessível localmente.

• O dispositivo em si é um microcontrolador de 8 bits relativamente simples, mas com ampla aplicação.

• Porém, o mais importante é que não existe somente o CI PIC, mais sim uma família de microcontroladores baseada no mesmo.

• Entende-se família como sendo um conjunto de dispositivos que compartilha os mesmos elementos básicos, tendo também um mesmo conjunto básico de instruções. 39

PIC

• Alguns exemplos de cada família da Microchip.

40

Page 21: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

21

PIC• Sistemas microprocessados são aqueles que têm por

elemento central um microprocessador.

• O microprocessador funciona como um sistema seqüencial síncrono, onde a cada pulso, ou grupos de pulsos de clock, uma instrução é executada.

• Embora já existam microprocessadores que trabalhem a centenas de MHz, o PIC utiliza tipicamente um clock de 12 MHz, com tempos de execução de cada instrução variando entre 1μs e 4 μs.

• No PIC, cada pulso de máquina corresponde a 4 pulsos do relógio (clock) – Para clock de 4 MHz, um pulso de clock ocorre em 1/4000000

s.

– Cada pulso da máquina ocorre a cada 1/1000000 = 1μs. 41

Principais Características do PIC 16F628

• Microcontrolador de 18 pinos

• Até 16 portas configuráveis como entrada ou saída

• 2 Osciladores internos (4MHz ou 37kHz)

• 10 Interrupções Disponíveis "Timers, Externa, Mudança de Estado, EEPROM, USART e Comparador

• Memória de programa. FLASH (2K “words” – 14 bits)

• EEPROM interna de 128 bytes

• RAM interna de 224 bytes

• Hardwares especiais: CCP, Comparador Interno e USART

• Programação com 14 bits e 35 instruções

Page 22: 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

22

Pinagem:

Principais Características do PIC 16F628

• 16 I/Os separados em dois grupos denominados PORTAS (port A e port B)

– port A: RA0; RA1 ... RA7

– Idem para port B

– Pinos de múltiplas funções

– VDD (5V) e VSS (GND)