Você está na página 1de 59

DESCRIÇÃO

História da efetivação dos microcontroladores como dispositivo principal em sistemas


embarcados para controle e automação.

PROPÓSITO
Compreender a motivação que conduziu o desenvolvimento dos primeiros microcontroladores
e os diferentes tipos de arquitetura que surgiram com o tempo é essencial para alicerçar a
formação do projetista de sistemas embutidos, pois facilitará o seu trabalho de especificação e
aprendizado de novos modelos de microcontroladores.

OBJETIVOS
MÓDULO 1

Descrever a evolução dos microcontroladores

MÓDULO 2

Descrever os componentes básicos de microcontroladores

MÓDULO 3

Distinguir entre os diferentes microcontroladores

MÓDULO 4

Identificar microcontroladores, com base nas famílias e tipos existentes no mercado

INTRODUÇÃO
Por muito tempo, os designers (projetistas) de produtos eletrônicos usaram componentes
discretos para construir, primeiro, os sistemas analógicos, e depois os digitais.

Os principais componentes por muitos anos foram os resistores, capacitores, indutores,


transistores e assim por diante. A principal preocupação do projetista era a funcionalidade. No
entanto, uma vez que a funcionalidade é atendida, o objetivo do projetista é melhorar o
desempenho.

O projetista de sistemas integrados não é apenas um novo rótulo para uma atividade antiga.
Esse projetista enfrenta hoje novos desafios. Eles são solicitados a produzir sistemas cada vez
mais complexos usando as tecnologias mais recentes, mas essas tecnologias estão mudando
mais rápido do que nunca, da mesma forma que são solicitados a produzir projetos de melhor
qualidade com um menor tempo de colocação no mercado e implementando novas
funcionalidades.

Mas, mais importante, a satisfazer várias outras restrições. Não é suficiente, por exemplo, ter
um smartphone com o qual você possa se comunicar. Ele também deve ter tela ampla, tirar
boas fotos, ser leve, ter um custo razoável, ter boa duração de bateria e proteger o conteúdo
nas aplicações que você utiliza, dentre outras características.

Comunicar ainda pode ser a funcionalidade principal, mas o tamanho, peso, consumo de
energia e o uso de criptografia para troca segura de dados são restrições que devem ser
alcançadas para um smartphone aceitável. Para atingir os objetivos atuais do design, o
projetista deve estar ciente dessas restrições e, mais importante, dos fatores que têm um efeito
direto sobre elas.

Daremos um passo essencial para poder atuar bem como um projetista de sistemas
embarcados (ou embutidos), começando pelo entendimento da evolução do principal
dispositivo desses sistemas, o microcontrolador.

Em seguida, com o conhecimento da arquitetura, dos principais componentes internos e dos


diferentes tipos de microcontroladores, você se preparará para especificar tais dispositivos com
segurança em um projeto de sistema embarcado.

MÓDULO 1

 Descrever a evolução dos microcontroladores

Embora não seja essencial que você entenda como os microcontroladores se desenvolveram
até o ponto em que estão hoje, esta é uma história importante, que vai ajudá-lo a entender
onde um determinado microcontrolador, que você considere para um projeto, se encaixa na
hierarquia geral de tecnologia da informação e produtos eletrônicos.
 Figura 1: Foto Ilustrativa de aluno trabalhando na estação de trabalho do laboratório
fazendo programação de microcontrolador. Fonte: Shutterstock.

Mais importante, por ter esse conhecimento, você fará melhores escolhas e tomará melhores
decisões sobre quando e onde usar um microcontrolador, em vez de outras alternativas.

MICROCONTROLADORES E O AUMENTO
NA INTEGRAÇÃO DOS CIRCUITOS
Se você abrir um equipamento eletrônico da década de 1980, como um CD player ou um
videocassete (se você nunca viu um, pesquise na internet), você descobrirá que eles estão
absolutamente recheados de placas de circuito e que cada placa de circuito é densamente
povoada por circuitos integrados (chips) e componentes que fazem tudo funcionar.

Por outro lado, abrindo um Blu-ray player fabricado nos últimos anos, você provavelmente
encontrará bastante espaço vazio, e apenas uma pequena placa de circuito contendo talvez
dois ou três chips bem grandes e um punhado de outros componentes. No entanto, o
dispositivo mais moderno oferece qualidade e robustez muito melhores, com muito mais
recursos e opções do que seu predecessor dos anos 1980.

Podemos identificar dois fatores principais para essa transformação, que ocorreu em toda a
indústria de produtos eletrônicos:
A crescente miniaturização de componentes eletrônicos, o que permitiu que mais e mais
circuitos fossem colocados em chips únicos, reduzindo a contagem de chips necessária
para qualquer função.

Os transistores, as células eletrônicas primordiais, na primeira família de chips lógicos

(lançados no início dos anos 1970) mediam, cada um, cerca de 10 mícrons (10-6 metros) de
diâmetro. Só para se ter uma ideia da escala, um fio de cabelo humano tem, em média, cerca
de 100 mícrons de largura.

 VOCÊ SABIA

No momento, empresas como a Intel estão produzindo em massa transistores com 14

nanômetros (10-9 metros) de diâmetro, apenas 14 vezes mais largos que as moléculas de
DNA. Isso dá uma ideia do ritmo de miniaturização que ocorreu nos circuitos integrados desde
os anos 1970.

A transição progressiva das funções de dispositivo de implementação em hardware para


implementação em software executado em microcontroladores, os firmwares.

Essa transição de funções para os microcontroladores só foi possível porque mais integração
de dispositivos é realizada nessas arquiteturas em cada geração. Isso permite a redução no
custo de fabricação dos equipamentos, aumentando também a velocidade com que novas
funcionalidades podem ser agregadas com o controle desses dispositivos no mesmo firmware.

 EXEMPLO

Por exemplo, um projetista certamente terá mais facilidade para implementar um protocolo de
comunicação Wi-Fi em um produto se este dispositivo estiver integrado no modelo de
microcontrolador escolhido. Sem dúvida, este modelo de microcontrolador pode ser muito bem
aceito pelo mercado, desde que integre também bom desempenho, confiabilidade e preço
acessível. Não por acaso, microcontroladores mais recentes com estas características, como o
ESP8266 e ESP32, têm despertado grande interesse entre projetistas.

A integração de mais dispositivos e mais funcionalidades dentro da arquitetura de um


microcontrolador está na origem da sua própria invenção.

A HISTÓRIA DA INVENÇÃO DOS


MICROCONTROLADORES
O microcontrolador se tornou onipresente e invisível. Você acredita que está usando quantos
microcontroladores em sua casa? Mais de uma dezena, isto é um fato. Talvez 50 ou mais.
Existem mais de dois bilhões de microcontroladores sendo produzidos a cada ano. Quase todo
mundo, tanto nas nações desenvolvidas quanto nas em desenvolvimento, não passa um dia
sem usar microcontroladores.

 VOCÊ SABIA

Sendo um chip embutido, o microcontrolador controla a maioria dos aparelhos eletrônicos em


sistemas que as pessoas usam diariamente, desde máquinas de lavar, celulares, TVs, até os
sistemas de controle em carros. Agora, como surgiu essa ideia de um microcontrolador? Qual é
a história da invenção desse poderoso chip?

Foi durante 1970 e 1971, quando a Intel estava trabalhando na invenção do primeiro
microprocessador do mundo, que Gary Boone, da Texas Instruments (TI), estava trabalhando
em um conceito bastante semelhante e inventou o microcontrolador.

Fonte:Shutterstock
 Figura 2: A sede mundial da Texas Instruments localizada em Dallas. Fonte: Shutterstock.

Boone projetou um único chip de circuito integrado que poderia conter quase todos os circuitos
essenciais para formar uma calculadora; apenas o display e o teclado não foram incorporados.

Surpreendentemente, esse avanço excepcional no campo da eletrônica e das comunicações


recebeu um nome comum de TMS1802NC. No entanto, o dispositivo não era comum. Tinha
cinco mil transistores fornecendo 3000 bits de memória de programa e 128 bits de memória de
acesso. Parece pouco comparado ao que temos hoje. Mas, desta forma, foi possível programá-
lo para realizar uma série de funções.

Embora, vistos de hoje, pareçam óbvios os benefícios de integrar circuitos em um único chip,
este não foi um pensamento que tenha dominado as mentes nas empresas projetistas de chips
tão rapidamente. Mas, é fato conhecido que requisitos e necessidades levam a invenções e
descobertas.

O QUE GARY BOONE E OS OUTROS


ENGENHEIROS ACABARAM VISUALIZANDO
COM O ATENDIMENTO ÀS EMPRESAS
POPULARES COMO CANON, OLYMPIA OU
OLIVETTI?

RESPOSTA

RESPOSTA

Que converter as especificações destas empresas em um conjunto de chips,


normalmente quatro, cinco ou seis chips para executar ou implementar as especificações,
talvez não fosse a maneira mais eficiente de distribuir os trabalhos entre os grupos de
engenheiros.

Com isso, eles pensaram em uma matriz de necessidades do cliente de uma maneira e
pedaços de circuitos ou blocos funcionais de outra. Boone pôde descobrir o que há em comum
entre os dois, cobrindo todas as especificações do cliente. Como resultado desse excelente
pensamento, surgiu o primeiro chip microcontrolador da série TMS1000. Este dispositivo
inovador surgiu de uma visão de pontos em comum e alta demanda que estavam sendo
atendidos de forma inadequada pela implantação de grandes equipes com muitos chips.

