Arquitetura de Microcontroladores Modernos

Por Ricardo Zelenovsky e Alexandre Mendonça

No artigo deste mês, deixaremos um pouco de lado os processadores de alto desempenho e vamos dar atenção a outros processadores mais simples, mas que realizam grandes trabalhos em nosso dia a dia. Eles são denominados microcontroladores e estão cada vez mais presentes em nossas vidas. Seu surgimento foi possível graças à revolução da microeletrônica, que fez o preço dos circuitos integrados cair consideravelmente. Processadores que antigamente eram caros são comprados a baixo custo e empregados em uma série de sistemas dedicados. Isto está possibilitando o surgimento da chamada "Era da Computação Invisível". Este nome vem do fato de que a maioria dos nossos equipamentos modernos fazem uso de microprocessadores. Aí estão incluídos televisores, vídeo-cassetes, aparelhos de CD e DVD, fornos de microondas, telefones celulares, carros, etc.. Mas por que não projetar CPUs talhadas para o controle de tais aparelhos ? Assim surgiu e cresceu o mercado de microcontroladores, que iremos estudar a seguir.

O que é um microcontrolador ?

Um ponto que precisamos deixar bem claro é a diferença entre microcontrolador e microprocessador. Para esclarecer esse conceito, começamos perguntando como seria o projeto de um sistema de controle, por exemplo para um elevador, usando um microprocessador ? É claro que necessitaríamos de um processador, de memória ROM para o programa, de memória RAM para os dados, de uma porta paralela para dar saída aos acionamentos, de uma outra porta para receber os sinais digitais dos sensores, de uma porta serial para fazermos as configurações e rodarmos os diagnósticos, de um conversor AD para ler o sensor de carga que informa o peso total das pessoas que entraram no elevador, de um temporizador para medir o tempo que a porta deve ficar aberta, dentre outros. Com essa extensa lista, chegamos a um circuito cujo diagrama de blocos mostrado na figura 1.

Figura 1. Diagrama em blocos de um sistema controlador.

Um sistema dessa envergadura demandaria uma placa controladora de tamanho razoável e povoada por uma grande quantidade de circuitos integrados. Neste projeto, precisaríamos despender recursos para rotear e fabricar a placa de circuito impresso, sendo que a confiabilidade, devido à quantidade de componentes, não seria das melhores. Aí surge a pergunta: será que não poderíamos colocar tudo isso dentro de um único CI ? Essa é a idéia básica do microcontrolador: construir um processador, com uma grande quantidade de recursos voltados para o controle. Com isso, o sistema fica muito mais simples e emprega poucos componentes. Dessa forma, a fase de projeto é reduzida e barateada e a confiabilidade aumenta, pois estamos usando uma menor quantidade de CIs e, é claro, a manutenção é também facilitada. Vemos assim uma grande quantidade de vantagens da integração, junto da CPU, dos circuitos necessários aos sistemas de controle. Como não será feito processamento sofisticado, sua CPU não precisa de ter uma grande capacidade de processamento, mas deve oferecer um conjunto de instruções simples, que gere programas pequenos e de rápida execução, ou seja, as instruções devem ser pequenas e velozes. Além disso, é interessante que a CPU possa efetuar expressões "booleanas", pois isso vai facilitar a lógica de controle. É preciso ainda oferecer uma forma simples de se interfacear com outros periféricos que venham a ser adicionados.

Levando em conta tudo que foi dito, chegamos ao diagrama em blocos da figura 2, onde se apresenta a típica arquitetura de um microcontrolador. É claro que, de acordo com a finalidade do microcontrolador, é possível integrar mais recursos e tal possibilidade foi representada pelos blocos rotulados com "etc".

Figura 2. Típica arquitetura de um microcontrolador integrada em um único chip.

Os Fabricantes de Microcontroladores

