INTRODUÇÃO AOS SISTEMAS EMBUTIDOS

Por Ricardo Zelenovsky e Alexandre Mendonça

 

O mundo atual oferece-nos uma grande quantidade de equipamentos para desfrutarmos a vida moderna. Temos à disposição telefones que discam por comandos de voz, televisores que se conectam à Internet, microondas operados remotamente, máquinas fotográficas que não usam filmes e automóveis que estacionam sozinhos. Olhando com cuidado, percebemos um certo exagero, pois temos mais recursos do que realmente necessitamos. Por exemplo, quantas teclas tem seu microondas e quantas teclas você realmente usa. E o controle remoto do seu vídeo-cassete ? Se precisamos ou não de todos esses recursos e se se eles realmente facilitam nossa vida, são perguntas que deixaremos em aberto. O grande tema é que toda essa modernidade só foi possível com o emprego de uma grande quantidade de eletrônica em cada equipamento. Talvez o computador que esteja dentro de seu microondas seja mais poderoso que o que foi usado em 1969 no módulo lunar. Neste artigo, vamos analisar os recursos computacionais embutidos nos dispositivos modernos.

 

A evolução da eletrônica incorporada nos equipamentos é muito bem exemplificada pelo acompanhamento do progresso das máquinas fotográficas. As câmaras que usávamos na década de 60 eram totalmente mecânicas. Ao fotógrafo cabia selecionar o tipo de filme, a velocidade do obturador e o foco. É claro que tudo que um fotógrafo inexperiente conseguia era uma série de fotos borradas, escuras ou com sobre-exposição. Durante a década de 70, a evolução dos circuitos integrados veio a permitir a introdução de alguns componentes eletrônicos, que muito facilitaram a vida dos fotógrafos de fim de semana. O primeiro item introduzido foi um medidor de quantidade de luz para regular, de forma automática, a abertura do diafragma e, logo em seguida, veio um pequeno motor para rodar o filme. Não parou por aí e a máquina fotográfica evoluiu ainda mais com a introdução de um contador eletrônico para o número de fotos batidas e um medidor de distância para regular o foco. Chegamos assim às máquinas atuais, onde apenas apertamos um botão e todo o resto é feito automaticamente. Mas essa simplicidade só é possível porque, em cada máquina fotográfica moderna, existe um pequeno computador, que de agora em diante vamos chamar de Sistema Embutido ou, em inglês, "Embedded System".

 

A evolução da microeletrônica e o barateamento das CPUs viabilizaram o emprego de sistemas computadorizados nos diversos equipamentos. Os cérebros da maioria dos equipamentos modernos são os pequenos computadores que eles trazem embutidos. É claro que esses computadores não se parecem com o que temos sobre nossas mesas. Eles são construídos para tarefas específicas e, na grande maioria das vezes, não contêm disco rígido ou flexível, não precisam de teclado e muito menos de Windows.

 

Antes de abordarmos os sistemas embutidos, devemos estudar primeiro os microcontroladores. Não há uma diferença clara entre eles. As aplicações também não ajudam nessa diferenciação, pois a maioria das soluções podem ser conseguidas com ambos, cabendo ao projetista empregar um ou outro. Assim, o próximo item inicia o tema dos microcontroladores.

 

 

Microcontroladores

 

O termo controlador é usado para designar o dispositivo que controla um processo ou algum parâmetro do ambiente. O controlador de temperatura do condicionador de ar, por exemplo, liga ou desliga o compressor em função da temperatura ambiente. Antigamente, os controladores usavam lógica discreta e, por isso, tinham um tamanho que dificultava seu emprego em sistemas pequenos. Hoje em dia, usam-se os circuitos integrados microprocessados e todo o controlador cabe em uma pequena placa de circuito impresso.

 

O microcontrolador, com o avanço da microeletrônica, recebeu, dentro do seu CI, uma quantidade de recursos cada vez maior. Isso nos leva à primeira definição: microcontrolador é um CI com alta densidade de integração que inclui, dentro do chip, a maioria dos componentes necessários para o controlador. É por isso que usa o apelido: "solução com único chip". Existe uma quantidade expressiva de microcontroladores, porém os mais conhecidos são: 8051, 8096, 68HC705, 68HC11 e os Pics. A figura 1 apresenta o diagrama em blocos de um típico microcontrolador.

 

Figura 1. Diagrama de blocos de um típico microcontrolador.
Note que todos os recursos aqui mostrados estão dentro de um único CI.

 

A fronteira entre as definições de microcontrolador e sistema embutido não é clara e muitas das soluções poderiam ser obtidas tanto com microcontroladores quanto com sistemas embutidos. A chave para essa diferença está no tamanho e complexidade. Os microcontroladores são simples, enquanto que os sistemas embutidos são mais complexos e usam uma grande quantidade de chips.

 

 

Os Sistemas Embutidos

 

De forma rápida e abusando das palavras, dizemos que o sistema embutido é um "pequeno computador" que foi embutido em um sistema maior. Podemos ainda dizer que um sistema embutido é um sistema computacional que foi incluído em um outro sistema com a finalidade outra que a de fornecer processamento genérico.

 

