Você está na página 1de 34

Curso de desenvolvimento profissional

de sistemas embarcados

Pedro Bertoleti

e-stude.com
Tópicos

● Arduino: difícil começar sem ele, difícil evoluir com ele


● O que consiste um sistema embarcado profissional
● Microcontroladores: o que são e para que servem
● Inputs e outputs: direção de inputs, configuração de pull-up e
pull-down e cuidados básicos/gerais com os outputs

● Requisitos principais e observações importantes de um sistema


embarcado profissional

e-stude.com
O Arduino: por que começar com ele?
● Plataforma de rápido e fácil
aprendizado.

● Custo muito competitivo (em relação a


kits de desenvolvimento da época que
foi lançado, em 2005).

● Alto número de exemplos prontos na


Internet (e de bibliotecas prontas).

● Alto índice de abstração (não chega “no


hardware”).

● Permite a qualquer um fazer provas de


conceito rapidamente.

● Alta variedade de modelos e placas.

e-stude.com
O Arduino: por que começar com ele?

Ou seja:

+ =

Arduino Uma ideia Protótipo rápido!

e-stude.com
Mas...
● Arduino é uma plataforma: logo, pouco importa o
microcontrolador usado (ATMega,
microcontrolador com core ARM, PIC, etc.) que é
programado do mesmo jeito. Logo, não se sabe o
que está sendo feito “por baixo dos panos”

● Por consequência, não se pode confiar


cegamente em se tratando de um produto
(dependendo do bug, fica impossível achar a
causa e resolver o problema)

● Para aplicações de alta performance, o uso de


uma plataforma destas pode prejudicar muito o
projeto

● O debug é inexistente, algo que inviabiliza o uso


profissional desta plataforma.

● Não há garantia de fabricação de longo prazo de


um determinado modelo

e-stude.com
Logo, para as empresas:

Não ter total controle do baixo nível

Não ter debug

Não permitir altíssima performance


Inviabiliza uso de Arduino em produtos
reais

Não ter uma garantia a longo prazo


de produção de um determinado
modelo

e-stude.com
Mas empresas não usam Arduino para
nada?

Em alguns casos sim, mas visando somente

Provas de conceito rápidas e fáceis

Ou seja, onde precisa ser validado um conceito / caminho e não se tem


muito tempo de testar e/ou implementar na solução definitiva.

E só!

e-stude.com
Logo:
Atualmente, o Arduino é o começo da jornada ao mundo dos sistemas
embarcados, mas não é o fim! Se quer trabalhar com sistemas
embarcados, é preciso ir além.

e-stude.com
O que fazer para ser um profissional da
área?
• Ser “eclético” quanto a microcontroladores e tecnologias: toda
tecnologia é útil, é preciso analisar caso a caso para ver qual é a
melhor (performance e $$). Nem sempre a tecnologia que você
domina mais é a mais adequada a um projeto.

• Sempre estar atualizado com as novidades que orbitam esta área.

• Ser muito curioso e paciente.

• Ter consciência que fóruns na internet, documentação oficial do


fabricante e o debug são seus melhores amigos!

e-stude.com
Sistema embarcado profissional: o que
é?
Um sistema embarcado, por definição, é um sistema cuja função /
serventia é limitada. Ou seja, é um sistema dedicado a uma tarefa
específica.
Qualquer coisa que difere disso trata-se de um sistema de propósito
geral.

Por exemplo:

Exemplos de sistemas de propósito Exemplos de sistemas embarcados:


geral:
-Relógio de pulso
-Micro computador -Calculadora
-Tablet -Máquina de cartão de crédito
-Smartphone -Balanças eletrônicas
-Marca-passo
e-stude.com
Sistema embarcado profissional: o que
é?

Um sistema embarcado profissional (hardware e software) tem as


seguintes características:

•Oferecer alta performance

•Ter menor custo possível

•Seus componentes eletrônicos tem longo prazo / longa garantia de


fabricação pelos fabricantes e SEMPRE deve haver mais de uma opção
de fornecedor.

