ARQUITETURA DE MICROCONTROLADORES.ppt

65
ARQUITETURA DE MICROCONTROLADORES Luís Veloso 2013 Grupo 540

Transcript of ARQUITETURA DE MICROCONTROLADORES.ppt

Page 1: ARQUITETURA DE MICROCONTROLADORES.ppt

ARQUITETURA DE MICROCONTROLADORES

Luís Veloso 2013

Grupo 540

Page 2: ARQUITETURA DE MICROCONTROLADORES.ppt

objetivos

•Atualizar conhecimentos na área dos microcontroladores;•Identificar a estrutura típica de um sistema microcontrolado;•Identificar principais características de um microcontrolador;•Conhecer e aplicar instruções de um microcontrolador;•Identificar as principais funcionalidades do software de simulação e programação;•Programar e simular;•Interligar o microcontrolador com periféricos externos;•Projetar o trabalho a desenvolver;•Promover a reflexão sobre a utilização dos sistemas microcontrolados como solução para a resolução de problemas/projetos de eletrotecnia, eletrónica e robótica .

Page 3: ARQUITETURA DE MICROCONTROLADORES.ppt

conteúdos

• Apresentação da ação. (1h)• Arquitetura dos microcontroladores. (2h)• Software de simulação e programação. (2h)• Programação em linguagem assembler. (2h)• Exercícios práticos de simulação. (3h)• Sistema microcontrolado PICAXE. (2h)• Exercícios práticos. (5h)• Sistema microcontrolado ARDUINO. (2h)• Exercícios práticos. (5h)• Avaliação. (1h)

Page 4: ARQUITETURA DE MICROCONTROLADORES.ppt

metodologia

• Exposição de conceitos (Sessões teóricas);

• Demonstração (Sessões Teórico/Práticas);

• Aplicação Prática de conceitos (Sessões Práticas).

Page 5: ARQUITETURA DE MICROCONTROLADORES.ppt

avaliação

• Assiduidade;• Participação nas sessões (qualidade das intervenções e do trabalho desenvolvido no decorrer da ação);

• Trabalho individual* de aplicação de conhecimentos e Reflexão crítica.

A avaliação dos Formandos decorre em conformidade com o Regime Jurídico da Formação Contínua, nº2 do artº do ECD, aprovado pelo Decreto-Lei nº 15/2007, de 19 de Janeiro e a carta circular CCPFC-3-2007-Setembro.

* Os trabalhos práticos e reflexões produzidos pelos formandos a partir das e nas sessões presenciais de acordo com os critérios previamente estabelecidos - classificados nas escalas de 1 a 10, com a menção qualitativa de:1 a 4,9 valores – Insuficiente;5 a 6,4 valores – Regular6,5 a 7,9 valores – Bom8 a 8,9 valores – Muito Bom9 a 10 valores - Excelente

Page 6: ARQUITETURA DE MICROCONTROLADORES.ppt
Page 7: ARQUITETURA DE MICROCONTROLADORES.ppt
Page 8: ARQUITETURA DE MICROCONTROLADORES.ppt

Um pouco de história

Em 1969, uma empresa japonesa BUSICOM iniciou um projeto para uma calculadora eletrónica. A história do microprocessador data a partir desse projeto. Esta empresa, enviou para os Estados Unidos uma equipa de engenheiros responsáveis pelo projeto à procura de Marcian Hoff, da Intel Corporation. Após a compra da licença da empresa japonesa, em 1971, a Intel lança o seu primeiro processador de 4 bits, denominado 4004, que conseguia processar 6000 instruções por segundo (6kHz).

Page 9: ARQUITETURA DE MICROCONTROLADORES.ppt

Um pouco de história

Em Abril de 1972, a Intel anuncia o seu primeiro processador de 8 bits, o 8008.Este processador, além de ter um barramento de dados maior, conseguia processar até 300 000 operações por segundo. Nesta mesma época, já começavam a aparecer os primeiros concorrentes da Intel, sendo a primeira a Motorola Corporation que lança o 6800. Um engenheiro da Motorola sai da empresa e entra para a MOS Technology que em 1975, lança o 6501 e o 6502 por um preço muito mais baixo do que os processadores da Intel e Motorola.

