Eletrônica Embarcada e Firmware

Veja também:

Pequenos Negócios - Como Ganhar Dinheiro na Internet


O que é Eletrônica Embarcada?

Podemos dizer, de forma generalizada, que Eletrônica Embarcada é toda aquela instalada em dispositivos com grande mobilidade (Se deslocam frequentemente e em funcionamento) e que não estão conectados a uma fonte de tensão fixa, alimentada pela rede elétrica convencional.

Como exemplo temos os telefones celulares, a eletrônica instalada em automóveis e aviões, monitores médicos utilizados para monitorar o paciente durante as atividades diárias normais, eletrônica de satélites, etc.

Um dos grandes problemas enfrentados pela eletrônica embarcada é não poder controlar o ambiente onde terá que funcionar. Quando você desenvolve um módulo eletrônico para um automóvel, não tem ideia onde ele pode ser utilizado. Se no gelo da Sibéria ou no calor do Saara. Se no meio de uma montanha isolada ou na Av. Paulista em SP, onde a intensidade de radiações eletromagnéticas(em função das antenas de televisão e rádio) é uma das maiores do mundo.

Outra preocupação é quanto ao consumo de energia, uma vez que é comum a Eletrônica Embarcada ser alimentada por baterias.

O que é Firmware?

Normalmente os circuitos de Eletrônica Embarcada utilizam microcontroladores e microprocessadores para executar as funções. Para que estes componentes funcionem, devem ser programados com as rotinas de software. O conjunto destas rotinas é chamado de firmware. Esta definição vem das seguintes analogias:

Software = de fácil alteração. É o aplicativo que roda, por exemplo, em seu computador. O editor de textos é um exemplo. Se o fabricante do editor precisar fazer uma alteração, basta entrar no programa fonte, realizar a alteração e compilar. Alteração de custo baixo.


Firmware = grau de dificuldade intermediário para alterações. É por exemplo as rotinas que rodam em seu celular para que ele funcione. Não é um aplicativo, mas as rotinas específicas necessárias ao funcionamento do celular, que rodam em seu microprocessador. Se o fabricante do celular precisar alterar alguma rotina, ele não tem acesso tão fácil a elas. Pode ser necessário recolher o celular para fazer as alterações. Em eletrônicas que não estão conectadas à internet, será sempre necessário recolher o produto para fazer as atualizações. Alteração de custo intermediário.


Hardware = de alteração difícil. São os circuitos e componentes eletrônicos que compõem, por exemplo, seu celular. Se o fabricante do aparelho descobrir um problema no circuito eletrônico, precisará recolher o aparelho e substituir o componente. Muitas vezes nem é possível a alteração, já que pode implicar em um novo circuito eletrônico. Alteração de custo elevado.

Linguagem de Firmware

Cada família de microcontrolador ou microprocessador tem uma linguagem de programação específica, própria do componente. Esta linguagem é composta por uma série de comandos que serão utilizados para escrever as rotinas do firmware. Em média um microcontrolador ou microprocessador moderno tem entre 30 e 60 comandos. O conjunto destes comandos é conhecido como Assembly. Normalmente estes comandos não são uma linguagem de fácil compreensão quando inseridos numa rotina de programa. Ou seja, analisando os comandos de assembly não é tão imediato entender o que a rotina executa. Além disto o programador deve estar familiarizado com os comandos específicos do componente. Por estes motivos o assembly é definido como uma linguagem de baixo nível.

Uma boa opção para programar microcontroladores e microprocessadores é utilizar linguagens de nível mais alto como a linguagem C. A linguagem C é composta por comandos padronizados que não dependem do microcontrolador ou microprocessador que estamos querendo programar. Após concluir o programa escrito em linguagem C é necessário compilar este programa. O Compilador é que faz este trabalho e ele traduz o programa escrito em C na linguagem em assembly que pode ser programada no componente. Ou seja, o compilador executa a tradução especificamente em função do componente que queremos programar.

Portabilidade

Portabilidade é a capacidade de um firmware migrar de um hardware para outro. Imagine que você desenvolveu um produto com microcontrolador da Microchip. Depois de algum tempo você precisou atualizar o hardware de seu produto e passou a utilizar um microcontrolador da Texas. Se o seu firmware foi escrito em assembly ele não funcionará no novo hardware, já que o assembly da Microchip é totalmente diferente do da Texas. Dizemos então que a Portabilidade de seu firmware é muito baixa. Será necessário um grande esforço para adaptá-lo ao novo hardware. A Portabilidade não é nula porque você acaba aproveitando a estrutura geral do firmware mas necessita reescrever linha por linha.

Imaginemos agora que seu firmware tenha sido escrito em linguagem C. Neste caso provavelmente com pequenos ajustes ele poderá rodar no microcontrolador da Texas. Isto acontece porque a linguagem C, como já dissemos, é independente do microcontrolador. Neste caso o seu firmware provavelmente apresenta alta portabilidade. Digo provavelmente porque as vezes o novo microcontrolador não apresenta alguns recursos do antigo ou a forma de trabalhar é muito diferente. Mas com certeza o esforço de programação para que seu firmware rode no microcontrolador da Texas será bem menor.

Nó próximo Módulo nós vamos mostrar algumas boas práticas ao desenvolver um novo firmware.

(continua....)