Como já vimos, a chave para diferenciar um sistema embutido de um microcontrolador está no tamanho. Os microcontroladores usualmente são pequenos e empregam poucos CI’s, enquanto que os sistemas embutidos são maiores e mais sofisticados, com uma quantidade maior de CI’s. Existem sistemas embutidos de todos os tamanhos: desde pequenas placas com uma CPU 8085, uma ROM e uma RAM, até sofisticados sistemas com CPUs Pentium. Os sistemas mais simples apenas trazem um pequeno programa gravado em sua ROM, enquanto que os mais sofisticados fazem uso de BIOS e trazem um sistema operacional. Para os sistemas embutidos é muito comum o uso do DOS e de sistemas de tempo real, como o QNX.

 

É difícil especificar a anatomia de um sistema embutido, pois ela é ditada pela aplicação. Apesar dessa dificuldade, tentamos caracterizar um sistema embutido típico, como está mostrado na figura 2.

 

Figura 2. Típico sistema embutido.

 

 

CPUs para Sistemas Embutidos

 

Os sistemas embutidos classificados com "simples" lançam mão das CPUs que foram ultrapassadas pela voraz busca por desempenho. Para esse caso, citamos as CPUs de 8 bits: 8085, Z-80 e 6.800. Existem também sistemas baseados em CPUs de 4 bits, mas como são pouco conhecidas, não vamos citá-las. Os sistemas classificados como "simples" também empregam as CPUs de 16 bits: 8086, 8088, 80186, 80188, 80286, 68000, 68010. Eles são empregados em controles pequenos como sinais de trânsito, alguns instrumentos médicos, controle de temperatura, etc..

 

Os sistemas embutidos de "complexidade média" usam CPUs compatíveis com a família 386 e 486. Sua arquitetura é muito semelhante ou até idêntica à de um PC AT. São empregados em tarefas sofisticadas, como pontos de venda, instrumentos médicos, computadores de bordo, etc..

 

Os sistemas "sofisticados" lançam mão de CPUs compatíveis com a família Pentium e lembram um moderno computador, sem monitor, teclado e disco. Seu emprego está no sistemas dedicados multimídia, na automação de centrais telefônicas, no controle de grandes plantas fabris, etc..

 

 

CISC, RISC ou SISC

 

