Meio Bit » Baú » Indústria » À Procura do S.O. Perfeito ( parte II )

À Procura do S.O. Perfeito ( parte II )

27/08/2006 às 9:37

Vários leitores reclamaram que fui muito breve na descrição do processo de escolha do microprocessador a ser utilizado no projeto. Realmente, relendo agora, talvez tenha deixado uma sensação de "quero mais"... portanto, nesta parte do artigo, vou mostrar algumas famílias utilizadas em sistemas embarcados, suas características e funcionalidades.Microcontroladores versus Microprocessadores

É bom fazer logo essa diferenciação: microprocessadores são componentes eletrônicos que conseguem acessar dados e ou instruções numa memória, processá-los e gravar dados nessa mesma memória. Podem contar com alguma memória interna, mas apenas para agilizar o processamento ( as memórias cache ).

Já os microcontroladores, são dispositivos que possuem, no mesmo encapsulamento, uma unidade de processamento, memória RAM ( volátil ), memória não-volátil ( Flash, ROM ou EEPROM, por exemplo ) e vários periféricos ( como interfaces USB, Ethernet, portas de comunicação serial etc... ).

8 Bits Dominam o Mundo

Zilog Z80

Um dos processadores mais vendidos de todos os tempos é o Zilog Z80. Desenvolvido em 1976, já foi tão dominante quanto a família Pentium é hoje. Também foi utilizado ( ou alguma variação do chip ) em calculadoras da Texas Instruments, máquinas de fliperama, no Nintendo GameBoy e até em controladoras SCSI.

Podendo acessar 64kB de memória, os endereços de I/O podem chegar, oficialmente, a 256. Tem dois bancos com oito pares de registradores de 8 bits, para uso geral e um acumulador, também de 8 bits. Para o "refresh" de memórias dinâmicas, praticamente toda lógica já está embutida no chip. É um projeto CISC muito conhecido e amplamente estudado.

Apesar de ainda ser produzido, é mais comum que novos projetos usem a versão Z8. A "perda" do zero não significa que seja um chip "menor". É, basicamente, um núcleo compatível com as instruções Z80 "rodeado" de periféricos ( memória Flash, memória RAM, comparadores analógicos, conversores A/D e D/A etc... ).

A grande vantagem da família é ser amplamente conhecida pelos projetistas. É extremamente comum encontrar quem programe em assembly Z80. É claro que compiladores C, RTOSes e ferramentas de depuração existem, mas há momentos em que só programando em assembly é possível resolver um problema.

Infelizmente, como o pré-requisito do projeto é rodar um sistema operacional com amplo suporte e ter poder de processamento razoável, para rodar filtros digitais, por exemplo, a família Zilog foi descartada. Mas é muito popular e, como foi nela que aprendi a programar, tenho uma ligação sentimental...

Microchip PIC

Os microcontroladores PIC da Microchip foram desenvolvidos, originalmente, em 1975. São um projeto RISC, com poucas instruções ( alguns chegam a ter apenas 35 delas ) e bem rápidos.

Esses processadore têm ganho muitos adeptos entre as escolas de eletrônica e é fácil encontrar "kits de desenvolvimento", tanto na internet quanto em lojas de material eletrônico. Essa popularidade contribui para uma adoção crescente na indústria, já que muitos bons projetistas os estão adotando.

A família PIC oferece muitas facilidades para a programação em assembly mas a divisão da memória em páginas, em conjunto com a pilha feita em hardware são seu calcanhar de Aquiles.

Explico: "pilha" é um tipo de registrador especial, onde o microprocessador guarda informações como o endereço para onde voltar depois de uma interrupção. Quanto mais interrupções ocorrerem simultâneamente, maior deve ser o tamanho da pilha. Nos PICs, a pilha não é armazenada na RAM, mas numa quantidade fixa de memória "reservada" para isso, o que pode dificultar alguns desenvolvimentos.

Apesar de serem muito rápidos, também foram descartados para o projeto, pelas limitações naturais aos processadores de 8 bits, como o pequeno espaço para endereçamento ( a maioria dos chips não tem barramento de dados e de endereços externo ).

Freescale 68HC08

A divisão de semicondures da Motorola foi "renomeada" há algum tempo para "Freescale". Assim, fica mais fácil colocar um chip Motorola num celular Nokia, por exemplo...

Descendentes do antigo processador 6800, a família de microcontroladores de 8 bits chamada 68HC08 é apenas uma entre as várias oferecidas pela empresa. É a primeira escolha entre vários projetistas, por seu design extremamente simples, eficiente e barato. Têm um projeto CISC convencional, com inúmeras configurações de memória e periféricos. São realmente bons chips, mas a ferramenta de desenvolvimento da Freescale ( o CodeWarrior ) é muito cara e os novatos costumam se enrolar um pouco com a interface. Felizmente, há dezenas de outros fabricantes de compiladores e IDEs.

Outras Famílias

Existem várias outras famílias de chips, mas ficou bem claro, já no início da pesquisa, que os processadores de 8 bits não dariam conta do recado. Não entendam mal, existem milhares de aplicações onde eles fazem muito bem o trabalho. No entanto, não é esse o caso.

Parti então, para outras opções. Processadores maiores, de 16 ou 32 bits.

Nessa faixa, só havia trabalhado com os iMX21, da Freescale. Voltados para multimídia, são extremamente poderosos mas têm uma pequena desvantagem: o encapsulamento é do tipo BGA ( pequenas 'bolinhas' sob o chip, impossíveis de soldar à mão ou com equipamento barato ).

Como o custo era uma das principais exigências, processadores nesse encapsulamento eram sumariamente descartados. Sobrava a alternativa de achar algo similar mas que fosse mais acessível.

Chips ARM

O núcleo dos iMX21 são processadores ARM ( acrônimo de Advanced RISC Machine ). Um projeto de 32 bits, muito poderoso e que gasta pouca energia. Ao contrário dos chips vistos até agora, não existe um único fabricante de processadores ARM. É um projeto licenciado, de forma que se pode encontrar ARMs da Freescale, da Philips, da Samsung, da Cirrus etc...

Outras grandes vantagens da família ARM: existem muitos sistemas operacionais ( Linux inclusive ) e a comunidade de usuários é imensa. Estima-se que 75% dos projetos de dispositivos portáteis de consumo usem um desses chips.

Bastava encontrar um fabricante que tivesse, além do núcleo ARM, periféricos agregados que satisfizessem as necessidades do projeto. Não posso revelar nossa escolha, mas está entre os fabricantes que citei.

Restava, agora, escolher o S.O. E, assim, continuaremos nossa "saga" no próximo artigo.

relacionados


Comentários