Você está na página 1de 5

http://www.sabereletronica.com.

br/secoes/leitura/504/imprimir:yes

Imprimir

PRODUTOS / Microcontroladores

07/02/2008 12:26:44

PIC32 - Microcontroladores de 32 bits da Microchip


Neste artigo, iremos apresentar os principais recursos da família PIC32MX e discutir as diferenças
entre as arquiteturas de 8, 16 e 32 bits da Microchip

Eng. José Domingos Adriano

Lançada recentemente, a família PIC32 - a mais nova linha de microcontroladores da Microchip - foi
uma grata surpresa para os usuários de microcontroladores PIC, que agora também contam com a
arquitetura de 32 bits.

Para enfrentar a já ampla divulgação e uso de microcontroladores com core ARM, a Microchip dispõe
de componentes de alto desempenho, mas de uso parecido aos microcontroladores das suas demais
linhas. Aposta também em manter o mesmo conjunto de ferramentas de fácil utilização, promovendo
um ambiente único de desenvolvimento para todas as linhas; por fim, oferece componentes
pino-a-pino compatíveis nas famílias PIC32 e PIC24, compatibilidade que também se estende a
periféricos e bibliotecas de software.

Neste artigo, iremos apresentar os principais recursos da família PIC32MX e discutir as diferenças
entre as arquiteturas de 8, 16 e 32 bits da Microchip.

Comparação: 8, 16, 32 bits

A seguir, apresentamos uma breve comparação entre as arquiteturas de 8, 16 e 32 bits da Microchip.


O objetivo é demonstrar que, apesar da grande variedade de componentes, não existe uma
superposição ou substituição, mas sim uma crescente diversidade de soluções para uma diversidade
cada vez maior de necessidades.

A tabela 1 apresenta uma comparação das principais características a serem avaliados em uma
família de microcontroladores.

Tabela 1 - Comparação de alguns atributros das famílias PIC (Fonte: Microchip Line Card)
1
Memória máxima para os compontentes já lançados. A arquitetura, porém, prevê endereçamento
linear até 4 GB.

As famílias de 8 bits (Baseline, Mid-Range e PIC18) são voltadas para aplicações menos complexas e
mais sensíveis ao custo. Existe uma grande variedade de componentes com diferentes recursos, que
permitem encontrar o componente certo para cada aplicação.

Falando-se em 16 bits temos duas opções a considerar, dependendo das necessidades do projeto:
PIC24 ou dsPIC. Para aplicações que requerem microcontroladores superiores aos de 8 bits existem
as famílias PIC24H e PIC24F. Quando surge a necessidade de processamento de sinais pode-se optar
entre duas famílias de controladores de sinais: dsPIC30F e dsPIC33F.

Por fim, a recém lançada família PIC32 traz componentes de maior desempenho para projetos de

1 of 5 06/01/2011 06:45 PM
http://www.sabereletronica.com.br/secoes/leitura/504/imprimir:yes

complexidade ainda maior. Os recursos dessa família permitem a implementação de sistemas


operacionais mais complexos e melhor desempenho em aplicações de conectividade como, por
exemplo, acesso a internet, além de serem mais adequadas para aplicações que processam grandes
quantidades de informação.

Nessa comparação vale também considerar a demanda de processamento do ponto de vista do tipo
da informação a ser processado. Para essa análise deve-se lembrar que a regra que rege o tamanho
das variáveis de tipo inteiro na linguagem C-ANSI é: “um inteiro é do tamanho natural do barramento
de dados do processador, desde que esse seja maior ou igual a 16 bits”. Em virtude disso, nas
arquiteturas de 8 bits um inteiro tem 16 bits e nas arquiteturas de 16 e 32 bits o inteiro tem o mesmo
tamanho do barramento de dados. Operações realizadas com tipos de dados maiores que o
barramento de dados tem uma implementação mais complexa (consomem mais memória e demoram
mais) do que aquelas em que o tipo de dado é menor ou igual ao barramento. Portanto, um mesmo
código escrito em C será executado muitas vezes mais rápido e pode até ocupar menos espaço em
arquiteturas com barramento de dados com mais bits.

A máquina

A nova linha de microcontroladores é baseada no core MIPS32 M4K, que foi desenvolvida pela MIPS
Technologies e licenciada para diversos fabricantes de processadores e microcontroladores,
especialmente para aplicações embarcadas. A opção por utilizar uma tecnologia já pronta em
detrimento de desenvolver sua própria arquitetura de 32 bits é justificada pelo segurança de oferecer
uma tecnologia já madura, consagrada pelo mercado e com grande quantidade de ferramentas já
desenvolvidas.

Figura 1 - Pinagem da família PIC32

Adicionalmente ao core MIPS, o PIC32 apresenta um conjunto de periféricos e funcionalidades muito


semelhantes (em alguns casos idênticos) aos já usados em outras famílias. Isso permite uma fácil
migração e maior reaproveitamento de código.

Dentre as características do PIC32, podemos destacar :

• Processador de alto desempenho de 32 bits;


