Baixe o app para aproveitar ainda mais
Prévia do material em texto
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? 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 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 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. 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 availabilityand 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 B U S 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 B U S 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)
Compartilhar