sexta-feira, 11 de abril de 2014

O que é Sistema Embarcado

Introdução



Vou explicar neste artigo o que é Sistemas Embarcados, o que é necessário saber para iniciar algum projeto e o que pode ser feito com um microcontrolador. 

Primeiramente quero deixar claro que Sistemas Embarcados não tem nenhuma relação com barcos. Muitas pessoas que escutam pela primeira vez esses termos fazem essa associação com barcos. Eu mesmo já pensou nisso na primeira vez que ouvi. Porém, o sentido usado no nosso contexto é de sistema embutido ou sistema microcontrolado. Embutido porque o microcontrolador reúne num chip só todos os elementos básicos de um sistema computacional como memoria principal(RAM), memoria secundaria(ROM) e CPU. 
Nós poderíamos também associar à ideia de sistema computacional compacto.

Sistemas Embarcados são sistemas de processamento digital, cujo elemento central é um microcontrolador, que possuem seu firmware/software de controle armazenado em uma memória interna ou externa ao microcontrolador. São dedicados a uma tarefa específica e interagem com o ambiente por meio de sensores e atuadores. São utilizados em aviões, carros, telefones celulares, calculadoras, eletrodomésticos, equipamentos médicos, etc, ou seja, na maioria dos equipamentos eletrônicos atuais. Também é considerado como sendo sistemas embarcados FPGAs, Controladores Lógicos Programáveis e o Controlador Programável de Automação(PAC). Todos eles tem microcontroladores internamente.

O que é Microcontrolador



Como dito antes, ele é o elemento central de um sistema embarcado e é nada mais que um chip que tem internamente memoria RAM, memoria ROM e uma CPU, além de outros periféricos como timer, watchdog, RTC, Conversores ADC e DA, SPI, I2C, PWM e muitos outros. A quantidade de periféricos vai depender da arquitetura, fabricante e modelo do microcontrolador.

Antigamente havia apenas microcontroladores de 8 bits, por exemplo, 8051 e PIC. Depois aos poucos foram surgindo microcontroladores de 16 bits e posteriormente 32 bits. PIC32, AVR32 e a toda a família de ARMs são exemplos de microcontroladores de 32 bits.

A diferença entre microprocessador e microcontrolador é que este reuni vários periféricos internamente ao passo que o microprocessador é constituído basicamente por CPU e memorias cache. Outra diferença é que microprocessadores costumam ter consumo alto de energia e microcontroladores tem baixo consumo. Esse é um dos destaques da arquitetura ARM. Alto desempenho com baixo consumo. Mas a principal distinção entre eles é que o microprocessador é de uso geral e o microcontrolador é de uso especifico. Tenha sempre isso em mente! A programação de um microcontrolador é comumente chamada de firmware. Logo abaixo explico o que é firmware.


Conhecimentos necessários 



É necessário ter um conhecimento básico de eletrônica analógica, eletrônica digital e especialmente sobre microcontroladores. Você pode começar estudando eletrônica básica como circuitos com LEDs, resistores e transistores. Tabela verdade e finalidade das funções AND, OR e NOT é muito importante, assuntos vistos em eletrônica digital. E poderia ser ótimo estudar pelo menos o começo de Arquitetura de Computadores ou a arquitetura de algum microcontrolador em particular. Veja PIC Microcontroller Architecture e ARM architecture. Você perceberá que a arquitetura do ARM é muita mais complexa, por isso ele está mais próximo de um processador usado em PC. Mesmo a antiga versão 4 da arquitetura ARM é mais robusta que a arquitetura de microcontroladores PIC18.





Circuito de controle de um servo motor utilizando um microcontrolador PIC16.



O que é firmware



Firmware é o código fonte que irá gerá o executável que será gravado na memoria flash do microcontrolador. Ele geralmente tem um proposito específico assim como um sistema embarcado. De fato, ele é quem define o proposito de um sistema embarcado através da programação de instruções. Um exemplo em linguagem comum:
Leia Pino 1;
Ligue LED Verde;
Desligue LED vermelho;
Leia sensor A;
Gire motor para direita;
...
Atualmente a linguagem C é ainda a mais usada para programar firmwares.

Aplicações



Faça a seguinte pergunta: para que serve um computador? Nós fazemos a mesma pegunta em relação a sistemas embarcados. Então, como você pode imaginar, as aplicações são ilimitadas. Como meu professor de microcontroladores costumava dizer: "Sua imaginação é o limite". A diferença entre um computador e um sistema embarcado é que esse último está mais ligado a tarefas de controle e monitoramento.

Você pode usar um sistema embarcado em projetos que exijam uma logica de controle mais complexa, que um circuito integrado comum não poderia fazer. Ou no monitoramento de alguma grandeza física através de sensores. Pode ser feito um simples sistema de alarme a um complexo sistema de automação residencial, o Smart Grid. Ele tem sido usado também em automação industrial no controle de motores, sensores, etc.

Com o uso de sistema operacionais em microcontroladores as aplicações são ainda maiores. Os sistemas operacionais em destaque para sistemas embarcados são LinuxVxWorksQNX OS e Windows Embedded. Eles têm suporte a varias arquiteturas de processadores e alguns tem aplicações especificas como automação de carros no caso do QNX.


Quem utiliza



Empresas de vários setores de tecnologia tem usado sistemas embarcados em seus produtos ou projetos. E alguns setores do governo também. Empresas de vigilância eletrônica, fabricantes de celulares, fabricantes de calculadora, fabricantes de controladores de sinal de transito, fabricantes de equipamentos de rede e de telefonia digital, fabricantes de estabilizadores de tensão, fabricantes de aparelhos eletrônicos como a Multilaser e até mesmo clínicas odontológicas. Enfim, a lista é enorme. No setor do governo, no caso americano, a NASA é um dos que mais emprega sistemas embarcados em seus projetos. 
Eles usam em grande parte de seus projetos o sistema operacional VxWorks com processadores PowerPC. Veja este link: NASA-Mars-Rover-Curiosity.

Mas infelizmente o seu uso ainda tem se concentrado mais em laboratórios de pesquisa localizados em faculdades ou Institutos Tecnológicos, no caso de determinadas regiões do Brasil. O Nordeste é um exemplo. Na verdade, nós podemos tomar isso como um indicativo de desenvolvimento tecnológico de uma determina região. E a região que mais se destaca nessa área é a região Sul. Eu poderia destacar também algumas cidades como Belo Horizonte, diversas cidades do Estado de São Paulo e cidades do Sul como Porto Alegre, Florianópolis e Curitiba. Em Porto Alegre estão grandes empresas de tecnologia do país.


Considerações finais



Sistemas embarcados é algo muito empolgante que pode ser feito tanto como trabalho ou como hobby. Comece hoje mesmo, escreva um código e rode em algum simulador ou emulador. Um ótimo simulador é o Proteus. Leia outros posts aqui do blog:



Nenhum comentário:

Postar um comentário