• Freqüência de trabalho de até 72 MHz;
• Desempenho 1,53 DMIPS/MHz;
• Multiplicação e Divisão em um único ciclo;
• Módulo de pre-fetch de Flash com, 256 Bytes de cache;
• Controlador de interrupções vetoradas e troca rápida de contexto;
• Controlador DMA de 4 canais;
• Manipulação de bit (Atomic bit manipulation);
• Porta paralela mestre operando em modo 8 e 16 bits;
• Power-On Reset, Brown-Out Reset, Low Voltage Detect;
• Resistores de Pull-ups e buffers Open-Drain configuráveis nos pinos de I/O;

2 of 5 06/01/2011 06:45 PM
http://www.sabereletronica.com.br/secoes/leitura/504/imprimir:yes

• Operação de 2,5 a 3,6V, com I/Os tolerantes a 5 V;


• Diversos modos de baixo consumo.

Tabela 2 - Quadro comparativo da família PIC32MX

Arquitetura

A figura 2 ilustra o diagrama em blocos da família PIC32MX.

Figura 2 - Diagrama em blocos da família PIC32MX

O core MIPS32 M4K tem desempenho de 1,53 DMIPS/MHz e possui ainda um modo otimizado para
processamento de 16 bits capaz de realizar 1,2 DMIPS/MHz. O core do PIC32 possui cinco estágios
de pipeline e realiza diversas ações paralelamente, o que garante seu desempenho tão elevado. Para
ter uma idéia do que esse desempenho significa, observe a comparação mostrada na tabela 3.

Tabela 3 - Comparação de desempenho PIC32 versus ARM7 versus ARM9

Na família PIC32MX são suportadas freqüências de clock de até 72 MHz, obtidas através de PLL.
Além de um oscilador principal estão disponíveis mais 3 fontes de clock, incluindo oscilador interno. É
possível mudar de fonte de clock em plena execução do software.

A arquitetura PIC32 permite um endereçamento linear de até 4 GB, incluindo programas e dados.
Apesar do endereçamento linear a matriz de barramento (Bus Matrix) permite o acesso simultâneo e
independente às memórias de dados e programa, o que caracteriza o core MIPS32 M4K como um
processador de arquitetura Harvard. Além disso, existe uma memória cache para armazenar trechos
de código presentes na memória FLASH. A memória cache é uma memória RAM necessária porque o
acesso de leitura da memória FLASH não pode ser feito tão rápido quanto as instruções que são
executadas.

Além da ALU existe também um hardware específico para multiplicação e divisão (MDU –
Multiply/Divide Unit), que possibilita a execução de multiplicações de 32x16 bits em um ciclo de
máquina e de 32x32 bits em dois ciclos.

Outra característica de alto desempenho é o controlador de interrupções. Ele permite trabalhar com
diversos vetores de interrupção, isto é, cada interrupção é tratada em um determinado endereço de
memória, sem necessidade de testes para definir qual interrupção ocorreu. Fora isso, um sistema de
registros sombra (shadow registers) possibilita uma rápida mudança de contexto.

Existe ainda um controlador DMA de quatro canais. Esse controlador pode operar enquanto o
microcontrolador está em modo IDLE (processador desligado), garantindo assim atividade no
microcontrolador mesmo quando está em modo de baixo consumo.

3 of 5 06/01/2011 06:45 PM
http://www.sabereletronica.com.br/secoes/leitura/504/imprimir:yes

Outra funcionalidade muito importante é a capacidade de manipulação de bits individuais nos registros
de controle dos periféricos e I/O. Quem está acostumado a aplicações embarcadas sabe da
importância de se manipular bits de forma eficiente e rápida. Esse recurso, no entanto, poucas vezes é
encontrado em sistemas de mais alto desempenho. Através de um engenhoso esquema de registros, é
possível zerar, setar e inverter bits individualmente, com o mínimo de instruções.

Por fim, o PIC32 possui um regulador de tensão interno para alimentar o core, que opera com 1,8 V.
Dessa forma o projeto do hardware torna-se bastante simplificado, uma vez que uma única fonte de
2,5 a 3,6 V é necessária para alimentar o microcontrolador.

Periféricos

Podemos considerar os portais de I/O como os mais simples periféricos. Neles, além da já citada
capacidade de manipular bits individualmente, é possível habilitar um resistor de pull-up para cada
porta quando configurada como entrada. Outra funcionalidade interessante é poder configurar os
drivers de saída como do tipo Open-Drain; dessa maneira é possível, pela simples adição de um
resistor externo ligado a +5 V, tornar as saídas do microcontrolador compatíveis com circuitos
alimentados com esta tensão. Por fim, existe um sistema de “notificação de mudança” que viabiliza
monitorar se houve alteração no estado de entradas e até requisitar uma interrupção.

O que é DMIPS/MHz?

Muitas vezes encontra-se a especificação de desempenho de CPU’s dada em DMIPS/MHz e não


