44
CEFET-SE Microcontroladores Microcontroladores Aula 01 Aula 01 Introdução Introdução Prof. Fábio Prudente [email protected] http://groups.google.com/group/uc-cefet-se

01 Microcontroladores - Introducao

Embed Size (px)

Citation preview

Page 1: 01 Microcontroladores - Introducao

CEFET-SE

MicrocontroladoresMicrocontroladores

Aula 01Aula 01IntroduçãoIntrodução

Prof. Fábio Prudente

[email protected]://groups.google.com/group/uc-cefet-se

Page 2: 01 Microcontroladores - Introducao

Contexto:

Eletrônica Digital Combinacional Saída depende apenas das entradas atuais Não há memória

Eletrônica Digital Seqüencial Saída atual depende das entradas atuais e dos

estados anteriores Elementos de memória Seqüência de estados

Page 3: 01 Microcontroladores - Introducao

Contexto:

Algoritmos: seqüências de operações, objetivando um

resultado Ex: receita de bolo

Sistemas Digitais Seqüenciais: São capazes de executar algoritmos, mas... Qualquer mudança no algoritmo implica

modificação física no circuito.

Page 4: 01 Microcontroladores - Introducao

Contexto:

Dispositivos Programáveis Operações → Instruções; Memória armazena a seqüência de Instruções

(programa); Unidade de Processamento (UCP) executa

instruções, uma a uma; Para modificar o algoritmo, basta modificar as

instruções na memória.

Page 5: 01 Microcontroladores - Introducao

Dispositivos programáveis:

Presentes em todos os lugares: Telefones celulares, smartphones... Computadores, notebooks... DVDs, Televisores, Microondas, Máquinas de

Lavar... Ignição Eletrônica, Freios ABS... Sistemas de automação industrial...

Page 6: 01 Microcontroladores - Introducao

Microcontroladores:

São dispositivos programáveis Integram, em um único chip:

Unidade de processamento (UCP) Memórias (Instruções / Dados) Temporizadores Unidades de Entrada e Saída

Versatilidade e Baixo custo!!!

Page 7: 01 Microcontroladores - Introducao

Microcontroladores:

Objetivos da Disciplina: Conhecer conceitos gerais Identificar tipos, categorias e arquiteturas Programação

Material de apoio: http://groups.google.com/group/uc-cefet-se [email protected]

Page 8: 01 Microcontroladores - Introducao

Conceitos IniciaisConceitos Iniciais

Page 9: 01 Microcontroladores - Introducao

Sistemas Programáveis

Instruções: comandos que dizem à UCP qual operação realizar Ex: somar, subrair, ler um dado da memória,

escrever dado na memória...

Dados: aquilo que se deseja processar, ou seja, os valores

que serão somados, subtraídos ou movidos pela UCP

Page 10: 01 Microcontroladores - Introducao

Sistemas Programáveis

Memória Dispositivo capaz de armazenar certa quantidade

(N) de valores (bytes) 1 byte = 8 bits (0000 0000 até 1111 1111) Cada valor armazenado na memória pode ser

acessado por um ”endereço” os endereços vão de 0 até N-1.

Page 11: 01 Microcontroladores - Introducao

Sistemas Programáveis

Arquitetura de Computadores: projeto conceitual que define o funcionamento de

um sistema computacional

Duas categorias se destacam: von Neumann Harvard

Page 12: 01 Microcontroladores - Introducao

Arquitetura de Harvard

Usada no Mark-I, construído na Universidade de Harvard, pela IBM (1944)

Idéia central: Memórias distintas para instruções e dados

Vantagens: Memórias não precisam ter as mesmas

características UCP pode ler instruções e dados simultaneamente

(maior velocidade)

Page 13: 01 Microcontroladores - Introducao

Arquitetura de Harvard

InstruçõesInstruções

DadosDados

UCPUCPE / SE / S

Page 14: 01 Microcontroladores - Introducao

Arquitetura von Neumann

Criada por John von Neumann, em 1946 Levou à construção do EDVAC, em 1952

Idéia central: armazenar Instruções e Dados na mesma memória

Vantagens: Versatilidade Simplicidade

Page 15: 01 Microcontroladores - Introducao

Arquitetura von Neumann

UCPUCPE / SE / SInstruçõesInstruções

++DadosDados

Barramentos

Page 16: 01 Microcontroladores - Introducao

Tempos difíceis...

Mark-I (1944)

Page 17: 01 Microcontroladores - Introducao