Este microcontrolador foi usado na Texas Instruments (TI) internamente em seus produtos de
calculadora entre 1972 e 1974. O dispositivo foi aprimorado ainda mais ao longo dos anos. A TI
ofereceu este microcontrolador para venda à indústria eletrônica em 1974. Ele foi
disponibilizado em diferentes configurações de tamanhos de memória. Em 1983, quase 100
milhões de TMS1000 já haviam sido vendidos. Ano após ano, os microcontroladores estavam
tendo um grande crescimento e uso.

O MICROCONTROLADOR ANTE AO
MICROPROCESSADOR
Mesmo com o pioneirismo da Texas Instruments, a popularização do microcontrolador em
várias aplicações derivou do crescimento dos microprocessadores.

Até meados da década de 1980, a maioria dos produtos eletrônicos ainda era construída
usando circuitos combinacionais lógicos extremamente intrincados e inteligentes,
implementados com uma enorme quantidade de chips. A partir do início da década de 1980,
uma minoria de fabricantes começou a incorporar microprocessadores em seus produtos para
reduzir a contagem de chips, o que diminuiu os custos de fabricação e, portanto, os preços
para o usuário final.

Fonte:Shutterstock
 Figura 3: Foto Ilustrativa com close de mãos com peças eletrônicas do microprocessador
da placa principal do computador. Fonte: Shutterstock.

Os primeiros microprocessadores de 8 bits, como o Intel 8080 ou o Zilog Z80, apareceram pela
primeira vez no final dos anos 1970 e representaram um avanço significativo em relação ao
que existia antes.

Engenheiros e designers logo perceberam que, depois de colocar um microprocessador em um


dispositivo, você não só poderia fazer com que ele fizesse muito mais, mas também poderia
atualizar de forma mais barata os defeitos ou falhas no projeto original.

Muitos defeitos do produto agora poderiam ser resolvidos usando mão de obra para
reprogramar o software em vez de ter que usar mão de obra para retrabalhar ou substituir
milhares de placas de circuito completas. À medida que os anos 1980 avançavam, mais e mais
produtos tinham um microprocessador em seu núcleo.

Mesmo que os microprocessadores representassem uma grande melhoria em relação ao que


substituíram, eles não eram uma solução mágica completa para reduzir os custos e a
complexidade do design do produto. O problema era que, para fazer um microprocessador
realizar algo útil, ele precisava ser cercado por um grande número de chips adicionais para
entrada e saída (E / S) e geralmente precisava de outros chips de suporte também, como chips
de relógio em tempo real e decodificadores de endereços.

Na década de 1990, as técnicas aprimoradas de processamento de silício e fabricação de


chips resultaram na capacidade de colocar cada vez mais circuitos em um chip. Uma das
maneiras pelas quais isso foi usado foi para aumentar o chip do microprocessador com funções
e recursos adicionais, que foram previamente implementados por chips externos separados,
criando novas famílias de microcontroladores.

Uma vez que os microcontroladores começaram a ser usados em bens de consumo e sistemas
de controle durante a década de 1990, as já impressionantes miniaturizações eletrônicas das
duas décadas anteriores deram outro grande salto, tanto em termos de redução de tamanho
quanto na capacidade de oferecer mais opções e recursos do que nunca.

Na primeira década dos anos 2000, ninguém pensaria seriamente em projetar outra coisa
senão o dispositivo elétrico mais simples do consumidor sem o uso de algum tipo de
microcontrolador.

Eles estão por todas as partes. Eles se tornam mais capazes e mais complexos com o passar
do tempo. Como projetista, você estará em considerável desvantagem se não entender os
microcontroladores em um bom nível.

Fonte:Shutterstock
 Figura 4: Microchip/microprocessador semicondutor integrado em placa de circuito. Fonte:
Shutterstock.

Em resumo, a onipresença dos microcontroladores é o principal motivo pelo qual você deve
saber algo sobre eles. No entanto, também é muito satisfatório usar e projetar com
microcontroladores. Você pode fazer com que as coisas funcionem muito rapidamente, o que
antes levaria muito mais tempo para ser concluído. Você também pode se divertir bastante no
processo, isto é garantido.

Algumas famílias de microcontroladores são muito econômicas, sendo uma maneira fácil de
implementar seus projetos. A popularidade cada vez maior significa que existe uma
comunidade de suporte online enorme e muito ativa para ajudá-lo se você ficar preso a um
problema. Isto também significa que há uma grande quantidade de software gratuito disponível,
o que torna seus projetos muito mais fáceis e rápidos de concluir.
A EVOLUÇÃO DOS
MICROPROCESSADORES

VERIFICANDO O APRENDIZADO
1. QUAL O FATOR E POR QUE ESTE FATOR POPULARIZOU TANTO O
USO DE MICROCONTROLADORES EM APLICAÇÕES EMBARCADAS DE
CONTROLE E MONITORAÇÃO?

A) Custo, porque é mais barato programar um microcontrolador do que um microprocessador.

B) Custo, porque a integração de elementos em um único chip leva a custos de fabricação


mais baixos.

C) Desempenho, porque o processamento em microcontroladores é superior a soluções com


microprocessadores.

D) Desempenho, porque microcontroladores podem executar aplicações em tempo real.

E) Miniaturização, porque com o emprego dos microcontroladores, os dispositivos ficaram


menores.

2. MICROPROCESSADORES E MICROCONTROLADORES POSSUEM


APLICAÇÕES DIFERENTES EM FUNÇÃO DE SUAS CARACTERÍSTICAS.
QUAL AFIRMAÇÃO ABAIXO ESTÁ CORRETA QUANTO ÀS
CARACTERÍSTICAS DESTES DISPOSITIVOS?

A) Microprocessadores integram periféricos que permitem considerá-los como um computador


em um único chip.

B) Microcontroladores costumam ser chamados de "computadores de propósito especial”.

C) Microcontroladores e microprocessadores só diferem no poder de processamento, menor no


microcontrolador.

D) Microcontroladores e microprocessadores são considerados como "computadores de uso


geral".

E) Não existe diferença entre microcontroladores e microprocessadores.

GABARITO

1. Qual o fator e por que este fator popularizou tanto o uso de microcontroladores em
aplicações embarcadas de controle e monitoração?
A alternativa "B " está correta.

O elemento condutor por trás da popularização dos microcontroladores é o custo: A integração


de todos os elementos em um chip economiza espaço e leva a custos de fabricação mais
baixos e tempos de desenvolvimento mais curtos. Isso economiza tempo e, por sequência,
dinheiro, fatores-chave nos sistemas embutidos.

2. Microprocessadores e microcontroladores possuem aplicações diferentes em função


de suas características. Qual afirmação abaixo está correta quanto às características
destes dispositivos?

A alternativa "B " está correta.

Microcontroladores costumam ser chamados de "computadores de propósito especial” porque


eles realizam uma ou poucas tarefas especializadas por vez, não sendo direcionados para a
troca constante da aplicação em software embutido como os microprocessadores de propósito
geral.

MÓDULO 2

 Descrever os componentes básicos de microcontroladores

TERMOS FREQUENTEMENTE USADOS


Antes de nos concentrarmos na arquitetura de microcontroladores, primeiro listaremos alguns
termos que você encontrará com frequência no campo de sistemas embarcados.

MICROPROCESSADOR
É uma CPU (UCP - Unidade Central de Processamento) normal, como você pode encontrar em
um PC. A comunicação com dispositivos externos é obtida por meio de um barramento de
dados, portanto, o chip apresenta principalmente pinos de dados e endereços, bem como
alguns pinos de controle. Todos os dispositivos periféricos (memória, controlador de disco,
controlador de USB, temporizador etc.) estão conectados ao barramento.

Um microprocessador não pode ser operado de maneira autônoma, requerendo no mínimo um


pouco de memória e um dispositivo de saída. Observe que um processador não é um
controlador. Usamos o termo processador apenas para o núcleo do processador, a CPU de um
microcontrolador.

CONTROLADOR DE SINAL MISTO


Este é um microcontrolador que pode processar sinais digitais e analógicos.

SISTEMA EMBARCADO OU EMBUTIDO


A principal área de aplicação dos microcontroladores são os sistemas embarcados. Em
sistemas embarcados, a unidade de controle é integrada ao sistema.

Como exemplo, pense em um telefone celular, no qual o controlador está incluído no


dispositivo. Isso é facilmente reconhecível como um sistema embarcado. Por outro lado, se
você usa um PC normal em uma fábrica para controlar uma linha de montagem, isso também
atende a muitas das definições de um sistema embarcado. O mesmo PC, entretanto, equipado
com um sistema operacional normal e usado para processar texto, certamente não é um
sistema embarcado.

SISTEMA DE TEMPO REAL


Os controladores são frequentemente usados em sistemas de tempo real, em que a reação a
um evento deve ocorrer dentro de um tempo especificado. Isso é verdade para muitas
aplicações nas áreas aeroespacial, ferroviária ou automotiva, por exemplo.