MIPS. MIPS (Milhões de Instruções por Segundo - Million Instructions per Second) dá uma idéia da
velocidade de execução de um processador em uma dada freqüência de clock. Essa unidade nos
permite fazer um comparativo da velocidade de execução entre dois componentes com a mesma
arquitetura, mas deixa de fazer sentido quando se compara arquiteturas diferentes, porque diferentes
implementações de instruções podem realizar a mesma tarefa em tempos diferentes. Para possibilitar
a comparação de desempenho entre diferentes arquiteturas foi criado um algoritmo chamado
Dhrystone com o objetivo de simular as operações comumente encontradas em um programa real.
Quando executado, esse algoritmo retorna quantas vezes o loop principal foi executado por unidade de
tempo. De posse da taxa de Dhrystones/segundo (D/s) normaliza-se o valor em função de um
processador de referência, que realiza 1757 interações Dhrystone por segundo operando a 1 MIPS, ou
seja, ao dividir o valor de D/s por 1757 obtém-se a taxa de DMIPS. Para permitir a comparação
independente do clock da CPU divide-se o valor de DMIPS pelo clock usado na execução do testes e
se obtém a medida de DMIPS/MHz.

Outro periférico que merece destaque especial é a Porta Paralela Mestra (PMP – Parallel Master Port).
Essa porta, até hoje presente apenas em alguns modelos da família PIC24, permite o controle de
dispositivos paralelos de 8 e 16 bits, tais como: displays QVGA, memórias FLASH e SRAM e
dispositivos de comunicação com interface paralela. Podendo operar em modo 8 ou 16 bits, essa porta
disponibiliza até 16 bits de endereço, além de sinais de RD, WR e dois Chip Select’s. Infelizmente não
é possível executar programas armazenados em uma memória externa, mas novos componentes da
família com certeza apresentaram soluções para aproveitar os 4 GB de endereçamento linear
suportados pela arquitetura.

O PIC32 possui ainda cinco timers de 16 bits que podem ser associados para formar timers de 32 bits,
e um RTCC, com contagem de data e hora e alarmes programáveis.

Além destes periféricos, vale ressaltar a presença de múltiplas portas de comunicação (USART, SPI e
I2C), o ADC de 10 bits, os diversos PWM e os comparadores
analógicos.

Ferramentas

Talvez umas das principais vantagens para quem já usa outras arquiteturas PIC seja o emprego das
mesmas ferramentas por todas as famílias. A curva de aprendizado
fica bastante reduzida pelo fato de se usar ferramentas já conhecidas e permite chegar a resultados

4 of 5 06/01/2011 06:45 PM
http://www.sabereletronica.com.br/secoes/leitura/504/imprimir:yes

práticos em menos tempo.

O MPLAB é o ambiente de desenvolvimento utilizado. A partir da versão 8.0, ele já suporta os PIC32.
Além do suporte ao compilador C e a ferramentas de gravação e depuração, o MPLAB possui um
simulador que possibilita realizar os primeiros testes mesmo sem ter qualquer hardware em mãos.

Diversas ferramentas de desenvolvimento também são comuns a todas as famílias Microchip. Isso
significa que vários equipamentos para gravação e depuração que o leitor já tem podem ser usados
com os novos modelos. Tanto o Real ICE quanto o ICD-2 estão aptos a trabalhar com PIC32. Foi
lançado também um novo kit específico para a nova linha, o PIC32MX Starter Kit.

Por fim, o uso da linguagem C permite uma fácil migração e grande reaproveitamento de código. O
compilador C32 atende integralmente as especificações do padrão ANSI, assim como o C18 e o C30.
Isso garante uma fácil migração entre esses compiladores, limitando as mudanças necessárias às
especificidades de cada componente. O compilador C32 está disponível para download no site da
Microchip em uma versão de avaliação totalmente funcional limitada em 16 kB de programa.
Preenchendo um cadastro é possível obter uma licença que permite gerar programas de até 64 kB
com o compilador.

Há diversas notas de aplicação (Application Notes) para a nova família de microcontroladores, focadas
em aplicações de conectividade embarcadas, já estão disponíveis: uma pilha TCP/IP, exemplos de
servidores HTTP e FTP e de um agente SNMP.

Conclusão

A Microchip lança a família PIC32MX seguindo uma inegável tendência do mercado de


microcontroladores para o uso de arquiteturas de 32 bits. Essa tendência, por sua vez, é justificada
pela demanda de aplicações embarcadas cada vez mais complexas, onde a conectividade deixou de
ser um diferencial e passou a ser um item esperado.

Os PIC32 são componentes que apresentam desempenho superior a outras linhas da mesma classe e
possuem um rico conjunto de periféricos e ferramentas de fácil utilização.

Para os desenvolvedores já habituados a usar microcontroladores PIC a notícia de poder trabalhar


com 32 bits “sem sair de casa” é muito bem recebida.

A primeira família apresentada, a PI-C32MX, é com certeza a ponta do iceberg. Devemos esperar para
o futuro componentes com outros recursos como drivers para displays VGA, periféricos de Ethernet e
USB integrados, acesso a memória de programa e dados externas. Este último recurso permitirá, por
exemplo, o uso de sistemas operacionais mais complexos como o Linux. Para obter mais informações
clique aqui.

Extraído do Portal Saber Eletrônica Online - Todos os direitos reservados - www.sabereletronica.com.br

5 of 5 06/01/2011 06:45 PM