Tempos difíceis...

EDVAC (1952)

Page 18: 01 Microcontroladores - Introducao

Tempos modernos

Microprocessador, Placa-Mãe e Memórias

Page 19: 01 Microcontroladores - Introducao

Tempos modernos

Microcontrolador: UCP + Memória + E/S em único chip

Page 20: 01 Microcontroladores - Introducao

RISC x CISC

RISC: Reduced Instruction Set Computer Computador com Conjunto de Instruções Reduzido UCP mais simples (e mais eficiente) mais instruções para realizar um algoritmo

CISC: Complex Instruction Set Computer UCP mais complexa (menos eficiente) algoritmo realizado com menos instruções

Page 21: 01 Microcontroladores - Introducao

Exercícios:

1) Qual a diferença entre sistemas digitais combinacionais, seqüenciais e programáveis?

2) Que são algoritmos, e por que os sistemas combinacionais não são capazes de executá-los?

3) Qual a importância da disciplina Microcontroladores, dentro do curso de Eletrônica?

Page 22: 01 Microcontroladores - Introducao

Exercícios:

4) Comente as diferenças entre as arquiteturas de Harvard e de von Neumann

5) Memórias são capazes de armazenar valores binários. Como a memória pode armazenar dados e instruções?

Page 23: 01 Microcontroladores - Introducao

1

CEFET-SE

MicrocontroladoresMicrocontroladores

Aula 01Aula 01IntroduçãoIntrodução

Prof. Fábio Prudente

[email protected]://groups.google.com/group/uc-cefet-se

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE SERGIPE

Curso de Eletrônica

Disciplina: Microcontroladores

Prof.: Fábio Prudente

Aula 01: Introdução

Page 24: 01 Microcontroladores - Introducao

2

Contexto:

Eletrônica Digital Combinacional Saída depende apenas das entradas atuais Não há memória

Eletrônica Digital Seqüencial Saída atual depende das entradas atuais e dos

estados anteriores Elementos de memória Seqüência de estados

Antes de começarmos nossa disciplina, vamos entender onde ela se encaixa, no nosso curso de Eletrônica:

Na Eletrônica Digital Combinacional, estudamos circuitos capazes de implementar algumas funções lógicas, onde a saída depende apenas da combinação das entradas, tais como codificadores, decodificadores e multiplexadores, mas esses circuitos não têm memória, portanto não são capazes de executar uma seqüência de operações ao longo do tempo.

Na Eletrônica Digital Seqüencial, estudamos circuitos capazes de memorizar informações (bits) e, consequentemente, capazes de executar seqüências de operações, tais como os contadores e máquinas de estados finitos.

Page 25: 01 Microcontroladores - Introducao

3

Contexto:

Algoritmos: seqüências de operações, objetivando um

resultado Ex: receita de bolo

Sistemas Digitais Seqüenciais: São capazes de executar algoritmos, mas... Qualquer mudança no algoritmo implica

modificação física no circuito.

Com essa tecnologia, podemos executar algoritmos, que são seqüências de operações, rigorosamente definidas, para resolver um problema.

As receitas de cozinha são exemplos de algoritmos: seguindo rigorosamente todos os passos, chega-se ao resultado esperado.

Sistemas Digitais Seqüenciais são capazes de executar algoritmos, mas como são construídos ligando-se fisicamente um dispositivo a outro (hard-wired), qualquer mudança no algoritmo implica em alteração física do circuito.

Essa tecnologia, portanto, torna praticamente impossível realizar correções ou atualizações, depois que o produto foi vendido.

Page 26: 01 Microcontroladores - Introducao

4

Contexto:

Dispositivos Programáveis Operações → Instruções; Memória armazena a seqüência de Instruções

(programa); Unidade de Processamento (UCP) executa

instruções, uma a uma; Para modificar o algoritmo, basta modificar as

instruções na memória.

Os dispositivos programáveis estão um degrau acima dos dispositivos seqüenciais: eles são capazes de realizar uma certa variedade de operações, cada uma definida por uma instrução. Assim, podemos ter uma instrução para somar, outra para subtrair, outra para mover um dado de uma memória para outra, etc.

Nós podemos, então, gravar uma seqüência de instruções (programa) em sua memória, que corresponde ao algoritmo que desejamos executar.

A Unidade Central de Processamento (UCP) executa as instruções armazenadas na memória, uma a uma. Para modificar o algoritmo, basta modificar o programa.