A maioria dos sistemas embutidos (e também dos microcontroladores) está baseada no conceito CISC – Computador com Conjunto de Instruções Complexo (do inglês "Complex Instruction Set Computer). Uma CPU CISC normalmente tem mais de 100 instruções e muitas delas são poderosas e específicas para realização de algumas tarefas. O programador é muito exigido, pois cada instrução se porta de uma maneira específica. Algumas operam somente em certos espaços de endereços ou registradores e outras podem somente reconhecer um certo tipo de modo de endereçamento. Este tipo de CPU está restrita às CPUs de baixo desempenho, pois uma grande quantidade da área do CI é gasta para implementar a lógica de controle.

 

O conceito RISC, que é o complementar de CISC, está se espalhando pelos sistemas dedicados. O termo RISC significa Computador com Conjunto de Instruções Reduzido (do inglês "Reduced Instructions Set Computer"). Essas máquinas oferecem poucas instruções e, por isso, sua unidade de controle é mais simples permitindo que se logre uma melhor otimização. Os benefícios do RISC, além do melhor desempenho, são um menor CI, uma menor quantidade de pinos e um menor consumo de energia.

 

Com a evolução e desdobramento do mercado de microcontroladores e sistemas embutidos, surge o conceito SISC – Computador com Conjunto de Instruções Específico (do inglês "Specific Instruction Set Computer"). A idéia agora é limitar ou especializar os recursos da CPU em benefício de outras tarefas como I/O, interrupções e acesso à memória e, além disso, incluir instruções que facilitem a manipulação de bits, de canais de I/O, de temporização, etc. Ou seja, a CPU é enxuta e com várias instruções para facilitar as operações de controle.

 

 

A Intel e os Sistemas Embutidos

 

Diversos fabricantes começaram a produzir CPUs especialmente projetadas para o mercado dos sistemas embutidos. Na verdade, elas não foram especialmente projetadas, mas construídas a partir de uma arquitetura já consagrada pelo mercado.

 

A Intel oferece, para os sistemas embutidos, CPUs construídas a partir dos núcleos 186/88, 386 e 486. Tomaremos como exemplo o núcleo da família 386, a partir do qual são construídas as CPUs 386 CX, EX, DX e SX. Vamos particularizar para a CPU 386 EX, cujo diagrama de blocos está na figura 3 e que foi projetada para aplicações embutidas onde são necessários baixo consumo, baixa tensão e alta integração. A integração é conseguida com o fato dessa CPU trazer integrados muitos dos chips comumente usados na família PC. A CPU 386 CX, por sua vez, é projetada para ambientes de baixíssimo consumo e, com esse objetivo, pode até congelar seu relógio. Segundo a Intel, os projetistas de sistemas embutidos compreenderam os benefícios da compatibilidade com a família PC. Quando isso acontece, o projeto do hardware fica bastante facilitado e pode acontecer em paralelo com o projeto do software pois toda a aplicação pode ser desenvolvida num simples PC. Com o desenvolvimento de hardware e software em paralelo, diminui-se o tempo de projeto do sistema e o produto chega mais cedo ao mercado.

 

Figura 3. Diagrama em blocos da CPU 386 EX da Intel,
projetada para o emprego em sistemas embutidos.

 

 

A AMD e os Sistemas Embutidos

 

A AMD oferece, para o mercado de sistemas embutidos, uma enorme quantidade de CPUs, mas em especial vamos estudar sua família Élan, que integra dentro de um único CI um conjunto muito interessante de recursos. Esta família é composta por: SC 300, SC 400 e SC 410. A CPU SC 300 é baseada no núcleo 386 da AMD, enquanto que as SC 400 e SC410 estão baseadas no núcleo 486. Faremos uma rápida abordagem do Élan SC 400, que oferece compatibilidade com o PC AT, ao integrar dentro de um único chip uma grande quantidade de dispositivos. O projeto desta CPU combina o núcleo 486 da AMD, já exaustivamente testado pela indústria, com um enorme conjunto de periféricos em um processo de 0,35 micron.

 

Encapsulados dentro do SC 400 estão um controlador de memória, toda a lógica do PC AT (dois 8259-interrupções, dois 8237-DMA, 8254-temporizador) e mais ainda recursos de computação móvel, que incluem múltiplos PLL para gerar os mais diferentes relógios, recursos para dois slots PCMCIA, controlador gráfico para display LCD, porta infravermelha e gerenciador de energia. Com todos esses recursos, esta CPU está pronta para rodar DOS, Windows e qualquer sistema em tempo real para o x86. Portanto, a CPU SC 400 é ideal para os sistemas embutidos e para os sistemas de computação móvel, onde é muito importante o baixo consumo e o tamanho reduzido. A figura 4 apresenta o diagrama de blocos desta CPU; note que todos os recursos nela mostrados estão integrados dentro de um único CI.

 

Figura 4. Diagrama de blocos da CPU Élan SC 400,
com todos os recursos integrados em um único CI.

 

A diferença entre a SC 400 e a SC 410 é que esta última tem um cache mais eficiente trabalhando no modo contra-escrita. Já a CPU SC 300 é baseada no núcleo 386 da AMD.

 

 

A Especificação PC 104

 

Para terminar este artigo, faremos uma breve exposição da especificação PC 104, que, por sua simplicidade e robustez, é muito empregada na indústria. Quando o mercado de sistemas embutidos começou a crescer, havia o desejo de empregar a arquitetura do PC. Os motivos eram a confiabilidade e a compatibilidade. Porém, havia problemas com o tamanho da placa, com os slots de expansão, que propiciavam maus contatos e precisavam de um "back-plane". Isso, sem falar no preço.

 

A necessidade por um implementação mais compacta, satisfazendo a exigências de espaço reduzido, baixo consumo e confiabilidade na conexão com as placas de espansão, levou ao surgimento da especificação PC 104. Essa especificação traz o nome do PC junto com o número 104, que é a quantidade de pinos que faz a interconexão entre as diversas placas.

 

O fator de forma do PC 104 foi desenvolvido na Califórnia pela Ampro Computers, no final da década de 1980. A especificação foi publicada em 1992, com a finalidade de aumentar sua popularidade. Hoje, cerca de 150 fabricantes comercializam produtos compatíveis com essa especificação, incluindo placas controladoras, software e acessórios. O Consórcio PC 104 (www.controlled.com/pc104/consp1.html) foi criado para manter as especificações, publicar guias, participar de reuniões de padronização e promover negócios envolvendo a especificação PC 104.

 

 

Alguns Sites Interessantes na Área de Sistemas Embutidos

 

Apresentamos a seguir a seleção casual de alguns sites relacionados com sistemas embutidos.
 
Acrosser www.acrosser.com
Adastra Systems www.adastra.com
Applied Microsystems www.amc.com
Arcon Control System www.arcom.com.uk
Bagotronix www.bagotronix.com
BiitWare Research Systems www.bittware.com
Derivation Systems www.derivation.com
Diversified Engineering www.diversifiedengineering.net
JK Microsystems www.jkmicro.com
Megatel Computer www.megatel.ca
Midwest Micro-Tek www.midwestmicro-tek.com
NetBurner www.netburner.com
Remote Processing http://www.rp3.com 
Scidyne www.scidyne.com
Technologic Systems www.t-systems.com
Teknor Industrial www.teknor.com
Tri-M Systems www.tri-m.com
 

_______________________________________________

Ricardo Zelenovsky (zele@leblon.ime.eb.br) e Alexandre Mendonça (alexmend@aquarius.ime.eb.br) são professores do IME e autores dos livros "PC e Periféricos: um Guia Completo de Programação" e "PC: um Guia Prático de Hardware e Interfaceamento - 2a Edição Atualizada e Revisada (1999)" (conteúdos em http://www.mzeditora.com.br).