Você está na página 1de 15

ET37I - Sistemas Microcontrolados

Prof. André Sanches Fonseca Sobrinho


1. INTRODUÇÃO

1.1 Histórico

• Wilhelm Schickard (1592-1635): construiu a primeira máquina capaz de somar, subtrair, multiplicar e
dividir, mas foi perdida durante a Guerra dos Trinta Anos.
• Blaise Pascal (1623-1662): inventor da primeira calculadora que fazia somas e subtrações,
utilizando engrenagens. O projeto de Pascal foi aprimorado por Leibniz. A máquina de Leibniz fazia
multiplicações e divisões.
• Charles Babbage (1792-1871): projetou o Calculador Analítico, totalmente mecânico, mas muito
próximo da concepção atual. Utilizaria cartões perfurados. Trabalhou com Ada Augusta (Lady
Lovelace), filha de Lord Byron. Ada foi a primeira programadora da história, criando programas para a
máquina inexistente. Inventou os conceitos de sub-rotina, loop e do salto condicional. Com a
suspensão do financiamento do governo inglês, Babbage não pôde concluir o seu projeto.
• George Boole (1815-1864): publicou em 1854 os princípios da lógica booleana, onde as variáveis
assumem apenas valores 0 e 1 (verdadeiro e falso). Posteriormente, em 1937, Claude Shannon
percebeu que a mesma álgebra poderia descrever o comportamento de circuitos elétricos chaveados.
• Herman Hollerith (1860-1929): inventou uma máquina, baseada na leitura de cartões de papel
perfurados em código BCD (Binary Coded Decimal), utilizada para recenseamento da população nos
EUA em 1890. A máquina fazia a contagem da informação referente à perfuração respectiva. O
sistema foi patenteado em 1887. A informação perfurada no cartão era passava por um sistema de
leitura com uma espécie de pente metálico, com cada dente conectado a um circuito elétrico. A
empresa fundada por Hollerith é hoje conhecida como International Business Machines, ou IBM.
• Z-1: computador mecânico construído pelo alemão Konrad Zuse (1935-1936), finalizado em 1938.
Utilizada informação em cartão perfurado, sendo pioneiro a utilizar números binários. Zuse tentou
vendê-lo ao governo para uso militar, mas foi subestimado pelos nazistas, que não se interessaram
pela máquina.
• Mark I: a marinha dos EUA, em conjunto com a Universidade de Harvard e a IBM, construiu em
1944 o Mark I, que ocupava 120 m3, tinha milhares de relês e fazia muito barulho. Uma multiplicação
de números de 10 dígitos demorava 3 segundos.
• ENIAC: primeiro computador digital eletrônico de grande escala. Criado em fevereiro de 1946 pelos
cientistas americanos John Eckert e John Mauchly, da Electronic Control Company. Tal projeto foi
desenvolvido em segredo pelo exército americano durante a segunda guerra. Com cerca de 18.000
válvulas, o ENIAC conseguia fazer 500 multiplicações por segundo. Pesava 30 toneladas, consumia
200 000 watts de potência e ocupava várias salas.
• John von Neumann (1903-1957): matemático húngaro que formalizou o projeto lógico de um
computador. Sugeriu que as instruções fossem armazenadas na memória do computador. Até então
elas eram lidas de cartões perfurados e executadas, uma a uma. A maioria dos computadores de
hoje em dia segue ainda o modelo proposto por von Neumann.
• Intel 4004: primeiro microprocessador em um chip simples com 4-bits. Fabricado pela Intel
Corporation em 1971, foi também o primeiro disponível comercialmente.
• Intel 8008: primeiro microprocessador de 8 bits, lançado em 1972. Sucessor do 8080 e do 8085.
• Intel 8080: foi um grande sucesso e tornou-se a base para os primeiros microcomputadores
pessoais na década de 1970 graças ao sistema operacional CP/M.
• Motorola 6800: primeiro microprocessador de 8 bits produzido pela Motorola, lançado no mercado
pouco depois do Intel 8080 em fins de 1974.
• Altair 8800: computador pessoal projetado em 1975, baseado na CPU Intel 8080.
• 6501 e 6502: em 1975, a MOS Technology anunciou por no mercado os microprocessadores 6501 e
6502 ao preço de $25 cada e que podia satisfazer de imediato todas as encomendas. O 6502 tornou-
se muito popular e foi utilizado em computadores como KIM-1, Apple I, Apple II, Atari, Comodore,
Acorn, Oric, Galeb, entre outros.
• Z80: microprocessador lançado pela Zilog, com instruções compatíveis com o 8080 e também de
grande sucesso, comercializado a partir de julho de 1976.
• Intel 8086: microprocessador de 16 bits lançado em 1978 e faz parte da família x86 da Intel.
• Intel 8088: lançado em 1979, foi o primeiro microprocessador que se tornou realmente popular. O
8088 evoluiu para o 80286, depois para o 80386, 80486, Pentium, Pentium II, Pentium III e Pentium
4.
• Intel 80386: divisor de águas na indústria de informática, pois foi o primeiro a utilizar multitarefa
preemptiva (capacidade de executar mais de uma aplicação ao mesmo tempo), instruções de 32 bits
e memória em modo protegido de maneira realmente eficiente. Foi largamente utilizado em diversos
microcomputadores entre 1986 e 1994.
• AMD: aparece inicialmente como fabricante de microprocessadores da linha x86. Depois partiu para
o desenvolvimento de sua própria linha de microprocessadores: K6, Athlon, Duron, Turion, Sempron,
etc. Em 2004 e 2005 a AMD foi pioneira ao lançar os primeiros processadores 64 bits do mercado.
• PIC: família de microcontroladores fabricada pela Microchip, derivada do PIC1650 originalmente
desenvolvida pela General Instruments.

1.2 O Impacto do Microcontroladores Atualmente

• Fabricantes de microcontroladores: Intel, Freescale, Microchip, Cypress Microsystems, Atmel, Zilog,


Texas, etc.
• As empresas fabricantes de microcontroladores desenvolve-os para uso genérico para uma grande
variedade de aplicações com a intenção de maximizar o número de peças vendidas.
• Este fato que contribui para que os projetistas tenham a possibilidade de escolher o fabricante e o
modelo de MCU que melhor atendam às suas necessidades.
• Os softwares gravados em microcontroladores são chamados de firmwares.
• Aplicações que utilizam microcontroladores: eletrônicos, eletrodomésticos, telefonia, automação
industrial, segurança, telemetria, indústria automobilística, outros.
• Produção mundial de veículos é superior a 63 milhões de veículos/ano. Cada veículo conta com 30
a 70 microcontroladores. A figura abaixo mostra as diferentes aplicações de microcontroladores em
automóveis.

• A indústria de entretenimento já emprega há muito tempo soluções microcontroladas.


• O mesmo ocorrendo com a indústria médica, como no exemplo do marca-passo.

• No mercado de logística e rastreamento de veículos também são empregados sistemas


microcontrolados. O equipamento da figura abaixo consiste de um rastreador celular, o qual capta a
posição do veículo via GPS e transmite essa informação via comunicação celular para uma empresa.

1.3 Microprocessador x Microcontrolador

• Microprocessador (processador, Unidade central de processamento-CPU): circuito integrado que


realiza as funções de cálculo e tomada de decisão de um computador. Necessita de memória,
dispositivos de entrada/saída, clock, controladores e conversores de sinais, entre outros. Subdivide-
se basicamente em (o conjunto é denominado CPU):
- Unidade Lógica Aritmética (ULA): responsável pelos cálculos aritméticos e lógicos e registradores;
- Unidade de Controle (UC): responsável pela tarefa de controle das ações a serem realizadas pelo
computador, comandando todos os outros componentes;
- Registradores: pequenas memórias velozes que armazenam comandos ou valores que são
utilizados no controle e processamento de cada instrução. Destacam-se: Contador de Programa que
sinaliza para a próxima instrução a ser executada; Registrador de Instrução que registra a
execução da instrução.
• Microcontrolador: “computador em um chip”. Integra elementos adicionais em sua estrutura interna,
como memória RAM, memória ROM para armazenamento de programas, EEPROM para
armazenamento permanente de dados, dispositivos periféricos como conversores analógico/digitais
(ADC), conversores digitais/analógicos (DAC) em alguns casos, interfaces de entrada e saída de
dados.
• Processador Digital de Sinais (DSP, Digital Signal Processor): são microprocessadores
especializados em processamento digital de sinal usados para processar sinais de áudio, vídeo, etc.,
em tempo real ou off-line. A capacidade de processar grandes quantidades em pouco tempo é um
dos principais benefícios oferecidos pelos DSPs.
2. ARQUITETURAS COMPUTACIONAIS

2.1 Arquitetura de Von Neumann x Arquitetura Harvard

• Arquitetura de Von Neumann


- Única estrutura de memória para armazenar dados e instruções separadamente;
- Dados e instruções compartilham o mesmo barramento;
- Mais simples, mais barato, menos eficiente;
- Com raras exceções, os computadores pessoais possuem arquitetura baseada no modelo de Von
Neumann.

• Arquitetura Harvard
- Memórias separadas para dados e instruções;
- Dados e instruções em barramentos distintos;
- Permite que quando uma instrução é executada outra seja buscada na memória (pipeline);
- Mais caro, mais complexo, mais rápido.

2.2 Filosofia CISC x Filosofia RISC

• Filosofia CISC (Complex Instruction Set Computer):


- Quanto maior a complexidade da instrução, mais espaço ela ocupa na memória;
- Conjunto relativamente grande de instruções.

• Filosofia RISC (Reduced Instruction Set Computer):


- Conjunto de instruções reduzido, bem menor do que no caso CISC;
- Apenas uma posição de memória utilizada por instrução;
- Vantagem: possui aprendizado mais dinâmico;
- Desvantagem: necessidade de construir funções, pois o conjunto disponível é bem restrito.
3 MICROCONTROLADORES PIC

3.1 Conceitos Gerais


• Família de microcontroladores fabricados pela Microchip Technology.
• Arquitetura de Harvard e conjunto de instruções RISC.
• Barramento de dados de 8 bits, 16 bits e mais recentemente 32 bits, dependendo do modelo.
• Barramento de instruções de 12, 14 ou 16 bits, dependendo do modelo.
• Há muitos tipos diferentes. A seguir são listados alguns dos mais comuns:
- PIC16F84A (8 bits, barramento de instruções de 14 bits, 35 instruções);

- PIC16F628A (8 bits, barramento de instruções de 14 bits, PWM, 35 instruções);

- PIC16F877A (8 bits, barramento de instruções de 14 bits, conversão A/D, 35 instruções);


- PIC18F4550 (8 bits, barramento de instruções de 16 bits, 75 ou 83 instruções).

• A tabela disponível no site abaixo mostra outros modelos:

http://www.microchip.com/ParamChartSearch/Chart.aspx?branchID=30048

• Neste curso, o PIC18F4550 será inicialmente considerado. Este microprocessador reúne, em um


circuito integrado, todos os elementos de uma CPU RISC de alto desempenho, sendo fabricados em
encapsulamentos PLCC, TQFP, DIP ou SOIC. Algumas características (Datasheet PIC18F4550,
Microchip Technology Inc., 2006):

- Frequencia de Operação: 48 MHz;


- Memória de Programa (instruções): 16384;
- Memória de Dados (bytes): 2048;
- Portas de E/S: Portas A, B, C, D, E;
- Total de Pinos de E/S: 20;
- Total de canais de captura de entrada: 1;
- Comunicação Serial – Enhanced UART: 2;
- Comunicação Serial – SPI (3-wire/4-wire): 3;
- Comunicação Serial – I2C: 2;
- Streaming Parallel Port (SPP) for USB streaming transfers;
- Packages: PLCC, TQFP, DIP ou SOIC;
- Timers: 4.

• Características Elétricas

- Ambient temperature under bias.....................................................................................-40°C to +85°C


- Storage temperature ................................................................................................... -65°C to +150°C
- Voltage on any pin with respect to VSS ............................................................. -0.3V to (VDD + 0.3V)
- Voltage on VDD with respect to VSS ............................................................................. -0.3V to +7.5V
- Total power dissipation ……...........................................................................................................1.0W
- Maximum current out of VSS pin ...............................................................................................300 mA
- Maximum current into VDD pin ..................................................................................................250 mA
- Maximum output current sunk by any I/O pin................................................................................25 mA
- Maximum output current sourced by any I/O pin .........................................................................25 mA
- Maximum current sunk by all ports ............................................................................................200 mA
- Maximum current sourced by all ports ......................................................................................200 mA
• O diagrama em blocos do PIC18F4550 está apresentado na figura abaixo:

3.2 Ciclo de Instrução


• No PIC18F4550 (e na maioria dos MC da linha PIC), a frequência do clock interno CKint é igual à
frequência do clock externo CKout dividida por quatro.
• Por exemplo, um cristal externo a 4 MHz, resulta em uma frequência para CKint igual a 1 MHz.
Portanto, o ciclo de instrução (ciclo de máquina), nesse caso, é dado por TCY = 1µs.
• Por que CKint é dividido por quatro?
• Para execução de uma única instrução, várias operações precisam ser realizadas. Tais operações
são executadas em subciclos do ciclo de máquina (Q1, Q2, Q3 e Q4), originados pela divisão de
CKout.
• O contador de programa (PC) é incrementado no início de Q1.
• Durante o decorrer de Q1 a Q4, a instrução previamente carregada para dentro da ULA é
executada, trocando informações com a memória de dados e o registrador WORK (W) sempre que
necessário.
• Por fim, no final de Q4, a próxima instrução é buscada para ser executada (PC já incrementado
nesse ponto).
• Buscar a informação em um ciclo de máquina e executá-la no seguinte é conhecida como
PIPELINE. Permite que quase todas as instruções sejam executadas em apenas um ciclo (1µs para
CLKout = 4 MHz).

3.3 Memória de Programa


• Para o PIC18F4550 o barramento de instruções é de 16 bits e de 16.384 posições, do tipo FLASH.
• Vetor de reset: primeiro endereço da memória de programa que será executado após um Start-up
ou Reset. No modelo considerado encontra-se no endereço 0x0000.
• Vetor de interrupção: PIC18F4550 possui 20 tipos de interrupções. Há dois vetores de interrupção,
um que permite tratar interrupções de alta prioridade (0008h) e outro de baixa prioridade (0018h).
• A memória de programa é dividida como mostrado na figura abaixo:

3.4 Pilha (Stack)


• Local onde serão armazenados os endereços de retorno quando utilizarmos instruções de desvio
para rotinas de chamada.
• Quando o programa é desviado para o começo de uma rotina através da instrução ou interrupção, o
endereço seguinte ao ponto que estava sendo executado é armazenado na pilha para que, ao fim da
rotina, o programa possa retornar ao ponto em que estava.
• O PIC18F4550 possui pilha de trinta e um níveis. É possível armazenar trinta e um endereços de
retorno.
3.5 Memória de Dados Volátil (RAM)
• Palavra de 8 bits.
• Armazena as variáveis e os registradores utilizados pelo programa.
• Pode ser dividida em dois grupos: registradores especiais e registradores de uso geral.
• Registradoras especiais (SFRs — Special Functions Registers):
- Utilizados pelo microcontrolador para a execução do programa e processamentos da ULA.
- Podem ser escritos e lidos tanto pelo usuário quanto pelo hardware.
- Servem também para a configuração de muitas funções e para a utilização de todos os periféricos.
• Registradores de uso geral:
- Área destinada ao armazenamento de variáveis definidas pelo usuário para serem escritas e lidas
pelo programa.
- Podem ser escritos e lidos tanto pelo usuário quanto pelo hardware.
- PIC18F84550 possui 2048 bytes disponíveis para uso geral.
• A memória de dados volátil é dividida como mostrado na figura abaixo:

• A relação dos registradores especiais é mostrada na figura abaixo:


3.6 Memória EEPROM de dados
• Memória não volátil de 256 bytes.
• Armazena dados que devem ser conservados na ausência de tensão de alimentação.
• Pode ser escrita/lida em tempo de execução do programa através de registradores.

3.7 Resistores de pull-up


• Todos os pinos de I/O da porta B podem ter resistores de pul-up conectados aos mesmos. Esta
funcionalidade pode ser habilitada através do registrador do INTCON2.

Você também pode gostar