29/10/2012
1
Programação de Sistemas Embarcados
Prof. Murilo Plínio
muriloplinio@gmail.com
UNIFACS – Universidade Salvador...
29/10/2012
2
Sistemas Processados
_processor
On-chip
RAM
On-chip
ROM for
program
code
4 I/O Ports
Timer 0
Serial
PortOSC
I...
29/10/2012
3
1. O que é um Microcontrolador?
• É um dispositivo capaz de processar informações
seguindo um software nele p...
29/10/2012
4
Microcontrolador vs Microprocessador?
• Microcontroladores são “computadores” em
um único chip!
– Possuem int...
29/10/2012
5
Microcontrolador
O clock pode alcançar 48 MHz (12 MIPS).
Microprocessor
• CPU is stand-alone, RAM,
ROM, I/O, ...
29/10/2012
6
Evolução para microcontroladores?
• Com o barateamento dos CIs e o surgimento de
microprocessadores (CPUs) ma...
29/10/2012
7
Por quê microcontroladores?
• Por outro lado, uma CPU dedicada a um determinado
controle não precisa ser muit...
29/10/2012
8
O que é um Sistema Embarcado (SE)?
15
“Um sistema embarcado é um computador especial com
propósito específico...
29/10/2012
9
“An embedded system employs a combination of hardware &
software (a “computational engine”) to perform a spec...
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 reduzid...
29/10/2012
11
21
4 - Como desenvolver um projeto de um
SE?
• Especificar e delimitar o projeto
• Listar recursos necessari...
29/10/2012
12
1. meeting the computing needs of the task efficiently and cost
effectively
• speed, the amount of ROM and R...
29/10/2012
13
Assembly ou C ?
Linguagem Vantagens Desvantagens
Assembly
•Código Rápido;
•Total controle do hardware;
•Meho...
29/10/2012
14
27
III. Definir Ferramentas
•Circutito – Proteus
•Programação e Compilação – CCS, PICc, Mplab, Keil,
MicroC....
29/10/2012
15
Sistemas Processados
• Periféricos
– Circuitos acessórios ao computador que realizam
tarefas específicas;
– ...
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
En...
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 ...
29/10/2012
18
Instruction Set
• CISC – Complex Instruction Set Computing
– Computação onde o número de instruções é
muito ...
29/10/2012
19
Instruction Set
• Vantagens CISC:
– Apesar do conjunto de instruções ser muito
grande, oferece um número mai...
29/10/2012
20
PIC
• O PIC, da Microchip, é o microcontrolador mais
acessível localmente.
• O dispositivo em si é um microc...
29/10/2012
21
PIC
• Sistemas microprocessados são aqueles que têm por
elemento central um microprocessador.
• O microproce...
29/10/2012
22
Pinagem:
Principais Características do PIC
16F628
• 16 I/Os separados em dois grupos
denominados PORTAS (por...
Upcoming SlideShare
Loading in...5
×

3b5d17 748a8b99e224a1bf91f42123e5388634

60

Published on

sstt

Published in: Automotive
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
60
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

3b5d17 748a8b99e224a1bf91f42123e5388634

  1. 1. 29/10/2012 1 Programação de Sistemas Embarcados Prof. Murilo Plínio muriloplinio@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?
  2. 2. 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 processar informações. É constituído de uma unidade lógica aritmética, uma unidade de controle para manipulação interna e externa dos dados e registradores. • Ex.: Zilog: Z80 (PC XT); Motorola/Frescale: 6502; Intel/AMD: 8086, 80286, 80386, 80486 (PC AT), Pentium, Atlhon
  3. 3. 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
  4. 4. 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 Port Timer 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.
  5. 5. 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
  6. 6. 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.
  7. 7. 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
  8. 8. 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
  9. 9. 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)
  10. 10. 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)
  11. 11. 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?
  12. 12. 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?
  13. 13. 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;
  14. 14. 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);
  15. 15. 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
  16. 16. 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)
  17. 17. 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.
  18. 18. 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.
  19. 19. 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.
  20. 20. 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
  21. 21. 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
  22. 22. 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)

×