Com essa tecnologia, fica muito mais prático realizar modificações e atualizações no algoritmo, bastando para isso modificar o programa armazenado na memória.

Page 27: 01 Microcontroladores - Introducao

5

Dispositivos programáveis:

Presentes em todos os lugares: Telefones celulares, smartphones... Computadores, notebooks... DVDs, Televisores, Microondas, Máquinas de

Lavar... Ignição Eletrônica, Freios ABS... Sistemas de automação industrial...

O cenário atual da eletrônica é dominado por dispositivos digitais programáveis. Em todos os lugares, ainda que não percebamos, eles estão presentes: nos fornos de microondas, máquinas de lavar, aparelhos de som, TV e DVD de nossas casas; nos sistemas de segurança, elevadores, centrais telefônicas dos condomínios; nos controles de ignição e injeção eletrônica, freios ABS e air-bags dos automóveis; nos CLPs, sensores e sistemas de automação e controle nas indústrias; etc. Dentre os diversos tipos de sistemas digitais programáveis, os microcontroladores são os mais simples, e também os mais comumente usados.

Page 28: 01 Microcontroladores - Introducao

6

Microcontroladores:

São dispositivos programáveis Integram, em um único chip:

Unidade de processamento (UCP) Memórias (Instruções / Dados) Temporizadores Unidades de Entrada e Saída

Versatilidade e Baixo custo!!!

Os Microcontroladores são uma categoria especial de dispositivos programáveis, caracterizada pela integração de todos os elementos necessários em um único chip.

Em um Microcontrolador, encontramos sempre uma Unidade central de processamento (UCP), Memórias para armazenar instruções e dados, Temporizadores, e uma grande variedade de dispositivos de Entrada e Saída de dados e sinais, tais como conversores A/D, saídas PWM, portas de comunicação (USART, USB, Ethernet...), controlador para displays, etc, dependendo do modelo.

Microcontroladores, portanto, são dispositivos muito versáteis e, geralmente, de baixo custo.

Page 29: 01 Microcontroladores - Introducao

7

Microcontroladores:

Objetivos da Disciplina: Conhecer conceitos gerais Identificar tipos, categorias e arquiteturas Programação

Material de apoio: http://groups.google.com/group/uc-cefet-se [email protected]

A disciplina Microcontroladores compõe o 4º Módulo do Curso de Eletrônica do CEFET-SE, e tem por objetivos apresentar os conceitos gerais relacionados a esses dispositivos, seus diferentes tipos, categorias e arquiteturas, e abordar a utilização de um modelo ou família específica, estudando em detalhes seu conjunto de instruções, organização e ambientes de programação e desenvolvimento.

Todo o material de apoio para esta disciplina pode ser encontrado na página

http://groups.google.com/group/uc-cefet-seOs alunos devem se cadastrar, para terem acesso à

lista de discussões:[email protected]

Page 30: 01 Microcontroladores - Introducao

8

Clique para adicionar título

Conceitos IniciaisConceitos Iniciais

Page 31: 01 Microcontroladores - Introducao

9

Sistemas Programáveis

Instruções: comandos que dizem à UCP qual operação realizar Ex: somar, subrair, ler um dado da memória,

escrever dado na memória...

Dados: aquilo que se deseja processar, ou seja, os valores

que serão somados, subtraídos ou movidos pela UCP

Vamos começar, então, a estudar alguns conceitos iniciais, necessários à compreensão desta disciplina:

Instruções são os comandos que dizem à UCP qual operação deve ser realizada, a cada passo. Um Programa é uma seqüência de instruções, que dizem à UCP como executar um determinado algoritmo.

Dados são os valores que serão processados pela UCP, de acordo com as instruções dadas.

Ex: Para fazer um bolo, a receita, escrita em um papel, equivale ao programa (instruções), enquanto a farinha, ovos e açúcar equivalem aos dados.

Para calcular xy, x e y são os dados, e seqüência de operações necessárias são as instruções.

Page 32: 01 Microcontroladores - Introducao

10

Sistemas Programáveis

Memória Dispositivo capaz de armazenar certa quantidade

(N) de valores (bytes) 1 byte = 8 bits (0000 0000 até 1111 1111) Cada valor armazenado na memória pode ser

acessado por um ”endereço” os endereços vão de 0 até N-1.

A Memória é o dispositivo encarregado de armazenar uma certa quantidade de valores (bytes – lê-se ”báites”)

