Microcontrolador PIC

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Searchtool.svg
Esta página ou secção foi marcada para revisão, devido a inconsistências e/ou dados de confiabilidade duvidosa (desde dezembro de 2008). Se tem algum conhecimento sobre o tema, por favor, verifique e melhore a consistência e o rigor deste artigo. Considere utilizar {{revisão-sobre}} para associar este artigo com um WikiProjeto e colocar uma explicação mais detalhada na discussão.
Text document with red question mark.svg
Este artigo ou secção contém uma ou mais fontes no fim do texto, mas nenhuma é citada no corpo do artigo, o que compromete a confiabilidade das informações. (desde dezembro de 2013)
Por favor, melhore este artigo introduzindo notas de rodapé citando as fontes, inserindo-as no corpo do texto quando necessário.

Os PIC (PICmicro): são uma família de microcontroladores fabricados pela Microchip Technology, que processam dados de 8 bits, de 16 bits e, mais recentemente, de 32 bits. Seu nome é oriundo de "Programmable Interface Controller" (Controlador de Interface Programável). Contam com extensa variedade de modelos e periféricos internos. Possuem alta velocidade de processamento devido a sua arquitetura Harvard e conjunto de instruções RISC (conjuntos de 35 instruções e de 76 instruções), com recursos de programação por Memória flash, EEPROM e OTP. Os microcontroladores PIC têm famílias com núcleos de processamento de 12 bits, 14 bits e 16 bits, e trabalham em velocidades de 0kHz (ou DC) a 48MHz e velocidades de 16 MIPS em alguns modelos. Há o reconhecimento de interrupções tanto externas como de periféricos internos. Funcionam com tensões de alimentação de 1.8 a 6V e os modelos possuem encapsulamento de 6 a 100 pinos em diversos formatos (SOT23, DIP, SOIC, TQFP, etc).

História[editar | editar código-fonte]

As raízes dos PICs se originaram na universidade de Harvard com um projeto para o Departamento de Defesa, mas este foi vencido por um projeto de memória mais simples (e mais confiável na época) da Universidade de Princeton. A arquitetura Harvard foi primeiramente usada no 8x300 da Signetics, e foi adotada pela General Instruments para uso como interface controladora de periféricos (PIC) que foi projetada para compensar o fraco barramento de I/O da sua CPU CP1600 de 16 bits. A divisão de microeletrônica foi depois transformada na Arizona Microchip Technology (por volta de 1985), com os PICs como seu produto principal. Os PICs tinham um grande conjunto de registradores (de 25 a 192 registradores de 8 bits, comparado com os 144 do Z8). Existem até 31 registradores diretos, mais um acumulador W, embora R1 a R8 também tenham funções especiais - R2 é o PC (com uma pilha implicita de 2 a 16 níveis), e R5 a R8 controlam as portas de I/O. R0 é mapeado no registrador R4 (FSR) e serve como apontador (semelhante ao ISR no F8, ele é o único meio de se acessar o registrador R32 ou acima).

O PIC16x é muito simples, tem somente 33 instruções de 12 bits de largura fixa, incluindo diversas instruções de salto condicional a flags para a próxima instrução (para loops e rotinas condicionais), produzindo um código enxuto importante para aplicações em sistemas embarcados. Ele tem pipelines marginais (2 estágios, 1 de busca e 1 de execução), combinados com execução em um ciclo (exceto para saltos, com 2 ciclos), tendo um desempenho muito bom para a sua categoria.

O PIC 17x tem mais modos de endereçamento (direto, indireto, e relativo; as instruções de modo indireto gastam 2 ciclos para execução), mais instruções (58 de 16 bits), mais registradores (232 a 454), mais até 64k palavras de espaço de programa (2k a 8k no chip). As versões top de linha também possuem instruções de multiplicação de 8 bits sem sinal de 1 ciclo. Esse modelo está obsoleto, não sendo mais recomendado para novos projetos de acordo com a Microchip.

O PIC 16x é uma variante interessante do projeto de 8 bits feita por volta de 1985 pela General Instruments com técnicas de projeto mais inovadoras do que a de outras CPUs da lista (o 1650, o sucessor do 1600 mais comum). Ela perdeu para outras CPUs mais populares e foi posteriormente vendida para a Microchip Technology, que ainda o vende para pequenas aplicações em sistemas embarcados. Um exemplo deste microcontrolador é uma pequena placa chamada Basic Stamp. que consiste em 2 circuitos integrados (1 PIC 16C56 de 18 pinos, um interpretador Basic em 512 palavras de ROM e uma memória EEPROM serial de 256 bytes) com uma porta de I/O onde os programas do usuário podem ser armazenados (por volta de 80 linhas de comando de Basic).

Do controle de portas para controlador RISC[editar | editar código-fonte]

Em 1965 a General Instruments criou a divisão de microeletrônica, e sem dúvida usou esta divisão para gerar algumas das primeiras arquiteturas de memórias EPROM e EEPROM viáveis. A Divisão de Microeletrônica da General Instrumens foi responsável também por uma grande variedade de funções digitais e analógicas, com as famílias AY3-xxxx e AY5-xxxx.