Page 10: ARQUITETURA DE MICROCONTROLADORES.ppt

Um pouco mais de história

Devido ao baixo custo do 6502, torna-se rapidamente utilizado pelo mercado dos computadores, na Apple, Comodore e até no Atari! A MOS chegou a vender até 15 milhões de processadores por ano, porém foi comprada por um grupo de empresas como a Rockwell, Ricoh e Comodore.Outro engenheiro, porém da Intel, sai da corporação e funda a Zilog. Em 1976, a Zilog lança o Z80, que era compatível com 8080 da Intel e apresentava inúmeras vantagens. Neste mesmo ano, a Intel lança uma versão melhorada do 8080, chamada 8085, porém o Z80 ainda seria superior a este e tornou-se praticamente padrão de mercado em processadores.

Page 11: ARQUITETURA DE MICROCONTROLADORES.ppt

E quando surgiu o MICROCONTROLADOR?

O primeiro microcontrolador foi lançado pela Intel em 1978 e recebeu a sigla 8048, evoluiu e deu origem à família 8051, em 1983.A Intel ainda oferece a família 8096, que trabalha em 16 bits, possibilitando maior capacidade de processamento.Hoje em dia, uma grande quantidade de fábricas de semicondutores fabrica microcontroladores.

Page 12: ARQUITETURA DE MICROCONTROLADORES.ppt

Microcontrolador

Circuito integrado em alta escala (VLSI) que incorpora a maior parte dos elementos que constituem um controlador e se destina a uma determinada tarefa.

Costuma estar incorporado no dispositivo que controla (controlador embebido - embedded controller).

Page 13: ARQUITETURA DE MICROCONTROLADORES.ppt

indústria informática (periféricos: rato, teclado,...)electrodomésticos (fornos, máq. lavar, vídeos, etc)sistemas AVACstelecomunicaçõesindústria automóvel

Aplicações

Page 14: ARQUITETURA DE MICROCONTROLADORES.ppt

Um microcontrolador dispõe normalmente dos seguintes elementos:

processador ou CPUmemória de dados (RAM)memória de programa (ROM/PROM/EPROM/EEPROM)linhas de entrada/saída (E/S) programáveis

Constituição

Page 15: ARQUITETURA DE MICROCONTROLADORES.ppt

módulos de controlo de periféricos (portos série, paralelo,USB,I2C,etc.)gerador de impulsos de relógiotemporizadorescão-de-guarda (watchdog)conversores A/D e D/Acomparadores analógicos

Constituição

Page 16: ARQUITETURA DE MICROCONTROLADORES.ppt

microprocessador vs. microcontrolador

o microprocessador é um sistema aberto

constrói-se um computador com as características desejadas juntando os módulos necessários

o microcontrolador é um sistema fechado

contem um computador completo e as suas prestações limitadas não se podem modificar

Page 17: ARQUITETURA DE MICROCONTROLADORES.ppt

Estrutura de um microprocessador

bus de controle

P

Memória controlador 2controlador 1

bus de endereços

bus de dados

periféricos periféricos

Page 18: ARQUITETURA DE MICROCONTROLADORES.ppt

Estrutura de um microcontrolador

Cperiféricos periféricos

Page 19: ARQUITETURA DE MICROCONTROLADORES.ppt

Arquitectura interna de um microprocessador

UCPMemória

Instruções

+

dadosbus de dados e instruções

bus comum de endereços

8

Arquitectura “von Neumann” ou “Princeton”

Page 20: ARQUITETURA DE MICROCONTROLADORES.ppt

Arquitectura interna de um microcontrolador

Arquitectura “Harvard”

UCPMemória

de

dados

bus de dados

bus de endereços de dados

8

Memória

de

Instruções

9

bus de endereços de instruções

10

14

bus de instruções

Page 21: ARQUITETURA DE MICROCONTROLADORES.ppt