Ex: quando compramos um computador com 1GB (Giga bytes), significa que ele possui uma memória para armazenar aproximadamente 109 bytes.

Um byte corresponte a um conjunto de 8 bits, portanto, pode armazenar valores numéricos que vão de 0000 0000

2 (0

10) até 1111 1111

2 (255

10)

Cada byte na memória pode ser acessada por um ”endereço”, que vai de 0 até N-1 (onde N é o tamanho da memória)

k (kilo) 103 210

M (Mega) 106 220

G (Giga) 109 230

Page 33: 01 Microcontroladores - Introducao

11

Sistemas Programáveis

Arquitetura de Computadores: projeto conceitual que define o funcionamento de

um sistema computacional

Duas categorias se destacam: von Neumann Harvard

Entende-se como Arquitetura de Computadores o projeto conceitual que define o funcionamento de um sistema computacional, nos aspectos que interessam ao programador. Para programar um certo sistema, é necessário conhecer o conjunto de instruções, a organização da memória, os registradores da CPU, etc. Essas informações, portanto, definem a Arquitetura do sistema.

Existem centenas (ou milhares) de arquiteturas diferentes, mas grande parte delas se enquadram em uma das categorias: ”von Neumann” e ”Harvard”

Page 34: 01 Microcontroladores - Introducao

12

Arquitetura de Harvard

Usada no Mark-I, construído na Universidade de Harvard, pela IBM (1944)

Idéia central: Memórias distintas para instruções e dados

Vantagens: Memórias não precisam ter as mesmas

características UCP pode ler instruções e dados simultaneamente

(maior velocidade)

Refere-se à arquitetura usada no computador eletromecânico Mark-I, concebido pelo Prof. Howard H. Aiken, da Universidade de Harvard, e construído pela IBM em 1944. Este computador lia suas instruções de uma fita de papel perfurada, com 24 ”bits” de largura, e os dados podiam ser lidos de painéis de chaves ou armazenados em contatos giratórios.

Com a tecnologia disponível naquela época (elementos eletromecânicos), a arquitetura Harvard era muito complexa, difícil de ser construída e operada.

Leia mais:http://www-03.ibm.com/ibm/history/exhibits/markI/markI_intro.htmlhttp://pt.wikipedia.org/wiki/Computadorhttp://www.computersciencelab.com/ComputerHistory/History.htm

Page 35: 01 Microcontroladores - Introducao

13

Arquitetura de Harvard

InstruçõesInstruções

DadosDados

UCPUCPE / SE / S

Esquematicamente, podemos representar a arquitetura de Harvard como no diagrama acima, onde a UCP conecta-se independentemente a dois blocos distintos de memória, um para instruções, outro para dados.

O formato diferente entre os dois blocos evidencia que estes podem, de fato, ter características e tecnologias distintas.

Nesse diagrama, fica claro que a UCP pode se comunicar simultaneamente com cada tipo de memória, e com os dispositivos de Entrada e Saída.

Page 36: 01 Microcontroladores - Introducao

14

Arquitetura von Neumann

Criada por John von Neumann, em 1946 Levou à construção do EDVAC, em 1952

Idéia central: armazenar Instruções e Dados na mesma memória

Vantagens: Versatilidade Simplicidade

Arquitetura concebida por John von Neumann (lê-se ”Jon fon Nóiman”), na Universidade de Princeton, e que levou à construção do EDVAC, primeiro computador eletrônico (a válvulas) programável e de propósito geral, em 1952.

Ao contrário da arquitetura de Harvard, a principal idéia de von Neumann era armazenar dados e instruções na mesma memória, trazendo com isso, maior versatilidade e simplicidade de operação e construção.

Leia mais:http://www.di.ufpb.br/raimundo/Revolucao_dos_Computadores/Histpage13.htmhttp://www.csupomona.edu/~hnriley/www/VonN.html

Page 37: 01 Microcontroladores - Introducao

15

Arquitetura von Neumann

UCPUCPE / SE / SInstruçõesInstruções

++DadosDados

Barramentos

Pelo diagrama, percebe-se que a arquitetura proposta por von Neumann é muito mais simples, com um único bloco de memória para instruções e dados, e uma única estrutura de interconexão entre a UCP, memória e E/S.

Embora estruturalmente mais simples, essa arquitetura apresenta uma desvantagem: a UCP não pode mais acessar instruções, dados e E/S simultaneamente, mas sim, uma por vez, porque só há um canal de comunicação entre eles. Isso representa uma perda de desempenho, por ”contenção de barramento”