•Uma mesma placa, na grande maioria dos casos, deve funcionar para
mais de um produto (troca-se o software embarcado somente). Isso
garante mais versatilidade, menor custo final de produto e maior índice
de qualidade.

e-stude.com
Sistema embarcado profissional: o que
é?
Além disso, o sistema embarcado profissional deve ser especialmente
robusto. Ou seja:

•Travar “nunca”
•Bom tratamento de dados (o sistema não deixa de funcionar quando
uma massa de dados não esperada é recebida)
•Boa imunidade à interferências eletromagnéticas

Em suma:
Deve sempre ser projetado de modo que, uma vez ligado,
pode ser “esquecido” num canto, pois seu funcionamento
está garantido (menor manutenção possível / zero
manutenção).

e-stude.com
Sistema embarcado profissional: quais
áreas são envolvidas?

Sistema embarcado

Projeto de software embarcado Projeto de hardware embarcado

Testes de software embarcado

O que significa que:

Um profissional de software embarcado deve conhecer,


obrigatoriamente, de software, hardware e metodologias de
testes

Logo, é uma área que exige muito (e constante) estudo.

e-stude.com
Dica do Pedrão!
Um sistema embarcado profissional é
algo que deve funcionar sem
manutenções (mesmo nos meios mais
hostis, conforme é exigido em alguns
casos).
Logo, quando for projetar um sistema
embarcado, para garantir que o está
projetando bem, faça a si mesmo a
seguinte pergunta:

Eu usaria o sistema que estou fazendo se


minha vida dependesse disso?

Se a resposta for sim, o projeto está bem


encaminhado.

e-stude.com
Microcontroladores

e-stude.com
Microcontroladores
Definindo de forma simples e rápida, os microcontroladores são computadores
completos em um único chip / circuito integrado.

Ou seja, um microcontrolador possui, no mínimo, os 3 elementos básicos de


um computador: CPU (responsável pelo processamento de dados e execução
de programas), memórias (voláteis e não-voláteis) e I/O.

Ter tudo isso em um único chip faz com que seja possível ler sinais do mundo
externo, processá-los como for desejado e devolver os resultados do
processamento ao mundo externo através de um único circuito integrado.
Assim, uma solução embarcada microcontrolada poupa assim espaço físico,
custo (pois grande partes das funcionalidades está implementada em um só
componente eletrônico) e consumo energético.

e-stude.com
Microcontroladores
Exemplo de um diagrama em blocos simplificado de um microcontrolador:

Fonte: http://www.artimar.com.br/uploads/MC838%20-%20PIC32%20Block%20Diagram%20-%20Med%20Res.JPG

e-stude.com
Microcontroladores - processamento

Os microcontroladores, como qualquer computador, devem ser


programados para fazer o que se deseja.

Visando maior velocidade / performance, os microcontroladores


contém instruções mais específicas, que permitem manipular bits
específicos ou áreas de memórias específicas (de forma mais rápida).

Isso diferencia, em termos de processamento, um microcontrolador de


um microprocessador.

e-stude.com
Microcontroladores - alimentação

A alimentação dos microcontroladores é algo que exige muita atenção.

Os microcontroladores normalmente funcionam em um range


considerável de tensão (funcionando de 2,0V até 3,3V, por exemplo).
Logo, isso os torna muito bons em aplicações em sistemas
embarcados cuja tensão varia bastante (exemplo :qualquer sistema
com bateria e circuito de carga/descarga de bateria).

Apesar disso, nunca deve-se exceder a tensão de alimentação máxima.


Isso significa, em 99,99999% dos casos, a perda total do
microcontrolador.
Por este motivo, circuitos microcontrolados normalmente possuem
fontes de alimentação robustas / com muitas proteções.

e-stude.com
Microcontroladores – quem faz?
Há basicamente dois tipos de empresa de envolvidas com
microcontroladores:

a)Fabricante do chip físico: projeta e fabrica inteiramente o


microcontrolador, incluindo software básico (bootloader, sdk´s, etc).

b)Empresa desenvolvedora de cores: desenvolve o “núcleo“ do