PROCESSADOR EMBUTIDO
Este termo geralmente ocorre em associação com sistemas embutidos, e as diferenças para os
controladores costumam ser muito confusas. Em geral, o termo “processador embutido” é
usado para dispositivos de última geração (32 bits), enquanto “controlador” é tradicionalmente
usado para dispositivos de baixo custo (4, 8, 16 bits).

PROCESSADOR DE SINAL DIGITAL (DSP)


Os processadores de sinal são usados para aplicativos que precisam processar sinais com alto
desempenho. Uma área importante de uso são as telecomunicações. Portanto, seu telefone
celular provavelmente conterá um DSP. Esses processadores são projetados para adição e
multiplicação rápidas, que são as principais operações para o processamento de sinais. Como
as tarefas que exigem um processador de sinal também podem incluir funções de controle,
muitos fornecedores oferecem soluções híbridas que combinam um controlador com um DSP
em um chip.

SISTEMAS BASEADOS EM
MICROCONTROLADORES
O microprocessador, como mencionado antes, não pode funcionar sozinho. Deve ser
suportado por algumas unidades de hardware externas e módulos de software para formar um
sistema funcional. Em geral, o microprocessador, as unidades de suporte e o software formam
o que é chamado de “sistema baseado em microprocessador”, como mostrado na figura 5.

Os sistemas baseados em microprocessador são sistemas de uso geral que podem ser
programados e reprogramados dependendo da tarefa ou do aplicativo e normalmente os
chamamos de computadores. O computador pessoal destaca-se como uma das aplicações
mais importantes e úteis dos sistemas baseados em microprocessadores.

 Figura 5 ‒ Sistema baseado em microprocessador. Fonte: O Autor, 2020.

O sistema baseado em microcontrolador (Figura 6) é geralmente identificado como o mais


conhecido sistema embutido, ou sistema embarcado, como é mais comumente conhecido em
português.


SAIBA MAIS

Microcontroladores formam sistemas de função única, pois executam um programa específico


repetidamente, são fortemente restritos às métricas de projeto (por exemplo, tamanho
pequeno, consome pouca energia etc.) e têm resposta em tempo real. Em tais casos, as
unidades de suporte são dispositivos periféricos, como um motor de passo, mostradores,
sensores, atuadores etc. O tipo e o número de periféricos dependem da aplicação. RAM
externa e/ou EPROM podem ser necessárias em alguns aplicativos.

Os usuários de tais produtos muitas vezes desconhecem a existência de microcontroladores:


Para eles, os componentes internos são apenas um detalhe do projeto. Considere como
exemplos fornos de micro-ondas, termostatos programáveis, balanças eletrônicas, câmeras
digitais e até carros. A eletrônica dentro de cada um desses produtos normalmente incorpora
uma interface de microcontrolador para botões, interruptores, luzes e alarmes em um painel
frontal. Ainda assim, a operação do usuário imita a dos predecessores eletromecânicos, com
exceção de alguns recursos adicionais. O microcontrolador, onipresente, é invisível para o
usuário.

 Figura 6 ‒ Sistema baseado em microcontrolador. Fonte: O Autor, 2020.


ARQUITETURA BÁSICA DE
MICROCONTROLADORES
Pela sua grande integração de dispositivos, os microcontroladores são frequentemente
descritos como computadores de chip único. Isso porque um microcontrolador já contém todos
os componentes que permitem operá-lo sozinho, em particular para tarefas de monitoramento
e/ou controle. Em consequência, eles contêm um núcleo de microprocessador, alguma
memória e vários dispositivos periféricos, como portas de E/S paralelas, portas de E/S seriais,
temporizadores, conversores analógicos para digital (ADCs) e vários outros subsistemas de
funções especiais. Os principais, como mostrado na Figura 6, são descritos a seguir.

CPU

A unidade central de processamento é responsável por executar o programa armazenado e


gerenciar os periféricos. Ela busca instruções numéricas da memória (opcodes) uma por uma,
as interpreta e executa alguma operação como resultado. Os programas consistem em uma
coleção desses opcodes misturados com dados (numéricos). A CPU funciona sequencialmente
por meio dessas instruções, às vezes com saltos de uma posição para outra da memória como
resultado do projeto do programa ou como resultado das condições operacionais.

Fonte:Shutterstock
 Figura 7: Ícone relacionado ao chip do processador. Fonte: Shutterstock.

Os registradores da CPU são como áreas de armazenamento da memória interna. Eles são
úteis para resultados de cálculos provisórios. Isso reduz o número de leituras/gravações na
memória externa, que geralmente é mais lenta. Alguns registradores têm funções especiais,
como controlar onde a próxima instrução deve vir da memória.

A unidade lógica aritmética é responsável por realizar os cálculos. Em algumas CPUs, são
bastante simples, com suporte apenas a adicionar, subtrair e operações lógicas básicas. Em
CPUs mais sofisticadas, pode haver várias unidades aritméticas, algumas capazes de realizar
operações avançadas de ponto flutuante.

O trabalho do decodificador de instruções é traduzir opcodes numéricos em sequências de


ações. O barramento de dados é uma coleção de fios ou trilhas usados para transportar
números para dentro e para fora da CPU. Um '1' lógico em cada linha do barramento é
representado por uma tensão particular ‒ comumente 5V ou 3,3V. O '0' lógico é comumente
representado por um sinal de 0V. Qualquer dispositivo com o qual a CPU precisa se comunicar
está conectado (em paralelo com outros) ao barramento de dados.

O barramento de endereços é outra coleção de fios/trilhas. Seu objetivo é selecionar qual dos
dispositivos externos (ou locais de memória) tem permissão para usar o barramento de dados.
Lembre-se de que cada fio do barramento de dados é apenas uma condução simples e só é
capaz de transmitir um bit de dados por vez. Se, por exemplo, dois dispositivos tentarem gravar
no barramento de dados ao mesmo tempo, seus sinais ficarão confusos e perdidos. Em
sistemas simples, a CPU sozinha controla o barramento de endereço.

 Figura 8: Ilustração para Modelo Barramento de Sistema. Fonte: Adaptado de IME ‒ USP.

MEMÓRIAS

A RAM (Memória de acesso aleatório) é usada para armazenar valores que podem mudar
durante a execução de um programa. A RAM é volátil, ou seja, o seu conteúdo é perdido toda
vez que os sistemas são desligados. Como resultado disso, a RAM não é muito útil para
armazenamento de programas de longo prazo.

A ROM (Memória somente de leitura) não perde seu conteúdo quando a alimentação é
removida. Portanto, é geralmente usada para armazenar programas, mas não variáveis.
Existem diferentes tecnologias usadas para implementar memória de programa ROM, como
EPROM, EEPROM e memória Flash.

Tanto a ROM quanto a RAM consistem em conjuntos de locais de armazenamento, geralmente


organizados em bytes ou múltiplos de bytes em algum tipo de módulo, como um chip. Esses
módulos possuem um barramento de endereço que é controlado pela CPU. O barramento de
endereço seleciona qual das localizações da memória interna está conectada ao barramento
de dados do módulo, devendo possuir um número de bits necessário para endereçar a
quantidade de memória existente.
 ATENÇÃO

Lembre-se de que um grupo de oito bits é conhecido como byte. 1 byte pode representar

números entre zero (00000000) e 255 (11111111), ou 28 = 256 posições distintas. Na prática, a
memória é medida em kilobytes (KB) ou megabytes (MB). Um kilobyte não é exatamente, como

se poderia esperar, 1000 bytes. Em vez disso, a quantidade correta é 210, ou seja, 1024 bytes.

Da mesma forma, um megabyte não é 1.000.000 bytes, mas, em vez disso, 1.0242, ou seja,
1.048.576 bytes. Esta é uma diferença notável.

Se existe, por exemplo, um total de 64kB de memória (entre memória de dados e programa)
para endereçar, temos 64 x 1024 = 65536 de posições de memória para endereçar.

Um barramento de endereços, neste caso, precisaria ter n bits, onde n é calculado pela

equação 2n = 65536. Como n é um valor inteiro, ele deve ser o suficiente para tornar 2n maior
ou igual a 65536. Assim, n = 16, ou seja, o barramento para endereçar 64kB de memória deve
ter pelo menos 16 bits.

E/S DIGITAL PARALELA

Microcontroladores enviam e recebem informações para o mundo exterior usando portas.


Existem muitos tipos diferentes de porta, mas a mais simples é a porta de entrada e saída
(E/S) paralela. Essas portas podem ser vistas como células de memória ou registradores, que
são conectados ao núcleo da CPU usando o barramento de dados e ao mundo externo por
meio de pinos do microcontrolador.

No caso de portas paralelas, cada bit no registrador da porta é conectado a um pino no chip.
Se um determinado bit está em nível lógico alto, o pino é acionado para qualquer tensão que
represente a lógica '1' para aquele sistema (geralmente 5V ou 3,3V). Da mesma forma, bits na
lógica '0' conduzem 0V no pino apropriado.

E/S SERIAL
As comunicações seriais exigem que o remetente envie dados de 1 bit por vez, a uma taxa
acordada com o receptor pretendido. Cada bit recebe um “intervalo de tempo”, que define o
fio/trilha de transmissão para o nível lógico correto para cada intervalo de tempo do bit.

O receptor mede a voltagem que chega do emissor no meio de cada intervalo de tempo de bit.
Ele pode, portanto, decidir se um '1' ou '0' foi enviado para um determinado bit. A operação
confiável requer um tempo preciso. O receptor deve olhar os tempos corretos para cada bit.
Existem duas maneiras comuns de se conseguir isso:

TRANSMISSÃO ASSÍNCRONA

O emissor e o receptor têm sinais periódicos (clock) muito precisos que são realinhados
periodicamente ‒ isto é chamado de transmissão assíncrona. Neste caso, um parâmetro muito
importante é o Baud Rate, que especifica a velocidade de recepção e envio, sendo que os dois
dispositivos devem utilizar a mesma taxa.


TRANSMISSÃO SÍNCRONA

O outro método requer que ambas as partes compartilhem uma única fonte de clock ‒
transmissão síncrona. A transmissão de dados seriais é mais barata do que a transmissão
paralela, pois há menos condutores envolvidos. Mouses, teclado, USB e Ethernet são
exemplos de transmissão serial.

TEMPORIZADORES

Os temporizadores são normalmente construídos usando uma fonte de clock e um registrador


específico com função de contador. Os contadores contam os períodos de clock que são
inseridos neles. Alguns contadores aumentam, outros diminuem. Os contadores têm um
número de bits limitado e, como resultado, só podem contar para cima ou para baixo até este
limite sem reiniciar a contagem.

Um contador de 8 bits, por exemplo, pode contar apenas até 255 decimais; mais uma entrada
de período fará com que ele transborde e reverta para zero. Um contador decrescente de 16
bits diminuirá para zero e, dada mais uma entrada, ele rolará para 65535 (0xffff em
hexadecimal). Os contadores podem ser usados simplesmente como contadores de eventos,
permitindo que a CPU execute outras tarefas.

ADCS E DACS

Frequentemente, os microprocessadores são necessários para processar sinais não digitais, os


sinais analógicos (ou contínuos). Para que eles façam isso, é necessário um dispositivo
especial denominado conversor analógico para digital (ADC). Este dispositivo aceita uma
entrada analógica e a traduz em um número digital cujo tamanho é proporcional à magnitude
do sinal analógico. Cada conversor analógico para digital tem uma faixa de tensão de entrada
associada e uma faixa numérica de saída.

 EXEMPLO

Por exemplo, um ADC interno de 10 bits que opera com faixa do sinal de entrada de 0 a 5V. O
ADC, por comando da CPU, tira um instantâneo (amostra e espera) da entrada analógica e,
neste caso, usa uma aproximação sucessiva para mapear este sinal para um número digital
proporcional. O programa monitora o status do sinal de “conversão concluída” em um bit de um
registrador específico. Quando a conversão for concluída, o resultado de 10 bits convertido
pode ser lido em um registrador. Alguns ADCs têm entradas multiplexadas que permitem
converter vários sinais de entrada em sequência.

E o que implica um maior ou menor número de bits em uma ADC? Imagine que a conversão de
uma tensão de entrada em um número binário significa dividir este valor de tensão em dados
discretos, ou seja, que podem ter apenas valores específicos. Os valores de tensão são
contínuos, ou seja, podem assumir infinitos valores em um intervalo. A Figura 9 ilustra a
conversão de valores de um sinal contínuo (as curvas em vermelho) para valores discretos (em
azul) no caso de dados digitais representados com 2 e 3 bits.

Fonte: Wikimedia
 Figura 9 – Representação de sinal contínuo em valores discretos com 2 e 3 bits. Fonte:
Wikimedia.

Observa-se que o aumento no número de bits implica no aumento no número de valores


específicos na representação digital. Esse aumento no número de bits permite, portanto, o
aumento na resolução da representação binária do valor de entrada. Por exemplo, para um

ADC de 10 bits, a representação do sinal de entrada terá 1024 (210) valores discretos.

Se este ADC trabalha com uma


binária
---------- de referência de 5V,
binários a resolução que ele possui é de
5/1024, aproximadamente 4,88mV
conversão

(10-3 V).
Ou seja, os valores
digital
---------- resultantes da
maior
---------- do ADC representam

resolução múltiplos de 4,88mV. Desta forma,


quanto ----------
o número de
tensão
bits de um ADC, maior é a
---------- da representação
---------- do valor de entrada.
Por consequência, mais fiel é a
representação
---------- do
valor contínuo de entrada.

Os conversores digitais para analógico (DACs) executam o inverso dos ADCs. Eles aceitam um
sinal de entrada digital e emitem um sinal analógico proporcional. Historicamente, os DACs
raramente foram encontrados integrados a microcontroladores por motivos de fabricação. Se
uma saída analógica for necessária para um microcontrolador sem um DAC interno, um IC
externo e um circuito de suporte devem ser adicionados.

 EXEMPLO

Alternativamente, pode ser possível gerar uma saída pseudoanalógica controlando o ciclo de
trabalho de um pino da porta digital de saída. Por exemplo, se um pino de saída digital gasta
metade de seu tempo em 5V e o resto em 0V, sua tensão média é 2,5V. Variando a
porcentagem de “tempo em alto”, a tensão média de saída pode ser controlada. Isto é
conhecido como modulação por largura de pulso (PWM). A saída pulsada pode ser filtrada para
criar um sinal analógico contínuo, usando um filtro simples.

CONTROLE DE INTERRUPÇÕES

Frequentemente, são construídos sistemas embutidos muito simples que executam apenas
uma tarefa. Por exemplo, um sistema de alarme contra roubo pode gastar todo o seu tempo
lendo o status de vários sensores e verificando uma condição de alarme.

Da mesma forma, um microprocessador em um cartão musical pode gastar seu tempo gerando
saídas analógicas. Algumas vezes, são necessários sistemas de microprocessador mais
complexos para monitorar e controlar as entradas e saídas do usuário. Em tais circunstâncias,
a alocação de tempo de CPU para conduzir as saídas e monitorar as entradas deve ser
cuidadosamente balanceada. Uma maneira de fazer isso é espalhar as chamadas para as
várias rotinas de E/S por todo o código do programa.

Considere, por exemplo, um PC moderno executando um aplicativo de jogos. A CPU deve


“rodar” os drivers de mouse e teclado para verificar se há novas entradas e, ao mesmo tempo,
atualizar a exibição do vídeo. À medida que os sistemas se tornam mais complexos, essa
"correria" se torna mais complicada e, em última análise, impraticável. As interrupções
oferecem uma solução.

E O QUE SÃO INTERRUPÇÕES?

RESPOSTA

RESPOSTA

As interrupções são sinais que fazem com que a CPU suspenda sua atividade atual e
execute outra tarefa.

Os sinais de interrupção frequentemente são produzidos por dispositivos de hardware que


requerem atenção urgente (por exemplo, uma placa de rede sinaliza que recebeu um bloco de
entrada de dados). Um determinado sistema de computador pode precisar suportar vários
subsistemas de hardware, cada um dos quais ocasionalmente requer atenção urgente.

 COMENTÁRIO

As CPUs são comumente projetadas para lidar com interrupções de várias fontes. Cada sinal
de interrupção está associado a um local de memória particular que contém o endereço da
sub-rotina que deve ser executada no recebimento desta interrupção. Os programadores de
sistema podem preencher esses locais de memória especiais com os endereços do código de
tratamento de interrupção.

Microcontroladores possuem controladores de interrupções para, por exemplo, contarem


pulsos de entrada, realizarem uma determinada função a cada intervalo de tempo, receberem
dados por porta serial. Interrupções possibilitam retirar alguns microcontroladores de um
estado de baixo consumo de energia, permitindo que este esteja sempre disponível mesmo
mantendo boa parte de seus circuitos desligados.

A ARQUITETURA DE UM
MICROCONTROLADOR
VERIFICANDO O APRENDIZADO

1. UM MICROCONTROLADOR DEVE SER USADO EM UMA APLICAÇÃO


QUE REQUER 1 KBYTE DE MEMÓRIA DE DADOS E UM PROGRAMA DE 8
KBYTES. QUANTOS BITS SERIAM NECESSÁRIOS PARA O
BARRAMENTO DE ENDEREÇO?

A) 8 bits

B) 10 bits

C) 14 bits

D) 16 bits

E) 32 bits

2. VOCÊ FOI DESIGNADO PARA ESPECIFICAR UM


MICROCONTROLADOR QUE DEVE MEDIR UMA TENSÃO COM
RESOLUÇÃO DE PELO MENOS 80μV (80X10-6 VOLTS). QUAL
DISPOSITIVO ESTE MICROCONTROLADOR DEVE INTEGRAR E DE
QUANTOS BITS ESTE DISPOSITIVO DEVE SER? CONSIDERE QUE A
TENSÃO DE REFERÊNCIA DESTE DISPOSITIVO É 5V.

A) ADC de 10 bits

B) DAC de 16 bits

C) ADC de 14 bits

D) ADC de 16 bits

E) ADC de 8 bits

GABARITO
1. Um microcontrolador deve ser usado em uma aplicação que requer 1 kbyte de
memória de dados e um programa de 8 kbytes. Quantos bits seriam necessários para o
barramento de endereço?

A alternativa "C " está correta.

A quantidade total de memória é de 8 kbytes + 1 kbyte. Portanto, o espaço de memória total é


de 9 kbytes. Para acomodar 9 kbytes de espaço de memória, será necessário um barramento
de endereço com n bits onde:

2n = (8192 + 1024) = 9216

Assim, n deve ser pelo menos 14.