Esse conceito de microcontrolador se espalhou rapidamente e hoje em dia existe uma grande diversidade de produtos para solucionar os mais diferentes problemas de controle. O primeiro microcontrolador foi lançado pela Intel em 1978 e recebeu a sigla 8048; que depois evoluiu, dando origem à família 8051, em 1983. A Intel ainda oferece a família 8096, que trabalha em 16 bits, possibilitando maior capacidade de processamento. Hoje em dia, uma grande quantidade de fábricas de semicondutores oferece microcontroladores. Dentre elas, citamos a Zilog com sua família Z8, a National com o COP8, a Motorola com o 6811 e a Microchip com seus PICs.

Devido à sua grande aceitação, a família do microcontrolador 8051 passou a ser produzida por outros fabricantes e, é claro, cada um deles introduziu inovações. Por isso, atualmente a família 8051 é a que oferece a maior variedade de opções. Outra vantagem desta família é o fato de não ficarmos dependentes de um único fabricante. Citamos, como os principais fabricantes desta família, a Philips, a Maxim-Dallas, a Atmel e a Analog-Devices. Mais adiante, apresentaremos alguns produtos destas empresas. Vamos agora fazer um breve estudo da arquitetura 8051.

A arquitetura 8051

A arquitetura 8051 especifica os recursos que deverão estar presentes nos microcontroladores compatíveis com esta família. Um ponto interessante nesta arquitetura é que, ao contrário de nossos computadores, ela separa a memória de programa da memória de dados. Essa arrumação da memória em blocos distintos oferece maior versatilidade às aplicações. A figura 3 apresenta um diagrama em blocos com a arquitetura 8051. Vemos que está especificada uma CPU de 8 bits, para a qual já foi definido um conjunto mínimo de instruções. O contador de programa (PC) é de 16 bits, o que permite até 64 KB de memória de programa. Um outro registrador de 16 bits é usado para acessar a memória de dados, o que permite 64 KB de dados. Nota-se que existe a possibilidade da memória de programa (ROM 4KB) ser integrada junto com o chip do processador. A memória RAM interna tem 256 bytes e está dividida em dois blocos de 128 bits. O bloco inferior destina-se a trabalhar como uma outra memória de dados, enquanto que o bloco superior está dedicado aos registradores especiais que controlam os diversos recursos do microcontrolador.

A arquitetura 8051 oferece quatro portas paralelas de 8 bits, denominadas de P0, P1, P2 e P3. Essas portas são bidirecionais e podem ser usadas para receber ou para gerar sinais digitais. Elas também podem ser acessadas bit a bit, ou seja, cada bit da porta pode ser programado como entrada ou como saída. Quando se usa memória externa ao CI, as portas P0 e P2 são consumidas na construção dos barramentos de endereços e dados. Para a geração de pulsos com duração precisa ou para a medição de intervalos de tempo em sinais digitais, existem dois contadores e temporizadores de 16 bits, denominados de "Timers". O bloco denominado "Controlador de Interrupções" trabalha com cinco interrupções. Duas dessas interrupções podem ser pedidas externamente através dos pinos INT0 e INT1, sendo que outras duas interrupções podem ser provocadas pelos contadores e temporizadores. A quinta interrupção é gerada pela porta serial. Esta arquitetura especifica uma porta serial capaz de atender aos requisitos mais usuais de comunicação, por isso a quantidade de bits e a velocidade é programável, e a porta serial gera uma interrrupção tanto na transmissão quanto na recepção de um byte.

Figura 3. Núcleo da família 8051.

Os Fabricantes de 8051

São diversos os diversos fabricantes da arquitetura 8051 e eles adicionam recursos extras, tais como conversores A/D e D/A, geradores PWM, modos de baixo consumo e até relógio permanente, de acordo com o mercado a que se dedicam. Esses recursos todos são mapeados e controlados através de registradores na porção superior da RAM Interna. O projeto original especifica que este processador deveria trabalhar com um relógio de 12 MHz. Entretanto, hoje em dia já se oferece 8051 operando a 60 MHz. A tabela a seguir apresenta alguns microcontroladores de diversos fabricantes. A intenção desta tabela não é fazer comparação, mas sim mostrar a diversidade disponível.

Fabricante

Microcontrolador

Relógio

RAM

ROM

Serial

Timer

AD

Intel

87C51-24

24 MHz

256

4K

1

2

não

Philips

P80C31

12 MHz

128 B

não

1

3

não

Philips

P87C51

12 MHz

128

4 KB

1

3

não

Philips

P87C51MB2

24 MHz

2 KB

4 KB

1

4

não

Philips

P80C552

24 MHz

256

não

2

3

8/10 bits

Atmel

AT87F51

24 MHz

128

4 KB

1

2

não

Atmel

AT87F51RC

24 MHz

512

32 KB

1

3

não

Atmel

AT89C5115

40 MHz

512

18 KB

1

3

8/10 bits

Dallas

DS87C550

33 MHz

1 KB

8 KB

2

3

8/10 bits

Arquitetura ISAC

A Analog Devices vem oferecendo microconversores baseados na arquitetura 8051. Um microconversor é um microcontrolador projetado para controle de processos e que, para isso, conta com conversores AD e DA de alto desempenho, aliado a grandes quantidades de memória Flash. O primeiro chamou-se ADuC812 e foi lançado em 1999. Normalmente, esses chips trazem conversores AD de 12, 16 ou 24 bits multiplexados em 8 canais. Essa quantidade de bits permite uma relação sinal-ruído perto de 70 dB. Usualmente, os dois conversores DA são de 12 bits. Além disso, para garantir precisão nas conversões, existe um circuito que oferece referência interna de 2,5V e um sensor de temperatura. Para fornecer alguns dados mais técnicos, os conversores AD podem trabalhar na taxa de 20 mil conversões por segundo e ainda têm capacidade de fazer transferência via DMA. O DMA é importante para permitir que o conversor trabalhe à velocidade plena sem consumir recurso do processador.

A memória flash pode ter 64 KB destinados para programa e 4 KB para dados. Existe ainda um circuito para carregamento de programas que via porta serial faz a gravação na memória flash. Assim, não são necessários recursos externos para a gravação desta memória. Também existem versões com memória de dados flash, o que é interessante para gravar dados que serão mantidos mesmo na ausência de alimentação. A memória de dados externa pode chegar a até 16 MB, quantidade mais que suficiente para qualquer aplicação de microconversores. Dependendo da versão, esses microconversores podem trazer outros recursos tais como cão de guarda, vigia para tensão de alimentação, interface serial, porta USB, I2C e barramento CAN. O cão de guarda é um circuito que periodicamente verifica o funcionamento do processador e, caso este fique preso em um laço infinito, provoca o reset, obrigando assim o reinício do programa. A vigia de alimentação monitora a tensão de entrada do processador e alerta quando esta atinge um certo limite inferior, antecipando-se a uma falta de alimentação e dando tempo ao processador para guardar na memória flash os dados essenciais.

Conclusão

A rápida evolução da microeletrônica fez aumentar a oferta de produtos microprocessados. Com isso surgiu o conceito de computação invisível, onde usamos produtos microprocessados sem nos darmos conta do fato. Uma grande faixa desses produtos faz uso dos microcontroladores, que na verdade são processadores com uma grande quantidade de recursos integrados. Dentre os microcontroladores, destaca-se a família 8051. É grande a quantidade de fabricantes que oferece esse microcontrolador, sendo que cada um incorpora um determinado conjunto de recursos, o que nos permite uma ampla faixa para seleção. Por isso tudo, apesar dos 20 anos de existência, esse produto ainda é um campeão em aplicações.

Intel: http://www.intel.com/design/embcontrol/index.htm?iid=ipp_home+embed_micro&

Zilog: http://www.zilog.com/products/parts.asp?BusinessLineID=273

National: http://www.national.com/catalog/MicrocontrollerProducts.html

Microchip: http://www.microchip.com/1010/pline/picmicro/index.htm

Motorola: http://e-www.motorola.com/webapp/sps/site/taxonomy.jsp?nodeId=016246

Analog Devices: http://www.analog.com/microconverter

___________________________________________________________

Ricardo Zelenovsky (zele@unb.br) e Alexandre Mendonça (alexmend@ime.eb.br) são engenheiros eletrônicos, professores universitários, editores de "www.mzeditora.com.br" e autores de 7 livros, dentre eles o clássico "PC: um Guia Prático de Hardware e Interfaceamento" - 3a Edição - 2002".