microcontrolador, ou seja, desenvolve a arquitetura (hardware e
software).
A empresa referência deste meio é a ARM (por isso existem tantos
fabricantes diferentes fabricando microcontroladores ARM nas suas
mais diversas linhas).

e-stude.com
Microcontroladores - fabricantes
Existe uma infinidade de microcontroladores no mercado, de vários
fabricantes diferentes. Cada microcontrolador possui características,
preços e aplicações distintas.

Logo, cada projeto exige uma análise detalhada de qual


microcontrolador usar (nos quesitos técnicos, disponibilidade para
compra e preço).

Dentre os fabricantes de microcontroladores e cores, destacam-se:

e-stude.com
Microcontroladores: barramentos
Os microcontroladores, como os processadores, possuem barramentos. Os
barramentos interligam os elementos básicos de qualquer microcontrolador ou
microprocessador: CPU, memórias e I/O.

Há dois tipos de barramentos:

a)Barramento de endereço: basicamente, responsáveis por endereçar memórias.


Ou seja, informam em que endereço da memória é desejado ler ou escrever um
determinado dado.

Importante: quanto maior este barramento (mais número de bits),


maior a memória total endereçável por ele.

b) Barramento de dados: responsáveis por trafegar os dados entre os


elementos básicos (CPU, memórias e I/O). Quanto maior for este barramento,
mais veloz é a escrita ou leitura de um microcontrolador.

e-stude.com
Como se classificam os microcontroladores?
Os microcontroladores são classificados por:

1)Número de bits de seu barramento de dados (ou seja, quantos bits podem ser
manipulados simultaneamente / em uma única instrução).

2)Tipo de memória de armazenamento de programa

e-stude.com
Como se classificam os microcontroladores?
1) Número de bits
Neste conceito, existem as seguintes classificação

a)8 bits *
b)16 bits ( - usados e vendidos)
c)32 bits (+ usados e vendidos e mais baratos)
d)64 bits

*Apesar de soar ser uma tecnologia antiga, estes microcontroladores são


muito consolidados no mercado e largamente empregados em
eletrodomésticos e equipamentos eletrônicos simples.

e-stude.com
Como se classificam os microcontroladores?

2) Tipo de memória de programa / memórias de programação

A memória de programação é a memória dedicada a armazenar o código total


a ser executado pelo microcontrolador. Em outras palavras, é lá que está
definido o que o microcontrolador irá fazer.

Existem os seguintes memórias de programação

a)ROMless / Flashless: microcontroladores que não tem memória de


programação, necessitando assim acessar memórias externas para este fim

b)OTP (One Time Programable): memória de programação que permite ser


escrita somente uma vez. Ou seja, se algum erro foi constatado no programa, o
microcontrolador deve ser descartado.

c)Masked: possui uma memória de programação gravada pelo fabricante (com o


programa desejado do cliente/usuário).

e-stude.com
Dica do Pedrão!
Cada categoria de microcontrolador (8,
16, 32, 64 bits) possui um ou mais
fabricantes “clássicos” (já consolidados
no mercado). Além disso, normalmente
eles são os que tem melhor material de
apoio, melhor preço e maior suporte ao
cliente.

Antes de projetar, sempre levante quem


são os fabricantes mais conhecidos do
tipo de microcontrolador que deseja usar.
Isso pode evitar dores de cabeça no
desenvolvimento e manutenção do
projeto.

e-stude.com
Inputs e outputs

A interface do microcontrolador com o mundo externo

Microcontrolador

Mundo externo

e-stude.com
Inputs e outputs

Inputs e outputs são interfaces com o mundo exterior, permitindo que bits e/ou bytes
sejam lidos e escritos. Logo, é a interface digital dos microcontroladores

Assim como há uma grande diversidade de microcontroladores no mercado, há


também uma grande diversidade do número de inputs e outputs disponível. Cabe ao
projetista definir qual microcontrolador o atende neste aspecto.

