Escolar Documentos
Profissional Documentos
Cultura Documentos
�ndice
1 Hist�ria
1.1 Do controle de portas para controlador RISC
2 Arquitetura de n�cleo
2.1 Espa�o de Dados (RAM)
2.2 Espa�o de Instru��es
2.3 Palavra de mem�ria
2.4 Pilhas
2.5 Conjunto de Instru��es
2.6 Desempenho
2.7 Vantagens
2.8 Limita��es
2.9 Desenvolvimento de Compiladores
3 Diferen�as arquiteturais
4 Dispositivos com n�cleo b�sico (12 bits)
4.1 Dispositivos intermedi�rios (14 bits)
4.2 Microcontroladores PIC32 de 32 bits
5 Programa��o e desenvolvimento
6 Perif�ricos internos
7 Modelos comuns de PICs
8 Refer�ncias
9 Liga��es externas
Hist�ria
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 de 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 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).
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.
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').
Arquitetura de n�cleo
A arquitetura do PIC � caracterizada pelos seus m�ltiplos atributos:
Espa�o de Instru��es
O espa�o de instru��es geralmente � implementado como ROM, EPROM ou flash ROM. Em
geral, a mem�ria de instru��es externa n�o � endere��vel directamente devido �
falta de uma interface de mem�ria externa. As exce��es s�o PIC17 e selecione
dispositivos PIC 18 com grande quantidade de pinos.[5]
Palavra de mem�ria
Todos os PICs manipulam (e endere�am) dados em blocos de 8 bits. No entanto, a
unidade de endere�amento do espa�o de c�digo geralmente n�o � o mesmo que o espa�o
de dados. Por exemplo, fam�lias de PICs na linha de base (PIC12) e mid-range
(PIC16) t�m mem�ria de instru��es endere��vel no mesmo tamanho como a largura de
instru��o, ou seja, 12 ou 14 bits, respectivamente. Em contraste, na s�rie PIC18, a
mem�ria de instru��es � dirigido em incrementos de 8 bits (bytes), que difere da
largura da instru��o de 16 bits.
Pilhas
PICs t�m uma pilha de chamadas implementada em hardware, que � utilizada para
guardar endere�os de retorno. A pilha de hardware n�o � acess�vel por software em
dispositivos anteriores, mas isso mudou com os dispositivos da s�rie 18.
Suporte de hardware para uma pilha de par�metros de uso geral era ausente em s�ries
anteriores, mas isso melhorou muito na s�rie 18, fazendo com que a arquitetura da
s�rie 18 mais amig�vel para compiladores de linguagem de alto n�vel.
Conjunto de Instru��es
Instru��es de um PIC podem variar de cerca de 35 instru��es (PICs mais simples)
para mais de 80 instru��es para os PICs high-end. O conjunto de instru��es inclui
instru��es para executar uma variedade de opera��es em registros diretamente, o
acumulador e uma constante literal ou o acumulador e um registrador, bem como para
a execu��o condicional, e saltos de execu��o.
Algumas opera��es, como bit setting e testes, pode ser realizada em qualquer
registrador numerado, mas opera��es aritm�ticas bi-operando sempre envolvem o W
(acumulador), escrevendo o resultado de volta para W ou outro registrador operando.
Para carregar uma constante, � necess�rio carreg�-lo em W antes de ser transferida
para outro registrador. Nos cores mais antigos, todos os movimentos de registrador
precisavam passar por W, mas isso mudou nos n�cleos "high-end".
N�cleos do PIC tem instru��es de saltos que s�o utilizados para a execu��o
condicional e desvios. As instru��es de salto s�o "skip if bit set" e "skip if bit
not set". Porque os n�cleos anteriores ao PIC18 tinham apenas instru��es de desvio
incondicional, saltos condicionais s�o implementados por um desvio condicional (com
a condi��o oposta), seguido de um desvio incondicional. Pulos tamb�m s�o de
utilidade para a execu��o condicional de qualquer instru��o simples imediatamente
seguinte. Tamb�m � poss�vel pular instru��es de salto. Por exemplo, a sequencia de
instru��es "pular se A; pular se B; C" ir� executar C se A � verdadeiro ou B for
falso.
Vantagens
Pequeno conjunto de instru��es para aprender
Arquitetura RISC
Oscilador embutido com velocidade selecion�vel
Kits de desenvolvimentos para iniciantes dispon�veis por menos de 50 d�lares
Microcontroladores baratos
Grande disponibilidade de interfaces, como USB, I�C, SPI, Ethernet, entre outros[6]
Disponibilidade de processadores em pacote DIL torn�-los f�ceis de manusear para
uso como hobby.
Limita��es
Um acumulador
Bank switching por registrador � necess�rio para acessar a RAM em diversos
dispositivos
Opera��es e registradores n�o s�o ortogonais; algumas instru��es podem endere�ar
RAM e/ou constantes imediatas, enquanto outros podem usar apenas o acumulador.
As seguintes limita��es em pilhas foram corrigidos na s�rie PIC18, mas ainda s�o
presentes em PICs anteriores:
Desenvolvimento de Compiladores
Enquanto v�rios compiladores comerciais est�o dispon�veis, em 2008, a Microchip
lan�ou seus pr�prios compiladores C, C18 e C30, para a linha de processadores 18F
24F e 30/33F.
A partir de 2013, a Microchip oferece sua s�rie de compiladores XC, para uso com
MPLAB X. Microchip acabar� por eliminar gradualmente os seus compiladores mais
antigos, como C18, e recomenda o uso de seus compiladores s�rie XC para novos
modelos.
Diferen�as arquiteturais
Os PICs usam a arquitetura Harvard, e as palavras de instru��o possuem tamanhos
incomuns. Originalmente, instru��es de 12 bits inclu�am endere�o de 5 bits para
especificar o operando em mem�ria, e destinos de desvios de 9 bits. Revis�es
posteriores adicionaram bits aos c�digos de opera��es (opcode), permitindo
adicionar bits para endere�os.
O espa�o de endere�o ROM � de 512 palavras (12 bits cada), que podem ser estendidos
a 2048 palavras por comuta��o. Instru��es CALL e GOTO especificar as �ltimos 9 bits
do novo local do c�digo; bits de ordem superior adicionais s�o tomadas a partir do
registrador de status. Note-se que a instru��o CALL inclui apenas 8 bits de
endere�o, e s� pode especificar endere�os no primeira metade de cada p�gina de 512
palavras.
A arquitetura PIC32 traz uma s�rie de novos recursos para portf�lio da Microchip,
incluindo:
A maior velocidade de execu��o: 80 MIPS (mais de 120 MIPS @ 80 MHz com o benchmark
Dhrystone[10])
A maior mem�ria flash: 512 KB
Execu��o de uma instru��o por ciclo de clock
O primeiro processador com cache
Permite a execu��o a partir RAM
O pr�ximo produto da Microchip ser� a fam�lia de microcontroladores PIC32MZ.
Programa��o e desenvolvimento
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 gratuito 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.
Perif�ricos internos
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
PIC16F84/PIC16F84A
PIC16F628/PIC16F628A
PIC16F877/PIC16F877A
PIC18F452/PIC18F4520
PIC16F876
PIC24F/PIC24H
Refer�ncias
�PIC Device Documentation� (PDF)
"MOS DATA 1976", General Instrument 1976 Databook
"1977 Data Catalog", Micro Electronics from General Instrument Corporation
http://www.rhoent.com/pic16xx.pdf Arquivado em 15 de agosto de 2011, no Wayback
Machine.
http://ww1.microchip.com/downloads/en/DeviceDoc/35007b.pdf
http://ww1.microchip.com/downloads/en/AppNotes/00869b.pdf
http://www.microchip.com/maps/microcontroller.aspx
http://massmind.org/techref/microchip/pages.htm
PIC10F200/202/204/206 Data Sheet (PDF). [S.l.]: Microchip Technology. 2007. p. 52
http://ww1.microchip.com/downloads/en/DeviceDoc/61177a.pdf
http://www.microchip.com/en_US/family/32bit/