Page 38: 01 Microcontroladores - Introducao

16

Tempos difíceis...

Mark-I (1944)

À esquerda, uma vista do computador Mark I

À direita, a unidade de ”contagem”, constituída por um motor (ao centro), e as barras de contatos rotatórios.

Imagine a dificuldade para construir, montar e programar toda essa parafernália eletromecânica...

Fonte:http://www-03.ibm.com/ibm/history/exhibits/markI/markI_album.html

Page 39: 01 Microcontroladores - Introducao

17

Tempos difíceis...

EDVAC (1952)

John von Neumann, ao lado do painel de memórias do EDVAC. A construção e programação do EDVAC era bem mais simples que no Mark-I.

Embora essas tecnologias pareçam ridiculamente rudimentares, nos tempos atuais, as idéias básicas criadas naquela época atravessaram toda a evolução tecnológica, e as arquiteturas de Harvard e de von Neumann permanecem vivas nos computadores de hoje.

Fonte:http://www.gefilde.de/ashome/denkzettel/0050/dz_0050.html

Leia mais:http://www.widesoft.com.br/users/virtual/mcomp.htm

Page 40: 01 Microcontroladores - Introducao

18

Tempos modernos

Microprocessador, Placa-Mãe e Memórias

Hoje, o alto grau de integração permite que um computador completo, com UCP, placa-mãe, memórias e periféricos caibam em um pequeno espaço, em baixo de uma mesa, ou em equipamentos ainda mais portáteis, como notebooks, PDAs e smartphones.

Mas mesmo esses equipamentos ainda são formados por componentes separados. A UCP, sozinha, não tem qualquer funcionalidade; ela precisa estar conectada a uma placa-mãe, com mais uma dezena de outros circuitos e periféricos, para funcionar.

Os computadores, em geral, utilizam arquitetura de von Neumann, pois são construídos para serem versáteis, para aplicações gerais. A mesma memória é usada para dados e instruções, e cabe ao Sistema Operacional organizar a separação.

Page 41: 01 Microcontroladores - Introducao

19

Tempos modernos

Microcontrolador: UCP + Memória + E/S em único chip

A grande vantagem dos Microcontroladores é exatamente integrar UCP, memória e alguns periféricos de E/S em um único chip, que pode funcionar sozinho.

Os microcontroladores são projetados para aplicações específicas, portanto não precisam ser versáteis. Desta forma, a maioria utiliza a arquitetura Harvard, pois isso permite melhor desempenho relativo ao consumo de energia.

Pense nessa foto: é como ter um Mark-I na ponta do dedo! - é óbvio que os microcontroladores não possuem o mesmo poder computacional dos microprocessadores, mas para muitas aplicações específicas, eles dão conta do recado, são muito mais simples e custam muito menos.

Page 42: 01 Microcontroladores - Introducao

20

RISC x CISC

RISC: Reduced Instruction Set Computer Computador com Conjunto de Instruções Reduzido UCP mais simples (e mais eficiente) mais instruções para realizar um algoritmo

CISC: Complex Instruction Set Computer UCP mais complexa (menos eficiente) algoritmo realizado com menos instruções

Além das arquiteturas, os sistemas programáveis podem ser classificados quanto ao conjunto de instruções que são capazes de executar.

Nesse caso, também, existem centenas de famílias diferentes de dispositivos, cada uma com seu próprio conjunto de instruções, todos incompatíveis entre si, mas podemos dividí-las em duas grandes categorias:

RISC, com conjunto de instruções reduzido, prima pela simplicidade da UCP, visando maior velocidade, menor custo e consumo de energia. Muitos microcontroladores são RISC.

CISC, com um conjunto de instruções grande e complexo, visam maior poder de processamento, executando operações mais complexas com uma única instrução. Muitos microprocessadores (dos Pcs, por exemplo) são CISC.

Page 43: 01 Microcontroladores - Introducao

21

Exercícios:

1) Qual a diferença entre sistemas digitais combinacionais, seqüenciais e programáveis?

2) Que são algoritmos, e por que os sistemas combinacionais não são capazes de executá-los?

3) Qual a importância da disciplina Microcontroladores, dentro do curso de Eletrônica?

Page 44: 01 Microcontroladores - Introducao

22

Exercícios:

4) Comente as diferenças entre as arquiteturas de Harvard e de von Neumann

5) Memórias são capazes de armazenar valores binários. Como a memória pode armazenar dados e instruções?