Arquitectura interna de um microcontrolador

RISC - Reduced Instruction Set Computer (35 no 16F84)

versus

CISC - Complex Instruction Set Computer (+150 no 8086)

Page 22: ARQUITETURA DE MICROCONTROLADORES.ppt

Arquitectura interna de um microcontrolador

Memória de Programa

Tipologia

PROM (Programmable Read Only Memory) EPROM (Electrically PROM) OTP (One Time Programmable) EEPROM (Electrically Erasable PROM) FLASH

Page 23: ARQUITETURA DE MICROCONTROLADORES.ppt

Arquitectura interna de um microcontrolador

Memória de Dados

SRAM (Static RAM) EEPROM

Page 24: ARQUITETURA DE MICROCONTROLADORES.ppt

Arquitectura interna de um microcontrolador

Programação

linguagem assemblylinguagens HLL (High Level Language):

Pascal, Basic, JAL, C

Compiladores vs. Interpretadores

Page 25: ARQUITETURA DE MICROCONTROLADORES.ppt

Como a estrutura interna dos PICs usa filosofia RISC, não podemos esperar que execute diretamente operações complexas.Além disso, só realiza operações com inteiros.

Para executar operações mais complexas, de vírgula flutuante, por exemplo, é necessário usar um compilador de alto nível, como C, que possui rotinas em assembly já prontas, ou usar rotinas fornecidas pelo fabricante ou desenvolver as suas próprias rotinas.

Que tipos de operações matemáticas podem realizar?

Page 26: ARQUITETURA DE MICROCONTROLADORES.ppt

Alguns modelos de PIC possuem uma área de memória EEPROM (electrically erasable programmable read only memory) que serve como memória não volátil, útil para guardarmos dados. Essas memórias podem suportar um ciclo de 1000000 de gravações.

O que é a EEPROM?

Page 27: ARQUITETURA DE MICROCONTROLADORES.ppt

Alguns modelos podem receber dados e reprogramarem-se automaticamente sem o uso de um gravador.

É um programa especial, gravado na memória que permite interpretar um conjunto de comandos.

Normalmente os PICs que usem o recurso de bootloader, recebem os dados a serem gravados através de uma porta série.

O que é bootloader?

Page 28: ARQUITETURA DE MICROCONTROLADORES.ppt

O que é um microcontrolador “PIC”?

Família dos microcontroladores Microchip PICFonte: Microchip Technology Inc. (www.microchip.com)

Page 29: ARQUITETURA DE MICROCONTROLADORES.ppt

A empresa General Instruments produziu um chip chamado PIC1650, descrito como um Computador Inteligente Programável (Programmable Intelligent Computer).Este chip é o pai de todos os PICs, e funcionalmente semelhante ao 16C54. Foi projetado para ser um periférico para os microprocessadores CP1600. Talvez por isso, a sigla PIC, também se designe por Peripheral Interface Controller.

O que significa PIC?

Page 30: ARQUITETURA DE MICROCONTROLADORES.ppt

O set de instruções depende da família do PIC. Os mais comuns da família de núcleo de 14 bits (12F e 16F), possuem 35 instruções assembly.

Os PICs com núcleo de 16 bits possuem 76 instruções.

Quantas instruções possuem os PICs?

Os PICs são uma linha de microcontroladores de arquitetura Harvard com filosofia RISC com uma diversidade de periféricos internos.

Page 31: ARQUITETURA DE MICROCONTROLADORES.ppt
Page 32: ARQUITETURA DE MICROCONTROLADORES.ppt

Família dos microcontroladores Microchip PICFonte: Microchip Technology Inc. (www.microchip.com)

Page 33: ARQUITETURA DE MICROCONTROLADORES.ppt
Page 34: ARQUITETURA DE MICROCONTROLADORES.ppt
Page 35: ARQUITETURA DE MICROCONTROLADORES.ppt
Page 36: ARQUITETURA DE MICROCONTROLADORES.ppt
Page 37: ARQUITETURA DE MICROCONTROLADORES.ppt
Page 38: ARQUITETURA DE MICROCONTROLADORES.ppt
Page 39: ARQUITETURA DE MICROCONTROLADORES.ppt