2. Você foi designado para especificar um microcontrolador que deve medir uma tensão

com resolução de pelo menos 80μV (80x10-6 volts). Qual dispositivo este
microcontrolador deve integrar e de quantos bits este dispositivo deve ser? Considere
que a tensão de referência deste dispositivo é 5V.

A alternativa "D " está correta.

Um ADC permite converter uma tensão na entrada do microcontrolador em um valor binário.


Para ter uma resolução de pelo menos 80μV em 5V, é preciso ter um ADC de pelo menos 16

bits, pois 5 / 216 = 5 / 65536 = 76,29μV - um valor de resolução que atende ao especificado.

MÓDULO 3

 Distinguir entre os diferentes microcontroladores

A arquitetura da Unidade de Processamento Central (CPU) opera a capacidade de funcionar


do Conjunto de Instruções para o qual foi projetada. O projeto arquitetônico da CPU pode ser
dividido em duas:

A computação de conjunto de instruções reduzido (RISC ‒ Reduced Instruction Set


Computing) ou
A computação de conjunto de instruções complexas (CISC ‒ Complex Instruction Set
Computer).

 Figura 10: Foto Ilustrativa macro do módulo de microcontrolador wireless wi-fi programável.
Fonte: Shutterstock.

Vamos examinar as diferenças.

A arquitetura CISC tem a capacidade de realizar operações de várias etapas ou modos de


endereçamento dentro de um conjunto de instruções. É o projeto da CPU em que uma
instrução opera vários atos de baixo nível. Por exemplo, armazenamento na memória,
carregamento da memória e uma operação aritmética.


SAIBA MAIS

A computação RISC é uma estratégia de projeto de UCP baseada na visão de que o conjunto
de instruções básicas oferece grande desempenho quando combinado com uma arquitetura de
microprocessador que tem a capacidade de executar as instruções usando alguns ciclos de
microprocessador por instrução. Neste caso, espera-se que cada instrução atinja tarefas muito
pequenas.
Nestas arquiteturas, os conjuntos de instruções são modestos e simples, o que ajuda a
compreender comandos mais complexos. Cada instrução tem um comprimento semelhante;
estes são compostos para realizar tarefas em uma única operação. A maioria dos comandos
são concluídos em um ciclo da máquina. O pipelining (tunelamento) é uma técnica crucial
usada para acelerar máquinas RISC.

COMO FUNCIONA O PIPELINING?


Pipelining, um recurso padrão em processadores RISC, é muito parecido com uma linha de
montagem. Como o processador trabalha em diferentes etapas da instrução ao mesmo tempo,
mais instruções podem ser executadas em um período de tempo menor.

 DICA

Um método útil de demonstrar isso é a analogia da lavanderia. Digamos que haja quatro
cargas de roupa suja que precisam ser lavadas, secas e dobradas. Poderíamos colocar a
primeira carga na lavadora por 30 minutos, secar por 40 minutos e depois levar 20 minutos
para dobrar as roupas. Em seguida, pegue a segunda carga e lave, seque e dobre e repita
para a terceira e a quarta cargas. Supondo que começássemos às 18h e trabalhássemos da
forma mais eficiente possível, ainda estaríamos lavando roupa até meia-noite.

No entanto, uma abordagem mais inteligente para o problema seria colocar a segunda carga
de roupa suja na lavadora depois que a primeira já estivesse limpa e girando na secadora.
Então, enquanto a primeira carga estava sendo dobrada, a segunda carga secaria e uma
terceira carga poderia ser adicionada à lavanderia. Usando esse método, a roupa estaria
terminada às 21h30.

Um pipeline de processador RISC opera da mesma maneira, embora os estágios no pipeline


sejam diferentes.

Mesmo que diferentes processadores tenham diferentes números de etapas, estas são
basicamente variações desses cinco:
Buscar instruções da memória.

Ler registradores e decodificar a instrução.

Executar a instrução ou calcular um endereço.

Acessar um operando na memória de dados.

Escrever o resultado em um registro.

Se você olhar novamente para o esquema de operação da lavanderia, perceberá que, embora
a lavadora termine em meia hora, a secadora leva dez minutos extras e, portanto, as roupas
molhadas devem esperar dez minutos para que a secadora seja liberada. Portanto, o
comprimento do pipelining depende do comprimento da etapa mais longa.

Como as instruções RISC são mais simples do que as usadas em processadores CISC, elas
são mais propícias ao pipelining. Enquanto as instruções CISC variam em comprimento, as
instruções RISC têm todas o mesmo comprimento e podem ser obtidas em uma única
operação.

Idealmente, cada um dos estágios em um pipelining de processador RISC deve levar 1 ciclo de
clock para que o processador termine uma instrução a cada ciclo de clock e obtenha a média
de um ciclo por instrução (CPI).

RISC VERSUS CISC


A maneira mais simples de examinar as vantagens e desvantagens das arquiteturas RISC e
CISC é compará-las em sua abordagem. Vamos a um exemplo:

MULTIPLICANDO DOIS NÚMEROS NA MEMÓRIA

Em um sistema computacional genérico, a memória principal é dividida em locais numerados.


A unidade de execução de cálculo, uma unidade lógica e aritmética, só pode operar com os
dados que foram carregados em um dos seus registradores internos. Digamos que queremos
encontrar o produto de dois números ‒ um armazenado no local 21 e outro armazenado no
local 49 da memória ‒ e então armazenar o produto de volta no local 21.

A ABORDAGEM CISC

O objetivo principal da arquitetura CISC é completar uma tarefa com o mínimo de linhas de
instrução possível. Isso é conseguido construindo um hardware de processador que é capaz de
compreender e executar uma série de operações. Para esta tarefa em particular, um
processador CISC poderia ser preparado com uma instrução específica (vamos chamá-la de
"MULT").

Quando executada, esta instrução carrega os dois valores em registros separados, multiplica
os operandos na unidade de execução e, a seguir, armazena o produto na posição de memória
indicada (21). Assim, toda a tarefa de multiplicar dois números pode ser concluída com uma
única instrução:

MULT 21, 49

MULT é o que é conhecido como "instrução complexa". Ela opera diretamente nos bancos
de memória do computador e não exige que o programador chame explicitamente nenhuma
função de carregamento ou armazenamento. É muito parecido com um comando em uma
linguagem de alto nível.

 EXEMPLO

Por exemplo, se deixarmos "a" representar o valor na posição 21 da memória e "b" representar
o valor na posição 49, então este comando é idêntico à instrução em linguagem C "a = a * b."

Uma das principais vantagens desse sistema é que o compilador precisa fazer muito pouco
trabalho para traduzir uma instrução em linguagem de alto nível para linguagem de montagem
(assembly). Como o comprimento do código é relativamente curto, muito pouca RAM é
necessária para armazenar as instruções. A ênfase é colocada na construção de instruções
complexas diretamente no hardware.
A ABORDAGEM RISC

Os processadores RISC usam apenas instruções simples que podem ser executadas em um
ciclo de clock. Assim, o comando "MULT" descrito acima pode ser dividido em três comandos
separados: "LOAD", que move os dados do banco de memória para um registrador, "PROD",
que encontra o produto de dois operandos localizados dentro dos registradores, e " STORE,
"que move os dados de um registrador para os bancos de memória. Para executar a série
exata de etapas descritas na abordagem CISC, um programador precisaria codificar quatro
linhas de montagem:

LOAD A, 21

LOAD B, 49

PROD A, B

STORE 21, A

A princípio, essa pode parecer uma forma muito menos eficiente de concluir a operação. Como
há mais linhas de código, mais RAM é necessária para armazenar as instruções no nível de
montagem. O compilador também terá mais trabalho para converter uma instrução de
linguagem de alto nível em código de máquina desta forma.

No entanto, a estratégia RISC também traz algumas vantagens muito importantes. Como cada
instrução requer apenas um ciclo de clock para ser executada, o programa inteiro será
executado aproximadamente na mesma quantidade de tempo que o comando "MULT" de
vários ciclos. Essas "instruções reduzidas" RISC requerem menos transistores em espaço de
hardware do que as instruções complexas, deixando mais espaço para registradores de uso
geral. Como todas as instruções são executadas em um período de tempo uniforme (ou seja,
um ciclo de clock), o pipelining é possível.

Separar as instruções "LOAD" e "STORE" realmente reduz a quantidade de trabalho que o


computador deve realizar. Depois que um comando "MULT" no estilo CISC é executado, o
processador apaga automaticamente os registradores. Se um dos operandos precisar ser
usado para outro cálculo, o processador deve recarregar os dados do banco de memória em
um registrador. No RISC, o operando permanecerá no registrador até que outro valor seja
carregado em seu lugar.

RISC OU CISC?
A escolha da maioria dos fabricantes hoje recai nos modelos RISC. Mas, existe uma tendência
histórica que mantem o seu computador pessoal como CISC. Antigamente, as memórias eram
pequenas e, portanto, os programas eram forçosamente pequenos. Além disso, os
compiladores não eram muito inteligentes e muitos programas eram escritos em assembly.

 Figura 11: Foto close up de microprocessador "risc". Fonte: Shutterstock

Desta forma, era considerado bom poder escrever um programa usando poucas instruções. Os
pipelines de instrução eram simples e os processadores pegavam uma instrução de cada vez
para executá-la. A arquitetura dentro do processador era bastante complexa de qualquer
maneira e as instruções de decodificação não eram consideradas um grande fardo.