IMPORTANTE:
Cada pino do microcontrolador pode assumir diversas funções (uma por vez, claro).
Por isso, os inputs e outputs são referenciados nos pinos dos microcontroladores
como GPIO (General Porpouse Input and Output, ou Input e Output de Propósito
Geral).
Logo, um mesmo pino pode ser Input ou Output, dependendo somente da forma
como foi programado e configurado.

e-stude.com
Inputs
Inputs são as entradas de dados para os microcontroladores.
Os inputs tem, de forma mais comum, as seguintes configurações:

a)Pull-up interno: há um ciruito de pull-up interno que, na ausência de sinais no


pino, força seu estado para nível alto (1).

b) Pull-down interno: há um ciruito de pull-down interno que, na ausência de


sinais no pino, força seu estado para nível baixo (0).

IMPORTANTE: sempre atentar para a tensão do sinal colocado no input. Esta


NUNCA deve exceder a tensão máxima de alimentação do microcontrolador.
Se isto ocorrer, há grandes chances de o microcontrolador ser inutilizado.

e-stude.com
Outputs
Outputs, por sua vez, são as saídas de dados dos microcontroladores.
Os outputs podem, de forma geral, ter as seguintes configurações:
a)Output em dreno aberto ou coletor aberto: possui um
circuito com transistor em dreno (ou coletor) aberto.
Este tipo de saída tem aplicações restritas, geralmente
vinculadas à limitação de corrente máxima de saída.
Na prática, é pouco usual configurar um output desta
maneira.
Fonte: https://en.wikipedia.org/wiki/Open_collector#/media/File:OpencollectorV3.png

b) Output com push-pull: habilita um circuito push-pull na


saída, que faz com que a saída seja sempre nível lógico alto
ou baixo (ou seja, não permite que a tensão “flutue”).

http://hades.mech.northwestern.edu/images/2/20/Transistor_push_pull_follower.gif

IMPORTANTE: sempre atentar para a corrente máxima de saída do pino do


microcontrolador. Esta NUNCA deve ser além da máxima informada pelo fabricante.
Se isto ocorrer, há grandes chances do microcontrolador ser inutilizado.
e-stude.com
Dica do Pedrão!
Uma considerável parcela de culpa de erros
nos softwares embarcados (em fase de
desenvolvimento) é a configuração errada
de inputs e outputs.

Logo, são boas práticas:

1) Ter muita atenção nestas configurações


2) Fazer desta configuração o primeiro
passo de qualquer projeto de software
embarcado.
3) A configuração de inputs e outputs
depende, exclusivamente, do esquema
elétrico e hardware do projeto.
Logo, não deve-se programar nada antes de
se ter bem definido o hardware a ser usado.

e-stude.com
Sistema embarcado profissional: requisitos

e-stude.com
Sistema embarcado profissional: requisitos
Como foi visto, sistemas embarcados devem ser capazes de rodar com quase nenhuma ou nenhuma
manutenção, ou seja, devem ser o mais robustos possíveis em hardware e software.
Portanto, os principais requisitos e observações de um sistema embarcado profissional são:

Sistemas embarcados devem estar sempre dimensionados para o ambiente em que trabalharão. Isto
significa que nem sempre um sistema embarcado é compacto ou barato.

Sistemas embarcados devem ser o mais rápidos possíveis (+ eficientes e + eficazes)

A economia ($$) é um fator importante, mas não o mais importante.


O sistema embarcado deve atender as atuais necessidades e ter uma “gordura” de recursos para
atender futuras necessidades (acredite, ter um pouco de recursos de sobra sai mais barato no futuro
do que reprojetar todo o sistema novamente).
Menos é mais. Quanto mais simples for a solução de sistema embarcada encontrada, melhor é o
sistema.

Não se faz nenhuma solução embarcada com hardware funcionando parcialmente ou não
funcionando. Então, o “passo zero” de todo sistema embarcado é o hardware estar ok.

Devido a possibilidade mínima de falha que um sistema embarcado deve ter, este deve ser bem
testado. É uma boa (ótima) prática o teste ser feito por uma pessoa que não desenvolveu o sistema.

e-stude.com
Fim da primeira aula!

e-stude.com

Você também pode gostar