Os microcontroladores da família PIC são dispositivos RISC com arquitectura HARVARD e fluxo de instruções PIPELINE.

O seu uso é praticamente ilimitado e o preço é baixo, tendo em conta as suas excelentes características.

Os PICs são muito versáteis, podem possuir de 6 até 100 pinos e trabalhar em frequências até 80MHz.

Page 40: ARQUITETURA DE MICROCONTROLADORES.ppt
Page 41: ARQUITETURA DE MICROCONTROLADORES.ppt

Existem algumas famílias de PIC que podem ser classificadas segundo:

O tamanho da instrução: com núcleo de 12 bits, núcleo de 14 bits, núcleo de 16 bits; O tipo da memória: PROM (OTP = programável uma vez), EEPROM, FLASH (que podem ser gravadas várias vezes); O prefixo do modelo: 12, 14, 16, 18, rfPIC, dsPIC;

A Microchip lançou ainda diversas outras famílias: 24F, 30F, 33F e PIC32 (com núcleo MIPS).

Quais são as famílias PIC?

Page 42: ARQUITETURA DE MICROCONTROLADORES.ppt

16F628(A) de 18 pinos e até 16 portas de I/O, com velocidade de até 20MHz de clock, memória de programa Flash, e memória de dados EEPROM e RAM, USART, PWM, Comparadores analógicos, Timers, Watchdog Timer (WDT), oscilador interno.

12F629 de 8 pinos e até 6 portas de I/O, Flash, EEPROM, Comparadores, Timers, WDT 16F877(A) de 40 pinos e até 33 portas de I/O, Flash, EEPROM, Conversores A/D, USART, Timers, SSP, WDT, PSP.

16F84A de 18 pinos e 13 portas de I/O, Flash, EEPROM, Timers, WDT. Obs: obsoleto

18F4520 de 40 pinos 18F2550

18F4550 de 40 pinos e hardware para implementar dispositivos USB 2.0

Quais são os modelos Flash mais comuns?

Page 43: ARQUITETURA DE MICROCONTROLADORES.ppt

A letra após o prefixo de dois dígitos significa a tecnologia da memória utilizada pelo microcontrolador.

Assim as mais comuns são:C quer dizer memória OTP (once time programmable),F quer dizer Flash (programável diversas vezes),LF quer dizer Flash de baixa tensão,

As letras no final do código, definem o tipo de encapsulamento e a faixa de temperatura de trabalho.

O que significam as letras nos códigos dos PICs?

Page 44: ARQUITETURA DE MICROCONTROLADORES.ppt

Pin-out do PIC16F84

•Considerado um marco de divulgação.

•Foi um dos primeiros a usar o tipo de memória ROM do tipo

FLASH e juntamente com a gravação série (ICSP “In-Circuit

Serial Programing™”)

•A sua flexibilidade, baixo custo e recursos renderam fama ao

seu fabricante. Hoje é um microcontrolador descontinuado.

Page 45: ARQUITETURA DE MICROCONTROLADORES.ppt

Programação

Page 46: ARQUITETURA DE MICROCONTROLADORES.ppt

Programação

O recurso ICSP “In-Circuit Serial Programing™”, i.é., Programação Série no Circuito” facilita a sua programação. Este recurso permite que a memória ROM do microcontrolador seja gravada, através de dois pinos, facilitando a gravação do PIC na própria placa de aplicação.

Page 47: ARQUITETURA DE MICROCONTROLADORES.ppt

Os PICs podem ser programados em linguagem assembly ou em linguagem de

alto nível como C, Pascal ou Basic. Para tal, é necessário um programa compilador para gerar os códigos hexadecimais para serem gravados no microcontrolador.Um software/ambiente de desenvolvimento de programas para PICs encontra-se disponível gratuitamente no site da Microchip (MPLAB).

Programação

Em que linguagem posso programar os PICs?

