Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
Microcontrolador PIC
Origem: Wikipdia, a enciclopdia livre.
ndice
1 Histria
1.1 Do controle de portas para controlador RISC
2 Arquitetura de ncleo
2.1 Espao de Dados (RAM)
2.2 Espao de Instrues
2.3 Palavra de memria
2.4 Pilhas
2.5 Conjunto de Instrues
2.6 Desempenho
2.7 Vantagens
2.8 Limitaes
1 de 18
12-05-2016 08:36
3
4
5
6
7
8
9
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
Histria
As razes dos PICs se originaram na universidade de Harvard com um projeto
para o Departamento de Defesa, mas este foi vencido por um projeto de
memria mais simples (e mais convel 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 perifricos (PIC) que foi projetada para compensar o fraco
barramento de I/O da sua CPU CP1600 de 16 bits. A diviso de microeletrnica
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 tambm tenham funes especiais - R2 o PC (com uma pilha
implicita de 2 a 16 nveis), 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 instrues de 12 bits de largura
xa, incluindo diversas instrues de salto condicional a ags para a prxima
instruo (para loops e rotinas condicionais), produzindo um cdigo enxuto
importante para aplicaes em sistemas embarcados. Ele tem pipelines
marginais (2 estgios, 1 de busca e 1 de execuo), combinados com execuo
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 endereamento (direto, indireto, e relativo; as
instrues de modo indireto gastam 2 ciclos para execuo), mais instrues
(58 de 16 bits), mais registradores (232 a 454), mais at 64k palavras de
espao de programa (2k a 8k no chip). As verses top de linha tambm
possuem instrues de multiplicao de 8 bits sem sinal de 1 ciclo. Esse
modelo est obsoleto, no 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 tcnicas de projeto mais inovadoras do
2 de 18
12-05-2016 08:36
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
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 aplicaes 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
memria EEPROM serial de 256 bytes) com uma porta de I/O onde os
programas do usurio podem ser armazenados (por volta de 80 linhas de
comando de Basic).
3 de 18
12-05-2016 08:36
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
Arquitetura de ncleo
A arquitetura do PIC caracterizada pelos seus mltiplos atributos:
Espaos separados de instrues e dados (Arquitetura Harvard).
Um pequeno nmero de instrues de tamanho xo.
A maioria das instrues so de execuo de nico ciclo (2 ciclos de clock,
ou 4 ciclos de clock em modelos de 8 bits), com um ciclo de atraso em
desvios (branch) e saltos.
Um acumulador (W0), cuja utilizao (como fonte operando) est implcita
(ou seja, no codicado no cdigo de operao, ou opcode).
Todos os locais de memria RAM funcionam como registradores como
fonte e / ou destino de matemtica e outras funes[4] .
Uma pilha em hardware para armazenamento de endereos de retorno.
Uma pequena quantidade de espao de dados enderevel (32, 128, ou
256 bytes, dependendo da famlia), alargada atravs de banking.
Sinalizadores de status da ULA so mapeados para o espao de dados.
O Program Counter tambm mapeado no espao de dados e gravvel
(este usado para implementar saltos indirectos).
4 de 18
12-05-2016 08:36
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
Espao de Instrues
O espao de instrues geralmente implementado como ROM, EPROM ou
ash ROM. Em geral, a memria de instrues externa no enderevel
directamente devido falta de uma interface de memria externa. As excees
so PIC17 e selecione dispositivos PIC 18 com grande quantidade de pinos [5] .
Palavra de memria
Todos os PICs manipulam (e endeream) dados em blocos de 8 bits. No
entanto, a unidade de endereamento do espao de cdigo geralmente no o
mesmo que o espao de dados. Por exemplo, famlias de PICs na linha de base
(PIC12) e mid-range (PIC16) tm memria de instrues enderevel no
mesmo tamanho como a largura de instruo, ou seja, 12 ou 14 bits,
respectivamente. Em contraste, na srie PIC18, a memria de instrues
dirigido em incrementos de 8 bits (bytes), que difere da largura da instruo de
16 bits.
Pilhas
5 de 18
12-05-2016 08:36
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
Conjunto de Instrues
Instrues de um PIC podem variar de cerca de 35 instrues (PICs mais
simples) para mais de 80 instrues para os PICs high-end. O conjunto de
instrues inclui instrues para executar uma variedade de operaes em
registros diretamente, o acumulador e uma constante literal ou o acumulador e
um registrador, bem como para a execuo condicional, e saltos de execuo.
Algumas operaes, como bit setting e testes, pode ser realizada em qualquer
registrador numerado, mas operaes aritmticas bi-operando sempre
envolvem o W (acumulador), escrevendo o resultado de volta para W ou outro
registrador operando. Para carregar uma constante, necessrio 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 ncleos "high-end".
Ncleos do PIC tem instrues de saltos que so utilizados para a execuo
condicional e desvios. As instrues de salto so "skip if bit set" e "skip if bit
not set". Porque os ncleos anteriores ao PIC18 tinham apenas instrues de
desvio incondicional, saltos condicionais so implementados por um desvio
condicional (com a condio oposta), seguido de um desvio incondicional. Pulos
tambm so de utilidade para a execuo condicional de qualquer instruo
simples imediatamente seguinte. Tambm possvel pular instrues de salto.
Por exemplo, a sequencia de instrues "pular se A; pular se B; C" ir executar
C se A verdadeiro ou B for falso.
A srie PIC18 implementou registradores "sombra" (shadow registers) que
salvam vrios registradores importantes durante uma interrupo, fornecendo
suporte de hardware para salvar automaticamente o estado do processador
durante a manuteno de interrupes.
Em geral, as instrues do PIC so divididas em 5 classes:
1. Operao no registrador de trabalho (WREG), com imediato ("literal")
operando de 8 bits. Por exemplo, movlw (mover literalmente para WREG),
andlw (AND literal com WREG). Uma instruo peculiar retlw, que carrega
imediatamente em WREG e retorna, que usado com desvios computados
para produzir tabelas de consulta.
2. Operao com WREG e registrador indexado. O resultado pode ser escrito
6 de 18
12-05-2016 08:36
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
Desempenho
As decises da arquitetura so direcionadas para a maximizao da relao de
velocidade-custo. A arquitetura Harvard - onde as instrues e os dados so
provenientes de fontes diferentes - simplica muito o tempo e o desenho do
circuito, beneciando velocidade do clock, preo e consumo de energia.
O conjunto de instrues PIC adequado para a implementao de tabelas de
consulta rpida no espao do programa. Tais consultas tomam uma instruo e
dois ciclos de instruo. Muitas funes podem ser modeladas deste modo. A
optimizao facilitada pelo espao relativamente grande do espao de
instrues (como 4096 x palavras de 14 bits no 16F690) e pelo projeto do
conjunto de instrues, que permite constantes embutidas.
Latncia de interrupo constante em trs ciclos de instruo. Interrupes
externas precisam ser sincronizadas com o ciclo de instrues de 4 ciclos de
clock, caso contrrio, poder haver um ciclo jitter de uma instruo.
Interrupes externas j esto sincronizadas. A latncia de interrupo
constante permite que os PICs consigam atingir sequncias de baixa oscilao.
Um exemplo disto um gerador de impulsos de sincronizao de vdeo. Isso
no mais realidade nos mais novos modelos do PIC, porque eles tm uma
latncia de interrupo sncrona de trs ou quatro ciclos.
Vantagens
Pequeno conjunto de instrues para aprender
Arquitetura RISC
Oscilador embutido com velocidade selecionvel
Kits de desenvolvimentos para iniciantes disponveis por menos de 50
dlares
Microcontroladores baratos
Grande disponibilidade de interfaces, como USB, IC, SPI, Ethernet, entre
outros[6]
Disponibilidade de processadores em pacote DIL torn-los fceis de
manusear para uso como hobby.
7 de 18
12-05-2016 08:36
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
Limitaes
Um acumulador
Bank switching por registrador necessrio para acessar a RAM em
diversos dispositivos
Operaes e registradores no so ortogonais; algumas instrues podem
enderear RAM e/ou constantes imediatas, enquanto outros podem usar
apenas o acumulador.
As seguintes limitaes em pilhas foram corrigidos na srie PIC18, mas ainda
so presentes em PICs anteriores:
A pilha de chamadas em hardware no enderevel, a alternncia de
tarefas de modo preemptivo no pode ser implementado
Pilhas implementadas por software no so ecientes, por isso difcil
gerar cdigo reentrante e suportar as variveis locais
Com memria de instrues paginada, h dois tamanhos de pgina para se
preocupar: um para CALL e GOTO e outro para GOTO computada
(normalmente usado para consultas de tabela). Por exemplo, em PIC16, CALL e
GOTO tem 11 bits de endereamento, de modo que o tamanho da pgina de
2048 palavras de instruo. Para GOTOs computadas, onde voc adicionar ao
PCL, o tamanho da pgina de 256 palavras de instruo. Em ambos os casos,
os bits de endereo superiores so fornecidos pelo registrador PCLATH. Este
registrador deve ser trocado a cada transferncia de controle de tempo entre
as pginas. PCLATH tambm deve ser preservado por qualquer manipulador
de interrupo.[7]
Desenvolvimento de Compiladores
Enquanto vrios compiladores comerciais esto disponveis, em 2008, a
Microchip lanou seus prprios compiladores C, C18 e C30, para a linha de
processadores 18F 24F e 30/33F.
A partir de 2013, a Microchip oferece sua srie 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 srie XC para novos modelos.
O conjunto de instrues RISC do cdigo de linguagem de montagem do PIC,
embora sendo simples, pode fazer o uxo global difcil de compreender. O uso
criterioso de macros simples podem melhorar a legibilidade da linguagem
assembly do PIC. Por exemplo, o assembler original Parallax PIC ("SPASM")
tem macros que escondem W e fazem o PIC car parecido com uma mquina
de dois endereos.
Diferenas arquiteturais
8 de 18
12-05-2016 08:36
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
9 de 18
12-05-2016 08:36
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
Descrio
0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 NOP
Nenhuma operao
(MOVW 0,W)
0 0 0 0 0 0 0 0 0 1 0 OPTION
Copia W para o
registrador OPTION
0 0 0 0 0 0 0 0 0 1 1 SLEEP
Entra em modo de
economia de energia
0 0 0 0 0 0 0 0 1 0 0 CLRWDT
Reinicia o watchdog
timer
Instrues diversas
Copia W para o
registrador de triplo
estado (f = 1, 2 or 3)
TRIS f
0 0 0 0 0 0 0 0 1
0 0 0 0 0 1
MOVWF f
0 0 0 0 1 d
CLR f,d
0 0 0 1 0 d
SUBWF f,d
0 0 0 1 1 d
DECF f,d
Z dest f1
0 0 1 0 0 d
IORWF f,d
dest f | W, OU
inclusivo lgico
0 0 1 0 1 d
ANDWF f,d
0 0 1 1 0 d
XORWF f,d
0 0 1 1 1 d
ADDWF f,d
0 1 0 0 0 d
MOVF f,d
Z dest f
0 1 0 0 1 d
COMF f,d
0 1 0 1 0 d
INCF f,d
Z dest f+1
0 1 0 1 1 d
DECFSZ f,d
RRF f,d
dest CARRY<<7
| f>>1, rotacionar
para a direita atravs do
carry
10 de 18
opcode
0 1 1 0 0 d
register
dest 0, normalmente
escrito CLRW ou CLRF f
dest fW (dest
f+~W+1)
Z dest f+W
dest ~f, complemento
bit a bit
12-05-2016 08:36
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
0 1 1 0 1 d
RLF f,d
0 1 1 1 0 d
SWAPF f,d
0 1 1 1 1 d
INCFSZ f,d
op
bit
register
1 0 0
bit
BCF f,b
Limpar bit b de f
1 0 1
bit
BSF f,b
Denir bit b de f
1 1 0
bit
BTFSC f,b
1 1 1
bit
BTFSS f,b
op
Operaes em Bits
Transferncias de controle
0 0 0
RETLW k
Dene W k, ento
retorna de uma
subrotina
0 0 1
CALL k
0 1
GOTO k
1 0 0
MOVLW k
1 0 1
IORLW k
W k | W, OU lgico
(OR) bit a bit
1 1 0
ANDLW k
W k & W, E lgico
(AND) bit a bit
1 1 1
XORLW k
W k ^ W, OU exclusivo
(XOR) bit a bit
op
k
8-bit immediate
11 10 9 8 7 6 5 4 3 2 1 0 Mnemnico C? Z?
Descrio
11 de 18
12-05-2016 08:36
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
12 de 18
12-05-2016 08:36
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
0
0
0
0
0 0 0 0
opcode
Descrio
Instrues diversas
0 0 0 0 0 0 0 0 0 0 0 NOP
Nenhuma
operao (MOVW
0,W)
0 0 0 0 0 0 0 1 0 0 0 RETURN
Retorna de uma
subrotina, W no
modicado
0 0 0 0 0 0 0 1 0 0 1 RETFIE
Retorna de uma
interruo
0 0 0 0 1 1 0 0 0 1 0 OPTION
Copia W para o
registrador
OPTION (obsoleta)
0 0 0 0 1 1 0 0 0 1 1 SLEEP
Entra em modo de
economia de
energia
0 0 0 0 1 1 0 0 1 0 0 CLRWDT
Reinicia o
watchdog timer
0 0 0 0 1 1 0 0 1
opcode
0
0 0 0 1
registrador
f
Copia W para um
registrador de
triplo estado (f =
1, 2 or 3)
(obsoleta)
TRIS f
fW
dest 0,
normalmente
Z
escrito como
CLRW or CLRF f
0 0 1 d
CLR f,d
0 1 0 d
SUBWF f,d
0 1 1 d
DECF f,d
Z dest f1
dest fW (dest
f+~W+1)
1 0 0 d
IORWF f,d
dest f | W, ou
Z inclusivo (OR)
lgico
1 0 1 d
ANDWF f,d
dest f & W, e
lgico (AND)
1 1 0 d
XORWF f,d
dest f ^ W, ou
exclusivo (XOR)
13 de 18
12-05-2016 08:36
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
1 1 1 d
ADDWF f,d
0 0 0 d
MOVF f,d
Z dest f
Z dest f+W
0 0 1 d
COMF f,d
dest ~f,
Z complemento bit a
bit
0 1 0 d
INCF f,d
Z dest f+1
0 1 1 d
DECFSZ f,d
RRF f,d
dest CARRY<<7
| f>>1,
rotaciona direita
atravs do carry
dest f<<1 |
CARRY, rotaciona
esquerda
atravs do carry
1 0 0 d
1 0 1 d
RLF f,d
1 1 0 d
SWAPF f,d
dest f<<4 |
f>>4, swap
nibbles
1 1 1 d
INCFSZ f,d
bit
registrador
bit
BCF f,b
Limpa bit b de f
bit
BSF f,b
Dene bit b de f
bit
BTFSC f,b
Pula se bit b de f
est limpo
bit
BTFSS f,b
Pula se bit b de f
est denido
0 op
CALL k
Chama subrotina
GOTO k
Pula para o
endereo k
14 de 18
op
opcode
0
0
0
1
x x
x x
Operaes em bits
Transferncias de controle
8-bit immediate
k
k
Wk
RETLW k
W k, ento
retorna de uma
subrotina
12-05-2016 08:36
0 0 0
0 0 1
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
IORLW k
W k | W, ou
Z lgico (OR) bit a
bit
ANDLW k
W k & W, e
Z lgico (AND) bit a
bit
W k ^ W, ou
Z exclusivo (XOR)
bit a bit
0 1 0
XORLW k
0 1 1
(reservado)
1 0 x
SUBLW k
1 1 x
ADDLW k
Z W k+W
13 12 11 10 9 8 7 6 5 4 3 2 1 0 Mnemnico C? Z?
W kW (dest
k+~W+1)
Descrio
Programao e desenvolvimento
15 de 18
12-05-2016 08:36
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
Perifricos internos
Seus principais perifricos internos (a
disponibilidade varia conforme o
modelo):
USARTs
Controladores de comunicao
I2C, SPI, USB e Paralelo
Controladores PWM
Controladores de LCD
Controladores de motores
Gerador de energia de alta
potncia
Perifricos para LIN
(http://en.wikipedia.org
Dispositivos PIC
/wiki/Local_Interconnect_Network), CAN
Controladores Ethernet
Perifricos IRDA (http://en.wikipedia.org/wiki/Infrared_Data_Association)
Codicadores para criptograa Keeloq
Watchdog timer
Detetores de falha na alimentao
Portas digitais com capacidade de 25mA (fornecer ou drenar) para acionar
circuitos externos
Osciladores internos
RTCC - Real Time Clock (http://en.wikipedia.org/wiki/Real_Time_Clock)
16 de 18
12-05-2016 08:36
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
Referncias
1. PIC Device Documentation (http://ww1.microchip.com/downloads/en/DeviceDoc
/39630C.pdf) (PDF).
2. "MOS DATA 1976", General Instrument 1976 Databook
3. "1977 Data Catalog", Micro Electronics from General Instrument Corporation
http://www.rhoent.com/pic16xx.pdf
4. http://ww1.microchip.com/downloads/en/DeviceDoc/35007b.pdf
5. http://ww1.microchip.com/downloads/en/AppNotes/00869b.pdf
6. http://www.microchip.com/maps/microcontroller.aspx
7. http://massmind.org/techref/microchip/pages.htm
8. PIC10F200/202/204/206 Data Sheet (http://ww1.microchip.com/downloads
/en/DeviceDoc/41239D.pdf) (PDF) Microchip Technology [S.l.] 2007. p.52.
9. http://ww1.microchip.com/downloads/en/DeviceDoc/61177a.pdf
10. http://www.microchip.com/en_US/family/32bit/
Ligaes externas
www.locxtronic.com - Tutorial for PIC
Programming In BASIC
(http://www.locxtronic.com)
Microchip Technology
(http://www.microchip.com)
Princpios de PIC 16x84
(http://www.pictutorials.com)
A Wikipdia possui o
portal:
Portal de
eletrnica
Obtida de "https://pt.wikipedia.org/w/index.php?title=Microcontrolador_PIC&
oldid=43173841"
Categorias: Microcontroladores Componentes eletrnicos
Esta pgina foi modicada pela ltima vez (s) 23h49min de 20 de agosto
17 de 18
12-05-2016 08:36
https://pt.wikipedia.org/wiki/Microcontrolador_PIC
de 2015.
Este texto disponibilizado nos termos da licena Creative Commons Atribuio - Compartilha Igual 3.0 No Adaptada (CC BY-SA 3.0); pode
estar sujeito a condies adicionais. Para mais detalhes, consulte as
Condies de Uso.
18 de 18
12-05-2016 08:36