3b5d17 748a8b99e224a1bf91f42123e5388634

Post on 09-Jul-2015

45 views 1 download

description

sstt

Transcript of 3b5d17 748a8b99e224a1bf91f42123e5388634

29/10/2012

1

Programação de Sistemas EmbarcadosProf. Murilo Plíniomuriloplinio@gmail.com

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?

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

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

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.

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

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.

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

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

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)

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)

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?

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?

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;

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);

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

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)

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.

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.

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.

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

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

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)