Page 48: ARQUITETURA DE MICROCONTROLADORES.ppt

Programa de gravação de microcontroladoresIC-PROG

www.ic-prog.com

Page 49: ARQUITETURA DE MICROCONTROLADORES.ppt

Ambiente de programação MPLAB

Page 50: ARQUITETURA DE MICROCONTROLADORES.ppt

A Microchip disponibiliza gratuitamente no seu “site” uma importante ferramenta de programação, conhecida como

MPLAB IDE.É um completo ambiente de programação para microcontroladores Microchip, que na sua versão gratuita também integra um montador assembly chamado de MPASM.Segundo a Microchip … “O que é o MPLAB IDE? MPLAB Integrated Development Environment (IDE) é um pacote de ferramentas integradas e gratuitas para o desenvolvimento de aplicações dedicadas aos microcontroladores Microchip PICmicro® e dsPIC®. O MPLAB IDE é executado como uma aplicação para o ambiente Windows. É fácil de se utilizar e agrega componentes de software gratuitos para um rápido desenvolvimento de aplicações e um poderoso compilador. MPLAB IDE também disponibiliza uma simples e unificada interface gráfica ao utilizador para desenvolvimento de aplicações de hardware e software Microchip.”

Page 51: ARQUITETURA DE MICROCONTROLADORES.ppt

Linguagem C

Page 52: ARQUITETURA DE MICROCONTROLADORES.ppt

Linguagem CConsiderada uma linguagem de alto nível, a linguagem C é bastante versátil. Criada por Dennis Ritchie da Bells Labs em 1972, é conhecida pelo seu equilíbrio entre estrutura e eficiência, eliminando as deficiências da linguagem Assembly ainda com baixo consumo de Memória. A linguagem C (assim como as demais linguagens) é compilada e desta forma, o programa fonte gerado pelo programador é processado por um outro programa, conhecido por COMPILADOR, que irá gerar o programa em linguagem binária.

Na maioria dos compiladores, o processo é realizado em duas fases, sendo isso transparente ao utilizador. Na primeira fase, existe a leitura do programa fonte, a verificação dos símbolos (nomes usados no programa), e da sintaxe dos comandos, verificando se há algum erro sintático. Em paralelo a isso, através da análise do significado de cada estrutura da linguagem, é produzido um programa em linguagem intermediária (em alguns casos o código intermediário é em assembly). Na segunda fase, o compilador executa a tradução do código intermediário para a linguagem de destino, neste caso, num arquivo HEX com as instruções de máquinado microcontrolador.

Page 53: ARQUITETURA DE MICROCONTROLADORES.ppt

Linguagem C

A vantagem das linguagens de programação de alto-nível sobre o Assembly está no fato de, na geração de código envolver situações mais complexas do que as suportadas por uma única instrução da linguagem de máquina do hardware alvo. Por exemplo, se um microcontrolador não possuir a instrução de multiplicação, o programador assembly deve criar um pedaço de código que realize somas sucessivas. Em linguagem C, o programador pode utilizar a operação de multiplicação, pois fica “transparente” a tradução que o compilador fará, resolvendo esta operação da maneira mais adequada possível. Isso também garante às linguagens de programação uma maior portabilidade em relação ao assembly, permitindo que um programa fonte possa ser “recompilado” para outro modelo de microcontrolador com poucas ou nenhumas modificações.

Page 54: ARQUITETURA DE MICROCONTROLADORES.ppt

Linguagem C

A desvantagem da linguagem C sobre a linguagem assembly reside no consumo de memória. Como o compilador nem sempre consegue cobrir todas as otimizações de código possíveis, em muitos casos temos um acréscimo de instruções no código binário (arquivo HEX) gerado, consumindo um pouco mais de memória de programa.A linguagem C permite também que os programas possam ser escritos de forma estruturada, facilitando a sua interpretação e aumentando o reaproveitamento de “pedaços de código” já escritos do programa. Desta forma, um programador pode escrever parte do problema, reutilizando também partes de programas ou subrotinas já criadas, facilitando a implementação.