A General Instruments também criou um microprocessador de 16 bits chamado CP1600, no começo dos anos 70. Era um microprocessador razoável, mas especialmente era pobre em portas de entrada e saída. Para algumas aplicações muito específicas onde as portas de I/O eram necessárias, a General Instruments projetou uma interface controladora de periféricos (ou PIC abreviadamente, de Peripherical Interface Controller em inglês), por volta de 1975. Ele era projetado para ser muito rápido, dado que era para ser portas de I/O de uma máquina de 16 bits, mas não tinha uma grande capacidade de funcionalidade, tendo um conjunto de instruções microcodificadas pequeno. A arquitetura projetada em 1975 é substanciamente a arquitetura de hoje do PIC16C5x. A versão de 1975 foi fabricada em NMOS, e era somente disponível em versões ROM mascaradas. O mercado, contudo, não pensava particularmente assim, e os PICs permaneceram projetados somente para um punhado de grandes clientes.

No final dos anos 80, a General Instruments fez uma grande revisão no seu negócio e se restruturou, deixando para se concentrar nas suas atividades principais, que eram essencialmente semicondutores de potência. A Divisão de Microeletrônica da General Instruments se tornou a General Instruments Microelectronics Inc. (subsidiária integral), da qual 85% foi finalmente vendida para alguns investidores, incluindo a fábrica em Chandler, no Arizona. O pessoal desses investidores analisou profundamente a linha de produtos e fez uma limpeza na maioria deles, como a linha AY3 e AY5 e outros produtos, restando como negócio principal os PICs e as EEPROMs paralelas. Houve uma decisão de reiniciar uma nova empresa, chamada Arizona Microchip Technology.

PIC1655A-748

Como parte da estratégia, a família NMOS PIC165X foi reprojetada para usar um recurso em que a empresa era muito, o EPROM, o conceito de ser baseado em CMOS, one-time-programmable e assim a família PIC16C5X de memória de programa EPROM apagável tinha nascido.

PIC é uma família de microcontroladores RISC fabricada pela Microchip, derivada do PIC1650 originalmente desenvolvida pela divisão de microeletrônica da General Instruments. A Microchip não usa PIC como um acrônimo, na realidade a marca é PICmicro. Geralmente é conhecido que PIC significa Peripherical Interface Controller, embora o acrônimo original para o PIC1650 era Programmable Intelligent Computer.

O PIC original foi fabricado para ser usado com a nova CPU de 16 bits da General Instruments, o CP1600. Apesar de ser uma boa CPU, o CP1600 tinha fraco desempenho de portas de I/O, e o PIC de 8 bits foi desenvolvido em 1975 para melhorar o desempenho do sistema em geral liberando as tarefas de I/O da CPU. O PIC usava simples microcódigos armazenados na ROM para desempenhar suas tarefas, e e embora o termo não tenha sido usado na época, ele tinha um projeto RISC que executava uma instrução por ciclo (4 ciclos de 'clock').

Em 1985, a General Instruments vendeu a divisão de microeletrônica, e os novos donos cancelaram quase tudo, o que na época era obsoleto. Os PICs contudo, foram atualizados com EPROM para produzir um controlador programável, e hoje uma grande variedade de PICs é disponível com vários periféricos internos (módulos de comunicação serial, UARTS, núcleos de controle de motores, etc.) e memória de programa de 512 a 32k palavras.

Programação e desenvolvimento[editar | editar código-fonte]

Como qualquer arquitetura os processadores PIC apenas aceitam linguagem de máquina (assembly). No entanto a programação pode ser feita em linguagens de alto nível utilizando-se compiladores. Existem várias alternativas pagas de compiladores. Em geral é possivel utilizá-los de modo gratuito com algumas restrições. Para as famílias PIC16 e PIC18 existe uma alternativa opensource o SDCC, que pode ser configurado para operar com o MPLAB.

Existem ainda diversas IDE's disponíveis para a programação, entre elas a mais utilizada é o MPLAB, disponibilizado de modo gratuíto pela própria Microchip. Há atualmente uma versão beta de IDE baseada no Netbeans sendo desenvolvida pela Microchip: MPLABX. Esta IDE já vem com suporte para qualquer Windows, Mac e Linux.

Para gravar o programa no microcontrolador é utilizado um dispositivo dedicado. É comum que tais dispositivos também possuam capacidade de depurar o programa, o que auxilia muito na fase de testes dos sistemas. É possivel ainda encontrar diversas placas de desenvolvimento que já possuem um hardware pré-montado de modo a agilizar o projeto de um produto, permitindo que se comece a desenvolver o software em paralelo com o hardware.

Periféricos internos[editar | editar código-fonte]

Dispositivos PIC

Seus principais periféricos internos (a disponibilidade varia conforme o modelo):

  • USARTs
  • Controladores de comunicação I2C, SPI, USB e Paralelo
  • Controladores PWM
  • Controladores de LCD
  • Controladores de motores
  • Gerador de energia de alta potência
  • Periféricos para LIN, CAN
  • Controladores Ethernet
  • Periféricos IRDA
  • Codificadores para criptografia Keeloq
  • Watchdog timer
  • Detetores de falha na alimentação
  • Portas digitais com capacidade de 25mA (fornecer ou drenar) para acionar circuitos externos
  • Osciladores internos
  • RTCC - Real Time Clock and Calendar (Relógio de tempo real e calendário)
  • Tecnologia Deep Sleep - consumo de nano Watt
  • CRC - Cyclic Redundancy Check programável

Modelos comuns de PICs[editar | editar código-fonte]

Referências


Ligações externas[editar | editar código-fonte]

Portal A Wikipédia possui o portal: