Sie sind auf Seite 1von 98

Eletrnica

Curso Tcnico de Eletrnica

Introduo a Programao

Enderson Neves Cruz


enderson@deii.cefetmg.br
enderson.bh@gmail.com
2017
Fundamentos de sistemas microprocessados

Powered by Enderson Neves Cruz


Computadores
Modelo de John von Neumann

Memria
CPU (Unidade central de processamento): Processa as
informaes, executando as instrues armazenadas na
memria e realizando as operaes lgicas e aritmticas.

Memria. Armazena as instrues e os dados a serem


executadas pela CPU

Dispositivos I/O (Dispositivos de entrada e sada): Para


CPU fazer comunicao digital com o mundo exterior.

Barramento de dados: Por onde trafegam as informaes


(dados) a serem processadas.
Clock
Barramento de endereos: Indica a posio de memria
onde uma informao (dado) ser escrita ou lida e pela
seleo do dispositivo que ter acesso ao barramento de
dados.
Dispositivos I/O
Barramentos de controle: Indica o tipo da operao (leitura
ou escrita) e onde a operao est sendo realizada (memria
Barramento de Endereos ou dispositivo de I/O).

Barramento de Dados Clock: Para manter todo o sistema sincronizado.

Barramento de Controle

Powered by Enderson Neves Cruz 3


Computadores
Arquitetura tpica de um microcomputador tpico e suas Interfaces

Microprocessador Memria

Barramento de Endereos

Barramento de Dados

Barramento de Controle

Interface com os dispositivos Interface com os dispositivos Interface com os dispositivos


de interao com o usurio de armazenamento em massa de controle e sensoramento

Powered by Enderson Neves Cruz 4


Computadores
Acessando os dados
Escrita de um dado no endereo de memria ou I/O

Barramento de Endereos

Barramento de Dados

Memria I/O
Endereo Contedo Endereo Contedo
0000 20 0000 20
0001 37 0001 37

1000 CC CPU
1001 15
1002 AC 03F8 AC

XXXX F2 YYYY F2

Barramento de Controle

Colocar o endereo desejado(por exemplo, 0000H) no barramento de endereo, colocar o dado desejado no
barramento de dados e em seguida habilitar para escrita o bloco de memria ou I/O, indicando onde dever ser
realizada a operao.

Powered by Enderson Neves Cruz 5


Computadores
Acessando os dados
Leitura de um dado no endereo de memria ou I/O

Barramento de Endereos

Barramento de Dados

Memria I/O
Endereo Contedo Endereo Contedo
0000 20 0000 20
0001 37 0001 37

1000 CC CPU
1001 15
1002 AC 03F8 AC

XXXX F2 YYYY F2

Barramento de Controle

Colocar o endereo desejado(por exemplo, 1002H) no barramento de endereo, e em seguida habilitar para
leitura o bloco de memria ou I/O, indicando onde dever ser realizada a operao. o dado desejado ser
disponibilizado no barramento de dados

Powered by Enderson Neves Cruz 6


Memrias
Introduo

Microprocessador Memria Principal Memrias


So dispositivos que armazenam
informaes codificadas digitalmente
que podem representar nmeros,
caracteres, instrues, endereos ou
Barramento
Barramento
de Endereos
os
de Endere qualquer outro tipo de dado.

Barramento
Barramento
de Dados
de Dados

Barramento
Barramento
de Controle
de Controle

Memria Auxiliar
Dispositivos I/O Armazenamento de
massa

Powered by Enderson Neves Cruz 7


Memrias
Memria Principal e Memria Auxiliar

Memria Principal Memria Auxiliar


Semicondutora Armazenamento de massa

Tambm chamada Memria de trabalho Armazena grandes quantidades de dados


Est em constante comunicao com a CPU, pois uma memria no-voltil.
armazena as instrues e dados que a CPU est utilizando
Podem ser magnticas (Hard Disk, Floppy Disk, etc.), ticas
no momento
(CDs, DVDs, etc.) e semicondutoras.
Um programa permanece na memria principal enquanto
mais lentas que a memria principal.
est sendo executado, assim como os dados por ele
utilizados.
formada pelas memrias RAM e ROM.
Necessita ser muito rpida, por isso sempre uma memria
semicondutora.

NO SALVEI !!! ...


As memrias chamadas volteis As memrias chamadas no
perdem os dados quando o volteis no perdem os dados
sistema desligado. Existem
quando o sistema desligado.
diversos tipos de memria voltil,
divididas em grupos (famlias) As ROMs so exemplos de
podendo ser RAM, SAM etc. memrias no volteis.

Powered by Enderson Neves Cruz 8


Memrias
Terminologia

Clula de memria Dispositivo ou circuito usado para armazenar um nico Clulas de memria
bit (0 ou 1).Exemplos: Flip-flop, capacitor, ponto magntico em um disco
magntico, ponto tico em um disco tico.
0000
Palavra de Memria Grupo de clulas (bits) em memria que representa 0 1 0 1
(0x0 ou 0h)
instrues ou dados. O tamanho esto na faixa de 4 a 64 bits, dependendo
do tamanho do computador. 0001
1 0 1 1
(0x1 ou 1h)
Byte (Binary Term) Palavra de 8 bits. Atualmente o tamanho da palavra
de memria na maioria dos computadores. 0010
1 1 1 1
(0x2 ou 2h)
Endereo (Posio) de memria Nmero que identifica a posio de uma
011

Endereos
palavra na memria. Cada palavra armazenada na memria possui um 0 1 1 1
endereo nico. Atualmente comum utilizar a notao hexadecimal para (0x3 ou 3h)
representar o endereo de um palavra na memria. 100
0 0 0 1
(0x4 ou 4h)
Operao de Leitura (Read) ou Busca Operao na qual uma palavra
binria armazenada em uma determinada posio (endereo) de memria 101
transferida para outro dispositivo. 1 0 0 1
(0x5 ou 5h)
Operao de Escrita (Write) ou Armazenamento Operao na qual uma 110
1 0 1 1
nova palavra binria armazenada em uma determinada posio (endereo) (0x6 ou 6h)
de memria, substituindo a palavra l armazenada.
111
0 0 0 0
Tempo de acesso (Access Time) o tempo necessrio para realizar uma (0x7 ou 7h)
operao de leitura em uma memria, ou seja, o tempo entre a memria
receber uma nova entrada de endereo e os dados estarem disponveis na
sada da memria. Indica a velocidade de um dispositivo de memria Palavra de Memria

Powered by Enderson Neves Cruz 9


Memrias
Terminologia

Capacidade ou Densidade Quantidade de bits que podem ser armazenados na memria.

T=NxM
T a capacidade da memria em bits
N o nmero de endereos ( onde, N = 2x sendo x o nmero de bits de endereo) NxM
M o nmero de bits de cada endereo (posio) de memria (palavra).

2048 x 8
T = 2048 x 8 = 16.834 bits
2K x 8
Qual tem a maior capacidade?
5120 x 2
T = 5120 x 2 = 10.240 bits
5K x 2

A capacidade pode ser medida em unidades de bytes (kB, MB, GB, TB, etc.). Neste caso considera-se
como um byte o nmero de bits em cada endereo.
30
Por exemplo: 4GB = 4G x 8 = 4 x 2 x 8 = 4 x 1.073.741.824 x 8 = 34.359.738.368

Powered by Enderson Neves Cruz 10


Memrias
Princpios de operao
Entradas de dados (Inputs)
Os dados a serem armazenados em uma
determinada posio de memria devem ser
Entrada de endereos (Adress)
aplicados nas linhas das entradas de dados
Utilizadas para acessar uma das posies de durante o processo de escrita (Write). Entrada R/W
memria para uma operao de escrita ou
leitura, o cdigo de endereamento para a Esta entrada controla qual operao
posio desejada deve ser aplicado as ser realizada na memria:
entradas de endereo. Nvel Alto (1) Leitura (Read)
So necessrias N entradas de endereo Nvel baixo (0) Escrita (Write)
para uma memria com 2N posies de
memria. Outros identificadores: W ou WE

Habilitao da memria
Quando esta entrada est desativada, a
memria fica desabilitada e ela no
Sadas de dados (Outputs) responder as entradas de endereo e
de escrita/leitura.
Durante o processo de leitura (Read), a
palavra lida de um determinado endereo de ME Memory Enable
memria aparece nas linhas de sadas de CS Chip Select
dados. CE Chip Enable

Powered by Enderson Neves Cruz 11


Memrias
Operao de Escrita (Write)
0 1 1 0
Operao de escrita (Write)
1. Selecionar o endereo onde o dado (palavra) ser
armazenado, atravs das linhas das entradas de 0
endereo.
0 0
2. Selecionar a entrada R/W para a operao de escrita, 1
colocando-a no nvel lgico 0 (baixo). 1
0
3. Fornecer os dados (palavra) a serem armazenados 1
colocando-os nas linhas de entrada de dados.
4. Habilitar a memria, ativando a entrada ME, de forma a
faz-la responder ao endereo na entrada e ao comando
de escrita, armazenando assim o dado no endereo
desejado.
5. Manter os dados a serem armazenados e os sinais ativos 00000 0 1 1 0
durante o tempo necessrio para a efetivao do processo
de escrita. 00001 1 1 0 0
00010 1 0 1 1
00011 0 0 0 1
Exemplo 00100 0 1 1 0

Escrever a palavra 0110 na posio 0x05 (00101). 00101 0 0


1 1 0
00110 1 0 1 0

11110 1 0 0 0
11111 0 1 1 1

Powered by Enderson Neves Cruz 12


Memrias
Operao de Escrita (Write)

Operao de Leitura (Read)


1. Selecionar o endereo onde o dado (palavra) est
armazenado, atravs das linhas das entradas de
1
endereo.
1 1
2. Selecionar a entrada R/W para a operao de leitura, 1
colocando-a no nvel lgico 1 (alto). 1
1
3. Habilitar a memria, ativando a entrada ME, de forma a 0
faz-la responder ao endereo na entrada e ao comando
de leitura, lendo assim o dado no endereo desejado.
4. Os dados (palavra) armazenados apareceram nas linhas
de sada de dados.
1 0 0 0

00000 0 1 1 0
00001 1 1 0 0
00010 1 0 1 1
00011 0 0 0 1
Exemplo 00100 0 1 1 0

Ler a palavra armazenada na posio 0x1E (11110). 00101 0 0 1 0


00110 1 0 1 0

11110 1 0 0 0
11111 0 1 1 1

Powered by Enderson Neves Cruz 13


Memrias
Tipos de memria

Memria somente de leitura


ROM - Read-Only Memory

ROM Read-Only Memory Dados gravados na fbrica

PROM Programmable Read-Only Memory Programvel somente uma vez

EPROM Erasable Programmable Read-Only Memory Regravvel, apaga-se com ultravioleta

EEPROM Electrically-Erasable Programmable Read-Only Memory Regravvel, apaga-se eletricamente

FLASH Tipo especial de memria EEPROM Regravvel, apaga-se eletricamente

Memria de acesso aleatrio (Memria de Leitura/Escrita)


RAM - Random Access Memory

DRAM Dynamic Random Access Memory Necessita de atualizao frequente de suas informaes.

SRAM Static Random Access Memory No necessita de atualizao da informao gravada.

Powered by Enderson Neves Cruz 14


Memrias
Hierarquia de memria

Custo alto
Velocidade alta
Baixa capacidade

Registradores

Memria cache

Memria principal
Memria de dados
Memria de programa

Armazenamento de massa
Discos magnticos
Discos ticos Custo baixo
SSD Solid-State Drive Velocidade baixa
Capacidade elevada

Powered by Enderson Neves Cruz 15


CPU
Introduo

A CPU (Central Processing Unit) ou UCP (Unidade central de processamento)


responsvel por realizar as operaes com os dados (processamento de dados), alm de
controlar todo o funcionamento do sistema.

o crebro de um sistema computadorizado.

Instruo de mquina uma sequncia binria que determina uma operao a ser executada pela CPU,
contendo :
Um conjunto de bits que identifica a operao a ser realizada
Outro conjunto de bits que permite localizar e acessar os dados que sero manipulados pela operao.

Um programa constitudo de um conjunto de instrues de mquina sequencialmente organizadas. Para a


execuo de um programa necessrio que:
As instrues a serem executadas estejam armazenadas em clulas sucessivas na memria principal;
O endereo da primeira instruo a ser executada seja conhecido pela CPU para que o mesmo posso
buscar esta primeira instruo.

Powered by Enderson Neves Cruz 16


CPU
Introduo

A funo da CPU pode ser resumida pelo fluxo abaixo:


Reiniciar o processo buscando a prxima instruo a ser executada

Buscar a instruo As instrues so lidas individualmente, uma de cada vez. Deve


a ser executada na memria de existir um processo para armazenar qual o endereo da instruo
programa que est sendo executada.

Pode ser realizar uma operao aritmtica (adio, subtrao,


Interpretar a instruo multiplicao, diviso, etc.), lgica (AND, OR, XOR, etc.)
identificando qual operao est normalmente entre dois nmeros, uma operao de envio ou
sendo solicitada entrada de dados, uma movimentao de dados de um local para
outro, desvios do programa, etc.

Buscar os dados
onde eles estiverem armazenados

Estas etapas compem o que se denomina um ciclo de instruo.


Executar a operao
efetivamente com os dados e
armazenar o resultado no local
definido pela instruo

Powered by Enderson Neves Cruz 17


CPU
Introduo

A funo da CPU pode ser resumida pelo fluxo abaixo:


Reiniciar o processo buscando a prxima instruo a ser executada

Buscar a instruo
a ser executada na memria de A CPU realiza as atividades relacionadas
programa basicamente com duas funes:

Funes de processamento atividades


Interpretar a instruo relacionadas com a execuo efetiva de uma
identificando qual operao est operao, ou seja processar a operao.
sendo solicitada
Funes de controle atividades de busca,
interpretao e controle da execuo das
Buscar os dados instrues, alm das atividade de controle das
onde eles estiverem armazenados atividades dos demais componentes do sistema,
memria e dispositivos de I/O. Ou seja, o
controle responsvel por entender o que fazer,
Executar a operao como fazer e comandar o dispositivo que vai
efetivamente com os dados e fazer no momento adequado.
armazenar o resultado no local
definido pela instruo

Powered by Enderson Neves Cruz 18


CPU
Introduo

Dispositivos com funes de processamento


ALU ou ULA Unidade Lgica e Aritmtica
Registradores de uso geral
Registrador de status

Dispositivos com funes de controle


Unidade de controle
Decodificador de instrues
Registrador de Instrues
Contador de programa
Controle de clock
Registrador de endereo de memria e de dados da memria (Buffers)

Powered by Enderson Neves Cruz 19


CPU
Arquitetura simplificada da CPU
Barramento de Dados

Buffer de Dados MBR

Registrador Acumulador
Cdigo de Apontador
Complementos R1
de instrues instruo de pilha
(SP)

Contador de
C
Decodificador Programa
de instrues (PC) Unidade Lgica e
Rn Aritmtica Z
(ALU) S
Registradores
Gerador O
Unidade
de
tempo de controle Flags
Buffer de
Endereo MAR Registrador
de status (SR)
Clock Sinais de controle
Internos da CPU
Barramento de
Endereos
Barramento
de Controle

Powered by Enderson Neves Cruz 20


CPU
Dispositivos com funo de processamento

Barramento de Dados

Atividades da rea de processamento Buffer de Dados MBR

Processar os dados, ou seja, executar com o dado


uma ao de forma a produzir algum tipo de
resultado.
Operaes aritmticas (somar, subtrair,
multiplicar, dividir);
Acumulador
Operaes lgicas (AND, OR, XOR, etc.); R1

Movimentao de dados (CPU para memria,



Memria para a CPU, etc.); C
Unidade Lgica e
Desvios, ou seja, a alterao da sequncia de Rn Aritmtica Z

execuo das instrues; (ALU) S


Registradores
O
Operaes de entrada e sada.
Flags
Registrador
de status (SR)

Powered by Enderson Neves Cruz 21


CPU
Dispositivos com funo de processamento

Barramento de Dados

ULA Unidade Lgica e Aritmtica


ALU - Arithmetic Logic Unit Buffer de Dados MBR

o dispositivo da CPU que realiza as operaes


matemticas com os dados, podendo ser:
Soma Subtrao
Multiplicao Diviso
AND OR Acumulador
R1
NOT (complemento) XOR

Deslocamento a direita Deslocamento a esquerda
C
Decremento Incremento Unidade Lgica e
Rn Aritmtica Z
Comparao Teste de bits
(ALU) S
Estas operaes podem utilizar dois valores, Registradores
O
por isso a existncia de duas entradas, ou Flags
apenas um valor. Registrador
de status (SR)

Powered by Enderson Neves Cruz 22


CPU
Dispositivos com funo de processamento

Barramento de Dados

Buffer de Dados MBR


ACC - Acumulador
ACC - Accumulator

Registrador especial utilizado como elemento


de ligao entre a ALU e os demais dispositivos
da CPU.
Acumulador
Existem diversas CPUs que no possuem o R1
Acumulador e utilizam diretamente os
registradores de uso geral, ou registradores
C
especficos para armazenamento de dados, Unidade Lgica e
Rn Aritmtica Z
endereos e segmentos.
(ALU) S
Registradores
O

Flags
Registrador
de status (SR)

Powered by Enderson Neves Cruz 23


CPU
Dispositivos com funo de processamento

Barramento de Dados

Registradores de uso geral


General Purpose Register Buffer de Dados MBR

Armazenam temporariamente os dados a


serem processados pela CPU.
Armazena temporariamente o resultado de
uma operao realizada pela ALU, de modo que
ele possa ser reutilizado ou enviado para a Acumulador
R1
memria ou I/O posteriormente. Isto evita que
a CPU utilize a memria principal para guardar

resultados parciais de suas operaes. C
Unidade Lgica e
Possuem o tamanho da igual ao estabelecido Rn Aritmtica Z

pelo fabricante para a palavra (word) do (ALU) S


referido microprocessador/microcontrolador. Registradores
O

Flags
Registrador
de status (SR)

Powered by Enderson Neves Cruz 24


CPU
Dispositivos com funo de processamento

Barramento de Dados

Registradores de status Buffer de Dados MBR

Status Register

Auxilia e completa a realizao das operaes


lgicas e aritmticas, indicando atravs dos bits
de estado ou flags, a situao de vrios
elementos referentes a operao realizada.
Acumulador
O tamanho do registrador de status depende R1
da quantidade de flags e varia de modelo de
microprocessador ou microcontrolador.
C
Unidade Lgica e
Tambm chamado condition code register ou Rn Aritmtica Z
PSW Program Status Word. (ALU) S
Registradores
O

Flags
Registrador
de status (SR)

Powered by Enderson Neves Cruz 25


CPU
Dispositivos com funo de processamento
Funcionamento geral
O diagrama abaixo mostra um circuito com capacidade de realizar operaes matemticas entre dois valores,
armazenados nos registradores A e B.

Os registradores A, B e de resultado possuem o mesmo tamanho.

Somador

Subtrator
Registrador de
Resultado Registrador A
Multiplicador

Divisor
Vai um
Deu zero Comparador
Registrador B
Valor negativo AND
Estouro
OR

Seleciona qual operao


ser realizada

Powered by Enderson Neves Cruz 26


CPU
Dispositivos com funo de processamento
Funcionamento geral

O resultado da operao uma combinao do valor armazenado no


Acumulador e dos bits sinalizadores (flags) do registrador de status

Acumulador ALU Registrador A

Unidade Registradores
Carry Vai um
Lgica e de uso geral
Zero Deu zero
Aritmtica Registrador B
Sinal Valor negativo
Overflow Estouro

Registrador
de Status

Seleciona qual operao


ser realizada
Sinais da Unidade de controle

Powered by Enderson Neves Cruz 27


CPU
Dispositivos com funo de processamento
Funcionamento geral com acumulador

Acumulador
R1



C
Unidade Lgica e
Rn Aritmtica Z
(ALU) S
Registradores
O

Flags
Registrador
de status (SR)

Neste modelo, o Acumulador utilizado como um registrador de entrada de um dos valores e tambm como
registrador do resultado da operao.

Aps a ALU realizar a operao, o resultado armazenado no Acumulador substituindo o valor de um dos
operandos da operao.

Powered by Enderson Neves Cruz 28


CPU
Dispositivos com funo de processamento
Funcionamento geral sem acumulador

R1



C
Unidade Lgica e
Rn Aritmtica Z
(ALU) S
Registradores
O

Flags
Registrador
de status (SR)

Neste outro modelo, atualmente muito utilizado, no existe o Acumulador, um dos registradores de uso geral (ou
registrador de dados) utilizado como um registrador de entrada de um dos valores e tambm como registrador do
resultado da operao.

Aps a ALU realizar a operao, o resultado armazenado no chamado registrador de destino substituindo o
valor de um dos operandos da operao, anteriormente armazenado neste registrador.

Powered by Enderson Neves Cruz 29


CPU
Dispositivos com funo de processamento
Registrador de status (Status Register)
Flags principais encontrados nos registradores de status:
Flag Nome Descrio

Flag Zero Indica que o resultado da ltima operao aritmtica


Z
Zero Flag resultou no valor zero.

Flag Sinal Indica o sinal resultante da ltima operao realizada,


S ou N quando setado indica que o resultado da operao
Sign Flag ou Negative Flag aritmtica resultou em um nmero negativo.

Flag Transporte Indica que na ltima operao aritmtica ocorreu vai 1


C para o bit mais a esquerda, chamado MSB (Most
Carry Flag Significant Bit).

Flag Estouro Indica que ocorreu um estouro na capacidade de


O ou V ou W
Overflow Flag armazenado do resultado da ltima operao.

Estes flags tambm so modificados nas demais operaes, possuindo um significado diferente
para cada instruo, especialmente nas operaes de comparao e teste.

Powered by Enderson Neves Cruz 30


CPU
Dispositivos com funo de processamento
Registrador de status (Status Register)

Bit 7 6 5 4 3 2 1 0
OSC CPU
Flag GIE V P C N Z
OFF OFF

Outros flags (sinalizadores) de funes especficas podem ser incorporados ao registrador de


status, por exemplo, habilitao de interrupo (GIE), controle do clock e paridade (P).

Cada fabricante estabelece a quantidade de flags e o tamanho do registrador de status para cada
modelo de processador ou microcontrolador.

Powered by Enderson Neves Cruz 31


CPU
Dispositivos com funo de controle

Barramento de Dados
Atividades da rea de controle
Entender o que fazer, como fazer e comandar o
Buffer de Dados MBR
dispositivo que vai fazer no momento adequado.

Ciclo de busca da instruo (Fetch cycle)


Registrador Cdigo de
de instrues instruo
Complementos Apontador
de pilha
Buscar a instruo a ser executada e armazen-la
(SP) em registrador especfico para esta finalidade.

Decodificador
Contador de
Programa
Interpretar as aes a serem realizadas com a
de instrues (PC) execuo da instruo e como realiz-las.

Gerador
Unidade
Ciclo de execuo da instruo (Execute cycle)
de
de controle
tempo Buffer de
Endereo MAR
Gerar os sinais de controle apropriados para a
ativao das aes requeridas para a execuo da
Clock Sinais de controle instruo identificada. Estes sinais so enviados
Internos da CPU
Barramento de aos diversos componentes do sistema , internos
Endereos ou externos a CPU.
Barramento
de Controle

Powered by Enderson Neves Cruz 32


CPU
Dispositivos com funo de controle

Barramento de Dados

Unidade de controle
Buffer de Dados MBR
Control Unit

o dispositivo mais complexo da CPU.

Registrador Cdigo de Apontador


Possui a lgica e os circuitos necessrios para
Complementos
de instrues instruo de pilha realizar a movimentao de dados e
(SP)
instrues de e para a CPU, atravs de sinais
Contador de de controle que emite em instantes de tempo
Decodificador Programa
de instrues (PC) definidos.

Os sinais de controle emitidos pela unidade de


Gerador
Unidade
controle, ocorrem em vrios instantes durante
de
tempo de controle
Buffer de
um ciclo de instruo.
Endereo MAR
De modo geral, todos os sinais de controle
Clock Sinais de controle tem durao fixa e igual gerada pelo Clock.
Internos da CPU
Barramento de
Endereos
Barramento
de Controle

Powered by Enderson Neves Cruz 33


CPU
Dispositivos com funo de controle

Barramento de Dados

Relgio e Gerador de tempo


Buffer de Dados MBR
Clock
Clock um sinal gerado por um circuito
oscilador para o gerador de tempo da unidade
Registrador Cdigo de
Complementos Apontador de controle.
de instrues instruo de pilha
(SP)
Um ciclo de clock ou ciclo de mquina um
Contador de intervalo de tempo entre o incio de um pulso e
Decodificador Programa
de instrues (PC) o incio do pulso seguinte.

A frequncia de clock, normalmente medida


Gerador
Unidade
em MHz, utilizada por muitos como indicador
de de desempenho do sistema, porm no pode
tempo de controle
Buffer de
Endereo MAR ser considerado como nico parmetro. No
absolutamente verdade que uma CPU com
Clock Sinais de controle
Internos da CPU frequncia de clock maior que o outro, seja
Barramento de
Endereos
mais eficiente.
Barramento
de Controle

Powered by Enderson Neves Cruz 34


CPU
Dispositivos com funo de controle

Barramento de Dados

Buffer de Dados MBR Decodificador de instrues


Instruction Decoder
o responsvel por identificar a operao a
Registrador Cdigo de Apontador
de instrues instruo
Complementos
de pilha
ser executa pela CPU, decodificado a
(SP) instruo em sinais de entrada para a unidade
Contador de de controle.
Decodificador Programa
de instrues (PC) Cada instruo possui uma identificao
prpria e nica.
Gerador
de
Unidade O decodificador recebe na entrada o cdigo da
de controle
tempo Buffer de operao, denominado Opcode, que um
Endereo MAR
conjunto de bits especfico para identificar uma
Clock Sinais de controle instruo de mquina.
Internos da CPU
Barramento de
Endereos
Barramento
de Controle

Powered by Enderson Neves Cruz 35


CPU
Dispositivos com funo de controle

Barramento de Dados

Buffer de Dados MBR Registrador de instrues


IR - Instruction Register

Registrador
o registrador responsvel por armazenar a
Cdigo de Apontador
de instrues instruo
Complementos
de pilha instruo a ser executa pela CPU.
(SP)

Contador de
Ao se iniciar um ciclo de instruo, a unidade
Decodificador Programa de controle envia sinais de controle em
de instrues (PC)
sequncia de tempo de forma que se realize
um ciclo de leitura para buscar a instruo na
Gerador memria .
Unidade
de
de controle
tempo Buffer de
Endereo MAR
A instruo ento ser armazenada no
registrador de instrues via barramento de
Clock Sinais de controle dados e do registrador de dados da memria.
Internos da CPU
Barramento de
Endereos
Barramento
de Controle

Powered by Enderson Neves Cruz 36


CPU
Dispositivos com funo de controle

Barramento de Dados

Buffer de Dados MBR Contador de programa


PC - Program Counter

Registrador
o registrador responsvel por armazenar o
Cdigo de Apontador
de instrues instruo
Complementos
de pilha endereo da prxima instruo a ser
(SP) executada.
Contador de
Decodificador Programa Assim que a instruo que vai ser executada
de instrues (PC)
for buscada na memria, o sistema
automaticamente modifica o contador de
Gerador programa de forma que ele passe a armazenar
Unidade
de
de controle o endereo da prxima instruo na sequncia
tempo Buffer de
Endereo MAR do programa.

Clock Sinais de controle Tambm chamado contador de instruo (CI).


Internos da CPU
Barramento de
Endereos
Barramento
de Controle

Powered by Enderson Neves Cruz 37


CPU
Dispositivos com funo de controle

Barramento de Dados

Apontador de pilha
Buffer de Dados MBR
SP - Stack Pointer

Armazenar os endereos de retorno de sub-


rotinas e interrupes.
Registrador Cdigo de Apontador
Complementos
de instrues instruo de pilha
(SP)

Contador de Registrador de endereo de memria


Decodificador Programa
de instrues (PC) MAR - Memory Address Register

Gerador
Unidade
Registrador de dados da memria
de
tempo de controle
Buffer de MBR - Memory Buffer Register
Endereo MAR

Clock Sinais de controle


So os registradores utilizados pela CPU para
Internos da CPU
Barramento de comunicao e transferncia de informaes,
Endereos dados.
Barramento
de Controle

Powered by Enderson Neves Cruz 38


CPU
Arquitetura simplificada da CPU
Barramento de Dados

Buffer de Dados MBR

Registrador Acumulador
Cdigo de Apontador
Complementos R1
de instrues instruo de pilha
(SP)

Contador de
C
Decodificador Programa
de instrues (PC) Unidade Lgica e
Rn Aritmtica Z
(ALU) S
Registradores
Gerador O
Unidade
de
tempo de controle Flags
Buffer de
Endereo MAR Registrador
de status (SR)
Clock Sinais de controle
Internos da CPU
Barramento de
Endereos
Barramento
de Controle

Powered by Enderson Neves Cruz 39


Arquiteturas
Componentes essenciais de um Microcontrolador

CPU Clock

Barramento de Endereos (Address Bus)

Barramento de Dados (Data Bus)

Barramento de Controle (Control Bus)

Memria de Memria de Portas de


Programa Dados Entrada e Sada
(ROM) (RAM) (I/O)

Mundo Exterior

Powered by Enderson Neves Cruz 40


Arquiteturas
Componentes essenciais de um Microcontrolador

CPU (Unidade central de processamento):


A unidade lgica aritmtica (ALU), que executa os
clculos.
Registradores necessrios para o funcionamento bsico
da CPU, como o contador de programa (PC), ponteiro de
pilha (SP) e registrador de status (SR).
Outros registradores para armazenar resultados
CPU Clock
temporariamente.
Decodificador de Instrues e outros circuitos lgicos
Barramento de Endereos (Address Bus) para controlar a CPU, circuitos de reset e interrupes, e
assim por diante.
Barramento de Dados (Data Bus)
Memria de programa: memria (no-voltil somente de
Barramento de Controle (Control Bus) leitura, ROM), que mantm o seu contedo quando a
alimentao removida.
Memria de Memria de Portas de Memria de dados (trabalho): conhecida como memria de
Programa Dados Entrada e Sada acesso aleatrio (RAM) e, geralmente volteis.
(ROM) (RAM) (I/O)

Portas de entrada e sada: Para fazer comunicao digital


com o mundo exterior.

Mundo Exterior Barramentos: fazer a ligao desses subsistemas para a


transferncia de dados, endereos, controle e instrues.
Clock: Para manter todo o sistema sincronizado. Pode ser
gerados internamente ou obtidos a partir de um cristal ou fonte
externa; MCUs modernos oferecem uma escolha considervel
de clocks.

Powered by Enderson Neves Cruz 41


Arquiteturas
Arquiteturas Von Neumann x Harvard

Memria de
Programa
(ROM)
Address Bus
Address Bus Address Bus
Memria de Memria de Memria de
Programa CPU Dados CPU
Dados
(ROM) Data Bus Data Bus
(RAM) Data Bus (RAM)

Espao de
memria livre

Arquitetura Harvard Arquitetura Von Newmann

A arquitetura Harvard um conceito mais recente que a de von Neumann. Ela adveio da necessidade de se obter
uma arquitetura que pudesse trabalhar mais rapidamente.
Em um computador baseado na arquitetura Von Neumann, a CPU pode tanto ler uma instruo ou ler/escrever
um dado da/para a memria. Ambos no podem ocorrer ao mesmo tempo, pois a instruo e o dado utilizam o
mesmo sistema de barramento. O mapa de memria, que mostra os endereos em que cada tipo de memria
est localizado, torna-se particularmente importante.
Num computador usando arquitetura Harvard, a CPU pode ler uma instruo e executar um acesso de dado na
memria ao mesmo tempo, mesmo sem um cach. Como seu pipeline, esse tipo de arquitetura consegue
processar um nmero maior de instrues por ciclo de clock. Alm disso, pode ser mais rpido para um circuito
complexo porque as buscas de instrues e acesso a dados no so sustentados por uma nica via de memria.
Possibilidade de tamanhos diferenciados entre barramento de dados e de programa
Um problema com a arquitetura Harvard que as constantes (tabelas, muitas vezes de pesquisa) devem ser
armazenados na memria do programa porque ela no-voltil. Isto significa que as constantes no pode ser lido
da mesma forma como os valores volteis da memria de dados. Instrues especiais para ler essas tabelas
devem ser fornecidos ou parte da memria de programa deve ser mapeada em memria de dados.

Powered by Enderson Neves Cruz 42


Arquiteturas
Arquiteturas Von Neumann x Harvard
Pipeline
Pipeline uma tcnica de hardware que permite que a CPU realize a busca de uma ou mais instrues alm da
prxima a ser executada. Estas instrues so colocadas em uma fila de memria (dentro da CPU) onde
aguardam o momento de serem executadas.
A tcnica de pipeline utilizada para acelerar a velocidade de operao da CPU, uma vez que a prxima
instruo a ser executada est normalmente armazenada dentro da CPU e no precisa ser buscada da memria,
normalmente muito mais lenta que a CPU.

Fluxo de Instruo/ Pipeline

Busca Instruo 1

Executa Instruo 1

Busca Instruo 2

Executa Instruo 2

Busca Instruo 3

Executa Instruo 3

Busca Instruo 4 Despreza

MOVLW 55H Busca SUB1 Executa SUB1

MOVWF PORTO

CALL SUB1

BSF PORTA,3

INSTRUO SUB1

Powered by Enderson Neves Cruz 43


Arquiteturas
RISC x CISC

CISC - Complex Instruction Set Computer RISC - Reduced Instruction Set Computer

Computador com um Conjunto Complexo de Instrues Computador com um Conjunto Reduzido de Instrues

conjunto elevado e complexo de instrues conjunto reduzido e simples de instrues


formatos complexos e diferentes de instrues formatos simples e regulares de instrues
modos simples de endereamento memria modos simples de endereamento memria
vrios ciclo mquina por operao uma operao elementar por ciclo mquina
os chips so mais complexos e muito mais caros. uso de pipeline
facilita a programao os chips so mais simples e muito mais baratos.

Os processadores baseados nesta arquitetura contm uma A idia principal, que apesar de um processador CISC ser
microprogramao, ou seja, um conjunto de cdigos de capaz de executar centenas de instrues diferentes, apenas
instrues que so gravados no processador, permitindo-lhe algumas so usadas freqentemente. Poderamos ento criar
receber as instrues dos programas e execut-las, utilizando um processador otimizado para executar apenas estas
as instrues contidas na sua microprogramao. Seria como instrues simples que so usadas mais freqentemente. Em
quebrar estas instrues, j em baixo nvel, em diversas conjunto com um software adequado, este processador seria
instrues mais prximas do hardware (as instrues contidas capaz de desempenhar quase todas as funes de um
no microcdigo do processador). processador CISC, acabando por compensar suas limitaes
Como caracterstica marcante esta arquitetura contm um com uma maior velocidade de processamento.
conjunto grande de instrues, a maioria deles em um elevado
grau de complexidade. Os processadores CISC tm a Processadores RISC: DEC Alpha, SPARC, MIPS, e PowerPC
vantagem de reduzir o tamanho do cdigo executvel por j Microcontroladores RISC: PIC, MSP430, ARM
possuirem muito do cdigo comum em vrios programas, em
forma de uma nica instruo.

Processadores CISC: x86 Intel, famlia Motorola M680x0


Microcontroladores CISC: 8051,

Powered by Enderson Neves Cruz 44


Arquiteturas
RISC x CISC

Instrues de mquina Instrues de mquina

Execuo da Converso para


Instruo Microcdigo

Microinstrues

Execuo da
Micronstruo

Atualmente existem processadores, como o Pentium e o Athlon que utilizam uma arquitetura hbrida
Internamente, o processador processa apenas instrues simples. Estas instrues internas, variam de
processador para processador, so como uma luva, que se adapta ao projeto do chip. Sobre estas instrues
internas, temos um circuito decodificador, que converte as instrues complexas utilizadas pelos programas
em vrias instrues simples que podem ser entendidas pelo processador. Estas instrues complexas sim,
so iguais em todos os processadores. isso que permite que os processadores Athlon e um Pentium sejam
compatveis entre s.
Maiores informaes: http://0fx66.com/blog/hardware/cisc-risc/

Powered by Enderson Neves Cruz 45


Atividades para prxima aula

1. Estudar a Introduo (Pginas 1 a 33) do livro Microcontroladores PIC - SENAC - Antnio


Srgio Sena.
2. Estudar as Aulas 01 e 02 do Curso Micrognios Microcontroladores PIC
3. Assistir ao vdeo Introduo aos Microcontroladores (Bson Treinamentos)
https://www.youtube.com/watch?v=1R0VkYaYjLQ
4. Assistir ao vdeo Aula 01 - O que so os Microcontroladores? (GV ensino)
https://www.youtube.com/watch?v=WzfQ8Do8n8Y
5. How Microcontrollers Work - Oliver Simon
https://www.youtube.com/watch?v=i_g1dD5fFLo
6. An Introduction to Microcontrollers Solid State Workshop
https://www.youtube.com/watch?v=CmvUY4S0UbI
7. Estudar o artigo do prof. Alessandro F. Cunha: O que so sistemas embarcados?
8. Estudar o artigo do prof. Mrcio Jos Soares: Hoje tudo sistema embarcado. Ser?
9. Assistir ao vdeo Introduo aos Sistemas Embarcados (Bson Treinamentos)
https://www.youtube.com/watch?v=1R0VkYaYjLQ
10.Ler o artigo Embedded System Engineersgarage
http://www.engineersgarage.com/articles/embedded-systems

Powered by Enderson Neves Cruz 46


Aula 2
Componentes essenciais de um Microcontrolador

Powered by Enderson Neves Cruz


Microprocessadores x Microcontroladores

Powered by Enderson Neves Cruz 48


Microprocessadores x Microcontroladores
Arquitetura do microprocessador Intel 4004

Intel C4004 microprocessor


Produzido Entre 1971 e 1981
Max. CPU clock 740 kHz
Tamanho de fabricao 10 m
Instruction set 4-bit
Transistores 2300
Data Bus 4
Address Bus 12 (multiplexado)
Aplicaes Calculadoras
Package(s) 16-pinos DIP

Powered by Enderson Neves Cruz 49


Microprocessadores x Microcontroladores
Arquitetura do microprocessador Intel 8086/8088

Fonte: http://how2engineering.blogspot.com.br/2013/05/architecture-of-8086-microprocessor.html

Powered by Enderson Neves Cruz 50


Microprocessadores x Microcontroladores
Arquitetura do microprocessador Intel 8086/8088

Powered by Enderson Neves Cruz 51


Microprocessadores x Microcontroladores
Arquitetura do microprocessador Intel CoreTM i7

Powered by Enderson Neves Cruz 52


Microprocessadores x Microcontroladores
O que um microcontrolador?
Microprocessadores
Possuem capacidade de processamento superior aos microcontroladores,
porm as memrias e perifricos so externos ao CI.
Podem possuir mais de uma CPU (multicore) e so utilizados em
dispositivos que exigem grande capacidade de processamento,
flexibilidade e velocidade.
So utilizados em computadores de propsito geral, como computadores
pessoais e sistemas de computao genricos.

Systems on a Chip (SoCs)


Maior capacidade de processamento que um microcontrolador,
podendo conter funes digitais, analgicas, mistas e, muitas vezes, de
Radiofrequncia RF.
So capazes de executar sistemas operacionais e diversas interfaces
externas.

Microcontroladores
Integram a CPU, memrias de programa e memria de dados, Portas I/O,
barramentos e diversos perifricos em um nico encapsulamento.
So chamados computador em um chip.
So largamente utilizados nos sistemas embarcados devido a alta integrao,
baixo custo e a reduzida necessidade de componentes adicionais.

Powered by Enderson Neves Cruz 53


Microprocessadores x Microcontroladores
O que um microcontrolador?

An Introduction to Microcontrollers Solid State Workshop


https://www.youtube.com/watch?v=CmvUY4S0UbI

How Microcontrollers Work - Oliver Simon


https://www.youtube.com/watch?v=i_g1dD5fFLo

Powered by Enderson Neves Cruz 54


Referncias para estudo rpido

Microcontroller vs Microprocessor
http://electronicsforu.com/resources/microcontroller-vs-microprocessor

How to choose a MicroController


http://www.instructables.com/id/How-to-choose-a-MicroController/

Microcontrollers and Applications


http://nptel.ac.in/courses/Webcourse-contents/IIT-KANPUR/microcontrollers/micro/ui/Course_home1_1.htm

Microcontrollers Basics - AVR Tutorials


http://www.avr-tutorials.com/general/microcontrollers-basics

What is a Microcontroller? - Microchip Technology


https://www.youtube.com/watch?v=jKT4H0bstH8

How a microcontroller is made? CompletTV


https://www.youtube.com/watch?v=p4vZwycU4Cw

Powered by Enderson Neves Cruz 55


Microcontroladores
Componentes essenciais de um Microcontrolador

CPU (Unidade central de processamento):


A unidade lgica aritmtica (ALU), que executa os
clculos.
Registradores necessrios para o funcionamento bsico
da CPU, como o contador de programa (PC), ponteiro de
pilha (SP) e registrador de status (SR).
Outros registradores para armazenar resultados
CPU Clock
temporariamente.
Decodificador de Instrues e outros circuitos lgicos
Barramento de Endereos (Address Bus) para controlar a CPU, circuitos de reset e interrupes, e
assim por diante.
Barramento de Dados (Data Bus)
Memria de programa: memria (no-voltil somente de
Barramento de Controle (Control Bus) leitura, ROM), que mantm o seu contedo quando a
alimentao removida.
Memria de Memria de Portas de Memria de dados (trabalho): conhecida como memria de
Programa Dados Entrada e Sada acesso aleatrio (RAM) e, geralmente volteis.
(ROM) (RAM) (I/O)

Portas de entrada e sada: Para fazer comunicao digital


com o mundo exterior.

Mundo Exterior Barramentos: fazer a ligao desses subsistemas para a


transferncia de dados, endereos, controle e instrues.
Clock: Para manter todo o sistema sincronizado. Pode ser
gerados internamente ou obtidos a partir de um cristal ou fonte
externa; MCUs modernos oferecem uma escolha considervel
de clocks.

Powered by Enderson Neves Cruz 56


Microcontroladores
Perifricos comuns incorporados a Microcontroladores
As grandes diferenas entre os microcontroladores vem da gama de perifricos includos. Estas funes necessrias eram
completamente separadas do equipamentos, mas com o avano da tecnologia, elas puderam ser includas na mesma placa de
circuito impresso como o processador. Agora a maioria dos perifricos so integrados na mesmo circuito como o processador e a
nomenclatura j no apropriada, mas foi mantida.

Timers: A maioria dos microcontroladores tm pelo menos um timer, devido grande variedade de funes que fornecem.
O momento em que as transies ocorrem em uma entrada pode ser identificada. Isso pode ser utilizado para medir a velocidade
da bicicleta, por exemplo, se a entrada for conectada a um sensor que fornece um pulso cada vez que a roda completa uma volta
(revoluo).
As sadas podem ser ligadas e desligadas automaticamente em uma determinada frequncia. Isto usado para a modulao por
largura de pulso (PWM) para controlar a velocidade de um motor em uma mquina de lavar.
Fornecem um disparo regular que pode ser usado para agendar tarefas em um programa. Muitos programas so acionados
(despertados) periodicamente pelo timer para executar , por exemplo, alguma medida de temperatura e transmiti-la a uma estao
de base, ento ir para o modo sleep (modo de baixa potncia) at despertar novamente. Isso economiza energia, que vital em
aplicaes com bateria.

Watchdog timer: Este um recurso de segurana, que reinicializa o processador se o programa ficar preso em um loop infinito.

Interfaces de comunicao: Uma grande variedade de interfaces disponveis para troca informaes com outros circuitos integrados ou
sistemas. Incluem interface perifrica serial (SPI), circuito inter- integrado (IC ou IIC - Inter-Intergrated Circuit), assncronas (como RS-
232), barramento serial universal (USB), controlador de rede de rea (CAN - Controller Area Network), ethernet, e muitos outros.

Memria no voltil de dados: usado para armazenar dados cujo valor devem ser conservados quando a energia removida. Os
nmeros de srie para a identificao e endereos de rede so exemplos de dados.

Conversor analgico-digital(ADC)/Conversor digital-analgico(DAC): Conerter os sinais analgicos do mundo real que variam
continuamente em sinais digitais e vice-versa (voz, temperatura, etc.).

Relgio de tempo real: Estas medidas so necessrias em aplicaes que devem controlar o tempo do dia. Os relgios so exemplos
bvios.

Monitor, depurador, e emulador incorporado : Estes so utilizados para baixar o programa para o MCU e se comunicar com um
computador desktop durante de desenvolvimento.

Powered by Enderson Neves Cruz 57


Microcontroladores
Vantagens da utilizao de Microcontroladores

Microcomputador-de-um-s-chip
Pode reunir em um s chip:
Microprocessador,
Memrias (ROM,RAM, flash)
Temporizadores (timers)
Contadores
WDT (Watch Dog Timer)
POR (Power On Reset)
Portas de comunicao (Serial, USB, I2C, etc.)
Portas de I/O
Conversores AD/DA
etc.
Menor tamanho
Menor rea de placa
Menor custo
Facilidade no desenvolvimento
Menor tempo de desenvolvimento
Programa gravado na memria interna o que impede cpias ilegais
Grande quantidade de fabricantes e famlias e tipos.

Powered by Enderson Neves Cruz 58


Microcontroladores
Aplicaes
Atualmente microcontroladores esto presentes em quase todos equipamentos eletrnicos.

Eletrnicos de consumo
Eletrnica automotiva
Eletrnica de Segurana
Automao Residencial
Automao Industrial
Robtica
Telemetria/telecomando
Instrumentao
Lazer/Entretenimento
etc.

Powered by Enderson Neves Cruz 59


Microcontroladores
Arquitetura Famlia MSP430x14x - Diagrama em blocos

Powered by Enderson Neves Cruz 60


Microcontroladores
Arquitetura Famlia MSP430x14x - Diagrama em blocos
Memria de
Dados Conversor Portas de entrada e sada
Memria de
Programa ADC
Clock

CPU
MAB, 16-Bit

MDB, 16-Bit MDB, 8-Bit

Multiplicador
por Hardware Power On
Watchdog Reset USARTs
Interface JTAG Timers
Timer Comparador

Powered by Enderson Neves Cruz 61


Microcontroladores
Arquitetura Famlia MSP430x14x - Caractersticas
Flexvel e poderosa capacidade de processamento.
Arquitetura von-Neumann
16 bits RISC
Arquitetura Ortogonal
Sete modos de endereamento fonte (operando fonte)
Quatro modos de endereamento destino (operando destino)
Somente 27 instrues (core) e 24 emuladas
Interrupes aninhadas em funo do nvel de prioridade
Grande quantidade de registros
Capacidade de execuo de programa em RAM
Eficiente processamento de tabelas
Rpida converso hex para decimal
Grande nmero de perifricos, todos mapeados em memria
Conversor A/D de 12 bits (2s a 6MHz)
Comparador analgico de preciso
Mltiplos temporizadores e capacidade de PWM
Conversor A/D tipo slope (rampa)
USARTs
Watchdog timer
Mltiplos I/O com capacidade de interrupo
Oscilador programvel
Oscilador a cristal de 32 KHz
Oscilador a cristal de 450KHz a 8MHz

Powered by Enderson Neves Cruz 62


Microcontroladores
Arquitetura Famlia MSP430x14x - Caractersticas
Ultrabaixo consumo

Consumo de corrente nominal de 0.1 a 400A a 1MHz


Faixa de tenso de alimentao de 1.8 a 3.6V
Sada do modo de stand-by em 6s.
Grande capacidade de interrupo tornando o polling desnecessrio.

Ferramentas de desenvolvimento completas e de fcil uso


Simulador (incluindo perifricos e simulao de interrupo)
Compilador C
Assembler
Linker
Emulador via JTAG

Vrias verses de dispositivos:


ROM
OTP
FLASH
EPROM

Powered by Enderson Neves Cruz 63


Microcontroladores
Arquitetura Famlia MSP430x14x - Caractersticas
Perifricos da famlia MSP430x14X:
Sistema bsico de clock contendo:
Um oscilador controlado digitalmente DCO
Um oscilador a cristal de baixa freqncia LFXT1
Um oscilador a cristal de alta freqncia LFXT2
Watchdog timer / temporizador de propsitos gerais
Timer A3 (contador/temporizador de 16 bits com 3 registros de captura/compara e sadas PWM)
Timer B7 (contador/temporizador de 16 bits com 7 registros de captura/compara e sadas de PWM)
Portas de I/O 1 e 2 (8 bits de I/O cada, todas com capacidade de interrupo).
Portas de I/O 3, 4, 5 e 6 (8 bits de I/O cada)
Comparador A (comparador analgico de preciso ideal para converso A/D tipo slope)
ADC/12 (conversor analgico/digital - 8 canais multiplexados de12 bits)
USART0 e USART1(universal sncrono/assncrono recebe/transmite serial)
Multiplicador de hardware

Dispositivos 14X disponveis:

MSP430F147 - 32KB + 256B Flash, 1KB RAM


MSP430F148 - 48KB + 256B Flash, 2KB RAM
MSP430F149 - 60KB + 256B Flash, 2KB RAM

Powered by Enderson Neves Cruz 64


Microcontroladores
Arquitetura do microcontrolador PIC16F84A

Powered by Enderson Neves Cruz 65


Microcontroladores
Arquitetura do microcontrolador PIC16F84A

Caractersticas principais

1k (1024) palavras de 14 bits para programa;


68 bytes de RAM para uso geral;
64 bytes de EEPROM para dados;
Stack com 8 nveis;
Arquitetura Harvard;
Apenas 35 instrues RISC;
15 registros especficos em RAM para controle do chip e seus perifricos;
Timer de 8 bits com opo de prescaler de 8 bits;
13 pinos que podem ser configurados individualmente como entrada e sada;
Alta capacidade de corrente nos pinos;
Capacidade de gerenciar interrupes (at 5 entradas), do timer e EEPROM;
Watch Dog para recuperao e reset em caso de travas no software;
Memria de programa protegida contra cpias;
Modo Sleep para economia de energia;
Vrias opes de osciladores.

Powered by Enderson Neves Cruz 66


Microcontroladores
Desenvolvimento de projetos com microcontroladores
1. Utilize um compilador instalado em um computador para escrever o programa utilizando uma linguagem de
programao de alto nvel (C, Basic, etc.) ou Assembly e selecione a opo apropriada para compilar no cdigo
de mquina ou cdigo hex (hex code).

2. Carregar o cdigo hex no programador (tambm instalado no


computador) e selecione a opo apropriada para carregar o
programa dentro do microcontrolador.

3. Insira o microcontrolador programado no


dispositivo (caso ele j no estiver instalado).
Pronto, agora j possvel executar o
programa no ambiente real (dispositivo).

Powered by Enderson Neves Cruz 67


Microcontroladores
Desenvolvimento de projetos com microcontroladores

IDE - Integrated Development Environment Ambiente de desenvolvimento Integrado


Software que fornece recursos abrangentes para auxilair programadores no desenvolvimento de
software. Um IDE normalmente consiste em:
Editor de cdigo fonte
Compilador e / ou um interpretador
ferramentas de automao para a construo (montagem)
Depurado

Exemplos: Code Composer Studio, IAR, MicroC, etc.

Experimenter
Boards

Experimenter (Development) Boards - Kits de Desenvolvimento


Placa de circuito com um conjunto de circuitos e dispositivos necessrios para um projetista
conhecer o microcontrolador e testar seus programas e prottipos.

Existem diversos tipos de kits de desenvolvimento, desde os mais simples sem nenhum
recurso adicional, at os mais avaados, contendo LCDs grficos, Wi-Fi, bluetooth, motores,
etc.

Powered by Enderson Neves Cruz 68


Microcontroladores
Desenvolvimento de projetos com microcontroladores
IDE

1. Escreva o programa no computador


utilizando um IDE (Ambiente de
desenvolvimento Integrado).

Computador

2. Transfira o programa (download)


para o microcontrolador do kit de
desenvolvimento.

Kit de desenvolvimento

3. Execute o programa e teste o projeto


usando o prottipo.
Pode-se utilizar o IDE para analisar e Prottipo
depurar o programa

Powered by Enderson Neves Cruz 69


Microcontroladores
Programador (Gravador) - Programmer

Programador (gravador) Programador (gravador)


Microprocessadores MSP430 Microprocessadores Microchip PIC

Programador (gravador)
Microprocessadores AVR ATMEL
Gang Programmer
Microprocessadores MSP430

Powered by Enderson Neves Cruz 70


Microcontroladores
Kit de Desenvolvimento - Experimenter Boards

Kit de Desenvolvimento
Microprocessadores MSP430

Kit de Desenvolvimento
Microprocessadores Microchip PIC

Kit de Desenvolvimento
ARM9 Development Board

eZ430 Development kit

Powered by Enderson Neves Cruz 71


Microcontroladores
Emulao via JTAG
JTAG ( Joint Test Access Group ) uma interface de programao e
teste de circuitos digitais, padronizada como IEEE 1.149,1.

Originalmente desenvolvido para a programadores lgicos, tambm


freqentemente utilizado para microcontroladores.

O dispositivo acessado atravs de quatro linhas seriais (TMS,


TCK, TDI, TDO) atravs dos quais as portas, memria,
registradores, etc., podem ser lidos e escritos em alta velocidade:
TDI (Test Data In) Entrada de dados

TDO (Test Data Out) Sada de dados

TCK (Test Clock) - Clock

TMS (Test Mode Select) Seletor de modo

TRST (Test Reset) optional.

JTAG padroniza os dispositivo programao. Alguns programadores


de dispositivos, podem programar dispositivos JTAG compatveis,
mesmo quando ainda no entraram na lista do dispositivo.

Alm da programao, a interface JTAG tambm permite testar e


depurar seus microcontroladores e as portas I/O. Com um
depurador JTAG pode desenvolver software diretamente na placa
eletrnica original. O depurador desencadeia interrupo de
hardware e software, interrompe o programa e execut-lo em nico
passo, sem necessidade de emulador e sem hardware adicional.

Powered by Enderson Neves Cruz 72


Microcontroladores
Plataforma de hardware livre
Open-source electronic prototyping platform

Ferramenta de desenvolvimento destinado a usurios iniciantes e experientes para a criao de


aplicaes baseadas em microcontroladores.

Arduno Utiliza microcontroladores Atmel AVR

Pinguino Utiliza microcontroladores Microchip PIC

MSP430 LaunchPad Utiliza microcontroladores Texas MSP430

Cortino Utiliza microprocessador ARM Cortex M3 32-bit

Powered by Enderson Neves Cruz 73


Microcontroladores
Plataforma de hardware livre
Arduno Duemilanove

Pinos I/O Digital


Conexo USB

Boto de Reset

Microcontrolador
AVR ATMEL

Conector para a Pinos para Pinos


Fonte de energia Fornecimento de energia Entrada Analgica

Powered by Enderson Neves Cruz 74


Microcontroladores
Plataforma de hardware livre
MSP430 LaunchPad

Conexo USB

Emulao

Conector 6-pinos eZ430

Cristal

Pinos de I/O
Soquete DIP 14 ou 20 pinos
Microcontrolador Texas MSP430

Push botton P1.3 Conector de tenso externa

LEDs e Jumpers
Boto de Reset
P1.0 & P1.6

Powered by Enderson Neves Cruz 75


Microcontroladores
Plataforma de hardware livre
Pinguino

http://www.hackinglab.org/

Powered by Enderson Neves Cruz 76


Microcontroladores
Plataforma de hardware livre
Cortino ARMmite PRO

Powered by Enderson Neves Cruz 77


Microcontroladores
Plataforma de hardware livre
Intel Galileo

Powered by Enderson Neves Cruz 78


Microcontroladores
Plataforma de hardware livre
Intel Galileo

Powered by Enderson Neves Cruz 79


Aula 2 Parte 2
MSP430 LaunchPad - Introduo

Powered by Enderson Neves Cruz


LaunchPad Development Board
Kit de desenvolvimento MSP430 LaunchPad - Caractersticas

LaunchPad uma ferramenta de desenvolvimento desenvolvida peala Texas Instruments


destinado a usurios iniciantes e experientes para a criao de aplicaes baseadas em
microcontroladores. parte integrante da srie MSP430 Value Line.

Fcil de usar - inclui todo o hardware e software necessrios para comear. Projetos de cdigo
aberto e exemplos de cdigo auxiliam no desenvolvimento rpido dos usurios.

Escalvel - O LaunchPad uma simples introduo para a famlia de microcontroladores


MSP430. Para alterar os requisitos das aplicaes, programas desenvolvidos na LaunchPad
podem ser migrados dispositivos MSP430 superiores (high end).

Acessvel - Por 4,30 dlares, inclui uma placa de desenvolvimento, dois microcontroladores
programveis MSP430, mini cabo USB, conectores para expanso PCB, cristal externo para
aumentar a preciso do clock, software livre e ambientes de desenvolvimento integrado (IDEs).

Powered by Enderson Neves Cruz 81


LaunchPad Development Board
Kit de desenvolvimento MSP430 LaunchPad

Contedo do Kit

LaunchPad Development board (MSP-EXP430G2)


Cabo Mini USB
2 microcontroladores MSP430 flash
- MSP430G2211IN14
- MSP430G2231IN14 (com um programa exemplo pr-carregado Medidor de temperatura)
Conectores de expanso PCB de 10 pinos (2 machos & 2 fmeas)
Cristal de 32kHz (MS3V-T1R 32.768kHz CL: 12.5pF +/-20ppm, www.microcrystal.com)
Guia de inicializao rpida
2 stickers LaunchPad

Powered by Enderson Neves Cruz 82


LaunchPad Development Board
Conexo USB

Emulao

Conector 6-pinos eZ430

Cristal

Pinos de sada
Soquete DIP 14 ou 20 pinos
Microcontrolador

Push botton
Conector de tenso externa
P1.3

LEDs e Jumpers
Boto de Reset
P1.0 & P1.6

Powered by Enderson Neves Cruz 83


LaunchPad Development Board
Kit de desenvolvimento MSP430 LaunchPad - Caractersticas

Powered by Enderson Neves Cruz 84


LaunchPad Development Board
Kit de desenvolvimento MSP430 LaunchPad - Caractersticas

Soquete DIP de 14/20 pinos

Suporta qualquer microcontrolador MSP430


da srie Value Line (MSP430G2xx)
Aps o microcontrolador ser programado e
testado, pode-se utilizar a placa Launchpad
como uma soluo completa, ou retirar o
microcontrolador do soquete e coloc-lo em
uma PCB customizada ou em um protoboard.

Powered by Enderson Neves Cruz 85


LaunchPad Development Board
Kit de desenvolvimento MSP430 LaunchPad - Caractersticas

Emulao Flash Integrada

Conecta o microcontrolador a um PC para a


programao da memria de programa Flash
e depurao do firmware diretamente no
sistema (in-system) em tempo real.
Possibilita a comunicao serial com o PC
atravs da USB.
A USB elimina a necessita de alimentao de
energia externa para apagar e programar o
microcontrolador.
Pode programar todos os microcontroladores
da srie MSP430 Value Line, bem como
qualquer outro MSP430 com a interface Spy
Bi-Wire (JTAG com 2 fios), o que permite
escalabilidade completa para modelos
microcontroladores MSP430 superiores.

Powered by Enderson Neves Cruz 86


LaunchPad Development Board
Kit de desenvolvimento MSP430 LaunchPad - Caractersticas

Conectores PCB de 10 pinos

O kit vem com 2 conectores PCB de 10 pinos


machos e 2 fmeas que permitem a interface
entre dispositivos externos com o
microcontrolador MSP430G2xx.
Eles no vem soldados na placa para permitir
ao usurio escolher entre o conector macho
ou fmea.

Powered by Enderson Neves Cruz 87


LaunchPad Development Board
Kit de desenvolvimento MSP430 LaunchPad - Caractersticas

Cristal externo de 32kHz

O kit inclui um cristal externo de 32kHz para


os osciladores do sistema de clock
microcontrolador MSP430G2xx que operam
em at 16MHz.
O cristal aumenta a preciso de vrios
perifricos e timers.
Ele no vem soldado na placa para permitir
maior flexibilidade ao usurio, pois caso o
cristal no for utilizado, 2 pinos adicionais de
porta I/O (GPIO) ficaram disponveis.

Powered by Enderson Neves Cruz 88


LaunchPad Development Board
Kit de desenvolvimento MSP430 LaunchPad - Caractersticas

Soluo completa e flexvel

LEDs e pushbottons integrados, comunicao


serial, conectores PCB permitem aos
projetistas utilizarem a LaunchPad como uma
soluo completa (stand-alone)
Alternativamente, pode-se retirar o
microcontrolador do soquete e coloc-lo em
uma PCB customizada ou em um protoboard.
Atravs do conector PCB pode-se conectar
uma fonte de alimentao externa ao
microcontrolador.
Os jumpers possibilitam desconectar os LEDs
do circuito quando necessrio.

Powered by Enderson Neves Cruz 89


MSP430 Value Line
Arquitetura Famlia MSP430G2xx - Caractersticas
Flexvel e poderosa capacidade de processamento.
Arquitetura von-Neumann
16 bits RISC
Arquitetura Ortogonal
Sete modos de endereamento fonte (operando fonte)
Quatro modos de endereamento destino (operando destino)
Somente 27 instrues (core) e 24 emuladas
Interrupes aninhadas em funo do nvel de prioridade
Grande quantidade de registros
Capacidade de execuo de programa em RAM
Eficiente processamento de tabelas
Rpida converso hex para decimal
Grande nmero de perifricos, todos mapeados em memria
Oscilador controlado digitalmente (DCO)
Oscilador a cristal (LFXT)
Oscilador de baixo consumo/baixa frequncia (VLO)

Ferramentas de desenvolvimento completas e de fcil uso


IAR
CCS

Powered by Enderson Neves Cruz 90


MSP430 Value Line
Arquitetura Famlia MSP430G2xx - Perifricos

Portas I/O de propsito geral (General Purpose I/O)


8 bits na porta P1 e at 8 bits na porta P2 (dependendo do modelo).
Programao independente para cada bit.
Qualquer combinao de entrada, sada e de interrupo (borda selecionvel) possvel.
Cada pino I/O tem um resistor pull-up/pull-down programvel individualmente.

Timer A
Contador/temporizador de 16 bits com 2 ou 3 registros (dependendo do modelo) de
captura/compara e sadas PWM
Extensa capacidade de interrupo.

WDT Watchdog Timer +

Tambm disponvel como um temporizador de intervalo

Brownout Reset
Fornece sinal de reset adequado durante a energizao do sistema

Powered by Enderson Neves Cruz 91


MSP430 Value Line
Arquitetura Famlia MSP430G2xx - Perifricos

Interface Serial Universal (USI - Universal Serial Interface)


Hardware bsico para SPI e I2C
Modos Master ou Slave
Clock programvel

Comparador A +
Entradas inversora e no-inversora
Filtro de sada RC selecionvel
Sada para entrada de captura do Timer_A
Capacidade de interrupo

Conversor ADC10
Conversor analgico/digital de 8 canais/10-bit 200 kSPS de aproximaes sucessivas (SAR)
8 canais externos (depende do dispositivo) e sensores de temperatura e tenso internos
Referncia de tenso programvel
Controlador de transferncia direta (DMA) envia os resultados para a memria de converso sem
a interveno da CPU
Capacidade de interrupo

Powered by Enderson Neves Cruz 92


MSP430 Value Line
Arquitetura Famlia MSP430G2xx - Caractersticas

Ultrabaixo consumo

Consumo @ 2.2V:

0,1A para reteno na RAM


0,4 A no modo standby (VLO)
0,7 A real-time clock mode
220 A / MIPS ativos
Sada do modo de stand-by : <1 s

http://www.youtube.com/watch?v=Db6TWl5FSGw

Powered by Enderson Neves Cruz 93


MSP430 Value Line
Arquitetura Famlia MSP430G2x11

MSP430G2211IN14
Includo no MSP430 LaunchPad

2kB Flash + 128 RAM


10 GPIO
Timer A2
WDT
BOR
Comparador A+
Tenso de operao : 1,8 3,6V
Velocidade mxima da CPU: 16MIPS

Powered by Enderson Neves Cruz 94


MSP430 Value Line
Arquitetura Famlia MSP430G2x31

MSP430G2231IN14
Includo no MSP430 LaunchPad

2kB Flash + 128 RAM


10 GPIO
Timer A2
ADC10
USI
WDT
BOR
Comparador A+
Tenso de operao : 1,8 3,6V
Velocidade mxima da CPU: 16MIPS

Powered by Enderson Neves Cruz 95


MSP430 Value Line
Arquitetura Famlia MSP430G2x52

MSP430G2452IN20
8kB Flash + 256 RAM
16 GPIO
Timer A3
ADC10
USI
WDT
BOR
Comparador A+
Tenso de operao : 1,8 3,6V
Velocidade mxima da CPU: 16MIPS

Powered by Enderson Neves Cruz 96


MSP430 Value Line
Arquitetura Famlia MSP430G2x53

MSP430G2553IN20
16kB Flash + 512 RAM
16 GPIO Touch-Sense
Timer A3
ADC10
USCI
WDT
BOR
Comparador A+
Tenso de operao : 1,8 3,6V
Velocidade mxima da CPU: 16MIPS

Porta P3 disponvel nos Cis com 28 ou 32 pinos

Powered by Enderson Neves Cruz 97


Referncias para estudo rpido

IAR EMBEDDED WORKBENCH FOR MSP430


https://www.iar.com/iar-embedded-workbench/#!?architecture=MSP430
Version 6.40
http://netstorage.iar.com/SuppDB/Protected/PRODUPD/011060/EW430-6404-Autorun.exe
Fazer o registro e receber o cdigo de liberao no e-mail.
Energia - Prototyping Software
http://energia.nu/
Fritzing
http://fritzing.org/

Sistemas Digitais - CEFET-MG - Prof. Paulo Henrique Cruz Pereira


Sistemas Digitais e Microprocessadores - UFPR Roberto A Hexsel
TOCCI, RONALD J., WIDMER, NEAL S., MOSS, GREGORY L., Sistemas digitais :
princpios e aplicaes.

Powered by Enderson Neves Cruz 98