Page 55: ARQUITETURA DE MICROCONTROLADORES.ppt

Compiladores C para microcontroladores Microchip PIC.

•CCS ou PIC C COMPILER ou PCW (www.ccsinfo.com)•Hi-tech PIC C Compiler (http://www.htsoft.com/products/picccompiler.php.)•BoostC Compiler•MikroC Compiler (http://www.mikroe.com/en/compilers/mikroc/pic)•CC5X e CC8E (http://www.bknd.com)•Microchip MPLAB C18 (http://www.microchip.com)

Page 56: ARQUITETURA DE MICROCONTROLADORES.ppt

Linguagem PASCAL

É uma linguagem que foi criada em 1970 pelo suíço Niklaus Wirth, e recebeu este nome em homenagem ao famoso matemático Blaise Pascal. Trata-se de uma linguagem muito estruturada, com comandos simples e de alto nível, e foi muito utilizada no ensino de programação pela sua sintaxe amigável e comandos fáceis de memorizar.

Compiladores PASCAL para microcontroladores PIC.

MikroPascal (www.mikroe.com)P2C (www.sourceboost.com)

Page 57: ARQUITETURA DE MICROCONTROLADORES.ppt

Linguagem BASIC

Criada em 1963 por Kemeny e Kurtz com o objetivo de facilitar o ensino de programação, foi uma linguagem muito difundida nos anos 80, ressurgindo recentemente como uma poderosa linguagem de programação de alto nível.BASIC é um anacrónimo, que significa “Beginners All-Purpose Symbolic Instruction Code”, ou seja, código de instruções simbólicas para programadores principiantes.No mundo dos microcontroladores, a linguagem BASIC continua fazendo o seu papel, juntamente com a linguagem Pascal, para facilitar o acesso dos principiantes ao mundo da programação. O seu ponto fraco é a baixa eficiência, natureza que faz com que o BASIC seja pouco considerado como uma ferramenta de desenvolvimento comercial.

Page 58: ARQUITETURA DE MICROCONTROLADORES.ppt

Compiladores BASIC

•Paralax Basic Stamp•PIC Basic•Mbasic•MikroBasic for PIC (HTTP://www.mikroe.com)•BoostBASIC (http://www.sourceboost.com)•Great Cow BASIC (http://gcbasic.sourceforge.net)

Page 59: ARQUITETURA DE MICROCONTROLADORES.ppt

Linguagens alternativas

Linguagem Ladder

De entre os principais editores e compiladores LADDER para microcontrolador Microchip PIC, podemos citar o

LDMICRO: este ambiente gera código executável, em formato HEX, para microcontroladores PIC16F877, PIC16F876 e PIC16F628.A sua vantagem encontra-se na facilidade de realizar a programação para construção de controlos digitais simples, através da linguagem ladder.O LDMICRO é disponibilizado gratuitamente na página do seu criador, Jonathan Westhues, através do link <http://cq.cx/ladder.pl>.

Page 60: ARQUITETURA DE MICROCONTROLADORES.ppt

LDMICRO

Page 61: ARQUITETURA DE MICROCONTROLADORES.ppt

Flowcode

Um compilador revolucionário, que gera um programa executável a partir de um fluxograma escrito num editor gráfico.Para principiantes, sem experiência de programação em nenhuma linguagem, e que desejam dar os seus primeiros passos numa interface fácil e de alto nível. Como ponto fraco, tem o fato de não possuir versão de demonstração com funcionalidades, e de não permitir que implementações mais simples sejam executadas com a velocidade apropriada.(www.matrixmultimedia.com)

Page 62: ARQUITETURA DE MICROCONTROLADORES.ppt
Page 63: ARQUITETURA DE MICROCONTROLADORES.ppt
Page 64: ARQUITETURA DE MICROCONTROLADORES.ppt
Page 65: ARQUITETURA DE MICROCONTROLADORES.ppt

Onde posso obter informações e documentação sobre os microcontroladores?

www.microchip.com

www.atmel.com

www.picaxe.com

www.arduino.cc