Na década de 1980, os designers da CPU e do compilador começaram a perceber que ter


instruções tão complexas não era tão útil assim. Era difícil projetar processadores em que
essas instruções fossem realmente eficientes e era difícil projetar compiladores que realmente
tirassem proveito dessas instruções. A complexidade da área do chip e do compilador foi mais
bem gasta em atividades mais genéricas, como registradores de uso geral.

A família x86 da Intel, que provavelmente está em seu computador pessoal, é um pouco
diferente. Era originalmente uma arquitetura CISC destinada a sistemas com memória muito
pequena, sem espaço para grandes instruções, e passou por várias versões sucessivas.
Embora seus chips CISC estivessem se tornando cada vez mais pesados e difíceis de
desenvolver, a Intel tinha os recursos para explorar o desenvolvimento e produzir
processadores poderosos.

Fonte:Shutterstock
 Figura 12 : Intel Galileo, placa de sistema embarcada Arduino da Intel para educação de
desenvolvedores ou fabricante de IoT, baseada no microcontrolador Intel x86 de 32 bits,
mostrada em evento de venda pública. Fonte: Shutterstock.

No mundo de hoje, RISC e CISC não são mais a distinção preto e branco que poderiam ter
sido antes. A maioria das arquiteturas de CPU evoluiu para diferentes tons de cinza. Do lado
do RISC, algumas variantes modernas de arquiteturas adicionaram instruções de multiplicação
e divisão, com uma codificação não uniforme, mais próxima da abordagem CISC.

Hoje, o Intel x86 é o único chip que mantém a arquitetura CISC. Isso se deve principalmente ao
fato que manter a compatibilidade é uma prioridade. O preço da RAM diminuiu drasticamente e
a tecnologia de compiladores também se tornou mais sofisticada, o que conduz a um melhor
aproveitamento da arquitetura RISC. No caso dos microcontroladores, não foi diferente e o uso
da arquitetura RISC se tornou predominante. Mas, um microcontrolador de muito sucesso e
ainda utilizado em algumas áreas, o 8051, é de arquitetura CISC.
RISC OU CISC?

MICROCONTROLADORES E ARQUITETURA
DE MEMÓRIA
No projeto de uma arquitetura de processador, uma decisão importante diz respeito ao acesso
à memória, onde se define se a faixa de endereços da memória de dados será a mesma da
memória de instruções (memória de programa). De acordo com o uso da memória, pode-se
classificar duas arquiteturas de processador: Arquitetura von Neumann e arquitetura
Harvard.

ARQUITETURA VON NEUMANN

Em uma arquitetura von Neumann, a mesma memória e barramento são usados para
armazenar dados e instruções que executam o programa. Como você não pode acessar a
memória de programa e memória de dados simultaneamente, a arquitetura von Neumann é
suscetível a gargalos e o desempenho do sistema é afetado. A Figura 13 mostra a
configuração de memória nesta arquitetura.

 Figura 13 ‒ Arquitetura von Neumann. Fonte: O Autor, 2019.

Neste caso, as instruções estariam em uma faixa de endereços que ative a memória que
possui as instruções e os dados estão em outra faixa de endereços que ative outra memória,
onde se pode ler e escrever os dados. Nesta arquitetura, só é possível o acesso a uma
memória de cada vez.

ARQUITETURA HARVARD

A arquitetura Harvard armazena instruções de máquina e dados em unidades de memória


separadas que são conectadas por diferentes barramentos. Nesse caso, há pelo menos dois
espaços de endereço de memória para trabalhar. Logo, há um registro de memória para
instruções de máquina e outro registro de memória para dados.

Os computadores projetados com a arquitetura Harvard são capazes de executar um programa


e acessar dados de forma independente e, portanto, simultaneamente. A arquitetura Harvard
tem uma separação estrita entre dados e código. Assim, a arquitetura Harvard é mais
complicada, mas os pipelines separados removem o gargalo que a von Neumann cria. A Figura
14 mostra a configuração de memória nesta arquitetura.

 Figura 14 ‒ Arquitetura Harvard. Fonte: O Autor, 2019.

Comparando, pode-se verificar que a arquitetura Harvard é mais veloz, mas exige mais um
barramento. Assim, o custo de produção tende a ser maior. A arquitetura Harvard é bastante
utilizada nos microcontroladores pelo fato das memórias estarem integradas no próprio
componente, sendo mais fácil a sua realização.

Alguns microcontroladores, como o 8051, podem implementar uma arquitetura Harvard


modificada, com acesso à memória interna como Harvard e externa como von Neumann.
Microcontroladores ARM de diferentes modelos também podem apresentar arquiteturas
Harvard e von Neumann. Microcontroladores PIC são baseados na arquitetura Harvard.

Fonte:Shutterstock
 Figura 15: Kit de integração do microprocessador 8051. Fonte: Shutterstock.

VERIFICANDO O APRENDIZADO

1. A EQUAÇÃO CLÁSSICA DE DESEMPENHO DA UCP (UNIDADE


CENTRAL DE PROCESSAMENTO) É DADA EM TERMOS DO NÚMERO DE
INSTRUÇÕES EXECUTADAS PELO PROGRAMA, OS CICLOS DE CLOCK
MÉDIOS POR INSTRUÇÃO (CPI) E A TAXA DE CLOCK, COMO MOSTRADO
ABAIXO.

ONDE, RESPECTIVAMENTE, ATUAM AS ARQUITETURAS RISC E CISC


PARA MELHORAR O DESEMPENHO DA UCP?
A) CPI e número de instruções

B) Número de instruções e CPI

C) Taxa de clock e CPI

D) Número de instruções e taxa de clock

E) Número de instruções, CPI e taxa de clock

2. POR QUE A ARQUITETURA VON NEUMANN TENDE A SER MAIS


LENTA DO QUE A ARQUITETURA HARVARD?

A) Porque não pode acessar a memória de programa e dados simultaneamente.

B) Porque é do modelo CISC.

C) Porque não é apropriada para usar pipelining.

D) Porque envia dados para processamento na ALU em duas etapas.

E) Porque é do modelo RISC.

GABARITO

1. A equação clássica de desempenho da UCP (Unidade Central de Processamento) é


dada em termos do número de instruções executadas pelo programa, os ciclos de clock
médios por instrução (CPI) e a taxa de clock, como mostrado abaixo.

Onde, respectivamente, atuam as arquiteturas RISC e CISC para melhorar o desempenho


da UCP?

A alternativa "A " está correta.

A arquitetura RISC atua na simplificação das instruções, diminuindo o tempo de execução de


cada instrução e atuando, portanto, no CPI. A arquitetura CISC atua na construção de
instruções mais complexas, diminuindo com isso o número de instruções para realizar um
programa.

2. Por que a arquitetura von Neumann tende a ser mais lenta do que a arquitetura
Harvard?

A alternativa "A " está correta.

Os computadores projetados com a arquitetura Harvard são capazes de executar um programa


e acessar dados de forma independente e, portanto, simultaneamente. Já a arquitetura von
Neumann não pode acessar a memória de programa e memória de dados simultaneamente,
sendo suscetível a gargalos e tendo o desempenho do sistema afetado por isso.

MÓDULO 4

 Identificar microcontroladores, com base nas famílias e tipos existentes no mercado

NÚMERO DE BITS EM
MICROCONTROLADORES
Um microcontrolador de n bits possui uma ALU (Unidade Lógica e Aritmética) capaz de
processar operandos com n bits de cada vez. Ou seja, seus registradores são de n bits e
podem manipular n bits por vez. Normalmente, o microcontrolador também terá n bits de
barramento de dados e n bits de largura para endereçamento de memória, mas isso não é
verdadeiro para todos os casos.


SAIBA MAIS
Considerando um microcontrolador de 8 bits, temos um intervalo que varia de 0 a 255 para um
inteiro sem sinal e de -128 a 127 para um inteiro com sinal. Adicionar ou subtrair números
dentro desse intervalo é bastante simples e pode ser feito em um ciclo de processamento. No
entanto, quando o operando fornecido ultrapassa o intervalo da ALU, ainda é possível, mas o
processo fica um pouco mais complexo.

Digamos que gostaríamos de adicionar 640 a 150. O primeiro operando (640) está além da
capacidade de uma ALU de 8 bits. Então, ao invés de obter o resultado em apenas um ciclo de
processamento, ele levará mais tempo, já que somente 8 bits podem ser processados por vez
pela ALU.

 COMENTÁRIO

O programador precisa quebrar os dados para o número maior. Portanto, nos


microcontroladores de 8 bits, números maiores precisam ser processados no software. Nesse
caso, até mesmo números de 32 bits são possíveis. A mesma operação pode ser realizada em
apenas um ciclo de processamento para um microcontrolador de 16 bits.

A maioria dos microcontroladores de 8 bits tem um contador de programa de 16 bits. Isso


significa que ele pode endereçar no máximo 64 kBytes de memória. Para muitas aplicações
embutidas, este número é suficiente, o que permite o uso de microcontroladores de 8 bits
ainda em larga escala.

ARQUITETURAS DE 8 BITS VERSUS 16 E 32


