Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Sistemas Embarcados
Material Teórico
Responsável pelo Conteúdo:
Prof. Me. Tales Gouveia Fernandes
Revisão Textual:
Prof.ª Esp. Kelciane da Rocha Campos
Introdução aos Sistemas Embarcados e Microcontrolados 
• Definição de Sistemas Embarcados;
• Componentes eletrônicos;
• Arquitetura de Sistemas Embarcados;
• Definição de Firmware;
• Tendências e Aplicações de Sistemas Embarcados.
• Compreender a origem e a evolução dos sistemas embarcados;
• Aprender sobre a ciência e a tecnologia de um microcontrolador;
• Fundamentar a composição e aplicação de um sistema embarcado microcontrolado;
• Estudar defi nições e conceitos que regem os sistemas embarcados;
• Perceber o macro e micro que compõem os sistemas embarcados.
OBJETIVOS DE APRENDIZADO
Introdução aos Sistemas 
Embarcados e Microcontrolados 
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem 
aproveitado e haja maior aplicabilidade na sua 
formação acadêmica e atuação profissional, siga 
algumas recomendações básicas:
Assim:
Organize seus estudos de maneira que passem a fazer parte 
da sua rotina. Por exemplo, você poderá determinar um dia e 
horário fixos como seu “momento do estudo”;
Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma 
alimentação saudável pode proporcionar melhor aproveitamento do estudo;
No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos 
e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você tam-
bém encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão sua 
interpretação e auxiliarão no pleno entendimento dos temas abordados;
Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus-
são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o 
contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e de 
aprendizagem.
Organize seus estudos de maneira que passem a fazer parte 
Mantenha o foco! 
Evite se distrair com 
as redes sociais.
Mantenha o foco! 
Evite se distrair com 
as redes sociais.
Determine um 
horário fixo 
para estudar.
Aproveite as 
indicações 
de Material 
Complementar.
Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma 
Não se esqueça 
de se alimentar 
e de se manter 
hidratado.
Aproveite as 
Conserve seu 
material e local de 
estudos sempre 
organizados.
Procure manter 
contato com seus 
colegas e tutores 
para trocar ideias! 
Isso amplia a 
aprendizagem.
Seja original! 
Nunca plagie 
trabalhos.
Unidade Introdução aos Sistemas Embarcados e Microcontrolados 
Introdução
Nesta unidade, serão apresentados conceitos e definições gerais sobre sistemas 
embarcados, apresentando-se elementos básicos da eletrônica, os quais integra-
dos fundamentam a arquitetura de hardware do sistema. 
A definição de firmware complementa e conecta cada componente eletrônico 
do hardware, concluindo a visão geral e composição dos sistemas embarcados. 
Serão também expostas aplicações e soluções que empregam os sistemas em-
barcados, as quais ilustram e nos fazem compreender a importância e utilidade 
desta tecnologia em nosso cotidiano.
Definição de Sistemas Embarcados
Um sistema embarcado ou sistema embutido é um sistema microcontrolado, 
no qual suas instruções estão completamente encapsuladas e são dedicadas ao 
dispositivo ou sistema que controla. Sua composição eletrônica correlaciona-se aos 
computadores pessoais convencionais, porém seu projeto é dimensionado e limi-
tado às exigências da demanda à qual irá atender, ou seja, não há necessidade de 
um esboço subdimensionado nem superdimensionado para o fim a que se destina.
Ao que tudo indica, não é fácil definir características exclusivas para sistemas 
embarcados, porém é possível listar importantes definições.
•	 Um subsistema de um aparelho ou máquina: tais sistemas são incorpora-
dos em dispositivos ou máquinas mais sofisticadas, como em um sistema de 
gestão do motor de um carro ou um microprocessador de um equipamento. 
Dada essa definição, pode-se considerar um computador pessoal comum sen-
do composto por vários sistemas embarcados. Além do que a unidade central 
de processamento (do inglês CPU - central processing unit), memória princi-
pal, controladores de barramento, controladores de disco, interfaces de rede e 
controlador de vídeo são módulos definitivamente embarcados de um compu-
tador pessoal.
•	 Uma aplicação dedicada: em sua maioria, sistemas embarcados são proje-
tados para uma tarefa específica, tal como monitorar a temperatura de um 
sensor ou controlar uma válvula. Porém, há casos de dispositivos eletrônicos 
serem multitarefas, tal qual um smart phone, cuja utilização não é apenas 
de fazer ou receber ligações, mas também acessar a internet, tirar fotos etc. 
Tendo o crescimento e a sofisticação dos dispositivos embarcados, fica difícil 
distinguir o que é exclusivamente embarcado do que é o sistema geral.
•	 Baixo consumo de energia: muitos sistemas embarcados são alimentados 
por uma bateria, assim precisam ter controle e equilíbrio no consumo de ener-
8
9
gia. Tais sistemas podem ser estáticos ou móveis, no entanto ambos não es-
tão ao alcance de uma fonte de energia ilimitada. Porém, há casos em que a 
performance no processamento de informação do sistema deve prevalecer, 
consequentemente o consumo de energia será alto.
•	 Baixo processamento e memória: esta definição está na contramão do exem-
plo anterior, cujo nível de processamento é prioridade. Contudo, há hardwares 
comerciais que reduziram seu desempenho de processamento para tornar-se 
uma alternativa viável financeiramente de solução.
•	 Sistemas em tempo real: são sistemas embarcados cujo objetivo é responder 
a eventos dentro de um intervalo específico de tempo ou o menor possível. 
Sistemas em tempo real em sua grande maioria são sempre dedicados apenas 
a uma aplicação, mantendo a característica de um sistema embarcado. No en-
tanto, nem todo sistema embarcado suporta aplicações em tempo real.
•	 Sistema operacional exclusivo: esta característica era uma verdade absoluta 
no passado, quando os sistemas embarcados tinham limite de processamento 
e memória. Ainda é considerada uma verdade parcial, pois com o desenvol-
vimento de tecnologias de processamento e armazenamento sistemas opera-
cionais utilizados em plataformas usuais passaram a poder ser utilizados em 
sistemas embarcados. O kernel Linux para sistemas embarcados necessitará 
ser customizado dependendo da plataforma alvo de utilização (isso já é comum 
para qualquer sistema computacional). Para dispositivos que não possuem uni-
dades de gerência de memória, existe uma ramificação do kernel Linux cha-
mada uClinux. Sistemas que precisam suportar aplicações em tempo real irão 
precisar de um kernel com suporte a tempo real. A distribuição do kernel 
Linux chamada vanilla não suporta sistemas em tempo real. Porém, há uma 
distribuição chamada RTLinux, a qual possui um microkernel com suporte a 
sistemas em tempo real.
•	 Interação com o mundo físico: há um ramo da computação embarcada que 
se dedica à integração da parte digital com a parte analógica, expandindo, 
assim, o domínio em que se utilizam sistemas embarcados.
•	 Hardware com modulo único: um sistema computacional completo pode 
ser construído em uma única placa de circuito impresso (PCB - printed circuit 
board). As PCBs podem incluir e integrar em um único módulo CPU, memó-
rias e periféricos. Tais sistemas são chamados de computadores de placa única 
(SBCs - single board computers) e são bem adaptáveis às plataformas de sis-
temas embarcados. É possível ir além da tecnologia de módulo único quando 
é possível redimensionar e direcionar todo esse sistema computacional em um 
único chip (SoC - system on a chip). Esse formato também se refere, por si só, 
aos sistemas embarcados.Como se pode perceber, a distinção entre um sistema embarcado e um sistema 
computacional usual não é uma das tarefas mais fáceis e claras. O sistema chamado 
Raspberry Pi é um exemplo, o qual possui várias das características citadas ante-
9
Unidade Introdução aos Sistemas Embarcados e Microcontrolados 
riormente e também suporta muitas aplicações embarcadas, porém ainda é muito 
utilizado como um computador convencional (HOLT e HUANG, 2018).
Tendo como premissa algumas das características principais que definem siste-
mas embarcados, as quais foram citadas anteriormente, abaixo seguem a catego-
rização e classificação dos sistemas embarcados levando-se em conta os critérios 
funcionais e requisitos de performance.
•	 Sistemas embarcados autônomos: um sistema embarcado autônomo fun-
ciona por si mesmo, ou seja, é um sistema independente. Também utiliza 
suas portas de entrada tanto analógicas como digitais para calibrar, conver-
ter, processar os dados recebidos, e o resultado é enviado para suas portas de 
saída, as quais controlam ou direcionam os dados a outros dispositivos pluga-
dos. Dispositivos de entretenimento, tais como video games, reprodutores de 
MP3, câmeras digitais e micro-ondas são sistemas típicos que se encaixam 
nessa categoria.
•	 Sistemas embarcados em rede: os sistemas embarcados se conectam entre 
si através de interfaces de rede, além do compartilhamento de acesso a recur-
sos e dados. A conexão de rede pode ser local (LAN - local area network), 
expandida (WAN - wide area network) ou através da internet. Essa conexão 
pode ser via cabo ou até mesmo sem fio, sendo que os sistemas embarcados 
também podem utilizar ambos os meios de conexão. Um sistema residencial de 
segurança é um exemplo que utiliza uma rede local para se conectar aos diver-
sos sensores, como detectores de movimento, sensores de presença, sensores 
para iluminação ou detectores de fumaça, além de utilizarem o mesmo proto-
colo de comunicação TCP/IP. Neste exemplo, há a possibilidade de se integrar 
todo o sistema de controle de sensores em uma base web rodando o protocolo 
HTTP, o qual terá acesso às câmeras e aos status dos sensores via browser 
de internet. Esta área dos sistemas embarcados está em grande expansão e 
desenvolvimento, pois a mobilidade e a rápida disponibilidade são esperadas 
por usuários, e soluções estão sendo um dos principais desafios para a área de 
sistemas embarcados (QIAN, HARING e CAO, 2009).
Embora os sistemas embarcados tratados até o momento tenham recebido ca-
racterísticas e classificação por áreas, esta divisão não é absoluta. Um subsistema 
conectado à internet pode ser de tempo real ou não. Talvez um sistema em tempo 
real possa ser autônomo ou depender de conectividade à internet. A questão mais 
importante está entre a característica única que diferencia os vários tipos de siste-
mas, sendo esta levada em conta no momento do desenvolvimento e implementa-
ção do projeto do sistema embarcado.
Antes de ilustrar a arquitetura básica de um sistema embarcado, a qual com-
plementará a definição e caracterização do mesmo feita até o momento, serão 
expostos alguns conceitos básicos de componentes eletrônicos que compõem a 
célula central, no caso o microcontrolador.
10
11
Componentes eletrônicos
Um sistema embarcado nada mais é que a composição de componentes eletrôni-
cos cuja compreensão de alguns contribuirá e facilitará o desenvolvimento das apli-
cações, uma vez que são esses componentes que irão ser ordenados e configurados 
para as funcionalidades do sistema embarcado como um todo.
Antes de abordar o componente fundamental do microcontrolador, o transistor, 
será apresentado um breve resumo da física dos semicondutores.
S emicondutores são e struturas cristalinas, cujos átomos compartilham seus elé-
trons de valência com os átomos vizinhos. Uma estrutura cristalina bidimensional 
simples está ilustrada na Figura 1, a qual mostra o compartilhamento dos quatro 
elétrons de valência que todo átomo de silício faz com os átomos vizinhos. Este é 
um semicondutor intrínseco, ou seja, que não possui nenhuma impureza.
Elétron
Si
Si
Si
Si
Si
Si
Si
Si
Si
Figura 1 – Estrutura cristalina bidimensional simples.
Fonte: BINDAL, 2017
No entanto, se um tipo diferente de átomo, tal como arsênio, com cinco elé-
trons na banda de valência, for adicionado à estrutura de silício intrínseca, a es-
trutura cristalina da Figura 1 irá mudar. Dessa forma, quatro elétrons de valência 
serão compartilhados com os dos vizinhos de silício e o quinto será liberado da 
camada de valência, como é ilustrado na Figura 2. Com a saída do elétron do 
átomo de arsênio, a lacuna torna-se positiva devido ao próton que está sobrando. 
Esta estrutura cristalina é chamada de semicondutor extrínseco tipo N, devido à 
estrutura conter elétrons extras e carga negativa.
11
Unidade Introdução aos Sistemas Embarcados e Microcontrolados 
Região com
carga positiva
Elétron livre
Si
Si
Si
Si
As
Si
Si
Si
Si
Figura 2 – Semicondutor extrínseco tipo N
Fonte: BINDAL, 2017
Se um átomo com três elétrons, tal como o boro, for adicionado ao semicondu-
tor intrínseco em vez do arsênio, o átomo de boro irá compartilhar com os vizinhos 
silício todos os três elétrons de valência. Assim, na estrutura final haverá um buraco 
na lacuna do boro devido à ausência de elétrons, como mostrado na Figura 3. Esse 
arranjo é chamado de semicondutor do tipo P, no qual a lacuna do boro é carregada 
negativamente quando o buraco é ocupado pelo elétron livre.
Região com
carga negativa
Elétron livre
Si
Si
Si
Si
B
Si
Si
Si
Si
Figura 3 – Semicondutor do tipo P
Fonte: BINDAL, 2017
12
13
A Figura 4 mostra o diagrama simplificado de banda de energia dos três tipos 
de semicondutores. Um elétron da banda de valência, EV, precisa de energia su-
ficiente para transitar da banda de condução, EC, para se tornar um elétron livre 
na estrutura cristalina. Esta diferença de energia entre EC e EV é chamada banda 
de gap de energia, EG. Também existe um nível virtual de energia chamado nível 
Fermi, EF, no qual há 50% de probabilidade de encontrar um elétron. No semi-
condutor de tipo N, a probabilidade de encontrar um elétron livre é maior. Porém, 
EF é mais próximo de EC. No entanto, a probabilidade decresce se o semicondu-
tor for do tipo P, o qual não possui muitos elétrons livres, de maneira que EF se 
aproxima de EV.
EC EC EC
EF
EF
V
FE
E VE VE
Intrínsico Tipo N Tipo P
Figura 4 – Banda de energia de três tipos de semicondutores
Fonte: BINDAL, 2017
Quando semicondutores do tipo N e P estão unidos, inicia-se o fluxo de elétrons do semicon-
dutor tipo N para o tipo P até que o nível de energia de Fermi se iguale em ambos os lados e 
a estrutura se torne estável. Assim, ao aplicar uma tensão direta na junção PN, estabelece-se 
um fluxo contínuo de corrente. Porém, ao aplicar uma tensão reversa, o fluxo de elétrons é 
cessado. Este processo define o funcionamento básico do diodo, um componente similar ao 
transistor, o qual é construído por dois cristais em vez de três dos transistores.
Ex
pl
or
Tendo como base a física dos semicondutores e por consequência a física dos 
componentes eletrônicos presentes em sistemas embarcados, será apresentado o 
componente importante na evolução dos sistemas embarcados e dos sistemas com-
putacionais de modo geral, o transistor.
Considerado uma das maiores invenções do século passado, o transistor foi 
idealizado pelos pesquisadores da Bell Lab’s em dezembro de 1947. Esse dispo-
sitivo tem uma função muito semelhante à das válvulas, a de controlar o fluxo de 
corrente, sendo amplamente utilizado na telefonia e no rádio.
Entre as vantagens, percebe-se o tamanho reduzido em relação às válvulas. 
Não é necessário vácuo, nem invólucro de vidro. Sendo de ação instantânea, não 
gera ruídos nem atraso por aquecimento (quando comparado às válvulas). Os tran-
sistores também funcionam como comutadores (chaves), sem atrasos mecânicoscomo ocorrem nos relés. Essa invenção representou mais um salto tecnológico 
na história. Substituiu definitivamente as válvulas e com isso se tornou possível 
reduzir consideravelmente o tamanho dos produtos eletrônicos.
13
Unidade Introdução aos Sistemas Embarcados e Microcontrolados 
A Figura 5 ilustra bem a evolução da válvula para o transistor, sendo o tama-
nho e espaço em área a principal diferença, tornando possível o desenvolvimento 
da microeletrônica.
Figura 5 – Esquerda - Válvula precursora do transistor. Direita -Transistor
Fonte: OLIVEIRA e ANDRADE, 2010
Após a invenção dos transistores, as implementações de circuitos digitais torna-
ram-se cada vez mais complexas. Com isso, simples calculadoras passaram a ter 
inúmeros transistores. Desta forma, surgiu a necessidade de reduzir a eletrônica 
envolvida, surgindo, assim, o circuito integrado (CI), o qual é exibido na Figura 6.
Figura 6 – Exemplo de Circuito Integrado (CI), encapsulamento de silício e terminais de metal
Fonte: WIKIMEDIA COMMONS
A cada novo CI lançado, a complexidade das aplicações aumentava exponencial-
mente, provocando a rápida evolução de setores industriais e tecnológicos. Logo 
vieram os primeiros microprocessadores, capazes de executar milhões de instru-
ções por segundo.
Os circuitos integrados possuem diversos formatos na indústria eletrônica, de-
nominados de encapsulamentos, devido aos diversos processos de fabricação. Às 
vezes eles são projetados para otimizar o espaço, para facilitar a montagem ou 
até mesmo em razão dos custos.
Com isso, diversos formatos da pastilha de silício e dos terminais (pernas ou pi-
nos) são utilizados, Figura 7. Dentre os mais comuns, existe o formato PDIP, muito 
utilizado para prototipagem rápida e até caseira.
14
15
Figura 7 – Tipos de encapsulamentos de CI. Esquerda - DIP e direita - PLCC, 
encapsulamento de silício e terminais de metal
Fonte: OLIVEIRA e ANDRADE, 2010
Os circuitos impressos foram criados para unir de forma permanente e eficiente 
os circuitos integrados aos diversos outros componentes de um circuito eletrônico, 
tais como capacitores, resistores, indutores. Isso proporcionou a minimização e em 
muitos casos até a substituição do uso de fios para ligar terminais.
As placas de circuito impresso podem ser fabricadas com diversos materiais 
(fibra de vidro, fenolite etc.) e possuem uma ou mais superfícies (faces ou layers) co-
bertas por uma fina película de metal em que são desenhadas as trilhas condutoras, 
as quais representam o circuito. Nas trilhas são fixados os componentes eletrônicos 
pelo processo de soldagem manual ou automatizada. A Figura 8 mostra um exem-
plo de placa com circuito impresso.
Circuito Integrado Capacitor
Diodo
Transistor
Resistor
Figura 8 – Exemplo de placa com circuito impresso
Fonte: OLIVEIRA e ANDRADE, 2010
Para facilitar e automatizar projetos de circuito impresso, utilizam-se softwares 
específicos para o desenho de layouts. É um processo simples, por meio do qual se 
desenha, sem levar em consideração a placa e a disposição dos componentes. Esse 
tipo de circuito é denominado de esquemático (schematic), e a partir dele é gerado 
o layout para a confecção do circuito. Nessa etapa, os softwares usam algoritmos 
de minimização de rotas sem cruzamento de linhas, porém há momentos em que 
ajustes manuais são necessários.
15
Unidade Introdução aos Sistemas Embarcados e Microcontrolados 
Para se compreender melhor o processo de elaboração e execução da construção de um 
circuito impresso, OLIVEIRA e ANDRADE (2010), descrevem no apêndice A um método de 
projeto do esquemático, no B demonstra o projeto do layout e no C apresenta um método 
artesanal de corrosão caseira do circuito impresso.
Ex
pl
or
Arquitetura de Sistemas Embarcados
Após ter uma compressão da definição de sistemas embarcados e um embasa-
mento teórico dos componentes eletrônicos principais que compõem um sistema 
embarcado, iremos para a exposição da arquitetura de um sistema embarcado, ou 
seja, a parte que integra todo o hardware e prepara para a aplicação do software 
utilizar os recursos.
Basicamente, a composição de um sistema embarcado consiste em uma unida-
de de processamento, que é um circuito integrado, fixado a um circuito impresso. 
Como já visto pelas definições, possui a capacidade de processamento de infor-
mações vinda de um software que está sendo processado internamente nessa 
unidade. Ou seja, o software está embarcado na unidade de processamento (de-
nominada de firmware), a qual será detalhada no tópico seguinte.
Para entender como funcionam esses sistemas e a necessidade de utilizá-los, 
é preciso conhecer a forma como trabalham os processadores onde os mesmos 
são armazenados. Os processadores podem ser divididos em duas categorias: mi-
croprocessadores e microcontroladores. Os microprocessadores são circuitos inte-
grados capazes de executar instruções demandadas, agem sob o controle de um 
programa armazenado na memória, executando operações aritméticas, lógica bo-
oleana, além de controlar a entrada e saída de dados, permitindo a comunicação 
com outros dispositivos e periféricos. Os microprocessadores estão presentes em 
sua quase totalidade em computadores pessoais, servidores e mainframes.
Para os microprocessadores, é imprescindível a utilização de outros dispositi-
vos para seu funcionamento, tais como memória e controladores de entrada e 
saída de dados. Desta forma, para determinadas soluções criou-se um sistema de 
processamento, que já incorporasse os dispositivos necessários para seu funcio-
namento, surgindo, assim, os microcontroladores.
O microcontrolador é uma espécie de “minicomputador” ou “computador ema-
penas um chip”, pois em um chip são integrados: processador, memória e funções 
de entrada/saída.
A Figura 9 ilustra através do diagrama da arquitetura de um sistema embarcado 
o encapsulamento dos principais componentes intrínsecos ao microcontrolador e 
como é feita a interação de suas instruções com o ambiente externo.
16
17
Microcontrolador
MemóriaPeriféricos
Conversor D/A
Sensor
Conversor A/D
Ambiente
Firmware
CPU
Atuador
Figura 9 – Exemplo de arquitetura de microcontrolador
O módulo Memória, ilustrado no canto direito superior da Figura 9, é utilizado 
para armazenar as instruções do processador, ou seja, é nesta memória que está 
embarcado o binário do código-fonte desenvolvido, denominado firmware do siste-
ma. Há também a memória utilizada para armazenar dados temporários vindos do 
resultado de processamentos, os quais originam-se dos demais módulos.
Já o módulo periférico, esboçado no canto esquerdo superior da Figura 9, está 
indicando a utilização de barramentos de comunicação para indicar entrada ou sa-
ída de dados. Há possibilidade de conectar neste módulo teclados e displays como 
periféricos de entrada e saída respectivamente.
É na CPU que se concentra todo o controle e processamento dos dados do 
sistema embarcado, assim a arquitetura e o desenvolvimento de um projeto ini-
ciam-se identificando qual o melhor custo benefício de CPU a ser utilizado para 
a solução proposta.
Na parte inferior do diagrama da Figura 9, estão os módulos de conversão de 
sinais analógicos e digitais. Estes são responsáveis por receber ou acionar dispositi-
vos externos, podendo ser ou não outro microssistema embarcado, os quais serão 
tratados pelas instruções do firmware.
Pela ilustração do diagrama, percebe-se que sistemas embarcados não são fle-
xíveis quanto a hardware e software, se comparados a sistemas computacionais 
pessoais. Porém, uma das únicas flexibilidades permitidas está relacionada à neces-
sidade de um upgrade de novas versões. Por sua vez, estas podem estar relaciona-
das à reprogramação do firmware ou até adicionar extensões de hardware, as quais 
complementem as atuações ou recepções de sinais externos.
17
Unidade Introdução aos Sistemas Embarcados e Microcontrolados 
Definição de Firmware
Ter um hardwaremuito bem projetado e montando não é suficiente para a cria-
ção de uma solução comercial, o software que irá controlá-lo é a essência de um 
sistema embarcado. Desta forma, o firmware é extremamente relevante ao projeto, 
pois a lógica de execução do algoritmo é que se tornará a funcionalidade exigida 
pela demanda da solução.
Na área de sistemas eletrônicos e computação, firmware é uma classe ou cama-
da específica dos softwares, sendo um software semelhante ao de um computador 
pessoal, podendo ter seu algoritmo escrito utilizando alguma das várias linguagens 
de programação. O firmware pode ser responsável por controlar tarefas básicas ou 
padrões de um hardware, desta forma deixando o maior controle ao software da 
aplicação. Também é possível que o firmware tenha autonomia total de controle, 
atuando como se fosse um sistema operacional do dispositivo, controlando, moni-
torando, processando dados e funcionalidades.
A utilização e o desenvolvimento são específicos para o dispositivo criado, não 
tendo a flexibilidade de ser multiplataforma e em sua grande maioria não sofre 
muitas alterações após sua fabricação. Uma das únicas razões para ocorrência de 
upgrade de firmware é quando se encontram bugs, ou seja, erros de algoritmo 
durante o uso em campo.
Escolher qual linguagem de programação utilizar na criação do firmware está 
relacionado diretamente com a aplicação que utilizará esta camada para acesso 
ao hardware. As linguagens de programação estão em constante evolução, com o 
intuito de facilitar a reutilização de algoritmos, tornando o desenvolvimento rápido, 
confiável e com manutenção menos complexa. Basicamente, as linguagens de pro-
gramação são divididas entre de baixo nível e de alto nível.
Uma linguagem de programação é considerada de baixo nível quando pertence 
à camada mais baixa do conjunto de software, ou seja, é a linguagem efetiva do 
hardware, a qual não precisa de conversão para ser interpretada pelo processador.
Este nível de programação fornece o suporte para operar diretamente os re-
gistradores do microcontrolador, os quais não são de fácil acesso pelas camadas 
superiores, pois há uma blindagem do firmware ou do sistema operacional, quando 
houver, para evitar alterações indevidas.
A linguagem de máquina é considerada a implementação mais baixa que se 
pode alcançar, a qual consegue utilizar as instruções do microcontrolador e mani-
pular os dados em nível binário. Um conjunto de bits corresponde a uma sequência 
de 8 dígitos de valores 0 ou 1, quando agrupados em 8 considera-se um byte.
O firmware está armazenado ou embarcado na memória não volátil do disposi-
tivo, tal qual a memória ROM, EPROM ou memória flash, as quais serão estudadas 
na próxima unidade. O binário do código-fonte, ou conjunto de instruções, é a 
única forma a que o microcontrolador acessa e a única forma cujas funcionalidades 
18
19
o microcontrolador compreende. Para visualização e possível compreensão deste 
arquivo binário, é necessário um editor de texto em hexadecimal, pois se converti-
do o binário em caracteres ASCII não será possível compreender a lógica contida 
nele. Um exemplo de linguagem de baixo nível muito utilizada é o Assembly, que 
é uma forma de implementação do processo através de instruções e não números. 
Implementações em linguagem de máquina, ou seja, desenvolvendo o binário dire-
tamente, são impraticáveis.
Umas das primeiras linguagens de programação criadas foi o Assembly. Sua 
criação surgiu da necessidade de utilizar um comando em vez do código de maqui-
na binário. A versatilidade agregada pelo Assembly foi o uso das variáveis, as quais 
são espaços reservados de memória para alocação de dados. Em qualquer parte 
do programa, quando haver necessidade de manipulação desse dado contido na 
variável, basta referenciar o nome da variável. Devido ao compilador de Assembly 
utilizar diretamente as instruções do processador, há necessidade de especificar 
para qual processador está sendo desenvolvido o código.
Continuando com a evolução das linguagens de programação, as quais saíram 
da linguagem de máquina e foram para instruções com o Assembly, houve o desen-
volvimento de linguagens de alto nível. Quando se fala em linguagem de alto nível, 
pensa-se em abstração de diversas estruturas de controle comuns e rotineiramente 
utilizadas, assim há uma biblioteca de algoritmos pronta para ser reutilizada. O có-
digo final desenvolvido continuará sendo em linguagem de máquina, porém o com-
pilador que realizará a conversão automática. No entanto, ganha-se na facilidade de 
interpretação humana do código, mas perde-se em tamanho do binário convertido 
pelo compilador, o qual ficará maior quando comparado com o tamanho do código 
programado diretamente em linguagem de máquina.
A linguagem de programação que será estuda e terá um capítulo exclusivo será 
a linguagem C, a qual faz parte das linguagens de alto nível, contudo proporciona 
maior autonomia no controle dos espaços de memória, pois em um sistema embar-
cado é comum a memória ser um recurso escasso e sob medida.
A linguagem C é uma linguagem de programação estruturada, cuja forma de 
programação é linear, ou seja, uma execução sequencial de instruções, priorizando 
a utilização de estruturas simples em seus programas. O uso de sub-rotinas e fun-
ções, as quais são blocos de instruções chamados ao longo do algoritmo, é essen-
cial para manter o funcionamento e organização das funcionalidades desenvolvidas 
e esperadas pelo projeto.
Evolutivamente, a programação estruturada vem sendo substituída pela progra-
mação orientada a objetos, mas para uso de aplicações e aplicativos que não inte-
ragem muito com o hardware.
Para sistemas embarcados, utiliza-se muito C, devido à sua característica de 
escrever softwares otimizados em termos de utilização de recursos de hardware e 
também por proporcionar frameworks que facilitam e aceleram o desenvolvimento 
do firmware final.
19
Unidade Introdução aos Sistemas Embarcados e Microcontrolados 
Para compreender os motivos da escolha do C para implementação de firmware dos siste-
mas embarcados, é bom entender a evolução das linguagens de programação, a qual está 
bem detalhada no link: https://bit.ly/2vSotPa
Ex
pl
or
Tendências e Aplicações 
de Sistemas Embarcados
Sistemas embarcados estão se tornando cada vez mais generalizados e pratica-
mente já não se imagina o dia a dia sem esta tecnologia. Por outro lado, essa depen-
dência levantou questões como a da segurança na utilização destes equipamentos e 
a da vulnerabilidade, há falhas que poderiam ocasionar pequenos contratempos ou 
poderiam causar danos a ativos materiais, financeiros ou até mesmo à vida.
A utilização desta tecnologia é tamanha, que mais de 98% dos processadores do 
mundo estão hoje operando em sistemas embarcados, na imensa maioria das vezes 
transparente aos olhos e conhecimento dos usuários (TAURION, 2005).
Integrado ao hardware, na maioria das vezes, há necessidade de softwares bas-
tante complexos, pois algumas indústrias demandam softwares altamente confiá-
veis, como a indústria automobilística, cujo software que controla a frenagem e a 
aceleração de veículos deve ser altamente confiável e seguro.
Muitas indústrias levam em conta que a complexidade do software embarcado 
atrelado à confiabilidade e segurança já implica que o custo de desenvolvimento 
seja maior que o do próprio produto em si.
Para casos assim, o volume de código a ser escrito é imenso. A estimativa da 
indústria automobilística é que em poucos anos os automóveis da categoria com 
maior tecnologia embarcada terão cerca de 100 milhões de linhas de código. 
Fazendo uma conta rápida para visualizar o esforço necessário para essa tarefa, 
estima-se que a produtividade de código por dia, por programador, é de 20 li-
nhas, dessa forma equivaleria a 5.000.000 homens/dia ou 20.000 homens/ano 
(TAURION, 2005).
Analisando as estimativas da indústria de software como um todo, pode-se con-
siderar queem média existem de cinco a vinte bugs por mil linhas de código e os 
firmwares têm sido instalados com mais de um milhão de linhas de código. Assim, 
falhas são inevitáveis, o que em termos de negócio representam prejuízos altos, 
porém esses prejuízos tendem a ser amortizados conforme se investe em departa-
mentos de teste de software, como o SQA (software quality assurance).
Evolutivamente, pode-se fazer um comparativo de maneira aproximada entre a 
Lei de Moore e os sistemas embarcados, o qual está dobrando de tamanho e com-
20
21
plexidade a cada dois anos. Recordando, a Lei de Moore surgiu quando em 1965, 
Gordon Moore, que mais tarde fundou a Intel ao lado de Bob Noyce, previu que 
a capacidade de um chip de computador dobraria anualmente. Moore fez a proje-
ção com base na relação preço/desempenho dos chips de computador do triênio 
anterior. Na verdade, Moore não acreditava que esse índice de avanço fosse durar 
muito tempo. Mas, dez anos depois, a previsão se mostrou verdadeira e ele voltou 
a prever que a capacidade dobraria a cada dois anos. Até hoje as previsões para 
os chips se mantiveram e a média, uma duplicação da capacidade a cada dezoito 
meses, é chama de Lei de Moore.
Além da evolução do sistema embarcado seguindo a Lei de Moore, o desenvol-
vimento do firmware de alta qualidade, em tempo reduzido (pressões pelo time-
-to-market), ultrapassa a capacidade da maioria das empresas do seguimento de 
produção de software. Na prática, uma indústria como a automobilística não tem 
como core a produção de software, portanto a responsabilidade do desenvolvi-
mento do firmware acaba sendo terceirizada. Em comparação, a Microsoft tem 
cerca de 20.000 desenvolvedores e é pouco provável que uma automobilística con-
trate tantos desenvolvedores (TAURION, 2005). Desta forma, o desenvolvimento 
in-house de firmware não é sempre a melhor opção em termos de custo/benefício, 
analisando-se a tendência do mercado de sistemas embarcados e observando-se 
alguns dos setores de indústrias que mais consomem este tipo de tecnologia.
A Eletrônica de consumo, cuja demanda de sistemas embarcados se resume a 
produtos como celulares, câmeras digitais, set top boxes da TV digital, dispositivos 
MP3, aparelhos de Blue-Ray, console de games e assim por diante, é líder na apli-
cação dessa tecnologia. O sucesso dessa indústria está relacionado com a constante 
inovação do produto e também ao lançamento do produto no momento oportuno 
em que há carência de tecnologia no mercado, sendo o pioneirismo essencial para 
superar a concorrência.
A indústria automotiva utiliza sistemas embarcados em dispositivos de controle 
de motores, freios ABS, air bags, controle de temperatura ambiente, entre outros. 
Esta indústria está caminhando para fazer com que os automóveis do futuro sejam 
mais parecidos com computadores com rodas do que automóveis com chips. A 
eletrônica e o software estão substituindo rapidamente a mecânica e a hidráulica, 
similar ao que já acontece com a indústria aeronáutica, onde esses sistemas foram 
substituídos pelos chamados fly-by-wire. Assim, o valor dos sistemas embarcados 
está se tornando cada vez maior no custo total de produção dos veículos, sendo 
estimado hoje em até 15%.
fly-by-wire: significa sistema de controle por cabo elétrico, ou seja, o controle não é feito ex-
clusivamente por um humano, mas sim por sistemas embarcados que processam o comando 
manual e tomam a decisão de como será feita a execução prática.
Ex
pl
or
21
Unidade Introdução aos Sistemas Embarcados e Microcontrolados 
Sistemas médicos contêm sistemas embarcados em desfibriladores, marca-pas-
sos, sistemas de imagem ultrassônicos, raios X, lasers terapêuticos, entre outros. 
A medicina atual está fortemente dependente de tecnologia, sistemas embarcados 
estão presentes em todos os aspectos médicos, seja na prevenção, passando pelo 
diagnóstico e chegando ao tratamento e reabilitação. O ciclo de lançamento de 
produtos é reduzido, devido a demandar alto grau de inovação, confiabilidade e 
disponibilidade, pois lidam diretamente com a vida humana. Um bug ou um sistema 
fora do ar pode provocar uma morte. Nesta indústria, os sistemas embarcados se 
destacam por processar gráficos tridimensionais de alta resolução e uso intenso de 
processadores e operações em tempo real, além de demandar muita integração aos 
hospitais através de um ou vários tipos de conexões.
Já a indústria de Telecomunicações contém sistemas embarcados nas estações 
de rádio base para telefonia celular, roteadores, telefones digitais, PABX e voz sobre 
IP (VoIP). Para os produtos deste seguimento industrial, é importantíssima a dis-
ponibilidade de acesso, pois as telecomunicações demandam serviços que não de-
vem ser interrompidos. A expectativa dos usuários é que as comunicações estejam 
sempre operando, sem interrupções, assim não é demais esperar disponibilidade 
na faixa dos 99% do tempo. O segmento da infraestrutura de telecomunicações 
exige equipamentos robustos, que possam estar expostos a intempéries e não in-
fluenciar na arquitetura de funcionamento e processamento do sistema embarcado. 
Por outro lado, o segmento de telefonia celular sofre com a extrema competição e 
renovação dos lançamentos constantes. Isso é um complicador, pois as aplicações 
móveis devem operar nos múltiplos equipamentos e plataformas cujo firmware não 
é constate, ou seja, a flexibilidade para acessar vários firmwares e atuar em vários 
hardwares aumenta e muito a complexidade do software de aplicação.
O segmento industrial geral sempre foi um berço da computação embarcada, 
focando basicamente na automação de todos os segmentos que a compõem. Usar 
computadores na gestão das linhas de produção foi uma das primeiras atividades 
computacionais, com os chamados sistemas de controle de processos. A evolução 
destes primeiros sistemas trouxe complexidade tanto de hardware como de softwa-
re e inclusive introduziu algoritmos de inteligência artificial aplicados à robótica nas 
soluções deste seguimento. Além disso, os sistemas industriais estão cada vez mais 
interconectados a sistemas de gestão na retaguarda, integrando em tempo real a 
linha de produção aos sistemas de gerenciamento de estoque, alocação de recursos 
e assim por diante.
22
23
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
 Livros
Electronics for Embedded Systems
BINDAL, A. Electronics for Embedded Systems. Cham: Springer International 
Publishing, 2017.
Embedded Operating Systems: a practical approach
HOLT, A.; HUANG, C. Y. Embedded Operating Systems: a practical approach. 2nd 
edition. ed. Cham: Springer International Publishing AG, 2018.
 Vídeos
Videoaula da UNIVESP sobre Eletrônica embarcada
https://youtu.be/ElIMxXcFkGQ
Introdução aos sistemas embarcados
https://youtu.be/1I3QKMzSXUM
23
Unidade Introdução aos Sistemas Embarcados e Microcontrolados 
Referências
BINDAL, A. Electronics for Embedded Systems. Cham: Springer International 
Publishing, 2017.
HOLT, A.; HUANG, C. Y. Embedded Operating Systems: a practical approach. 
2nd edition. ed. Cham: Springer International Publishing AG, 2018.
OLIVEIRA, A. S.; ANDRADE, F. S. Sistemas embarcados: hardware e firmware 
na prática. 2ª. ed. São Paulo: Érica, 2010.
QIAN, K.; HARING, D. D.; CAO, L. Embedded software development with C. 
New York: Springer Science+Business Media, 2009.
24

Mais conteúdos dessa disciplina