BITS
Além da vantagem de maior desempenho na realização de cálculos e transferências de dados
mais rápidas, quais são as vantagens de trabalhar com um microcontrolador que possui uma
largura de barramento maior?

Microcontroladores com larguras de barramento de dados maiores desfrutam de maior


desempenho em termos de operações mais rápidas, geralmente ferramentas de
desenvolvimento mais poderosas, mais recursos e melhor eficiência de energia. Em geral,
larguras de barramento menores limitam o desempenho em troca de um pequeno benefício de
custo para o orçamento de um projeto.

 Figura 16: Foto da placa da plataforma de prototipagem eletrônica de hardware Arduino


Due, baseada na CPU Atmel ARM Cortex-M3. É a primeira placa Arduino baseada em um
microcontrolador de núcleo ARM de 32 bits. Fonte: Shutterstock.

O número de ciclos aumenta conforme a largura do barramento diminui: Larguras de bits


menores requerem mais ciclos para completar cálculos maiores. Assim, leva mais ciclos para
um microcontrolador de 8 bits completar um grande cálculo do que os microcontroladores com
uma largura de barramento de dados de 16 bits. O uso de um microcontrolador de 32 bits
pode reduzir ainda mais os ciclos computacionais.

Além da velocidade na conclusão de cálculos e na taxa de transferência de dados, se houver


uma interrupção ou falha no meio de uma transferência, o microcontrolador de 8 bits tem uma
chance maior de não concluir a tarefa, com vários ciclos necessários, em comparação com um
microcontrolador de 32 bits que conclui a mesma tarefa em um ciclo.

CUSTO

Microcontroladores de 8 bits ainda prevalecem e, em algumas aplicações, é a opção


computacional mais barata em relação ao custo do chip. No entanto, os chips
microcontroladores de 32 bits podem ser tão baratos quanto alguns chips de 8 bits. Quando
cortar centésimos de centavo é importante, como em produtos de alto volume, a decisão será
tomada com base nos requisitos mínimos do projeto que são atendidos pelo chip mais barato.
Pode não ser uma consideração para produtos preparados para no futuro adicionar mais
recursos.

 COMENTÁRIO

Com relação aos conjuntos de habilidades, uma vez que os engenheiros dominam a curva de
aprendizado para dispositivos de 32 bits, o valor se estende a um alcance mais amplo em
aplicativos. O escopo de um microcontrolador de 8 bits é significativamente limitado em
relação aos microcontroladores de 32 bits.

Os custos de mão de obra também podem ser menores trabalhando com um microcontrolador
de 32 bits, à medida que mais opções, recursos, ferramentas e um corpo maior de código
existente se desenvolvem em torno do ecossistema de 32 bits. A tecnologia de ponta não
evolui mais em torno dos 8 bits.

TAMANHO DO CÓDIGO

Quanto maior a largura, mais denso será o código. Uma redução de 30% no tamanho do
código é uma estimativa aproximada do benefício que o código escrito para 32 bits oferece em
relação ao código de 8 bits.

 ATENÇÃO

Programar com 32 bits é muito mais desafiador em código assembly do que em 8 bits, é claro,
mas as ferramentas de desenvolvimento modernas permitem que os engenheiros trabalhem
em C/C++, uma linguagem frequentemente portátil entre arquiteturas e com cadeias de
ferramentas e IDEs semelhantes entre arquiteturas.
No entanto, os microcontroladores de 8 bits podem ser codificados com mais eficiência com o
código de montagem para engenheiros que dedicam tempo para pensar na eficiência das
operações.

RECURSOS

Existem mais recursos para aproveitar as arquiteturas de maior largura de barramento de


dados. A escala de recursos pode aumentar significativamente com dispositivos de 32 bits,
com uma taxa muito maior de integração de periféricos conforme a largura de bits aumenta. O
desempenho em tempo real é mais fácil de alcançar em dispositivos de 32 bits com acesso
direto à memória por ignorar totalmente a CPU.

No entanto, há uma seleção maior de microcontroladores de 8 bits disponível do que


microcontroladores de 32 bits. Parte do motivo para isso é que as arquiteturas de 8 bits existem
há muito mais tempo do que as arquiteturas de 16 e 32 bits.

Muitos microcontroladores de 8 bits são escolhidos principalmente com base no custo por
microcontrolador, reutilização de código legado e familiaridade pessoal com arquiteturas de 8
bits. Os microcontroladores de 8 bits podem realizar o trabalho com requisitos mínimos, mas o
conjunto de habilidades necessárias para desenvolver produtos com microcontroladores de 8
bits é diferente, mais perceptível quando se trabalha no nível mais baixo de programação, o
código em assembly. O código em assembly pode ser escrito com muito mais eficiência do que
um compilador pode produzir em programação de nível superior em C/C ++, por exemplo.

Em resumo, a decisão de trabalhar em 8 bits ou 16 e 32 bits depende do que a aplicação


exige, do custo final do microcontrolador e da mão de obra de desenvolvimento, da
necessidade de preparar os recursos da aplicação para o futuro e quanto tempo se possui para
pôr o produto no mercado.

Muitos desenvolvedores são fãs fervorosos de microcontroladores de 8 bits e podem fazer


coisas incríveis com eles. Produtos de muito alto volume levarão em direção à opção de
dispositivo de menor custo, independentemente dos custos de mão de obra. No final das
contas, a escolha depende de compensações. Como uma decisão para o desenvolvimento
pessoal, é aconselhável estar familiarizado com ambos.

A visibilidade das operações centrais de um microcontrolador no nível de 8 bits oferece uma


experiência educacional que muitas vezes é escondida por camadas de abstração com 32 bits.
No entanto, os lugares que você irá com habilidades de desenvolvimento de 32 bits superam o
que os de 8 bits podem oferecer quando você considera a complexidade crescente da
tecnologia moderna.

Microcontroladores de 8 bits têm sido o carro-chefe da indústria há algumas décadas, mas é


esperado que em alguns anos sejam ultrapassados pelos de 32 bits, como pode ser visto na
Figura 17. Os microcontroladores de 32 bits possuem uso crescente em aplicações como a
automobilística e Internet das Coisas.

Fonte: Sharma, 2017


 Figura 17 – Mercado de microcontroladores por tipo. Fonte: Sharma, 2017.
ARQUITETURAS DE 8 BITS VS. 16 E 32 BITS

FAMÍLIAS PRINCIPAIS DE
MICROCONTROLADORES

MICROCONTROLADOR 8051
O conjunto de microcontroladores mais universalmente empregado vem da família 8051 de
arquitetura CISC. Microcontroladores 8051 ainda persistem como escolha para um grande
grupo de entusiastas e especialistas. Ele foi originalmente inventado pela Intel em 1981. Possui
variantes, mas basicamente se oferece com 8 bits, 4kB de memória ROM (Espaço
programável no chip) , 128 bytes de espaço RAM e, se desejado, 64kB de memória externa
que pode ser associada ao 8051.

Existem quatro portas paralelas de 8 bits que são facilmente programáveis e endereçáveis. Um
oscilador de cristal integrado no microcontrolador possui frequência de cristal de 12MHz. No
microcontrolador, existe uma porta serial de entrada/saída. Dois temporizadores de 16 bits
também são incorporados a ele; esses temporizadores podem ser empregados como
temporizadores para o funcionamento interno, bem como para o funcionamento externo.

O microcontrolador é composto por 5 fontes de interrupção, nomeadamente:

Interrupção da porta serial.

Interrupção do temporizador 1.

Interrupção externa 0.

Interrupção do temporizador 0.

Interrupção externa 1.

O modo de programação deste microcontrolador inclui GPRs (Registros de uso geral) ,


SFRs (Registros de função especial) e SPRs (Registradores de propósito especial) .

MICROCONTROLADORES AVR

O microcontrolador AVR foi desenvolvido na Atmel Corporation. Os microcontroladores AVR


são arquiteturas Harvard RISC modificadas com memórias separadas para dados e programa
e com velocidade alta quando comparada com 8051 e PIC. O AVR significa Advanced Virtual
RISC. A popular plataforma Arduino emprega microcontroladores AVR.

Diferenças entre 8051 e AVR


8051 são microcontroladores de 8 bits baseados na arquitetura CISC, os AVRs são
microcontroladores de 8 bits baseados na arquitetura RISC.

8051 consome mais energia do que o microcontrolador AVR.

Em 8051, podemos programar mais facilmente do que o microcontrolador AVR.

A velocidade do AVR é maior do que a do microcontrolador 8051.

Classificação dos controladores AVR

Os microcontroladores AVR são classificados em três tipos:

Menos memória, tamanho pequeno, adequado apenas para aplicações


TinyAVR
mais simples.

São os mais populares, com boa quantidade de memória (até 256 kB),
MegaAVR maior número de periféricos embutidos e adequados para aplicações
moderadas a complexas.

Usado comercialmente para aplicações complexas, que requerem


XmegaAVR
grande memória de programa e alta velocidade.


Atenção! Para visualização completa da tabela utilize a rolagem horizontal

Dentro da família MegaAVR está o ATmega328 de 8 bits, comumente usado em muitos


projetos e sistemas autônomos, nos quais é necessário um microcontrolador simples, de baixo
consumo e baixo custo. A implementação mais comum desse chip está na popular plataforma
de desenvolvimento Arduino, nos modelos Arduino Uno e Arduino Nano. Alguns dos recursos
do ATmega328 de 28 pinos são:

Memória de programa flash de 32 kbytes.

Memória de dados EEPROM de 1 kbytes.


Memória de dados SRAM de 2 kbytes.

23 Pinos de E/S.

Dois temporizadores de 8 bits.

Conversor A/D.

PWM de seis canais.

Porta serial USART.

Suporta oscilador externo de até 20MHz.

MICROCONTROLADORES PIC

Peripheral Interface Controller (PIC) é fornecido pela Microchip Technology a partir de 1993.
Esses microcontroladores foram extremamente bem-sucedidos dentre os de 8 bits.

Fonte:Shutterstock
 Figura 18: Escritórios da Microchip Technology. Fonte: Shutterstock.

A principal causa por trás disso é que a Microchip tem atualizado constantemente a arquitetura
do dispositivo e incluído muitos periféricos para atender às necessidades dos desenvolvedores.

 COMENTÁRIO

Microcontroladores PIC são muito populares entre amadores e na indústria, causa de ampla
disponibilidade, baixo custo, grande base de usuários e capacidade de programação serial.

Existem muitos PICs, iniciados com PIC16F84 e PIC16C84. Mas esses eram os únicos PICs
flash acessíveis. A Microchip lançou depois chips flash com tipos atraentes entre 8 e 16 bits,
como 16F628, 16F877 e 18F452. O 16F877 tem cerca de duas vezes o preço do antigo 16F84,
mas tem oito vezes mais espaço para código, muito mais RAM, muito mais pinos de E/S, uma
UART e conversor A/D.

Características principais do PIC16F877:

CPU RISC de alto desempenho.

Até 8K x 14 palavras de memória de programa FLASH.

35 Instruções (codificação de comprimento fixo de 14 bits).

368 × 8 bytes de memória de dados baseada em RAM estática

Até 256 x 8 bytes de memória de dados EEPROM.

Capacidade de interrupção (até 14 fontes).

Três modos de endereçamento (direto, indireto, relativo).

Arquitetura de memória Harvard.

Modo SLEEP de economia de energia.


Ampla faixa de tensão de operação: 2,0V a 5,5V.

MICROCONTROLADORES ARM

ARM é o nome de uma empresa que projeta a arquitetura de microprocessadores, licenciando


os produtos para vários fabricantes. O microcontrolador ARM é uma arquitetura RISC genuína
de 32 bits. São diversas famílias de ARM. A série de núcleos ARM Cortex engloba uma ampla
gama de opções de desempenho escaláveis, oferecendo aos projetistas uma grande variedade
de opções e a oportunidade de usar o núcleo de melhor ajuste para sua aplicação, sem ser
forçado a uma solução de tamanho único. O portfólio do ARM Cortex é dividido em três
principais categorias:

Fonte:Shutterstock
 Figura 19: Sede no Vale do Silício da ARM. Fonte: Shutterstock.

Cortex- Núcleos de processador de aplicações para sistemas de alto desempenho,


A como smartphones e tablets.
Cortex- Núcleos de alto desempenho para aplicações em tempo real.
R

Cortex- Núcleos microcontroladores para uma ampla gama de aplicações


M embutidas.


Atenção! Para visualização completa da tabela utilize a rolagem horizontal

O ARM é um dispositivo sensível ao custo e de alto desempenho que tem sido usado em uma
ampla gama de aplicações, como sistemas de controle de instrumentos industriais, redes e
sensores sem fio e sistemas automotivos.

MICROCONTROLADORES MSP

MSP significa Mixed Signal Processor e é a família da Texas Instruments. Construído em torno
de uma CPU de 16 bits, o MSP foi projetado para instruções incorporadas de baixo custo e
baixíssima dissipação de energia, a característica principal do microcontrolador.

Outras vantagens estão diretamente relacionadas ao barramento de dados de 16 bits e aos


sete modos de endereçamento e ao conjunto de instruções reduzido, o que permite um código
de programação mais curto e denso para desempenho rápido.

MICROCONTROLADOR ESP32

Criado pela Espressif Systems, o ESP32 é um sistema de baixo custo e baixo consumo de
energia em um chip com recursos de Wi-Fi e Bluetooth de modo duplo. Em seu coração há um
microprocessador Tensilica Xtensa LX6 de núcleo único ou dual com uma frequência de até
240MHz. O ESP32 é altamente integrado com antena embutida, amplificador de potência,
amplificador de recepção de baixo ruído, filtros e módulos de gerenciamento de energia.
 Figura 20: Foto de um microcontrolador ESP32 usado em projetos DIY. Fonte: Shutterstock.

Projetado para dispositivos móveis, eletrônicos vestíveis e aplicativos de Internet das Coisas, o
ESP32 atinge um consumo de energia ultrabaixo por meio de recursos de economia de
energia, modos de energia múltiplos e dimensionamento dinâmico de energia.

VERIFICANDO O APRENDIZADO

1. ANALISE AS AFIRMAÇÕES SOBRE O MICROCONTROLADOR PIC


ABAIXO:

O PIC É UM MICROCONTROLADOR COM CONJUNTO DE


INSTRUÇÕES CISC.

O PIC É UM MICROCONTROLADOR COM ARQUITETURA VON


NEUMANN.

O PIC É UM MICROCONTROLADOR COM ARQUITETURA HARVARD.


O PIC É UM MICROCONTROLADOR COM CONJUNTO DE
INSTRUÇÕES RISC.

ESTÃO CORRETAS APENAS AS AFIRMATIVAS:

A) I e II

B) I e III

C) II e IV

D) II e III

E) III e IV

2. SE UM MICROCONTROLADOR É DITO DE 16 BITS, SIGNIFICA QUE


ESTE POSSUI:

A) 16 bits de barramento.

B) 16 bits de largura para endereçamento de memória.

C) Uma Unidade Lógica Aritmética capaz de processar operandos com 16 bits de cada vez.

D) Um contador de programa de 16 bits.

E) Capacidade de armazenar apenas 16 bits.

GABARITO

1. Analise as afirmações sobre o microcontrolador PIC abaixo:

O PIC é um microcontrolador com conjunto de instruções CISC.

O PIC é um microcontrolador com arquitetura von Neumann.

O PIC é um microcontrolador com arquitetura Harvard.

O PIC é um microcontrolador com conjunto de instruções RISC.


Estão corretas apenas as afirmativas:

A alternativa "E " está correta.

Como a maioria dos microcontroladores, o PIC usa RISC porque esta é mais adequada para a
construção de arquiteturas mais simples e de menor custo. Com o sentido de buscar melhor
desempenho, o PIC usa arquitetura Harvard, que permite a um processador acessar as
memórias de dados e programa simultaneamente.

2. Se um microcontrolador é dito de 16 bits, significa que este possui:

A alternativa "C " está correta.

Microcontrolador de X bits refere-se à capacidade de processamento da Unidade Lógica


Aritmética (ALU) de um microcontrolador. Em termos simples, é o número de bits de dados que
uma ALU pode processar por vez. Assim, um microcontrolador de 16 bits possui uma ALU de
16 bits. Se o registro de dados de qualquer microcontrolador é maior ou menor que 16 bits,
eles são feitos de 16 bits por segmentação ou arredondamento antes de serem processados
na ALU.

CONCLUSÃO

CONSIDERAÇÕES FINAIS
Discutimos os motivos que levaram ao desenvolvimento e à grande aceitação dos
microcontroladores. Além disso, verificamos por que estes são mais eficientes para as
aplicações de controle e monitoração em sistemas embarcados, integrando diversos
dispositivos.

Avaliamos as principais arquiteturas utilizadas, com suas vantagens e desvantagens,


considerando o conjunto de instruções e a forma de acesso à memória. Indicamos também as
principais famílias de microcontroladores e como estas se caracterizam dentro do universo de
arquiteturas existentes.
REFERÊNCIAS
MONK, S. Programação com Arduino: Começando com Sketches. 1. ed. Porto Alegre:
Bookman, 2017.

OLIVEIRA, A. S. de; ANDRADE, F. S. de. Sistemas Embarcados ‒ Hardware e Firmware na


Prática. 1. ed. São Paulo: Érica, 2010.

PECKOL, J. K. Embedded Systems: A Contemporary Design Tool.  1. ed. New Jersey, USA:
Wiley, 2019.

SHARMA, K. Microcontroller Market by Product Type (8-Bit, 16 Bit, and 32 Bit) and
Application (Industrial, Consumer Goods, Automotive, Communication, and Computers)
‒ Global Opportunity Analysis and Industry Forecast, 2014-2022. In: Premium. Publicado em
meio eletrônico em: jan. 2017

ZANCO, W. da S. Microcontroladores PIC18 com Linguagem C ‒ Uma Abordagem Prática e


Objetiva. São Paulo: Érica, 2010.

EXPLORE+

A descrição do desenvolvimento de um sistema de automação inteligente baseado no


microcontrolador Atmega 328p, no artigo Controle inteligente de acesso e eletro
eletrônicos com microcontrolador Atmega 238P objetivando a eficiência energética.
Como a Lógica Programável tem evoluído com dispositivos reconfiguráveis, no artigo
FPGA para todos: Um projeto para a disseminação da tecnologia de lógica programável.

CONTEUDISTA
Marcos Santana Farias

 CURRÍCULO LATTES

Você também pode gostar